Once again we find ourselves at a massive crossroads. A new preview of Windows 8 will be available to the public by the time you read this editorial, SQL Server 2012 is in the final stages before a gold disk is stamped, and ASP.NET MVC is getting closer to shipment. Rumors are that we'll see a new version of Visual Studio within a year. And this just the Windows eco-system.
Apple is continuing its march forward with new versions of OSX, iOS and their mobile phones and tablets. Android is a force to reckon with as Google ships new versions of the Android OS and many, many new hardware vendors support it. These choices are not limited to just development platforms. The world of data is on fire too. Oracle and Microsoft continue to push the traditional boundaries of relational database development while new ways of looking at data are upon us with tools like MongoDB, RavenDB, Redis and Apache Cassandra.
As a software developer, which of these affects you? All of them. As software developers we have never been faced with such a rich and at the same time perilous set of choices. And yes, I mean perilous because each and every one of these choices comes with its associated costs. Choosing the wrong platform can be costly in the form of time and treasure. Allow me to prognosticate on some of these choices:
JavaScript and Windows 8
Windows 8 is a radical step for Microsoft and you as a developer need to be careful when making choices for this platform. As a developer, one of the biggest things you must avoid is choosing JavaScript for your development language for desktop applications. Visual Studio 11 Beta (likely to be called Visual Studio 2012) provides you multiple languages choices, including Visual Basic, C# and C++. The newest member of this family is JavaScript. In my opinion, you will make a bad decision if you choose JavaScript for developing applications on the Windows 8 platform. Why choose JavaScript when the three majors are light years beyond JavaScript in power and robustness? The ENTIRE POINT of using JavaScript for development is REACH, plain and simple. JavaScript is a universal language available across all platforms: Windows, OSX and Linux. The JavaScript extensions found in Windows 8 are for just Windows and no more. Portability goes right out the window. If you are developing for the Windows platform, stay away from the JavaScript tools.
Native/Non-Native Mobile Development
One of the biggest choices for developers today is the choice between developing native vs. non-native (i.e., browser-based) applications. Do you pick Objective-C, Java or C#/XAML for building mobile applications? Or do you choose to use HTML5, CSS and JavaScript? For most applications I recommend leaning towards HTML5/CSS. The reason for this choice is simple to me: cost and reach. The power and speed of JavaScript accompanied by the flexibility and power of HTML5/CSS has never been greater. The real proof is how many applications have gone from native tools to HTML5/CSS. For me there are two that come to mind. The first one is the Amazon Kindle reader. Last year Apple and Amazon had a bit of a tiff when it came to in-app purchases of books. Amazon took a first step around this problem by rewriting their Kindle Reader using HTML5/CSS and JavaScript. Another cool development was the conversion of a game called Cut the Rope from native to IE 9. Cut the Rope is a much-loved game in the mobile gaming space. The development team that created Cut the Rope converted their application from Objective-C to HTML5/CSS. This is quite an accomplishment as this game has a cool set of user interactions that I was simply amazed they were able to convert to HTML5/CSS. If you want to learn more about how they converted the app to HTML5/CSS, check out this article: http://www.cuttherope.ie/dev/
Data, Data Everywhere and a Whole Lot to Drink
The data space has been very active lately. For some companies, industry-standard relational databases have been replaced with NoSQL databases. There are key value stores, document databases, relational databases, column stores and in-memory databases. Applications like Facebook, Netflix, Twitter and Farmville have required developers to think about data in very different ways. As companies explore this change in data sores, development teams need to start thinking outside of the box of rows and columns. With this in mind, this issue of CODE Magazine is exploring new and interesting features in SQL Server 2012 as well as highlighting two NoSQL databases: Raven DB and MongoDB. CODE Magazine will explore this topic more in the coming year.
Making Good Choices Going Forward
My time is up for this editorial. I hope I have opened your eyes into three areas where you need to assess your choices carefully. As CODE Magazine writers gather content and write more about these choices that developers need to make, I hope you'll contact me and let me know what trends you'd like to see us explore.