For modern non-web applications, C/C++ (CeeCeePlusPlus
) remains the standard. See ProgrammingLanguagePopularity
Ah, SourceForge. Many people consider it a pathology of the OpenSource community that they write so much C/C++, often on the spurious grounds of "portability".
There are CeePlusPlus
detractors on this wiki.
- Usual bias against whatever language/company/product is the current standard.
- Usual objections to OOP
- Initial design problems with C++
- The imperfect nature of C++ evolution leading to some smelly implementations of modern OOP techniques
- Lisp/Smalltalk/Java evangelism
- Confusion about the roles of compiled vs ScriptingLanguages
- No language support (except for third-party libraries) for many domain-independent problems: graphics, networking, concurrency, etc.
- Low-level programming model introduces many classes of defects (WildPointers, for instance) simply not found in other languages
- Performance optimizations inherent in the language (or most implementations) make incremental or separate deployment of code problematic (see FragileBinaryInterfaceProblem).
- No reflection or introspection in the language.
- Strong preference for DynamicTyping found on this Wiki
At this point it is impossible to discount CeePlusPlus
or even claim it is dying.
I believe this is due to CeePlusPlus
's strongest point: It is the best fit (and most common) in the role of balancing high-level abstractions with low-level bit twiddling.
Countdown to a language debate in 3..2..1
Argg. Please don't let it become that. The point here is that CeePlusPlus
reigns, not because it's great, but because it's optimally ungreat.
- Smalltalk, indirectly, on the order of about an hour.
I agree, CeePlusPlusReigns... in the domain of static monoliths coded in CeePlusPlus. Oh my, that's circular. Yup.
Could you elaborate on static monolith? Do you mean LegacyCode
, independent applications, or code that is difficult to refactor?
Most common "foundational" applications are written in CeeCeePlusPlus
, bsd, WindowsOs
, iis, apache, samba, gnome, MySql
Even though many business applications are coded in JavaLanguage
, etc., it is difficult to imagine C/C++ not reigning till these foundations start being written in other languages. Nothing else seems to be efficient enough.
: this section has very little to do with C++ -- is there a more relevant page ? OperatingSystem
OperatingSystems written in something other than CeeLanguage
My understanding is that most OSes were written in AssemblyLanguage
, CP/M, MsDos
, ProDOS, MicrowareOsNine
, etc.) My understanding that the most *popular* OSes today (2004) are currently written in mostly C (not even C++ !).
(For example, Ken Thompson and Dennis Ritchie (right?) wrote the original UnixOperatingSystem
in PDP-11/20 AssemblyLanguage
, then rewrote it in C in 1973).
Since the conversion from assembly language to C was such an amazing success (and has a huge influence on computer architecture: most modern CPUs have been optimized for running C programs), some people wonder about writing an OS in some other language. How would the size (There is NoSuchThingAsSize
) of the SourceCode
depend on which language it was written in? How would computer architecture be different today if a different language had become dominant?
An OS built on JavaLanguage
, Inferno, or some other dynamic programming language [DynamicProgramming
??] wouldn't need a MMU. If any of those languages had become the dominant language (rather than C), computers would not have MMUs.
Here's the list:
JNode may also be relevant: http://jnode.sourceforge.net/
OperatingSystems built out of an InterpretedLanguage
Some are fascinated with the idea of an operating system built atop a dynamic ProgrammingLanguage
. Does such a thing already exist? It depends what you consider an operating system. Emacs qualifies for some, though it relies on a host operating system to do the low-level bit pushing. Squeak is usually the same, though there are versions of Squeak that run on bare metal. In that case, though, most of the low-level work is done in CeeLanguage
. Some implementations of ForthLanguage
probably qualify, having DeviceDriver
s and all operating system functions (such as they are) implemented in Forth itself. ---- It does depend partly on how much of the OS core has to be HighLevelLanguage to qualify. On one extreme would be systems where the user-space interface is the runtime of a HLL but all the kernel code is in C/assembler/whatever; on the other extreme are systems where every iota of kernel code is HLL. I suspect that SqueakNOS is actually a lot closer to the latter end of that range (modulo VMWare).
was always intended to be its own OperatingSystem
, and it ran as such on the original Smalltalk machines at XeroxParc
. According to DesignPrinciplesBehindSmalltalk
, "An operating system is a collection of things that don't fit into a language. There shouldn't be one."
Dynamic != interpreted. Most would call LispLanguage a "dynamic language", but every serious implementation these days supports compilation. Perhaps you are trying to make a connection between dynamic and interactive
Wait a minute... what the heck is C/C++? (See CeeCeePlusPlus
) There is no language of that name. Taking another look at SourceForge
, oh, it seems CeeLanguage
actually reigns. Possibly because it is the 'ScriptingLanguage
' of UnixOs
. ---- C was more the JavaLanguage of Unix, oriented to systems programming and "serious" applications work. The original ScriptingLanguage of Unix was, well, shellscript. PerlLanguage became the first modern scripting language when it gained the ability to replace shell in that role.
Looking at the 2005 figures at http://www.jroller.com/page/matsh?entry=java_history_was_made_today , CeeLanguage, CeePlusPlus and JavaLanguage together dominate Sourceforge, with roughly equal project numbers. Of the three Java is ahead by a nose.
Any real language is going to be TuringEquivalent
, and ScriptingLanguage
s definitely fill a different role than "applications". AssemblyLanguage
doesn't do high level easily and PowerBuilder
doesn't do low level easily, and I often wonder what the proper balance for a language is. I don't know anyone that claims CeePlusPlus
is some kind of ultimate grand language, and everyone can name a worse language... for any category. The nice thing about languages & standards is there are so many to pick from (see: AndrewTanenbaum
Of interest: PaulGraham