It traditionally replaces all the areas I'd use Python, C# and C beforehand.
I see less requirement for "picking a language for the job" thanks to this.
It only sucks as a shell scripting language for which I use sh.
It traditionally replaces all the areas I'd use Python, C# and C beforehand.
I see less requirement for "picking a language for the job" thanks to this.
It only sucks as a shell scripting language for which I use sh.
But if you are conformable with it, by all means use it.
- generics - enumerations (the iota thing feels like a poor man's enums) - operators as method names - lack of exceptions leads sometimes to ugly defer/recover patterns - some data types are special like maps, as you cannot implement similar types yourself
Python, on the other hand, would need some helper functions to make the interface intuitive. But you only need to define them once, and then off you go.
http://dlang.org/rdmd.html
Note the first line of the D "shell script": #!/usr/bin/rdmdMost every complaint I read about Perl (too flexible, weird sigils) is a direct reflection of the system it was replacing. It's funny to read how people love that there's more than one way to do just about anything in Linux, but gasp that there are too many ways to do equivalent actions within Perl. They're one in the same. (I am not going to re-re-address its "readonly" nature since that's a red herring which applies to any language.)
Yes, there are symbols for handling autoflush on handles, input/output record separators, etc. But rarely will you need to use these items. In fact, we have methods for handling these situations for quite some time now.
For instance, to unbuffer your output you'd use $|, but now you just use $filehandle->autoflush(1). Another example would be undefining the input record separator so that you could pull in an entire file with one read, but now that's handled via Slurp::slurp_file.
Python and Ruby tried to compete with Perl at the large application level. Interacting with databases and other stuff kind of things.
That still doesn't fulfill the requirements Perl was invented for. Larry Wall invented Perl not because he wanted a Python or Ruby, The Python and Ruby of that time were already present in the form of C. Perl was invented because C couldn't do a certain things well. Namely it never natively blended with the Unix philosophy. It couldn't do 'Text' properly. It could not be what awk, sed, grep and other Text processing utilities combined together would be.
Besides all that, Perl is a natural evolution to bash, shell, sed, awk, tr, cat and many many other text processing utilities combined together working together in a very large application. That continues to remain Perl's biggest and most distinctive unbeatable advantage so far.
Perl is a natural extension to Unix, and it has evolved to now be capable of doing nearly everything. If the name Perl would not have been given to Perl, it would probably Unix programming language. Think of it in that terms.
Do you know why despite so much trolling, bashing and criticism Perl receives. It still manages to grow and thrive year after year, decade after decade? Its because Perl is same as C, Lisp, SQL etc. Its a first time done right language.
Anything that is likely to replace Perl, will be a bad replacement to Perl. Or at maximum will be or look like Perl(Eg Perl 6).
To kill Perl you may have to kill the whole Unix philosophy. Because that is what Perl is. Its a natural extension to Unix.
Perl is here to stay for decades to come.
Every new generation of programmers will discover Perl and use it just like how every new generation of programmers discover and use C and Lisp. That is what enables stuff like DuckDuckGo to be built in Perl.
I disagree with you...
If UNIX was a schizophrenic, paranoid, indecisive, eclectic, personality-disorder equipped operating system, then you'd be right but it's not. It's pretty well thought out (I exclude Linux from that which is a right mess).
Perl is not a natural evolution of, but a putrid mishmash of shell, sed, awk, tr, cat etc bundled into an incongruous monolithic blob with groupies from the cult of CPAN knocking off the edge cases left right and centre when it doesn't do what you want (using bits of C in some cases!!).
Perl is not the UNIX philosophy of small tools and loose coupling. It's entirely the opposite: A monolithic turd that just won't flush.
DuckDuckGo was probably built in Perl beause the individual who built it probably knew Perl. You could build DDG in C# or Java if you really wanted! (and it'd spend less time waiting for the Perl interpreter to tick).
Regarding C# and Java startup. It's not an issue. You can warm start appdomains/JVMs. We do this.
Once it's running, both Java and C# run rings around most things.
Languages get used because they do a certain job well. Perl does, what it was designed to do very well. That is precisely what Larry wall's water bed theory of complexity is about(http://en.wikipedia.org/wiki/Waterbed_theory).
You have a problem with CPAN? With CPAN, really? A ecosystem that is considered as a killer feature which no other language has managed to emulate so far?
And Perl is monolithic???? Really? Are you aware what you are talking about. Are you just debating for debating's sake? Perl is probably the most extensible and flexible languages that is out there. That is what enables modules like Devel::Declare(http://search.cpan.org/~zefram/Devel-Declare-0.006011/lib/De...) to be written. Which is what enable gems like Moose to be built(http://search.cpan.org/search?query=Moose&mode=all)
Outside Lisp, Perl is probably the most flexible and most extensible language that exist. The entire CPAN is a standing proof of that.
Have you read Mark Jason Dominus's Higher order Perl, Have you read chromatic's Modern Perl? When you talk of elegance and power?
You call Perl a mess of a hundred text processing utilities. Can you show me one language that does regular expressions as well as Perl? Can you show me one language that handles Unicode better than Perl? Every other language I know creates huge spaghetti mess for even simple things like opening files and matching regular expressions. Have you used things like Parse::RecDescent??
Perl also gave a lot of other beautiful things to the world. Thinks like the Artistic License.
Not just that Perl is the only language community that has had more syntax based feature additions in the recent past than the rest. They have managed to release great features in the recent past.
Perl is monolithic. There is too much in the core.
I've read large chunks of HOP whilst tryingand I just can see how some things are pooly shoehorned into the language. Some of the tricks with the reference semantics are horrible.
Java and C# do Regex and Unicode better than Perl. Go does unicode better than Perl. The API in C# is not much more verbose and the RE implementation is significantly faster. It's also much easier to unit test.
Perl has too much syntax - so much so it doesn't fit in your head.
I think Perl has a nostalgic attraction but that is it.
Oh, C'mon. Why make your hypocrisy so apparent?
Java and C# do Regex and Unicode better? What was this? Java and C# have Perl compatible regular expressions(PCRE) I don't really understand what you mean when you say Java and C# do Regexes better than Perl. Because they are copied from Perl. Besides a single Regex in those languages comes wrapped in layers and layers code surrounded by 10's of lines of exception handling mechanisms. Perl is the only language which deals with such use cases sanely.
Perl was the first general purpose scripting language which had first class support regular expressions. Associative arrays. And you call that shoe horning? What about all other scripting language that added the same thing. Python doesn't even have multi line lambda's. Ruby make OO one true way of programming by its very language design.
Let me tell you what problem you have.
You hate Perl for some reason. You are just looking for reasons to justify that. While none exist.
As I said like it or not Perl is here to stay for decades. Because no matter how you bash, troll and whine about Perl. Its utility is supreme in certain areas which is very difficult to beat.
As for associative arrays and regular expressions, I think Perl blatantly nicked those from awk!
The problem I have is that Perl is the "jack of all trades, yet the master of none".
I'm fed up of the Perl monk(|ie)s preaching like religious nutbags every 5 minutes. I'm tired of hearing it. I'm tired of oh perl is jesus' sandals.
It's a WAS not an IS.
Fucking many ways to do something also in Python.