Re: What doesn't lend itself to OO?

From: Cristiano Sadun (cristianoTAKEsadun_at_THIShotmailOUT.com)
Date: 08/16/04


Date: 16 Aug 2004 08:04:09 GMT


"H. S. Lahman" <h.lahman@verizon.net> wrote in
news:Dl8Tc.118$iE3.43@trndny09:

> I don't know Occam at all and I am only passingly familiar with Java.
> But as I recall there are are specific language constructs for things
> like threads. I would argue that qualifies as 3.nGL. Because all
> OOPLs provide abstractions beyond procedures and block structures,
> they are all 3.nGLs where n -> 0. OTOH, if a language has explicit
> abstractions for concurrency, IMO that would bring n closer to being
> 4GL. So my specification of "general purpose 3GL" may have been a bit
> too facile.

Ok, all's clear now. Incidentally, Occam allows to specify different
processes (it was the language for Inmos' transputers in the 80s or 90s, I
dont recall anymore). Insofar I know, Java was the first one to incorporate
threading directly at language level (instead of using an o/s level
service), with a Thread class and synchronization primitives but I might be
wrong here. Ada also does tasks, and has a "rendezvous" concept - but in
Ada we should be talking about processes, not threads (but again I am not a
Ada expert, so I might be corrected).

>
> <aside>
> In addition, if the representation includes concurrency and/or
> asynchronous processing as a fundamental part of its execution model,
> I would be tempted to regard that as a true 4GL.

Might be. Actually the Nth generation thing is a bit blurred (at least on
the web) - I did a quick search and found different definitions. For
example, the ones found in the wikipedia,
http://en.wikipedia.org/wiki/First-generation_programming_language
are copied by lots of resources but there are many (as
http://searchsmallbizit.techtarget.com/sDefinition/0,,sid44
_gci211502,00.html) which do include Java.

Indeed, it's just a matter of agreeing on the definition.

> Translation quality
> OOA models have UML profiles that fully incorporate asynchronous
> execution semantics; one can't even express synchronous behavior
> invocation. But they don't include a concurrent execution semantics
> because concurrency is a response to nonfunctional requirements (OOD).
> So it is tough to argue such models are beyond, say, 3.8GL. B-))
> </aside>

> I also suspect that
> the majority of Java developers do not use the concurrent facilities
> nor even employ an asynchronous mindset to the software construction.

I sincerely hope you're wrong here, but judging from lots of Java questions
which I hear around (and the associated code), I fear you're not. :)

> I probably should have said, "... today there in nowhere to
> execute...".
> B-) While different computational models may someday be implemented
> in the hardware, I wouldn't hold my breath. That's because Turing/von
> Neumann machines have the virtues of both simplicity and generality
> that form a very good base for mechanical computation. So, as a
> practical matter, I don't see any paradigm shifts in the offing.

Agreed. :)

> [As a corollary, nobody has figured out how to optimize multiprocessor
> code yet using the very simple T/VN model, so I think it would require
> substantial hubris for anyone to seriously propose making the hardware
> model more complicated. B-) Of course, if one came up with an even
> simpler model...]

I wouldn't have a clue, so I take your word. :)
Agreed on all the rest.



Relevant Pages

  • Re: Future language support for concurrency
    ... better Java support for concurrency based on my experiment with STM". ... I am well aware of the language means that has been proposed so far ... You can do STM without any of the things I could propose. ...
    (comp.programming.threads)
  • Re: Future language support for concurrency
    ... better Java support for concurrency based on my experiment with STM". ... I am well aware of the language means that has been proposed so far ... not for SMT, however. ...
    (comp.programming.threads)
  • Re: Inheritance and Polymorhpism (getting back to the point)
    ... >> Java reflection does not make Java a dynamically typed language for ... >> the same reason that pointers to functions in C don't make C an OO ... >> language. ... Yes - you could argue that way. ...
    (comp.object)
  • Re: Branching Out / "Diverging" from Delphi
    ... I guess people will argue on what language is better suited for this ... but the indicatives are very strong. ... offers are not always related to C#, they are equally divided among java, ...
    (borland.public.delphi.non-technical)
  • Re: you cant get in trouble with your boss for picking C#
    ... Java has turned out to be a very successful language. ... Ruby will get to the point of stability which Java enjoys now. ... You can argue the benefits of different languages until you're blue in the ...
    (comp.lang.ruby)