I am leaning more towards it looking like pseudocode
> - it has an enormous set of libraries available to use
I believe that to be the actual reason. I've long held that python is a kinda bad language, but with FANTASTIC libraries
I am leaning more towards it looking like pseudocode
> - it has an enormous set of libraries available to use
I believe that to be the actual reason. I've long held that python is a kinda bad language, but with FANTASTIC libraries
the best teaching language (imo) is one with few features or surprises. I think Scheme might come out top here.
Depends what you are trying to teach. If you're trying to teach computer science and programming fundamentals, then sure. If you're trying to teach people how to get 'real work' done quickly and efficiently then Scheme will only get in the way and slow people down.
For example when I've taught programming, one of the tasks I taught fairly beginner programmers was to grab some satellite images between certain dates, try to detect if there is a forest fire, measure the spread of the fire and plot the spread on a map.
With python (and its excellent libraries) this is quite quick and easy, and most people are up and running and hacking around with their programs in pretty short order. They find it really cool and inspiring and makes them quickly realise that programming could be something useful in their day to day job. Trying to start with chapter 1 of SICP and Scheme and working up from there to solving the above problem would probably lead to most of these people giving up on programming very quickly. That being said the few people that made it all the way through that would no doubt be much much better programmers because of it.
It looks like English. That's all pseudocode is, and they know that well enough.
ftfy - it's the only way a tragically slow language like Python can keep up.
Edit: didn't forget FORTRAN
That is simply not true. Even libraries like numpy, scipy and scikit-learn are majority python code.
https://stackoverflow.com/questions/1825857/how-much-of-nump...
For the vast majority of use cases, performance just isn't a priority. Doubly so for Python, that shines for simple automation, command line applications, and perhaps some serveless computing.
Being easy to write, having a good ecosystem of libraries, and being widely known is typically good enough. I wouldn't use Python to write a robust backend server side application, mostly because the language doesn't lend itself well for it.
If it was too slow, we'd be doing all of this in Java, the C# or maybe doing it in C/Fortran. But because of some early design decisions (Guido being on the matrix-sig helped), the history behind Numeric/Numarray and finally NumPy and SciPy being based on those efforts allowed it to thrive.
Those were your words, not mine. I need not make any assumptions.
I just replied listing use cases where Python shine due to its strengths, performance being mostly irrelevant. I didn't even mention data science.
And although it's beyond the point, if I was to use Python, why should I care in which language a library was written? If the language allows libraries written in other languages, this is actually a nice feature.
That’s actually my primary use case for python, playing with C/C++ libraries in a repl because they don’t natively have one.
Sure, it takes work to wrap a library but that’s something I enjoy doing.
Just wait until they learn the python interpreter is written in C… <grabs popcorn>