For what it's worth, I believe that CGI are becoming obsolete, not because of lack of power, but because developers are too lazy to work with a real language. In the past 10 to 15 years, "toy" languages turns more and more powerful, the hardware is becoming cheaper, and users are turning into sheep.
These toy languages come at a (very) high cost, a heavy overhead to your design. That impacts performance and uselessly hides the underlying architecture of your system ("I just click '
Run' in my IDE and everything works like magic!").
CGI is not "
FUCKING OUTDATED !!!!!":
people are morons and the web is a
major mess. And since everything hopelessly repeats itself in the programming world, I'm willing to bet that 10 years from now, everyone will be coding Apache modules instead of webapps all over again.
The first decade of this millenium will be remebered as the "
lazy years of programming". Developers want to code something "quickly" with "minimal efforts". Then they make a crappy web app, figure out a way to monetize their idea, attract traffic, watch their cheap VPS crumble under the load, hire a consultant with an MBA charging 500$/hour, he suggests they get an Oracle database because it's "better", developers figure they might as well move to the whole Java stack, hires young grads (me!) and now I have to maintain your crappy code all day. But we don't call it "crappy", we call it "legacy" so we can create a new bogus field full of "consultants" and "experts" who wrote books and gave presentations (wearing a suit). MBA schools are happy, enrollment has never been higher.
@eurybaric: You read about CGI, means you probably came across old documentation. CGI was the way to go for dynamic programming (understand generating html pages on demand, instead of presenting static pages). CGI consisted (mainly) of calling an executable (traditionally written in C) from a small script (traditionally Perl) patched onto your webserver (often Apache).
Today this sounds too complicated for most people, so they rather create a small app in a "modern" language. To do so they use "web frameworks" an enormous package of (mostly useless) code that does most of the work for you anyway. However I completely agree with xterm on recommending against learning CGI today:
- CGI is not very used anymore and is not evolving very rapidly anymore.
- CGI will give you headaches. It is clearly more difficult.
I personally recommend learning
Python or
Ruby over PHP. PHP is getting old, it never really recovered from the PHP6 fiasco and apart from a shaky OO system, it has nothing really modern to present.
Also I will not answer your question about Flash, because they're going to call me a troller.
PS: Drop Flash, it's crap.