PHP needs to die. What will replace it?
It's time for PHP to die. And I say this as a die-hard PHP developer currently converting an existing Ruby on Rails codebase to PHP.
History repeating
The reason I know PHP has to die is because I've seen this before. Roughly a decade ago, PHP killed Perl. Not completely, of course; it still clings on in some environments, it has a sizable legion of die-hard fans, and legacy apps will need to be maintained in it for decades to come. But as a language for newcomers, and especially for web developers, it was already dying in 1999 and was mostly dead by sometime around 2005.
As a newcomer to web development around then, it was clear both that this would happen and why: Perl was ill-suited for the new application environment. Pages of tedious boilerplate CGI were required in Perl to achieve PHP's basic, default behaviour. The language was full of anachronistic features -- pointers (update: sorry, references), inconvenient hash structures, and a dozen other little language quirks -- that made web development tedious, insecure, or inconvenient. There was no reason you couldn't write a perfect web app in Perl, but in PHP you'd do it faster and easier, despite the flaws in PHP itself which were, even then, already obvious.
The arguments for Perl over PHP in 1999 were many: it was a lot faster, it had far more libraries and driver support, and CPAN was a wonderland of pre-written code that would get you 80% of the way in almost any task. It sounds funny to say it now, but "PHP doesn't scale" was actually an argument back then. But PHP won anyway, because those things are not intrinsic advantages to the language. Interpreters can get faster, libraries always get written, and PEAR and PECL are gigantic these days*, without considering the myriad less-formal libraries available from every vendor who wants people to use their APIs. PHP is the de facto standard language of web development.
Time to move on
Ten years later, I can feel the tide turning again. Developers' expectations of languages have moved on. If the critical thing Perl was lacking was PHP's wonderfully flexible "associative arrays" (aka smart hashes), then what PHP is lacking is lambdas and method chaining. While PHP used to be the language where you could write a web page in twenty lines of code, nowadays it doesn't feel like you're doing it properly unless you've laid down at least a basic MVC framework of some kind. That boilerplate code is the tell: the language now requires modification by a framework to do what you need.
Back then, I felt the die-hards clinging to Perl for web development were silly. Now, with ten years of PHP experience under my belt, I'm in the same position. I can knock out a good website in an hour in PHP, and an excellent one in a day or two. Its performance characteristics are well-known and understood, so I can make it scale pretty much indefinitely. Every developer we'd want to hire knows it, and every system we'd integrate with has a wrapper library written in it. I am trapped by the convenience of PHP in a language that is losing its suitability for the task.
Forward Ruby on Rails
The most obvious potential successor to PHP is Ruby on Rails**. Ruby is a newer, cleaner language, with modern features and a sparse, elegant syntax (much like Python). Rails takes the common tasks and boilerplate of a best-of-breed web app away and turns what are three or four-line idioms in PHP into first-class language constructs. This sounds exactly like what I need to replace PHP and accelerate my development once again.
But seven months into using Rails every day, hacking on a Rails app constructed by experienced Rails experts who love the framework and the language, I just can't say it's the right choice, for reasons that I find hard to pin down. The purpose of this essay is to try and discover them.
My chief gripe, it must be said, is performance. I've just finished saying this should not be considered a fatal flaw in a language, but rather a temporary problem in its implementation. So I cannot really take it as an argument, though I should note the performance is the primary reason I am porting my current app back to PHP. I can make Rails run just as fast as PHP, but I need between 2 and 4 times as much hardware to do so. In five years time this is unlikely to be true, and in five years time maybe I wouldn't be switching to PHP. But right now, it's not cutting it.
Second, I hate Active Record. Active Record is a pattern, not intrinsic to Ruby, and optional in recent versions of Rails, but its use and its patterns are deep in the DNA of Rails. I have previously gone into why I think ORM on RDBMS is a bad idea, so I won't repeat myself except to summarize that the efficiency gain of not having to write CRUD is more than outweighed by the efficiency lost by ActiveRecord doing silly things and spending time working out what those are, and bending the rules of the framework to prevent it doing so.
Thirdly, I am deeply suspicious of code generation. Code that writes your boilerplate for you is helpful and all, but if your language requires a pile of boilerplate to get anything done, then something is already wrong. Code generation encourages "magical thinking", where the coder is not sure whether a particular convenient feature comes from code that was written for them or intrinsically as part of the language environment. Magical thinking is dangerous.
Code generation brings me to what is probably the fundamental problem with Ruby on Rails, which is that it is not a language. Ruby is the language. And Ruby, while solving some of PHP's fundamental problems, does not solve the core problem, which is that modern web applications have an elevated set of expectations: features like routing, model/view separation and drop-in functionality are now par for the course. Rails adds these, but it is the same bandage that MVC frameworks like Zend, Symfony and Code Igniter add to PHP.
So what's missing?
The language that takes the reigns from PHP has to be as much better than PHP as PHP was better than Perl. It has to make assumptions about the primary shape of web applications in the same way that PHP assumed that your code's primary function was always going to be spitting out a web page -- a radical assumption that makes it slightly awkward to do other things, like shell scripts. I want a language that assumes everything I will be building is an MVC web app, and builds that right into the core language, not just a library.
The problem is, there's no such language. For a while it looked like maybe server-side JavaScript would be the next big thing, unifying language on the front-end and the back-end of web applications. But the great minds of JavaScript have wandered off on the tangent that is nodejs: the evented pattern is a radical and powerful way of making high-performance applications that make best use of modern hardware, but it is a way of making server-side applications, not web pages. And there are still an awful lot of web pages that need to be written. Other CommonJS efforts like ejScript begin to attempt replacing PHP but do not resolve the framework problem.
Still waiting
I'm forced to conclude that PHP's replacement is just not here yet. Ruby on Rails is good, but not that much better than a similar MVC framework on top of PHP, and certainly not better enough to justify the performance hit brought on by the double-whammy of inefficiency of Ruby itself and ActiveRecord's ORM shenanigans. Python appears uninterested in being the next web language, and JavaScript's server-side revolution is only just getting started.
I await the Next Big Thing. I want to switch away from PHP, I really do. I don't want to be the Perl dinosaur. But whatever it is, it doesn't seem to be here yet. Am I wrong?
* Another advantage that I strongly feel contributed to PHP's success was its amazing documentation, which was complete, accurate, and full of real-world example code. Many early PHP apps -- mine included -- were written by just surfing the documentation and pasting together the relevant snippets. However, this is not an intrinsic advantage of PHP so I'm going to leave it out of consideration. A final advantage was that PHP runs well and installs easily on Windows; 95% of all computers on earth are still running Windows, so your language needs to run there if you expect widespread adoption by teenaged newbie developers who don't get to pick their own hardware.
** Why not Python? I just feel if Python were going to break out as a web language it would have done so by now. That's not to say nobody is writing web apps in python -- many people I highly respect do so -- but it's hardly a revolution in progress. Python is a wonderful language: clean, elegant, easy to learn and maintain. But while it is excellent at the Internet and networking in general it has no particular love for the web. Django is capable but not really what developers expect from MVC, and other MVC frameworks for Python have much less traction. Python is not going to take over the web, I think primarily because not even its fans want it to.

Comments
James
Real world examples can be found easily on the Internet and I am a member of a PHP forum board which solves 95% of my problems within 24 hours (Usually overnight as I am in a different timezone than most other members).
This support will be gone if I change languages so I'll stay with it until something better comes along and has a stable 2-3 year history.
derjan
Frank
PHP has had half-baked lambda support since 4.0.1 (although prior to 5.3 it's been almost unusably awkward). And method chaining basically comes down to a convention of returning "self" or $this from commonly used methods (I dive into this here: http://frankschmitt.org/2010/01/chaining-v-nesting). You could, in theory, create your own array class that supports things like collect, select, etc. But now you're back to boilerplate.
So PHP makes you write boilerplate to approach the expressiveness of ruby, and ruby makes you write boilerplate just to run an HTTP server. I think both are typical (if not necessary) consequences of the difference between PHP's hybrid approach (mostly native-code boilerplate plus an interpreted "glue" language) and a ruby's fully-interpreted approach (rails running on an HTTP server written in an ruby).
PHP is fast but has fallen victim to something akin to Greenspun's Tenth Rule. Meanwhile rails is slow, but the one-language nature of the stack brings some pretty huge advantages.
As to what could be their successor? Well rails is a one-language stack only if you don't count HTML and JavaScript. I think the advantages of moving from three languages to two are pretty huge, so I wouldn't discount server-side JavaScript.
Second, there are now a lot of aspects of PHP (and to a lesser extent rails) "that [make] web development tedious, insecure, or inconvenient" because fundamentally PHP is not designed to process and output HTML, but rather to process and output text, or more precisely an ASCII text. As a consequence you have things like XSS-vulnerable code being the default behavior.
I think we're going to end up seeing something that might be elevator-pitched as "server-side jQuery", that unserializes straight HTML templates into a server-side DOM (ahead of time, obviously), fills in and manipulates the template in memory, and then serializes it to HTML on it's way to the browser. If done right it would also support very fine-grained graceful degradation by being able to move the line between server- and client-executed code with almost infinite flexibility.
twlack
http://www.lassosoft.com/
so much more simple than php and does as much if not more:
http://reference.lassosoft.com/Reference.LassoApp
Juanjo
If only there weren't any PHP frameworks...
Alex Sharp
As for ActiveRecord, I think your complaints are valid, and you're certainly not the first one to disapprove of it's behind-the-scenes magic or general presumptive-ness. There are numerous other ORM's available in the ruby community, most of which are rails-compatible. Still, it sounds like you simply prefer writing raw SQL to using an ORM altogether, which imho, is a totally reasonable position.
I think the thing that you misinterpreted with Rails is your feeling that ActiveRecord is deeply ingrained into Rails. It's not ActiveRecord that is deeply intwined (at least not in Rails 3.x), rather, it's the concept of using *some* ORM.
Whether or not you're using the ActiveRecord gem, the ActiveRecord pattern (popularized by Martin Fowler) is a core principle of Rails. At the very least, Rails' take on MVC is that at the model layer there should be some abstraction in how you talk to the underlying data layer. All of the recent work around ActiveModel, which abstracts the more general "model" concepts out of ActiveRecord into an interface which AR now implements, is grounded in the idea that you'll be using *some* ORM.
All of that is a long-winded way of saying that if you don't want to use an ORM, Rails is probably the wrong framework for you ;) I would highly suggest taking a look at something more lightweight, like Sinatra, which is purely an HTTP micro-framework, and makes no assumptions about databases, models, etc.
Also, as far as less presumptive ORM's go, you might take a look at Sequel.
Hope this was helpful, and good luck with whatever decision you make.
lowell
Ruby and PHP both first appeared in 1995.
Jake McGraw
What does this have to do with PHP Needs To Die? PHP is the best solution for the problem of dumping text in response to an HTTP request, no matter if you're a multi-million (billion?) dollar company or a single developer. It's not the coolest nor most elegant (if it has any elegance), it's still the best in all of the terms you've outlined. The only way to replace PHP would be to come out with a language that's dynamically typed, performant, XSS free, unicode-out-the-box, C-like syntax (it's still what they're teaching in college), full support for every database you can think of, hooks for all popular web servers, Windows support, incredibly well documented, a couple of CMSs, Blogs and eCommerce solutions built on top and deployable to shared hosting AND get every developer (novice to neck beard) using it.
PHP isn't a big ball of mud, it's a fucking gigantic all absorbing blackhole that anyone can reach for when they want to implement "a great idea for a website." It can't very well die without everything we've come to love about the web applications dying with it.
Also lambdas and chainable are weak sauce complaints for killing a language that powers 33% of the web: http://trends.builtwith.com/framework
jshirley
Perl 5.14 has a lot of features that take the tedium out (switch statement, hello). Combine that with Moose.
Moose delivers a very sensible MOP in Perl. It allows you to write extremely powerful code that is extremely easy to follow, modify and extend (or mix-in, if you like traits).
Also, there is Dancer, Catalyst and Mojolicious. All very easy frameworks.
That or the Play Framework. Play has done what I thought was impossible. Play makes Java not suck.
It's a shame people don't look at the Perl of today because it was popular 15 years ago (or because of Perl6, which is completely separate).
crazy4groovy
Robert Ross
And third, if PHP is better than ruby(on rails), why are companies like Groupon, Living Social, Facebook (for integration tests), and a handful of other million billion dollar companies using Ruby?
Jim
1. php has closures
2. you can method chain with objects in php (just the way you do in other OOP languages - i assume ruby is your argument language here)
3. ruby on rails is not a language. ruby is a language, rails is a framework (to be fair, you cited this, but you continued to talk about ruby as if it is nothing without rails.)
Also, you mention that you can't pin down exactly what you don't like about "Ruby on Rails" but every argument you make about performance, and "boilerplate code" applies to it.
1. Ruby isn't incredibly fast (to be fair, I haven't tested it in a long while.)
2. Rails is slow as dog crap (this is undeniable)
3. Rails is super inflexible
I could overlook all of the inconsistencies here and just write them off as you being tired of PHP and want something new, which is fine - change is good, fun, and interesting. Then I got to your argument about how "The Next Big Thing" should have your MVC core built into it. That is just dumb, and here's why.
Web routing is a function of a web server, so you're essentially saying you want your language to be a web server. When it really gets down to it, you're complaining because your language of choice isn't software and you have to have a base piece of software to write your software on top of. This is called a software stack, welcome to the world of programming.
MVC is a logical method of separating your code. This isn't the language's responsibility to implement. You're a developer, and as a developer it's your job to organize your application in the best way that you know how. One of the biggest reasons rails sucks is because every application has to follow a specific paradigm, and for some problems - that paradigm just plain doesn't fit. By "building it into the language" (who knows what that would even look like) you're taking a programming languages making it less flexible, and inherently less useful.
Basically, your argument doesn't really hold water and feels more like a rant about why you're tired of writing PHP and less like reason why you think PHP needs a replacement, and even less like an exploratory essay about what you think needs to replace it.
Nicholas Ruunu
You know PHP 5 supports both lambada functions and method chaining right?
Kjetil Wikestad
The language that I have hope will replace PHP as my default choice is Dart by Google. The rumor is that Dart will fix what is wrong with Javascript and be able to run on both client and server.
It will be unveiled at the GOTO conference in Aarhus, October 10-12.
Andy Baird
The inertia for PHP is gigantic and probably peaking right now, but I see a long hill down. Perl was never as popular as PHP is today simply because there were far less web developers back in 1999.
PHP fails to excel in many areas, but it's Just Good Enough(tm) in just about every area you can think of that has to do with web. Coupled with excellent documentation and a ramp-up time of zero for beginners (What shared hosting environment doesn't have PHP installed?) it's going to take more than just a language to knock it off the throne.
Yak
Eric
Moving forward, when you start taking away the concept of a page, then you start to delve into ideas where state is not so fragile. What if you could connect a web browser directly to a socket?! How do you handle huge numbers of connections? Can I simply write services and let the browser do the work for me?
In short the models are changing.
I'd argue that node.js does shed light on one scope of web programming that is becoming interesting. The async model is helpful when you need tons of connections with very small units of work. Services are also really valuable b/c they can focus on highly optimized views of data that can be cached and take advantage of the "page" model and extend it to structured data. Javascript is always evolving along side the browser and giving people ideas.
Personally, what I'm keeping an eye out for is the container that runs many services with knowledge of one another. I expect a more traditional "server" implemented in something like Ruby/Python but then I also envision services that are coordinated with the main server. The problems that async solve could have those solution added to the container as well to create something like a *nix of the web, a collection of parts working together using know APIs in order to provide a platform for high level tools.
Fwiw, I don't think this is simply "cloud" technology or platforms like App Engine or Heroku. PHP came about partially b/c Apache was everywhere. We need a new Apache that knows the new models and supports them. Mongrel 2 has some interesting ideas in this space, but I think there is a lot more to do.
Sasha
I'm not sure how you can say a framework (Rails) based on a language (Ruby) which supports metaprogramming and parametric polymorphism is 'super inflexible'.
Ruby as a language is arguably at a performance level with PHP, without all of the terrible legacy issues and 'Java wannabe' elements that continue to sink PHP.
While Ruby (and Rails, as the most well known framework riding on it) is not necessarily the best replacement for PHP, it's certainly a better option.
lhl
Brian Rowe
wilman
In that time, there were no MVC frameworks or the like and it was a very "simple" and easily deployable solution.
In addition, it kept growing in terms of community, support, libraries and that made it a very complete language. Besides, it became as popular as to be installed in almost every hosting server provider.
We can say a lot of things about rails (cause it is certainly the new kid in town now) but PHP is very well established and not only is it used as the language of choice for web apps (plain code or via any new MVC PHP framework) but also it is the base language for big open source solutions like Magento, Drupal, Joomla, you name it.
So, I am not saying we all would love to try something new or revolutionary. Something as "resourceful" as PHP but at the same time, something that makes our lives easier in terms of production.
However, I must agree with you, there's no such solution yet.
Having said this, there's way much noise with RoR and it could well be the next PHP, you never can tell. In fact, Perl was a better option back then so...
gabriel
I've been working with PHP for years and I can tell, yes, PHP has it own weakness and strengths like any other languages.
For example, in one hand, PHP lacks of conventions but in the other hand it's widely supported by most of all providers. Just consider that Heroku was conceived as PAS for ruby and they ended adding PHP support (among others languages) . This is just an example.
Also, regarding ROR, consider that even today you can find many other ruby frameworks that overcomes ROR in terms of speed, simplicity, [fill with other feature where], etc. but I wouldn't argue to kill ROR, I just began to use other.
Thanks
Code4pay
sean behan
ruby/rails may be a little slower on the hardware side of things, but makes up for it tremendously in productivity.
hafizan
C# and razor may be next future but............. are it ready for serious business application ????
mantir
Andrewf
Once you installed it, you didn’t need anything else, apart from a web server and a database. It was ready to go, and PHP apps could assume the existence of a lot of infrastructure.
Latterly, of course, it has become ubiquitous too.
Whatever replaces PHP, it has to be as easy to just install-and-go as PHP is.
tec-goblin
fsilber
vasile
Besides these, will kill every Joomla,Drupal, Magendo, Wordpress extension, plugin, module, etc exclusive developer.
I am not familiar with Ruby communities but pls share if there is any Ruby CMS that matches Joomla! s amount of extensions for instance.
So I think the community will keep alive the PHP support at least for a couple of years while Joomla 1.7 will consume it's freshness.
Luiz Roberto Meier
Also, learning what a CMS really is before what a MVC really is is really the Cure for your problem. Always ask: Do I need to use Zend for this small site or should I use CodeIgniter or my own MVC?
Rafi B.
Why do people keep comparing PHP to RoR?
David R
I know programmers who do all their web services in SOAP and won't do anything else (e.g. RESTful web services). It makes some otherwise simple solutions turn into huge, messy ordeals, but sometimes SOAP is the right way to go.
Bottom line: use "best of breed" approaches, not "PHP sucks so I'm using Rails".
Nikunj Bhatt
Adam
Either that or Groovy on Rails as one poster suggested. Although different in many ways the two frameworks (ASP.NET MVC, and Groovy on Rails) have one big thing in common. They are implemented with the most popular, full featured, object oriented, compiled languages.
To me I think .NET is the easier to work with out of the two. But I would use one of these two options.
negarnil
In much of the cases, Rails apps scales the necessary. If you reach the point you can't scale Rails I can only tell you one thing: Congratulations, you have just built a massive web application like Twitter, you better migrate some modules to other languages like Java or Scala, not PHP.
Bradley Holt
Additionally, your premise that it's time for PHP to be replaced by something else is based on flawed reasoning. You seem to be seeking a future narrative based on past experience. The story of PHP "replacing" Perl makes for a seemingly cohesive narrative in retrospective. As human beings, we look for narratives and patterns. However, reality is rarely this simple.
1. http://www.dreamsongs.com/Files/AcceptanceModels.pdf
Aaron Crowder
Reason being? Real-world examples all over the web, right at my fingertips, PHP's abiliy to run not only in Linux, but also in Windows, and the fact that it's just the de-facto language. Everyone is using it.
I won't try to argue that we need something better. We DO need a language that doesn't require a framework to do MVC. It needs to be build into the core of the language itself. But that's just me.
Paul
Gates VP
Node.JS has lots of frameworks evolving to bring it all together: right now I'm playing with Node+Mongoose+Express + Railways which amounts to a basic Rails-like framework for Node.JS with MongoDB on the back end.
That gives you data flexibility, no attachment to Apache and lots of very low level control of the whole stack if you really need it.
It is still a few years away from really being primetime ready, but it's pointing in the right direction of being easy to install configure and run. It now runs on Windows. And of course, it's constantly being optimized b/c people want fast browsers.
It's still early in the game, but Node.JS definitely has alot going for it as the new web language. Oh and check out Angular.js for a new way to write HTML and connect everything together. Angular.js is a project from Google and it closes the gap on simply having your PHP app output lots of code.
Rama Satish
Shang
For me, the most attractive thing in Python is that it looks neater. Sometime the PHP codes can be really hard to read. But the list within a list syntax most Python programmers like to write is quite hard to understand, too.
I'm not sure why web developers do not like Python. Maybe they just haven't thought about it.
Mihai
You can't compare PHP to RubyOnRails !
Your article is rich in information, but the comparison is pretty much useless.
Most of the issues you discover wrong or missing from PHP have been already been solved with open-source libraries r frameworks. They could very well be implemented in some OS native-library to improve performance, and keep PHP alive for many years to come.
And why not compare PHP to c#.net ? What are you afraid of ? Cool features come with a price, not everything is ment to be free-for-all.
If you are so keen on making PHP die, and consider it to be outdated, try financing an open-source community to implement your ideas, and see how much that will last.
jmarranz
Frank, it has already been invented some years ago
http://www.itsnat.org
Jamie
Php won over perl fir two main reasons. First, It hitched its wagon to mysql and supported it out of the box while perl required a compiled module to connect to any db. Second, php had simpler syntax and turned everything into a function call, where perl focused on on difficult to understand syntactic sugar. So any half cocked web jockey could code in it and most did. Hence, ubiquity and success.
If all you want are lambdas, then go back to perl. It has closures, which will kick a lambdas ass any day of the week.
Don't get me started on node.js. It's embarrassingly sophomoric.
Andrija
I would say that your arguments are invalid, but you gave none....
Andrija
I would say that your arguments are invalid, but you gave none....
Jimthunderbird
A language will not die if the community behind it listen to the latest trend in the field and keep evolving. I believe php is the one.
Jimthunderbird
A language will not die if the community behind it listen to the latest trend in the field and keep evolving. I believe php is the one.
jtc
John C
ScalaShine
Terry Kernan
+1 sql server
+1 msdn
Joe Steve
http://www.outsourcing-partners.com/php-developer.html
IfSomeoneAsksYou JustSayYouDontKnow
My advice: stay away from what you don't understand: you'll save a lot of humiliation to yourself.
Normal CODES
ha, no way!!!! I mean no way, for the fact that am high level coder in Java and i found out that overtime although JAVA is flexible but PHP is the bomb in web applications, and am saying this based on the fact that I am also good in Python and ASP.net, but i have developed a huge love for PHP and it is now my 1st language in building large web applications for Clients.
All that being said, most times people judge on sentiments and i feel you just did that, it was like when I went deep into Java i followed the sentimental trend of saying Java is the best language that C++ and Python need not be talked about, but along the line I saw that personal views though it matters but making our views based on public opinions doesn't really cut it, so here am I, now spending most of my spare time developing with PHP.
So your view doesn't matter to me on Ruby On Rails but I think that if should take over from PHP then it should make itself manifest, have huge fanbase and libraries including many more frameworks in Ruby else
PHP still remains.
exit();
Deepak
David
Patriots Jerseys
The new New England[b] Custom Patriots Jerseys [/b], [url=http://www.nfljerseyspatriots.com/patriots-women-jerseys.html][b] Patriots Women Jerseys [/b][/url] tippett, benjarvus greenellis,
[b] NFL jerseys patriots [/b] woodhead, describe branch, devin. McCourty, [b] Throwback Patriots Jerseys [/b] and other players in the NFL jersey online store! We have the most extensive a variety of New New England [b] jerseys cheap . Every day we update the product! We sincerely hope that you will continue to focus on our products!!!! Thank you! A lot of the quantity and the way in the New England patriots, jersye quality is high, the price is cheap, to buy them in our online store and offer good service. Get custom NFL jersey, cheap personalized NFL jersey of your own, customize your
[url=http://www.nfljerseyspatriots.com/throwback-patriots-jerseys.html][b] jerseys nfl[/b] [/url].
The National Football League[url=http://www.steelersjerseyscheap.com/][b]steelers jerseys cheap[/b][/url]Thus, in the American state [url=http://www.steelersjerseyscheap.com/pittsburgh-steelers-jerseys.html][b]cheap jerseys[/b][/url] number will follow sweater or sweater to guide your team spirit, so will the wearer warm. Advertising Google, if you have entrepreneurial thought, they found that collect the national [url=http://www.steelersjerseyscheap.com/steelers-women-jerseys.html] Steelers Women Jerseys [/b][/url], is a big a profit website traffic is very popular ZuQiuKuang fever and all kinds of people like athletes. Needless to say, you are likely to get the embroidered NFL shield,[url=http://www.steelersjerseyscheap.com/custom-steelers-jerseys.html][b]Custom Steelers Jerseys[/b][/url] look at all of the player's name and telephone number, and these usually by duly authorized the National Football League. Because of the need to increase the National Football League shirt, many enterprises to start to provide the National Football League of American National Football League[url=http://www.steelersjerseyscheap.com/throwback-steelers-jerseys.html][b] Custom Steelers Jerseys[/b][/url]. When a trading is not cheap[url=http://www.steelersjerseyscheap.com/][b]jerseys for cheap [/b][/url], on Sunday, the negotiations between the two sides will restore enough progress, and a great season.
Two years later, the team unveiled a new sign to have the contrary to the horse, and change their team colors to orange, royal blue and white. 1962 years of uniforms, Laura North-Allen design,
[url=http://www.nfljerseysbroncos.com/throwback-broncos-jerseys.html][b]jerseys for basketball[/b][/url].In 1968, the broncos appeared for the first time design is known as the "orange crush." Their logo was redesigned so that the horse is out of the "D." In addition, helmets were changed to the royal blue, thinner stripe on sleeve and other important change is how was added. From 1969 to 1971, and again from 1978-1979,[url=http://www.nfljerseysbroncos.com/custom-broncos-jerseys.html][b]Custom Broncos Jerseys[/b][/url] wearing orange pants and their [url=http://www.nfljerseysbroncos.com/broncos-women-jerseys.html][b]Broncos Women Jerseys[/url]. The Broncos in the home in [b] NFL shop[/b] in the 1971 season, and for 1980 home games vs. The San Diego chargers and Dallas cowboys, Denver's[url=http://www.nfljerseysbroncos.com][/url] wear for 1983 home games vs. Philadelphia eagle, Los Angeles raiders and Cincinnati bengals, but would not wear white home 20 years in 1994, to commemorate the 75th anniversary of the NFL season, the Broncos in 1965 of restoring ancient ways uniform two games-a 3 weeks home game against the Los Angeles raider, and road games buffalo bills in the next a the Broncos then fundamentally changed their logo and uniform in 1997, a design team continue to use, to this day.
Patriots Jerseys
The new New England[b] Custom Patriots Jerseys [/b], [url=http://www.nfljerseyspatriots.com/patriots-women-jerseys.html][b] Patriots Women Jerseys [/b][/url] tippett, benjarvus greenellis,
[b] NFL jerseys patriots [/b] woodhead, describe branch, devin. McCourty, [b] Throwback Patriots Jerseys [/b] and other players in the NFL jersey online store! We have the most extensive a variety of New New England [b] jerseys cheap . Every day we update the product! We sincerely hope that you will continue to focus on our products!!!! Thank you! A lot of the quantity and the way in the New England patriots, jersye quality is high, the price is cheap, to buy them in our online store and offer good service. Get custom NFL jersey, cheap personalized NFL jersey of your own, customize your
[url=http://www.nfljerseyspatriots.com/throwback-patriots-jerseys.html][b] jerseys nfl[/b] [/url].
The National Football League[url=http://www.steelersjerseyscheap.com/][b]steelers jerseys cheap[/b][/url]Thus, in the American state [url=http://www.steelersjerseyscheap.com/pittsburgh-steelers-jerseys.html][b]cheap jerseys[/b][/url] number will follow sweater or sweater to guide your team spirit, so will the wearer warm. Advertising Google, if you have entrepreneurial thought, they found that collect the national [url=http://www.steelersjerseyscheap.com/steelers-women-jerseys.html] Steelers Women Jerseys [/b][/url], is a big a profit website traffic is very popular ZuQiuKuang fever and all kinds of people like athletes. Needless to say, you are likely to get the embroidered NFL shield,[url=http://www.steelersjerseyscheap.com/custom-steelers-jerseys.html][b]Custom Steelers Jerseys[/b][/url] look at all of the player's name and telephone number, and these usually by duly authorized the National Football League. Because of the need to increase the National Football League shirt, many enterprises to start to provide the National Football League of American National Football League[url=http://www.steelersjerseyscheap.com/throwback-steelers-jerseys.html][b] Custom Steelers Jerseys[/b][/url]. When a trading is not cheap[url=http://www.steelersjerseyscheap.com/][b]jerseys for cheap [/b][/url], on Sunday, the negotiations between the two sides will restore enough progress, and a great season.
Two years later, the team unveiled a new sign to have the contrary to the horse, and change their team colors to orange, royal blue and white. 1962 years of uniforms, Laura North-Allen design,
[url=http://www.nfljerseysbroncos.com/throwback-broncos-jerseys.html][b]jerseys for basketball[/b][/url].In 1968, the broncos appeared for the first time design is known as the "orange crush." Their logo was redesigned so that the horse is out of the "D." In addition, helmets were changed to the royal blue, thinner stripe on sleeve and other important change is how was added. From 1969 to 1971, and again from 1978-1979,[url=http://www.nfljerseysbroncos.com/custom-broncos-jerseys.html][b]Custom Broncos Jerseys[/b][/url] wearing orange pants and their [url=http://www.nfljerseysbroncos.com/broncos-women-jerseys.html][b]Broncos Women Jerseys[/url]. The Broncos in the home in [b] NFL shop[/b] in the 1971 season, and for 1980 home games vs. The San Diego chargers and Dallas cowboys, Denver's[url=http://www.nfljerseysbroncos.com][/url] wear for 1983 home games vs. Philadelphia eagle, Los Angeles raiders and Cincinnati bengals, but would not wear white home 20 years in 1994, to commemorate the 75th anniversary of the NFL season, the Broncos in 1965 of restoring ancient ways uniform two games-a 3 weeks home game against the Los Angeles raider, and road games buffalo bills in the next a the Broncos then fundamentally changed their logo and uniform in 1997, a design team continue to use, to this day.
Matt K.
I personally like the fact that it lacks a built in framework because a) It would probably slow everything down as it has done in Rails and b) If you want frameworks, just pick one from the massive choices already out there...
PHP's only problems are superficial compared to how powerful PHP is. The fact that it intelligently dynamically type casts does away with pointers (except if you need to pass by reference) and supports all C style functions not to mention excellent and SANE use of CLASSES (unlike C++ which has insane overloading and inheritance issues)....
PHP makes the use of Globals sane by using Super Global instead of discounting or discouraging Global var usage as it means less code lines...
PHP makes for an AWESOME bash scripting language... php-cli... I can monitor log files, parse them with ease and still have all the Database connectivity and the rest as well... it supports reg expressions of all flavors ... and can easily manage/admin a box using pipes... coding shell scripts with PHP is bass ass... although BASH is still recommended if you plan to enhance a distro and get your work accepted into the packages pool.
PHP even supports GTK and you can program GUI interfaces...
If the only reason you wish to kill PHP is because you are too lazy to code... try coding the same web app in say C or Python and then get your head screwed on strait again after missing all the PHP goodness you are arrogantly putting down.
APC to make you PHP run pretty fast even compared to strait up raw C is kick ass as well... Even Hip-Hop PHP (PHP to C converter) only made PHP 50% faster. That means PHP when APC is working is SCREAMING FAST considering all the hand holding PHP does for you (dynamic types, garbage collection and pointer-less code )... after Hip-Hop showed only a 50% speed increase, scientifically proved just how fast PHP-APC code is... the bottle necks are ALWAYS with the Database Queries or file system or TCP connections and therefore not a PHP speed issue. (yes 50% fast is great, but for web apps and the benefits of all the ABSTRACTIONS that PHP gives you the 50% increase does not seem like a massive speed increase )
PHP with 5.3 and 5.4 is in a transition period. Removing register Globals and magic quotes (starting with PHP 5.4) and getting rid of legacy bloat is going to be a hard one to make, as many PHP scripts unfortunetly used them... but just like the move from Python 2 to 3.0 PHP is not the only language to have these hang ups...
In fact, I am sure PHP 5.3 series will be around for a long LONG time... and if people want to use 5.4+ and name-spaces can do so with freshly built apps...
PHP also has some odd parameter orderings and a mixed bag naming of functions...but by and large this is not a reason to kill PHP... legacy blips are going to happen when you have a fast moving and widely used target to maintain.
I love the fact that PHP variables all have a $... this makes it VERY easy for editors to parse and color code things as well make it easy on the programmer to read the code, even if your vars are everywhere mixed in with string after string and funking HTML symbol constructs...
PHPs use of OOP is well thought out and VERY well adjusted...
I would say, that if there was a Language to replace PHP ( or most other languages out there that are Interpreted Languages ) JAVA SCRIPT and NODE is going to be it.
WHY Node.JS?
Because JavaScript includes in its language CORE the enforcement to program with concurrency in mind. JS and Node will probably soon have MTAs, POP, IMAP4, HTTP, TCP apps to replace even Nginx, simply because JavaScript style of NON-Blocking code writing is how apps SHOULD be programmed from the start. If you do not understand non-blocking style coding do not worry... it is a paradigm shift in the way of code, but anyone that has programmed any JavaScript knows that closures and built in concurrency style coding in a language is a game changer.
But, it will be awhile before node.js libraries mature and become more accessible and common apps and libs that are WELL documented and widely used will come to fruition. This is because JavaScript non-blocking vs traditional blocking will take some time for everyone to standardize or even understand WHY node.js and JavaScript on the Server Side is so incredible powerful (in terms of code but mostly in terms of how fast all node.js Apps will be)
So, for now I stick to PHP because a) I started with C and I hate Perl b) PHP is king of web apps for a reason
mike
Packers Jersey
Aaron Rodgers Jersey
Jordy Nelson Jersey
Jermichael Finley Jersey
Charles Woodson Jersey
Clay Matthews Jersey
Donald Driver Jersey
Greg Jennings Jersey
Women's Aaron Rodgers Jersey
Women's Charles Woodson Jersey
Women's Clay Matthews Jersey
Women's Greg Jennings Jersey
Women's Jermichael Finley Jersey
Women's Jordy Nelson Jersey
Aaron Rodgers Youth Jersey
Clay Matthews Youth Jersey
Charles Woodson Youth Jersey
B.J. Raji Youth Jersey
Greg Jennings Youth Jersey
Jermichael Finley Youth Jersey
A.J. Hawk Jersey
Aaron Kampman Jersey
Al Harris Jersey
B.J. Raji Jersey
Bart Starr Jersey
Brandon Jackson Jersey
Desmond Bishop Jersey
James Starks Jersey
John Kuhn Jersey
Nick Barnett Jersey
Nick Collins Jersey
Paul Hornung Jersey
Randall Cobb Jersey
Ray Nitschke Jersey
Reggie White Jersey
Ryan Grant Jersey
Tramon Williams Jersey
William Henderson Jersey
Cheap Adidas shoes
http://www.roseshoesoutlet2012.com/adidas-adizero-rose-10-c-2.html
http://www.roseshoesoutlet2012.com/adizero-crazy-light-c-3.html
http://www.roseshoesoutlet2012.com/adidas-adizero-ghost-c-4.html
http://www.roseshoesoutlet2012.com/adidas-adizero-rose-20-c-7.html
http://www.roseshoesoutlet2012.com/adizero-rose-dominate-c-8.html
http://www.roseshoesoutlet2012.com/adidas-crazy-8-c-9.html
http://www.roseshoesoutlet2012.com/adidas-gil-zero-c-10.html
http://www.roseshoesoutlet2012.com/adidas-adizero-ghost-c-4.html
http://www.roseshoesoutlet2012.com/adidas-pro-model-c-13.html
http://www.roseshoesoutlet2012.com/adidas-tmac-4-c-17.html
http://www.roseshoesoutlet2012.com/adidas-tmac-5-c-18.html
http://www.roseshoesoutlet2012.com/adidas-tmac-6-c-19.html
http://www.roseshoesoutlet2012.com/adidas-tmac-8-c-20.html
http://www.roseshoesoutlet2012.com/adidas-tmac-10-c-21.html
http://www.roseshoesoutlet2012.com/adidas-tmac-10-c-21.html
http://www.roseshoesoutlet2012.com/adidas-tmac-10-c-21.html
http://www.roseshoesoutlet2012.com/adidas-ts-beast-c-25.html
http://www.roseshoesoutlet2012.com/adidas-ts-beast-c-25.html
http://www.roseshoesoutlet2012.com/adidas-ts-twist-c-30.html
jjlkjlk