Let me start by introducing a new web service: pythonanywhere.com.
This is a python development interface, ready to be used in your browser.
After a quick and free registration. You have access from your menu to the
consoles[python, ipython, bash].
You can also use your files, or create a python web application. The
most interesting features are the ability to pause / resume, which can be
shared with other people. This could be very useful for collaborating on
code or teaching python.
In the heart of the matter
"Development as a service" is only in its infancy. Although it could
quickly become a standard for developers and especially startups. Before
going into the advantages and disadvantages, we will analyze the different
"Devlopement stack" First, there is the old school way. Install a server
on a cloud service. There are many choices ( EC2, AppEngine, Azure,
Rackspace...), it depends on your computer needs, spiritual beliefs (many
of which do not care) and your pockets. Then we have to choose our
preference in "Devlopement stack"; Language/Framework: Python (Django,
Web2py, Pylons, Flask...), Rubym Java/.Net, PHP... Now, you have to
maintain each element involved in the process, package versions,
development tools. This requires a lot of time and resources to allow the
developer to continue their work and keep the applications running. The
next big step was the Heroku and dotCloud as services, alias "deployment /
scaling up" as a service. They free up the deployment burden
This allows us to focus mainly on the logic of the application. The
process is often the same essentially the same as configuring your project
with a simple config file, then deploying it on the server with a single
command. They practically take care of version control like Git. We have
added more and more abstraction to the development process in order to
make it easier, faster, stronger... However, there is always one constant,
"the development of localhost". The code is done on your machine / laptop.
We can still use our favorite OS, IDE, Tools. Well, the "Development as a
service" will make it possible to overcome some last obstacles. There are
already several web services for online development jsfiddle.net for web
design or Koding.com. They offer something that could change the way we
see development from an OS, IDE and development environment. This saves a
lot of time. The use of the huge processing power of cloud platforms means
that there is virtually no compilation time. You can even forget your
machine, all you need in the end is a keyboard and a display.
We see only positive points, but if "Development as a service" is
really going to be the next step, we forget something very important.
Before a developer learns to code, he must understand the different steps
that lead to programming, what a computer has, what the operating system
is, how it does its job. All these facilities that we have put in place
are based on this knowledge. How will a programmer understand code
optimization? The security flow? How could he understand the interaction
of his code with his work environment if he doesn't use it?
It is true that we are not concerned for the moment, but the next
generation of programmers are. What do you think about that?