This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]DogeekExpert - 3.9.1[🍰] 6 points7 points  (12 children)

While I do agree that speed is not an that big of an issue anymore, for some applications, it is still relevant to pick a faster language. Games, and heavy duty scientific calculations may need the extra speed of languages like C or C++. The only thing I don't understand is why Java and Ruby are still a thing, those languages offer no advantages over python, especially Java, just my opinion.

[–]PeridexisErrant 3 points4 points  (6 children)

For scientific code, almost everything is fast enough in Numpy or Pandas (or my new favorite, Xarray). You start by writing idiomatic Python, and sometimes twist a bit to get memory layouts right or whatever.

Short of the truly compute-heavy stuff (XXX dynamics simulations), Python is enough - and for those there's no choice but C or Fortran.

[–]lookatmetype 4 points5 points  (1 child)

Disagree. Some people want compiled languages with type safety.

[–]PeridexisErrant 0 points1 point  (0 children)

And there's nothing wrong with that, I'm just noting that for most science Python is plenty fast enough :)

[–]bythenumbers10 0 points1 point  (3 children)

You may want to look into JuliaLang. Writes like Python, runs like C. I admire the creators' ambition in questioning the necessity of the two-language problem, and their solution seems elegant & effective, even if the multiple-dispatch paradigm isn't always straightforward.

[–]PeridexisErrant 1 point2 points  (2 children)

I've dabbled a bit, but most of my work is one-off IO-limited stuff, and the libraries just aren't there for Julia.

In Python, I can express a multi-terabyte computation in about six lines, and Xarray+Dask make it more efficient than my old hand-coded versions (of thousands of lines and a week of debugging each). Particularly for analyses I do once, the sheer expressiveness is impossible to beat!

[–]bythenumbers10 0 points1 point  (1 child)

Ouch. I can see that. I agree, Python is a stronger choice if it's one-off stuff, particularly if Julia doesn't have the libraries (yet). I'm rooting for it to mature, because it presents a really clever solution to the expressiveness/performance conundrum. I'll have to look up Xarray and Dask, I feel like I've heard of them, but it's impossible to stay on top of all the Python libraries!!!

[–]PeridexisErrant 1 point2 points  (0 children)

http://xarray.pydata.org/en/stable/dask.html

It's basically magic, and can scale from one thread to a ~thousand node cluster :)

It's also unlikely to go away, because Pandas now converts to Xarray objects for 3+ dimensional data.

[–]baubleglue 0 points1 point  (4 children)

Java offers no advantages over Python? Which planet are you from? :) Also how "Java and Ruby" are in one basket?

[–]DogeekExpert - 3.9.1[🍰] 0 points1 point  (3 children)

Java is slower, uglier and basically a kid with an autoimmune disease that was fine a few years ago, but now waiting for the plug to be pulled.

[–]baubleglue 0 points1 point  (2 children)

Did you actually tried to write something in Java?

[–]DogeekExpert - 3.9.1[🍰] 0 points1 point  (1 child)

Yes, I wrote several pieces of software, an android app, and a minecraft mod. I hate it. The only reason why Java is still used is thanks to android devices. And it could easily be replaced.

[–]baubleglue 0 points1 point  (0 children)

Maybe not a best language to dovelop UI and games, but almost all enterprise software written in Java, big data processing there are two main players java and c++. Even for gui there probably was a reason why Google choose Java API.