Live data from Hacker News

How to Pick a Language

web.mac.com

21–30 of 73 posts

Re: How to Pick a Language

#21
ML deserves mention here. It's not quite a functional strait-jacket, and was a source of many Haskell ideas, e.g. pattern matching.

Oddly enough, I tend to think of Ocaml as a "functional C". You can do low-level imperative stuff with it, if you wish, but you usually end up abstracting the unimportant details out and going functional quickly.

Re: How to Pick a Language

#22

Earlier quoted context omitted.

Pick PHP if you want to use Wordpress, phpBB, Drupal, and a wealth of other great open-source web apps. P.S. Final post; great community here!

What do you mean final post???

I think he doesn't like all the upvotes for the snarky anti-PHP comment:

You don't really learn PHP so much as catch it. Like a disease.

At the risk of being modded down, the comment has some merit. PHP programmers usually gravitate to PHP without having much experience with related, but supposedly better, languages like Ruby, Python, Lua, etc. But PHP programmers who really dig into programming often leave for other languages. The Ruby and Python communities are full of ex-PHPers. But how many people from the Python or Ruby communities leave for PHP?

This isn't to say that PHP has no merit. It was my first web programming language. But maybe its merits don't stack up well against other languages, which is the subject of the original article.

Re: How to Pick a Language

#23

Earlier quoted context omitted.

What do you mean final post???

I think he doesn't like all the upvotes for the snarky anti-PHP comment: You don't really learn PHP so much as catch it. Like a disease. At the risk of being modded down, the comment has some merit. PHP programmers usually gravitate to PHP without having much experience with related, but supposedly better, languages like Ruby, Python, Lua, etc. But PHP programmers who really dig into programming often leave for other…

I know I signed that as my final post, but I feel the need to assure you that I wouldn't be offended by something so silly.

Sometimes you just get bored with a place and feel like moving on :^)

I think I'll spend less time on sites like these and more playing this fine Buffet clarinet I picked up on Saturday. It's been a while, but my embouchure's returning already.

Re: How to Pick a Language

#25
A well reasoned and presented series of arguments in pro (mostly) of many language options.

However it is a bit confusing to me who the intended audience is. The decision criteria--choose this language if...--seem a little beyond what a novice or would-be programmer can answer with certainty ("Pick Perl if: ...your mind fits the mind of Perl."). For someone looking to expand his/her programming repertoire, perhaps a goal-oriented approach would also be useful? (systems, Web, mobile, desktop programming, etc.) And a seasoned hacker probably won't be in need of this help.

I enjoyed reading it, but then, I'm not at the moment trying to decide what language to pick.

Re: How to Pick a Language

#26
A pretty nice survey and well balanced post - nice!

My only gripe - it missed out on my favorite - Groovy - which is my favorite because it combines the best features of most of the others.

Re: How to Pick a Language

#27

PHP?

I don't know PHP, so didn't comment on it. Would it get its own category, or fit into one of the ones I gave?

I'd put PHP in a category with JavaScript, since they resemble p/py/r but were designed for web programming rather than scripting.

Re: How to Pick a Language

#28

ML deserves mention here. It's not quite a functional strait-jacket, and was a source of many Haskell ideas, e.g. pattern matching. Oddly enough, I tend to think of Ocaml as a "functional C". You can do low-level imperative stuff with it, if you wish, but you usually end up abstracting the unimportant details out and going functional quickly.

ML was the first language I ever learned. I didn't appreciate how cool it was back then though. The pattern matching concept makes for some really elegant code. It replaces a lot of control structure code.

Re: How to Pick a Language

#29
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…

So if you can just put the main program statements into the file without wrapping it in a function or anything, it's a "scripting language", but if you have to wrap it in a main() function or something, it's not? That's a definition of "scripting language" that includes x86 assembly for MS-DOS .COM files as a "scripting language", but excludes VBScript macros for Microsoft Word, I think.

Now, I don't know what you think, but these two languages seem to me to be almost perfect exemplars of the opposite extremes from how this definition would classify them. x86 assembly for .COM files has no type checking, no type coercion, no strings, no hash tables, very little in the way of runtime support (it pretty much owns the whole machine when it's running, under actual MS-DOS anyway, and you have to build everything yourself), takes months to learn enough about a computer to program in, typically is only used by fairly hard-core programmers, and there are no compatible interpreter implementations. VBScript is strongly dynamically typed, has strings, is used to "script" an existing application, runs in an interpreter, and is typically used by people who don't think of themselves as programmers.

So I suggest that Matz's definition may not really express what people are normally thinking of when they say "scripting languages".

Re: How to Pick a Language

#30

It's opinionated, but this article serves as a good FAQ for people who might be asking what language should they learn.

Well, no because there is one factor that dwarfs all others: what are my friends or the people in my field using? If everyone you know (personally or professionally) is using language X then there will be collective experience you can tap, documentation, mailing lists and howtos, lots of code already written, etc. It doesn't matter if you have a "better" language if there's no-one you can talk to or whose code you can reuse.

Remember, a programming language is not a technology. It's a community. Choose the community you want to join, then use what they use.

Post reply on HN