Walter Bright talks about D and his desire to improve on systems programming languages. Many successful concepts from other languages like JavaScript, PERL, Ruby, Lisp, Ada, Erlang, Python, etc., have had a significant influence on D, he says. He adds: “D 1.0 was pretty straightforward stuff, being features that were adapted from well-trod experience in other languages. D 2.0 has ventured into unexplored territory that doesn’t have a track record in other languages. Since these capabilities are unproven, they generate some healthy skepticism. Only time will tell.”
Taken from the article: “D will be the first choice of languages for systems and applications work that require high performance along with high programmer productivity.”
If this can be achieved, I’ll be all over it. For some time now I’ve wanted an environment that produces fast native code but with the productivity of environments like .Net and Realbasic. Hopefully when D V2 goes gold we’ll have something to really take programming to the next level.
Edited 2008-07-22 03:44 UTC
There is already such a language: it’s called Eiffel.
http://en.wikipedia.org/wiki/Eiffel_(programming_language)
Is Eiffel really used as a system language?
I doubt it.
As an application development language, sure.
Ok, not system, but it produces very fast native code as a clearly designed object oriented language and has Design by Contract features.
Edited 2008-07-22 08:05 UTC
Try FreePascal:
http://www.freepascal.org/
Sorry, but I don’t think D has much of a chance. I had bad experience with Digital Mars earlier on. Firstly, no distributions wanted to include the compiler in their repositories because of licensing issues. So that was one big problem for me.
Secondly, seriously, they told me that being unable in read files in /proc, /dev or other such linux filesystems is normal behavior (and even worse, they explain why, and it never seemed to click with them why its incorrect). http://www.digitalmars.com/d/archives/digitalmars/D/bugs/594.html is the bug. Because of it, I needed to run the “cat” linux command to read some files. In fact, D was the only language that behaved this way, and I wasn’t going to waste my time arguing either. Because to me, it seemed like it was being developed by a bunch of university students.
Sorry, its a great language, but there’s too many issues. Mine was a very basic straightforward problem and nobody considered it a problem (and it was my first problem too), imagine having to work around these small behaviours on MAJOR projects. At the end, it really just makes more sense to use C# and mono. The licensing may be a bit iffy, but at least the behaviour makes sense, its works in more places, and more people can code it in.
i prefer to use java, don’t have licence and patent problem
work for a lot of cpu and os
That’s true for dmd which you have to download yourself but there’s no licensing issue for gdc.
Well, these are not true filesystem, so I tend to agree that this is not really a bug that normal commands fails: after all a ‘ls -l /proc/sys/kernel/osrelease’ is lying to you by reporting a size 0, in fact it’s silently failing..
But sure for a system programming language this is an issue, in my opinion the correct way to fix this is either to add an option to read so that it doesn’t try to access the length of the file or to provide another function read_svfs (read special virtual fs) which does the same thing.
Well, new system, new issues, this is true whatever the system (I remember having a bug in Java’s GC back in the data), I’m not sure you really tried very hard to have this issue fixed, did you enter a bug into bugzilla?
There are very real problems with D:
-the incompatible split Phobos/Tango (worked on but has been an issue for a long time)
-the not very efficient GC (I’m not sure that this is solvable: this is a price to pay for C compatibility..)
-the syntax: it’s better than C++ or Java sure (not hard!), but when you compare it to Scala, it’s not that good..
You do make a valid point. However, there was no physical way of doing it from what I could see. I cant remember how I did it at the time, but knowing me, I would have tried opening the file as a stream too and waiting for EOF, and that wouldn’t have worked (or I wouldn’t have posted this). And I tested it on C and perl, and other languages, and all provided a means of reading them.
So evidently, they weren’t reading the files properly (or they were doing it in a really advanced way).
Either way, I got put off by only 1 response, that acknowledged why the problem existed, but didn’t even attempt to rectify it and making the functionality possible. Its no good telling a developer you cant do it because its a 0 size, but not trying to fix the problem by working around it (or offering new functions). And I was in no way inclined to help a project, whose only compiler at the time was totally closed.
Its interesting to hear about more problems though you are having. I think that ultimately, by the time they get their act together, they will also have to compete against C++ 0x and new generations of C# and Java.
That is just my personal opinion though anyway
Don’t insult university students. I am one, and I’ve designed a better language than D. Now I just have to get someone to pay me to implement it.
“But D today has moved well beyond that. Many successful concepts from other languages like JavaScript, PERL [sic], Ruby, Lisp, Ada, Erlang, Python, etc., have had a significant influence on D.”
T,FTYF.
I’ve been watching D for a few years now, as a replacement for the ageing C is much needed.
But D’s move towards ever more features and complexity means that the original niche of a simple C replacement is no longer filled. And D-lite seems like a good name for a language 😉
As an example, consider this D code:
foo(bar())
Question: if this line of code is executed, will the function bar() be called?
Answer: it depends on the definition of foo! (see http://www.digitalmars.com/d/2.0/lazy-evaluation.html).
But if someone took just the most useful bits of D (exceptions, no pre-processor, classes, bounds checking) and made a language out of that, I’m such it would convince a lot of C programmers to switch.
Agreed, that’s why I advocated in D’s newsgroup that lazily evaluated code should be enclosed in {}
foo({bar()})
Except possibly for side-effect free expressions where it doesn’t matter.
Anyway D isn’t a replacement for C: it’s a replacement for C++.
That language exists, it’s called Object Pascal, and C programmers won’t touch it because the surface syntax makes them go EWWWW!
D seems a nice language and a possible C++ evolution, but I don’t see any possibility of it to succeed.
Java or C# are most likely to take C++ place than D.
There are already several research projects that prove, these languages are also possible to be usable as system programming languages.
I don’t see D going to get much support from the industry, even if the language might be a good C++ replacement.
That’s not strictly necessary to bootstrap popularity. In the FLOSS community there is a lot of willingness to try new languages for projects. If a language catches on within the FLOSS community and is used for some major projects, it might lure the interest of ‘the industry’.
This has happened before with Python, PHP, and Ruby.
D is doing pretty well in the popularity indexes, meaning there is some buzz around the language, and buzz often leads to projects written in that language. Additionally, there is a fraction of developers within the community that dislike the complexity of C++, but are interested in a replacement for C for application development (which was also one of the reasons to spark Vala).
I think there’s some misunderstanding here. D can actually be used for systems programming, since you can really build lowlevel stuff. C# and Java might take C++’s place some day in the application domain, that’s maybe true. But for lowlevel or high performance stuff, D might be the better choice
Of course, maybe C++ will just stay where it is in that domain, but if it will every be replaced, it can only be replaced by D (or some future systems language), but certainly not by C# or Java.
Well Java and C# can also be used to systems programming,
at least is what the people behind, JNode, SPOT, Savaje OS, SharpOS, Cosmos, Singularity, seem to think.
Oh, and what about the network controller boards for base stations developed by Nokia Siemens Networks, running Java?
All of this seems to me like system programming.
As I said, D is a nice language, but based on my experience, I don’t see a big future for it.
Yes I’m aware of some OS projects that are based on bytecode languages, but it’s quite unsure if that will ever become big. At the moment it seems to be more of a proof of concept.
Maybe there are some advantages, and time will tell, but at the moment it simply can’t be told.
Java and C# dominating the application market is something that can be said with a much (!) higher level of probability instead.
I have tinkered a bit with D. But what it currently misses is something parallel to STL. I know that Phobos from D 2.0 is moving into that direction, but it is not there yet. Additionally, D 2.0 is still not finalized, so for ‘real work’ one is probably stuck with D 1.0, which has a weaker Phobos or you’d have to use Tango.
Additionally, I don’t like that it makes some things language features, that are nicer to have in a library, such as maps (or associative arrays). It keeps the language cleaner and simpler.
It’s a language with potential, and it’s a natural evolution from C++ (it’s pretty much what it would look like without the need to keep backward compatibility), and it’s pretty. I also like its support for contracts. But it needs more momentum and mindshare to be a candidate for serious work projects.
That said, I am planning to use it more for spare time projects once version 2.0 of the language stabilizes.
D is only interesting me as a potential “Better C”
A lot of C developers out there wont touch C++ or Java, often for good reason. If you can build a language they can love and are willing to use that is just a bit better than C, then you have accomplished something.
Until then I’ll keep looking at Vala.
the problem with D is serious feature creep. They keep bolting shit onto the 2.0 spec and its never ending. They never realised a fully 100% spec 1.0 working D compiler to start with before jumping into 2.0 territory.
GDC is serious fail, its not comptabiel with the DM version.
The Tango vs Phobos is also utter fail. Walter cant see why he needs to jettison the garbage that is phobos.
D 2.0 is going down the C++ road. Adding so much complexity and junk.
As long as all the effort is poured into the closed Digital Mars release, few people are going to be interested, GDC will always be playing catchup.
I need to mention that the “D” language seems to me very much as a dialect or derivative of the Eiffel Language.
Bertrand Meyers author (CEO/founder of ISE Santa Barbara, CA) invented the concepts of programming by contract, that the D language is using.
To compare the respective merits of the D languages and the Eiffel language would be interesting.
Give to Cesar what belong to Cesar: recognize the affiliation of the D language, and its Eiffel roots.
Eiffel, like D, has close and open source compilers.
I have played with it, liked it, but then (3 years ago) the lack of debug (ELF-DWARF) in the compiler was a problem. This may have been resolved.
Jefferssonian (yes one too many s)
[/i][i]