(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 MainstreamLanguages:
- 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
MainstreamLanguages:
Up-and-coming:
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