I am sure, that people over-estimates benefits of object-orienting and
modular software. Cisco IOS is a very good example of old fashioned, VERY
If it was written on C++ with templates and other tricks, it will have 10
times more bugs (good example - MS Windows, full of small bugs, which are
not so important in GUI software but are fatal for the router).
Every software has bugs and I think that IOS is a great example of it
It is not an occasion, that Cisco did not release modular IOS yet. Of
course, you _must_ know, how to program on plain C and plain F77, instead of
knowing only VC wizard
and GUI studio (the worst thing I ever saw was old MS visual studio). So, it
can be very useful..
(It does not mean, that object orienting programming is bad - it is just one
more solid programming approach, tool - but it is not the only tool in the
As you cut away my message you probably didn't read it correctly as I
have not mentioned object-orientation nor C++ or anything related in any
"Cutting into pieces and keeping things seperate" is another way to
describe modularisation. It is also one of the things where many UNIX
kernels have a problem with where everything is sticking to everything
and having a relation with each other. But that is of course a mentality
and design issue in picking a nano- over a micro- or over a monolithic
kernel. General thought about design issues have changed a lot and will
always be changing, that is what we call evolution
This still has nothing to do with C++ or Visual anything, also trying to
go into the "MS makes bad code" direction is really lame, every single
vendor makes mistakes and most of them also fix them, some are just more
popular and in common use than others and thus they get noticed better.
Every tool has it's own purpose, you will just have to use the right
tool or just an even bigger hammer. In the IOS case though even the
biggest hammer isn't good enough to slam it into something good
But that is why Cisco evolved to the new IOX thingy.
</end of history lesson>