22. "one bytecode to rule them all " Credit : http://img-fan.theonering.net/rolozo/images/verger/PICT1619.JPG
Notas del editor
Hobby : compiler writer Not in core, but in languages ie user side Check the goal of Parrot : not only a VM for Perl6
CLR : Common Language Runtime DLR : Dynamic Language Runtime JSR : Java Specification Request JSR 292 : Supporting Dynamically Typed Languages on the Java Platform
Now, do some Marketing Not the best product, just enougt until the next technological breakthrough.
Industrial & FOSS objectives
In 1985, IBM commodotizes the Personal Computer Open Spec => compatible Harware : under control with Intel 8086 Software : forget with Microsoft DOS Apple survives in niche
With Moore Law, x86 becomes server Unix guys dislike i386 The winner is Linux, distributed FOSS development. MS Windows (proprietary) is on Desktop.
Only FOSS actors, but 2 flavors : OW2 & Apache Fondation : consortium (R&D mutualisation), Java Dynamic languages (geek) : Catalyst (Perl), Rails (Ruby),
.NET CLR/DLR & mono JVM Parrot frequency grow is ended, Moore Law deals now with Multi core processor
Not yet majority But dynamic/static ratio moves from 30-70% to 40-60% In the following slides, I sort languages by their rank on TIOBE (Sept 2009) 3. PHP 5. VB.NET 6. Perl 8. Python 9. JavaScript 10. Ruby 19. Lua
Excludes all bridge
No VB.NET & never Groovy new entrant, and a special case : targets only JVM
Jython example : - targets last CPython - targets CPython modules - targets JVM, just a script language with access to Java objet/classe/framework Groovy has not this kind of dilemme.
FFI : Foreign function interface
PGE is a recursive descent parser + operator precedence NQP is a subset of Perl6 As example, the core of Lua on Parrot is only 4 KLOC