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
Smalltalk, Simula, and more recently languages like Ruby are
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
> >>> 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