

Perl's Problems - davorg
http://perlhacks.com/2014/09/perls-problems/

======
cies
The article "addresses Perl's perceived problems" more then it tries to find
what the real problems of Perl are.

So here's my take on it:

1\. Syntax. And how it's almost impossible to change it after a certain level
of language-adoption. Perl coders knew it needed to be radically changed,
understood how that was impossible, and moved on.

2\. As a result of 1: the shrinking community. It is a clear red flag, no-one
wants to start a project in based on (soon to be) legacy technology.

3\. The existence of very suitable languages for Perl-refugees. When Perl
ruled the web it was pretty much the only open source, web-focussed, runtime-
typed language with a package manager fully of goodies. But with Ruby, Python
(, etc.) and their very active communities around, it became very easy to
switch.

4\. It missed academic backing. Having programmers "schooled" in a particular
language seems to be important in this world. The winners in this area seem to
be Java, C-Sharp, C++, C, Python and to some extend Haskell; Perl never
managed to enter this league (and does not seem very fit).

~~~
bane
> Perl never managed to enter this league

For a while at least, Perl did find a home in Linguistics. While it was
because of the excellent text parsing tools, it makes a strange kind of sense
as well, since Perl was designed to be a bit more like a human language and I
think Linguists appreciated that. But that's such a small field that the
impact was negligible. Most of the modern Computational Linguistic work is
done in Java and Python these days, but for a while, many people working in
Linguistics came out of their undergrad with at least a passing familiarity
with Perl.

For a briefer spell, I seem to remember Perl finding a home in bioinformatics
for much of the same reasons. I have no idea what or if that field has moved
on to.

For me personally, Perl was the ultimate hacker language when people needed to
get shit done and that shit involved munging lots and lots of files in text.
But I think these days the world has moved onto other things that Perl isn't
any better suited for than some other language (which is then conversely
better suited for a bunch of other stuff than Perl).

~~~
hibbelig
> ... Perl was designed to be a bit more like a human language ...

ADD A TO B GIVING C

~~~
ultimape
Comparing Perl to COBOL makes me think you've programmed in neither.

 _edit_ here's some background on the Perl linguistics angle:
[http://world.std.com/~swmcd/steven/perl/linguistics.html](http://world.std.com/~swmcd/steven/perl/linguistics.html)

------
sciurus
> Is the difference between arrays and array references really necessary?

This is certainly a annoyance compared to e.g. Ruby. It's getting easier to
just always use references [0], but I haven't been using Perl much for a few
years and am not sure if this is still considered experimental.

[0]
[http://search.cpan.org/~rjbs/perl-5.20.0/pod/perl5140delta.p...](http://search.cpan.org/~rjbs/perl-5.20.0/pod/perl5140delta.pod#Syntactical_Enhancements)

------
Moto7451
I agree with most of what is here save for the Perl 5/6 issue. Perl 5 needs a
name change of some kind or another (Since Perl 6 isn't going anywhere or
changing its name). You can't really write it off as people not "understanding
how version numbering works" when the common way it works is by incrementing
the major number when a new version is out.

~~~
davorg
But that's my point. People do understand how version numbering works. But
Perl is trying to change that by saying that Perl 6 isn't the next major
version of Perl - it's just another language in the Perl family. I think that
just confuses people.

~~~
cygx
Personally, my guess is that once the performance issues with Perl6 have been
solved and there's proper Perl5 and CPAN integration, the whole sister-
language-instead-of-next-version thing will go away.

------
hapless
To put it bluntly: The next Perl release should be 6.0.

The existing perl6 projects can figure out their own branding, because it's
clear they are no longer "successors" or replacements for Perl.

~~~
maxlybbert
Are people still complaining about the version number? If only there were a
simple way to get people talking about Perl again. Personally, I think the
best approach would be to (1) recognize that every language has a CPAN
equivakent so stop using it as a unique selling proposition (or, at least make
it better than everyone else's), and (2) keep implementing cool things in
Perl. Prove that Perl programs that do a lot of things (1) are maintainable,
and (2) don't have to be as large as the equivalent in other languages.
Arguing about the version number just isn't enough.

~~~
collyw
Whats the JavaScript equivalent? Every time I need to delve in to JavScript it
seems a mess. Or Java for that matter.

~~~
maxlybbert
Npm. It's meant for Node-js code, but you can use it to make sure modules are
installed in your source directory for a website. Aside from npm, there are
public CDNs available ( [http://www.jsdelivr.com/](http://www.jsdelivr.com/)
and [https://cdnjs.com/](https://cdnjs.com/) ).

~~~
maxlybbert
For Java (btw), there isn't a central repository, but Maven lets you download
the Internet ( [http://blog.sonatype.com/2011/04/how-not-to-download-the-
int...](http://blog.sonatype.com/2011/04/how-not-to-download-the-
internet/#.VCmOhuKLNIc) ) which solves the same problem.

------
vezzy-fnord
I've always found it funny how many of the people who decry Perl as being
"line noise" will then go on to praise such languages as APL, J and K. I think
it might be because of their more esoteric paradigms and the fact that they do
not follow the formulaic Von Neumann architecture, making them good targets
for people to assert how atypical they are, unlike those other Blub
programmers.

~~~
michaelcampbell
> I've always found it funny how many of the people who decry Perl as being
> "line noise" will then go on to praise such languages as APL, J and K

This is not a reality with which I am familiar. I like the idea of APL; I even
did some, years ago, but this feels strawman-y to me. Even in the J/K/APL
crowd, the running joke is readability.

~~~
agumonkey
From a distance I'd say APL* having one datastructure and many (cryptically
represented) operations. Think Alan Perlis (NPI) epigram
([http://www.cs.yale.edu/homes/perlis-
alan/quotes.html](http://www.cs.yale.edu/homes/perlis-alan/quotes.html)). Perl
context sensitivity with many builtin types is like combinatorial explosion of
cases and is harder to parse mentally.

------
vorg
> The current version of Perl (5.20.1 as I write this) is a lot different to
> the version that was current when Perl 6 was first announced (which was
> 5.6.0, I think)

Wasn't "Perl 6" just a tentative spinoff from "Perl 5.6", and didn't Perl
programmers start unofficially refering to subsequent versions of Perl 5.x as
"Perl x", i.e. Perl 5.7 as "Perl 7" and the latest version as "Perl 20" ?
Better make official how Perl programmers are speaking anyway and call the
next version Perl 21.0

~~~
cygx
_Wasn 't "Perl 6" just a tentative spinoff from "Perl 5.6_

No. Perl6 is a complete redesign of the language, unencumbered by backwards-
compatibility. One of the design goals was to make it extensible on as many
levels as possible (proper specification, multiple backends, meta-object
protocol, pluggable syntax, macros, FFI, ...) so that another rewrite won't be
necessary in the foreseeable future.

 _didn 't Perl programmers start unofficially refering to subsequent versions
of Perl 5.x as "Perl x", i.e. Perl 5.7 as "Perl 7" and the latest version as
"Perl 20"_

Not that I'm aware of, but I'm on the edge of that community.

~~~
vorg
Read between the lines. I was suggesting a plausible backstory for burying the
Perl 6 fiasco, and refocusing attention back onto the Perl 5.x line.

~~~
cygx
Reality is not git: You can't just rewrite history.

------
kyllo
Obligatory xkcd: [http://xkcd.com/1171/](http://xkcd.com/1171/)

~~~
kraih
You mean this one: [http://xkcd.com/224/](http://xkcd.com/224/)

