Re: Future reuse of code
"Karl Heinz Buchegger" <kbuchegg@gasca d.at> wrote in message
news:3F39F703.5 9068DA0@gascad. at...[color=blue]
>
>
> "Peter E.C. Dashwood" wrote:[color=green]
> >
> > To answer your very fair question (... and replaced by what?), I believe
> > that new methodologies for system development will arise in response to[/color][/color]
the[color=blue][color=green]
> > pressure from the Marketplace. I have already seen interesting[/color][/color]
departures[color=blue][color=green]
> > from traditional methods that achieved much faster results and were much
> > more flexible. The key to these approaches is a more RAD like process[/color][/color]
with[color=blue][color=green]
> > iteration and interaction by users. Currently, we have programmers and
> > "Quick Build" tools in the loop, but it is only a matter of time before
> > smarter software will take on these functions. Eventually, end-users[/color][/color]
will[color=blue][color=green]
> > interact with smart software to achieve what they want, and there will[/color][/color]
be no[color=blue][color=green]
> > programmer in the loop at all.
> >
> > There is far too much on this to go into here (sorry, I know that sounds
> > like a cop out, but I have been writing on this subject for some years[/color][/color]
now[color=blue][color=green]
> > and have been using alternative approaches in the real world in industry
> > with results that are very encouraging.), but I will close by saying[/color][/color]
that[color=blue][color=green]
> > everything I am saying is simply extrapolation from what is happening[/color][/color]
NOW. I[color=blue][color=green]
> > claim no psychic powers, just good observation and a lifetime of[/color][/color]
experience[color=blue][color=green]
> > in IT.[/color]
>
> Do you have some links on that subject?[/color]
Here are just two articles which give some insight into the technology which
I believe will enable the Future I have been describing:
https://www.aboutlegacycoding.com/Ar.../V3/V30501.asp (This is about what's wrong
with what we do now, in terms of development methodology...I t was the
attempt to break out of this way of working which suggested to me how things
might work in the future.)
https://www.aboutlegacycoding.com/Ar.../V3/V30201.asp (This is about the
direction I see programming technology going in. The emerging component
based systems will provide the basis for the User interaction I have been
postulating. Components are platform independent, small, with encapsulated
functionality and consistent and robust interfaces. These attributes are
just what is needed to respond to rapid change and provide flexibility.)
I'm sorry, these are links to just two of the articles I have written which
are pertinent. I don't normally promote my own work, but you did ask for
some links and these will at least give you an idea of where I'm coming
from.
[color=blue]
> I am personally interested in that subject. As you say: the old,[/color]
traditional[color=blue]
> textual representations of procedural programming is something which[/color]
requires[color=blue]
> skills, skills we cannot expect from ordinary users. I have thought about
> some sort of graphical programming. The problem seems to be: It is[/color]
relatively[color=blue]
> easy to come up with such a thing for a specific topic (eg. image[/color]
manipulation),[color=blue]
> but as I see it, it is hard to generalize this to general programming.
>[/color]
Yes, that's right. There are models where we can achieve a general result if
we use a Human in the loop. (Basically, the Human is providing the
intelligence and discernment to decide whether a given proposed result is
acceptable or not.) By the key processes of ITERATION and INTERACTION, a
better and better solution can be arrived at. (If you like, the solution is
"evolved" towards...this varies markedly from the "traditiona l" IT approach
where the solution is "designed" from scratch, then built.)
Consider this...
Small Businessman goes to the "computer shop" and purchases a "small
business computer".
(Let's assume he is a very competent Businessman and knows his trade
extremely well, but he isn't big on computer technology, apart from the
basic "computer literacy" that children are growing up with today...).
He gets home, unpacks the computer, uses an interactive DVD (or similar) to
connect everything up, and switches on.
B'man: "Print me an invoice."
Computer: "What's an invoice?".
(This is a contrived example because the machine would certainly "know" what
an invoice is...but bear with me a little longer...)
B'man: "An invoice is a document that records the details of a sale
transaction."
Computer: "Ah, I know about Sales. That is a transaction where a CUSTOMER
purchases a PRODUCT."
(The machine comes equipped with the "concept" of a CUSTOMER and a PRODUCT,
among others. It also recognises the transactions we would expect to be
associated with a small business.)
Computer: "So you will want details of the CUSTOMER and the PRODUCT on
this INVOICE?"
B'Man: "Yes."
Computer: "Like this...?"
(It produces a document...)
B'Man: "Yes, but I need to see how many and what the unit price was.
Then calculate the total and add Sales Tax."
Computer: "How's this...?"
B'Man: "That's right. Put the totals for each product in a separate
column. And move the name and address details to here." (He indicates on the
screen with his finger or a pointing device.) "Print the overall total
payable in blue."
Computer: "Like this..?"
B'Man: "Yes, exactly like that."
There are some assumptions in the above whimsy (the computer has certain
inbuilt "concepts" - [you could think of this as a set of components with
all the attributes and Methods of a CUSTOMER, for instance], a natural
language interface, a "test" database for each of its concepts, however, all
of these things are possible with today's technology, and what is currently
"bleeding edge" will be passe in 15 years...), but I don't think anyone with
a programming background would say it was "impossible " or "infeasible ".
Of course this demonstrates a solution to just one class of problem. There
are many others. But there are many other solutions also...
The bottom line is that "general" solutions ARE obtainable (note that in the
example above, we never know what particular "business" our "Businessma n" is
in...the solution works for ALL small businesses, or can be "tailored"
easily to accommodate exceptions to the "norm".)
The keys to success in this are Interaction and Iteration. The Human
provides the "intelligence". (It is really "discernment".. .)
But a time will come when the software will be capable of evaluating its own
results, matching them against stated requirements, rebuilding an entire
system in seconds to ensure that what is required is delivered. (Then doing
it all again, without complaint, when the User changes his mind <G>).
"Evolved" systems show every indication of being at least as good as
designed ones.
And they don't require computer skills on the part of the User.
Pete.
"Karl Heinz Buchegger" <kbuchegg@gasca d.at> wrote in message
news:3F39F703.5 9068DA0@gascad. at...[color=blue]
>
>
> "Peter E.C. Dashwood" wrote:[color=green]
> >
> > To answer your very fair question (... and replaced by what?), I believe
> > that new methodologies for system development will arise in response to[/color][/color]
the[color=blue][color=green]
> > pressure from the Marketplace. I have already seen interesting[/color][/color]
departures[color=blue][color=green]
> > from traditional methods that achieved much faster results and were much
> > more flexible. The key to these approaches is a more RAD like process[/color][/color]
with[color=blue][color=green]
> > iteration and interaction by users. Currently, we have programmers and
> > "Quick Build" tools in the loop, but it is only a matter of time before
> > smarter software will take on these functions. Eventually, end-users[/color][/color]
will[color=blue][color=green]
> > interact with smart software to achieve what they want, and there will[/color][/color]
be no[color=blue][color=green]
> > programmer in the loop at all.
> >
> > There is far too much on this to go into here (sorry, I know that sounds
> > like a cop out, but I have been writing on this subject for some years[/color][/color]
now[color=blue][color=green]
> > and have been using alternative approaches in the real world in industry
> > with results that are very encouraging.), but I will close by saying[/color][/color]
that[color=blue][color=green]
> > everything I am saying is simply extrapolation from what is happening[/color][/color]
NOW. I[color=blue][color=green]
> > claim no psychic powers, just good observation and a lifetime of[/color][/color]
experience[color=blue][color=green]
> > in IT.[/color]
>
> Do you have some links on that subject?[/color]
Here are just two articles which give some insight into the technology which
I believe will enable the Future I have been describing:
https://www.aboutlegacycoding.com/Ar.../V3/V30501.asp (This is about what's wrong
with what we do now, in terms of development methodology...I t was the
attempt to break out of this way of working which suggested to me how things
might work in the future.)
https://www.aboutlegacycoding.com/Ar.../V3/V30201.asp (This is about the
direction I see programming technology going in. The emerging component
based systems will provide the basis for the User interaction I have been
postulating. Components are platform independent, small, with encapsulated
functionality and consistent and robust interfaces. These attributes are
just what is needed to respond to rapid change and provide flexibility.)
I'm sorry, these are links to just two of the articles I have written which
are pertinent. I don't normally promote my own work, but you did ask for
some links and these will at least give you an idea of where I'm coming
from.
[color=blue]
> I am personally interested in that subject. As you say: the old,[/color]
traditional[color=blue]
> textual representations of procedural programming is something which[/color]
requires[color=blue]
> skills, skills we cannot expect from ordinary users. I have thought about
> some sort of graphical programming. The problem seems to be: It is[/color]
relatively[color=blue]
> easy to come up with such a thing for a specific topic (eg. image[/color]
manipulation),[color=blue]
> but as I see it, it is hard to generalize this to general programming.
>[/color]
Yes, that's right. There are models where we can achieve a general result if
we use a Human in the loop. (Basically, the Human is providing the
intelligence and discernment to decide whether a given proposed result is
acceptable or not.) By the key processes of ITERATION and INTERACTION, a
better and better solution can be arrived at. (If you like, the solution is
"evolved" towards...this varies markedly from the "traditiona l" IT approach
where the solution is "designed" from scratch, then built.)
Consider this...
Small Businessman goes to the "computer shop" and purchases a "small
business computer".
(Let's assume he is a very competent Businessman and knows his trade
extremely well, but he isn't big on computer technology, apart from the
basic "computer literacy" that children are growing up with today...).
He gets home, unpacks the computer, uses an interactive DVD (or similar) to
connect everything up, and switches on.
B'man: "Print me an invoice."
Computer: "What's an invoice?".
(This is a contrived example because the machine would certainly "know" what
an invoice is...but bear with me a little longer...)
B'man: "An invoice is a document that records the details of a sale
transaction."
Computer: "Ah, I know about Sales. That is a transaction where a CUSTOMER
purchases a PRODUCT."
(The machine comes equipped with the "concept" of a CUSTOMER and a PRODUCT,
among others. It also recognises the transactions we would expect to be
associated with a small business.)
Computer: "So you will want details of the CUSTOMER and the PRODUCT on
this INVOICE?"
B'Man: "Yes."
Computer: "Like this...?"
(It produces a document...)
B'Man: "Yes, but I need to see how many and what the unit price was.
Then calculate the total and add Sales Tax."
Computer: "How's this...?"
B'Man: "That's right. Put the totals for each product in a separate
column. And move the name and address details to here." (He indicates on the
screen with his finger or a pointing device.) "Print the overall total
payable in blue."
Computer: "Like this..?"
B'Man: "Yes, exactly like that."
There are some assumptions in the above whimsy (the computer has certain
inbuilt "concepts" - [you could think of this as a set of components with
all the attributes and Methods of a CUSTOMER, for instance], a natural
language interface, a "test" database for each of its concepts, however, all
of these things are possible with today's technology, and what is currently
"bleeding edge" will be passe in 15 years...), but I don't think anyone with
a programming background would say it was "impossible " or "infeasible ".
Of course this demonstrates a solution to just one class of problem. There
are many others. But there are many other solutions also...
The bottom line is that "general" solutions ARE obtainable (note that in the
example above, we never know what particular "business" our "Businessma n" is
in...the solution works for ALL small businesses, or can be "tailored"
easily to accommodate exceptions to the "norm".)
The keys to success in this are Interaction and Iteration. The Human
provides the "intelligence". (It is really "discernment".. .)
But a time will come when the software will be capable of evaluating its own
results, matching them against stated requirements, rebuilding an entire
system in seconds to ensure that what is required is delivered. (Then doing
it all again, without complaint, when the User changes his mind <G>).
"Evolved" systems show every indication of being at least as good as
designed ones.
And they don't require computer skills on the part of the User.
Pete.
Comment