OO is a big issue here. Or rather, in general. I have read "The Art of Unix Programming", where a very big fuss is made over object-orientation. It's like they want to take a really big gun that means big business, and shoot it. Ever since reading that, I yelp whenever I see it mentioned, and squint in suspicion at the offender. So when a titan like Wirth endorses it.. ..there is obviously something of great importance that needs to be clearly understood, and that is -not- obvious.
The same thing when I see mentions of C++. Except that I haven't yet found endorsements of it from anybody of Wirth's stature. Sites like suckless really do not help.
No, not in the conventional sense. It is written in a strict dialect of ISO/ANSI C. In a wider sense, its general design of making all its ``objects'' look like files to which one talks in a well-defined protocol shows a related approach. "
Raymond argues in the referenced book that while OOP has value in specific domains, its benefits have been oversold and its typical usage often conflicts with the core Unix philosophy of simplicity and transparency. I think that's a valid position, and hyping and overselling is a continuous fad in the programming industry, which is famously susceptible to what Fred Brooks called the "Silver Bullet" syndrome: the desperate search for a single magical technology that will solve the inherent difficulties of software engineering. The "simplicity and transparency" Raymond champions are indeed virtues, but they are also slogans used to rally a specific community. Just as "Memory Safety" is the rallying cry for Rust today, "Small is Beautiful" was the rallying cry for Unix in the 1970s.
The industry seems to advance not by finding a static "truth," but by lurching between opposing philosophies, each powered by its own wave of activism. I recommend to ignore the "moral" arguments, but to focus on the engineering trade-offs. Most "revolutions" are just rediscoveries of old ideas. Functional Programming is largely Lisp (1958) re-branded. The "Anti-OO" movement is partly a return to procedural modularity (Pascal/C). Our job is not to be "pure"; your job is to build working, maintainable software using the best tools we can find for the specific problem at hand.
To clarify, you obviously understand OO better than most, certainly much much much better than I do. I happen to have Wirth's book on oberon here, have started reading it. So possibly, eventually, I will reach your level. :-)
"Simpler is not automatically better. If a language is too "simple" (i.e. minimalist), the complexity often shifts from the language specification to the application code, requiring more boilerplate or "clever" tricks to solve complex problems."
..fascinating..
..it always comes down, again and again, to what is the problem you need to solve, and from there, what is the best solution. And at that point, once you have identified the problem.. in a way it's a toss-up whether you implement your own solution, or just happen to have heard of a solution to a similar or equivalent (or the same) problem, developed by somebody else. ..or how willing you are to dig in search of said hypothetical already-existing solution. And said hypotheticals must then themselves be evaluated, which also takes time.
I am very curious at the moment about why my post shows up a lighter shade of gray than others. I have done some searching, and apparently this can have something to do with people down-voting something, maybe if it seems to contain disparaging comments. I described oberon as "dusty", could that be it? It wasn't meant to be disparaging. You see rust all over the place. If I hadn't been exploring the text editor vis referred to by suckless, I wouldn't have even known oberon existed.
I am -not- trying to criticize oberon. I am not trying to claim that rust is better. I am just looking for a comparison of the two, from the point of view of the particular poster I referenced. I would have responded to his comment directly if I could.
Thank you very much for your tip about ada. I'll check it out!
Your comments will not appear grey unless downvoted more so than upvoted, and that grey will be seen by others but not be seen by you while you are still logged in.
Your account name is new and so appears in green which some users will scrutinize until they are confident it is not a bad actor.
The same thing when I see mentions of C++. Except that I haven't yet found endorsements of it from anybody of Wirth's stature. Sites like suckless really do not help.
Related: https://plan9.io/wiki/plan9/lfaq/index.html#HARDWARE_AND_SOF...
" Is it object-oriented?
No, not in the conventional sense. It is written in a strict dialect of ISO/ANSI C. In a wider sense, its general design of making all its ``objects'' look like files to which one talks in a well-defined protocol shows a related approach. "
reply