340 likes | 354 Views
Detailed update on Perl6 including its background, status, goals, technology, community involvement, and future projections. Learn about Perl5, CPAN, challenges, and the Perl6 project organization.
E N D
Perl6 Update Adam Turoff ActiveState January 31, 2001 LinuxWorld NY 2001
Perl6 Update Background Summary of Perl5 State of Perl5 Goals for Perl6 Perl6 Status Update Agenda
Perl6 Update First public release: Dec 18, 1987 Maintained by Larry Wall Perl5 released Dec 19, 1994 Currently maintained by perl5-porters Perl 5.6.x: Gurusamy Sarathy (ActiveState) Perl 5.7.x: Jarkko Hietaniemi Background – Perl1 to Perl4
Perl6 Update Widely adopted by sysadmins Well suited for CGI programming Extensible: Databases (ingperl, oraperl, sybperl) Graphical Applications (tkperl) Code Forking, Maintenance issues Background – Perl4 (cont’d)
Perl6 Update Perl’s Goals Easy things should be easy Hard things should be possible TMTOWTDI Complexity of the solution should match the complexity of the problem Use what you know Background (cont’d)
Perl6 Update Perl as a Postmodern Language “It’s all good” Support many paradigms Functional Object-Oriented Procedural Whatever gets the job done […] Background (cont’d)
Perl6 Update Solve the problems of Perl4: Prevent code forks Extend Perl with Perl (modules) Use existing C libraries (h2xs) Native code interfaces (xsub) Allow Object Oriented Programming Larry as release manager Maintainers: perl5-porters@perl.org Perl5 Summary
Perl6 Update Extend beyond Perl4: CPAN Thousands of open-source Perl modules Platforms Most UNIX variants Win32 MacOS, BeOS, Amiga […] Perl5 Summary (cont’d)
Perl6 Update Perl5 Issues: New implementation Backward compatiblity to Perl1 New features (Objects, etc.) Clean up some warts (foo() vs. &foo()) Keep some warts for compatibility (filehandles) Perl5 Summary (cont’d)
Perl6 Update CPAN: Perl Extensions DBI: Database Interface Tk: Cross-Platform GUI toolkit Win32: Windows Integration XML: Extensible Markup Language Mason: Web Application Development thousands more, and no code forks… State of Perl5
Perl6 Update New work: Perl Compiler (experimental) Perl to C Perl to Java Perl to Perl Perl to Bytecode Code Analysis State of Perl5 (cont’d)
Perl6 Update New Technology since 1994 XML XSL, XSLT LDAP WebDAV Jabber, Napster, SOAP, P2P etc. State of Perl5 (cont’d)
Perl6 Update Problems with Perl Rate of technology adoption Java, Python, Ruby, C#, etc. Module dependencies (DLL Hell) Complex source code Community growth State of Perl5 (cont’d)
Perl6 Update 1) Last chance to fix the warts Code Translation: Perl Compiler Keep easy things easy (user-defined hashes, optional typing, etc.) Replace Filehandles, Formats, etc. (Text::Autoformat) Larger community ownership Goals for Perl6
Perl6 Update 2) “Perl is a Great Tool for text hacking” Unicode XML Regular Expressions Strings as first-class data Many approaches to use unpack(), tr//, s///, … Goals for Perl6
Perl6 Update 3) Clean up the core Simplify the source code More developers, more ideas Spread the load (less burnout) Integration with Open Source projects Experimental features User-implemented types Goals for Perl6 (cont’d)
Perl6 Update 4) Community Involvement Start with an open RFC process August 2000 to October 2000 361 submissions Library of suggestions, requests, etc. http://dev.perl.org/rfc/ Community’s rewrite of Perl Goals for Perl6 (cont’d)
Perl6 Update 5) Clean up the language Filehandles, Formats, etc. Simpler Object definition Perl5 to Perl6 compiler? Automatic translation 100% translation for 80% of Perl programs 95% translation for 95% of Perl programs Goals for Perl6 (cont’d)
Perl6 Update 6) Clean up the implementation microperl: replace make, metaconfig nanoperl: Embedded systems, PalmOS? femtoperl: Phones? New targets: JVM, .NET, byteperl SecurePerl? Goals for Perl6 (cont’d)
Perl6 Update 7) Technology Update Unicode Concurrency Event model Asynchronous I/O Signals Optional strong typing Goals for Perl6 (cont’d)
Perl6 Update 8) Perl5 is Proven and Stable Perl4 is still in production use Perl5 isn’t going away Perl5 is still a very useful tool Projected ETA for Perl6: July 2002 Goals for Perl6 (cont’d)
Perl6 Update 9) Community Involvement Yet Another Society Damian Conway Grant Parse::Perl Perl5 to Perl6 translator Prototype Perl6 with Perl5 Goals for Perl6 (cont’d)
Perl6 Update 10) Idea: implement Perl in Perl? Core runtime in C Use Perl regexes to parse Perl Use more bytecode Bootstrap with Perl5 Reduce overhead for contributors Goals for Perl6 (cont’d)
Perl6 Update RFC Process: Lots of ideas Larry reviewing each submission Original ETA: October 16, 2000 Current ETA: Real Soon Now Perl6 Status Update
Perl6 Update Project Organization Nathan Torkington: interim Project Manager Multiple, focused working groups Working Group chairs All work in public email lists Perl6 Status Update (cont’d)
Perl6 Update Language Working Group Chair: Kirrily Robert Keep discussion focused Generate ideas/RFCs about language changes Create ad-hoc subgroups as needed perl6-language@perl.org and its sub-lists Perl6 Status Update (cont’d)
Perl6 Update Internals Working Group Chair: Dan Sugalski Current discussions: Overall Perl runtime implementation Asynchronous I/O Event Handling perl6-internals@perl.org and its sub-lists Perl6 Status Update (cont’d)
Perl6 Update Licensing Working Group Chair: Bradley Kuhn Perl is intentionally dual-licensed Artistic + GPL Possible update to the Artistic License Larry’s decision is final http://www.gnu.org/philosophy/license-list.html Perl6 Status Update (cont’d)
Perl6 Update Quality Assurance Working Group Chair: Michael Schwern Test Perl with CPAN code Test Perl5 to Perl6 translators Improve test coverage for Perl perl-qa@perl.org Perl6 Status Update (cont’d)
Perl6 Update Language Design Larry Wall is the Language Designer RFC Proposals: Exception handling Type system Object system etc. Preliminary language spec in progress Perl6 Status Update (cont’d)
Perl6 Update Document Repository Perl6 RFCs document user requests All discussion in public mailing lists All mailing lists archived Improvement over “someone said something about this 3 years ago…” http://dev.perl.org/ Perl6 Status Update (cont’d)
Perl6 Update Still To Do Language Design (Larry Wall) Prototype implementations Experimentation Testing and Optimization All development Perl6 Status Update (cont’d)
Perl6 Update Perl6 Project: http://www.perl.org/perl6/ RFC Repository: http://dev.perl.org/rfc Mailing Lists: http://dev.perl.org/lists Perl6 Resources