"It would take me a week to develop application XXX in C, 2 or 3 days in Java, and a day in Perl, PHP, or Python."
So I say when I'm
teaching Perl,
PHP or
Python.
What do I say when I'm teaching
C,
C++ or
Java? The same thing! But there are qualifications / differences / reasons and just because it takes much longer to develop a new application in C or Java, it doesn't mean that you shouldn't do it.
Perl, PHP and Python are all excellent languages for developing "glueware" code - and the majority of applications these days are what I describe as "glueware". That's data manipulation scripts, web server code for mining information from and updating databases, and so on and so forth.
I don't describe major system development as glueware though - for example, if I was developing a major banking system I wouldn't call it a glueware application and I might be tempted to look at a language such as Java or C++. Why, when I've already stated that Java is so much slower to develop? It's because Java is much more controllable - in other words, the encapsulation and interfacing is much more tightly defined and you can have separate developers write and test each building block, then expose only the necessary minimum of methods and code to the users of that building block. Maintenance should be easier, and code re-usabiity much higher, which goes quite some way to compensate for the extra development time. But Java code doesn't run particularly fast - so it might NOT be the answer for systems that are going to be heavily loaded.
C programs are written at a level that's much "closer" to the machine - this gives them the advantage that they're able to be very clever and to run faster - if you put the effort in - than any of the other languages that I've mentioned. And C++ builds on top of C to give a fast, close yet Object Oriented language - at the expense of some complexity and the need for a great deal of care and testing of code to ensure that you don't have "memory leaks" and the like. C remains an excellent choice for system level software and C++ for major systems and application suites that are going to be run on huge systems or in their thousands - where the cost of the slower coding can be offset against a very high utilisation in one way or another.
(written 2005-05-20, updated 2010-05-16)
Associated topics are indexed under
C101 - C and C based languages - Introduction to C [2842] Staring a C course with Hello World - why? - (2010-06-30)
[1933] Learning to Program in C - (2008-12-10)
[885] Why do we still need C? - (2006-10-03)
[336] Targetted Advertising - (2005-06-05)
[318] Choosing a theme - (2005-05-20)
[304] Training courses in the C language - (2005-05-07)
C231 - C and C based languages - Introduction to C++ [3250] C++ - how we teach the language and the concepts behind the language - (2011-04-17)
[3069] Strings, Garbage Collection and Variable Scope in C++ - (2010-11-25)
[3053] Make - automating the commands for building and installing - (2010-11-16)
[3052] Getting your C++ program to run - (2010-11-15)
[2845] Objects and Inheritance in C++ - an easy start - (2010-07-01)
[2169] When should I use OO techniques? - (2009-05-11)
[2004] Variable Scope in C++ - (2009-01-22)
[928] C++ and Perl - why did they do it THAT way? - (2006-11-16)
H101 - Introduction to PHP [3025] Learning to Program ... in PHP. Course examples. - (2010-11-01)
[2097] PHP Course - for hobby / club / charity users. - (2009-03-22)
[1958] PHP - Parse error: syntax error, unexpected $end ... - (2008-12-23)
[1753] Perl v PHP, choosing the right language - (2008-08-14)
[1717] Q - Should I use Perl or Python? - (2008-07-23)
[1198] From Web to Web 2 - (2007-05-21)
[1050] The HTML++ Metalanguage - (2007-01-22)
[949] Sludge off the mountain, and Python and PHP - (2006-11-27)
[924] The LAMP Cookbook - Linux, Apache, MySQL, PHP / Perl - (2006-11-13)
[917] Syntax checking in PHP - (2006-11-07)
[846] Is Perl being replaced by PHP and Python? - (2006-08-27)
[795] Remember a site's non-technical issues too - (2006-07-07)
[789] Hot answers in PHP - (2006-07-02)
[712] Why reinvent the wheel - (2006-05-06)
[691] Testing you Perl / PHP / MySQL / Tcl knowledge - (2006-04-19)
[646] PHP - London course, Melksham Course, Evening course - (2006-03-14)
[629] Choosing the right language - (2006-03-01)
[624] It's REALLY easy to add a little PHP - (2006-02-26)
[577] Learning to program in Perl or PHP - (2006-01-26)
[433] FTP - how to make the right transfers - (2005-09-01)
[382] Central London Courses - Perl, PHP, Python, Tcl, MySQL - (2005-07-18)
[380] Bridging to the customer requirement - (2005-07-16)
[341] Happy Birthday, PHP - (2005-06-09)
[135] Too many Perls - (2004-11-30)
[132] Portrait of the author - (2004-11-27)
[124] PHP v Java - (2004-11-20)
[93] Case Sensitive? - (2004-10-19)
[55] Evening classes to learn PHP - (2004-09-19)
[48] PHP - onwards and upwards - (2004-09-14)
J601 - Java Introduction [2536] All the Cs ... and Java too - (2009-12-13)
[2423] What is a JVM, a JRE, a JDK - components of the core Java Environment - (2009-09-26)
[2115] Finding your java program - the CLASSPATH variable - (2009-04-02)
[1908] Java CLASSPATH explained - (2008-11-26)
[1766] Diagrams to show you how - Tomcat, Java, PHP - (2008-08-22)
[1557] Trying out our Java examples on our web site - (2008-02-27)
[1497] Training Season Starts again! - (2008-01-07)
[1466] Effective Java training - the bootcamp approach - (2007-12-09)
[1418] A Golf Club Decision - Perl to Java - (2007-11-01)
[1158] Private Java Course - A customer's pictures - (2007-04-22)
[1049] Java 6, Apache Tomcat 6. - (2007-01-21)
[871] Java oversold? - (2006-09-19)
[792] Is Java the right language to learn? - (2006-07-04)
[111] Training notes available under Open Distribution license - (2004-11-07)
[25] Release numbers - (2004-08-23)
P201 - Perl - Introduction [2832] Are you learning Perl? Some more examples for you! - (2010-06-27)
[2812] What is Perl? - (2010-06-15)
[2070] Converting to Perl - the sort of programs you will write - (2009-03-08)
[1852] Perl and Blackberries - (2008-10-23)
[743] How to debug a Perl program - (2006-06-04)
[604] Perl - multiprocess applications - (2006-02-13)
[594] Twice is a co-incidence and three times is a pattern - (2006-02-07)
Y101 - Introduction to Python [1663] Python in an afternoon - a lecture for experienced programmers - (2008-06-01)
[1375] Python v Ruby - (2007-10-02)
[950] Python and the Magic Roundabout - (2006-11-27)
[909] Python is like a narrowboat - (2006-10-30)
[834] Python makes University Challenge - (2006-08-15)
[753] Python 3000 - the next generation - (2006-06-09)
[745] Python modules. The distribution, The Cheese Shop and the Vaults of Parnassus. - (2006-06-05)
[710] Linux training Glasgow, Python programming course Dundee - (2006-05-05)
[444] Database or Progamming - which to learn first? - (2005-09-13)
Some other Articles
Sales - the alternative closeOrdnance Survey - using a 'Get a map'Accommodation and landing pagesProgramming languages - a comparisonDevelopment EnvironmentsSupporting local businessWhat language is this written in?Making bona fide international marriages more difficultMaud Heath