My PHP is retired.

Source: Internet
Author: User
This article was translated from the I ' m retiring from PHP article.

For my personal amateur projects and future programming revenue-generating activities, PHP has been retired as a choice for my programming language. It is not easy to make this decision, but it is necessary for the continuation of the programming cause that I love. You know, I'm not just a programmer because I love programming, because I don't do anything else.

History

Everything started in 1999, I was in Grade 8. The internet really starts to show glamour and I want to program. Learning basic HTML, I can make Web pages, but I want to make these pages have more interactive features. Perl became a choice, embedded in Apache as a CGI. Perl didn't do this at first, and for a child who knew nothing about how Unix,linux,apache and HTTP worked, I couldn't configure them and let them run.

Finally I found a web host, all the above things have been configured, so I can magically use. Well, sort of. It took me months to figure out Perl, but this thing is really confusing. Does anyone remember those regular expressions and lots of code to parse the request variables, get a $post and $GET array? To me it was a book of heavenly words, I copied and pasted, pretending to know what I was doing. Does anyone remember the horror of Matt's script archive?

# from Matt's Script Archiveif ($ENV {' Request_method '} eq ' GET ') {  @pairs = Split (/&/, $ENV {' query_string '});} els if ($ENV {' Request_method '} eq ' POST ') {  read (STDIN, $buffer, $ENV {' content_length '});  @pairs = Split (/&/, $buffer);} foreach $pair (@pairs) {  local ($name, $value) = Split (/=/, $pair);  $name =~ tr/+//;  $name =~ s/% ([a-fa-f0-9][a-fa-f0-9])/pack ("C", Hex ($))/eg;  $name =~ tr/\0//d;  $value =~ tr/+//;  $value =~ s/% ([a-fa-f0-9][a-fa-f0-9])/pack ("C", Hex ($))/eg;  $value =~ tr/\0//d;  # Build a hash with $name and $value}

A few months later, I heard that there was a language called PHP. You only need to upload one to the server. PHP file, everything is done. You can directly access the variables in the form field, which can be followed by the URL. You do not need to parse an environment variable with regular expressions. Quite charming.

Not only is accessing the get and POST variables so easy, but connecting to the database is also deadly simple. All of them are on Windows?! The wish soon became reality. Someone soon wrote out Wamp's installation package?? Because installing Apache and MySQL is still not a very easy thing to do. It feels like it's in heaven. In the end, I started writing a Web application that could store data in a database, take out data, and manipulate it.

Of course, what is now known about SQL injection attacks, XSS attacks, CSRF attacks, session injection attacks, or other popular security vulnerabilities was at the time ignorant (to be fair, I am sure that the whole industry was not quite sure about these things).

But I quickly started programming, crazy. I developed the forum, I developed the basic website builder, log and content management system. I like these. There is always something new to learn and there is always something new to do. Dad's company gave me a lot of convenience, especially their software development team. It was a small web development company in Houston, and I had the opportunity to work with a lot of programmers older than me, and then I started to take on the big web development on my own. This was done throughout the university, and even a PHP system with a total of 16862 lines of code was developed for use by a non-profit organization (at that time, I already knew the common web site vulnerabilities and patched them).

Rails and Django didn't draw me away. I know PHP very well, I have my own framework and can quickly get things done and run.

In this way, I went through the MVC Framework transformation process. As a PHP developer, I'm getting better at my job (the best treatment, the better position), but slowly I find that in my own spare time, the code is very good, but the code for contacting those companies during working hours is bad. It's not the general bad. It can't be any worse. Doing these amateur projects keeps me awake, because the company's procedures remind me of the pain that makes me miserable.

Enthusiasm dried up

That's why PHP retired from my amateur projects and new revenue-generating activities. I'm tired of PHP. Enthusiasm was exhausted. I feel that the language has reached the highest level, if not to the new language, I have nothing to do with this language, I do not want to fall into this state.

I've made a lot of money as a professional PHP developer and I'm planning to keep going. But my amateur projects and personal business income generation will use other languages and frameworks.

In addition, PHP does not emphasize good neat coding specifications. There are a lot of places where it actually violates good coding specifications. As a result, you see a lot of scary PHP programs everywhere, and dealing with these programs is a nightmare. New programmers can quickly learn the language by reading some of the outdated crash tutorials, and they write bad code that is packaged in a product so that the level can earn $65,000 a year. I've seen this happen with my own eyes. PHP's ease-of-use and popularity attracts a lot of junior developers like flies.

Novice programmers would think that they would format the code, add some comments, and their code would be neat. They're wrong, and they're formatted with rotten code. I ran into this code all day at work.

My days as a PHP enthusiast are over. So, what about the next step?

Scala

A year ago, when the JVM-based language (Clojure,groovy,scala, etc.) began to pop, I noticed Scala. It looked interesting, but I was worried about moving from PHP to an unfamiliar language. Over the past 12 years, I've known all of PHP's features and beauty, and I don't know anything about the new language. Now, I don't worry about that anymore because I'm more interested in learning something new.

I doubt if I have enough wisdom to master this new language. Concurrent? PHP never worries about such things, Apache handles all types of threads. Actors? Static type? Immutable values on a variable? Real imperative programming? You never have to think about these things with PHP.

I bought a founder of this language, Martin Odersky,lex Spoon and Bill Venners, wrote "Scala programming (programming in Scala)." Excellent book, I read the book with interest. My enthusiasm for programming is back.

Amateur projects

So, what happens to my next amateur project? For anyone who decides to learn a new language, this is unfortunate news, which is unfortunate in money terms. The next item will be paused until I feel like I can use the new language as PHP, and I'll restart. Now is not the time. I originally planned to complete the Kwolla 2 in June and launch it in early July. Now this time plan is not complied with.

I have another project that intends to use Scala. I'm evaluating various frameworks and discovering thrift's incredible and interesting stuff. Entering this uncharted area also made me panic, but at the same time I was excited.

Conclusion

I will announce the progress of learning Scala in Bogri. I'm doing milqit in Scala, hoping to get it done before the end of the year. I hope you can go on this journey with me, subscribe to my Borg update, and hope you can share my passion for programming again.

Original translation: http://www.aqee.net/2011/06/27/im-retiring-from-php/

» Reprint reserved Copyright: Ji-ji crooked» "My php retired"

» This article link address: http://www.jijiwaiwai.info/2011/06/27/php_leave_me_forever/

» If you like can: Click here to subscribe to this site

  • Related Article

    Contact Us

    The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

    If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.