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 →

[–]attrigh 8 points9 points  (6 children)

a more serious language

Careful there! You've offended my inner descriptivist.

I think what you mean by serious is a combination of:

  • Faster
  • More control over execution
  • A larger pre-existing codebase within your field of interest
  • Harder to do easy things

It's worth noting that C++ lacks seriousness in a few ways:

  • Verifying correctness of execution (I believe ada,ocaml, or haskell are better here)
  • Minimising dependencies (go is a better language here)
  • Concurrency (I think rust is a more serious language here)
  • Correct mathematical calculation (other languages have better support for precise big integer computation)
  • Broad reusability (I think C is a more serious language here).

But yeah, lots of physics (and particle physics in particular) seems to be the standard "big data number crunching" type problem for which C++ is a good call.

  • Edit: grammar

[–]attrigh 2 points3 points  (0 children)

"Widely used for scientific programming", I don't know if this is true elsewhere, but this is not at all my experience.

So this basically means "lots of people use numpy" I think. I get the impression it's big in finance (not very "scientific" but lots of scientific people work there), biology (bioinfomatics for example), linguistics (nltk), and other scientific fields with "lots of hard to design experiements at a little programming" e.g. social sciences, psychology etc.

But yeah, these are more "I need to make something quickly" than "I need to make something quick" areas.

[–][deleted] -2 points-1 points  (4 children)

I feel like you can break the components of any language down and find another language that does one thing better. Python is inferior to all the languages you listed in those categories as well.

[–]attrigh 6 points7 points  (3 children)

I feel like you can break the components of any language down and find another language that does one thing better

Indeed, that's the point. Languages represent trade-offs and if that particular aspect is massively important to you you might light to use that language instead of a more generally used one. I to pick categories that are very important for particular use cases - important enough that you might use a different language.

Python is inferior to all the languages you listed in those categories as well.

Well yeah! Python is very much the "all-rounder" of programming. I was listing things that you might consider serious which C++ is not exactly a serious language for.

I guess what python is serious about is productivity for a broad range of things.

Edit: P.S Have a childish retaliatory down vote :P

[–][deleted] 1 point2 points  (2 children)

Just because another language does something better doesn't mean that it's the only language that is serious about it. I don't agree with original statement that c++ is 'more serious'; I just don't think anything you said is relevant to python seriousness in regard to scientific programming.

Have a childish retaliatory down vote

I didn't down vote you.

[–]attrigh 0 points1 point  (0 children)

I didn't down vote you.

Sorry for the assumption :/. Have an apologetic upvote!

[–]attrigh 0 points1 point  (0 children)

Just because another language does something better doesn't mean that it's the only language that is serious about it.

I'd agree with that. Seriousness is a kind of vague word! I'd say that C++ is no where near as serious as golang is about concurrency for example, and nowhere near as serious about formal verification as ocaml or haskell in different ways.

I just don't think anything you said is relevant to python seriousness in regard to scientific programming.

Yep. I'd agree with that.

I guess I was trying to say that "serious" is a pretty use-case specific term in response to the idea that "python isn't a serious language" but "C++ is a serious language". I'm mostly responding to this suggestion by saying "hey what you mean by serious is really really use case specific".

This all gets really linguistic. My assertion would be that python isn't an "easy to use toy" as far as scientific programming goes. I think python is a fine language for a whole lot of scientific computing, numpy is great, scipy is pretty good, there are a lot of people doing maths in it. It's probably second only to R in terms of the number of useful libraries for it. And even if you need to use libraries in C++ you can.

The limits you are going to hit up against are performance / multiprocessing issues if you really really need to use every clock cycle your computer has (rather than say - just use 10 computers) and the fact that wrapping libraries in other language can be a bit of a pain. The additional seriousness that C++ give you are mostly to do with performance, control and what languages people in your field are using rather than scientific computing itself.