Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister
 
PerlMonks  

Switching from lang X to Y

by stevieb (Canon)
on Mar 19, 2017 at 22:48 UTC ( [id://1185211]=perlnews: print w/replies, xml ) Need Help??

This was posted at Perl is dead over on blogs.perl.org with that title (here's the actual follow-through link to the real article). The title is over the top, but this topic has been brought up here recently, so I thought I'd put it here for our mathematicians/statisticians and other interested Monks.

Personally, I don't care. I love Perl, and likely always will. I have learned other languages while knowing Perl, but as I learn other languages, I just learn new ways to incorporate what I know into Perl. Learning new things and incorporating them into experience I've gained is how I approach everything anyways.

Replies are listed 'Best First'.
Re: Switching from lang X to Y
by BrowserUk (Patriarch) on Mar 20, 2017 at 06:03 UTC

    If you are looking for an alternative to Perl, take a look at Julia. It has -e, a repl and will run (interpret) code immediate; or you can compile it for near C speed, and it calls C libraries natively.

    Perl still has the edge for one-offs and prototyping because of things like -s -anle, while(<>) etc; but for parallel programming and high speed work, Julia is very nice. (1-based arrays take getting used to!)


    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". The enemy of (IT) success is complexity.
    In the absence of evidence, opinion is indistinguishable from prejudice.

      I am most definitely going to give Julia some cycles. It sounds very interesting with some nice features. I'm glad you mentioned it.

      Of course, it won't replace Perl :)

        Of course, it won't replace Perl :)

        For me neither any time soon, but after having flirted with a dozen or more languages over the last 10+ years, I finally found one that feels right to me.

        I still find myself missing Perl every other line when I use it, as with pretty much every other language I've tried, but less so that most.


        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". The enemy of (IT) success is complexity.
        In the absence of evidence, opinion is indistinguishable from prejudice.
Re: Switching from lang X to Y
by zentara (Archbishop) on Mar 20, 2017 at 19:42 UTC
    Hi, Perl isn't dead, it's just that the pushers of Android and all the various HTML generating languages wish it was dead. :-) Perl5 still is by far the best general purpose toolkit to have, mostly because of all the modules available.

    The big IT departments want to train people to use the latest whiz-bang language, and forget about Perl, but those programmers go obsolete as soon as their new language wears out it's usefulness. It seems that programming in this day and age requires you to learn new languages every few years, but Perl5 is like a rock, and it just goes on and on being useful.

    I have to admit, Julia looks good, but dosn't it always seem that the direction in interpreted languages is to get down to the C or C++ level? I was just reading an article today on how PhP is being superceded by programs which convert it's interpreted code into C++.

    Besides Perl5, I consider C and C++ as the only other languages which seem eternal, and therefore worth learning.


    I'm not really a human, but I play one on earth.
    Old Perl Programmer Haiku ................... flash japh
      Besides Perl5, I consider C and C++ as the only other languages which seem eternal, and therefore worth learning.

      It has been said that Perl is just Lisp with syntactic sugar, which surely has some points, at the language level. At the implementation level, I would say that perl is just a baroque FORTH engine (implemented in C, which is funny). And therefore, I'd include both Lisp and FORTH (which is still alive and kicking) in the group of -ahem- eternal languages.

      Well, thinking again... maybe the triade is just C, Lisp and FORTH, perl being a successful attempt to bind all three into one funny language...

      perl -le'print map{pack c,($-++?1:13)+ord}split//,ESEL'

      I'm really liking learning C. It is pretty natural after spending so many years with Perl (well, at least the syntax, and pointers are easier to digest). Of course, hacking out code to coincide with integrated circuits kind of forced me down the path, but if you know Perl, *and* you know C, I think any other language is easily picked up. Especially if combined with a bit of a dangerous level of C++.

      You're right about people moving on though. I see that at my work. Just before I started, they had a huge discussion about which language would be the core interface to the C++ backend. I have read all of the meeting discussions about this topic. They chose Python, primarily because it seemed to have a lot of ready developers available.

      A few years later, I've seen some pretty shit code being drummed out, and imho, it isn't a solution architects job to find bugs in product while doing an implementation, but guess what I do a few times per deployment?

      So when these college kids got out of school all ready to do Python dev, they had no real experience at all, especially about core aspects (ahem... unit testing!). Now, whatever language comes next will cause these languages to fall behind, and it's the same predicament.

      What do you do? I'm sticking with Perl until the cold, bitter end if it ever comes to that. The Perl ecosystem is much more friendly and enjoyable than any other. I also like that we're well over the honeymoon phase, and when you deal with someone elses Perl issue, it's usually a good problem. Not a thousand questions about homework or something lacking any form of substance.

      I can get Perl to do nearly anything I can do in any other language, and if I can't sort it, someone else can.

      To me, there is no replacement for Perl. This is why I have decided to become so heavily invested in it.

      One day, I'm confident, Perl will be my day job.

        One former fan of Python, I work with, used to sing the praise of Python. Then a year after I first met him, he was slamming Python as "pseudo code with a fragile, indentation based syntax".

        While he still prefers PHP over Perl, he long ago stopped complaining that our department's go to "Swiss Army Knife" for creating custom tools is Perl. Our build system is the duet of Perl and make. We convert field test and simulation data using Perl. Our release packaging system runs on Perl. Heck, even the Test Engineering department uses Perl to make their test stands work together (and some of the test stands do run on Perl).

      my warmest welcome back zentara I must admit i missed your posts and point of view.

      You finally get rid of that cosmic ray?

      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.

      Hey Zentara. Nice to see you.


      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". The enemy of (IT) success is complexity.
      In the absence of evidence, opinion is indistinguishable from prejudice.
Re: Switching from lang X to Y
by shmem (Chancellor) on Mar 20, 2017 at 23:49 UTC

    Boo! But great example for "don't trust any statistics you did not fake yourself". Just a few points:

    1. why would anybody post an article sporting "Why we moved from language X to language Y"?
    2. it seems that follow-ups aren't considered ("we moved back because", "we failed miserably" etc). Why would anybody not write an article about failure?
    3. Audiatur et altera pars - complete failure. No searches for e.g. "we considered to move from X to Y", "we restrained moving from X to Y". Again, why would anybody post such an article?

    Draw your own conclusions.

    So, for me: no road sign, no red flag, no information whatsoever, no relevance in my daily doing as perl programmer, no valid sign where to turn to get paid some rent, after all this computing madness.

    Going out to watch the river flow.

    perl -le'print map{pack c,($-++?1:13)+ord}split//,ESEL'

      Too long to go into now and have told at least one story here before but Amazon.com had a couple fairly epic, "We switched from X to Y and Y bit us on the ass pretty hard and we went back to X," where X was Perl and Y was Java and Ruby respectively. The Ruby one was small. The Java one was millions of dollars and 18 months of roundfiled application code plus the departmental acrimony that went with the wasted time, diluted customer service, lousy code, and multiple sessions of being retrained.

      And New lamps for old; Bright shiney gold.


      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". The enemy of (IT) success is complexity.
      In the absence of evidence, opinion is indistinguishable from prejudice.
Re: Switching from lang X to Y
by eyepopslikeamosquito (Archbishop) on Mar 21, 2017 at 08:59 UTC

    Suppose:

    • Your company has been successfully selling a big, expensive product to big corporations for twenty years.
    • This product has Perl embedded in it. To allow customers -- and your Consulting Division -- to extend and customize the product.
    • This product runs on ten different operating systems.
    • This product has over a million lines of code.
    • Your Consulting Division has 100 consultants. They have also written over a million lines of code.
    • Worldwide, you have 1000 users of your product who routinely customize it with Perl. They have written over a million lines of code.

    Note that your customers and consultants have relatively modest scripting requirements and are far more interested in their business domain than in Perl vs Python language debates.

    How much would it cost to switch from Perl to Python, say?

    • The cost of porting, testing and packaging a new language into your product (and removing Perl) across ten operating systems.
    • The cost of rewriting a million lines of working code in your product.
    • The cost to your Consulting Division of rewriting a million lines of working code. Consultants are on a "90% billable hours" KPI. Customers will not pay Consultants to rewrite working code.
    • The cost of retraining your developers in a new language. Maybe a one week training course for each person. Then wait six months before they become truly fluent in the new language.
    • The cost of retraining 100 Consultants in a new language. Customers will not pay for Consultants to attend training courses.
    • The cost to your customers of having to rewrite their working customizations in a new language.
    • The cost to your customers of having to train their staff in a new programming language.
    • The cost of bugs introduced in the rewrites.
    • The opportunity cost to you and your customers of not doing other things in your business domain because you are spending time and resources on rewriting something that already works.
    • The ill-will you suffer from your customers because they don't want to spend time and money training their staff in a new programming language and rewriting working code. They'd much rather focus on their business domain, not a programming language.

    See also: On not rewriting by Joel Spolsky

Re: Switching from lang X to Y
by vrk (Chaplain) on Mar 20, 2017 at 15:45 UTC

    A non-Perl colleague showed me the link to erikbern.com last week, so it seems to be doing the rounds. I find the analysis method very interesting; it didn't occur to me before seeing that blog post that you could model the situation as a Markov chain.

    But the problem with this one, and in fact most other analyses about whether Perl is dead, is the input data. In this case, it's phrase searches on Google. Why only English? Why these phrases? How would you validate whether a page Google offers you is about a genuine software project documenting its transition from language X to Y, or just some dude in Wyoming who blogs about how he heard Scheme is so much better than Java? And so on! Although the analysis is interesting, I can't help but think garbage in, garbage out.

    I was reading through my Perl Monks backlog a couple of weeks ago (having been away for a few years), and similar discussions have popped up regularly. I think it was BrowserUK who pointed out that the question is all about perceptions (but I should try to find the node and link to it). Indeed, without some serious statistical effort and funding, it's very hard to frame the question as anything but perceptions about a given programming language. Do perceptions matter? Of course they do, but you can't claim nobody uses a programming language anymore just because few people talk about it anymore.

    Personally, I expect Python to suffer Perl's fate in the next decade. Go might take the mantle.

Re: Switching from lang X to Y
by zentara (Archbishop) on Mar 21, 2017 at 16:41 UTC
Re: Switching from lang X to Y
by Anonymous Monk on Mar 22, 2017 at 17:16 UTC
    The real losers are those making the switch TO Java. This language will not be here to stay but in the meantime, many fools will waste countless man hours hooking up data pipes that offer functionality that will never be realized and writing safe guards against using their own code. Most Java code is written to do anything BUT the task at hand. Good luck with that!

      I have heard similar stories from large orgs that have said pretty much the same things you've identified here.

      That said, those that *started* with Java for one reason or another, that's a different story; things seem to work well. Mind you, typically, I've found that any corp who doesn't move off of a platform and keeps well-interested and capable people around seem to function decently.

      It's those that change it up mid-flight because they want to try to buffer the bottom line ("We've fired all of our $150k jobs and replaced them with $40k jobs, so we've earned $0.01 per share this quarter above analyst expectations!") are the ones who have issues.

      Those issues may not crop up immediately, but sooner rather than later, their software turns to crap. Their support suffers, code is rife with weird bugs, and generally the whole atmosphere and morale goes down hill.

      That $0.01 per share four quarters ago has translated into lost business, which often leads to yet *more* layoffs to make up for it, and further falling apart. That leads to PR decisions that often baffle people (ahem: intelligent people) in order to try to convince new (and existing) clients to buy.

      In essence, what I've seen over the years, is that the majority of orgs who change a language to try to save money in the short term end up hurting themselves in the long term. That is the world we live in though; short-term thinking.

Re: Switching from lang X to Y
by Anonymous Monk on Mar 22, 2017 at 16:58 UTC

    Ha! It'd be interesting doing this study with, say, major US cities. ("Moving from Washington to Detroit.") The eigenvector shall surely reveal eventual population numbers. Right? Right??

Log In?
Username:
Password:

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

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

    No recent polls found