1. Eu vs. D

Forked from: Eu vs PowerBasic

Critic said...
DerekParnell said...

Wow, either my machine is very sick or something weird is going on. I'm getting between 12 and 14 seconds per iteration.

I've got an Intel core2 2.4Ghz with 2Gig RAM.

I tried the same program coded in D and I get 0.48 seconds, and when I coded it in D emulating the Euphoria translator's code I get 1.87 seconds.

Derek, I've noticed you are quite active in D's forum. Could you elaborate why you still prefer EU? (Yes, I think D is superior to EU, quite suprising, eh?) No, I don't want to start another flamewar, probably I won't even answer, I am just curious.

Does D still suffer from having a split community over two standard libraries? It's been some time since I've used D.

Jeremy

new topic     » topic index » view message » categorize

2. Re: Eu vs. D

jeremy said...

Forked from: Eu vs PowerBasic

Critic said...

Derek, I've noticed you are quite active in D's forum. Could you elaborate why you still prefer EU? (Yes, I think D is superior to EU, quite suprising, eh?) No, I don't want to start another flamewar, probably I won't even answer, I am just curious.

Does D still suffer from having a split community over two standard libraries? It's been some time since I've used D.

I have stopped participating in the D community a month or so ago. I no longer see that D is developing in the direction that I'm comfortable with.

It is easy to see that there are many very good things about the language, however the group in charge of its direction have, in my opinion, made some strategic blunders. The language has some internal inconsistancies that the development group refuse to acknowledge, let alone correct. I'm no longer sure that I'm ready to commit to D.

An overriding philosophy of the development group is the need to be C-like, insofar as any arbitary C code should compile and behave the same under D - but they have made some exceptions where they believe that C syntax or semantics is poorer. So the feeling I get is that "D is backwardly compatible with C except where we thought C failed" - which is a bit like listening to politicians telling us what's good for us.

The current direction for D, and there have been some different ones in the past, is to focus on becoming a safe and easy language to write for multiple-core machines and to support a number of progamming paradigms simultaneously - Procedural, Object Oriented, and Functional. The belief of the development group is that the language must have only a small set of keywords with most of the capabilities implemented in libraries rather than the core language. And most of the library development is being lead by one of the most intellegent and respected members of the software language world ; Andrei Alexandrescu, a C legend. Unfortunately, Andrei is moving the language syntax and nomenclature into to what appears to be a very dry and academic langauge. This has the side effects of making it become difficult to read D code (it is starting to look like a text version of APL), and difficult for average developers to understand its semantics.

The core langauges is being developed by a single person; Walter Bright. He is arguably also one of the most intellegent programming language developers going round. He has extensive background in C/C compiler development, and this has a huge impact on his vision of what a good language should be like. He is also the bottleneck. All changes to the core source code must be done personally by himself, even though he accepts contributions (patches), he still personally examines them before integrating some or all of the contributed code into the core source files.

There a two D languages being developed. D1 is the original one and is regarded as stable. Most development on this is really bug fixing now. Its syntax and semantics are pretty well finalized. However, D2 is cutting edge. It is in a state of great flux and breaking changes are always to be expected with any new release. D2 diverged from D1 a long time ago and the two variants of D are quite dissimilar now.

D has a standard library, called Phobos. Like the core language, Walter personally oversees most contributions to it. There are three (I think) other people who have write access to its source repository. The D1 Phobos is a collection of routines that were the minimum needed by Walter to implement D1. It is disorganised and incomplete, as far as a standard library goes. The D2 Phobos has undergone a few complete rewrites and has become much more organised and feature-complete.

In short, D is not being greatly influenced by community participation.

There is a competing library, called Tango, being developed amd maintained by a group D of D affecianados. It was borne out of the frustration of Walter's closed-shop approach to D development and the inadequacies of the D1 Phobos. Tango is coded in the Object Oriented paradigm and is properly open-source.

There have been some attempts to merge the two libraries, but there are problems. Technically, the style differences and interdepenacies make the task huge, then there are the copyright issues that causing some personality differences to come out. However, some positive progress has been made and it is likely that when D2 is stable, and when Tango is ported to D2 (written exclusively for D1 for now), one should be able to use both libraries in the same application.

I liked D. I thought it was the Next Big Thing. I'm not so sure now and I've decided to sit back and watch how things go. I got tired of years of lobbying and explaining why various "warts" in the language need addressing, only to be effectively told - look kid, we are geniuses and know a whole lot more than you, so stop wasting our time.

Remember, this is just my opinion so therefore may not reflect reality.

I have a project in mind to port Euphoria to D. This would mean creating a new backend and translator, written in D rather than C. Once D2 becomes stable, I'll probably revisit this project idea.

new topic     » goto parent     » topic index » view message » categorize

3. Re: Eu vs. D

Thank you for this detailed answer. IMHO D's biggest wart is that it's too bloated.

new topic     » goto parent     » topic index » view message » categorize

4. Re: Eu vs. D

Personally I gave up on D because the runtime seemed pretty buggy (I'm talking about DigitalMars' implementation for Windows). I started porting an application from Euphoria to D - both because I wanted some extra speed, and because I thought it'd be a good opportunity to learn some D. But I kept getting all these bugs that made no sense at all, which forced me to make workaround after workaround to get things to function properly. Finally I just thought "Screw this. A programming language is supposed to help me, not work against me." and rewrote the application in C instead; problem solved.

new topic     » goto parent     » topic index » view message » categorize

Search



Quick Links

User menu

Not signed in.

Misc Menu