Someone else said this on HN: Python is the second best language in almost every field of computing.
That's why there's a library for everything in Python.
It's limitations are also not terrible for most people. If you want super fast, you will know how to do that some other way. If you just want simple and easy to read, you use Python.
> Someone else said this on HN: Python is the second best language in almost every field of computing.
It isn't. Frankly, it isn't even top 3 in any "field of computing" depending on how you define "field of computing".
What python has going for it is the evangelists who do a great job of spreading the word and of course funding - they have lots of money backing the language. Also, being an interpreted language, it has a much lower barrier to entry.
I'm not much of a fan of python and its block syntax - I very much prefer braces or markers delineating the beginning and end of code blocks.
Also, python wants to be everything ( functional, OO, imperative, etc ) and hence is the worst language to learn programming language topics in my humble opinion.
My hope is that python will serve as a "gateway drug" to other languages like ruby, ML, C/C++, SQL, etc. So that people will learn what programming and languages are rather using python as a glorified calculator which I'm sure many are doing.
SQL certainly is a programming language. It is a member of the declarative family of languages (eg. like Regular Expressions, or Prolog), rather than an imperative/procedural one.
Yea, so is HTML, but if someones list of useful programming languages went C#, HTML, ruby, SQL. You would have to admit too that you would consider that person very inexperianced. It’t like listing a blender in a list of your favorite power tools. It’s not that it’s not useful for what it does, it just doesn’t belong in that particular comparison.
It was originally SEQUEL (Structured English Query Language) and then changed to SQL (Structured Query Language) due to acronym conflict with Hawker Siddeley's trademark.
>> Also, python wants to be everything ( functional, OO, imperative, etc ) and hence is the worst language to learn programming language topics in my humble opinion.
I think it doesn't get the functional/imperative parts right as they seem to be patched onto it. It is just a scriptable, OO language and pretty good at it, when combined with it's batteries included et al.
OTOH, Common Lisp is everything and is great at it. IMHO, a language with only paradigm is very restrictive and rarely helps when solving real world problems as they can't be effectively modeled in one paradigm only.
That is why CL is just a joy to solve problems with. So is Python and anything else if that one major paradigm that it supports is a right fit for the problem at hand.
It's taught in most beginning CS courses, has wide adoption for scientific computing and business. It seems like most apps are prototyped in R/Python before functions get ported to c or parallelized with dask/spark/scala
python was never intended to be a functional language, but it has lambdas. ruby and C++ are both "functional, OO, imperative" in the same way.
C with classes and first class functions is probably the best language
For that matter, I remember an episode of Magnum PI where the person who hired Magnum had talked to a few other PIs, and hired Magnum because he was always second on their lists of good PIs.
That's why there's a library for everything in Python.
It's limitations are also not terrible for most people. If you want super fast, you will know how to do that some other way. If you just want simple and easy to read, you use Python.