Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical
 
PerlMonks  

Re: The Future of Perl 5

by bliako (Monsignor)
on Aug 23, 2018 at 01:39 UTC ( [id://1220888]=note: print w/replies, xml ) Need Help??


in reply to The Future of Perl 5

There is a lot going on around us in the computing world besides serving webpages. Today I was looking for some open source software to train with and classify images. Most people pointed to Tensorflow. Which is written in C++ but all examples and usage are on python (liaks). "Why is that?" many people asked on forums far and wide. We have the ultimate tool written in C++ but do we need to command it via py***? That's right. You write your model in @&*£?*! and it is executed by calling C++ functions or perhaps execs. Most data manipulation is done within these C++ calls. For example you have a training dataset of a million 20-vectors. You want to train a classifier with it and also test it. In @&*£?*! call train_and_test(mydataset,80,20) which takes your data, splits it 80/20%, the first for training the rest for testing and returns back assessment statistics and the classifier weights. So, just a glorified glue.

Here is a bright future for Perl: a glue for ML apps. Can it do it?

Yes, it can be done with Perl. <boast mode on>I have done it, training an assembly of hundreds of neural networks. But I did not do RPC or inline function calls. Just calling executables for data manipulation (e.g. split a dataset in train/test cases randomly etc.) or neural network training.

So, why is @&*£?*! out there driving a Mercedes Benz and Perl is shtack at serving webpages?

I started researching and found out that's my lovely Perl is stuck in the past in regards to ML support and there's no any recent developments in this area (like full last decade).

Now look at Python! Tensorflow, MXNet, Keras, Theano, Caffe, and many, many more. Java has it's deeplearning4j, Lua has Torch and what had Perl ? 

by Sergey Kolychev, from http://blogs.perl.org/users/sergey_kolychev/2017/02/machine-learning-in-perl.html

I will dare a sacrilegious over-statement and say that it does not matter whether there are function protos or automatic parameter checking in Perl. Although this are great enhancements. But maybe (and in my opinion) the real future lies in being out there along with these big ML efforts providing the glue and improving Perl (along the lines of function prototyping and other things) on the way.

Digression: I am not saying that what ML is out there by these big corporates is set on stone or is The ML. It is not. It is old stuff we ruminate on because we can afford it with our brand new teeth and that brute-forcing brings results soon to stall, again. I am just waiting around the corner, pie in hand, for that new Minsky and his risky predictions.

So, how can this be achieved?

More ML training and demos in meditations and, please, more ML posts in the Monastery.

That @&*£?*! really does not deserve all that attention. Help liberate that hardware running @&*£?*!

Sure, let all flowers blossom and black cat white cat what does it matter as long as it catches mice. But there are also aesthetics and power consumption.

bw, bliako

Replies are listed 'Best First'.
Re^2: The Future of Perl 5
by bliako (Monsignor) on Aug 26, 2018 at 10:36 UTC

    I will continue on the ML point and rhetorically ask if Bioperl (bioperl home here) was a good project, what its state is today and why.

    I say that it was a great project with a lot of effort put by hardened hackers in dealing with frivolus, newbie-like-carelessness-approaching-criminality, narcissistic, life-science rectors' mess quite effectively: they created lots and lots of databases and sites to scrape, different formats, and a lot of overlapping or contradicting naming conventions. Bioperl did a good job at trying to work in this mess.

    Now, where is all that effort and effect put in Bioperl gone? Newcomers to bio-informatics, e.g. graduate students, prefer R which does an excellent job with Statistics but it is not R's forte to scrape, download, parse / regex / string manipulation/comparison etc. Something that it was and is Perl's niche. (Notice that most bio-questions asked here have to do with huge string comparisons, the genes). When they find R usage beyond the basics impenetrable to fathom (which is quite true) they (instinctively?) turn to python. Probably because it is the only thing they know from University or from gloglo. And that needs to be fixed in order for Perl to gain the popularity it deserves.

    On the other hand, and semi-jokingly, I would say Perl's future's woes are nothing compared to Latex's which is a super-duper typesetting system which so many of these people (doing Nature publications, working at Nasa, talking to BBC on Science subjects) snob for the sake of an idiotic, substandard, buggy and most of all a sworn enemy to aesthetics and scholar-ship: word (<-- this is a lower case word btw, i am not pin-pointing something else).

    Marketing is number one I am afraid (i say and excuse my cynicism, some more's coming...). Sponsoring these big heads with material things is key in order to indoctrinate their students and point them towards Perl - look how a book is adopted for a course in most universities and how that makes the author rich and famous in a day.

    On the good side, on a recent trip to a remote place where Capitalism is still controlled by strong State (not far east), a student there told me that their professor banned them using python.

      I agree with a lot of your points. My point about Perl is that there are not enough apps. Python has continued to add medical space stuff. Perl has the UMLS stuff and BioPerl but the former is difficult to install, takes up a lot of disk, and requires external licensing steps and the latter was, the last time I looked in semi-functional disarray as, like you mentioned, it's a hodgepodge to account for hodgepodges. I despise Word but LaTeX is terribly hard to use if your project doesn’t conform exactly to an existing package and a non-programmer would have almost zero chance of getting a project done with it in such case. I don’t think we need indoctrination. We need good, easy to use, tools. When programmers have a problem to solve they reach for the most feature complete, robust, and dev friendly tool.

        Agree too that there are not enough apps, though I get constantly surprised learning from posts in here about various cool apps like for example mobile Perl etc.

        But isn't it that in order to "account for hodgepodges" and making apps, a good deal of times it requires some kind of sponsorship, if not a full-time salary? Sure people do Perl packages for fun&free but the motivation (which I always try to understand from their cpan pods) most of the time (?) is because it helps them at their dayjobs and get sponsored via company (e.g. Sereal. I wonder about CGI.pm)? Less so because of hobby, like the rasberry work I see posted here from time to time.

        I wonder where competitor langs get their sponsorship to have apps for every little thing out there: is it that they are so super-productive that in language X you make a tool in 5 days and in another in 5 months (yeah right)?

        Where does R devs get payment for the immense work they put in for a package (and the loss of brain cells it incurred)? Usually it works like this: you are given some funding for academic research, you disseminate your work via some publications and computer programs, libraries, software packages you distribute for free containing your algorithm. Some may chose R, some may chose C++ or Java, some python. What about Perl? Do they still consider it a language which reaches the public enough in order to write their researched algorithms in it? For example Algorithm::Evolutionary may be the fruit of such a process but what about the norm? Then who gives the funding in the first place? In this part of the world is EU Horizon2020, so you write a research proposal and say I will disseminate my algorithm using BASIC or HP calculator magnetic cards. Will they (peer-reviewed) agree to fund you? In the private sector you have consortiums and groups promoting some technology and will be willing to fund people for writing drivers and API for their products in various languages, e.g. Perl. Do they still do it nowadays? (re: Tensorflow)

        LaTex: hmmmm lately someone shown me R Notebooks (kind of forced me to it really). You type your R code and voom, you get a PDF out with the code and the outcome of every line, (simple! every stdout goes to the PDF as well as each graphics device output). That's great. LaTeX plays a very big part in this system, I believe 100%?. (Apropos, that gave me the idea of doing Perl Notebooks: where code and stdout are formatted and go to PDF, I asked a few questions in the Monastery about redirecting stdout to files, looks feasible, ongoing project). So a "hard-to-use" tool (but robust and complete otherwise, IMO) is used behind the scenes kind of like a turbo engine for some plastic car. And nobody notices :(

        That engine btw is also used in WYSIWYG editors (personally I was grown doing it all by hand and makefiles) but stil said editors popularity is minimal. Unexplained?

        When programmers have a problem to solve they reach for the most feature complete, robust, and dev friendly tool.

        Maybe that's wishing or what it used to be in the past? After all illogical, counter-productive, counter-intuitive actions are more-and-more characterising business and personal life. So I would not assume that. Nope. Maybe today they stick to the inside of their comfort zone and what gloglo algorithm shows them at the top of their searches? Which is tuned for not getting them out of their comfort zone in the first place?

        OK, let's not call it "indoctrination" but Marketing (mentioned already in thread) and Carrot (without the stick, for Perl at least, i never stick my camel).

        Anyway, I would too want Perl to be greater that it is and logic and common sense prevail everywhere.

        P.S. personally, I would sooner shutdown than start selling Perl on Marketing outlets!

        My point about Perl is that there are not enough apps.

        I propose a perlmonk's poll to find out some info about developers of Perl modules. e.g. motivation (work,hobby,fun,had free time between jobs,etc.) or sponsorship (paid by research funding, work, unpaid) etc. experience (student, working, private, public, university, etc.)

        bw, bliako

      Pretty sure that Glasgow University still teach a class on Perl for Bioinformatics.

        I don't doubt that and Glasgow University is great with lots of diversity (I know personally through some failed interviews, unfortunately). But what about the rest? Plus, even if biologists wanted to use perl-based solutions would IT dept provide training for it? Or would they subtly drop the "how about python? It's a modern language everyone loves" in one of the meetings?

Re^2: The Future of Perl 5
by Anonymous Monk on Aug 29, 2018 at 16:41 UTC
    Today I was looking for some open source software to train with and classify images. Most people pointed to Tensorflow. Which is written in C++ but all examples and usage are on python (liaks). "Why is that?" many people asked on forums far and wide.

    From www.tensorflow.org/extend/language_bindings :

    "Python was the first client language supported by TensorFlow and currently supports the most features. More and more of that functionality is being moved into the core of TensorFlow (implemented in C++) and exposed via a C API. Client languages should use the language's foreign function interface (FFI) to call into this C API to provide TensorFlow functionality."

    From FFI::Platypus :

    "Platypus is a library for creating interfaces to machine code libraries written in languages like C, C++, Fortran, Rust, Pascal. Essentially anything that gets compiled into machine code. This implementation uses libffi to accomplish this task. libffi is battle tested by a number of other scripting and virtual machine languages, such as Python and Ruby to serve a similar role. There are a number of reasons why you might want to write an extension with Platypus instead of XS:"

    Go ahead, change the world...

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others contemplating the Monastery: (6)
As of 2024-03-28 10:21 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found