You are on page 1of 4

Developers Lets Try

Achieve Shorter Software


Delivery Timelines Using Cloud IDEs
Using cloud services today has become a convenience. An integrated development
environment (IDE) facilitates the development of apps. The authors of this article have
checked out a number of cloud IDEs and evaluated them. Read on to discover which of
these suit your requirements the best.

T
o develop a software product, the development process code management system like GIT. Once the code is checked
plays a vital role. Software development consists in, it requires the consensus of other developers, which takes
of requirement gathering, design, coding, testing, more time if the number of developers is high in a project. So,
deployment and maintenance. Some of the basic requirements for there is the fundamental need to provide a software development
software development are hardware and software tools, a server environment for a large number of developers to work together on
to deploy and test the application and a coding development a collaborative project, yet achieve a shorter delivery time. A cloud
environment. Cloud based development brings in a lot of IDE is one of the best solutions to reduce the development process
cost savings and efficiency into the process. For example, the time, as it provides a more convenient and flexible common
cloud provides a deployment environment, and so users do not environment for software developers.
require to build, develop or maintain this environment but can
share it easily from the public environment. To leverage the The cloud IDE
customisation of software and hardware components, based The key idea behind the cloud IDE based platform is to create a
on the deployment requirements, we need to move to the next virtual development environment. It can provide the following
generation cloud computing platform. features for the software development process:
An integrated development environment (IDE) is a a. Users can develop an application in one or more software
software tool that integrates various features required for the technologies such as Java, C++, HTML, JavaScript and so on.
development of a software application. The latest improvement b. It has an application container to deploy the application on-
in this field is the cloud IDE, which is a virtual development the-fly.
environment. For example, to develop a Java application, we c. It offers repository management to store, retrieve and share
use Eclipse as the IDE, which provides an integrated plug- code between groups of developers.
in facility to develop Java code, auto complete In addition to these basic features, we need to add
Java APIs, has syntax highlighting, apart security to limit the access to only the selected group of
from the capability to compile, execute, developers. This can be achieved by an authentication
test and analyse static code. In a traditional system that protects the development environment
software development environment, all from public use.
developers install the IDE in their respective Here, lets consider an open source virtual
systems, and upload their developed code environment for cost effective and better community
into a concurrent version system (CVS) or source

58 | November 2015 |OPEN SOURCE For You | www.OpenSourceForU.com


Lets Try Developers
article is to discuss various features, as well as the pros
Cloud Cloud Cloud
Development
and cons of these tools based on our experience. The idea
Development
Development
is not to influence decisions, since we are well aware that
the development requirements decide what kind of cloud
Cloud IDE or tools are chosen; so a general recommendation is
IDE
not advisable.
Cloud9 - https://c9.io/
Cloud9 IDE is capable of handling projects from
Locally installed User system JS, HTML, PHP and Ruby. It supports development in
IDE in
User system JavaScript, GIT, Selenium, HTML/CSS, XML, XQuery,
PHP, Ruby and Node.js. It can be used for Web application
Regular Cloud Development Cloud IDE based development
development. Cloud9 supports repositories like GIT, the
Figure 1: Software development and the cloud IDE distributed revision control tool Mercurial, and Apache
Subversion. It also facilitates deployment, which can
based collaborative software development. Lets also analyse be done directly from Cloud9 to Joyent and Heroku.
a cloud based development facility that can be accessible Its limitation is that it is not useful for Java application
from anywhere, and be used without much interfacing in the development or J2EE application development/handling.
local developer system such as software installation, network Pros: Supports a variety of languages and various
boundary, etc. For example, lets only use a Web browser to repository tools.
access the cloud IDE for software development. Cons: Can be used for simple application development
A cloud based IDE is a next gen solution and still in the but not for large or complex applications.
incubation stage, because the cloud based private workspace Codeanywhere - https://codeanywhere.net
is yet to evolve fully. As of now, there still isnt any good This is a lightweight browser based IDE tool, which supports
Java-supporting cloud IDE available. For example, eXo development of Web applications using HTML, Cascading Style
provides facilities, but it lags in speed to some extent and Sheets (CSS), JavaScript, PHP, MySQL, and more. We can work
doesnt support the IE browser. with this tool to develop or test code from anywhereeven from
We have reviewed various cloud IDEs, both mobile devicessince it is also available as a mobile application.
commercial and open source, and have shortlisted cloud Codeanywhere is supported in iOS, Android and Blackberry
IDE tools for review, for the benefit of open source users. based mobile devices and tablets.
In this regard, we have considered the following standard Pros: Lightweight and easy to use. Support for mobile devices.
expectations from a cloud IDE: Cons: More useful for Web page development and doesnt
1. It should be lightweight and flexible enough for novices. support a variety of programming languages.
2. It should be able to highlight syntax. Eclipse Orion - https://wiki.eclipse.org/Orion
3. It should have the auto completion facility. This is the Eclipse version of Orion, which can be
4. It should have an internal compilation facility. used as a local standalone (installable) IDE or an online
5. It should provide minimum debugging facilities. IDE through a browser, but it only supports Chrome, FF,
6. It should support remote repository management for Safari and IE10. This is more for client side scripting like
source code. HTML, JS and CSS. Java syntax highlighting is supported
7. It should support cloud deployment. during static code review, and doesnt integrate with the
In addition to this, proficient developers who have worked Java build and development environment. It has shell
on various IDEs like Eclipse, JDeveloper, IntelliJ, Visual features with a very limited command facility. Eclipse
Studio, etc, would look for some add-on features like: Orion doesnt support the private cloud and hence is not
1. Support for screen design with a visual designer tool. suitable for secured application development. This is one
2. API or language help; for example, tooltip for a Java API. of the lightweight cloud IDEs for software development in
3. Static code analysis to follow best practices in coding. HTML/CSS and JavaScript.
4. Coding convention and code formatting or styling; Pros: Can be used as a standalone local installation tool
for example, the number of characters in a line, tab or as a cloud IDE. It offers static code analysis. Shell feature
indentation, etc. provides facility for UNIX script development, which is a
So let us review some of the popular open source cloud unique feature many cloud IDEs do not offer.
IDEs including Cloud9, codeanywhere, Eclipse Orion, Cons: Doesnt support the private cloud/secure
Coderun Studio, Codebox, Codeiad, IDE One and Codenvy development, and doesnt support build/compilation of code
Eclipse Che. or online testing.
Please note that the tools discussed below are not Coderun Studio - www.coderun.com/studio/
ranked based on any parameters. The intention of this This is another very simple but efficient cloud IDE, which

www.OpenSourceForU.com |OPEN SOURCE For You | november 2015 | 59


Developers Lets Try

Orion Content

Develop software from within the cloud

Add Modify Manage

Figure 2: Software solutions in Eclipse Orion


Figure 3: IDE One
supports software development in ASP.net, HTML, CSS and
JavaScript, apart from focusing on Microsoft code developers
and providing compatibility with Microsoft Visual Studio.
It also facilitates code completion, syntax highlighting,
debugging and native compilation. This efficient cloud
IDE offers the flexibility for community development by
providing a unique URL and access to peers for a multi-user
development environment.
Pros: Unique URL for multi-user development, in parallel.
More suitable for pair/peer programming. Supports Microsoft Figure 4: Online Java IDE
code development, debugging and native compilation.
Cons: Development using latest frameworks or 40 programming languages, and provides plugins for
languages like Scala, Ruby, NodeJS, AngularJS is not integration with other popular IDEs like Eclipse. There
supported by this tool. is no database required to be installed locally, and no
Codebox - http://codebox.in/ application server or local installation required to run this
This is a popular open source IDE, with code available browser based IDE tool.
at https://github.com/FriendCode/codebox. It enables users Pros: A simple but efficient tool that supports a
to customise the tool and encourages them to share it for variety of languages. Application server support for local
community development. deployment is available.
Users can download the code from this repository, and build Cons: Doesnt support a variety of database types and is
to prepare an IDE in their local desktop. It supports Windows, not so flexible in pair programming.
Chromebox and Mac based operating systems, and is used IDE One - https://ideone.com/
to develop local or cloud based software projects. This tool This is a very simple online IDE, which supports Java.
facilitates pair programming by providing cloud based IDEs It can be more useful as a unit or stub testing environment
for sophisticated community development in Java, JavaScript, as a quick try. The code development in this tool is done
C++, Ruby, Scala, HTML, CSS, NodeJS and UNIX script online and there is no Save option. It doesnt have extensive
programming, to name a few. It provides auto completion support for real-time application development/deployment.
of code, syntax highlighting and supports cross-platform Pros: A simple tool with real-time application
development on the desktop, laptop, tablet and on Chromebook. development support.
This tool provides features for Scala based program development Cons: Lacks user friendliness.
and deployment to cloud based platforms. It is open source Online Java IDE - http://www.compilejava.net/
with licensing under Apache 2.0, and provides command line This IDE has facilities for Java/J2EE development.
development for shell programming, Google Docs and database It also supports Spring, ojdbc, MySQL (a user has to
support using MySQL. manually create/connect to the database), mail API and
Pros: Supports a variety of repositories, cloud Axis frameworks.
deployment, Scala based program development, cross- This IDE is not very user friendly and typing/editing
platform support and auto completion of code. is not too comfortable. The package creation option
Cons: Support for development in PHP is not available. is not available (to modularise applications). There
Codiad - http://codiad.com/ is no download/upload facility to sync with the local
This is a simple tool, which supports more than development environment.

60 | November 2015 |OPEN SOURCE For You | www.OpenSourceForU.com


Lets Try Developers
Skip >
Languages Choose a Paas
Frameworks Select a Paas that your application can deploy into.
Where possible, we will configure a Codenvy local runtime that will help you
Paas debug your before you deploy.

Repository

AWS AppFog Cloud CloudBees Google Heroku OpenShift Tier3 None


Continuous Elastic Foundry App Web
Integration Beanstalk Engine Fabric

Agile
Figure 7: PaaS support in Codenvy
Figure 5: Software supported by Eclipse Che

Skip >
Choose a technology
Codenvy provides an IDE, a builder, and a tester on separate nodes.
We configure each node by the type of project selected.

Java Java Web Java Java Script Ruby on Python PHP Node.js Maven
Library Application Spring Rails Multi-
(JAR) (WAR) Module

Figure 6: Features of Codenvy

Pros: Supports a variety of database drivers and


frameworks like Mailx, Axis, etc
Cons: Package and deployment is not available. Limited
to Java development only. Figure 8: Deployment in Codenvy
Codenvy Eclipse Che - https://codenvy.com/products/che
The link for Codenvy IDE goes to a cloud IDE commands. Build and deploy is integrated in the IDE (e.g.,
named Eclipse Che. It supports a variety of Java/J2EE build with Maven and deploy to Google App engine) as
frameworks as shown in Figures 5 and 6. This IDE shown in Figure 8, just like in the Eclipse or NetBeans IDE.
provides unlimited open source community (public) Codenvy supports deployment to cloud environments like
development support and user access. Usability is high, Cloudbees, CloudFoundry, Openshift and Google AppEngine.
being as simple as using a desktop version of Eclipse or There are a lot of features in Codenvy, and thats why we
the Netbeans IDE. The deployment facility includes a have covered a detailed review of them.
variety of PaaS cloud environments as shown in Figure 7. Pros: Has a variety of features and is flexible in
Integration is seamless and automatic. When users trigger development. Supports download of archive code on-the-fly.
deployment from an IDE, it connects to the PaaS (a choice Cons: Doesnt support the IE browser. Slows down
made when creating the project) and pushes the build to sometimes, when users compile or do a cloud deployment.
the deployment zone. There are many other tools like JS Fiddle, Python
GIT is the default management repository and it has a Fiddle, Kodingen, Shift Edit, Erbix, ICEcoder, Neutron
local as well as remote GIT facility, where users can either IDE, Collide, etc, but they are not so popular or havent
keep the source local to Codenvy (like storing in a local gained momentum in supporting more features in cloud
development machine) or connect to a remote GIT to check- based application development.
in/check-out (like an open source GIT repository). For a developer or a small company that lacks the
Codenvy has JSP and Spring support inbuilt, using the capability to install an IDE locally for software development
project template feature. It has features to import external or wants to develop a program on-the-fly, the tools described
jars and, hence, JSF or the Struts Framework can be used above would be helpful to experiment on, prior to choosing a
for code development. Applications with DB support can be development environment.
simply chosen from the wizard. Archive (zip) download of
the project to a local system is available. Uploading existing
projects/jar/war is possible, and so users can switch between By: Magesh Kasthuri and Dr B. Thangaraju
the local environment and the online IDE. Package creation Magesh Kasthuri is a senior technical consultant in the Java-
support is also available. Codenvy is a bit slow when Technology Practices Group at Wipro and can be reached at
magesh.kasthuri@wipro.com.
Initialising Java tooling, and supports non-IE browsers
Dr B. Thangaraju is an open source software (OSS) evangelist who
such as Safari, Firefox or Chrome. works at Wipro. He can be reached at balat.raju@wipro.com.
It has shell access for UNIX development with basic

www.OpenSourceForU.com |OPEN SOURCE For You | november 2015 | 61

You might also like