| [reply] [d/l] |
...and:
"What do you say about this criticism and the exploited flaws?"
LW: "Doctor, it hurts when I do this!"
"Well then, don't do that."
| [reply] |
I kinda like this quote, from a question, rather than from LW:
"[learning Perl 6] involves learning a new language I thought I knew well.
Principle of Least Astonishment: Any language that doesn’t occasionally surprise the novice will pay for it by continually surprising the expert
| [reply] |
I really liked this comment, myself:
shaitand ( 626655 ) wrote:
The primary internet usage of Perl was coded for CGI. That usage is almost non-existent now. But Perl usage as part of a modern stack is on the rise again even if it is one of the less popular choices it is technically one of the better non-blocking highly parallel solutions able to handle thousands of concurrent connections without breaking a sweat. Actually the concurrent non-blocking thread model that is needed to break 10k connections which is being newly adopted everywhere else was the heart of the now ancient POE system in Perl. There are newer and more shiny solutions like Mojolicious being used these days.
It's nice to see there's still someone else out there correcting things that are Wrong On The Internet. I don't always have time myself.
| [reply] |
it is technically one of the better non-blocking highly parallel solutions
That is far from being true!
Perl as a language is very bad suited for that task as it lacks the high level features required to do that comfortably, i.e. coroutines (aka cheap threads), continuations, generators or even some minimal syntactic sugar. Also, the lack of a proper garbage collector and the callback-programming style commonly used by non-blocking frameworks is a bad combination, prone to produce reference cycles and so, memory leaks. The programmer needs to take care of that explicitly (for instance, using curry::weak).
Programming using callbacks is horrific, it is not for nothing that people have coined the term "Callback Hell"!
It requires discipline and structuring the code artificially. Also, code (or modules) not designed for being used asynchronously can not be used freely without workarounds (for instance, forking).
That Perl frameworks so good as Mojolicious exists, is not because of Perl being a suitable language for that. It is because the authors are really geniuses that have been able to overcome its limitations an provide a foundation that the rest of us can use easyly and even enjoy doing it!
Hopefully, asynchronicity and the high level features cited above are available (or planed) in Perl 6 so that would be a complete different history!
| [reply] |