Can vibed be fast as Go or Python?

Laeeth Isharc via Digitalmars-d digitalmars-d at puremagic.com
Tue Mar 28 19:36:37 PDT 2017


On Tuesday, 28 March 2017 at 08:08:11 UTC, Russel Winder wrote:
> On Tue, 2017-03-28 at 07:32 +0000, Suliman via Digitalmars-d 
> wrote:
>> I found very interesting Python async framework japronto 
>> https://github.com/squeaky-pl/japronto
>> 
>> Test show that in some cases japronto may work as fast as Go.
>> 
>> Can vibed be competitor (or even better) than Go and Python for
>> micro-services?
>
> Go is clearly a big player in the arenas where microservices is 
> a key word. Python less so. Do not forget that JVM and JVM 
> languages are the biggest players – well at least in the areas 
> I have association with. Also C#/F# are players, of course.  
> This is maybe why Go is becoming a big player there, just as it 
> has in Web applications.
>
> Node, at least in the microservices arena I have association 
> with, is not a big player: single threaded event loops without 
> processes are seen as a liability not a benefit. Multi-threaded 
> services are still the expectation, and a further reason why Go 
> is taking share from the JVM languages – no callback hell.
>
> The JVM languages (and to a lesser extent C#/F#) are though 
> deeply embedded in the psyche of most people "doing 
> microservices". It is harder to get them to switch that for 
> them to write a new framework.
>
> Go has created market share by some people who were believers 
> in Go doing stuff and then telling people about it, preferably 
> in JVM or .NET oriented conferences.
>
> So the question is: has anyone done microservices with 
> D/Vibe.d, and have they been talking about it at Go, JVM, and 
> .NET conferences?

One has to know oneself, ones strengths and weaknesses,  when 
trying to persuade another. At this stage in its development, D 
is much more appealing to places that have a technical mentality 
where people can afford to make decisions based on merits and 
afford to take calculated risks where the true economic downside 
is much smaller than the social cost of doing something 
unconventional and not getting it right on the first attempt. It 
seems to me that characterises the situation of those I have met 
in the D world who add using it within the enterprise.  Maybe 
that's true of many people at those conference circuits, but I am 
not sure if it's the case.  If one doesn't have the ability to do 
this kind of thing, one shouldnt try - so these sorts of people 
will be later adopters by which time the ecosystem will be more 
mature and it will be a socially respectable thing to use D.

In the meantime it's an opportunity for those who are able to 
make decisions based on genuinely technical questions and for 
whom the social factors mean you simply need to explain it, and 
where you have the social context where its okay to get some 
things visibly wrong now and then - but you need to have earned 
this, and keep earning it, obviously.

I do use D services written in vibe for my stuff.  My 
responsibilities have increased lately, so now there are things I 
look after that are written in some of those other languages.  
But at the margin I am doing more in D, not less.  The immaturity 
of the ecosystem is sometimes frustrating - notably for us with 
dub - and I do what I can to contribute, but then I go look at 
something written in another language and I think it would really 
be so much simpler had it been in D.  I was talking about this to 
John Colvin earlier and I think the main benefit of D is a 
cognitive one.  It's much easier to have abstractions that fit 
the problem domain and have an intuitive meaning that makes it 
easy to reason about; and yet these abstractions don't hide 
what's going on from you.  We have these words on the front page 
- modelling power and plasticity.  If you know what they point to 
they are good words, but they are not very evocative if you don't 
already get it. I think those things plus performance and control 
are where D shines, but they favour an organic kind of growth 
because recognising the importance depends on having good taste, 
and most people don't have good taste so they rely on other 
people to be their arbiters and that's a process that converges 
to reality, but slowly in the beginning.  I don't think for most 
people C# and D are competitors, for example.

>
> The line to take to do this is to do the same service in 
> D/Vibe.d and one of Go/Java/Clojure/Kotlin/Scala/C#/F# and then 
> do a session at an appropriate conference showing how D/Vibe.d 
> is better and thus that Go/Java/Clojure/Kotlin/Scala/C#/F# 
> needs to be improved in this area. I.e. do not present D/Vibe.d 
> as the solution, but as the threat.

Why would you want to encourage people to take you seriously as a 
threat  when you are a stealth emerging technology?  You just 
give others motivation to put a tick in the box, when the other 
stuff is unlikely to change because of cultural questions.  You 
want to tell them the truth, which is that in the current year, D 
isn't a language for everyone, but for a certain group it really 
is, and that happens to be a set of people that for other reasons 
punches above their weight over time.  It's elites that drive 
things in the beginning, not broad movements.

Education isn't a bad idea, but I think hearing from people who 
are using it to do things is most powerful in persuading people 
at this stage.  So the talks from Ethan of Remedy and Liran of 
Weka were very important

I think Walter's insight gained from practical experience applies 
here.  Don't try and make people love you who aren't minded that 
way anyway.  Instead find people who are looking for just what 
you do, and maybe use D already and would like you do more, but 
there is some obstacle.

Maybe D users in the enterprise should organise themselves a 
little because perhaps there are some such obstacles and 
frictions that are well worth solving and it's simply a 
coordination problem to figure out how. Reality isn't potentially 
Pareto optimal and life always falls short of the production 
possibility frontier. That's probably best done at this stage by 
people talking to each other directly and collaborating on things 
rather than starting with something formal.

Laeeth




More information about the Digitalmars-d mailing list