Archive

Posts Tagged ‘PHP’

Popularity of Web Application Frameworks September 27, 2009

September 27th, 2009
The following is a rundown of the adoption rates of various web application frameworks by programming language, according to Indeed.  Keep in mind that there are many other considerations, besides popularity, when choosing a framework. Framework feature sets vary dramatically and this is just as important as popularity.  This article simply displays the adoption rates (according to indeed) of the various frameworks listed in the Wikipedia Comparison of web frameworks article and gives some brief summary information.  In some cases there are so many competitors that it takes some effort to narrow them down.  The intermediate graphs (prior to narrowing down the number of items on each graph) are not shown.  To further narrow down the criteria, I will only look at frameworks that produce web based output that can be viewed without a plugin (thus Flash and Silverlight frameworks will be ignored for this article).  Lastly, there are some framework names, such as “PHP Work” (I mean really, you’re going to name your framework THAT?!?!  Ambiguous names are a Microsoft FUD trick to hide a technology’s unpopularity until it’s marketing department convinces the world that it is taking-off), are too generic to be search on and so thus are ignored.  Lastly, this article then pits the winner from each category to determine an overall winner.
PHP Web Frameworks:
PHP Web Frameworks

PHP Web Frameworks

PHP Frameworks: Agavi, Akelos, CakePHP, DooPHP, CodeIgniter, Drupal, Elixon, jFramework, Helix, Horde, eZ Components, FUSE, Kohana, KumbiaPHP, LISA, Orinoco, PEAR, PHP For Applications, PHP Work, Qcodo, Rapyd Framework, Samstyle, Satya Portal Pack, Seagull, SilverStripe, Simplicity, Solar, SPIP, Symphony and CMS, Tekuna, Tigermouse, Vork, Wigbi,Yii, Zend,  and Zoop.
PHP Observations: Joomla is not listed.  Is this not considered a general-purpose web framework?  PHP Work and PHP For Applications are ignored.
PHP Winners:  Drupal, cakephp, and CodeIgniter.  Nothing else is shown on the graph because there are no close fourth-place PHP frameworks.

Java Web Frameworks:

Java Web Frameworks

Java Web Frameworks

Java Frameworks: Apache Cocoon, Apache Struts, Apache Wicket, AppFuse, Aranea, Eclipse RAP, Google Web Toolkit, Hamlets, ItsNat, IT Mill Toolkit, JavaServer Faces, JBoss Seam, ManyDesigns Portofino, OpenLaszlo, OpenXava, pirka, RIFE, Shale, Sling, SmartClient, Sofia, Spring, Stripes, Tapestry, ThinWire, Vaadin, WebObjects, WebWork, ZK, and ztemplates.
Java Winners: GWT, Tapestry, JBoss Seam, Wicket.

Python Web Frameworks:

Python Web Frameworks

Python Web Frameworks

Python Frameworks: CherryPy, CubicWeb, Django, Grok, Pyjamas, Pylons, TurboGears, web2py, and Zope.
Python Winner(s):  Django

Other Web Frameworks:

The other category includes languages other than PHP, Java, and Python.  Flex framework was excluded because we are only interested in frameworks that deal with HTML/Javascript.

Other Web Frameworks

Other Web Frameworks

Other Frameworks: AIDA/Web, Apache Click, ASP.NET MVC, Axiom Stack, BFC, Camping, Catalyst, ColdSpring, Csla, CppCMS,DotNetNuke, Flex, Fusebox, Grails, Helma, Interchange, Kepler, Lift, Mason, Maypole, Mach-II, Merb, Midgard, Model-Glue, MonoRail, Morfik, Nitro, onTap, OpenACS, Orbit, Ruby on Rails, Seaside, Sinatra, Sproutcore, Wavemaker, and Wt.
Other Winners: Ruby On Rails, Grails, ASP.NET MVC, and Mason (Perl).

Overall:

Overall Web Frameworks

Overall Web Frameworks

Overall Winners: Ruby on Rails (by a wide margin), Drupal (PHP), GWT (Java)

If we remove our top three performers (Ruby on Rails, Drupal, and GWT) then we can see the remaining winners more clearly in our graph:

Overall Web Frameworks without Top Three Performers

Overall Web Frameworks without Top Three Performers

The remaining popular web frameworks are, in order of popularity: Django (Python), Grails, CakePHP, Tapestry, JBoss Seam, Wicket, and CodeIgniter.

Of the most popular, the following appear to be growing quickly in popularity: Drupal, GWT, Grails, Django,  CakePHP, CodeIgniter, and Ruby on Rails.

Uncategorized , , ,

The Relevance of the Apple Macintosh

December 22nd, 2008

I spend entirely too much time thinking about and worrying about cross-platform compatibility.  This is because I love OSX and everything it stands for.  Coming from a UNIX background, it all makes perfect sense to me.  The Apple business model makes sense too; creating an exclusive hardware and software club with stringent requirements improves the quality and reliability of the Mac platform.  It is then poised as an upscale alternative to the conventional PC.  I’m also intrigued by Linux.  An open source alternative is a romantic notion.

But then reality hits.  I try Linux every few years, just to be disappointed.  Last time I installed it was a few years back.  It always seems to require massive amounts of research to figure out how to support the hardware.  There are always a few aspects of the computer that are compromised in the process, perhaps the video card doesn’t work quite right, or I can’t get the network card working, or I’m using some strange generic audio driver with lousy quality and/or excessive latency.  The thought that ultimately puts the nail in the Linux coffin is, “considering that I want to develop end-user applications, how many end-users in my target market have the patience and knowledge to utilize Linux as their desktop?”

I’ve owned two Macs.  In the Mac world you can’t be a value shopper, as I am.  If you are, then you will be obsoleted within six months of your purchase.  That’s what happened to me.  I first got caught on the tail end of the G3, and couldn’t upgrade to Tiger.  Then, I had my G4 for about a year and was told I’d have to upgrade to Intel Mac else be stuck in the dark ages.  I don’t know about you, but I don’t have $1500 to spend on computer hardware every year or so.  I sold my Mac and bought a Sony VAIO.  It may not be as sexy as a Mac, but it still runs all the latest software,  and it was a heck of a lot cheaper.

Back around 2000, when Apple was desperate for market share, they supported Java as an equal to Cocoa.  But in late 2005, Mac’s market share was big enough that Apple decided that Java should no longer support the latest OSX features (see their press releases).  (Its obvious to me that the Apple business model is to “get leverage and then rip, sucking people into the Apple vortex).  The iPhone frustrates me to no end.   At a time when no mobile platform has more than 20% market share, Apple’s decision to force us to use cocoa essentially destroys the ability of the little guy to compete in the market.  Companies are stuck developing multiple versions to provide their application(s) to all (or most) mobile platforms.  Only the gigantic corporations have the resources to do that.  Hey Apple, do you know that you are sticking it to the little guy?

My latest round of cross-platform analysis-paralysis was provoked by two things; (1) A recent news article claiming that 66% of all computers sold over $1000 were Macs, and that their total market share was around 12%.  I’m unable to find that article now, but I did find this one from October claiming Mac has a 9% market share, and (2) my recent search for new employment (which brings me to the inevitable conclusion that Microsoft .NET is slowly taking over the business world).  My own [unscientific] independent research shows that Mac’s market share is nowhere near 12%.  I think it would be optimistic to claim 6%.

It’s clear that if I want to continue to be employable, I have no choice but to be a .NET developer.  Not only is it taking over from a purely development perspective, but it is also taking over via value-added platforms, such as SharePoint and MOSS.  The latest numbers don’t lie.

.NET is slowly overtaking Java… Cocoa is a non-player;

java and sql, c# or vb.net, xcode and cocoa Job Trends graph

The Java portal is a dead dog and SharePoint is taking off;

sharepoint, jsr168 or jsr286 or "websphere portal" or "sun java system portal server" Job Trends graph

Adobe Flex is taking off, but Silverlight is hot on its tail.  Who knows what will happen with JavaFX.  Sun has yet to create the designer tool for it, so we probably won’t have an answer to that question for least another year;

adobe and flex, silverlight, javafx Job Trends graph

Vista looks to continue Microsoft’s tradition of Windows domination.  This chart has a smaller scale, so you can see that the popularity of cocoa has increased in recent months, no doubt because of the popularity of iPhone and Apple’s insistence that iPhone apps be written in Cocoa.  You’re kidding yourself if you don’t think this is part of Apple’s strategy to increase the sales of Macs (running XCode), and increase the number of Cocoa developers.  Outside of specialized markets, they just can’t seem to break into the business world.  The business world shows a declining interest in OSX, while Vista has clearly begun its march to market dominance. Not even iPhone can stop this trend.

.NET is winning the desktop race.

.NET is winning the web-app race, but PHP is hot on its tail.  Ruby on Rails is a viable solution to a problem, but if you’re hedging your employment bets, you’re far better off learning .NET, PHP, or JEE (J2EE).

Sorry, I’ve been ignoring C++.  This is because, despite what the C++ and QT pundits claim, I just don’t see C++ as a viable platform for business applications.  The continued popularity of C++ is largely a function of its applicability to embedded development.

In conclusion I have no conclusion.  I only have more confusion.  This is because I’m still searching for the silver bullet.  But there is no silver bullet, and technological religion has nothing to do with it.  If I want to be employable as a business-application developer, I’m stuck in the .NET or Java world.  I suppose if I worked near the Apple headquarters in California, I might have a shot at being a professional Mac developer.  If I develop in Java, I’m a second rate citizen on every platform (as you will discover when you go to integrate Java into SharePoint or MOSS on Windows, or when you read the hatred for Java in the Linux world, or when you read Apple’s press releases regarding the status of Java as a programming language).  I’m starting to believe my best bet is to be a .NET guru and hope that MONO and Portable.Net continue to grow in popularity and capability.

I fully understand the Ruby/Python/Linux crowd arguments.  I appreciate their certain distaste for my opinion.  I welcome their suggestions for how to make a viable living off developing Ruby applications.  But until they prove I can make a reasonable living off it, I’m going to be realistic and hedge my bets by sticking close to Microsoft… for now…

Uncategorized , , , , ,