First of all, what do people mean when they talk about an IDE? They
usually mean one tool that helps automate the development and deployment
of an application. What does this involve? Since Web applications are
now the cutting edge, let us look at what it takes to develop and deploy
a Web application.
First, you need an editor for the language of
your choice. This should be capable of syntax highlighting, word
completion, running and creating macros, auto indenting, generating
closing tags if given opening tags, performing search and replace,
bookmarking, etc. The editor should also be able to do this for CSS,
HTML and JavaScript, which are essential to any Web programmer.
Second,
you need to compile/build and run the application, then debug it before
viewing the output and error tracebacks. You should also be able to
view hints for better programming practices and refactoring code,
besides viewing code diagrams and database schemas. Further, you need to
be able to set up and maintain the databases.
Then, you need a Web browser to view the finished product — one that can emulate the behaviour of all popular browsers.
Since
no sane programmer develops and deploys without a version control
system, you need to be able to maintain the system, as well as commit
and push code. Also, most people develop in a controlled virtual
environment, so you do need tools to control that environment,
especially the dependencies needed to install the application.
For
deployment, you need tools to access a remote server or servers, apart
from tools to deploy configuration files, start, stop or restart
services, and control and organise error messages and monitoring tools.
The
ideal IDE is an application that will do all of the above, and more.
(It would be great if it also served coffee on demand, but that is not
essential.) It is, of course, impossible for a single application to do
everything perfectly. At the most, it will do some things well, some
things passably and be substandard in some aspects — and may even not be
able to perform a few functions. So, you will have to compromise. You
may well ask why there should be just one application to do everything?
In the proprietary world, a sophisticated application does not come
cheap — so you often cannot afford more than one application.
More
important is the *nix philosophy that rather than have one omnibus
application that does everything, it is better to use many applications,
each of which does one thing only, and does it perfectly. In this
context, the best IDE ever, since its introduction more than a decade
and a half ago, is the Linux desktop — with as many monitors as your
system can support. And you can do each of the tasks mentioned above
with a separate tool that is designed precisely for the task at hand.
The
trouble with one single application that does everything is that it
needs multiple panes and windows — making it difficult to see what is
what, and, more important, you can only do one thing at one time. The
Linux desktop, spread over several monitors, enables one to do dozens of
things at the same time, each one with the perfect tool for the
allotted task. There is no space here for an elaborate discussion, but
here are two simple examples:
- You need to test the behaviour of your application on a browser — no inbuilt browser can ever simulate Firefox better than Firefox itself, so use Firefox.
- You happen to be learning something. You need to keep reading the tutorial, doing the exercises, and now and then, search the Net for solutions not covered by the tutorial. Solution: tutorial on one monitor, workspace on another, browser on the third, and email/IRC on yet another. With, of course, a whole lot of terminals open to monitor your servers and other processes. And yes, I forgot — maybe even your coffee machine hooked up to a USB port, churning out your favourite brew on demand.
No comments:
Post a Comment