How I Came to Write D -- by Walter Bright

Chris wendlec at tcd.ie
Wed Apr 16 02:27:49 PDT 2014


On Wednesday, 16 April 2014 at 09:10:47 UTC, Sönke Ludwig wrote:
> Am 16.04.2014 11:05, schrieb Chris:
>> On Wednesday, 16 April 2014 at 08:21:37 UTC, Bienlein wrote:
>>> On Tuesday, 15 April 2014 at 19:19:00 UTC, Jordi Sayol wrote:
>>>> El 11/04/14 12:10, Walter Bright ha escrit:
>>>>
>>>>>> but hey, now we have D.
>>>>>
>>>>> Yeah, I like D far better than Java.
>>>>
>>>> +1000
>>>
>>> So do I. But for Java there is Hibernate, Hadoop, Cassandra, 
>>> DI, JSF,
>>> JMS, JTA, SOAP, REST, vert.x, Quartz, web servers, application
>>> servers, various NoSQL-DBs and I don't know what. As you most 
>>> often
>>> need some of those things in enterprise computing I'm pretty 
>>> much
>>> bound to Java.
>>>
>>> There are a number of job adds for Go developers (see
>>> http://golangprojects.com). Go seems to be a good complement 
>>> for Ruby,
>>> Python, PHP which are slow and have bad concurrency. Then Go 
>>> seems to
>>> appeal to companies whose product is some server-side 
>>> application
>>> (like some cloud offering or PaaS).
>>>
>>> I believe D could also play well in this server-side arena 
>>> like Go.
>>> Maybe with the FiberScheduler developed by Sean Kelly D can 
>>> also offer
>>> "dead-simple" concurrency and be appealing to developing cloud
>>> solutions or other style of server-side applications for 
>>> which easy
>>> concurrency is a big plus.
>>>
>>> -- Bienlein
>>
>> I use vibe.d for a small server side application. It's quite 
>> fast,
>> although we haven't tested it on a larger scale yet. On the 
>> downside,
>> vibe.d's API is not quite intuitive, so it takes a while to 
>> get used to
>> it. But that might be down to the fact that it's not easy to 
>> write an
>> intuitive API for the web with all the different bits and 
>> pieces that
>> have different logics to them.
>
> Are there any particular things that you could list from the 
> top of your head? Making thinkgs as clear and simple as 
> possible is one of the prime goals, but sometimes there are 
> unfortunately compromises necessary in the name of performance 
> or safety.

I will report them as soon as I come across one (I'm not working 
with vibe.d at the moment). Off the top of my head I found the 
Json method "get" a bit strange

j["name"].get!string == "Example"

i.e. that you have to convert in this way. I expected string type 
to be the default, i.e.

j["name"].get() or get(j["name"]) without explicit conversion. 
Part of the "difficulties" I encountered was that the user has to 
click his/her way through all the structs etc to get to the 
point. E.g. if you go to

http://vibed.org/api/vibe.data.json/

you hear about "get", and if you want to know more about get, you 
have to go to

http://vibed.org/api/vibe.data.json/Json

to read about it in more detail. And then you have to click on 
"get" if you want to see the method's signature.

If you have to look up many things at the same time (as you 
would, when you build a server infrastructure), you have to go 
back and forth a lot, in many tabs in your browser, and I 
sometimes just lose track of where everything was.


More information about the Digitalmars-d-announce mailing list