Home > misc, software engineering > Say Something Nice About Every Language You’ve Used

Say Something Nice About Every Language You’ve Used

December 8th, 2010

In Michael Easter’s recent post, I was struck by his comment that Guy Steele like all languages. Seems like a pretty chill way to live a programming career. So I wondered, do I like all languages? Can I say something nice about every language I’ve used? As the saying goes, “If you can’t say something nice, don’t say nothin’ at all.”

Let me give it a try in rough chronological order of the first time I used each language in anger:

  • Pascal - Ouch. My memory is so fuzzy I can’t even think of something bad to say about it. So we’ll count “no comment” as nice and move along …
  • C++ – Another toughy, but this time because my memory is so sharp. Hmmm. Uh. C++ has a really nice personality. Next.
  • Matlab – Pretty cool array slicing notation. I don’t know if Python stole this from Matlab, but when I first learned Python I was like “Hey, this is Matlab!”
  • Common Lisp – Generic functions and multiple dispatch are cool.
  • Visual Basic 6 – Seemless integration with COM and built-in support for the observer pattern.
  • C – As Linus has pointed out, you need almost no context to understand a random chunk of C code. It is what it is and nothing more.
  • Java – It’s simple enough that really powerful, reliable tools can be built for it. If you change the signature of a method in Eclipse, you can feel confident that it actually worked. (unless you’re doing reflection…)
  • Tcl – The entire language is expressed in 11 simple rules and it’s homoiconic. Once you accept that everything is a string, you’ll enter a zen-like trance and every atom of your being will vibrate in harmony with Tcl’s interpreter. Or something. Finally, whenever you write a quick test script, you get to name it “test.tcl”
  • Python – Python taught me about list comprehensions and bound methods. It’s stupid, but I also always liked that you could multiply a string by a number to repeat it.
  • Soar – Fast, rete-based pattern matching is cool. Everything that’s really easy in a procedural language is hard in Soar, but some things that are hard are easy.
  • JavaScript – Taught me that objects are overrated and started my reptilian, OO brain down a brighter path.
  • Ruby – I think blocks are a neat bit of syntactic sugar. I like that everything, including nil, is an object.
  • Scala – Introduced me to implicit typing and opened my eyes to how much I actually have to type when I’m coding Java.
  • Clojure – It’s fun, has a nice cross-platform VM, persistent data structures, a good concurrency story, and is apparently saving Lisp from itself.

Wow, I feel really great now.

Note that every one of these could have easily be extended with “even though”, “except for when” or “but sometimes”, but I resisted the urge, mostly.

Can you think of something nice to say?

misc, software engineering ,

  1. JimDesu
    December 9th, 2010 at 01:31 | #1

    c++ — its multiple inheritance isn’t the mess that folks think it is, and does a great job of handling AS-A (as opposed to IS-A) designs

  2. ngorski
    December 9th, 2010 at 01:46 | #2

    Dave, we disagree on C++, but that made me laugh. Really liked both this and the etudes post; I’m looking forward to more.

  3. December 9th, 2010 at 01:59 | #3

    No PHP? Never used or nothing nice to say? :)

  4. chamakits
    December 9th, 2010 at 02:12 | #4

    Visual Basic: Can be used to create a simple GUI in a very short time.

    C: Allows the developer to control everything that they want to control.

    Java: It’s expressiveness lets little to be guessed about the programmer’s intentions.

    Haskell: It provides a great model of dealing with processes in a a almost side effect free manner.

    Lisp: It’s syntax is simple by having very few special symbols and characters.

    Python: It allows for intuitive and useful scripts be written with trivial amount of work.

    Ruby: Makes it easy to put your idea into code.

    Assembly: Assumes nothing, and in the end, you are just dealing with bytes.

    Javascript: So much easy control of what goes on in your browser.

    Lua(PSP interpreter): You made it sooo easy to create a graphically interactive program.

    Erlang: Tried and tested for the real world.

  5. simon
    December 9th, 2010 at 04:57 | #5

    Matlab slicing is actually more similar to Perl or Puby than Python. It uses ranges as indices, whereas “:” in Python is just special syntax.

  6. December 9th, 2010 at 05:06 | #6

    Delphi/Object-Pascal — Very powerful for GUI apps (back in the day!)

    Java — My first language. Amazing stuff still happening on the JVM.

    C++ — Templates still rock my world far more than modern generics.

    C — Love the power and control, helps ensure that libraries are available for all my favourite languages. Created my first ever non-Swing GUI program using Win32 & C.

    Python — Stupidly expressive. Taught me the power of first-class functions.

    Ruby — Retardedly expressive, and Rails changed the way I thought about web development.

    JavaScript — Getting more and more exciting as HTML5 gets closer to the line. Node taught me about async event-based servers.

    Scala — The rightful heir to JVM blub. Hopefully. I was beginning to conceive of a better Java that only required type information at the interface level … a few months later, I found Scala.

    Clojure — The first lisp I “got”. Taught me the power of a few simple constructs.

    Lua — The first compiler and interpreter with source code I could actually mostly understand.

    Go — A statically typed almost-Python that compiles to native code. Amazing. Beginning to love it.

    Perl — Nothing better for processing text, was actually recently impressed by how much Moose improved things.

    C# — WinForms beats the hell out of Win32. Another “better Java”.

    PHP — Still my go-to guy when I want to build something “real” for the web.

  7. December 9th, 2010 at 05:54 | #7

    > Roby – I think blocks are a neat bit of syntactic sugar. I like that everything, including nil, is an object.

    I thought blocks weren’t objects?

  8. Jonny Edwards
    December 9th, 2010 at 06:03 | #8

    LOL – this is very funny. My addition:
    Haskell: “A programming Language for Geniuses”(Larry Wall). Made me realise I like compilation. ALL the neat features in other programming languages were implemented first in Haskell ;). If “the dude” were a programmer he would use Haskell.

  9. December 9th, 2010 at 06:16 | #9

    PHP – Quick & easy for small simple hacks. Get’s the job done.

  10. Timothy Burgess
    December 9th, 2010 at 06:32 | #10

    I can’t believe there are no comments!

    I’ll just go with the languages I know… from most knowledgeable to least.

    PHP – I definitely know the most about this language because it’s my favorite… and for good reasons. I know it’s somewhat frowned upon by a lot of gurus because it’s almost too easy to get the hang of… but to keep it short, I love its flexibility/quickness with types and that the vast majority of them require no initialization and/or casting – emphasis on multidimensional arrays.

    Javascript – The ability to manipulate pretty much every element within a page through the DOM has made cross-browser support (cough IE) much easier.

    C – My experience with C is limited to embedded systems/robotics… that said, I can’t imagine using another language for the task. It does the job and it does it well!

    C++ – This is gonna be hard haha… I’ll just say its (extremely) vast array of libraries and usage throughout all kinds of applications really says something about its power.

    Java – I’ve only used java for some basic DSP but I’ll say that netbeans is freaking sweet! I know netbeans isn’t java but let’s get real here… who writes java without netbeans? (Seriously though, I’m curious. Who and why?)

    Matlab – Well, I’ve only used it for some class assignments but it is some seriously powerful stuff… and I’m sure I’ve only seen a fraction of what it can do. I’ve been thinking about integrating it with my data-driven web app some time in the future to give people more than just a 2D view of multidimensional data. I’m sure there’s other software out there that could do it but I’m sure they pale in comparison to matlab.

  11. vfpdev
    December 9th, 2010 at 06:38 | #11

    Visual Foxpro: Not reinvent the wheel

  12. Chris Young
    December 9th, 2010 at 07:16 | #12

    Commodore Basic – Taught me how to program
    6502 Assembler – Taught me how to work with limited resources
    Turbo Pascal – Gave me the ‘A ha’ momment wr Pointers
    C – Economy of expression, a thing of beauty
    VBA – Alt F11 Excel Magic
    Perl – Power behind BBC Interactive Wimbledon magic
    Python – Unit testing fitted as standard FTW

  13. December 9th, 2010 at 07:48 | #13
  14. December 9th, 2010 at 08:25 | #14

    I’m glad to see everyone’s getting in the spirit of the post. The C++ entry is mostly there to stir the pot. In fact, while I was sleeping I thought of something nice to say about it:

    C++ – It’s Turing complete.

    Cheers!

  15. John Smith
    December 9th, 2010 at 08:50 | #15

    Forth. Here is an IDE disk driver:

    : bsy 1f7 p@ 80 and if bsy ; then ;
    : rdy 1f7 p@ 8 and if 1f0 a! 256 ; then rdy ;
    : sector 1f3 a! swap p!+ /8 p!+ /8 p!+ /8 e0 or p!+ drop p!+ drop 4 * ;
    : read 20 sector 256 for rdy insw next drop ;
    : write bsy 30 sector 256 for rdy outsw next drop ;

    ( from http://www.colorforth.com )

  16. janman
    December 9th, 2010 at 08:53 | #16

    Eiffel – I hear modern implementations don’t crash as often as they used to

  17. zalg
    December 9th, 2010 at 09:07 | #17

    python – I want to do more with this function.. And the decorator’s jazz band featuring the metaclass started playing… oh and so much more!

    perl – Man I have to process all these files.. Handy perl reporting for duty!

    sh (..csh, tcsh, bash) – Man, this is going to take forever.. oh, wait!

    PHP – It’s like being spoiled by grandma!

    LISP – Woa… I did not know I could do that with my computer!

    C – It just makes perfect sense!

    ASM – I see what you mean!

  18. December 9th, 2010 at 09:29 | #18

    @Andy blocks are instances of the Proc object, so just like everything else they are an Object too.

  19. Peter
    December 9th, 2010 at 09:39 | #19

    AppleSoft BASIC – Easy to learn, easy to understand. Wrote a BBS in it.
    Apple Pascal – Wizardry series. ‘Nuf said.
    RealBASIC – Easy to target multiple platforms.
    C – Pointers. Which are also the worst thing about it.
    C++ – Inheritance: Is-A vs. Has-A
    Java – The library, and GC.
    Obj-C – Message-passing. And in 2.0, @property/@synthesize.

  20. asdf
    December 9th, 2010 at 09:43 | #20

    Forth — produces a very tiny executable.

  21. Jeff L.
    December 9th, 2010 at 09:43 | #21

    BASIC–you get to build programs with it!
    FORTRAN–you get to build programs with it!
    COBOL–well…you get to build programs with it!
    Pascal–you get to build programs with it!
    C–you get to build programs with it!
    C++–you get to build programs with it!
    Smalltalk–best language ever, why make things any more complex? plus… you get to build programs with it!
    Java–you get to build programs with it!
    C#–you get to build programs with it!
    Ruby–you get to build programs with it!
    Python–you get to build programs with it!

  22. December 9th, 2010 at 09:44 | #22

    In chronological order of me learning them:

    Logo – more powerful than meets the eye, fun for pre-schoolers

    Basic – gee, lots of built-in graphics keywords (that’s the nicest thing I can say…)

    Pascal (the Borland flavour) – declaration syntax much saner than other mainstream languages, very easy to parse, and you get nice machine code nowadays

    Pilot – uh, it’s very simple…

    Assembly (6809) – well, you can’t get more powerful than that

    C – everything is obvious when you look at it; no overloading flim-flam

    Forth – very, very compact runtime, still unmatched by so-called “first tier” environments. Boots in a few kB. Sometimes I miss that a lot.

    C++ – gee, you can express pretty much anything in that language, it’s so open-ended!

    Visual Basic – I don’t have to use it anymore :) (seriously, I have nothing nicer to say about this monstrosity. And I tried really hard… I know I’m sort of transgressing the rules)

    Assembly (68000) – this is nearly a high-level language… what a nice architecture!

    Assembly (80×86) – hmmm…. well, at least segment registers are not really used in flat 32-bit mode. That’s the nicest thing I can say about this architecture…

    Ada – GREAT error detection from the compiler

    Bash & co – this is way more powerful than dos batch files; you can actually implement real logic in it. Pretty concise for simple scripts.

    Tcl – the syntax is really minimalistic, thus easy to extend; this is almost like Lisp in some ways. Dead-simple integration with C libraries.

    Perl – nice, I can do more complex scripts now.

    Python – nice, I can do more complex scripts *and* I’m able to read them later. Also, this has got to be the closest you can get to pseudocode and still have something executable. Hm, I have to stop now, it’s really my favorite language, and I’ll just gush endlessly.

    Java – well, all things considered, it’s a very solid language for industrial use; has a lot of the “what you see is what you get” properties of C, a VERY nice runtime library, and a straightforward runtime object model.

    JavaScript – hm, it’s widely available?

    C# – more or less the same thing as Java, except for the runtime library. It’s nice that it has more modern features (closures, the expression tree/LINQ stuff, etc) that Java is just playing catch up with.

    Lisp / Clojure – wow, this language has all the amenities of other modern languages… the original implementation was THAT long ago?

    I probably know a few more that elude me right now, but those are the ones I did at least one major piece of code with.

  23. December 9th, 2010 at 09:46 | #23

    Hey, that’s cheating!

  24. Mikkel
    December 9th, 2010 at 10:00 | #24

    SML – when you eventually do get it to compile, it mostly does what you intended!

  25. December 9th, 2010 at 10:01 | #25

    C: speed, simplicity, system prog.
    Caml: high-level, good speed for such a high level language, genuine strong type safety, curry-howard.
    Python: for scripting and quickly layed out things, nice syntax.
    Perl: great for regexp base works.
    Ada: I don’t say nothing at all

  26. Michael
    December 9th, 2010 at 10:07 | #26

    ColdFusion – Fast typing, fast processing, easy to learn, powerful, the first RAD environment, the first of real RIA, tag, OOP, procedural, Open Source (www.getrailo.org), lovely and helpful community.

  27. Bill Smith
    December 9th, 2010 at 10:14 | #27

    Pascal: at the University in 1979, the compiler was much faster than the PL/1 compiler, which was a big deal when your edit/compile/run cycle consisted of submitting a card deck to the computer operator and then waiting for the output to come off the line printer.

    Also: PL/1 had pointers.

  28. Jim
    December 9th, 2010 at 10:26 | #28

    Prolog – describe your program’s intention clearly – and you’re done! (and it helps you work out how to do it clearly . . .)

  29. Brandon
    December 9th, 2010 at 10:33 | #29

    AppleScript: There’s a python module (AppScript) to replace it!

  30. David
    December 9th, 2010 at 11:19 | #30

    Delphi (Object Pascal) – Hard to write bad code. Love how any ordinal datatype (like bool) could be used as the index of an array. Loved the set operations.

    Foxpro – Loved how fast things could be if you used the indexes right.

  31. Ryan
    December 9th, 2010 at 11:20 | #31

    @Andy
    blocks are objects… indeed you can get any specified as a param
    def method_missing(sym, *args, &block)
    @subject.send sym, *args, &block
    end

  32. Andrew Horsman [basicxman]
    December 9th, 2010 at 11:23 | #32

    In chronological order (IIRC):

    - Some proprietary BASIC interpreter: opened my eyes to the world of programming
    - C++: Statically typed languages in my opinion are the greatest way to learn about data types. Faster than any interpreted language.
    - Visual BASIC: Uhm, GUI’s could be built quite quickly.
    - PHP: Excellent documentation.
    - Python: It was easier to code at 8AM in the morning.
    - Ruby: Beautiful. Code.

  33. witek
    December 9th, 2010 at 11:47 | #33

    Erlang – distributed computing rocks, especially with zyllions of asynchronously comunicating processes. Doing it fast, and constantly crashing without problems :)
    C – simple and portable assembler. Everybody likes pointers wizardy.
    Python – You can learn it in 15 minutes! Start by typing “python” in terminal :) Forces you to write beautiful code.
    PHP – Just works. Zero configuration.
    D – Ubercool extension of C, with exceptions, classes, virtual functions, best templates, modules, unittesting, contracts, assertions, scope/failure handling, shared/consts, foreach, delegates, dynamic and associative arrays, complex numbers, functional programming, metaprograming, mixins, compile time evalutions, etc. etc.. Evenrything built-in. Fast and free.
    JavaScript – language of the future (if you like it or not). it is everywhere.
    Haskell – Just to know that sometimes compiler is more clever than you.
    C++ – Just to know that sometimes people are more stupid than they think.
    Perl – Language in which your program have more regular expressions and different opertors than code lines.
    Java – Even lazy and bad programmers cannot break it. Solid. Fast virtual machine with good state-of-the-art garbage collector.
    Nemerle – uber cool hybrid functional / objective language, with greate metaprogramming capabilities, including dynamically changing syntax by adding new language constructs.
    BASIC – C have goto, so have BASIC. C is greate, so is BASIC.
    Pascal / Ada – still the best language for teaching algorithms, as it is safer than C, and still more low-level than Python or Java. Forces you to think deeply about problem.
    Sisal – everything is… object (and probably also an iterator)
    Fortress – everything is… LaTeX equation :)
    Bash – I hate it, but I know all about it, and use it every day.
    Tcsh – fast configurable shell.
    FORTRAN77 – Uber fast, good robust compilers and scientific libraries.
    Assembler (x86) – assembler you would like to hate, but you cannot.
    Assembler (ARM and 68060) – assembler you would like to love, but you cannot.

  34. George B
    December 9th, 2010 at 11:56 | #34

    Fortran: Great for implementing numerical algorithms.
    APL: Map, reduce, etc. Great for one-liners. Also nice for doing some numerical stuff.
    COBOL: Don’t bother it and it won’t bother you.
    Basic: Got me a job one time.
    C: Produces fast, tight code. I don’t have to depend on a complex compiler to get it either.
    C++: Nice for oo work and it’s still pretty efficient.
    Z80 Assembly: Pretty good for a little 8 bitter. Great way to learn assembly language.
    68000 Assembly: Nice – not too much lower than C.
    Verilog: Lovely for doing hardware design.
    CSH/BASH etc: Great for speeding up development cycles.
    AWK: Made documenting code easier pulling comments & function decls. from code.
    Object Pascal: Properties, and a great GUI Builder in Delphi.
    Python: List comprehensions, enough functional programming concepts to allow concise, expressive code; properties, decorators (functionals or operators, for us math guys), metaclasses. Easily my favorite language.
    ADA: Great for managers who are extremely paranoid about programming errors.

  35. witek
    December 9th, 2010 at 11:57 | #35

    @witek
    Maybe few mores:

    LUA – simplicity, single paradigm, VERY small, fast and safe (no crashes, no memory leaks, cpu, memory and function usage under control). Easily connects to other languages.

    Brainf*ck – because we can!

    LISP – universe is written using it. Basically all clever things was already discovered and implemented in lisp in 1950s. And it is probably have even simpler syntax than brainf*ck

    Erlang += best pattern matching in the world. :)

  36. Jaxxed
    December 9th, 2010 at 12:20 | #36

    Arabic is quite interesting I think, however Latvian is one of the most interesting (they have no possesive to have verb.)

  37. Erik
    December 9th, 2010 at 14:08 | #37

    Actionscript 3: Complete control over the UI, anyone can run it, good performance, ‘javascript-with-less-limitations’

  38. drumlogan
    December 9th, 2010 at 14:17 | #38

    German: Through its use, acquired many delicious beers in Deutschland.

    Sorry, just couldn’t believe this hadn’t been done yet.

  39. Mike
    December 9th, 2010 at 14:33 | #39

    Python : Fun! Off and coding in seconds!
    Java : Taught me a the importance of data typing early on :)
    Actionscript: Creative coding, in under 1 min.
    Javascript: Brings websites to life.

  40. Eric TF Bat
    December 9th, 2010 at 20:54 | #40

    Written in September 2006, but I think it’s relevant. I call it 0×88 Lines, in reference to the song 88 Lines About 44 Women, by The Nails:

    BASIC was a clumsy plaything,
    Good for kids and not much more;
    Fortran was a revelation
    Back in 1954;
    Forth was built for one curmudgeon,
    Never should have been released;
    Pascal taught that chains and bondage
    Are required to tame the beast;

    PET machine code seemed nostalgic
    Even when it first came out;
    COBOL was for dull accountants,
    Not for humans, have no doubt;
    C was PDP assembler,
    Yet was used for every task;
    Prolog answered all the questions
    That you don’t know how to ask;

    MS-DOS was good for scripting
    Only if your dreams are small;
    Six-Eight-Thousand was symmetric,
    Animate a bouncing ball;
    Parlog taught new ways of thinking,
    Shame it only worked in school;
    Ada — Ronald Reagan’s baby –
    Like him: ugly, bloated tool;

    Logo had some clever features
    Hid behind its turtle face;
    80×86 Assembler,
    Ugly muscle won the race;
    Dear old Billy’s Visual Basic
    Gave crap shareware to the masses;
    C++ was bloat on steroids,
    Kneed our groins and kicked our asses;

    Delphi found the perfect balance,
    Shame about the market share;
    CSS is website ethics
    In a world that doesn’t care;
    Lexx and Yacc are good for making
    Yet more entries in this list;
    JavaScript’s the tool of choice for
    Little boys who’ve ne’er been kissed;

    Perl’s the great Swiss Army Chainsaw
    (Cat’s walked on the bloody keys!);
    Lua’s built to Keep It Simple,
    Found the sweet spot, aims to please;
    SQL is Bertrand Russell
    Reinvented by the blind;
    XSL was never meant to
    Be approached by human mind;

    PHP was Perl for those who
    Wished that Larry’d not been born;
    HTML filled the web with
    What the people wanted: porn;
    Intercal’s an evil joke (on
    Purpose, which is something odd);
    BrainF*** demonstrates the fact that
    Turing knew the mind of God;

    Scheme was far too clean and simple
    To be used by mortal men;
    Unix shell-script still has uses
    Here and there and now and then;
    LISP may hope to reach its heyday
    In another fifty years;
    Billy forced C# upon us
    ‘Cause of looming Java fears;

    Python turned its whitespace gimmick
    Into some religious dream;
    Smalltalk drove a single concept
    To its ultimate extreme;
    Haskell’s quite a clever concept
    If you’ve got a PhD;
    Ruby’s slow but – maybe, one day -
    It could be the one for me.

  41. December 9th, 2010 at 22:53 | #41

    php is GOOD!!
    rudy is great!
    java is awesome!
    BUT HTML IS THE EASY ONE!! ITS THE BEST!! wahhahah.. LOLS

  42. December 9th, 2010 at 22:53 | #42

    In the order of my discoveries… time machine on.

    BASIC Z80-Amstrad: It was just… simple. Created a first program of Astronomy with it putting graphic caracters at (col, lin) position. Did I say easy?

    sh: because you know I had to configure my internet access and start my specific command line in 1991. Oh… and that was fast and it is still.

    Fortran: Analyzing data the easy way… at least in 1992. Taught me that position is important. It formatted my mind for Python, I guess.

    Applescript: Showed me that a black box could come to live.

    TCL: for managing strings, strings, strings for a mail server. Again easy to learn.

    Perl: Taught me to be patient. Ah understood! ah no! ah yes it must mean that or maybe this, ah no no now I get it it is… or maybe.

    Java: Taught me punctuation

    Python: I can be that fast coding stuff. wow.

  43. raveman
    December 10th, 2010 at 05:49 | #43

    Pascal – Its great to start
    Delphi – Its great for making fast UI
    C++ – its used for writing games
    Java – Powerful IDEs
    C# – its like Java++ without powerful IDEs
    Javascript – it lets you change not your own sites
    Scala – It sounds great in theory, you can/must program like at Sun(in notepad) and you learn what compilation errors are.
    Groovy – Scala with IDE support
    Ruby – it has made Groovy
    PHP – easy to learn
    Batch – great for scripts
    Bash – great mini-programs like grep, touch, etc. too bad its not portable.

  44. Jesper Nordenberg
    December 10th, 2010 at 06:58 | #44

    @Benoit Goudreault-Emond
    Agreed, 68k assembly was a joy to program. When moving to x86 CPUs and reading the Intel docs I quickly switched to C++ instead. :)

  45. Jason
    December 10th, 2010 at 13:06 | #45

    I’ve learned a lot of languages but recently I’ve been awakened to the idea that using to many is a bad thing. I actually code in c now just because it is “vanilla”, it’s turring complete, and has access to everything (granted almost all languages do, but not all). Really the story of using different languages isn’t about strengths but rather weaknesses. You can do almost anything in any language but bash handles different characters weakly, especially if you have bash running in bash and some of that bash is generated dynamically from other bash. Java requires you to handle simple things like files in overly complex ways. PHP wont accept POST written on more than one line if you are doing ajax. C doesn’t have namespaces. Oh were it to have namespaces. C++ is complicated and requires to much “context” to really read it, it has too many ways to do one thing.

    They all are great languages. Every one has a short fall. This isn’t to be negative. It’s just to say that we should look at the glass as almost entirely full and recognize that we need other languages to make up for the rest. That’s the only reason to use multiple languages. Everyone should try to use just one and know all the others well so they can make up for that languages short falls.

  46. December 10th, 2010 at 21:45 | #46

    I decided to play along with this meme here. (Admittedly, I may have a more difficult time than most coming up with charitable things to say about programming languages, but I really did try with all the sincerity I could muster.)

  47. December 14th, 2010 at 12:16 | #47

    Basic: I have to love the first thing I learned…

    Pascal: Correctly uses = to mean equality comparison, and uses a different symbol for assignment. Every other language I’ve used gets this wrong.

    C: First introduction to syntactic sugar?

    C++: First introduction to Objects?

    Fortran: Easy to write clean, readable code

    Perl: Enables very terse writing

    PHP: Great for one-offs and bits of web automation with little server setup

    Bash: I’m sure something about it would be cool if i ever really learned it instead of just hacking

    Java: Guaranteed refactorability enables awesome IDE support, first introduction to design patterns and good code structure

    Ruby: Enables super-readable code style and incredibly efficient use of my time as a developer

    Javascript: I’m sure something about it would be cool if I ever really learned it instead of just hacking

  48. MagicFingers
    December 19th, 2010 at 23:21 | #48

    I’d like Ada wich is by far the most strongly typed langage i’ve never had to deal with. The coding process can be tedious but the whole job can be tremendiously accelerated by this feature.

    The “modern” versions VB i mean .NET, are now proposing a not so bad way of strongly type behavior but, i think it’s not by now exactly what it should be. The .NET library have a component that i hate more than every shity things MS Corp. has made and this is the System.Data.BindingSource. I always get lost in the pitfall of thinking that binding UI with Data should be with a minimum coding but since VB6 and after smashing my head on my keyboard and swear to my screen, i know that automated binding is just something like demonstration software.

    I’d never like Java and i do not really know why! I don’t hate this langage wich have a C like syntax and is a totally OO langage. Maybe my remebering of early days of managed langages such this one running on win95…

    I cannot finish with the worst i’ve ever encontered in my life. Casted on the perfect bureaucratic civil servant (but business oriented) and i named the Report Program Genertor or RPG. I just can’t imagine someone had think about creating such monstrosity! Worst than COBOL i think!
    But it was long ago…

  49. Joseph
    December 21st, 2010 at 15:32 | #49

    Dave:

    Soar is not a programming language.

    awk and sed are special purpose languages that have perfect syntax for their niches. Instead of trying to make that one language to rule them all, which is probably never going to happen, we need more special purpose languages and better ways to make them work together.

    Also this:

    http://steve-yegge.blogspot.com/2010/12/haskell-researchers-announce-discovery.html

  50. December 21st, 2010 at 22:38 | #50

    @Joseph In Soar (the implementation), I type in code and run it to perform some task. It even has syntax. Sounds like a programming language to me :)

  1. December 9th, 2010 at 03:29 | #1
  2. December 9th, 2010 at 12:05 | #2
  3. December 9th, 2010 at 19:12 | #3
  4. December 14th, 2010 at 18:38 | #4
  5. March 9th, 2011 at 17:05 | #5
  6. February 6th, 2012 at 18:56 | #6
  7. February 7th, 2012 at 00:36 | #7
  8. July 17th, 2013 at 15:03 | #8