What language after?

Started by
26 comments, last by Oluseyi 19 years, 4 months ago
While learning Pascal after using C++ would be a step backwards IMHO, I'd recommend taking a look at the D programming language. It simplifies many things existing in C++ and adds some more. Might be an alternative to Java or C#
In case you want to take a look, here are the links:
http://digitalmars.com/d/
http://dsource.org/tutorials/
Advertisement
The D Programming Language is for C++ programmers who are frustrated with minor inconsistencies and awkwardness in the language and compilers. It's not a real option for someone looking to learn more about programming and programming languages. Personally, I think it's a waste of time.
A waste of time ? I think it's a lil bit too harsh... Sure, if one wants to change the way one looks at programming, it's better to look at very different languages. Could be Sather, Haskell, Prolog, or even a more real-world language, Python (changed much for me). I was never frustraded with C++, yet D seems so much more "Right" after programming in Python that I don't want to go back to C++
Quote:Original post by h3r3tic
A waste of time ? I think it's a lil bit too harsh...
Not really. What purpose is it supposed to serve? What problems does it address? What abstractions does it add?

None. None. None.

Most damning of all, how much support has it garnered in the years since its release? Pretty damn little. It's an attempt to radically reshape C++, but such attempts don't work without a significant enough break with the previous approach. C++ succeeded because it initially served as an adapter to C. After gaining sufficient momentum, despite intense criticism, it took off. D breaks with C++ too soon. It's dead in the water.

Worst of all, the programming model espoused by C++ is not viable for a new language. Single-pass parse/compile? Header files? Forward declaration? The future lies in higher levels of programmer abstraction - high-level types, multi-platform targets (via intermediate languages and JIT), language-transparent interop. D is too little, too late.

Ergo, a waste of time.
Quote:Original post by lord_buctree
What language should I learn after i have used C++ and OpenGL?
I was kind of thinking about C# or Java, what do you think? Pascal?

Depends on what you're after. :)

If you just want something useful, stick with C++ and get damn good at it. :)
Or grab SQL or a popular scripting language like Python or Lua.

If you want to learn completely different programming paradigms and languages, take a look at ML, Scheme or Prolog, for example.

If you want to explore more OO stuff, how about Smalltalk?
How about Language Oriented Programming? You'll have to learn many languages, but have to write less code.

See also The Death of Computer Languages
So obviously not Pascal, C#, or JAVA. You say LISP or Python. Ruby maybe quite cool.
Lord_BuctreeDead Grass Interactive
Quote:Original post by Oluseyi
Not really. What purpose is it supposed to serve? What problems does it address? What abstractions does it add?

None. None. None.


I think you haven't read much about the D programming language or you have some outdated information. It adds a lot, take garbage collection, design by contract or mixins as an example. And yeah, there are people that claim that it all can be done in C++. But still what can be done in C++ can be done in C, yet it's more error prone and tedious.

Quote:
Most damning of all, how much support has it garnered in the years since its release? Pretty damn little. It's an attempt to radically reshape C++, but such attempts don't work without a significant enough break with the previous approach. C++ succeeded because it initially served as an adapter to C. After gaining sufficient momentum, despite intense criticism, it took off. D breaks with C++ too soon. It's dead in the water.


AFAIK, it hasn't been released in the 1.0 version yet, it's goning to happen pretty soon. There's already been released the first book about D, in Japan, but the creators of D have signed a contract with Addison-Wesley to write the real book about D, it's going to be released closely with the first version of the language.
As for the community support, it's constantly gaining more attention, remember that C++ also didn't have many fans at the beginning, but then everyone began to say it's THE language. D may not have such a great impact on the community, yet it will attract lots of newbies that are frustrated with the complexities of C++ and these people may form the new 'wave' of programmers.


Quote:
Worst of all, the programming model espoused by C++ is not viable for a new language. Single-pass parse/compile? Header files? Forward declaration? The future lies in higher levels of programmer abstraction - high-level types, multi-platform targets (via intermediate languages and JIT), language-transparent interop. D is too little, too late.


I think you're missing some important info about D. It has no header files, no need for forward declarations, it's compile times are about 0.1% - 1% of the compile time of equivalent C++ programs. Once I run a compile script for quite a big project and thought that noting happened, so I re-ran the script with seemingly no effect. I was positively surprised to see that my binaries were already done. It's blazingly fast, thus speeding up the tedious write->compile->run cycles.
As for high-level types, I don't get what you mean... D has fully garbage collected classes, much like the ones Java provides, whilst still giving the programmer the ability to use C-like structs (with binary compatibility), inline assembly and such.
JIT ? No problem, there's a D.net compiler in development. There's absolutely no limitation to compile D to bytecode and run it thru JIT.

Some people may be against the D language, but there are ones that used to be C++ zealots and switched to D (including me). This process is going to continue. D gives people the features they want, being pretty open to proposals. The 1.0 compiler is already done, yet there are already lists of proposals for 2.0 that haven't been seen in many languages, if any at all.
True, the 1.0 D language may not add much functionality, it may not change the way one codes, yet it makes many things SO much simpler that when you get used to them, you never want to come back. This may sound like a marketing fan, I had the same attitude at a time, but then I got addicted to D.

"Switch to... whatever the hell you want" ;)
I like c#, it's really easy to use. Maybe for developing something fast. But c++ would be better for commercial purposes. I mean I've been learning c++ and directx for a year now, and what it took for days in that only took hours in c#. I would like to know how fast it is compared to c/c++ though.
IMHO Well it depends what you wan't to get with learning new language. Pascal is good especially for those who are starting programming it is strict not like Visual Basic, the structuring is logical and the programming is pretty fast. Looking for Pascal ? Better look at delphi - object pascal - this is what I call fast app development.

Looking for know how high level languages actually work ? Then why not try assembly or C ?

C# and Java are good examples of new look of old languages aimed toward the future, The main idea is to work with precreated classe for all purposes.

The best for you would be is to try all of them :). Atleast I did :) Well I didn't say I am complitly familiar with all the techniques, but I know what each languages is and how it differs from others.

Feel free to correct me if I did miss or mistyped something.

This topic is closed to new replies.

Advertisement