The Ground is Shaking Again. Get Mobile.

A little over two years ago I commented how surprising it was that VisualBasic was still more popular than C# in the .Net world. Back then I checked the TIOBE Index and saw that VB (in all its flavors) enjoyed almost 11% of relevance while C# wasn't even at the 4% level.

When we look at the June 2010 rank below we see that C# has finally caught up with VB, and it's safe to say C# is now the most popular .Net language (remember, the VB index is not made up of just VB.NET.)

5(Visual) Basic5.87%

Again, anyone can debate the importance of this ranking system, but at least it has been there for a while and to me it seems to represent the pulse of software development quite well.

Movers and shakers

But this post is not about C# vs. VB.NET.

This time around what caught my attention was the impressive rise of Objective-C (up 36 positions in one year). Now, no matter how more common Macs have become in the last few years, no one will convince me this increase in Objective-C is due to native OSX application development :)

Of course we all know it's caused by the surge in mobile and device app development (iPhone, iPad, and anything that they decide will run the iOS, like the AppleTV in the future, who knows?)

If you look at the trending chart on the TIOBE page you'll see that Objective-C started to gain significant steam around June of last year, coincidentally (maybe not?) when the iPhone 3GS was announced.

Keep your eyes on the ball

Are you playing with Mobile yet? Have you:

  1. Started reading about mobile development?
  2. Developed a Mobile web site?
  3. Written and tested a native app against a device emulator/VM (iPhone, Android, WebOS, WP7)?
  4. Written and deployed an app to your own mobile device?
  5. Published an app on the market?

It's not like you will find yourself out of a job if you don't get into mobile but for many developers, from software shops to corporate environments, sooner or later a request for a mobile product or a mobile version of an existing one will swing by your desk.

It's an exciting time. Once again you have the chance of taking the lead and play an important role in your team by staying ahead of the game. Remember when you started seeing request for Ajax and fancy UI's in your web applications. Remember how you were one of the few that knew anything about it in your team? Same thing here. Only much bigger.

What I'm looking into

There are two different fronts that interest me in mobile development: Native Android apps and Mobile Sites. I'll explain.

The time I spent in Objective-C and XCode in the past was enough for me to know I'd be grinding my teeth and blowing off steam every single day if I wanted to develop for the iPhone (it's probably just me, I can live with that admission.) Besides, I don't like the idea of an approval process before I can give away or sell my apps.

Windows Phone is something that I'll have to wait more and see what kind of traction it gains. It also has the approval process issue. The big plus will be the development tools, which I think will better than iPhone and Android.

All that, combined with the enormous momentum that Android has, made me start coding for Android when it comes to native apps.

Don't forget Mobile Web

Native mobile development is fun and rewarding but let's not kid ourselves. History shows that businesses will favor the simplicity of web development.

I went through that transition period when custom desktop application development quickly lost market to web applications. And that happened in a world where Windows was virtually in every workstation that mattered.

Now imagine the mobile scene, where there's more than one big player, none equivalent to what Windows was back in 1998. Do you really think anyone will want incur the cost of maintaining 3 or 4 different native versions of each mobile application that we will start cranking out like we do web apps today? Native apps will probably be the minority, for environments where you have the luxury of dictating your end-user's choice of mobile device.

Didn't we just spend the better part of the last 10 years trying to get out of a certain single-browser paradigm? Do we want to repeat that mistake?

Moving to HTML5

Why is HTML5 so important in Mobile and not as much in the standard Web yet? Well, for one there is a greater percentage of HTML5-capable browsers in Mobile than on the desktop browsers. Android, iPhone, WebOS (and soon BlackBerries) have WebKit browsers.

With things like richer forms, offline support, canvas, video and the Geo-Location API (not really HTML5 but present in those WebKit browsers) we can build really capable mobile web apps. Not just small screen versions of the regular web apps.

To be very straight forward about it, the way I personally see it is that HTML5 is where the bulk of the mobile development will happen in the Enterprise and consumer-facing applications.

Maybe something like Flash, AIR, or Silverlight makes a run for their mobile money too but with all the bullying from Apple and diverging opinions everywhere, that's not something I'm spending time on right now.

Native or Web?

Both. But definitely much more of the Web kind.

Posted 06-17-2010 12:08 AM by sergiopereira



Steve wrote re: The Ground is Shaking Again. Get Mobile.
on 06-17-2010 8:25 AM

I'm really, really skeptical of the accuracy of the TIOBE index.

A much, much better gauge is simply hitting the job websites and searching for popularity.  For example, if you pick New York as an epicenter, pull the radius out to 100 miles and check for C# v. VB, you'll see that C# outnumbers VB about 50:1.  

Of course, if you are a "VB guy" you probably are doing everything you can to keep your job, and you wouldn't be dreaming of looking elsewhere (unless you'd be willing to switch languages), so I'm not arguing that the number of C# v. VB projects is 50:1, but there's no way it's 1:1 as the TIOBE indicates.

To the topic in hand, if you look at the sources that the TIOBE Index uses, I'd say the Objective C numbers are inflated as well.

sergiopereira wrote re: The Ground is Shaking Again. Get Mobile.
on 06-17-2010 9:05 AM

@Steve, I don't know if you're familiar with TIOBE's system but it's described here

It doesn't measure the amount of work being done with a particular programming language. Rather it indicates how much buzz and also online material exists for each language.

That's why I think the trending graph is so interesting.

I'm in completely agreement with you on how much more development is done in C#. Maybe it's just that it is heavily used by quiet corporate developers :)

Steve wrote re: The Ground is Shaking Again. Get Mobile.
on 06-17-2010 9:24 AM

Apologies for the "really, really" and "much, much"...apparently I had a brain brain cramp cramp this morning.

Mike wrote re: The Ground is Shaking Again. Get Mobile.
on 06-18-2010 10:35 AM

I disagree with Steve about "hitting the job websites." Depending on which site you hit, you get a different technology. I find that in Craigslist PHP is more prominent. On Monster, Java is more prominent. On Dice, C# is more. So, location and which site you use matters.

The only thing that will lead you to be "more accurate" is how many source of metrics you use.

Steve wrote re: The Ground is Shaking Again. Get Mobile.
on 06-18-2010 2:04 PM

@Mike, you make a good point.  I believe there are a few sites out there that scrape all other Job sites, that'd probably be the best sites to go to.

I know the "metric" I'm proposing isn't close to perfect, but (in my head anyways), I think if people are hiring for a specific language, that at least provides us some insight into it's popularity.  

Mobile platforms might not completely conform to this though as I can see people within a development group being asked to just "give it a try and see if our app can work on an iPhone".   For example, I work for a very large company that is buzzing about mobile apps and we have exactly 1 iPhone developer (zero Android), and about 150 C# devs.  So that pokes a pretty big hole in my theory.

@Sergio, I read what they initially due, and I'm just a bit skeptical about it.  I can't really see how VB has the buzz that C# has when nobody is really using VB for new apps anymore.  But when you consider the millions of lines of legacy code that newer devs (who don't know any VB) are forced to maintain, I guess it's understandable.  TIOBE doesn't differentiate between type of buzz.

About The CodeBetter.Com Blog Network
CodeBetter.Com FAQ

Our Mission

Advertisers should contact Brendan

Google Reader or Homepage Latest Items
Add to My Yahoo!
Subscribe with Bloglines
Subscribe in NewsGator Online
Subscribe with myFeedster
Add to My AOL
Furl Latest Items
Subscribe in Rojo

Member Projects
DimeCasts.Net - Derik Whittaker

Friends of
Red-Gate Tools For SQL and .NET


SmartInspect .NET Logging
NGEDIT: ViEmu and Codekana
NHibernate Profiler
Balsamiq Mockups
JetBrains - ReSharper
Web Sequence Diagrams
Ducksboard<-- NEW Friend!


Site Copyright © 2007 CodeBetter.Com
Content Copyright Individual Bloggers


Community Server (Commercial Edition)