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
next prev parent 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