Coding in the Cloud – Part 1

This is the first instalment in a series of posts looking at the use of online development environments (IDEs), their context within the emerging cloud-based development market, and will look at how they could change current software practices.

Definitions

Over the past years, a number of companies have developed online alternatives to traditional desktop applications, allowing us to create documents and spreadsheets in the web browser.  An online code editor is where a browser hosts a text editor, allowing a developer to create and edit source code for an application, without installing any client side software.  The more advanced online tools aim to replicate the functionality of desktop integrated development environment (IDE) which compile and deploy the source code as an executable application.

Cloud-based development refers to the use of applications by software developers that are hosted by a provider using cloud-based storage, and that is accessed by customers over a network, typically using a web browser over the Internet. Cloud-based development encompasses more than simply online code editors, as other parts of the developer tool chain are also starting to be hosted in the cloud.  These include source code hosting, build servers, task lists, bug tracking, and project planning, as well as continuous integration capability (i.e. automatically rebuilding the solution and running unit tests whenever code is checked in).

The term Development as a Service (DaaS) is used to differentiate this sector from the rest of the Software as a Service (SaaS) market.

Why It Matters

Worldwide there are 15 million professional developers (Evans Data, 2009), with over 1.3 million in the USA alone (Bureau of Labor Statistics, 2010), and a further 330000 in the UK (Office for National Statistics, 2010).  The application development software market is worth over $7 Billion annually (Gartner, 2009).  The majority of software developers use either Microsoft’s Visual Studio IDE, or a variant of the open source Eclipse IDE (Forrester, 2008), both of which are desktop applications.

What Cloud-Based Development Tools Offer

For a software business, the major advantage of cloud based development tools are the additional capabilities for real time collaboration when developing.  This is useful for development teams that are geographically separated, particularly outsourcing work.

They also offer reduced licensing costs and a reduction in hardware requirements; businesses no longer need to buy high specification servers and PCs as development platforms. By effectively outsourcing their development hardware to a DaaS provider, a business allows a software developer to focus on development, and not have to administrator their development hardware, with an increase in developer productivity.  This will also reduce the time taken for a developer to join a project – they will no longer have to waste time building a project specific development environment.

Cloud9 Online IDE

For developers, cloud based development tools offer the opportunity to work on a project regardless of what location they’re at, or what platform they’re using – PC, Apple laptop or a smart phone.   The development environment remains consistent across all the devices used, and avoids users having to re-install specific plug-ins or customizing interfaces.

Summary

With our basic terms defined, and the advantages of cloud base development tools laid out, I plan in future posts to review and compare the main online IDEs that are currently available.  We will not consider the many code editors that are available, but will only consider those online tools that aim to replace the existing desktop IDEs. The first online IDE we will look at is the CodeRun application.

About Andrew Parkhill

I'm a software developer with over 5 years experience, primarily working with the Microsoft .NET framework and SharePoint.
This entry was posted in Cloud Computing, Development, Trends. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>