7 ms·
I used python for a bit but switched to Perl because it 1) Works 2) Is ubiquitous 3) Is stable 4) Is normal (semicolons, braces etc)
by isostatic 7y ago
I used python for a bit but switched to Perl because it
1) Works
2) Is ubiquitous
3) Is stable
4) Is normal (semicolons, braces etc)
- unmole 7y ago> 2) Is ubiquitous On which systems do you have Perl readily available but not Python?
- gsich 7y agolegacy stuff
- isostatic 7y agoWhich version of python? Perl documentation online applys to versions of perl that are installed. Python stuff is all bleeding edge - you'll research why something isn't working and after 30 minutes find it's expecting python 3.7. The whole concept of "virtualenv" gives me an impression of fragility I don't get with perl.
- deleted 7y ago[deleted]
- jsymolon 7y agoWanted to use Python 3 for some processing but the Sysadmin said that only Python 2 was available for that distributions version and "didn't want to frankenstein the box"
- mkl 7y agoWhat about installing miniconda in your home folder? How ancient is that system?
- Izkata 7y agoPossibly CentOS, which requires python 2.7 even now.
- jsymolon 7y agoRedHat EL5. No matter, that system is going to be decommissioned and functions will go over to a new EL7 install. It just stalls that project till the new server is ready.
- isostatic 7y ago> What about installing miniconda in your home folder? This is not how you deploy software
- mkl 7y agoYou are right, but I interpreted it as a one off manual task. I've used miniconda in that way.
- CJefferson 7y agoThe problem with python is some systems have 2, and others have 3. Basically everything has perl 5.
- w8rbt 7y agoWhich one? Python 3.5.x or 3.7.x or something else? Version 3 should be version 3. Anything written in 3 ought to work on every Python 3. Not so in the Python world. And that makes it a mess to use (unless you Dockerize every script). Perl 5 is Perl 5 everywhere.
- gmfawcett 7y agoPerl 5.001 is really old (25 years or so), and lots has changed since then. v5.10 introduced a barrel-full of new features; other important features like the "use v5.10" syntax for supporting older scripts didn't land until much later (v5.16). Where I work, a few of our legacy systems are still dependent on ~v5.10, which can be a real pain when trying to port code back to legacy. I agree that the Python versioning problem is perhaps more prominent, but Perl 5 doesn't really get a free pass here.
- smueller1234 7y agoThe "use VERSION" syntax is fundamentally much older. It used to strictly just assert a minimum version. It also, pre 5.6, required floating point versions ("use 5.005"). In newer versions of perl, this syntax will also invoke "use feature <stuff new in your version and all versions before>" which allows the use of incompatible new features in its lexical scope. One example is that "use 5.12;" and above will turn on "use strict" in the lexical scope. I fought long and hard for that one. Makes the language strictly better (pun intended).
- gmfawcett 7y agoIt strictly does! :) I knew that "use 5.12" implied "use strict" but I didn't know the mechanism, or that it could enable other features as well. That's pretty cool!
- toast0 7y agoFreeBSD ships perl5 in base, but python is an addon. I suspect other BSDs may be similar. The only thing more ubiquitous is POSIX compatible /bin/sh but that's much less featureful. Because of the stability of perl5, I barely care what version of perl5 that ends up being. (Perl 5.10 and up is pretty much what I want, 5.8 and 5.6 are a drag if i might need unicode)
- yellowapple 7y agoOpenBSD ships with Perl (it's used for the package management tools, among - I presume - other things) but not Python, last I checked. Not that installing Python is especially difficult, but still.
- lifthrasiir 7y ago> 4) Is normal (semicolons, braces etc) What was your first programming language? Because what seems like normal to you mostly depends on you.
- isostatic 7y ago> What was your first programming language QBasic, then Visual Basic for real programs. Look across a bunch of common languages - Java, Perl, Python, Javascript, PHP, and of course C/C++/C#/ObjC, braces + semicolons. Even Bash and Go have braces.
- lifthrasiir 7y ago> Python >>> from __future__ import braces File "<stdin>", line 1 SyntaxError: not a chance Back to the topic, while I don't think its ranking doesn't generally reflect the actual popularity, the TIOBE index [1] is a good definition of "common enough" languages. So let's see... oh! There are 5--7 programming languages out of top 20 that do not generally use both braces and semicolons! (Python [not-so-strictly-necessary semicolon only], Visual Basic .NET, SQL [semicolon only], Assembly language, MATLAB, Visual Basic and Delphi/Object Pascal [semicolon only]). I also happen to know less popular but well-known programming languages that do not use both braces and semicolons at all (ML, FORTRAN, Lua, Forth and of course all lisps). So please allow me to reword your claim: why should braces and semicolons be normal? [1] https://www.tiobe.com/tiobe-index/ https://www.tiobe.com/tiobe-index/
- kevin_thibedeau 7y agoPascal, Forth, Postscript, Lisp. There is no "normal" syntax. There is more to languages than those inspired by C.
- mattbillenstein 7y ago> 1) Works Almost anything can "work" > 2) Is ubiquitous So is awk, don't write software in it. > 3) Is stable This will become questionable as Perl slips into non-maintained mode. > 4) Is normal (semicolons, braces etc) Perl syntax is very far from "normal"
- roryrjb 7y agoPerl is a general purpose programming language. The Perl interpreter and language are stable, it's not going anywhere soon. Perl and its syntax have been around a lot longer than most other languages and is very similar to C, C++, JavaScript and PHP. What do you consider normal syntax?
- vultour 7y agoThe most obnoxious parameter passing in existence? The magic variables everywhere? Perl code is an unreadable heap of spaghetti, I’d much rather be figuring out unallocated memory bugs in C then read Perl.