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 <rwiker at gmail.com> wrote:
On 29 Apr 2016, at 22:31 , Diane Bruce <db at
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 <isking at 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."