Coding in the cloud

Credit:byryo

If development is being democratized, then there needs to be a change in the way we access and use development tools.

The last decade has seen the web become a richer, more dynamic place. HTML 5 tools and techniques have given us complex user interfaces and large scale business applications. Tools like Google Docs and Microsoft’s Office Web Apps have shown we can use the web for productivity. So why not use the same technologies to deliver a development environment?

JavaScript and other scripting languages don’t need the complex multi-environment, multi-platform integrated development environments developers are most familiar with. There’s no need to use massive IDEs like Xcode or Visual Studio, or even Eclipse, to build and test a simple node.js application, or to mash-up a set of cloud APIs and load code onto a platform-as-a-service cloud.

Web-based development tools have been around a long time – as long as there have been forms with text boxes. Some, like Yahoo! Pipes, have been visual programming environments that graphically show connections between web APIs, with tools for adding scripts to transform input and output, while others, like Salesforce’s development tooling, have allowed you to add scripts to existing web services, letting you customize them to fit in with your business processes.

Now, the two trends have met. There’s a new generation of web-based and hosted development tools that give you the rich design, editing, and testing experience of a desktop IDE, while running in a modern browser – for free, or for a low-cost subscription. If you want to build a quick web app to solve a pressing business need, all you need is a browser – and possibly a credit card.

One of the first Cloud IDEs was Mozilla’s Skywriter project (originally named after the Star Wars cloud city Bespin). Now abandoned and transitioned into the open source ACE code editor, Skywriter aimed to deliver a complete cloud-hosted JavaScript development environment. While it was hard for Mozilla to justify hosting a cloud development service, ACE has become the standard code editor at the heart of many cloud IDEs. There’s support for over 40 different languages, and you can add others by using TextMate and Sublime language highlighting files. It’s become a popular tool, and is used in many CMS systems and online training tools as well as in cloud-hosted development platforms.

Credit: Screenshot

Perhaps the best known ACE implementation is Cloud9’s IDE. With tools for working with common web technologies, like Python, PHP, Ruby and JavaScript – as well as CSS and XML – it’s a quick way to get coding, and to share your code with colleagues. There’s also tooling for working with node.js and with the popular Express application framework, ideal for building cloud-hosted applications that work with multiple services and data sources. You’re not limited to building web apps, either, as you can work with languages like C# and even PowerShell.

There’s a base free service, designed for public application development, and a $12/month service that lets you work privately. Apps can be deployed to cloud platforms like Azure and Heroku, and you can link projects to source code management tools like git.

Credit: Screenshot
Cloud 9's IDE lets you build everything from desktop to mobile apps.

Microsoft’s "Napa" (a codename) is a cloud hosted development tool for new Office apps. With a new Office app model as part of Office 2013 and the next release of Office 365, Napa is designed to let anyone build HTML 5 Office apps, and then share them with their colleagues – as well as using them as the basis of full-blown Office apps that can be maintained by IT departments.

Office has long been the province of BYODevelopment models. Visual Basic for Applications (VBA) was part of the desktop suite, and it meant that anyone could write code that worked with Office, allowing quick customizations for specific business needs. Visual Studio Tools for Office (VSTO) moved Office development away from the user, with complex .NET development tooling and security models that meant it was impossible for the end-user to write and deploy code.

With “Napa” things have changed. A simple cloud-hosted editor (which is part of SharePoint 2013 in on-premises deployments) lets anyone quickly build their own Office apps, and publish them to private and public Office stores. Apps can plug into to web service APIs, as well as embedding HTML 5 controls from familiar web properties, so you can include visualizations and mapping features in your Office apps.

Credit: Screenshot
Build Office apps in the cloud with "Napa."

The Office apps model allows you to transition apps from the cloud to Visual Studio, so popular user-created apps can be brought into more structured development frameworks. With Office apps often working with documents that have regulatory compliance issues, it’s a model that helps businesses take advantage of the development skills of their users, while still keeping application development part of existing governance.

Credit: Screenshot
TouchDevelop lets you use phones and tablets as development tools

Microsoft Research’s TouchDevelop began life as a tool for mobile application development, for Windows Phone. It’s since migrated to the web in the shape of a touch-friendly development environment built using Microsoft’s new TypeScript language. A more structured superset of JavaScript, TypeScript code compiles to JavaScript, allowing TouchDevelop apps to run in any modern browser, not just on Windows Phones. The latest version also lets you export projects to Microsoft’s free desktop development tools, so you can quickly take a TouchDevelop app and use it as the basis of a WinRT application for distribution via the Windows Store or via a corporate Store to Windows 8 PCs.

Unlike traditional IDEs, TouchDevelop takes a more visual approach to application development. As you add new elements to an application, you can pick and choose from a set of tiles that include common command structures, as well as variables and data. TouchDevelop strips out key programming features into separate code elements, so you can add events, data and art separately. There’s also support for libraries that can be shared between applications. It’s a simple approach that works well on touch devices like tablets, so you can start coding on an iPad while sitting in the family room.

Join the discussion
Be the first to comment on this article. Our Commenting Policies