Hacker News new | past | comments | ask | show | jobs | submit login

Since you know Matlab and C, I would suggest Python as being a good choice. It's much faster to develop web-oriented things in than C or Perl, and if you ever want to do more computationally intensive things, many people find NumPy and SciPy to be fantastic alternatives to Matlab. The nice thing about Python is that you can find so many things all in one language: shell scripting; graphical UIs; web programming and web scraping; web servers and network programming; convenient interfaces to low-level C libraries; fast vector libraries and powerful scientific programming... the list goes on. You can pull data off a serial cable, throw it into a big matrix on your GPU, compute a bunch of statistics, visualize them in 3D, dump screenshots to PNG, and serve them up in a dynamic web app... all in one language.

Ruby, JS, Perl, etc. can't really touch this. There are all sorts of "flavor of the moment" languages right now on HN but at the end of the day, if you want a mature, workhorse language that's easy to learn, has a lot of good libraries, and has a great community around it, choose Python.

If you wanna move towards what the future of mathematical computing looks like though, you should probably look at Julia. It has one thing other high level dynamic languages like Python cannot hope to touch: incredible performance without having to resort to C.

You should look at Numba: Direct Python -> x86 and CUDA without touching C.


Perl isn't a flavor of the moment language, and can do everything you say, plus sees a lot of use in bioinformatics and linguistics. It's a mature language that predates python. As for a lot of good libraries, Python's PyPI has 34665 packages to CPAN's 124,546 modules. And it's community is well known for it's helpfulness and humility, perhaps because of the character of it's creator.

Most modern dynamic programming languages owe a debt to Perl, and the modern web certainly does. It has a variety of modern frameworks: Catalyst Dancer Mason Maypole Mojolicious Cyclone 3

I'd say Catalyst and Mojolicious are the one's I've heard about most.

Perl may not be considered as cool as Python by some, and there are reasons you can criticize it, but it's not any of the reasons you gave.

Perl predates Python by 4 years, which is not a whole lot given they're both 20+ years old now.

By "flavor of the moment", I was not referring to Perl, but rather to all the "compiles-to-JS" type stuff.

Merely comparing package repository sizes is not any indicator of quality or future prospects. Once you're beyond a few tends of thousands of packages, the bases are basically covered.

The biggest ding against Perl is the readability and maintainability. For scientific and data analytics oriented code, generally written by non-programmers who do not understand good software development process, Perl is frequently way too much rope.

Coolness has nothing to do with Python's popularity. (Unlike e.g. Rails which soared to popularity as a "Non-Java" way to do web apps, and then became a bit of a victim of its own success.) The scientific Python people I know all moved to Python from Matlab, C, and Perl because it made them more productive.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact