comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Ada 2005?
Date: Mon, 27 Dec 2004 20:44:41 +0100
Date: 2004-12-27T20:44:41+01:00	[thread overview]
Message-ID: <1myqjpkliibqc$.qwe4gdpt4pi0.dlg@40tude.net> (raw)
In-Reply-To: m3is6nwtw0.fsf@rigel.goldenthreadtech.com

On 27 Dec 2004 12:09:03 -0500, jayessay wrote:

> "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> writes:
> 
>> On 23 Dec 2004 13:09:34 -0500, jayessay wrote:
>>>>> For true MD, that requires solving the halting problem in any Turing
>>>>> complete setting.
>>>> 
>>>> What about any proof?
>>> 
>>> One Hint: I/O.  There are many others.
>> 
>> You should define MD in a way which would not involve the Great Theory of
>> All, otherwise anything would become unsolvable...
> 
> Your comment is irrelevant on a number of counts.  I/O is hardly the
> "Great Theory of All", it is simply a part of the real world.  As
> another hint: classwide parameters.

If you have no definition, then there is nothing to discuss.

>>> However, these rules really have nothing to do with restricting
>>> "dynamic declarations" (Ada is static and so of course there are no
>>> dynamic declarations at all).
>> 
>> This is wrong.
> 
> So where can you _declare_ a new entity at runtime?

See ARM 3.1.

>> Not all dynamic declarations are of primitive operations.
>> Ada is a statically *typed* language.
> 
> Yeah.  So?

So dispatching is not equivalent to halting problem.

>>> That's completely irrelevant to the problem.  The issue is whether any
>>> given actual call will find a match in the table.  The tables are
>>> trivial, it is the flow analysis that is (in the general case)
>>> impossible.
>> 
>> We have different general cases. Ada is not a dynamically typed language.
>> The reason for that was: not to have your "general case".
> 
> The general case is simply one where you cannot determine at compile
> time things like uninitialized variables,

Class-wide variables cannot be left uninitialized.

> the specific type of a class
> wide variable at any given point in time, etc.

Present us any example of (but not one classified as a bounded error).

>> case, it is trivial to find a match. Moreover it requires bounded time.
>> Otherwise, I guess polymorphic calls would never be adopted in Ada. The
>> problems with implementation of MD in Ada lie elsewhere.
> 
> MD is irrelevant to to this point, which is the need for runtime
> exceptions.

So it has nothing to do with halting problem? Fine. Then what's the point?

> Ada has these and you can easily get them with it's
> polymorphic calls (which cannot be MD), i.e., Constraint_Error can be
> raised.  What's more, some of these constraint errors are _exactly_
> the equivalent of "method not found"

Nope, in Ada it is the equivalent of "method is final and defined to raise
Constraint_Error". It is a fundamentally different case.

>>>>> Second, Ada has no MD. That is a fact.
>>>> 
>>>> MD = "more to have than one dispatching parameter".
>>>> 
>>>> So clearly, Ada has MD.
>>> 
>>> Ah, so you define it away.  MD = "Multiple Dispatch" in the orignal
>>> context of this thread which is /= more than one dispatching
>>> parameter.  This should be obvious.  Ada does not have MD, to argue
>>> otherwise just makes you look silly.
>> 
>> Care to give another definition of MD?
> 
> No, the original, as I noted here was and is the one under discussion
> and it is quite proper.

OK, I'll make it easier for you:

MD /= number of controlling parameters > 1 <=>
1) Exists MD with 1 or 0 controlling parameters; or
2) Dispatching subroutine with n>1 controlling parameters is not MD, but
SD, not D.

Go on!

>>>>> I've seen situations where this claim is completely at odds with
>>>>> reality.  Hence, your position would remove expressivity and force
>>>>> programmers into pounding square pegs into round holes.
>>>> 
>>>> Yes, this is exactly Ada's way (tm). Moreover, both pegs and the plate
>>>> are made of hard steel. So the programmer will spend a lot of time
>>>> pounding on.  This has an important educational effect. Maybe next time
>>>> [s]he will thinkfirst.
>>> 
>>> I don't think this is "Ada's way".  I sure hope it isn't because it is
>>> the dumbest thing anyone could advocate.  The "education" any
>>> intelligent person would get from this would be, "this language is an
>>> extremely poor means for expressing elegant correct solutions."
>> 
>> An *intelligent* person would notice difference in shapes.
> 
> The point is an elegant solution cannot be expressed cleanly without
> recourse to pounding because the language lacks the proper
> expressivity.

or that the person lacks some vital knowledge about software design...

> An intelligent person will notice and be annoyed that
> they are being required by the tool to pound away and/or to abandon
> their solution for a lesser one.

How do you compare solutions? Any metric?

> Which leads to, 
> 
>> The level of intelligence is inversely proportional to the time
>> spent on pounding...
> 
> Yes.  This means that in this case, intelligent people will _abandon_
> the tool (in this case the language) so that the elegant correct
> solution can be expressed without pounding.

Then you are in a wrong group. It seems that people in c.l.a are pretty
unintelligent to keep on using Ada, or maybe, there must be something wrong
with your theory...

>>>>> What you call "playing with fire", is simply another tool, with a well
>>>>> defined and specified protocol.  Can it be abused?  Yes.  Does it
>>>>> require someone above average to use it properly?  Most likely.  Can
>>>>> it be exactly the right thing for an elegant solution to a thorny
>>>>> problem?  Yes.
>>>> 
>>>> Bottom line:
>>>> *rejected*
>>> 
>>> Bottom line: You will not be able to solve a large class of (non
>>> trivial) problems as they will require far too much work to find a
>>> means to express their solution.
>> 
>> Which quote "would require someone above average to use it properly". How
>> much above?
> 
> The question you pose is (mis)leading and pretty irrelevant.

I like irrelevant questions so much...

> A
> slightly better question would be "how many such people do you need?"
> Answer: enough.  This is not a facetious answer as the requirements
> will vary from project to project, but typically you will not need
> more than a few.

Refraining from yet another irrelevant question, I immediately deduce that
"few" = "enough".

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de



  reply	other threads:[~2004-12-27 19:44 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-12-18  4:27 Ada 2005? conradwt
2004-12-18  8:08 ` Martin Dowie
2004-12-20 20:06   ` conradwt
2004-12-21  6:51     ` Martin Dowie
2004-12-18  8:47 ` christov
2004-12-19  3:28   ` Randy Brukardt
2004-12-19 19:11     ` christov
2004-12-19 22:07       ` Ada User Journal (was: Re: Ada 2005?) Dirk Craeynest
2004-12-19 22:34         ` Ada User Journal Florian Weimer
2004-12-20  9:19           ` Martin Krischik
2004-12-20 11:02             ` Florian Weimer
2004-12-20 12:22               ` Thomas Hühn
2004-12-27 13:16                 ` Florian Weimer
2004-12-21  0:15   ` Ada 2005? David Botton
2004-12-18  8:51 ` Martin Krischik
2004-12-18 16:03 ` Dmitry A. Kazakov
2004-12-20 18:49   ` conradwt
2004-12-20 20:10     ` Dmitry A. Kazakov
2004-12-20 23:44       ` jayessay
2004-12-21  1:26         ` Alexander E. Kopilovich
2004-12-21  8:31           ` Dmitry A. Kazakov
2004-12-21 17:24           ` jayessay
2004-12-21  8:11         ` Dmitry A. Kazakov
2004-12-21 17:10           ` jayessay
2004-12-21 17:12             ` Dmitry A. Kazakov
2004-12-21 21:42               ` jayessay
2004-12-22  8:55                 ` Dmitry A. Kazakov
2004-12-22 18:02                   ` jayessay
2004-12-22 19:10                     ` Dmitry A. Kazakov
2004-12-23 18:09                       ` jayessay
2004-12-24  9:41                         ` Dmitry A. Kazakov
2004-12-27 17:09                           ` jayessay
2004-12-27 19:44                             ` Dmitry A. Kazakov [this message]
2004-12-27 21:51                               ` Georg Bauhaus
2004-12-28  9:56                                 ` Dmitry A. Kazakov
2004-12-28 17:56                                   ` jayessay
2004-12-28 17:48                                 ` jayessay
2004-12-28 17:36                               ` jayessay
2004-12-21  8:33     ` Martin Krischik
2004-12-21 15:34       ` jimmaureenrogers
2004-12-21 15:53         ` Martin Krischik
2004-12-22  9:34           ` Larry Kilgallen
2004-12-22 11:01             ` Martin Krischik
2004-12-22 12:52               ` Larry Kilgallen
2004-12-22 16:38                 ` Martin Krischik
2004-12-23 23:05       ` conradwt
2004-12-24  9:24         ` Pascal Obry
2004-12-24  9:59         ` Martin Krischik
2004-12-18 19:31 ` Jeffrey Carter
2004-12-20 18:55   ` conradwt
2004-12-20 23:53     ` Jeffrey Carter
2004-12-21  0:25       ` David Botton
2004-12-19  3:16 ` Brian May
2004-12-20 23:38   ` jayessay
2004-12-21 21:42     ` Brian May
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox