4 ms·
I first encountered Python around 2000. At the time Perl was more popular in the circles I frequented, and TCL probably about as popular as Python (eggdrop[1]
by aidenn0 3y ago
I first encountered Python around 2000. At the time Perl was more popular in the circles I frequented, and TCL probably about as popular as Python (eggdrop[1] notwitstanding), but Python was growing steadily. I encountered Ruby in the late '00s (as others have noted it made its english-language debut almost a decade after Python started) and Lua was another contender during this time.
My memory is that, at least outside of the web/RoR world, Ruby at no point as popular in the US as Python. Lets take, say 2005 as a point that Ruby was really gaining popularity due to Rails: at this point I was already seeing internal tools that previously would have been written in Perl being written in Python.
Python just seems to have maintained a certain momentum, and I'm not sure why, but if I had to guess:
1. The syntax is almost a dead-ringer for pseudo code. The first time I encountered Python, I fixed a bug in an open-source project having never seen Python before. I recall two different CS programs switched to Python from Scheme for exactly this reason.
2. It was designed to glue C together. Other languages were too (TCL and Lua; Perl primarily interfaced with the outside world in the same way shell does, with pipes).
3. A kitchen-sink approach to the standard library helped it a lot for the first 20 years of its existence. CPAN was sui-generis at the time for installing libraries, so the more you could do without relying on 3rd-party libraries, better off you were.
1: https://en.wikipedia.org/wiki/Eggdrop https://en.wikipedia.org/wiki/Eggdrop
- peatmoss 3y agoI think it upset the Perl hegemony in part because of the enterprise infatuation with object orientation. Perl got a lot of flak from the Java/XML crowd (“Perl’s not a real language—it’s not object oriented!”). You could kind of write Java in Python, and thus a certain kind of enterprise techie couldn’t dismiss Python as “just” a scripting language.
- rcarmo 3y agoI (rather to the displeasure of many people) refer to that kind of OOP Python as "Java fanfic"...
- Stranger43 3y agoAnd of cause the fact that the Perl community relished in inventing new and exiting shorthand tricks that allowed perl script to be essentially write only unless you stuck to an style-guide that had not been codified. Perl like VisualBasic had a well deserved reputation for facilitating atrocious hard to debug code, and it was this reputation more then the lack of OO/XML support that led both of those to fade back into the realm of forgotten memory and business critical enterprise applications that nobody dares to touch.
- dizhn 3y agoThe word "enterprise" kind of reminded me of one possible significant reason for python's huge adoption rate after the second part of the 2000s. Google started using it for a lot of things at some point and was advertising a ton of python jobs. That was both a shining endorsement and a possible way into the company.
- kyllo 3y agoI actually think Google picked the winner by deciding to use Python, especially for TensorFlow, right at the time when deep learning really started taking off, and also at a time when they were seen as the leader in engineering best practices that other companies wanted to emulate.
- JAlexoid 3y agoGoogle followed the writing on the wall, nothing else. Google was known as one of the most academic engineering companies, in the 00-ies.
- Ensorceled 3y agoIn my experience, Perl got a lot of flak for being "write only", I don't really remember anybody complaining it wasn't "object oriented". Every Perl code base I've seen, or inherited, has been a mess. My favourite was a bunch of utilities all written by the same person who never did anything the same way twice. Each utility was like an entry in an obfuscated 'C' contest. I used Perl to build my first web application at LONG time ago. That project is included in the list of Perl code bases I've seen that were a mess :-)
- aidenn0 3y agoThere was definitely a group of people who thought "object oriented" was the One True Way and any languages that don't support it are "toys." I'm not sure I ever heard their ire directed at Perl specifically, but I recall the sentiment existing.
- Ensorceled 3y agoOh definitely the attitude exists. I just never saw it directed at Perl. Maybe since, in my experience, Perl has mostly be used as a system language and not a application development language.
- reddit_clone 3y agoHow the pendulum has swung! Rust doesn't even sport 'Class'
- adrianmonk 3y agoThat would be similar to saying C isn't a real language while ignoring the existence of C++. Perl 4 wasn't OO, but Perl 5 enthusiastically embraced OO. The first release of Perl 5 was in 1994, whereas Java 1.0 was 1996. It did take a while for the wider Perl community to embrace OO, though. There were a lot of Perl programmers who weren't into lofty paradigms. Plenty of Perl programmers weren't fully sold on the idea of breaking your program into functions.
- nuancebydefault 3y agoBefore Python got popular, Perl was the most similar popular language. Once I encountered Python, I felt, this is Perl, but done right.
- TuringNYC 3y ago+100 I loved Perl, but it had a culture of doing things in N different ways, too many shortcuts, and you ended up with incredibly tiny scripts which were unreadable -- even to the author -- a month later. This wasnt practical for business use in the face of more consistent code from Python
- kstrauser 3y agoThat was my experience. I like Perl. I'm comfortable with Perl. And after about a day of Python, I never wrote another line of new Perl code. There were so many "it can't possibly be that easy, but it is!" moments. Let's write a function to add five to a number: def add_five(num): return num + 5 OK. So, can I pass that function as an argument to another function? def call(func, value): return func(value) call(add_five, 10) => 15 What? That worked?! And there was zero additional syntax, you just... do it? After a seemingly endless list of happy discoveries like that, I seriously rethought my idea of what programming languages could be, and ought to be.
- DoingIsLearning 3y ago> you just... do it? A few years from now, when researchers look at mental workload when writing/reading software, we will have the data to prove that Guido was a Neuroergonomics savant.
- KerrAvon 3y agoThat sounds trivial? I mean, you can do that in C, what’s surprising about it? I have never found Python as nice to use as you seem to have, but Ruby always fit like a glove. I’ve written Python since 1999 and I still would rather use almost anything else. It’s so labored to do anything complex. You can build worlds in Ruby in the time it takes you to align indentation properly for a single class in Python.
- lordnacho 3y ago> The syntax is almost a dead-ringer for pseudo code. This is the big one. You look at it, and you think you know what it's going to do. The indentation rules also means things look predictable rather than being a mess of brackets.
- takeda 3y agoThis was the reason what made me chose python over ruby. I wanted a language that I would come back to and still understand what I was trying to do. Ruby looked like its spirit animal was perl.