I wrote a proprietary 4GL based on C for multiple platforms for 20 years when there were few standards. It’s doable and maintainable, especially with the standards that exist in the industry today.
The problem, IMHO, is that today’s application programmers - as opposed to systems programmers who write the OS, kernels, device drivers, etc. - are incapable of handling the stack. They code in languages that handle everything for them. It makes for great, object-oriented, reusable code, but it means they’re totally unaware of what’s under the hood. They also have no idea how to open a socket or listen to a port.
The author wrote the article as if the Unix architecture is limited to one kernel/OS per server. It’s not.
I'm impressed.
Its doable and maintainable, especially with the standards that exist in the industry today.
Maintainable? Can you pull out your C compiler and compile the source w/o modification today? How about using another C-compiler?
The problem, IMHO, is that todays application programmers - as opposed to systems programmers who write the OS, kernels, device drivers, etc. - are incapable of handling the stack. They code in languages that handle everything for them. It makes for great, object-oriented, reusable code, but it means theyre totally unaware of whats under the hood. They also have no idea how to open a socket or listen to a port.
I generally agree here -- though let's not kid ourselves: Object Oriented isn't always the best choice.
I think really what we're seeing is a failure in the CS-education system; it is surprising how many languages don't have something like Ada's subtype -- and how many CS graduates don't grasp how useful it is to be able to exclude values. {IE in Ada Positive is a subtype (of Integer) that has the additional constraint of only having values greater than zero.} Any CS battery of coursework ought to include enough Math to make the advantages thereof obvious.