Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic
 
PerlMonks  

comment on

( [id://3333] : superdoc . print w/replies, xml ) Need Help??
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!


In reply to Re^3: The Slashdot Interview With Larry Wall by salva
in thread The Slashdot Interview With Larry Wall by Arunbear

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":



  • Are you posting in the right place? Check out Where do I post X? to know for sure.
  • Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
    <code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>
  • Snippets of code should be wrapped in <code> tags not <pre> tags. In fact, <pre> tags should generally be avoided. If they must be used, extreme care should be taken to ensure that their contents do not have long lines (<70 chars), in order to prevent horizontal scrolling (and possible janitor intervention).
  • Want more info? How to link or How to display code and escape characters are good places to start.