http://qs1969.pair.com?node_id=1141661

\o,

maybe this is not a good forum to ask this, but on reddit they were rather quiet ... :-)

I exclusively used Perl 5 and a bit of JavaScript and PHP for my first job, then I somehow focused on PHP completely and started to make money with it. Writing scripts in other languages was never a job choice for me, I just like to learn new things. (Although I guess that knowing more languages will highly increase my job chances anyway.) The occasional Perl here and there (a fun IRC bot in my spare time, a text parser for some of my colleagues at work) was never gone but I didn't invest much time into it.

Some day I needed a website parser for the PHP tool I had been hired to develop. As I had read about Python's urllib just a short time before, I decided to implement that script in Python, not being aware of the actual difference between Python 2 and Python 3. Another hobby, I thought. When the script was nearly complete, I learned that Python 2 is about to be phased out slooooowly and Python 3 lacks a comparable community yet. I assume Python 4 will cause even more trouble, and it's not really worth all that.

I have a couple of other projects in my "To do when there's some more spare time left" list, including a rework of the particular Python script and some web development things. I guess some will be in Common Lisp (learning languages by implementing things in them has always worked out for me), but I also will revive my Perl knowledge. I just don't want to switch to Perl just to see it suffering from the same problem too, Perl 5 being slowly phased out and Perl 6 being not widely accepted. If Perl 5 won't have the same "future" as Python 2, I'm happy to join the old Perl club again; otherwise, I (again) don't really know what to do.

I don't want to rewrite my code every few years just because someone decides that the language I wrote it in is deprecated for no good reason now. Does anyone of you have a deeper, reasonable clue about what will happen with Perl 5 when Perl 6 has gained enough attraction?

Regards and all that, jkl

Replies are listed 'Best First'.
Re: Should I come back to Perl?
by Corion (Patriarch) on Sep 11, 2015 at 11:39 UTC

    I think your view of Python 2 not having a future is a bit dark. Python 2 is installed on more machines than Python 3 I presume and it's not going anywhere fast. The main thing that Python 2 has going against it is that Guido declared it dead. Python 3 uptake is slow and I'm not sure that it will get better.

    Perl 5 is not really being slowly phased out. Perl 6 is just starting, but Perl 5 has a battle-tested environment and a vibrant community and has sustained maintenance of the libraries. For example, CGI has just been spun out of Perl so it can be maintained independent of Perl itself. Of course, /usr/bin/perl is Perl 5 and will be for at least five years to come. This year is the first year supposed to see a major Perl 6 release and we can judge from that onwards as to the uptake of Perl 6.

    So, I wouldn't dismiss using Python 2 but I consider Perl 5 a good choice obviously. If you're looking for a concise, fun language to program in, Perl 6 might also be interesting. Currently, there is a major lack of libraries for Perl 6, but support for binding to third party C libraries through FFI is surprisingly good.

      \o,

      the major problem here is the word currently. I'm afraid of when this will end.

      Regards and all that, jkl

        You should not be thinking about Perl6. It's deeply interesting. It's moving forward well. It's not ready. So unless it's to satisfy curiosity or to contribute or to gamble on the future to get ahead of the curve, ignore it. Perl (5) is not going to disappear. Its releases have been like clockwork for years. It's as stable and useful as any language and likely to remain the leader in things like regular expressions and Unicode support. Perl6 will have nearly zero influence on Perl5 until and if it becomes stable, complete, and as fast. This is not going to happen next year or the year after and it may never happen at all.

        Perl5 is a fantastic, vibrant language, with a rich ecosphere, actively moving forward and it will be for the foreseeable future. If you like it, jump back in with both feet.

        Update: did not realize I'd klept "vibrant" from Corion. :P Regarding Python: the 2/3 split being installed and competing with shoddy include/discovery code on boxes in install scripts is what led me to wonder how anyone likes it at all. It's been nothing but a PITA to me and from an accidental user's perspective it seems like a hot mess full of bad practices and assumptions. Perl, Ruby, and Node.js toolchains have all been kinder and saner for me.

Re: Should I come back to Perl?
by hippo (Bishop) on Sep 11, 2015 at 11:43 UTC
    Does anyone of you have a deeper, reasonable clue about what will happen with Perl 5 when Perl 6 has gained enough attraction?

    You're really into crystal-ball territiory there. the best anyone could really do is to say what might happen.

    Best case scenario: Perl6 is released on schedule but with a more sensible name like "PerlVM". Everyone loves it and it becomes widely used as a sane replacement for Java in those places where a bytecode VM is a sensible choice. Those who were using Java in entirely the wrong place re-evaluate their strategy and turn to Perl5 instead. Both languages grow in use and respect.

    Worst case scenario: Perl6 is released in another 4 years or so under that name. Clueless bosses become dumber and insist that everyone using Perl5 "upgrades". The rewrites cause massive headaches for the devs and result in less efficient systems. Users of other languages say, "Perl? Didn't that used to be a language?" and carry on as before. Both languages suffer and die.

    As usual with best/worst cases the actuality is likely to be somewhere in the middle. I would recommend anybody to concentrate on Perl5 as it is to my mind the single best language I have come across and really does deserve the Swiss Army Chainsaw tag. If you work in a bytecode VM environment (eg. phones) then of course consider Perl6/PerlVM (but don't bet the farm on it just yet).

      \o,

      actually, both of your scenarios lead to the final fall of Perl 5 as having the ex-Java crowd around rarely means an improvement for any language, right?

      Regards and all that,
      jkl

        jekyll

        ...having the ex-Java crowd around rarely means an improvement for any language, right?

        I can confirm. I swear our simple Objective-C app has a CORBA server embedded in it just to populate 20-character read-only text fields. That's a mild exaggeration, but you get the idea. Put there by ex-Java heads, of course; I assume fleeing the world of Tomcat or some such.

Re: Should I come back to Perl?
by Discipulus (Canon) on Sep 11, 2015 at 11:48 UTC
    Hi jekyll and welcome to the monastery,

    I think you'll receive answers from more experienced monks (and you are receiving it: i'm a sloow typer..), monks with a better overview about programming languages than me.
    Anyway in my experience Perl5 seems not to be phased out, not slowly nor fastly, in the future. You can see yourself how many releases of Perl have been issued in recent past. Also the community seems quite active (see CPAN and others). Also some good new things have been released or upgraded in recent past (see PSGI-Plack, Moose or Moo, Mojolicious and Dancer..). Also new book are arrived with a new view on the Perl language (see the online version of Modern Perl).

    Perl6 seems to me to be exactly another thing: is not Perl5++; is Perl6, a totally new language. It is not entirely arrived, even if you can play with it and many monks (not me) play and discuss about it. I dont think Perl5 will be dismissed after Perl6 official release. By the other hand Perl's decline in respect to 2000 year is noticeable, but this is another story. If you search this site for nodes with 'dead' or 'decline' in the title you can get a big picture and different points of view.

    In short: yes!! come back to Perl!

    L*
    There are no rules, there are no thumbs..
    Reinvent the wheel, then learn The Wheel; may be one day you reinvent one of THE WHEELS.

      \o,

      I saw Dancer a while ago when I started to play with Flask and Caveman2. Indeed, modern web development with Perl is an interesting task.

      The "decline" of languages as Java and Python are taking their pieces is not really interesting to me (I would not consider Perl at all if I did), the shattering within a language is. I guess I would have had a big time with Python if I would not care.

      Thanks for the links!

      Regards and all that, jkl
Re: Should I come back to Perl?
by BrowserUk (Patriarch) on Sep 11, 2015 at 16:47 UTC

    That's kinda a non-question. It's totally up to you.

    If you enjoy perl and can get paid to write it; use it. If not; don't.

    Same with Python 2. Just cos Guido declared it dead; doesn't mean it will disappear off your harddrive; or stop being a part of *nix distributions; or a favoured tool amongst a whole swath of researchers in a dozen different fields.

    As for the other non-issue of perl5 -v- perl6: there is a sufficiently large percentage of the Perl community that are completely (and often irrationally vehemently) against Perl6, that Perl5 will probably still be around barely changed 20 years from now.

    And Perl6: who knows? Do you believe in Father Christmas?


    With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
    Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
    "Science is about questioning the status quo. Questioning authority". I knew I was on the right track :)
    In the absence of evidence, opinion is indistinguishable from prejudice.
    I'm with torvalds on this Agile (and TDD) debunked I told'em LLVM was the way to go. But did they listen!
Re: Should I come back to Perl?
by Anonymous Monk on Sep 11, 2015 at 16:09 UTC

    Don't be distracted by Perl 6. It is a separate language from Perl 5. They belong to the same family, much like C and C++ belong to the same family but exist as different languages. It's true that C++ originally began as a superset of C, but at this point they're different languages that share a lot of common heritage some common community.

    I just checked. In /usr/bin on my system, there are 128 utilities that invoke the Perl shebang line and rely on Perl 5. There are 50 that invoke the Python shebang line and rely on Python 2. It is expected among linux users that Perl will exist on a system. If it were to not exist by default, not only would many bundled system utilities have to be rewritten, but many thousands of utilities and applications that don't ship with the core linux distro would also have to be updated, at minimum, to add the external dependency. Perl 5 is embedded in Linux culture and in the Linux ecosystem.

    Furthermore, unlike with Python 2, Perl 5 is still considered an actively developed and evolving language. There are new major production-ready releases every year, plus a few minor releases. These major releases do not only constitute bug fixes. They also include new features -- new features invented by the Perl 5 community, new features inspired by Perl 6, and new features inspired by other languages. There is no plan to phase out Perl 5. There is no will in the community to see it go away. There is nobody with clout in the Perl community advocating for its deprecation. Perl 5 is still alive and well.

    The next indicator that one could look at is CPAN. CPAN continues to grow. There are new authors every day, new releases of existing modules, and new modules. There seems to be no will for that to go away either. Nor does there seem to be a mass migration of CPAN code that relies on Perl 5 to new releases that ditch the Perl 5 dependency in favor of Perl 6. Perl 5 is where real world development is thriving.

    Perl 5's future is not threatened by future success of Perl 6 any more than being threatened by the future success of any other new language. That is not to say that Perl 5's market share is not eroded by new languages. Only that the risks to Perl 5's market share are the same whether they come from Python or from Perl 6. Except that with Perl 6, success in that language could actually spawn even more interest in Perl 5 along the way. Market-share erosion is the only foregone conclusion that any established language, Perl or otherwise, could anticipate as more and more languages come on the scene every month. Fortunately that market-pie is also growing, and while the Perl 5 slice may be narrower, it is cut from a pie of greater diameter as the importance of technology grows.

    And finally, one should ask the question where would you like to be in 5 years, and in 10? The applications you write today in Perl 5 will still be capable of running in Perl 5 in a decade. A minor update here and there may be necessary, but they will still be runnable. But are you, today, running any applications that you wrote ten years ago and haven't updated since? There may be a few, but for the most part, probably not. It won't matter in ten years whether you wrote today's project in Perl or in Python. The languages will have outlived the project's relevancy.

      \o,

      > "The applications you write today in Perl 5 will still be capable of running in Perl 5 in a decade. A minor update here and there may be necessary, but they will still be runnable."

      Sure, but I'm an Open Source guy. I want other people than me to run my software too ... and this might be hard at some point. Technically, every program ever written is still runnable, but the effort might increase over the years.

      The shebang line is a questionable indicator though, given that Python might alias as python2, python3, python27, ... while Perl is usually perl, right?

      I admit that CPAN is about three times as large as Python's PyPi is. I just hope that there won't be a version conflict between the Perl versions. Perl6 has its own CPAN, right?

      Regards and all that,
      jkl

        Everyone keeps telling you to ignore Perl6.

        Perl5 has done an excellent job with backwards compatibility and introducing new features and deprecating old ones in the right ways. Half the code in the codebase I'm paid to work on is from 1998. Ran on 5.4.0 seventeen years ago. Runs fine now. I have total confidence it will run fine on Perl 5.30.0 in eight years.

        "The applications you write today in Perl 5 will still be capable of running in Perl 5 in a decade. A minor update here and there may be necessary, but they will still be runnable."

        Sure, but I'm an Open Source guy. I want other people than me to run my software too ... and this might be hard at some point. Technically, every program ever written is still runnable, but the effort might increase over the years.

        This is a straw man argument. I don't see Anonymous Monk suggesting that nobody would be maintaining your project in ten years. Any piece of software that is around and being used in ten years will have had updates by some maintainer along the way.

        The other fallacy in this reasoning is that it seems to assume applications written in other languages won't need to follow similar maintenance paths. I assure you that if you write an application today in any live programming language, if it's still in broad use ten years from today, it will have had updates somewhere along the way.

        Most code cleanly written in Perl 5 ten years ago would require no changes to run in Perl 5 now. There are a few exceptions for code that used pseudo-hashes, or $*, among a few other things. And unclean code that was depending on hash ordering would fail, but that was documented ten years ago to be a bad practice.

        That is actually a better situation than code written ten years ago in many other languages. Perl 5 has done a better job of maintaining backwards compatibility than most other actively developed languages. And I see no reason to believe that trend wouldn't continue into the future.

        If you don't want to come back to Perl 5, don't. But it would be silly to eschew Perl 5 out of fear of events that nobody can predict. If it is a good language for getting things done right now, use it. It's not like you're going to be able to count on Ruby being included with Linux in ten years, or five, or 1. Perl, yes for 1, and five, and probably for ten.

Re: Should I come back to Perl?
by sundialsvc4 (Abbot) on Sep 11, 2015 at 20:55 UTC

    (1)   Anticipate that at some near-future time you will have the opportunity to work on yet-another language that you haven’t used before.   Therefore, make it your business (since it is “your business” ...) to familiarize yourself with as many languages as possible.   (I happen to think that it’s fun.)

    (2)   Also assume that new languages will always be coming on to the scene (e.g. Apple’s now open-source [Tom?] Swift), and that languages now in use will never die.   On the one hand, people are always looking for new and more-efficient ways to build certain things (and so, they are designing languages for that purpose), and on the other hand, they accumulate a vast monetary investment in the systems that they already have.   Be their solution to their problem, no matter what it is.

    The more nimble you are ... and the more you’re willing to say “sure, I can do that,” and never let them see you sweat, and somehow make-good on your promise ... the more marketable you will be.   It does not matter that you focus on “one or two languages” for extended periods throughout your career.   (Everyone does that.)   You will find that it all comes right back to you.   If the next one’s in Perl (5, or, who knows, 6?), jump in.   The water’s fine.

      \o,

      1) The only reason I started using Python after Perl and PHP is that knowing more languages is inviting, there can always be a case where one of the rarely used languages is the perfect match. Yes, it's fun. :-)

      2) I've seen many languages come and Go (pun intended), I thought Pascal would survive, then I thought Visual Basic would survive, then I stoppped believing. ;-)

      So here I am, not choosing my languages by the career they promise me (here in Germany, everything except Java, C++ and PHP is mostly irrelevant for the real life), diving through the waters...

      Regards and all that,
      jkl

        ad 1: Python2 will have support at least up to 2020, see http://stackoverflow.com/questions/4836375/end-of-support-for-python-2-7. Likely longer as there are tons of legacy code. In addition lots of python 3 features have meanwhile been backported to python 2. So some of the differences have vanished.

        ad 2: Pascal is still living despite having lost popularity. As well is Tcl in some places, in particular if dealing with CISCO machines. If you're looking for a rock solid language that doesn't require you to rewrite programs every few years, why not trying that instead? In addition: Multi threading support in Tcl is by far more efficient than in python or perl IMHO. Runtime environment is much smaller and one can alternatively easily deploy executables without need of proper installation of runtime. And most important: you'll likely be able to read and understand your program half a year later ;-) Its just: Tcl has a strange syntax that needs getting used to, and programs are definitely longer most of the time, especially in comparison to perl's terseness.

        Having to rewrite your programs can happen e.g. with java as well, especially if you are writing web applications.

Re: Should I come back to Perl?
by Anonymous Monk on Sep 21, 2015 at 16:15 UTC
    Everyone seems to presume that there is no cost in re-writing a production system ... or even, changing it to use a different release of the language it was written in. This is never the case. "What is said in language-X, stays in language-X," just like your neighborhood bar. So, never think that you will leave a language behind. Make good money from the fact that new people never learned it. In a short while, what is trendy today will be legacy tomorrow. And it will remain in service despite cries that it is all crap and that we should start over. Programming languages are cheap free. Software written in that language is worth millions.