The code that a developer writes, especially as a server-side, enterprise Java / .NET developer, should be agnostic with respect to where the code itself gets deployed.
For instance: A web application that is developed using JSF or Spring-MVC can be deployed to an application server like JBoss, WebLogic, Tomcat, etc.
From a developer's position, it does not really matter if the application server is running on an on-premise physical server or in the Cloud (on a ready-made environment or a virtual server). So, in what ways is the emergence of cloud computing impacting application developers?
When development is done without virtualization or clouds, teams are usually limited in the number of physical servers and environments (development test, production, etc). On the other hand, when virtual machines or cloud instances are used, development teams have practically an unlimited number of servers easily available to them. There is no need to wait for physical servers to be setup or become free.
To nave many instances as needed also enables developers to innovate. A team can produce a development environment quickly. This approach is very "agile" and encourages experimentation.
With software growing in importance, developer effectiveness will be a crucial factor for every company's competitiveness. In the world information technology, enterprise applications must be designed, built and produced for less money, with greater speed and with fewer resources. Cloud platforms reduce overall development time by an average of 11.6%.
- for source control
- continuous integration
- automated testing
- application lifecycle management
This tools are now available as SAAS in the Cloud.
The online IDE is one of the final frontiers of apps ported to the web. So you can develop from any computer or operating system and have the same experience without having to install software or create site definitions. You will edit code anytime, anywhere. Example: Koding, Cloud9 IDE, Codeanywhere, Codenvy, ShiftEdit.
GitHub: is a very popular choice for version of control and source code management. It is the best way to collaborate with others. Other examples are: CloudForge, BitBucket, Jira Studio, Code2CLou, Google Code.
MongoDB: for NoSQL database. It is "document-oriented" which means, instead of storing data in tables as is done a "classical" relational database like MySQL, MongoDB stores structured data JSON-like documents with dynamic schemas. Others examples are: CouchDB, Cassandra.
Is one area where the Cloud is ahead than on-premise system.
The CLoud makes it easy for developers to share their work with other team members all over the world.
Like Clojure, Dart, Scala, Ceylon, Go, Puppet, etc.
Cloud doesn't change the way developers write single classes or methods BUT the developers now need to grow and acquire the skill necessary to write software for the parallel, multi-CPU, asynchronous systems.
Developers need to get comfortable with Big Data, non-relational databases, and learn distributed data processing platforms like Hadoop.
The enterprise developer needs to know the capabilities that cloud-based solutions provide and how to apply them when cloud-based technology is a good fit for a particular business problem.
It's the union of developer and systems administration skill sets.It represent the ability to self-provision development and testing environments, so you can get moving on application builds without having to wait for hardware and software from the Ops team.