At an internship I had back in university, I worked for a tiny startup where the CEO imposed the following restrictions:
* No STL ("too slow", and other reasons) -- had to roll our own giant, buggy core library
* No member variables ("compilation too slow") -- had to put everything in a predeclared struct, have a pointer to it, new+delete every ctor/dtor
* Wasn't allowed to use "configure" -- instead, we'd be forced to run ./configure, and commit the results into CVS; our 64-bit build didn't work so well
* Everything must be written in C++ -- even stuff that's usually written using simple shell scripts ("makes everything easier to understand")
* On Windows, we had to use Visual Studio 5.0 -- couldn't use any parts of C++ not supported by that compiler
* Everything was written in-house -- including 4 networking libraries. Three of them by the same person.
* No STL ("too slow", and other reasons) -- had to roll our own giant, buggy core library
* No member variables ("compilation too slow") -- had to put everything in a predeclared struct, have a pointer to it, new+delete every ctor/dtor
* Wasn't allowed to use "configure" -- instead, we'd be forced to run ./configure, and commit the results into CVS; our 64-bit build didn't work so well
* Everything must be written in C++ -- even stuff that's usually written using simple shell scripts ("makes everything easier to understand")
* On Windows, we had to use Visual Studio 5.0 -- couldn't use any parts of C++ not supported by that compiler
* Everything was written in-house -- including 4 networking libraries. Three of them by the same person.
The list goes on. *Hits the bottle