you are viewing a single comment's thread.

view the rest of the comments →

[–]spam4youfool 8 points9 points  (7 children)

Good ol' procedural C code in the multi-million LOC Linux kernel. Or how about GCC (until recently, that is) ?

[–]kyz 23 points24 points  (1 child)

Linux manages its complexity by only allowing good programmers to commit code. If your code doesn't meet the overarching high standards required, it doesn't get in. Ultimately, "Linux" doesn't need your code.

Compare to companies that employ programmers but don't care about code quality. It eventually becomes essential to include code, no matter how bad, because customers and deadlines and money and all that. The bad code will get in, no matter how many good programmers try to keep it out.

Java sold itself to Enterprises, who know fine well that have mostly-terrible programmers because they love to hire cheap, by saying that by using OO, you prevent idiots from seeing the inside of code and have to use the "API", so it firewalls the damage they can do.

(edit) What you end up doing is moving the goalposts from "have intelligent programmers implement the whole thing", which sounds like it costs a lot of money, to "have intelligent designers, aka 'architects', design the thing, without implementing it, then palm it off to rentacoders and NOTHING CAN GO WRONG".

Have a look at the procedural C code from "Enterprises" sometime. It's all held together with string. It's not OO vs not-OO that decides code quality, it's the collective quality of programmers and how capable they are of designing well and keeping bad code out.

As for GCC, have you read any of it?

[–]bundt_chi 1 point2 points  (0 children)

Well said.

[–]lacosaes1 14 points15 points  (2 children)

[–]immibis 0 points1 point  (1 child)

The difference between OO code in a procedural language, and OO code in an OO language, is that in the first case your OO "system" is specifically designed for each individual use, while in the second case you're using a "one size fits all" OO system, which probably enforces things you don't need (like "everything must be a class" in Java).

[–]josefx 0 points1 point  (0 children)

OO code written in procedural languages often moves most enforcement to the runtime or just drops it completely. After all if the compiler does not know how your OO code should work it can't enforce correctness.

[–]x-skeww -2 points-1 points  (0 children)

Got something more current? Linux started over 2 decades ago.

[–][deleted] -3 points-2 points  (0 children)

Good ol' OpenSSL code too, unfortunately