On Thu, Jun 10, 2010 at 15:23, Lex Trotman elextr@gmail.com wrote:
On 10 June 2010 21:03, Nick Treleaven nick.treleaven@btinternet.com wrote:
On Thu, 10 Jun 2010 11:44:24 +0200 Jiří Techet techet@gmail.com wrote:
And you program in C++ !! I'd have thought overriding some entries only would be easy to understand :-)
Yes, but I didn't say I like C++ - I don't. The language is made in a completely wrong way. Unfortunately the fact is that it's one of the most wide-spread "low-level" OO languages with lots of libraries existing for it and programs written in it. But I really hope that one day it gets replaced by something like go:
Go is not a good replacement for C++, try D. Some people say Go is a good replacement for C.
And some people say that it has sadly made some decisions that prevent it being that, but with Google behind it it may succeed anyway, after all C succeeded for non technical reasons.
It's definitely not a replacement for C - C is just a higher-level assembler that is (mis)used by projects that would normally use a higher-level language if there was a sane alternative (geany for example). You can almost see the instructions into which it translates. I can't imagine that projects like linux kernel would ever use a garbage-collected languauge.
I've never used D so I can't comment much on that but as Lex said - D has no chance because there is no big corporation behind it, while for go I see some chances. And I like many design decisions behind go - the good thing is that they have taken into account both practical and theoretical aspects. One has to make compromises (e.g. to have easy to use build commands dialog or more general dialog ;-), but I think they went the right direction. And it's fast. I spend one hour a day just compiling with C++ code.
Anyway, for practical reasons the best choice right now is to stick with C, C++, Python, and if I have to, Java. One should just use the most portable, tested and widespread language.
And some say C++ is best replaced by functional languages, if only I could get my head around tail calls.
From my experience with Haskell my impression is that functional
languages don't scale well for bigger projects, that's why they are not so much used - I've seen their uses just for toy-applications (there are exceptions like darcs, but these are real exceptions). And at the end if you want to do things like GUI or SQL, you have to use monads, which is just functional reinvention of procedural languages.
Cheers,
Jiri