(Here I go...poking a stick in a hornet's nest.) A MainstreamLanguage is one which is widely and generally used in production code, often without any serious analysis as to whether or not it's appropriate. Mainstreamness, it should be emphasized, is a measure of ''popularity'' rather than ''intrinsic quality''. (Many would say the two are in fact in opposition--the users of SmalltalkLanguage and LispLanguage having a rather legitimate gripe here). Attributes of MainstreamLanguage''''''s: * An ArmyOfProgrammers is available for the hiring. * One or more ForDummies books has been written for the language; books on the language are readily available at "mainstream" booksellers such as BarnesAndNoble or Borders. Entire sections are devoted to the language at places like PowellsTechnicalBookstore. * Job postings typically require 5+ years experience in the language. ** Jobs postings requiring "5+ years experience in Java" appeared in the want-ads almost immediately after the first public release of JavaLanguage. Not a comment on Java; instead a comment on recruiters and HR departments. ''I've seen this same scenario lately with CeeSharp...'' * Language is selected for implementation (even in the absence of a ''bona fide'' legacy requirement) just because that's what the shop is most familiar with--no matter what the problem. * Courses in the language are readily available from community colleges, technical schools, and consulting companies. * Language exists on many different platforms, with lots of tools, libraries, and the like available (unless the language is a MicroSoft invention). Examples of MainstreamLanguage''''''s: * CeePlusPlus (though use in the enterprise seems to be decreasing; see LegacyLanguage) * CeeLanguage (ditto the above. Still the language of choice for SystemProgramming, despite the existence of arguably superior alternatives. Still the universal LowestCommonDenominator; virtually any other language has some mechanism for calling C code). * JavaLanguage * VisualBasic * PerlLanguage Up-and-coming: * CsharpLanguage * PythonLanguage * RubyLanguage? ''*sigh* I wish'' RubyOnRails may be your fairy godmother * SmalltalkLanguage? There is a definite renaissance in Smalltalk; though it still hasn't achieved "critical mass" yet. ---- '''Comments''' * FortranLanguage needs a mention here. It is not necessarily the language for new programs, but so many numerical components are available for it that it will still be needed to maintain and develop these for new hardware, even if the top level code which calls the routines are written in something else. The problem will be when the oldies like me retire. There will need to be a renewal of skills in Fortran. --JohnFletcher ---- There's more to MainstreamLanguage than listed here. It is perfectly rational for management to insist on use of a MainstreamLanguage, because: * The compiler or interpreter for a MainstreamLanguage has had enough use that most bugs will have been fixed * The libraries, ditto * If the implementation platform changes (e.g. from MIPS to Itanium ...) you know that a good-quality, well-debugged, standards-compliant implementation of MainstreamLanguage will be available on the new platform * (the last point assumes that people have enough sense not to think of proprietary languages as "Mainstream"). See LanguagesOfChoice ---- CategoryProgrammingLanguage