Status of Perl
Translation: Saladjonk Academy: Fayland: China Perl Association FPC (Foundation of Perlchina) Author: Adam Turoff Original: The State of Perl Original: http://www.perl.com/pub/a/2004 / 01/09/survey.html Table: January 9, 2004, Perlchina, reminds you: Please protect the author's copyright and safeguard the crystallization of the author. One of my colleagues recently asked me the future of Perl. Special, his ability to we have the most popular platforms today, .NET and JAVA have been confused. I don't hesitate to answer me to him. This issue has been a consistent answer for many years:
"Perl is now vibrant. The development team of PERL 6 is also working hard to define the next version of Perl syntax. Another group is working on the real-time running engine Parrot dedicated to Perl 6.Parrot is designed as support Perl 6 dynamic language, such as Python, Ruby, etc., Perl 6 is also fully compatible with the code of Perl 5. "
Then, I will continue to add:
Fotango is inviting Arthur Bergman to work for Perl 5.10 reinforcement on Parrot.
This is a full answer to "Perl is promising."
However, my colleague already knows that Perl 6 and Parrot.perl 6 have been developed in 3 years ago. And Parrot, as a true open source project, in 2001, 2001 April The section was announced. Although Parrot has made some huge progress, but now, and future periods cannot be used for practical applications. The neutral goal of Parrot is faster than CPYTHON when the open source conference in July 2004. Python's bytecode. There is still a considerable job from this goal. Even if this milestone goal is reached, it is necessary to further make Parrot alternative to other things like Perl. So, no matter the main development of Perl 6 and Parrot. Is Perl really have a future?
Perl's Development Status Perl 6 and Parrot do not represent Perl's future, develop them just our long-term insurance policy. When Perl 6 is finally announced, Perl 5 has been used for approaching for 7 years. The core developers at the time were basically leaving Now I have changed another group. (At that time, we did not take into account the inheritance of development, but fortunately, this is only a temporary problem) Perl 5's source code is very complicated, making new developers tricky. If no one has improved the core interpreter of Perl, the Perl will continue to continue as an open source project in the next more than 10 years.
In 2000, Larry Wall seeing Perl 6 as a way to keep Perl and continue to make his thoughts circulated in Perl's world. At that time, it was obvious: there is enough first-class hacker. They have to develop Java or Python, not Perl, then we have developed over the years will be proud of the technology will be eliminated, and it is not worth mentioning. Further, -----, from logical limits, all These factors will hinder the development of Perl, which is a language that he has become an outdated and cannot resolve future issues.
Perl 6 is recommended that it should not be used as a new implementation of Perl, but should be designed to be a language that can be extended in a common person. This can make not only interested in using Perl, but also to the language itself and compiled / interpreter The person who maintains and expands Perl is bigger. A new start can help Perl's developers bring Perl to a new direction that is completely different from the current Perl 5.
Today, more than 3 years have been more, Perl's development community is still actively writing novel software to solve problems with individuals and companies in realities. However, we believe that these innovations and passion should also appear in other places. We don't expect The new language can bring a wave of new innovation, we hope that there are a lot of innovative libraries and modules in the CPAN, that is, you can use it in Perl 5. Strictly said that Perl 6 has been achieved. His expected goals: make Perl continue to continue and interesting, so that creativity continues to act in the community of Perl.
What does this mean for Perl? First, further development of Perl 5 is parallel with Perl 6 and Parrot. Now Perl 5 has five active development branches. The main branch, Perl 5.8.x, still vibrant, Jarkko Hietaniemi released Perl 5.8.0 upgraded PERL 5.8.1 this year, and hand over this. Nick Clark, he is currently building Perl 5.8.3. In October, Hugo Van Der Sanden released a snapshot of the initial Perl 5.9.0, which will continue to Perl 5.10. In this summer, Fotango announced that Arthur Bergman will develop from PONIE. Ponie can run the PERL 5.10 code to run on Parrot, to replace the current engine. Upperl 5.12 may be the first one can run directly on Parrot version.
In order to solve the problem of system compatibility with the people who use old Perl versions, Rafael Garcia-Suarez is developing Perl 5.6.2, which is an upgrade to Perl 5.6.1, adds to the latest operating system and compilation. Support .Leon and Brocard are doing the same upgrade for Perl 5.005_04.
Which direction will Perl? Perl is constantly developing, and it is parallel in multiple directions. For daily programming requirements, the following three versions of Perl will help you get work Good: 5.8.x, 5.6.x and absolutely needed 5.005_0x. For those who can transplant themselves, 5.8.x and 5.9.x are enough. For those who work crazy, they can solve many problems with Parrot, and finally for non-hit programming enthusiasts, larry and his assistant Developing powerful Perl 6, perhaps help you.
There are two statements for Perl: a language, or a platform. But Perl actually interesting place is not on those languages or platforms, while in Perl usage.
Perl's use Status Quick judgment a method of using Perl is to take a look at CPAN. Recently I read the time distribution of the available modules on the module list on the CPAN. (unit: PCS)
1995: 30 (0.51%)
1996: 35 (0.59%)
1997: 68 (1.16%)
1998: 189 (3.21%)
1999: 287 (4.88%)
2000: 387 (6.58%)
2001: 708 (12.03%)
2002: 1268 (21.55%)
2003: 2907 (49.40%)
Total: 5885 (100.00%)
Interestingly, the usage module on the CPAN is generally published and updated in 2003. Simple analysis You can know that approximately 85% of the modules are released and updated after the declaration of Perl 6 in July 2000. Obviously, Perl development is not falling into a trough, but is at the time. If you look at the activity of CPAN, Perl development is very healthy.
The inspection of the update rate on the CPAN cannot tell us all the situation of Perl. It only points out that Perl's developers are still actively publishing a new module on the CPAN. Many of them are uploaded are new interesting modules, or correcting the errors in the module we used every day now. Some new features. Some modules are very stable even for many years, it is very useful. But there are many modules that are too old, outdated, comic, should be abandoned.
A pessimist looks at the CPAN and saw the abandoned version of the abandoned version, full of bug versions, ridiculous versions. These of course not mainly used now. And an optimist is on the CPAN See those magical useful modules (such as: DBI, LWP, Apache, etc.), not much that they are not very useful in the CPAN corner. What is the point of view? Look at the list of modules, only very little, the modules located in the ACME namespace are for entertainment, only 85 in the total number of 5800, accounting for 2% of the total CPAN total module. Of course, in the ACME namespace There are also some modules that are just useful with entertainment. Think of Lingua: Perligata :: Romana and Lingua :: atterial :: gpay. Generally speaking to entertainment modules are very few in CPAN.
But how many modules in the CPAN are useful? This depends on the problem you have to solve. Let us assume that only the module released in the past 3 years is 82% of the total number of CPANs in the current station. Let us assume that all modules inside the ACME space can be ignored. Because actual The number of modules for entertainment is twice the module in the ACME space we ignore. This is to be 78% in the CPAN, which is approximately 4,000 modules to count.
How many of these modules reach the quality of safe use? In fact, this is hard to say. These modules include a large block, including (not only limited to this)
Application Servers
Artificial Intelligence Algorithms
AstronomY
Audio
BioInformatics
Compression and Encryption
Content Management Systems (for Both Small and Large Scale Web Sites): CONTENT MANAGEMENT SIGGE Web Sites
Database interface
Date / Time Processing
ecommerce
Email Processing
GUI developments
Generic Algorithms from Computer Science
Graphing and charting
Image processing
Mathematical and Statistical Programming
Natural Language Processing (in English, Chinese, Japanese, And Finnish, Among Others)
NetWork Programming
Operating-system integration with Windows, Solaris, Linux, Mac OS, etc.
Perl Development Support
Perl / apache integration
Spam Identification
Software Testing
Templating systems
TEXT Processing
Web Services, Web Clients, And Web Servers
XML / HTML Processing
The above is just a part of the available module on the CPAN, which makes us have enough bottom to say: Do not say thousands of CPANs every day, and at least hundreds of CPANs are used to solve problems in daily life. Such extensive Isn't the best interpretation of the quality of these modules?
The other use of Perl is like Larry mentioned in the 1998 Perl conference. The Perl community is like a foreign onion. The most important part is not its small core, but can find more things. The skin. Therefore, the real state of Perl is not to see its interpreter development or how many new modules have been on the CPAN, but to see how people use Perl daily.
Why do we use Perl every day? Because Perl can solve the problem from a small to big. Unlike some language like C, C and Java, Perl can make us faster, simpler write small, seemingly trivial procedures, can also be well-prepared Applications and systems. We can use the techniques and tools that write large engineering applications to write applets. About writing a small program has a common example. Suppose I want to see the O`Reilly Perl Resources page And find all links to the page. My program starts with the two modules, LWP :: Simple is used to get the resource page, HTML: Linkextor to get the link on the page.
#! / usr / bin / perl -w
Use strict;
Use lwp :: simple;
Use html :: linkextor;
MY $ ext = new html :: linkextor;
$ ext-> parse ("http://perl.oreilly.com/");
My @LINKS = $ ext-> links ();
Then, I start to design a web scanner or a screen capture device, just use several regular expressions and some operations like GREP, MAP, Foreach, I can link those lists that point to O`Reilly Number of links, or links to new articles on Perl.com. Add a few lines of code, I can store these links in the database (using DBI, DB_FILE, GDBM, or other permanent repositories).
In the past years, I wrote (and I have discarded) a lot of such procedures. They are very easy to write, basically less code. This shows the ability of Perl and CPAN. This also illustrates one Programmers can use little efforts in a short time.
The most important point is: Perl allows us to write small scripts and small improvement procedures with the tools when developing large applications and systems. Not only makes us quickly solve ordinary problems, but also allows us to use some Tools and technologies to solve other major classes. Further, because we use the same tool, our improvement procedure can be used in the large system we have written ourselves.
Regarding the preparation of the big project, it is important to ensure that Perl can not only be used to write a small script. Write a large system with Perl is another one. There are many detailed descriptions in this regard in Perl success story files. , A description of many large systems, difficult procedures.
Some highly difficult systems are widely concerned with people in Perl's conference and people related to Perl, such as the largest retailer on the Amazon online, INTENET, using HTML: Mason to transplant their websites. Also 50 temporary Mason-based sites are listed in www.masonhq.org, including Salon.com, Avantgo and Dyndns
Morgan Stanley This website is another website that is widely used by Perl. Drops back to 2001, W.Phillip Moore talked about the underlying part of Perl and Linux suitable for developing Morgan Stanley. Recently, Merijn Broeren described in detail Morgan Stanley how to describe Morgan Stanley? Based on Perl to maintain its more than 9,000 computers uninterrupted operation. It also describes the procedures used in various worlds that are used in various worlds.
ValueClink, a website specializing on the high-quality advertisement on the Internet, using Perl to another direction. Every day, ValueClick is more than 100 million banner advertising services, and it is very accurate for each advertisement because it is very accurate, and this It is completed by some mature Perl code .valueClick also uses Perl to analyze effective clicks from a large number of registration data.
TicketMaster sells tickets for sports and entertainment around the world. Every year, TicketMaster sells more than 80 million tickets worldwide. Recently, TicketMaster sold a million tickets a day, and approximately half is sold through the website. The TicketMaster is basically written with Perl. These knowledge is an example of some companies develop large procedures and important products. Ask four weeks, you will hear more. These years, I use Perl to develop Companies with network programs and network service systems have worked. Some products have brought hundreds of menstrual annual revenue. It is obvious that Perl does not apply and write a small program.
The new situation used by Perl uses Perl to develop private products and Internet-based service programs to sell them to customers. There are also many companies to use Perl to maintain normal operation, saving labor costs through these automated processes.
Today, people use Perl's new open source commercialization. As Best Practical and Kineticode companies use Perl to develop products, through training, technical support, personalized services to make money. Their products are published by the source code, which is free to be expanded. At the same time, a large number of requirements for additional services are the company's ability to make money, and continue to maintain the development of open source products.
Best Practical Solutiongs has developed a demand tracking system, which is often referred to as RT.RT is a transaction tracking system that allows you to cooperate with their work to process users' needs, such as modifying bugs. At the same time, it can track the behavior on each task. As an open source product, RT has been developed since 1996, and there are many users, including listed in the recommendation. Today, RT also uses the BUG tracking services for Perl to develop services for CPAN. Many organizations rely on information saved with them, sometimes more than 1000 per day, more than 300,000 things, more than 300,000 things need to be tracked.
Kineticode is another successful open source business company, developing a bricolage content management system, a product related to Perl. Bricolage is used in some large websites, including Etonline and World Health Organization. Recently, Howard Dean Campaign uses Bricolage as his content management system to handle the website a day from millions of content updates, the top peak is ten times!
Another example is Sixapart, developers who have been popular MovableType system. Sixapart provides personal use and non-commercially available free licenses for MovableType. Although MovableType is written by Perl, it is not a private software. SixApart has tried them Perl-based products make money.
These are the commercially sold software written by Perl. Although these three companies are most obvious, they are not only walking this way.
Conclusion When my colleague asked me whether I was in the future, I started thinking about the current situation of Perl. He challenged me to think about it before I want to answer: "Of course, Perl will have a good future!" And "Perl's future in Perl 6 and Parrot!", I am very happy to do this.
Today, there are many activities in Perl's world, and many of them have not been noticed. The core development is moving in an exciting pace. CPAN also provides a powerful environment in healthy development. PerL provides a powerful environment. Even if we don't have to go to Perl 6 in 2004, we still have a lot of work to Perl 5, and many Perl 5 The work is worth it.
Then there is this problem that caused this survey. PERL can be driven with JAVE and .NET platforms? Obviously, when solving practical problems, Perl and Jave and .net are valid. But when it comes to an extension of a platform to other platforms, Perl may not be .NET and Java. However, when it comes to solve the problem to sit down When you write the code? May be another matter.