Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?
 
PerlMonks  

Re: Should I come back to Perl?

by Anonymous Monk
on Sep 11, 2015 at 16:09 UTC ( [id://1141682]=note: print w/replies, xml ) Need Help??


in reply to Should I come back to Perl?

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.

Replies are listed 'Best First'.
Re^2: Should I come back to Perl?
by jekyll (Acolyte) on Sep 11, 2015 at 16:31 UTC

    \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.

        \o,

        thank you! (And sorry if I act like I don't really want to be here. That's not true.)

        Guess I'll start Perl'ing tomorrow again then. :-)

        Regards and all that,
        jkl

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1141682]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others pondering the Monastery: (3)
As of 2024-04-24 23:50 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found