Discover and share the best of the web!
Learn more about Digg by taking the tour.
The Next Generation Programming Language: D
digitalmars.com — Like Java because of its nicely structured classes and uncomplicated syntax, but wish it had the power and efficiency of C or C++? Look no further than than D!
- 1367 diggs
- digg it
- OmegaNine, on 10/12/2007, -2/+14Anyone ever used this? Would kind of like to know how it stacks 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. - 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.
- Z_Man, on 10/12/2007, -18/+5i totally agree with you retral
- FLarsen, on 10/12/2007, -8/+2It's still the coder, not the compiler that is the problem but in this case it's the coder(s) that made the main libraries that is slowing things down.
- erkokite, on 10/12/2007, -1/+16I'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.
- defythereds, on 10/12/2007, -4/+7OmegaNine, was that supposed to be a pun?
- 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. - soogy, on 10/12/2007, -7/+4Not new, but the more people we can get to start using D the better. I'm tired of seeing people writing software in C#, VB and proprietary crap.
D is like a joining of worlds. It brings together the best features from the most popular coding languages. - rompom7, on 10/12/2007, -2/+7retral: i meant _REAL_ languages..
- 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.
- rompom7, on 10/12/2007, -9/+13http://www.digitalmars.com/d/comparison.html
- rattboi, on 10/12/2007, -3/+12I 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/
- 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.
- 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.
- burke, on 10/12/2007, -2/+3I'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.- 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."
- trogdor282, on 10/12/2007, -2/+9Picard: "Compuutah, modify command buffer to accept commands in the 'D' language."
- THC4k, on 10/12/2007, -6/+5Most people dont consider it a serious language. It shows up on /. every now and then, but none really picks it up. It just doesn't have anything to offer: If you want fast programs, you are coding in C/C++ already anyway, if you want manageable code you use highlevel languages like Java or better. No need for another low level language with nothing new.
- 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.
- blitzman, on 10/12/2007, -3/+7C++ is actually less efficient than D. See www.digitalmars.com/d/cppstrings.html for an example.
- 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 ) - 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.
- 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. - 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...
- FoolishBoy, on 10/12/2007, -47/+3WOW this was really enlightening, I really enjoyed reading this stuff. I would definitely recommend that everyone read this. The person who submitted this must be a genius or GOD or something. I'm completely and totally awed, this was the most amazing thing I have ever read in my entire life!!!!!!!!!!!!!!!!!!!!!
- VadimKatchkakov, on 10/12/2007, -13/+2Is this comment being a sarcasm because link is not providing much information such to be so enamoring?
- xxshinwaxx, on 10/12/2007, -11/+2Yes. Yes it is.
- MelvinSchlubman, on 10/12/2007, -6/+2caffeine poisoning
- sm150MP, on 10/12/2007, -13/+5i saw this like a year ago...
- anamanaman, on 10/12/2007, -5/+9I think I'll wait for the next version (E)
- jeolmeun, on 10/12/2007, -2/+8/##### /^^^^^ Nesting /+++++ comments /* not */ enough +++++/ for ^^^^^/ you? #####/
- jhuebel, on 10/12/2007, -2/+5Sorry, Enlightenment has prior art. :-)
- FilCab, on 10/12/2007, -3/+3I wonder why he/she doesn't compare it to Lisp/Haskell/O'Caml/some other of those... :-P
- 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.
- FilCab, on 10/12/2007, -0/+1"Lisp, 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."
Well... no.
first of ll, they are all Turing complete, so any program you can build on one of them, you can build on another.
Lisp is multiparadigm so, if you want functional, it is functional, if you want procedural, you get procedural. Although, normally, you would program functionally in Lisp.
Haskell is not quite like that.
- 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.
- 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
- adamsitting, on 10/12/2007, -1/+3I got to agree. Eiffel rocks D! Check it out for yourself.
- bpinard, on 10/12/2007, -10/+2Interesting.
USS Enterprise:
NCC 1701-D - natmaster, on 10/12/2007, -8/+3Odd. I thought they discontinued D. I guess someone else decided that would be a good name for their language...
- torhu, on 10/12/2007, -1/+1There has supposedly been several languages called 'D'.
- MichaelW2, on 10/12/2007, -11/+2Should I get a degree in Computer Science or Computer Engineering?
- Xopl, on 10/12/2007, -6/+1Get a job/internship doing something similar to what you want to be doing after college, and see what they think. Or see what kind of degrees the jobs/internships you will be applying for later on require, and do that.
Gain on-the-job experience. You're not going to get hired anywhere cool if you have a degree and no real experience.
- Xopl, on 10/12/2007, -6/+1Get a job/internship doing something similar to what you want to be doing after college, and see what they think. Or see what kind of degrees the jobs/internships you will be applying for later on require, and do that.
- tekhneek, on 10/12/2007, -5/+2I think I'll just cut to the chase and make Z and finish the need for alternative langauges completely. Z will be stateless and OS independent and it will also be a compiled parsed language :D Just kidding. Looks cool, I'll have to look into it.
- jeolmeun, on 10/12/2007, -4/+2Excel goes up to IV.
- PrisonerOfPain, on 10/12/2007, -0/+2Z does allready exist.
http://spivey.oriel.ox.ac.uk/mike/zrm/zrm.pdf
- itsbonczek, on 10/12/2007, -4/+5I find it somewhat comical that the fastest mathematical language is still FORTRAN. After all these years....
- 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. =)
- 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 :)
- 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.- 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. - 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.
- 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).
- floorpie, on 10/12/2007, -9/+1meh. I'll wait for *F*.
- shit, on 10/12/2007, -8/+2I'm sticking to C+++
- omnivector, on 10/12/2007, -11/+4I call *****. I think D is a non-starter. Why? It doesn't really bring anything to the table that you don't see in a lot of modern languages, and it's barely an improvement on C++ or Java, let alone C#. My money on the "Next Generation" language is ruby. It has concepts and abilities you don't see all together in one place. The beauty of ruby isn't that it does things other languages can't, but that it combines them all under one umbrella. Here's a quick run-down of the amazing stuff in ruby:
control structures (if, select, while, for) can RETURN a value just like a function language (scheme/lisp)
anonymous functions are considered first-rate constructs, and are heavily used throughout the language for things like iterators. Here's a cool example:
hash = { 1 => "one", 2 => "two", 3 => "three" }
hash.each_pair { |key, value|
puts "#{key} = #{value}"
}
you can ADD methods to any object, including build in types. want to add a reverse sort function to all arrays? go for it.
There's way more to the language than that. check out some examples i wrote awhile ago: http://otierney.net/ruby-examples/- 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.
- blitzman, on 10/12/2007, -2/+8The main problem with Ruby is its interpreted, and runs quite slowly compared with D.
- balzin, 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++).
- PrisonerOfPain, on 10/12/2007, -0/+1"you can ADD methods to any object, including build in types. want to add a reverse sort function to all arrays? go for it."
But... Javascript is doing that for years now...
- 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.- nousplacidus, on 10/12/2007, -0/+0funny and a good point. Nothing new here with this language.
- TheMightySkunk, on 10/12/2007, -4/+0Some nice ideas in there, but geez, WORSE string-handling than C++? Can't printf strings containing the character "0"? You gotta be kidding.
- 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).
- natmaster, on 10/12/2007, -2/+4Do we really want another GC language? Why not just keep all the other cool things, and let us manage our own memory.
- 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.
- natmaster, on 10/12/2007, -2/+3By doing explicit memory management, do you still have the overhead of Mr. GC looking for stuff to clean?
- 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.
- DrRo183, on 10/12/2007, -6/+1Damn, another one ?!?!?!?
Ehh, I'll welcome the change. - thewise1, on 10/12/2007, -2/+2On another note, it's destined to fail, since, much like C, you can't search monster.com for D.
(Of course, C existed before the search engine, so it had longevity working for it, before some smartass points out that it's quite successful :-) )- Cybert, on 10/12/2007, -3/+1Ever played Go? Same dang problem, only a whole lot worse.
- Cybert, on 10/12/2007, -6/+1Yeah yeah, I have my own darn language too. Called Dimod.
- equanimous, 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- swilly, on 10/12/2007, -2/+2Not trying to discredit you because the site is useful, but from that page:
"What fun! April Fool's Day all year long! Can you manipulate the multipliers and weights to make your favourite language the fastest programming language in the Shootout?" - 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
- swilly, on 10/12/2007, -2/+2Not trying to discredit you because the site is useful, but from that page:
- Bishoco, on 10/12/2007, -8/+4Ruby is the next-gen programming language of choice for me. And with Ruby on Rails, I think webapp programming is going to be dominated by Ruby in the future.
- jesusphreak, on 10/12/2007, -3/+3If by "next-gen" you mean 10 years old, very similar to Python, and slow as a dog.
Don't get me wrong, I like Ruby and I use it in my day-job...but its not a perfect language. - catskul, on 10/12/2007, -2/+7Ruby is interpreted; in a different class of languages. Its not worth comparing.
- jesusphreak, on 10/12/2007, -3/+3If by "next-gen" you mean 10 years old, very similar to Python, and slow as a dog.
- pauls101, on 10/12/2007, -5/+5I've looked into D several times. There's great stuff in there, like modules and strong typedefs, but to get them I have to trade things I won't give up (multiple inheritance, the preprocessor) for things I could care less about or don't want (garbage collection.) The good stuff just ain't compelling enough, considering the effort involved. And I have to wonder when C is listed as not having builtin strings or resizable / associative arrays: I'd much rather have them built into a standard library like C does. (The same for function delegates: several free libraries provide them.) And no, none of it is _exactly_ the same as D, but you know what? I don't see any "improvements" worth a learning curve.
Seems like everybody wants to "improve" C these days. It's not a perfect language, but most of the improvements seem like politically correct efforts to make it something it's not. If you're desperate for real closures or higher order functions, for example, go to a language that supports them correctly: lisp & O'Caml programs are often faster than C as well. Some of the worst offenders in this regard (kludging and shoehorning in features that just don't fit) are the C Standards Committee and boost.org: while I use the efforts of both on a daily basis, I treat them with great skepticism and refuse to touch far much more than I use.
Disclaimer: I don't care for C# either.
Not that you can''t write programs in D- thras, on 10/12/2007, -1/+1Just noting that your comment refers to C++, not C
- adamsitting, on 10/12/2007, -6/+3too late; Eiffel Eiffel Eiffel Eiffel
- jczer68, on 10/12/2007, -2/+4You'd think by now people would come up with a name that's a bit more google friendly.
- 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.- jesusphreak, on 10/12/2007, -2/+3I think the way to go these days is to use C and then use a high-level language such as Lua (extremely fast, very extensible, great C-integration, and small) on top.
I think the main problem is that C lacks OO out of the box, so most large projects are done using C , but C in and of itself is pretty much a monstrosity compared to C. So its kind of pick and chose but its difficult to have your cake and eat it, too. - thewise1, on 10/12/2007, -2/+2I modded you up because I agree. Sure it's easier to write code in C# or such higher level languages, but that doesn't make it better code.
- radu79, on 10/12/2007, -2/+2@ jesusphreak : Personally I use Pawn: http://www.compuphase.com/pawn/ in my C applications. Pawn is a very nice scripting language, with a C like syntax, and, while lacking most of the high level functions other scripting languages have, it is easy to embed and expand. And it's very fast as well.
I use it for my games, and so far I am very pleased with it.
I did try Lua, but the not so familiar syntax turned me down. I think a scriping language should be wasy to learn, otherwise what's the point?
- jesusphreak, on 10/12/2007, -2/+3I think the way to go these days is to use C and then use a high-level language such as Lua (extremely fast, very extensible, great C-integration, and small) on top.
- Jack9, on 10/12/2007, -3/+3Why arent we seeing the duplicate stories about the new-up-and-coming-better-than-C-language Varaq! http://www.geocities.com/connorbd/varaq/varaqfaq.html
Oh, that's right because it's pure unadulterated BS to promote crappy underdeveloped languages. When you have all the features you claim "to be working toward" you'll find...surprise, it's a bit bloated and slow compared to C YAY! - syko21, on 10/12/2007, -5/+2automatic garbage collection really annoyed me in C and the speed and resource requirements for java were insane. this seems like a good mix
- JoeCoder, on 10/12/2007, -1/+4But C didn't have a garbage collector.
- GrimLeaper, on 10/12/2007, -0/+1Well, you can see how annoying it would be then, because it would never collect anything!
(I think syko probably meant to say C#.)
- 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.- 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.
- 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. - finnif, on 10/12/2007, -1/+1You're right -- smaller programmers can go with these kinds of things and often do. In the long term, that can go wrong just as much as it can go right. How often have you walked into a shop and groaned because someone wrote a critical piece of code around TCL 8 years ago -- when the company was small and no one cared what language someone chose -- and no one wants to support it anymore? It's happened to me several times in my career with various fad languages/frameworks/etc.
Gambling on smaller languages without a lot of momentum is a win or lose situation. If you gambled on Ruby before last year, it would look like you'd have won right now (though the interpreter needs significant improvement to be considered seriously outside of Rails). If you'd gambled on D, the jury's still out.
BTW, to the other poster who pointed out that D is one of the fastest growing languages. According to that chart, Visual FoxPro is the "fastest growing" language. That chart is near meaningless for languages that are used by less than 1% of coders.
- LordVoldemort, on 10/12/2007, -0/+1The language links with standard C/Cpp, so convincing companies should be easy, and compiling for embedded devices is.... well.... a compiler issue. So yes.
- LordVoldemort, on 10/12/2007, -0/+1I should say, the compiler produces standard object files, so it should be able to play nice with anything that is also standard. This is a compiled language, and so it is asolutely the same as every other compiled language; it is as good as the compiler can optimize. It's only drawback might be the inclusion of unecessary code.
- ChileanGoD, on 10/12/2007, -2/+3...................................... :D
- chriscooke, on 10/12/2007, -3/+0FFS everyone is missing the point its horses for courses when it comes to programming languages.
- yimmy149, on 10/12/2007, -2/+1I really hope the "next big thing" has named parameters a la Smalltalk or Objective C. I hate having to lookup docs on methods because all the IDE can tell me is that doSomething expects "int, int, long, String, Object" as arguments.
- quirk3k, on 10/12/2007, -9/+1Is it just me or isn't this link SPAM?!
No Digg, just marked it as SPAM - nessup, on 10/12/2007, -4/+2I don't see D catching on for another 100 years.
- CptnObvious, on 10/12/2007, -2/+3If it is "like Java" I am staying away from it. The Java syntax is one of the worse IMHO. Now if they could pull something like Python's syntax it would be nice, but that would be hard to do with a compiled language.
- Beacon, on 10/12/2007, -4/+2So this gives us, B, C, and D languages. Is it safe to assume Microsoft will attempt to counter with an E#, or E~, or some similar crap?
- geezusfreeek, on 10/12/2007, -3/+1I've never really much liked D. It doesn't really offer anything that isn't offered in other languages.
- IncognitoCraven, on 10/12/2007, -3/+0Bad name, C++ = D
- MrKite, on 10/12/2007, -3/+1Not true. C++ = C#. Now if you said C#++, then I would have agreed. Ok, so I'm a musician.
- j_bellone, on 10/12/2007, -3/+1C + 1 = D :. C++ = D
- cuppyCake, on 10/12/2007, -1/+2It looks interesting... I'm gonna download the compilier and play with it... but what a crappy name. At least C++ and Java are semi-creative... will this be followed by 'E'? Or perhaps, 'D++'?
- MrKite, on 10/12/2007, -2/+1Actually, I think the next one will be Eb (E flat)
- 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. - 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)- 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. - clayasaurus, on 10/12/2007, -2/+1flood... arg.
- 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"
- 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 ).
- IstariSkoda, on 10/12/2007, -3/+0I don't see it happening.
- msipes, on 10/12/2007, -3/+1Wow. That has to be the most inaccurate C# comparison I have ever seen. No Digg....inaccurate.
- ebola, on 10/12/2007, -3/+1Old news, I remember playing with D early last year. I used it for a couple of days and gave up. All our work is in C or Java, no one is gonna bother about D until it's a Java/C++/C killer. Let's see in 5 years. Till then, no digg.
- gonz, on 10/12/2007, -3/+1There's no reason to travel beyond C++ O_o
- Arevos, on 10/12/2007, -0/+0Unless you want to become a better programmer.
- SteveGJones, on 10/12/2007, -1/+0TeleUSE (http://www.aonix.com/teleuse_faq.html) had a language called "D" back in the early 90s. And there are bound to have been a whole heap of other similar efforts with the same name.
-
Show 51 - 58 of 58 discussions

The Digg Toolbar for Firefox lets you Digg, submit content, and keep track of Digg even when you're not on the Digg site. Download the official