Hacker News new | ask | show | jobs
by 323 1456 days ago
> much worse language than many others that were equally available to anyone

I've been there during the Python take over and world and it's not my recollection of how it went.

Which are those superior languages that you are talking about?

An important property of Python is that while it may not excel at many things, it's good or decent at everything. Unlike specialized languages like R for example which sucks at everything which is not operations on numbers.

2 comments

Common lisp and a handful of other scheme/lisp variants, for example, if we talk about high-level general purpose languages.

Lush was a lispy open-source language - implemented in C - that deserved a better outcome.

And of course there were other scripting languages around like Perl, Tcl and Lua. Torch was built on top of the latter, by the way.

The consensus at the time was that one should only use Perl/Tcl for legacy reasons. And that these languages should be replaced with Python.

A few examples, there were countless articles like these:

2000 Eric Raymond (!) - Why Python?

> It was at this point I realized I was probably leaving Perl behind. ... For anything larger or more complex, I have come to prefer the subtle virtues of Python—and I think you will, too.

https://www.linuxjournal.com/article/3882

2002 What's wrong with Perl:

https://www.garshol.priv.no/download/text/perl.html

To clarify, I was mentioning Perl/Tcl as existing alternatives that were "equally bad" as Python - not necessarily better. In any case, the fact that a teaching language like python ended being used for numerical computing - a task that it was not suited for - is accidental.
lush was sadly dynamically scoped at a time the lisp universe in general had agreed lexical scope was the way to go. I feel like it could have gotten a lot more traction if it wasn't for that. (also if I remember correctly its desktop gui libraries were windows only)
I think it was the other way around: the GUI was based on X11.

http://lush.sourceforge.net/news.html

2003-02-19: Rejoice, rejoice! Thanks to Leon, the CVS version now compiles and runs on Windoze under Cygwin. Be sure to read the README.cygwin before installing. What works: the interpreter, the compiler, the dynamic loader, X11 graphics and events. What doesn't (yet) work: external packages such as GSL, SDL, OpenGL...

I think that's a very important point: if you invest time in writing software to solve domain-specific problems, it is a lot better if you can do that in languages that have a hope of making it out of the lab and into software you can run as part of a processing chain or in applications.

A library written in a language usable for implementing whole applications is far more useful than, say, a Matlab project, which you then have to translate into some language before you can actually use it in software.

Python is indeed such a language.

(That being said, Python is a poor language choice from a software engineering point of view because it doesn't have a decent path-of-least-resistance to properly distributing software without burdening the user. I do a fair bit of embedded programming, and it has lead me to the conclusion that Python is a terrible tooling language. I've also had colleagues struggle with what happens when data scientists who are more scientist than software engineer write stuff in Python. It is messy, time consuming and frustrating to actually use the resulting software.

But from a language perspective, yes, Python is a better solution than languages that are narrowly scoped)