LLVM 3.0 released
LLVM 3.0 released
Posted Dec 2, 2011 23:45 UTC (Fri) by kragilkragil2 (guest, #76172)In reply to: LLVM 3.0 released by hengestone
Parent article: LLVM 3.0 released
I think the only way a new language can gain ground is by doing one thing better than all the alternatives. Like Vala does right now, it seems to be the prefered language for GTK/Gnome development right now. Even for some system tools, which is quite amazing.
Posted Dec 5, 2011 9:14 UTC (Mon)
by epa (subscriber, #39769)
[Link] (26 responses)
Posted Dec 5, 2011 19:00 UTC (Mon)
by viro (subscriber, #7872)
[Link]
Posted Dec 5, 2011 19:30 UTC (Mon)
by rgmoore (✭ supporter ✭, #75)
[Link]
Brooks discussed this exact problem in The Mythical Man Month; he describes it as the second system effect. Designers try to improve their second design by adding all the features they were forced to leave out of the first one, which winds up bloating it out of control. I suspect that time-based releases, and a philosophy of frequent releases in general, are beneficial partly because they restrain architects from adding too much in one go. If you know you have a limited time until the next release, you're forced to be choosy about what you add.
Posted Dec 6, 2011 14:14 UTC (Tue)
by HelloWorld (guest, #56129)
[Link]
Posted Dec 6, 2011 22:48 UTC (Tue)
by daglwn (guest, #65432)
[Link] (22 responses)
Posted Dec 7, 2011 3:24 UTC (Wed)
by k8to (guest, #15413)
[Link] (20 responses)
Posted Dec 7, 2011 15:39 UTC (Wed)
by daglwn (guest, #65432)
[Link] (19 responses)
Posted Dec 7, 2011 20:22 UTC (Wed)
by k8to (guest, #15413)
[Link] (18 responses)
You mistake something that you believe to be a debating point for something that can actually be debated.
Posted Dec 7, 2011 23:08 UTC (Wed)
by daglwn (guest, #65432)
[Link] (15 responses)
That's not bad. That's progress.
Posted Dec 8, 2011 8:27 UTC (Thu)
by thedevil (guest, #32913)
[Link] (8 responses)
Extremely dubious. I am sure you can come up with examples (both before and after) yourself.
To make it even close you'd need to add a qualifier like "... that is mostly compatible with C". Even then it is not a closed case.
Posted Dec 9, 2011 16:48 UTC (Fri)
by daglwn (guest, #65432)
[Link] (7 responses)
None that I know of. Not even without the "compatible with C" qualifier. Perhaps there is an esoteric project somewhere that does this but certainly no other mainstream language. C++ doesn't have every language feature possible but it does have a unique combination of them.
Posted Dec 10, 2011 3:33 UTC (Sat)
by Cyberax (✭ supporter ✭, #52523)
[Link] (1 responses)
Alas, no real manual memory management.
Posted Dec 12, 2011 4:20 UTC (Mon)
by daglwn (guest, #65432)
[Link]
Posted Dec 10, 2011 9:33 UTC (Sat)
by paulj (subscriber, #341)
[Link] (4 responses)
Posted Dec 12, 2011 4:18 UTC (Mon)
by daglwn (guest, #65432)
[Link] (3 responses)
Vala is cool. I definitely see the value in it. But it isn't a replacement for C++.
Posted Dec 12, 2011 7:17 UTC (Mon)
by paulj (subscriber, #341)
[Link] (2 responses)
http://live.gnome.org/Vala/Tutorial#Interfaces_.2BAC8_Mixins
Vala has generics. I'm not sure what aspect of C++ templates you miss, but I sure don't miss the multiple-pages or more of incomprehensible error messages that are inherent to even minor mistakes with C++ templates. ;)
Vala is statically typed, not sure why you'd think otherwise (it allows type inference of LHS in assignments with "var x = y;" - a handy convenience, and still statically typed).
Posted Dec 12, 2011 10:11 UTC (Mon)
by mpr22 (subscriber, #60784)
[Link] (1 responses)
As that page describes it, Vala allows you to inherit at most one class and any number of interfaces (and the page explicitly says that it's a restricted form of multiple inheritance). C++ allows you to inherit multiple concrete classes. (It happens to be the case that I've never encountered a case where I thought I had a reason to use this capability, but I am not every C++ programmer.)
Posted Dec 12, 2011 10:38 UTC (Mon)
by paulj (subscriber, #341)
[Link]
Posted Dec 8, 2011 9:29 UTC (Thu)
by k8to (guest, #15413)
[Link]
Posted Dec 13, 2011 18:39 UTC (Tue)
by dgm (subscriber, #49227)
[Link] (4 responses)
Both are Turing-complete, and thus are equivalent in power (as in what you can write with them). Maybe you wanted to use the term "expressive", but that's not very well defined (http://en.wikipedia.org/wiki/Comparison_of_programming_la...). In fact, according to that article, Python, Smalltalk and Perl are more expressive than C++ (and much more than C).
Posted Dec 13, 2011 20:17 UTC (Tue)
by nybble41 (subscriber, #55106)
[Link] (3 responses)
[1] See also: "Turing tarpit" <http://en.wikipedia.org/wiki/Turing_tarpit>
Posted Dec 13, 2011 21:27 UTC (Tue)
by mathstuf (subscriber, #69389)
[Link] (1 responses)
Haskell has Template Haskell[1][2] (it's an extension, but since GHC is pretty much the only compiler for Haskell, that's pretty much moot).
[1]https://en.wikipedia.org/wiki/Template_Haskell
Posted Dec 13, 2011 21:49 UTC (Tue)
by nybble41 (subscriber, #55106)
[Link]
Posted Dec 14, 2011 1:14 UTC (Wed)
by dgm (subscriber, #49227)
[Link]
Posted Dec 9, 2011 16:33 UTC (Fri)
by HelloWorld (guest, #56129)
[Link] (1 responses)
Posted Dec 10, 2011 2:46 UTC (Sat)
by rgmoore (✭ supporter ✭, #75)
[Link]
To some extent, simplicity is in the eye of the beholder. Code that uses the extra expressiveness of a more feature rich language can be shorter and easier to read and write, but only within limits. It may be easier to read or write one fancy function instead of three simple ones, but only if you remember what the fancy function does. As soon as you expand your vocabulary beyond what people can remember, you waste more time looking through documentation than you save by making things more compact. Of course "what people can remember" varies from person to person, but the rare function call that sends people scurrying to figure out what it does is a real danger of a big language.
Posted Dec 14, 2011 11:21 UTC (Wed)
by epa (subscriber, #39769)
[Link]
LLVM 3.0 released
LLVM 3.0 released
LLVM 3.0 released
LLVM 3.0 released
LLVM 3.0 released
LLVM 3.0 released
LLVM 3.0 released
LLVM 3.0 released
LLVM 3.0 released
LLVM 3.0 released
LLVM 3.0 released
LLVM 3.0 released
LLVM 3.0 released
LLVM 3.0 released
LLVM 3.0 released
LLVM 3.0 released
LLVM 3.0 released
LLVM 3.0 released
LLVM 3.0 released
LLVM 3.0 released
LLVM 3.0 released
LLVM 3.0 released
[2]http://www.haskell.org/haskellwiki/Template_Haskell
LLVM 3.0 released
LLVM 3.0 released
LLVM 3.0 released
Yes, but does that matter? Personally, I don't care too much about language complexity, I care about the complexity of software written in a language, and C tends to make even simple things harder than they need to be.
LLVM 3.0 released
LLVM 3.0 released
