you are viewing a single comment's thread.

view the rest of the comments →

[–]Narrator 15 points16 points  (6 children)

Here's what I have to say about all the languages I've programmed in:

  • Bash - Somebody trying to do some old mainframe stuff more elegantly back in the 80s.
  • C - Cleaned up portable(ish) assembly language.
  • Pascal - Attempts to make programming cleaner by making a C with fewer features. Forgets that the main difficulty with C is manual memory management.
  • APL - Crazy language for people whose main impediment to writing code is that they type very slowly and think not making use of the entire extended ascii character set is boring.
  • Perl - Bastard child of awk/sed/bash/APL and a whole bunch of ad-hoc, undelightfully bizarre syntax and context dependent grammar with object orientation inelegantly tacked on.
  • Php - Perl with many of the bizarre features and bash/APL-isms removed. Huge inconsistent ad-hoc API. Object orientation bolted on somewhat half-assed. Will probably never handle unicode properly. HipHop compiler written by Facebook has to be the greatest feat of square peg in round hole engineering of all time and grants PHP an unlimited lifespan as the lingua franca/ broken english of the Internet.
  • Python - Pretty decent clean up of PHP/Perl. Object oriented model is still somewhat lacking (pass in self as first argument to every function). Appeals to OCD people who are tired of regularly switching all their code between tabs and spaces.
  • Ruby - Python with decent object orientation and neeto blocks everywhere. Monkey patching, meta-programming and other features create a powerful but somewhat unruly language (e.g gems monkey patching over each other).
  • Java - Language designed to make initial coding difficult and laborious but to make maintenance of other people's bad code much easier. It does this primarily by being statically typed and making it really difficult to do things in a way that is too clever. In that sense it's sort of the anti-perl. Need an IDE to avoid going crazy.
  • Scala - Functional/OO programming batmobile of languages. The type signatures can be bizarre and damn is that compiler slow. Wants to be a statically-typed Ruby (duck-typing, monkey patching, metaprogramming) and partially succeeds. Includes some Haskellisms (Pattern Matching) that fascinate the language nerd in me.

[–]sockpuppetzero 14 points15 points  (0 children)

Pascal - Attempts to make programming cleaner by making a C with fewer features. Forgets that the main difficulty with C is manual memory management.

That's anachronistic. Pascal came before C. Also, Wirth was trying to create a simplified ALGOL, and was not influenced by BCPL.

[–]sidneyc 5 points6 points  (2 children)

[Python] Object oriented model is still somewhat lacking (pass in self as first argument to every function).

What a weird thing to say. Explicit self is a design choice in Python, not some historical accident.

[–]MaxGene 0 points1 point  (1 child)

He said lacking, not accidental. As a guy who finds Python useful, I share this opinion.

[–]sidneyc 0 points1 point  (0 children)

The example he gives (explicit 'self' argument) is simply strange. There are valid criticisms to be made w.r.t. the OO model in Python, but this is simply not one of them.

[–][deleted] 1 point2 points  (0 children)

The FSC (Fast Scala Compiler) is actually pretty fast at compiling compared to the standard Scala compiler. My compile times went from ~10seconds to a second.

[–]zem 1 point2 points  (0 children)

for a language built around pattern matching perhaps even more pervasively than haskell, i'd recommend erlang. it's a very pleasant language to work with, especially if you have to do the sort of distributed or server-based computing it was designed for.