The war for developers

Much has been made about the lack of available resources in the mobile development world but there is a large pool of developers that has yet to be fully tapped and, if it were to be fully engaged, could upset the existing order of the mobile world.

Understanding the source

For every app that exist on mobile devices, there is first some programming language that are to be used to develop them. Each programming language comes with its own lineage, not only associating it to the type of world that preceded it but also to a certain worldview and philosophy.

For example iOS, which powers iPhones and iPads, is based on Darwin, the same Unix flavor that serves as the core for OSX, which powers all Apple computers. Apps that run on this operating system are written in Objective C, a language that is philosophically based on the idea that it encompasses all that one may need. Both Darwin and Objective C have a long history of being closed system, initially starting up under Steve Jobs’ tutelage at Next and eventually serving as the tools he leverage to reboot a Moribund Apple. But Jobs also believed that a closed system, primarily managed by its caretakers, was the best way to offer the ultimate experience for consumers.

By comparison, Android is downright bohemian. At its core, Android is a flavor of Linux, the open-source operating system, that has been optimized to run on mobile devices. As such, it is based on a concept of openness and extensibility. Furthermore, applications that are developed to run on it are written in Java, a programming language that was initially seen as a way to make developed application run anywhere. Born from this maelstrom of ideas, one could safely assume that Android is the language of the free, the open, and the ones willing to work together to create new things.

And then there’s Windows Phone. Windows Phone is a mobile operating system currently going through a bit of an identity crisis. Initially based on Windows CE, the consumer electronics edition of Windows, Windows Phone is now heading to merge its core with Windows 8, the next generation of the operating system. Desperate to be loved, Windows Phone is trying to give everyone a chance to develop for it. On the low end of game development, developers can used Silverlight, which was initially developed as Microsoft’s competitor to Adobe Flash. On the higher end of the platform, Microsoft is trying to appeal to more serious game developers by letting them leverage XNA, the programming language structure aimed at Microsoft’s Xbox gaming machine. Meanwhile, other applications can be written using Microsoft’s popular Visual Basic.net language. In version 8 of the mobile operating system, Microsoft will merge leverage a new model called the Common Language Runtime (or CLR for short). The idea is that applications written for the PC version of Windows 8 could easily be ported to run on Windows Phone 8. In that sense, Windows Phone is kind of like the corporate guy that wants to look cool and will do anything he can in an appeal to be liked.

Developers, developers, developers

To date, Apple has largely dominated the mobile world because it has appealed to a set of developers who have found new fortune thanks to the success of iOS driven devices. Initially, the first developers for those platforms were people who had developed primarily for Macintosh computers.Their early success, and the success of the iOS platform led more people to be attracted to the platform.

Along the way, though, this has led to much frustration from other developers. Because Objective C is very different, in terms of approach, from other modern programming languages, many developers have been annoyed by the success of the platform. A lot of that frustration was brought to bear when Android was first presented as an alternative to iOS.

So a developer war over the last few years started to rage between iOS developers and Android developers. But these fights were largely between two factions of the same family. At their core, both Java and Objective C come from the same parental roots, a programming language called C.

Meanwhile, there has bene a group of developers that has largely been ignored. And that group of developers feels that it has gotten absolutely no respect recently. This group was once among the high and mighty priests of computing, responsible for most of the popular programs in the world. For a decade, however, their power has been eroding. The move of software from desktops to the web has not favored them as most web programs were written using languages like Java, PHP, and Ruby on Rails. And their preferred language, Visual Basic, did not seem to be keeping up with the latest changes.

But now, with Windows 8, Microsoft is delivering a gift to them and telling them: YES, you too can take part in the most exciting trend in computing of current times: the move to mobile. The challenge, for Microsoft and for those developers, is that they are finding themselves fighting an uphill battle.

Before they reach success being anything less than a marginal platform, they must pull off the incredible trick of convincing the mobile consumer that the expertise and experience they have developed during the PC era is still equally essential in the mobile era. If they do, however, they may upend the mobile world order as the power of millions of developers could be unleashed, leading to drastic changes in the mobile marketplace.

In the end, we have entered an era when the developer may not be king but the developer has an equally if not more important role in that they will be the ones to decide which platform gets the best apps and the market seems to have dictated that the platform with the best and the most apps is the one that shall win. By combining the core of Windows 8 and Windows Phone 8, Microsoft is creating a foundation that may unleash such power that past October, we may see a Windows Phone platform on the ascendancy at a faster rate than the other platform. The move may end up being so small at first that it could be barely noticeable but as it grows, we may see Microsoft pull one of the greatest come from behind story since… well… since Steve Jobs turned the #2 in the PC era into the #1 player in this one.

You reminded me of a few things. Apple has had its past romances with Java. I got the sense that there was a faction within their OS team that either loved it or was at least certain you needed it to succeed. They eventually lost out, but not before putting a lot of work into Java VM technology. They not only maintained their own Java virtual machine, but considered it a first-class way of writing apps for the Mac, back in Rhapsody. By OSX and Cocoa, that star was falling, but for years they still had clever, expensive house-enhancements to Java like heap sharing that… did Windows ever get it?

C is a fair grandparent to many compiled languages, and even a few scripting languages like PHP. Just one developer’s opinion, but I would put Java and Objective C as fairly close siblings, each rejecting Stroustrup’s monstrosity (C++) and trying to graft post-Smalltalk object-orientation onto a C-like syntactic substrate. Objective C was more practical and C-like in some ways, yet more ambitious and Smalltalk-like than Java in others. I know of virtually no other significant backers for it than Next/Apple. Java was more ambitious in its overall architecture and reference implementation, and in many ways more conservative in its language design. The goal of powering mobile devices always hung over it, forcing its designers to eschew fancy features that would later make developers hungry for post-Java languages like Python and Ruby (and Javascript for that matter). High hilarity, that its massive, industry-wide success hung initially on servers. Only later would other device classes finally succumb, culminating with Android’s devastation of Apple’s marketshare and marketshare growth.

Visual Basic was a disgusting language. Its popularity can only be explained by the perversity of a malevolent deity. Microsoft knew it, and C#, by comparison, leapfrogged Java, benefiting in many ways from studying its flaws. Of course, the marketplace would end up rejecting it, as by now both developers and corporations had started to learn the dangers of closed platforms – in part because of how Microsoft had handled its many Visual Basic developers.

That brings me to my question – you mention VB and the CLR in the context of Windows Phone, rather than C#/CLR. I presume that means C#/.Net code will one day run on it too, but is that choice deliberate? Do you imply Microsoft is eyeing VB over C# for mobile use?

I had forgotten about the romance most had with Java. You’re right that Apple, in the pre-OSX days, did some hefty work on Java (as did Microsoft, actually, maintaining their own JVM in the OS).

Java was initially conceived as a way to power a number of consumer appliances (in its very early days, it was to power TV sets connected to the “information superhighway”).

VB was indeed completely separate from the world of C but I suspect that its popularity was due to the powerful IDE and how it made any beginner feel they could program (the monstrosity was not inherent to the language but rather to the output generated by its users :)) C# is indeed a better language but has failed to get traction in the marketplace for a couple of reasons: 1. it comes from Microsoft and thus is rejected in a knee-jerk fashion by most Microsoft opponents 2. it’s more complex than VB and thus is rejected by VB users.

VB and C# will both run on the CLR in the context of both Windows 8 and Windows Phone 8. VB.net and C# are to be used on the Windows Phone 8 platform but I suspect that the bulk of Microsoft’s new developers will come from the VB world. The reason for my thinking there is that while it is not elegant as a language, there are a lot of VB programmers out there and THEY want to do mobile work (mobile is the new new thing). Unleashing that group of developers is essential if Microsoft wants to succeed in the mobile space.

Did floodgates open somewhere and alluvasudden there’s this massive influx of VB6 developers to the scene?? You do realize that .Net has been a corporately adopted development tool since 2002, no? That’s 10 YEARS. From a professional developer’s perspective, I completely agree with David Wood’s assessment of the VB1-6 lineage. While I agree they introduced us to RAD, they also made many a lazy programmer. Discussion about memory management and performance are lost on most VB6 programmers. Copy/paste coding was not only the norm, but it was encouraged, resulting in gazillions of frankenapps built by “clever” people. I see direct parallels in the current big uptick in javascript. Same loose typing and structure. Same ability to simply ignore things like memory and performance. Same sandbox, except now it’s the all-powerful browser instead of the VB runtime. Delphi (or rather Object Pascal) was better than VB6. Java is a much more elegant language than VB. Although, I believe Java’s openness to be the very reason it isn’t more prolific. Still too messy to do even simple things like compile/link unless you like command-line (Eclipse, Netbeans, etc, notwithstanding). Personally, I believe the IDE should have replaced the command-line a decade ago. And this is where Microsoft has the market well in-hand. Visual Studio is by far the best IDE out there IMHO. C# or VB.Net, either is perfect for Windows 8 development with RAD in mind. The script kiddies can still play around with javascript all they want. It’ll usher in a whole new era in VBA-style trojans and worms. :o)

Valid point. My mistake but the point remains that C# or VB.net developers represent a large market of potential developers for the mobile world that has to date been untapped. My understanding is that the alignment of Windows 8 with Windows Phone 8 has a lot to do with unleashing that group.

We’ll see but I suspect that we may never really see BB10. Rim doesn’t have a natural constituency as the other players do and the story around them is about how they are failing in the marketplace: that fuels the perception that developers shouldn’t bother. It they were to become a significant force again, it would be one of the greatest turnaround in business history.

There is a fundamental flaw in this proposal, and that is the fact that the VB you are referring to (VB6 and previous versions) is a very different beast to VB.NET. VB6 programmers changing to VB.NET have gone through significant pain to start using it; while it is more forgiving than the C# language, and provides a similar “readable” syntax to VB6, most of the underpinnings (CLR), structure and framework are exactly the same: .NET

So yes, there are a huge pool of application programmers who can be drawn upon: .NET developers (VB.NET or C#). Legacy Visual Basic developers are still going to have to learn something new, though… as they should.

A large number of those people have made the move to VB.net (or it’s an easier transition for them), which is why I suspect there is an uncounted pent-up offering that is yet to be unleashed. Whether Microsoft does unleash it is TBD.

Apple likes to have backup plans. The Java bridge in OSX 10.0 was an alternative to Cocoa in case ObjC failed to take off, just like the C Carbon API or the Intel version of OSX. Once Cocoa had proved a resounding success, Apple deprecated and then eventually killed the Java bridge.

There was no Microsoft-style fiefdom war over Java and ObjC; Apple is too focussed for that. By 2005, it was obvious that Java’s popularity was waning and few developers complained when Apple pulled the plug.

It’s worth noting that there is more to Java than the syntax. Most people think of Java as AWT and Swing, the GUI frameworks. Apple never supported these or pushed them in OSX. The Java bridge was simply a wrapper around Cocoa and the Nib framework. You couldn’t take a Java program written with the Java bridge and run on a Windows machine.

The world still runs on Windows of course, or rather the old Win32 API. MS haven’t been lacking in innovation over the last decade but they’ve produced so many conflicting and overlapping technologies (only to kill them off suddenly in some cases), that the developer community would rather just stick with what they know.

VB was successful because it allowed non-developers (i.e. business types in the ‘Enterprise’) to throw together solutions for their problems that could be integrated into Windows services (something you could never do on the Mac). It was the first true RAD tool and one of Microsoft’s best products. Killing it off without a viable upgrade (VisualBasic .Net is a totally different product with similar name) was a huge mistake; VB developers switched to competing non-MS technologies instead, technologies that were typically cross-platform.

MS strategy days is a complete mess. The major factor that has kept Windows in dominance is the Win32 API; promoting ‘web’ technologies like HTML5 erodes that very foundation. And if you wipe the slate clean like they seem to be trying with Metro and their tablets, there really is no reason to stick with Windows anymore.

I think you overestimate the power of the Win32 API. The internet has eroded some of that power over the last decade (Microsoft’s fall from grace is not just the result of Apple’s rise to dominance but also has to do with the internet becoming more of a platform).

I’d love to tell you that you are right but sadly the current crop of native browsers on mobile devices has a hard time dealing with more complex apps. Things like animation, caching, font-handling (eg. CSS3 or webfonts) are poorly supported. In a few years maybe but for now, the market seems to be apps (furthermore, the consumers seem to be voting for an app vs. bookmarks experience these days).

“There has been a growing trend in the use of HTML5 for development of cross-platform mobile applications. This technology allows a developer to write an application using platform-neutral web technologies that can be delivered to a broad range of smartphone devices. This capitalizes on modern smartphones generally having highly capable browsers, with good support for HTML5 / CSS3 features.”

No, web has not beaten desktop, you cant make books in it, you cant edit photos, you cant work with videos, you cant work with audio, and you cant play newest games like Diablo3. The day some kind of game in same complexity as Diablo3 or any of current crop of games can run on web, also with 3d making sofware i will change my mind and accept that Web has beaten desktop. This site even runs correctly on Opera, nor IE9, why think all people use that firefox shit browser.

I have been a programmer for almost thirty years, so i’ve lived the history you’re trying to recount here, and I’m seriously amused by your suggesting that VB devs were ever the high priests of anything. They have always been considered kids playing with toys, and VB has always been considered less than serious. I wonder what your perspective is? I suspect management, right?

The notion of VB devs as high priests was kind of tongue firmly planted in cheek. There were many of them with that self perception, even though the rest of the programming world looked to them as noobs.

Just a side note here, Your website doesn’t like Chrome browser. It says, ” TNL.net is designed for modern browsers but the content is still readable in older ones. If you want to ensure the best experience, please install a browser that was developed after 2009.”

Just something to keep in mind for you sites validation, Lots of people do use chrome.

I am actually in this process of learning how to code for Android, I choose it because I was able to map my many year of C++ skills over to the Java language over a weekend of burning through a book or two about Java. My personal reason to pick Android over others is my love for the Open Source way of doing things. I found learning to code for IPhone was too cost prohibitive for me since I would have to invest in buying Apple hardware just to code. Moreover I just don’t like Apple’s close system mentality.

I’ve been a Windows C++ developer for the major part of my career but 3 years ago I moved over to Linux at home completely. I kind of resented how Microsoft left C++ developers in the cold and moved on to .Net and C#. So I had a choice to make, stay chained to Microsoft and learn .Net or make a clean break and move over to Linux and the Open Source world as a C++ developer. I chose Linux just to round out my skills. As a result I got exposed to more ideas, frameworks, open source projects and tools than I would have if I had stayed with Microsoft.

To me hacking in C++, C# or Java is not really that big of a deal, even though coding in C++ is so effortless for me. Why I would not choose Microsoft “today” is because Microsoft tends to fragment the technology landscape about doing something its way rather than playing nice with others. I really don’t care for Microsoft littering the development landscape with more of it’s proprietary “baggage” that I as a developer must be forced to learn.

I was not a fan-boy of Java as there has away been this C++ vs Java camps amongst hackers, this ill mindset is one reason it took me so long to come around to Java+Android. However the move over to Java was painless and effortless imho, and from my “still” early days of learning Android development I am finding developing for Android has been a good choice/fit. It’s easy to learn, all the tools are freely available, excellent community support, tons of written material. I can develop on my own hardware running Linux yet if I am forced to develop on a Windows box for an employer then getting setup would be simple since Windows hacker are accustom to the GUI handcuff way of coding.

My personal belief is that overtime the Open Source way of doing mobile development will win out, Windows will be relegated to a smaller shrinking market share, and Apple will most likely hit some point of terminal-growth and never be able to get past this juncture all the while Android will continue to attract both developers and end users into the market.

If Google can get its C/C++ NDK for Android to a point that it doesn’t matter if you use C/C++ or Java to develop Android app, there is going to be all this potential of “professional” C/C++ developer on the “sideline” making a play for Android vs the rest. As a result, a lot of C/C++ Open Source code will get ported to Android and it will be a win-win for Android mobile development and C/C++ hackers like myself.

The devastation of Nokia moving over to Windows phone has not been a good track record for success for Microsoft Mobile initiative. Nokia also committed the sin of killing its C++ Qt developers! With each failure Microsoft has, developers on the sideline deciding where to place their energies will either pick Android or IPhone, and if the developer is like myself who says “forget” Apple for telling me I can’t develop on “my hardware” on Linux or a Virtual Machine for IPhone, then the choice for Android will be clear.

Mobile and more so Tablet is the next wave for “existing” developers not yet hacking for mobile to shift towards. There is going to be a lot of developers who find out they have a skill gap that they had better fill if they want to have secure employable skill for the future!

1. In the past 5 years I have probably reviewed 3-400 Microsoft developer resumes. It would be rare to have included C# strongly on any of the job descriptions, yet out of all of those CV’s there must have been 10 where the developers last project was VB. In 2004 yes, in 2012 no. Most people have already made the transition to C# (and from personal experience that transition takes all of 2 days). Developers for Excel and Access would be the exception, but if you’ve missed doing windows applications and web in .NET I don’t think you are likely to jump to mobile

2. C# has been around 10 or so years and has clearly been Microsoft’s priority for that period. Whilst there are always exceptions to the rule, if a developer is not dynamic enough to learn a new language in the same “family” in a 10 year period I don’t think they are likely to be the type of person to produce cutting edge mobile applications in 2013.

As much as I hope Microsoft does well with Windows 8 and Windows Phone 8, any belief that some dormant army of VB developers is going to win that war is just pure fantasy.

I don’t know much about iOS or Android development, yet anyway, but I do want to point out a couple things you had off for Windows Phone 7 development.

Currently it is not possible to write WP7 apps in VB.Net, only C#. It looks like VB.Net will be a possibility once the next update is out, but until then it it C# only for logical code and XAML for UI stuff. The CLR has been in the OS since day 1. The CLR is like the Java Virtual Machine in the sense that you can write a program in one language and as long as the Virtual Machine (VM) exists for some other OS, you can run the program there. The open source project Mono is a really good implementation to get C# working on Linux.

Other than that, I very much agree with you. Can’t wait to see how it all pans out.

As far as I know Microsoft hasn’t announced a whole lot about those kinds of changes to WP8. They said the underlying OS kernel is going to be the same for Windows 8 and WP8, to be able to use the same drivers, security, and all that other stuff involved with a kernel I know nothing about. I’m in the same boat as you though about assuming the CLR is getting some sort of upgrade. Though now that Windows Phone apps will be able to be written in C++ (or maybe just games? Man, they really haven’t said much), the initial learning curve for a lot of developers has changed.

if they seriously want more developers they should stop charging developer fees and open up the platforms

its not only companies that develop apps. There are plenty of individual developers out there who could be interested in writing mobile apps but are turned off by developer fees, walled gardens and other costs.

Apple particularly – there is NO WAY IN THE WORLD i am going to fork out for a brand NEW mac just to use their SDK!

Most developers have other stuff to do so even smallish fee barriers would just mean many of them will be more likely to just put it off and work on whatever other projects they have going. .For me it was a case of “I want to experiment and learn more about the platform before committing myself to a $100 dev fee, let alone any other costs” .. but they expect you to pay just to get started? .. go figure..

so .. 1. don’t charge developer fees 2. don’t put in place artificial restrictions which prevent developers from using their existing tools, programming languages they already know, etc 3. make sure that there are readily available low cost devices on the market – if that isn’t possible then at the very least put out a DECENT emulator and run free testing workshops where developers can get an oppertunity to test on a real device without needing to actually be able to afford to buy one or making any big commitments)

Android looks like the best option at the moment for getting started – no need to pay developer fees or pay to be in some “appstore” walled garden just to let someone install or test my app (and the lack of such restrictions would also make it possible to release open source or free apps without needing to worry about out how to cover the costs) – now it is possible get an Android phone for under $100 outright pretty much everyone is buying them!

A few years ago I had hopes for those linux-based mobile platforms such as Meego but devices running them never became cheap enough to get much market share.

Think back to the 80s and 90s and how MS-DOS and Windows became the most popular platforms on desktop PC’s It has to do with the sheer number and variety of applications that could be used.. something for every taste! .. no one cmpany no matter how big can create something remotely comparable without out the free help of those millions of enthusisastic individuals out their writing all sorsts of applications. when it comes to getting a huge diverse range of apps catering to every taste to happen out there you just need to let the developers “out there” in … you don’t need to waste money on marketing campaigns to get developers interested .. just reduce the barriers to getting started – let them in and they will come…

if they seriously want more developers they should stop charging developer fees and open up the platforms

its not only companies that develop apps. There are plenty of individual developers out there who could be interested in writing mobile apps but are turned off by developer fees, walled gardens and other costs.

Apple particularly – there is NO WAY IN THE WORLD i am going to fork out for a brand NEW mac just to use their SDK!

Most developers have other stuff to do so even smallish fee barriers would just mean many of them will be more likely to just put it off and work on whatever other projects they have going. .For me it was a case of “I want to experiment and learn more about the platform before committing myself to a $100 dev fee, let alone any other costs” .. but they expect you to pay just to get started? .. go figure..

so .. 1. don’t charge developer fees 2. don’t put in place artificial restrictions which prevent developers from using their existing tools, programming languages they already know , etc 3. make sure that there are readily available low cost devices on the market – if that isn’t possible then at the very least put out a DECENT emulator and run testing workshops where developers can get an oppertunity to test on a real device without needing to actually be able to afford to buy one or making any big commitments)

Android looks like the best option at the moment for getting started

– you don’t have to pay developer fees or pay to be in some “appstore” just to let someone install or test your app (and the lack of such restrictions would also make it possible to release open source or free apps without needing to worry about out how to cover the costs) … and real consumer-level pricing of devices running Android means the platform’s market share is growing extremely rapidly (will most likely become the most popular mobile platform worldwide very soon if it isn’t already) because sales are not limited to the “high end” buyers. – now you can get an Android phone for under $100 outright so pretty much everyone is buying them!

A few years ago I had hopes for those linux-based mobile platforms such as Meego but devices running them never became cheap enough to get much market share.

The way forward is been able to get your app to as many platforms as possible, because as you can choose a platform over another to develop on, you cannot choose for your potential users the device to buy just for them to use your app.

There are many frameworks out there that promises such, which you can do some web searches about them.

For me personally as Java and Android developer, I chose “Codename One” framework (http://codenameone.com), because it allows you to code in java and use their cloud service to build your java app into native app for any platform you choose (JavaMe, Android, RIM, iOS, and Windows Phone etc). In that way you overcome the need to buy a mac box just for iOS development.

Rather you concentrate on creativity and building much functionalities into your app to please your users instead of worrying on porting your app to different platforms.

Get in touch

You reminded me of a few things. Apple has had its past romances with Java. I got the sense that there was a faction within their OS team that either loved it or was at least certain you needed it to succeed. They eventually lost out, but not before putting a lot of work into Java VM technology. They not only maintained their own Java virtual machine, but considered it a first-class way of writing apps for the Mac, back in Rhapsody. By OSX and Cocoa, that star was falling, but for years they still had clever, expensive house-enhancements to Java like heap sharing that… did Windows ever get it?

C is a fair grandparent to many compiled languages, and even a few scripting languages like PHP. Just one developer’s opinion, but I would put Java and Objective C as fairly close siblings, each rejecting Stroustrup’s monstrosity (C++) and trying to graft post-Smalltalk object-orientation onto a C-like syntactic substrate. Objective C was more practical and C-like in some ways, yet more ambitious and Smalltalk-like than Java in others. I know of virtually no other significant backers for it than Next/Apple. Java was more ambitious in its overall architecture and reference implementation, and in many ways more conservative in its language design. The goal of powering mobile devices always hung over it, forcing its designers to eschew fancy features that would later make developers hungry for post-Java languages like Python and Ruby (and Javascript for that matter). High hilarity, that its massive, industry-wide success hung initially on servers. Only later would other device classes finally succumb, culminating with Android’s devastation of Apple’s marketshare and marketshare growth.

Visual Basic was a disgusting language. Its popularity can only be explained by the perversity of a malevolent deity. Microsoft knew it, and C#, by comparison, leapfrogged Java, benefiting in many ways from studying its flaws. Of course, the marketplace would end up rejecting it, as by now both developers and corporations had started to learn the dangers of closed platforms – in part because of how Microsoft had handled its many Visual Basic developers.

That brings me to my question – you mention VB and the CLR in the context of Windows Phone, rather than C#/CLR. I presume that means C#/.Net code will one day run on it too, but is that choice deliberate? Do you imply Microsoft is eyeing VB over C# for mobile use?

I had forgotten about the romance most had with Java. You’re right that Apple, in the pre-OSX days, did some hefty work on Java (as did Microsoft, actually, maintaining their own JVM in the OS).

Java was initially conceived as a way to power a number of consumer appliances (in its very early days, it was to power TV sets connected to the “information superhighway”).

VB was indeed completely separate from the world of C but I suspect that its popularity was due to the powerful IDE and how it made any beginner feel they could program (the monstrosity was not inherent to the language but rather to the output generated by its users :)) C# is indeed a better language but has failed to get traction in the marketplace for a couple of reasons: 1. it comes from Microsoft and thus is rejected in a knee-jerk fashion by most Microsoft opponents 2. it’s more complex than VB and thus is rejected by VB users.

VB and C# will both run on the CLR in the context of both Windows 8 and Windows Phone 8. VB.net and C# are to be used on the Windows Phone 8 platform but I suspect that the bulk of Microsoft’s new developers will come from the VB world. The reason for my thinking there is that while it is not elegant as a language, there are a lot of VB programmers out there and THEY want to do mobile work (mobile is the new new thing). Unleashing that group of developers is essential if Microsoft wants to succeed in the mobile space.

Paul Overstreet

Did floodgates open somewhere and alluvasudden there’s this massive influx of VB6 developers to the scene?? You do realize that .Net has been a corporately adopted development tool since 2002, no? That’s 10 YEARS. From a professional developer’s perspective, I completely agree with David Wood’s assessment of the VB1-6 lineage. While I agree they introduced us to RAD, they also made many a lazy programmer. Discussion about memory management and performance are lost on most VB6 programmers. Copy/paste coding was not only the norm, but it was encouraged, resulting in gazillions of frankenapps built by “clever” people. I see direct parallels in the current big uptick in javascript. Same loose typing and structure. Same ability to simply ignore things like memory and performance. Same sandbox, except now it’s the all-powerful browser instead of the VB runtime. Delphi (or rather Object Pascal) was better than VB6. Java is a much more elegant language than VB. Although, I believe Java’s openness to be the very reason it isn’t more prolific. Still too messy to do even simple things like compile/link unless you like command-line (Eclipse, Netbeans, etc, notwithstanding). Personally, I believe the IDE should have replaced the command-line a decade ago. And this is where Microsoft has the market well in-hand. Visual Studio is by far the best IDE out there IMHO. C# or VB.Net, either is perfect for Windows 8 development with RAD in mind. The script kiddies can still play around with javascript all they want. It’ll usher in a whole new era in VBA-style trojans and worms. :o)

Valid point. My mistake but the point remains that C# or VB.net developers represent a large market of potential developers for the mobile world that has to date been untapped. My understanding is that the alignment of Windows 8 with Windows Phone 8 has a lot to do with unleashing that group.

ak

the answer to those underutilized developers is BB10. The platform supports many languages that desktop developers like. I think it will change the game.

We’ll see but I suspect that we may never really see BB10. Rim doesn’t have a natural constituency as the other players do and the story around them is about how they are failing in the marketplace: that fuels the perception that developers shouldn’t bother. It they were to become a significant force again, it would be one of the greatest turnaround in business history.

There is a fundamental flaw in this proposal, and that is the fact that the VB you are referring to (VB6 and previous versions) is a very different beast to VB.NET. VB6 programmers changing to VB.NET have gone through significant pain to start using it; while it is more forgiving than the C# language, and provides a similar “readable” syntax to VB6, most of the underpinnings (CLR), structure and framework are exactly the same: .NET

So yes, there are a huge pool of application programmers who can be drawn upon: .NET developers (VB.NET or C#). Legacy Visual Basic developers are still going to have to learn something new, though… as they should.

A large number of those people have made the move to VB.net (or it’s an easier transition for them), which is why I suspect there is an uncounted pent-up offering that is yet to be unleashed. Whether Microsoft does unleash it is TBD.

Danny Price

Apple likes to have backup plans. The Java bridge in OSX 10.0 was an alternative to Cocoa in case ObjC failed to take off, just like the C Carbon API or the Intel version of OSX. Once Cocoa had proved a resounding success, Apple deprecated and then eventually killed the Java bridge.

There was no Microsoft-style fiefdom war over Java and ObjC; Apple is too focussed for that. By 2005, it was obvious that Java’s popularity was waning and few developers complained when Apple pulled the plug.

It’s worth noting that there is more to Java than the syntax. Most people think of Java as AWT and Swing, the GUI frameworks. Apple never supported these or pushed them in OSX. The Java bridge was simply a wrapper around Cocoa and the Nib framework. You couldn’t take a Java program written with the Java bridge and run on a Windows machine.

The world still runs on Windows of course, or rather the old Win32 API. MS haven’t been lacking in innovation over the last decade but they’ve produced so many conflicting and overlapping technologies (only to kill them off suddenly in some cases), that the developer community would rather just stick with what they know.

VB was successful because it allowed non-developers (i.e. business types in the ‘Enterprise’) to throw together solutions for their problems that could be integrated into Windows services (something you could never do on the Mac). It was the first true RAD tool and one of Microsoft’s best products. Killing it off without a viable upgrade (VisualBasic .Net is a totally different product with similar name) was a huge mistake; VB developers switched to competing non-MS technologies instead, technologies that were typically cross-platform.

MS strategy days is a complete mess. The major factor that has kept Windows in dominance is the Win32 API; promoting ‘web’ technologies like HTML5 erodes that very foundation. And if you wipe the slate clean like they seem to be trying with Metro and their tablets, there really is no reason to stick with Windows anymore.

I think you overestimate the power of the Win32 API. The internet has eroded some of that power over the last decade (Microsoft’s fall from grace is not just the result of Apple’s rise to dominance but also has to do with the internet becoming more of a platform).

Thanks for the insights, though. There’s a lot of great stuff there.

Joe

Why even bother with platform specific applications? Go web. Just as web applications have beaten desktop apps in recent years, mobile web apps will do the same. http://51degrees.codeplex.com/

I’d love to tell you that you are right but sadly the current crop of native browsers on mobile devices has a hard time dealing with more complex apps. Things like animation, caching, font-handling (eg. CSS3 or webfonts) are poorly supported. In a few years maybe but for now, the market seems to be apps (furthermore, the consumers seem to be voting for an app vs. bookmarks experience these days).

“There has been a growing trend in the use of HTML5 for development of cross-platform mobile applications. This technology allows a developer to write an application using platform-neutral web technologies that can be delivered to a broad range of smartphone devices. This capitalizes on modern smartphones generally having highly capable browsers, with good support for HTML5 / CSS3 features.”

Luiz Felipe

No, web has not beaten desktop, you cant make books in it, you cant edit photos, you cant work with videos, you cant work with audio, and you cant play newest games like Diablo3. The day some kind of game in same complexity as Diablo3 or any of current crop of games can run on web, also with 3d making sofware i will change my mind and accept that Web has beaten desktop. This site even runs correctly on Opera, nor IE9, why think all people use that firefox shit browser.

I have been a programmer for almost thirty years, so i’ve lived the history you’re trying to recount here, and I’m seriously amused by your suggesting that VB devs were ever the high priests of anything. They have always been considered kids playing with toys, and VB has always been considered less than serious. I wonder what your perspective is? I suspect management, right?

The notion of VB devs as high priests was kind of tongue firmly planted in cheek. There were many of them with that self perception, even though the rest of the programming world looked to them as noobs.

Luiz Felipe

That was because they make business application that powers IT instead of “toys” like phones.

Donald Duvall

Just a side note here, Your website doesn’t like Chrome browser. It says, ” TNL.net is designed for modern browsers but the content is still readable in older ones. If you want to ensure the best experience, please install a browser that was developed after 2009.”

Just something to keep in mind for you sites validation, Lots of people do use chrome.

I am actually in this process of learning how to code for Android, I choose it because I was able to map my many year of C++ skills over to the Java language over a weekend of burning through a book or two about Java. My personal reason to pick Android over others is my love for the Open Source way of doing things. I found learning to code for IPhone was too cost prohibitive for me since I would have to invest in buying Apple hardware just to code. Moreover I just don’t like Apple’s close system mentality.

I’ve been a Windows C++ developer for the major part of my career but 3 years ago I moved over to Linux at home completely. I kind of resented how Microsoft left C++ developers in the cold and moved on to .Net and C#. So I had a choice to make, stay chained to Microsoft and learn .Net or make a clean break and move over to Linux and the Open Source world as a C++ developer. I chose Linux just to round out my skills. As a result I got exposed to more ideas, frameworks, open source projects and tools than I would have if I had stayed with Microsoft.

To me hacking in C++, C# or Java is not really that big of a deal, even though coding in C++ is so effortless for me. Why I would not choose Microsoft “today” is because Microsoft tends to fragment the technology landscape about doing something its way rather than playing nice with others. I really don’t care for Microsoft littering the development landscape with more of it’s proprietary “baggage” that I as a developer must be forced to learn.

I was not a fan-boy of Java as there has away been this C++ vs Java camps amongst hackers, this ill mindset is one reason it took me so long to come around to Java+Android. However the move over to Java was painless and effortless imho, and from my “still” early days of learning Android development I am finding developing for Android has been a good choice/fit. It’s easy to learn, all the tools are freely available, excellent community support, tons of written material. I can develop on my own hardware running Linux yet if I am forced to develop on a Windows box for an employer then getting setup would be simple since Windows hacker are accustom to the GUI handcuff way of coding.

My personal belief is that overtime the Open Source way of doing mobile development will win out, Windows will be relegated to a smaller shrinking market share, and Apple will most likely hit some point of terminal-growth and never be able to get past this juncture all the while Android will continue to attract both developers and end users into the market.

If Google can get its C/C++ NDK for Android to a point that it doesn’t matter if you use C/C++ or Java to develop Android app, there is going to be all this potential of “professional” C/C++ developer on the “sideline” making a play for Android vs the rest. As a result, a lot of C/C++ Open Source code will get ported to Android and it will be a win-win for Android mobile development and C/C++ hackers like myself.

The devastation of Nokia moving over to Windows phone has not been a good track record for success for Microsoft Mobile initiative. Nokia also committed the sin of killing its C++ Qt developers! With each failure Microsoft has, developers on the sideline deciding where to place their energies will either pick Android or IPhone, and if the developer is like myself who says “forget” Apple for telling me I can’t develop on “my hardware” on Linux or a Virtual Machine for IPhone, then the choice for Android will be clear.

Mobile and more so Tablet is the next wave for “existing” developers not yet hacking for mobile to shift towards. There is going to be a lot of developers who find out they have a skill gap that they had better fill if they want to have secure employable skill for the future!

Andrew Lawson

I think you’ve missed two major things here.

1. In the past 5 years I have probably reviewed 3-400 Microsoft developer resumes. It would be rare to have included C# strongly on any of the job descriptions, yet out of all of those CV’s there must have been 10 where the developers last project was VB. In 2004 yes, in 2012 no. Most people have already made the transition to C# (and from personal experience that transition takes all of 2 days). Developers for Excel and Access would be the exception, but if you’ve missed doing windows applications and web in .NET I don’t think you are likely to jump to mobile

2. C# has been around 10 or so years and has clearly been Microsoft’s priority for that period. Whilst there are always exceptions to the rule, if a developer is not dynamic enough to learn a new language in the same “family” in a 10 year period I don’t think they are likely to be the type of person to produce cutting edge mobile applications in 2013.

As much as I hope Microsoft does well with Windows 8 and Windows Phone 8, any belief that some dormant army of VB developers is going to win that war is just pure fantasy.

darkninja962

I don’t know much about iOS or Android development, yet anyway, but I do want to point out a couple things you had off for Windows Phone 7 development.

Currently it is not possible to write WP7 apps in VB.Net, only C#. It looks like VB.Net will be a possibility once the next update is out, but until then it it C# only for logical code and XAML for UI stuff. The CLR has been in the OS since day 1. The CLR is like the Java Virtual Machine in the sense that you can write a program in one language and as long as the Virtual Machine (VM) exists for some other OS, you can run the program there. The open source project Mono is a really good implementation to get C# working on Linux.

Other than that, I very much agree with you. Can’t wait to see how it all pans out.

Thanks but my understanding is that the CLR is getting some level of unification between Windows 8 and Windows Phone 8. Am I wrong in that assumption? Did I misunderstand what Microsoft was saying?

darkninja962

As far as I know Microsoft hasn’t announced a whole lot about those kinds of changes to WP8. They said the underlying OS kernel is going to be the same for Windows 8 and WP8, to be able to use the same drivers, security, and all that other stuff involved with a kernel I know nothing about. I’m in the same boat as you though about assuming the CLR is getting some sort of upgrade. Though now that Windows Phone apps will be able to be written in C++ (or maybe just games? Man, they really haven’t said much), the initial learning curve for a lot of developers has changed.

AIR has been around for about 4 years now and Adobe keeps promising that it will run on mobile. At this time, it looks like they may have missed the window of opportunity.

michaelmd

those companies have no clue.

if they seriously want more developers they should stop charging developer fees and open up the platforms

its not only companies that develop apps. There are plenty of individual developers out there who could be interested in writing mobile apps but are turned off by developer fees, walled gardens and other costs.

Apple particularly – there is NO WAY IN THE WORLD i am going to fork out for a brand NEW mac just to use their SDK!

Most developers have other stuff to do so even smallish fee barriers would just mean many of them will be more likely to just put it off and work on whatever other projects they have going. .For me it was a case of “I want to experiment and learn more about the platform before committing myself to a $100 dev fee, let alone any other costs” .. but they expect you to pay just to get started? .. go figure..

so .. 1. don’t charge developer fees 2. don’t put in place artificial restrictions which prevent developers from using their existing tools, programming languages they already know, etc 3. make sure that there are readily available low cost devices on the market – if that isn’t possible then at the very least put out a DECENT emulator and run free testing workshops where developers can get an oppertunity to test on a real device without needing to actually be able to afford to buy one or making any big commitments)

Android looks like the best option at the moment for getting started – no need to pay developer fees or pay to be in some “appstore” walled garden just to let someone install or test my app (and the lack of such restrictions would also make it possible to release open source or free apps without needing to worry about out how to cover the costs) – now it is possible get an Android phone for under $100 outright pretty much everyone is buying them!

A few years ago I had hopes for those linux-based mobile platforms such as Meego but devices running them never became cheap enough to get much market share.

Think back to the 80s and 90s and how MS-DOS and Windows became the most popular platforms on desktop PC’s It has to do with the sheer number and variety of applications that could be used.. something for every taste! .. no one cmpany no matter how big can create something remotely comparable without out the free help of those millions of enthusisastic individuals out their writing all sorsts of applications. when it comes to getting a huge diverse range of apps catering to every taste to happen out there you just need to let the developers “out there” in … you don’t need to waste money on marketing campaigns to get developers interested .. just reduce the barriers to getting started – let them in and they will come…

michaelmd

those companies have no clue.

if they seriously want more developers they should stop charging developer fees and open up the platforms

its not only companies that develop apps. There are plenty of individual developers out there who could be interested in writing mobile apps but are turned off by developer fees, walled gardens and other costs.

Apple particularly – there is NO WAY IN THE WORLD i am going to fork out for a brand NEW mac just to use their SDK!

Most developers have other stuff to do so even smallish fee barriers would just mean many of them will be more likely to just put it off and work on whatever other projects they have going. .For me it was a case of “I want to experiment and learn more about the platform before committing myself to a $100 dev fee, let alone any other costs” .. but they expect you to pay just to get started? .. go figure..

so .. 1. don’t charge developer fees 2. don’t put in place artificial restrictions which prevent developers from using their existing tools, programming languages they already know , etc 3. make sure that there are readily available low cost devices on the market – if that isn’t possible then at the very least put out a DECENT emulator and run testing workshops where developers can get an oppertunity to test on a real device without needing to actually be able to afford to buy one or making any big commitments)

Android looks like the best option at the moment for getting started

– you don’t have to pay developer fees or pay to be in some “appstore” just to let someone install or test your app (and the lack of such restrictions would also make it possible to release open source or free apps without needing to worry about out how to cover the costs) … and real consumer-level pricing of devices running Android means the platform’s market share is growing extremely rapidly (will most likely become the most popular mobile platform worldwide very soon if it isn’t already) because sales are not limited to the “high end” buyers. – now you can get an Android phone for under $100 outright so pretty much everyone is buying them!

A few years ago I had hopes for those linux-based mobile platforms such as Meego but devices running them never became cheap enough to get much market share.

Chibuike Mba

The way forward is been able to get your app to as many platforms as possible, because as you can choose a platform over another to develop on, you cannot choose for your potential users the device to buy just for them to use your app.

There are many frameworks out there that promises such, which you can do some web searches about them.

For me personally as Java and Android developer, I chose “Codename One” framework (http://codenameone.com), because it allows you to code in java and use their cloud service to build your java app into native app for any platform you choose (JavaMe, Android, RIM, iOS, and Windows Phone etc). In that way you overcome the need to buy a mac box just for iOS development.

Rather you concentrate on creativity and building much functionalities into your app to please your users instead of worrying on porting your app to different platforms.