7 ms·
What Languages Fix (2002)
- tikhonj 14y agoHaskell: other languages make making mistakes too easy.
- tel 14y agoHaskell: programming is math but other languages make that unnecessarily hard to see
- jackpirate 14y agoAgda: programming is math but other languages (even haskell) make that unnecessarily hard to see FTFY
- tel 14y agoHaha, yeah. Or Agda: when Turing completeness gets in the way of your mathematical logic.
- aero142 14y agoHaskell: My proofs are correct but my code is wrong. I just want to execute my induction proofs.
- dxbydt 14y agoHaskell: what every Scala baby wants to be when he grows up
- jfarmer 14y agoI'd say, Ruby: Smalltalk is scary and Perl is a kludge
- mark-r 14y agoNot sure when this came out, because none of these essays are dated - this one is near the bottom of the list. But I like it!
- mark-r 14y agoAssembly: binary is too low-level.
- zachrose 14y agoBinary: Ternary is one thing too many.
- guard-of-terra 14y ago[:|||||||||||||:]
- sudont 14y agoVB: Programmers are too expensive. Business Process people are more necessary. MUMPS: All other languages weren't written for/by medical doctors/professionals. Lua: Python and Ruby are each too big to embed.
- gruseom 14y agoLua is as old as Python and Ruby. The alternative was Tcl, and the problem with it wasn't embeddability: In 1993, the only real contender was Tcl, which had been explicitly designed to be embedded into applications. However, Tcl had unfamiliar syntax, did not offer good support for data description, and ran only on Unix platforms. http://www.lua.org/doc/hopl.pdf http://www.lua.org/doc/hopl.pdf
- sudont 14y agoCrap, you caught me on that one. I thought it was a 2000's era language.
- eldavido 14y agoRuby: Perl has crap OO, and Lisp syntax is scary. Perl did a lot of things right, e.g. regex literals, wide range of terseness possible (one-liners vs. large modular programs), CPAN, but I could never get over its ugly, hacked-in implementation of objects that kinda-sorta behaved like hashes and didn't do information hiding well.
- thetrb 14y agoYes, but Perl has better libraries for that now (e.g. Moose)
- guard-of-terra 14y agoYou can't have good OO "outside" your language. You can't duct tape some OO to a language and consider it done. That's classic: PHP guy say, "we have objects in PHP5 so now it is Object Oriented". It's not. To say that language is Object Oriented because it has classes is like to say that language is Functional because it has functions. So, Moose is a clever thing, but does it make every hash an object (I genuinely wonder)? Does it provide OO API for I/O? With exceptions? Does it make everything behave consistently? Because consistency seems to be the main reason that Perl did not become the final stop.
- chromatic 14y agoBecause consistency seems to be the main reason that Perl did not become the final stop. Everyone's using Smalltalk now? Consistency seems to be overrated; most of the popular languages these days seem to be multi-paradigmatic.
- zem 14y agoCLOS did a stellar job of adding OO to a non-OO language.
- guard-of-terra 14y agoThere are all kinds of opinions about this: http://steve-yegge.blogspot.ru/2006/04/lisp-is-not-acceptable-lisp.html http://steve-yegge.blogspot.ru/2006/04/lisp-is-not-acceptabl... Yes, it's wonderful that you have the band-aid — or maybe duct tape is a better analogy — certainly you miss them dearly when you're working in other languages. But you don't want to have to build your entire object system with duct tape.
- zachrose 14y agoJavaScript: UI code should be asynchronous and throw as few errors as possible.
- guard-of-terra 14y agoJavaScript: Web pages aren't interactive enough.
- xiaoma 14y agoBrainfuck: Assembly provides too much, and obfuscated C is still readable
- emeraldd 14y agoMalbolge: Other languages can be used to write programs by a human being. http://en.wikipedia.org/wiki/Malbolge http://en.wikipedia.org/wiki/Malbolge
- blehbleh 14y agoJavascript: the "java" name is very cool. PHP: let's pretend it doesn't exist by not adding it to our cool list.
- krapp 14y agoPHP: Your language is trying too hard.
- ColinWright 14y agoHere are some graphs I knocked up a while ago: http://www.solipsys.co.uk/new/EveryLanguageFixesSomething.html?HN1 http://www.solipsys.co.uk/new/EveryLanguageFixesSomething.ht... There was some discussion a while ago: http://news.ycombinator.com/item?id=2816526 http://news.ycombinator.com/item?id=2816526 Added in edit: That's a shame - someone has flagged this item so it's no longer on the front page. 8-(
- 3825 14y agoJavascript came from Java? Or was that just to make sure we were paying attention?
- ColinWright 14y agoLook at the original version of the essay from the wayback machine: http://web.archive.org/web/20020210063149/http://paulgraham.com/fix.html http://web.archive.org/web/20020210063149/http://paulgraham.... That link is in the original version of the essay, and that's why it's in the diagram that's described as a graph of the dependencies that PG gave. The version on the WayBack machine has: Javascript: Java is scary. It does not have: Python: Perl is a kludge.
- pasbesoin 14y agoSo, Graham's essays are mutable. ;-)
- gecko 14y agoThere's some truth to that: JavaScript's execution model was Scheme, with the syntax swapped out relatively last-minute in response to corporate pressure. What I genuinely don't remember anymore is whether LiveScript shipped with the Scheme syntax at any point. If it didn't, then yes, I'd say it's fair to say they shared an influence.
- flyhighplato 14y agoGroovy: Java is not Python enough
- vorg 14y agoGroovy: We don't control Rails.
- chops 14y agoErlang: Concurrency should be easier
- btilly 14y agoWe can keep on adding... JavaScript, "We want a scripting language in our web pages." TCL, "It should be easy to extend your scripting language in C." SQL, "We need a standard way to talk to our databases." PL/SQL, "We want to push complex logic into our databases." BASIC, "We need an easy language for absolute beginners." And so on. But one historical comment. The ACTUAL problem that Ruby was created to fix was that Matz needed a scripting language that could handle Japanese text. People may adopt it now for different reasons, but that is not the historical inspiration.
- jeltz 14y agoPerl was made for processing text too, and for some reason he thought Perl was not good enough for the task.
- btilly 14y agoThe "some reason" that I gave is that handling Japanese byte encoded text in Perl was very hard in 1995.
- ColinWright 14y agoThe ACTUAL problem that Ruby was created to fix was that Matz needed a scripting language that could handle Japanese text. That's why it's on my enhanced chart.
- windsurfer 14y agoPerl can handle Japanese just fine nowadays. Back in 1995, though, Unicode support was... iffy at best. Now, Ruby must be differentiated by other things.
- btilly 14y agoThe issue was much worse than Unicode support. Ruby natively supports multipleincompatible Japanese encodings, including Unicode and shift-JIS. This is a lot harder than just marking off a Unicode checkbox.
- btipling 14y agoGo: concurrent programming is too hard
- dude_abides 14y agoGo: software engineering at Google is too inefficient.
- dvirsky 14y agoOr rather: C++ & friends suck, Python & friends are too slow. Quoting from the Go FAQ: >Go was born out of frustration with existing languages and environments for systems programming. Programming had become too difficult and the choice of languages was partly to blame. One had to choose either efficient compilation, efficient execution, or ease of programming [...] >Go is an attempt to combine the ease of programming of an interpreted, dynamically typed language with the efficiency and safety of a statically typed, compiled language. It also aims to be modern, with support for networked and multicore computing.
- gecko 14y agoI don't quite think the Smalltalk one is fair. Smalltalk-80 definitely went to the extreme with everything-is-an-object, but PG is glossing over the history of Smalltalk-76 and Smalltalk-72, which betray the actual purpose: "Programming accessible by the everyman should be just as powerful as a 'real' language, not like BASIC."
- suyash 14y agoMissing my couple of my favorite languages: PHP, Objective C, Scala and JavaScript
- noblethrasher 14y agoC# 1 --- Java is controlled by Sun C# [n] (where n > 1) --- C# [n - 1] would be more awesome if it had...
- koenigdavidmj 14y agoCommon Lisp: There are N dialects of Lisp, and N is too many. Now there are N+1 dialects of Lisp.
- dvirsky 14y agoPHP: I wanna create a goddamn webpage, like right fucking now.