Sponsored by Travelzoo
Take Advantage of Ridiculously Low Holiday Airfares view!
travelzoo.com - Flights $52 and up for Thanksgiving, Christmas & New Year. But move on it now.
128 Comments
- retral, on 10/12/2007, -5/+22@rompom: Yes and no... I mean, you look at Visual basic and see inefficient and bloated code. It's not easy (if even possible) to make the same app in VB as fast as a C/C++ version.
- erkokite, on 10/12/2007, -1/+17I'v used it a bit. Very similar to C , although there are slight differences in syntax. It does have automatic garbage collection, and working with inline ASM is MUCH simpler than in C . It can also do nested functions and has resizable arrays. It's not quite as fast as C (I saw a comparison between the two a while back), but it definitely has it's advantages. Overall, it is quite an excellent language IMHO.
- OmegaNine, on 10/12/2007, -1/+15Anyone ever used this? Would kind of like to know how it stacks up!
- thewise1, on 10/12/2007, -5/+17I think I'm going to reinvent the wheel, and call it the xheel. I will then sell it to rap stars.
That is all. - rattboi, on 10/12/2007, -2/+13I know at least one good programmer who uses D: Kento Cho of ABA Games fame. Maker of Noiz2sa (one of my fave games) and TUMIKI Fighters. It seems all his coding is done in D now. Here's his site: http://www.asahi-net.or.jp/~cs8k-cyu/
- blitzman, on 10/12/2007, -1/+10You can do explicit memory management in D, using overloadable operators new and delete, or even by calling C's malloc and free directly.
- TomUK, on 10/12/2007, -1/+10I used D a while back and found it very nice to work with for something that is still in constant development. It brought welcome relief (no forward-bloody-declarations required) from some of the pains of Cpp whilst being similar syntax-wise; so I don't think most people would have problems switching from Cpp to D.
However, the thing that will either make or break the language are the libraries; last time I looked gtk* bindings were decent but required a few hacks, X bindings were half done but unusable. Those are the two main ones I was interested in but of other popular libraries I think most (if not all) of the SDL libraries were done.
*the official D gui lib is called DWT and is a port of javas SWT but unfortunately only windows builds exist and last I looked into it not much work had been done on a Linux version. - Xopl, on 10/12/2007, -1/+9I read thoroughly into the D language a couple weeks ago and I was quite impressed. It compiles, it has built in hashes, decent string support, explicit and implicit memory management both, inline assembly, and more... it is basically the way that I would redo C/C++ if I was going to redo C/C++. Mind you, I'm NOT a huge fan of Java. I'm sure for the reasons that I am very impressed by D, somebody who is religiously in favour of Java is going to dislike D. The bottom line comes down to library support for D as far as I'm concerned: the language is one thing, but can you make it do anything? Easily? My understanding is that D can bind to anything you can bind to in a C++ program. This is what the docs say anyway. I don't know if it would be any easier to work with with things that were built specifically for D or not.
I like having the option of digging deep down to the machine level. I like being able to compile. I'm very much considering working with D on some projects in the future.
In my opinion, D comes from the mind of a practical, working knowledge of programming rather than from the realm of theory. It seems like incremental changes for the better, rather than some of the unproven and radical changes found in the latest flavour-of-the-week new language out there. - trogdor282, on 10/12/2007, -2/+9Picard: "Compuutah, modify command buffer to accept commands in the 'D' language."
Computer: "That language is not in the database. Please specify." - ucg1, on 10/12/2007, -1/+7"it isn't possible to implement the Java VM in Java"
Of course its possible. Here is one such example of a JVM written in Java:
http://jikesrvm.sourceforge.net/
It even runs on itself. - jeolmeun, on 10/12/2007, -2/+8/##### /^^^^^ Nesting /+++++ comments /* not */ enough +++++/ for ^^^^^/ you? #####/
- blitzman, on 10/12/2007, -2/+8The main problem with Ruby is its interpreted, and runs quite slowly compared with D.
- blitzman, on 10/12/2007, -1/+7D has much more usable strings than C++, not the least of which is that unicode is fully supported. printf strings can't contain the 0 byte because D doesn't have its own printf, if you use printf in D you actually get the C printf. However, D does contain writef(), where you can have embedded 0's in the strings (as well as unicode characters).
- JoeCoder, on 10/12/2007, -0/+5I've been using it for the last 8 or so months on my hobbyist 3D-engine with great success. Without having to worry about header files and all of cpp's other oddities, my code is at least 25% shorter.
And for those worried about performance, check out these benchmarks versus cpp: http://shootout.alioth.debian.org/gp4/benchmark.php?test=all&lang=dlang&lang2=gpp It's the perfect balance between high-level performance and usability. - erkokite, on 10/12/2007, -1/+6Lisp, Haskell, and OCaml are what's called functional languages, as opposed to procedural languages such as C, C++, C#, Java, D, etc.. Basically, I could be wrong here, but the difference seems to be that functional languages are more geared towards mathematics and physical modeling, whereas procedural languages are more geared towards application building. So they really occupy different spaces in terms of usage.
- rompom7, on 10/12/2007, -2/+7retral: i meant _REAL_ languages..
- CaughtThinking, on 10/12/2007, -2/+7What about Eiffel? People don't give it enough attention. It's fast as all hell, clear, and even better structured than Java.
- clayasaurus, on 10/12/2007, -1/+6I've been using D for about half a year, it is a great improvement on Cpp, and is comparable if not faster than Cpp for speed. If you want to write a fast application, today the only real choice is C, Cpp, and D. D is also in a constant state of improvement as it reaches its full potential. It has a better template system than Cpp ( http://www.digitalmars.com/d/templates-revisited.html ), better expection safety ( http://www.digitalmars.com/d/exception-safe.html ), better IO, and is overall a better tool. So, you can wait for CppOx which, by the time you get it, will be inferior to D.
D does have a large amount of momentum behind the scenes and an active community, you can see so for yourself over at http://www.dsource.org/ . D does provide something no other language does, which is a modern systems language implementation. Java? Ruby? Too much baggage.
Also, with D you are guarenteed to use less lines of code then a similar Cpp program, just for the fact that you don't need to define any prototypes, and the build tool (www.dsource.org/projects/build) makes Makefiles obsolete. D is a guarenteed productivity booster over Cpp, and whatever C/Cpp can do D can do better.
Anyways, my project is over at http://arcgames.dsource.org/ , there is not much to look at but by next fall there will be some 2D games over there. I'm a student who develops in his free time (which is small) and D allows me to make the most of it.
Edit: About the name D, it was originally called the Mars programming language, but Walter's colleagues insisted on calling it D, and it stuck. - catskul, on 10/12/2007, -2/+7Ruby is interpreted; in a different class of languages. Its not worth comparing.
- StringCheesian, on 10/12/2007, -1/+5gdc, the D plugin for gcc is GPL. Phobos (the D standard library) is under a custom BSDish license.
dmd, the official D compiler is partially closed-source freeware and partially free open source. I know it's legal to download it, use it, and distribute/sell/whatever the binaries it produces. Besides that I'm not exactly sure on the finer points of it's licensing... yeah they really do need to clear that up. - rompom7, on 10/12/2007, -9/+13http://www.digitalmars.com/d/comparison.html
No speed tests. But speed tests don't really mean anything... It's the coder that makes the speed, not the language. - blitzman, on 10/12/2007, -3/+7C++ is actually less efficient than D. See www.digitalmars.com/d/cppstrings.html for an example.
- radu79, on 10/12/2007, -3/+7I personally like C, and I like it as it is.
It is the most powerful programming language (besides for ASM) in the sense that you can do things in so many ways. It is also pretty much the fastest language out there (again, except for ASM). So for the time being I'll stick to C.
And yes, I am aware this will be modded down, as most of the people like higher level languages, and even C++ is becoming too 'old' for them. - clayasaurus, on 10/12/2007, -0/+4You are allowed to use D for any commercial software purposes. The compiler frontend is under a Artistic / GPL license, and the backend is propriety. There is a D compiler for GNU systems (GDC) that's all GPL. Phobos, D's library, is under public domain. If you have a problem or question about the license, contact Walter Bright (www.walterbright.com) or visit the digitalmars D news groups (http://www.digitalmars.com/NewsGroup.html ).
D's speed is a non-issue as it at least has the speed of Cpp and you can turn off the garbage collector and/or use custom memory management if you really need to squeeze the CPU. - tobiasluetke, on 10/12/2007, -0/+4I don't really understand your point. You say you have to live in a vacuum to use these less popular languages but guess what: Beginning 2004 ruby was close to be one of those languages. David recognized it for what it is: the most productive programming language on the market and used it to create rails. Thats why its immensly popular now as you can clearly see from how often it was mentioned here and the fact that the rails mailing list has 2-3 times the volume of even the PHP one.
Its easy to use a language even if not everyone else uses it. Modern super productive languages like ruby and D allow you to create the libraries you need for most jobs faster then it takes to integrate an existing C++ library in your project. - Urusai, on 10/12/2007, -1/+5I once sat down to construct my own GP OO language (based on the lessons of C++, Java, C#, Delphi, et al.) and found that it was very similar to D (I found D after I had spec'd my language). There was just one or two features that my language had that D didn't (I'm not at my home computer so I can't dig up my specs).
My big problem with D is figuring out the licensing terms, as in, is it free or what? Digital Mars's website doesn't say explicitly. - anamanaman, on 10/12/2007, -5/+9I think I'll wait for the next version (E)
- jhuebel, on 10/12/2007, -2/+5Sorry, Enlightenment has prior art. :-)
- JoeCoder, on 10/12/2007, -1/+4But C didn't have a garbage collector.
- jcarrascal, on 10/12/2007, -0/+3natmaster
Mostly not. The Garbage Collector doesn't scan a memory area that you have malloc'd unless you call std.gc.addRoot() on it. Still the GC runs on all the other areas where memory is allocated with new so it could stop your thread temporarly. To avoid this you could temporarly turn off the GC using std.gc.disable() / enable() functions on critical sections. - hasan, on 10/12/2007, -0/+3You can disable the garbage collector or write your own.
- ferrix, on 10/12/2007, -1/+4FORTRAN is older and has gone through more optimization for math than other languages. Of course that doesn't make it cool, fun, or in any way palatable. =)
- lnxaddct, on 10/12/2007, -2/+5blitzman,
That one example really doesn't mean anything. D has plenty of problems associated with it. I mean, it pretty much looked at C, C , and Java and took all of the best aspects from them. Unfortunately, a bit of bad things were brought along with it. D's garbage collection sucks, Java's just started getting really good around the 1.4 jvm and the Sun engineers had been at it for years, D is no where near it in performance. Furthermore, D allows you to mess with things that you shouldn't be able to mess with in a language that uses garbage collection. It is fairly trivial to screw the garbage collector up because you are still allowed to have inline assembly, and manipulate lower level things. D also still has the compile/link process which just isn't necessary in this day and age, not for a "new" language. These are just some of the problems with it off of the top of my head, don't get me started on the lack of support and libraries for it. If you can't do what you want to do in Cpp or in Java, then D isn't going to help a bit. Pretty much my rule of thumb is if the project will be over 20,000 lines, use Java (it is great for managing large scale projects), anything smaller I'll typically use python (although if you're a fan of ruby or perl, they would fit in equally well). Of course this is all just my opinion, so take it as you may.
-Steve ( http://krenzel.info ) - JoeCoder, on 10/12/2007, -0/+3Walter Bright has previously worked on the Zortec, Symantec, and Digital Mars C++ compilers, so he should certainly have the experience to make D "at least the speed of Cpp"
- burke, on 10/12/2007, -1/+4I've heard so many good things about D, I think I'll have to finally give it a whirl.
Come to think of it, I've never even once heard anyone say anything bad at all about it. - inactive, on 10/12/2007, -4/+7OmegaNine, was that supposed to be a pun?
- inactive, on 10/12/2007, -1/+4D is doing very well in the programing language shootout
http://shootout.alioth.debian.org/debian/benchmark.php?test=all&lang=all - torhu, on 10/12/2007, -0/+2The main thing that's new about D is that it combines the execution speed and low-level support of C++ with the garbage collection and cleaner syntax of Java. Making your coding less about language quirks and memory management and more about getting your app ready. At least that's what it does for me. ;)
And you can still link directly with C libs, of which there are a few... - inactive, on 10/12/2007, -2/+4Anyone interested in taking up programming should give both Ruby and Python a shot. I like python better, personally, but Ruby is a tad bit more powerful, in my opinion. Ruby is a bit more like Java, while Python is a bit more like C (the better version on C++).
- blitzman, on 10/12/2007, -1/+3D is a systems programming language, which means it needs to provide the facilities with which to directly manipulate things. Yes, that means you can hose the garbage collector - but the flip side is that means it's possible to write a garbage collector in D. On the other hand, it isn't possible to implement the Java VM in Java, nor a garbage collector. You can't write an operating system in Java. D programming doesn't pretend to be like Java, where the door to the power tool machine shop is locked and bricked over.
- sukimashita, on 10/12/2007, -0/+2It would be nice to have a language with native compilers for various platforms which assembles the abstracted/manageable code like C# / Java, ease programming semantics and increase efficiency but not limit the developer into a "virtual box", make it depend on a specific company or sacrifice low-system accessibility.
Knowing that, on the first look, D seems promising but I had some questions...
1) So what are the exact terms in actually using D now? There seems to be something hidden between the lines...
Is it possible to develop cross-platform commercial-level applications with it? (license-wise)
Quote from wiki4d:
[quote]The DMD license* is awfull, it is almost as bad as Sun's Java license. It is full of side notes and unneccessary explanations trying to give the appearance of being free, but somewhere on the bottom you see that you are not allowed to distribute without having Digital Mars's permission.[/quote]
Full information: http://www.prowiki.org/wiki4d/wiki.cgi?ReallyFreeCompiler
2) How does the overall speed of the language compare to using C++?
http://shootout.alioth.debian.org/ shows that D is rather unoptimized yet. (Yes, it's still under development) - burke, on 10/12/2007, -3/+5I thought about this a little more, and you're right. The entire market for D is taken up by Cpp. Even if it is slightly less featureful, it's more efficient, and is in use in a multitude of existing projects, unlike D. I think I'll brush up on my Cpp skills instead.
- Manhigh, on 10/12/2007, -0/+2ferrix,
I actually still use fortran (aerospace industry) - and I'm extremely cool ;). As you said its fast, and with the matlab-like array notation of Fortran90/95/2003, its pleasant to code in when dealing with numbers. However, for things like character string manipulation, I dont think theres a worse language. And thats why I use python :) - adamsitting, on 10/12/2007, -1/+3I got to agree. Eiffel rocks D! Check it out for yourself.
- asteron, on 10/12/2007, -5/+7You beat me to this comment. Yeah his work on ABA games is what introduced me to the D language. D reminds me of python in many ways but written in a C syntax. No matter what style of coding you prefer you can feel comfortable in D. That can also be a liability in that programmers all have different styles. Basically D is really great for individuals but maybe not so great for collaborative projects.
Ohhh and here's the english link. http://www.asahi-net.or.jp/~cs8k-cyu/index_e.html
I recommend Gunroar, Tumiki Fighters, and Torus Trooper. - itsbonczek, on 10/12/2007, -2/+4A lot of languages are adopting the ability to add methods to classes from the outside. Objective-C does this with "Categories" and C# added this in the newest release. I'm not criticizing, I just think its a really nice feature. It certainly beats writing a wrapper class.
- JoeCoder, on 10/12/2007, -0/+2According to this http://www.tiobe.com/tpci.htm, even if somewhat inaccurate, it looks like D is the 4th fastest growing language.
- Jack9, on 10/12/2007, -1/+3Here is the link, corrected
http://shootout.alioth.debian.org/debian/benchmark.php?test=all&lang=all&xfullcpu=1&xmem=1&xloc=1&binarytrees=1&chameneos=1&message=1&fannkuch=1&fasta=1&knucleotide=1&mandelbrot=1&nbody=1&nsieve=1&nsievebits=1&partialsums=1&pidigits=1&recursive=1®exdna=1&revcomp=1&spectralnorm=1&hello=1&sumcol=1&calc=Calculate - zyang, on 10/12/2007, -1/+3it looks like D borrowed the "program by contract" concept from Eiffel. http://www.digitalmars.com/d/cppdbc.html
- finnif, on 10/12/2007, -3/+5
Who cares?
Unless you work in a vacuum, languages are all about collective momentum, and D has zero momentum. The only reason Ruby has any momentum is because of Rails. C, C++, C#, Java, Python, Perl... these all have a lot of momentum over years and years.
So that's why it's just laughable when one dude pushes on Smalltalk, or Eiffel, or Pike, or D or the billion other languages out there. Big companies just can't go that way without a lot of convincing that it makes financial sense over picking the languages with momentum. Then you have platform issues... like can D compile for an embedded device?
BTW, while it's true that good programmers can pick up a new language easily, guess what ... good programmers are even better with languages they already are experts with. -
Show 51 - 100 of 128 discussions



What is Digg?