4 ms·
I doubt that. Most of the cited competitors to python are either seriously flawed (e.g. go) or aren't really competing on the same turf (e.g. rust/haskell).
by crdoconnor 10y ago
I doubt that. Most of the cited competitors to python are either seriously flawed (e.g. go) or aren't really competing on the same turf (e.g. rust/haskell).
- verandaguy 10y agoSpeaking as someone who really loves Haskell -- let's be real, it's not serious competition against Python or Rust, same turf or not. It's a fantastic language for numerical computing and its applications, and for compilers/parsers, but it's never going to be as easy to use for the layman as an imperative language. As someone who's used Go and who has some mixed feelings about it, I'm curious -- what do you find flawed in it?
- raverbashing 10y agoGo is not flawed (I mean, of course it has issues), but it's not the same thing/area
- verandaguy 10y ago> Go is not flawed For most technologies (with some notorious exceptions) that boils down to a matter of opinion an intended use cases.
- crdoconnor 10y ago>what do you find flawed in it? * Package management * The weird and approach to exception handling (which leads to overly verbose code) * Lack of generics (which leads to overly verbose and somewhat hacky code) * Vastly smaller 3rd party ecosystem I think it works well for a very small subset of sysops-style problems (small servers, small command line tools, etc.) especially since it easily compiles into one small, portable binary, but outside of that it flounders.
- verandaguy 10y agoThanks for following up! Those are some of my gripes with the language too. The vendoring system/would-be package manager especially has caused me hours of headaches, and I'm glad to hear I'm not the only one who considers it broken.
- StreamBright 10y agoWell Python is a portable layer of the scientific code written in C/C++/Fortran and a better bash. The reason projects like Pandas, Tensorflow etc. uses it is because it is extremely easy to write a script like code in it that does the heavy lifting in the aforementioned languages. If you had to implement Pandas (more specifically DataFrames) in pure Python it would be extremely slow. With other words Python is an excellent glue languages. I quite often see that people implement complete systems in pure Python when they realise it is too slow or to complex to be maintained. Go at least fast and has proper concurrency while Rust and Haskell are properly typed and supposedly safe. I am not sure if any of these are competitors of Python though.
- throwaway7645 10y agoAgreed, but with things like Crystal coming out, you can still use it as elegant glue, but it will be stupid fast too. One language for everything.
- joshuamorton 10y agonumpy on pypy may well solve that issue for python though.
- throwaway7645 10y agoPypy isn't very fast, but i guess that plus calling out to the Fortran numpy libraries should be fine for numerical work, but now you have to worry about a JIT, big library, runtime...etc. With something like Crystal, Nim, or Red you get a single small binary at the end of the day and nothing else. I guess to each his own, but I honestly feel like we've overcomplicated things.
- joshuamorton 10y agoPypy is as fast as or faster than c/c++ in some applications/benchmarks. And with python (or interpreted langs in general) you gain a repl, a shorter write -> compile -> test loop, and generally speaking a higher rate of development. I'd agree though, I do want some way to deploy a "python binary" that isn't essentially a virtualenv.