Thread overview | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
June 21, 2005 What language role does D fullfill? | ||||
---|---|---|---|---|
| ||||
Ok, I'm just wondering what people think. We all know to use the right tool for the right job, so when is D the right tool for the job? C ******************************************************************* Sucessor to assembly. Pros: - easy to implement compile, hence more x-platform - very low level, fast Cons: - hard to master - ugly C++ ******************************************************************* Sucessor to C. Pros: - fast - object oriented - templates - customizable Cons: - all the uglyness of C, with some added uglyness of C++ (templates, using the library for everything) - hard to implement compiler for Java ******************************************************************* Sucessor to C++ Pros: - x-platform 'binaries' - huge library - suger - garbage collected Cons: - slow C# ******************************************************************* Note: I really don't know much about C# Sucessor to Java Pros: - Everything java is plus microsofts stuff Cons: - it is microsoft only, unless you look at mono --------------------- So, what new thing does D bring to the table that no other language has done? D ******************************************************************* Successor to C, C++, and Java. Pros: - garbage collected (Java/C#) - high level with low level retainability (C++) - not ugly (Java/C#) - easy to implement (none other?) - fast (C++) - fast compile (none other?) - design by contract (none other?) Cons: - not enough exposure / usage - not as many libraries as C++ / Java So, here is what I am seeing D's niche as being... * A more powerful and easier to implement on different platforms (palm, etc.) * If you want a modern garbage collected language that is fast All other things seem to be already covered by the other langauges. Am I missing something? D seems to be an assimilation language to assimilate users from other languages, instead of doing something new on its own. I know D is poised to compete as a 'C/C++' killer, but too many code is already in C/C++ for it to be able to kill those languages off. D seems to want to compete with Java/C# too, and it can if performance and easy implementation is the priority. While Design by Contract is great, I think it would take a while for programmers to use it effectively and realize its benefits, who are not used to it from C/C++. Maybe my point is that right now D is a 'trickle-down' language. Users trickle in from all sorts of other languages because D does a few things that others cannot do (dbc, native & gc, fast, pretty) all at once. If D is to be used widely, do we need to add something new? Something that no other language can do? (metaprogramming anyone?) Just my 2 cents. -------- PS --------- I switched from C++ to D mainly for one reason only. C++ seems like a hack, where as D is more thought out and has more elegant answers to the same old problems. |
June 21, 2005 Re: What language role does D fullfill? | ||||
---|---|---|---|---|
| ||||
Posted in reply to clayasaurus | clayasaurus wrote:
>
> I switched from C++ to D mainly for one reason only. C++ seems like a hack, where as D is more thought out and has more elegant answers to the same old problems.
That's the main reason that I prefer D where I can, although it doesn't offer anything amazingly special over C/C++ (well, GC maybe), D is actually nice to write code in. After writing even a little bit of D code and getting used to it, I was loath to go back to a C++ compiler!
So for me the difference between C/C++ and D is like the difference between driving a Lada and driving a Merceedes - they both get you where you want to do, but one gets you there in style and comfort :)
Brad
|
June 21, 2005 Re: What language role does D fullfill? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Brad Beveridge | Brad Beveridge wrote: > clayasaurus wrote: > >> >> I switched from C++ to D mainly for one reason only. C++ seems like a hack, where as D is more thought out and has more elegant answers to the same old problems. > > > That's the main reason that I prefer D where I can, although it doesn't offer anything amazingly special over C/C++ (well, GC maybe), D is actually nice to write code in. After writing even a little bit of D code and getting used to it, I was loath to go back to a C++ compiler! > So for me the difference between C/C++ and D is like the difference between driving a Lada and driving a Merceedes - they both get you where you want to do, but one gets you there in style and comfort :) > > Brad Yes. Maybe the whole point of D should just simply be to avoid this... http://www.andromeda.com/people/ddyer/topten.html |
June 21, 2005 Re: What language role does D fullfill? | ||||
---|---|---|---|---|
| ||||
Posted in reply to clayasaurus | In article <d99jqm$h1i$1@digitaldaemon.com>, clayasaurus says... > >I switched from C++ to D mainly for one reason only. C++ seems like a hack, where as D is more thought out and has more elegant answers to the same old problems. I know how you feel. I, for one, took the longest possible road to get to D. I was in the middle of writing a "next-generation MUD" using C# for a while, and I abandoned that in favor of C++ for speed and portability; Mono wasn't stable at the time. That C++ architecture grew to incorporate my own object library and garbage collector design. I even had some features built into the GC to assist with remoting and proxy generation ala C#. After all that effort, I wound up with a really fancy class library that took forever to compile, was riddled with templates and macros, and was difficult to understand, document and maintain. It was a mess. Along came D, and just about everything I was looking for. It does OOP and GC correctly, all without a VM. I haven't looked back. > >If D is to be used widely, do we need to add something new? Something that no other language can do? (metaprogramming anyone?) > Metaprogramming and vectorization come to mind, as they have been talked to death in this newsgroup. I've been convinced of their usefulness for certain applications, and to have a C-like language that has such features would put D well ahead of the rest. I think something along the lines of Java's classloader would be worth having. Sure it's borrowing an idea from another langauge, but I have yet to see a compiled language that breaks from using OS support for dynamic bindings. I've dreamed of something that would just load .obj or .lib files *directly* and bind symbols with the environment at run-time. Its either that or provide ways to build runtime symbolic binding support to the runtime/compiler so we can use dll/so files in this manner. No language outside of a VM or scripting language has this kind of support. Also, having automatic proxy generation is extremely useful for environments like CORBA or OODBMS. This would involve runtime support for creating an object instance that implements stub methods, to satisfy a given interface (vtable). The "proxy object" created will now "feel" like a first-class object, but will have each method communicate over a pipe, stream or socket instead of running local code. Again, this is something that I haven't seen outside an interpreted or VM-based language. The above would also require full dynamic, run-time reflection. Something that includes the degree of introspection seen in Python or at least Java. *Again*, a feature not seen in languages in the same class as D. As for completely original ideas? Well, I'm out of ammo. If it satisfies your thirst for innovation, then perhaps the aim for D to become a feature super-set is all it takes? Right now, I want to tell folks "D takes the best of C, C# and Java", but that's not completely true... yet. - EricAnderton at yahoo |
June 21, 2005 Re: What language role does D fullfill? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Brad Beveridge | Brad Beveridge wrote: > So for me the difference between C/C++ and D is like the difference between driving a Lada and driving a Merceedes - they both get you where you want to do, but one gets you there in style and comfort :) Yeap, good analogy. However current situation has a drawback. If I drive Lada I know that when it brokes I can visit nearest autoshop and buy broken detail for a $3, if I drive Mercedes I'll have to visit half shops of Moscow just to find detail, and another half to find it cheaper then $1000. So if I'll start big project in D I'ld have to write all for myself and GUI lib, and Math lib, and parsers, and plugins for IDE's, and etc etc. So for now I prefer C++ for money and D for fun... an have to drive a Lada in programming as well as in real life :) -- Victor Nakoryakov nail-mail<at>mail<dot>ru Krasnoznamensk, Moscow, Russia |
June 21, 2005 [OT] Re: What language role does D fullfill? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Brad Beveridge | In article <d99kcq$hd0$1@digitaldaemon.com>, Brad Beveridge says... > >So for me the difference between C/C++ and D is like the difference between driving a Lada and driving a Merceedes - they both get you where you want to do, but one gets you there in style and comfort :) > OT: Living here in the USA, I had no clue what a "Lada" was. So here we go. This is the low-end model on their website: http://www.lada.de/html_e/content_e/models/lada_2110_pricelist.html (at today's rate, thats $9634.39 USD.) And the sales pitch: This saloon not only looks good on the outside! Inside it offers spacious accommodation for 5, easily accessed by 4 doors. The generous interior of the LADA 2110 offers even more comfort-from the four electric windows via the remote bootlock to the electronic immobilizer and the automatic heating system. All fitted as standard in the LADA 2110 with 56kW (77hp) or 67kW (91hp) and unbeatable value for money! - EricAnderton at yahoo |
June 21, 2005 Re: [OT] Re: What language role does D fullfill? | ||||
---|---|---|---|---|
| ||||
Posted in reply to pragma | pragma wrote: > In article <d99kcq$hd0$1@digitaldaemon.com>, Brad Beveridge says... > > OT: Living here in the USA, I had no clue what a "Lada" was. > > So here we go. This is the low-end model on their website: > > http://www.lada.de/html_e/content_e/models/lada_2110_pricelist.html > > (at today's rate, thats $9634.39 USD.) > > And the sales pitch: > > This saloon not only looks good on the outside! Inside it offers spacious > accommodation for 5, easily accessed by 4 doors. The generous interior of the > LADA 2110 offers even more comfort-from the four electric windows via the remote > bootlock to the electronic immobilizer and the automatic heating system. > All fitted as standard in the LADA 2110 with 56kW (77hp) or 67kW (91hp) and > unbeatable value for money! > > - EricAnderton at yahoo I've recently moved to the USA, but couldn't think of a brand of car that has a poor reputation for comfort, etc :) I'm originally from New Zealand, and Lada's (although they may be better now) don't have a good reputation there :) Brad |
June 21, 2005 Re: [OT] Re: What language role does D fullfill? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Brad Beveridge | Oh dear, I should have looked at the link first - they're still UGLY! |
June 21, 2005 Re: [OT] Re: What language role does D fullfill? | ||||
---|---|---|---|---|
| ||||
Posted in reply to pragma | pragma wrote: > OT: Living here in the USA, I had no clue what a "Lada" was. > > So here we go. This is the low-end model on their website: > > http://www.lada.de/html_e/content_e/models/lada_2110_pricelist.html Well, to me Lada is more like this one: http://meelis.klimov.ee/auto/lada.jpg -- Tomasz Stachowiak /+ a.k.a. h3r3tic +/ |
June 21, 2005 Re: What language role does D fullfill? | ||||
---|---|---|---|---|
| ||||
Posted in reply to clayasaurus | In article <d99jqm$h1i$1@digitaldaemon.com>, clayasaurus says... > <snip> > What language role does D fullfill? I just think that D hits a sweet spot. C doesn't scale, my apps should. C++ is ugly, my code shouldn't be. Java is slow, I don't want my apps to be. C# is vendor-locked-in, my apps can't be. What I like about D is that it balances all these features, and still manages to be fun to program in. >If D is to be used widely, do we need to add something new? Something that no other language can do? (metaprogramming anyone?) Aspect-oriented programming. While not new, doing it cleanly and sanely would clearly nudge D one notch higher on my scale. (I do have some ideas regarding this, but I'll save that for another thread). -Nod- |
Copyright © 1999-2021 by the D Language Foundation