Programming language failings [was Re: strangest systems I've sent email from]

Ian S. King isking at uw.edu
Fri Apr 29 20:02:15 CDT 2016


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."


More information about the cctalk mailing list