Flipboard, that wonderful iPad app finally came out on the iPhone the other day, and I quickly downloaded same.
Fiddling with the app, setting up sources and so on, I ran across the readwriteweb.com, a site I go to way too seldom yet always enjoy. So I added it to my flipboard.
The next day or so, I ran across an following article on the site, describing the shift in popularity of various programming languages. It got me thinking about shifts in programming, but it hit home when I read in today’s dead-tree version of the Chicago Tribune about the increase in online/mobile shopping this past Cyber Monday:
IBM analysis of Cyber Monday sales after Thanksgiving last month not only found a 33 percent increase over last year, but mobile devices such as phones and tablets accounted for 6.6 percent of those sales, up from 2.3 percent in 2010. A recent ComScore report found 26 percent of consumers say they compare prices among outlets by scanning codes with their mobile devices.
— Phil Rosenthal, Amazon promo brings bricks, mortar to retail debate
Now, none of the Cyber Monday stats are that much of a surprise, except for the mobile number: While Cyber Monday sales went up 33% (great for a struggling economy), the mobile usage almost tripled over the past year – up 286%!
I see two trends shaping the shift in programming languages – and the shift in programming in general, and these articles reflected same.
- The rush to the web – as opposed to enterprise apps – continues apace. Yet at the same time, how web sites are built is changing.
- Mobile is opening a whole new front, one that gets larger everyday. Yet a great deal of mobile work is on stand-alone apps (Flipboard, HootSuite, Instagram etc) rather than web applications.
The rush to the web
I don’t have any links to point to this fact, but just look around. It’s almost impossible to not get good information online about any given company, and I know many, many companies that are ditching their proprietary, C/C++ apps and are moving to the web.
One big part of this is the rise of cloud computing. Look at SalesForce.com: Why have a desktop client/data center when you can put it all in the cloud and access via a browser from anywhere? Updates are immediate; your data is backed up (hopefully). With the cloud, there are security issues – do I really want to put company financials in the cloud? – but https and VPNs are making this less of an issue. Company financials’ distribution was formerly an Excel spreadsheet to an email list. How secure is that?
At the same time, one of the web trends I’m seeing is the rise of more robust, commercial web deployments – say, like SalesForce.com. Which is one of the reasons for the continued popularity of Java and the rise of C# (Microsoft’s answer to Java).
PHP and Python are, on the other hand, dropping compared to compiled languages for the same reason: Where a company – say a bank – may have launched a consumer site in PHP a few years ago, once it decides to go company-wide (inside and outside sites), it’ll probably settle on a more robust, compiled language. So that consumer site might be PHP today, but as the back-end gets completed, the bank’ll want all sites on the same codebase, so it’ll go to Java or JSP, let’s say.
The rush to the web continues, but deployment has changed – both in changes listed above and the evolution of web site deployment.
In the very recent past, most web sites were one offs: built for the company/customer. A lot of hand-built sites.
Today, with the much better browser standards support (mainly CSS and Javascript) and the proliferation of excellent CMS (content-management system) choices – WordPress, Joomla, Drupal – the need to start from scratch is in many, many cases unnecessary.
Let’s look at one CMS: WordPress (just as an example).
It’s been around for a number of years, well past the “we’re working the kinks out” stage.
Excellent documentation, robust functionality that is strongly OO (object-oriented).
Runs on PHP against a mySql database, which is a very common environment for many developers.
And it’s free. (Did I mention that it’s free??)
So I see a lot of agencies that create web sites for clients essentially taking WordPress, modifying it to the customer’s/company’s needs, and doing the same for the next customer/company.
I don’t think there is anything wrong with this – why reinvent the wheel? WordPress (etc) has commenting built in, functions one can turn on and off, a master CSS file that can control the site’s GUI. What’s not to like?
But these are pre-packaged designs, and one main way to change same (mainly via AJAX) is to use JavaScript.
Yes, the other language that has gone up in popularity.
Javascript…oh, love/hate relationship. Powerful; hack laden (especially in IE; getting better); controlling more of the interface each day.
Libraries like JQuery are helping this javascript push because the rise of javascript against the DOM in getting more important every day. AJAX is javascript, as is JQuery, and they’re both helping your basic web pages act more like compiled programs. It’s amazing how much it has advanced over the last decade or so. Crazy.
I expect javascript to continue to gain popularity, as more sites – either powered by WordPress (or other clones) or by high-level language (Java/C# etc) – come online. Javascript is, on the web, controlling more of the user experience than the base language (compiled/interpreted).
That’s a big shift.
So, the web continues to grow, and it’s getting more “heavy iron” and built on the shoulders of giants.
How is the mobile space going?
© Apple – from www.apple.com
The mobile space
The last section was “The rush to the web” – This section could well be called “the race against the web.”
Why?
Well, for whatever reason (I’ve never programmed for mobile, so I only have opinions, little first-hand knowledge), mobile has gone app – downloadable, compiled programs – that are like Word or Excel on the desktop.
Very few web (browser-based) apps.
This accounts for the huge increase in Objective-C programming (for iOS) and part of the continued success of Java (for Android phones). Note: We’ll see what happens to numbers once Windoze 8 phones start making penetration – and I’m honestly not sure what language the Metro interface uses (I’m guessing C#).
But why not the rush to the web here?
I think that it is two-fold:
- HTML can’t support what we want on a mobile phone (Flipboard etc.; see above) natively today. Sorry.
- Mobile is tethered to a battery. Compiled is always faster than interpreted and so on. It’s all about – to a certain extent – the joules.
I predict that someday, HTML6 (or whatever) and better batteries (charge over WiFi???) will make the hold app vs. web app a thing of the past, and – for most uses – the web app will win.
But I dunno. I’ll be the first to admit this.