Earlier quoted context omitted.
Haskell: ML is eager. Go: callback hell is hard to manage, but threads are too expensive.
If we're 'fixing' ML, type classes are a huge fix for the kludgy-yet-precise 2 + 3 => 5, 2.0 +. 3.0 => 5.0 .
What languages fix
81–90 of 91 posts
Re: What languages fix
#82Way back when, I knocked up a graph of this: http://www.solipsys.co.uk/new/EveryLanguageFixesSomething.ht... There is also an enhanced version that brought it a little further up to date. Problem is, people keep insisting that it must be wrong, because X doesn't descend from Y, etc. That's why the text at the top tries to emphasise that this is a graph of "developed because of a perceived short-coming." Added in edit…
Re: What languages fix
#83Icon: Generators are cool.
FORTH: Omit needless features! Omit needless features! Omit needless features!
Re: What languages fix
#84Way back when, I knocked up a graph of this: http://www.solipsys.co.uk/new/EveryLanguageFixesSomething.ht... There is also an enhanced version that brought it a little further up to date. Problem is, people keep insisting that it must be wrong, because X doesn't descend from Y, etc. That's why the text at the top tries to emphasise that this is a graph of "developed because of a perceived short-coming." Added in edit…
This still gets Python wrong. It wasn't a reaction to Perl at all.
Re: What languages fix
#85Earlier quoted context omitted.
http://www.paulgraham.com/quotes.html "We were not out to win over the Lisp programmers; we were after the C++ programmers. We managed to drag a lot of them about halfway to Lisp." - Guy Steele, Java spec co-author Reasonably original-ish source: http://people.csail.mit.edu/gregs/ll1-discuss-archive-html/m... . Relative to C++, Java is actually a lot like Lisp. Don't forget that objects are a poor man's closures (and…
Guy Steele didn't actually design Java. He was hired after the language was designed to write the spec. Of course, writing a specification exposed problems with the design, and those problems had to be fixed, so he had some influence on those parts of the language. Dragging out that quote doesn't really answer the question. What about Java makes it like Lisp? The ability to (painfully) implement closures with objects…
Anyway, the context is explicitly Java vs C++, not Smalltalk or Ruby or Python. I imagine if Smalltalk were the dominant platform this would've turned out differently. So let's do a compare and contrast.
Java has the following properties: methods are all virtual; single inheritance; inheritance isn't public/private; final instead of const; GC and references w/o memory alloc or pointers; a package system exists; generics instead of templates; no operator overloading. And Java 6 does have a limited form of closures, believe it or not-- you can access a variable declared as final with an anonymous inner class.
None of that is true of C++, and just about all of those substantially increase the complexity of the language. I don't even like Java, mind you, but after reading Effective C++ the influence of higher-level languages like Lisp was pretty obvious to me, even if Lisp might not have been the only or even primary influence on Java.
Re: What languages fix
#86PHP: Perl is too hard to configure and run on the web
I don't think the historical evidence supports this. PHP was invented as a templating DSL for C programmers. I'd propose: PHP (version 0): C is not an HTML templating language; Perl and Python are too heavyweight as embedded templating languages, given that all of our logic is in C anyway. PHP (version N): PHP works fine, except it's missing function F . ...and so on, ad infinitum . PHP doesn't really fit the paradig…
Re: What languages fix
#87Haskell: other languages make making mistakes too easy. This article came up about a year ago[1], so I'm just reusing my comment :P. Now I'd also add: Go: C is the prefect language, except it's too low-level. Ermine[2]: Scala is not functional (enough). [1]: https://news.ycombinator.com/item?id=4954663 [2]: https://github.com/ermine-language/ermine
Haskell: ML is eager. Go: callback hell is hard to manage, but threads are too expensive.
Re: What languages fix
#88Javascript: Scheme is too unapproachable
http://journal.stuffwithstuff.com/2013/07/18/javascript-isnt...
I'd happily agree to Self rather than Scheme but I can't edit now :)
Re: What languages fix
#89Had to add this because I thought it was fairly obvious, but all the other Scala mentions were either snarky or seemed to miss the core point of the title of the post : "What languages fix" Scala : functional programming without leaving the JVM Because enterprises have spent a decade or so building up JVM expertise in the form of Java.
Scala is much more than a functional language, its more like Java done much better, not all of its useful features are functional. Maybe you meant clojure?
Re: What languages fix
#90Only slightly relevant, but an insight I had recently. I'd noticed that all programming languages were tree-oriented. You kind of group logic into branches. This sounds obvious, but work with me here. This reminded me of the early days of yahoo: it was a big directory (a tree structure). Then we had this revolution where everything became about loose data that was tagged. You'd have tagged data, and then search on th…