I would actually argue that C++, Java and C# are not object-oriented languages. They are languages with syntax that supports object-oriented programming - note that the original C++ was a preprocessor for a C compiler.
Smalltalk, Simula, and more recently languages like Ruby are object-oriented languages. You can write object-oriented code in any language, if you construct your code to express the abstractions of OO. It's easier, of course, in a language that has syntactic sugar like 'classes' or 'interfaces'. And IMHO C was designed for writing operating systems and tools, and that's where it shines. It's still highly relevant for embedded systems, for instance. Again IMHO, the quality of C compilers is such that the relative benefits/costs of C vs. assembler usually lean toward using C, because it does support higher-level abstractions (especially helpful on RISC architectures) and it can be written to be more transparent - bringing us back to the original point of how you use the tools. -- Ian On Fri, Apr 29, 2016 at 1:37 PM, Raymond Wiker <rwi...@gmail.com> wrote: > > > On 29 Apr 2016, at 22:31 , Diane Bruce <d...@db.net> wrote: > > > > On Fri, Apr 29, 2016 at 02:23:55PM -0600, Eric Smith wrote: > >> On Fri, Apr 29, 2016 at 12:59 PM, Ian S. King <isk...@uw.edu> wrote: > >>> C is a lot like that saw - it doesn't have a lot of guards on it, and > you > >>> can do stupid things. > >> > >> The problem is that C doesn't just allow you to do stupid things, it's > >> actively encouraged. C doesn't just let you aim at your foot, it > >> defaults to aiming at your foot. > >> > >> C is not bad as a fairly portable assembly language, but it is NOT a > >> high-level language. > > > > Yes it is known as a high level assembler. > > Taking this a bit further: > > C++ is an object-oriented, high-level assembler. > Java is an object-oriented, high-level assembler with support wheels. > C# is an object-oriented, high-level assembler with support wheels that > are not interchangeable with those of Java. > > At least C is a useful language for coding the lowest level of Lisp > implementations :-) > > > -- Ian S. King, MSIS, MSCS, Ph.D. Candidate The Information School <http://ischool.uw.edu> Dissertation: "Why the Conversation Mattered: Constructing a Sociotechnical Narrative Through a Design Lens Archivist, Voices From the Rwanda Tribunal <http://tribunalvoices.org> Value Sensitive Design Research Lab <http://vsdesign.org> University of Washington There is an old Vulcan saying: "Only Nixon could go to China."