Live data from Hacker News

How to Pick a Language

web.mac.com

11–20 of 73 posts

Re: How to Pick a Language

#11
post #7

Nice and thorough. I only have two qualms: 1. Reading through the Matz book on Ruby ( http://oreilly.com/catalog/9780596516178/index.html ), there's a very good explanation as to why Ruby/Python/Perl are "scripting" languages as opposed to "programming" languages: no main! That is, whichever file is fed to the interpreter is run (with some exceptions) in order. So these are, and probably always will be, scripting lan…

Interesting way to define "scripting" languages.

I didn't mean to underestimate JavaScript, which is why I gave it its own section. Perhaps I was too brief? Implication that its only useful in the browser?

Re: How to Pick a Language

#13
Maybe this should be a separate 'Ask HN', but...

Previously over the last 6 years I've coded in PERL, PHP, JAVA, and C#.

I'm currently 'retraining' myself over to Python for scripting and web programming (django).

I plan to stick with Java and C# for the time (our shop is about 50/50 split over SOA boundaries). And I want to keep fresh in these as my bread winner languages until I get out on my own. (Not to mention with the advent of Jython/IronPython, and Clojure it might not be bad to really dig some heels into the JVM/CLR idea.)

BUT, after I finishing working through AIAMA in Python. I want to get to work on picking up a lisp dialect and work through SICP. So I was curious, what would be a better angle of attack: Scheme, CL, or Clojure. I'm drawn to the idea of Scheme as it's been painted as a simple language to explore 'deep CS' concepts. But, Clojure sticks with the JVM/CLR strategry.

Would I be missing out if I didn't start with CL? (it sounds like the Latin of programming languages)

Are Lisp dialects (at least those mentioned above) more similar than different; or, How difficult is it to switch dialects?

Is Clojure specifically a bad choice for working through SICP?

Re: How to Pick a Language

#14
Pick ruby if: you want to program on the web.

I prefer python as a language, but rails has two things no other web-framework has, IMHO - A culture of TDD (http://news.ycombinator.com/item?id=445627), and the easiest way to do simple AJAX out of the box with rjs (http://api.rubyonrails.org/classes/ActionView/Helpers/Protot...) Just not worrying about string escaping is huge.

Re: How to Pick a Language

#15
post #7

Nice and thorough. I only have two qualms: 1. Reading through the Matz book on Ruby ( http://oreilly.com/catalog/9780596516178/index.html ), there's a very good explanation as to why Ruby/Python/Perl are "scripting" languages as opposed to "programming" languages: no main! That is, whichever file is fed to the interpreter is run (with some exceptions) in order. So these are, and probably always will be, scripting lan…

Interesting way to define "scripting" languages. I didn't mean to underestimate JavaScript, which is why I gave it its own section. Perhaps I was too brief? Implication that its only useful in the browser?

Love it or hate it, Javascript:

* Is the language having the most important performance gains lately.

* Growing support from both corporate (Yahoo, Apple, Google) and free software (Mozilla) camps.

* Gains market with HTML 5 (just the canvas element alone makes a huge difference for JS based software.)

* Better frameworks for both UI and client-server software.

It's funny how things turn.

Re: How to Pick a Language

#18

Pick ruby if: you want to program on the web. I prefer python as a language, but rails has two things no other web-framework has, IMHO - A culture of TDD ( http://news.ycombinator.com/item?id=445627 ), and the easiest way to do simple AJAX out of the box with rjs ( http://api.rubyonrails.org/classes/ActionView/Helpers/Protot... ) Just not worrying about string escaping is huge.

The first link points to a comment about being productive while riding Caltrain...

Re: How to Pick a Language

#19
post #13

Maybe this should be a separate 'Ask HN', but... Previously over the last 6 years I've coded in PERL, PHP, JAVA, and C#. I'm currently 'retraining' myself over to Python for scripting and web programming (django). I plan to stick with Java and C# for the time (our shop is about 50/50 split over SOA boundaries). And I want to keep fresh in these as my bread winner languages until I get out on my own. (Not to mention w…

Clojure is what you'll want to be using if you ever start doing "real programming" in a useful, expressive Lisp. Don't start with it, though.

In the following order:

    1) Learn Scheme and get through SICP. Wind up with
       enough of an appreciation of Scheme that you could
       write real programs in it, given enough patience.
    2) Attempt to learn Common Lisp.
    3) Become frustrated and give up on Common Lisp.
    4) Learn Clojure instead, and become overjoyed at the
       real work you can get done.
I'm mostly joking about steps 2 and 3. They're based on my own experience with CL (and Elisp) and might not apply to you. Going from Scheme to Clojure will be a bit of a shock, though, because the former is absolutely as sparse as possible with lexical punctuation, and the latter is totally littered with it (particularly stuff that's borrowed from Perl and Ruby). If you've written enough Perl, though, you might not care.

By the way: Scheme is Latin, and CL is Ancient Greek. ;)

Re: How to Pick a Language

#20

Pick ruby if: you want to program on the web. I prefer python as a language, but rails has two things no other web-framework has, IMHO - A culture of TDD ( http://news.ycombinator.com/item?id=445627 ), and the easiest way to do simple AJAX out of the box with rjs ( http://api.rubyonrails.org/classes/ActionView/Helpers/Protot... ) Just not worrying about string escaping is huge.

The first link points to a comment about being productive while riding Caltrain...

Hmm, I should just restate my point rather than try to repurpose it from elsewhere.

TDD has enabled me to work in far smaller chunks than before. The ripples of this one fact are transformational, and so I place more emphasis on unit-test support than most aspects of a language/tool. http://www.reddit.com/r/programming/comments/6sktz/a/c04r6i5

There.

Post reply on HN