Noeud « Next »: , Noeud « Previous »: Why the Tiger Project, Noeud « Up »: Introduction



1.3 What the Tiger Project is not

This section could have been named “What Akim did not say”, or “Common misinterpretations”.

The first and foremost misinterpretation would be “Akim says C sucks and is useless”. Wrong. C sucks, definitely, but today C is probably the first employer of programmers in the world, so let's face it: C is mandatory in your education. The fact that C++ is studied afterward does not mean that learning C is a loss of time, it means that since C is basically a subset of C++ it makes sense to learn it first, it also means that (let it be only because it is a superset) C++ provides additional services so it is often a better choice, but even more often you don't have the choice.

C++ is becoming a common requirement for programmers, so you also have to learn it, although given its roots, it naturally suffers from many defects. But it's an industrial standard, so learn it, and learn it well: know its strengths and weaknesses.

And by the way, of course C++ sucks++.

Another common rumor in EPITA has it that “C/Unix programming does not deserve attention after the first period”. Wrong again. First of all its words are wrong: it is a legacy belief that C and Unix require each other: you can implement advanced system features using other languages than C (starting with C++, of course), and of course C can be used for other tasks than just system programming. Note for instance that Bjarne Stroustrup's list of C++ Applications mentions that the following ones are written in C++:

Apple
OS X is written in a mix of language, but a few important parts are C++. The two most interesting are:
  • Finder
  • IOKit device drivers. (IOKit is the only place where we use C++ in the kernel, though.)[...]

Ericsson
  • TelORB - Distributed operating system with object oriented

Microsoft
Literally everything at Microsoft is built using various flavors of Visual C++ - mostly 6.0 and 7.0 but we do have a few holdouts still using 5.0 :-( and some products like Windows XP use more recent builds of the compiler. The list would include major products like:
  • Windows XP
  • Windows NT (NT4 and 2000)
  • Windows 9x (95, 98, Me)
  • Microsoft Office (Word, Excel, Access, PowerPoint, Outlook)[...]

CDE
The CDE desktop (the standard desktop on many UNIX systems) is written in C++.

Know C. Learn when it is adequate, and why you need it.

Know C++. Learn when it is adequate, and why you need it.

Know other languages. Learn when they are adequate, and why you need them.

And then, if you are asked to choose, make an educated choice. If there is no choice to be made, just deal with Real Life.