Sorry Vince, but, your argument is complete bollocks:

Because there isn't yet a programming language which, by the way, is
mathematically provably impossible to create, java and COBOL are
equal.

(Vince said he wanted a language which, given that you define inputs
and expected outputs, writes the program for you).

Given any algorithm (that is, a complete mapping from a set of inputs
to a set of outputs, such as for example X -> X+1), then a subset of
this mapping (e.g 5->6, 12->13, 1001->1002) is not exhaustive; it
represents a subset of not just the desired algorithm, but also
infinitely many other algorithms. One could argue that one may be able
to find the simplest algorithm that leads to the provided subset, but
then one would have to delve into the meaning of 'simple', which isn't
simple at all :P

One may alternatively argue that a 'programmer' in this futuristic
hypothetical language of Vince most simply provide the complete set of
inputs and outputs in order to make the compiler produce a correct
result. But this answer is unsatisfactory; if you give me a complete
table of inputs to outputs, I'll write you up a java program that
fulfills the requirement (give the desired output when provided a
certain input) in 5 seconds flat: return outputTable.get(input);. -
not interesting at all.


Here's a simple trick to show how this may apply.

Algorithm given: (x+1)*sign(x-12)*sign(x-12)

with sign(A) defined as: -1 if A is negative, +1 if A is positive, and
0 if A is 0. If you feel this is cheating, rest assured one can
construct such a function from more common mathematical operations.

This algorithm looks 100% indistinguishable from just (x+1), except
when the input is 12, in which case the output is 0.


On Jul 10, 11:51 am, "Vince O'Sullivan" <[email protected]> wrote:
> The existence of libraries is not relevant to the point that I'm
> trying to make.
>
> When I first started coding, in the 1980s and in COBOL, a typical task
> would be to write a program which would take input from one or more
> sources, do something to it and send the output somewhere.
>
> These days I write primarily in Java.  A typical task is to write a
> program which would take input from one or more sources, do something
> to it and send the output somewhere.
>
> Whilst I readily acknowledge that progress has been made in all sorts
> or areas; the acts of specifying and coding today is more or less
> identical to what it was when I started.  The level of detail that I
> work at is certainly unchanged.  The skills used and the constructs
> created now are much the same now as they were then.  I still need to
> specify the SQL and execute and detail when and how to extract the
> results.  The loops in the code go in much the same places, error
> handling still has to be manually specified, etc.
>
> What hasn't happened was the expected evolution to the position where
> you define your inputs, define your outputs and let the computer do
> the rest.
>
> So, not only is Java the new COBOL, but Java IS COBOL.  Only the
> vocabulary has changed.
>
> On Jul 10, 9:04 am, jitesh dundas <[email protected]> wrote:
>
>
>
> > I beg to disagree on this one.
>
> > I have seen that the amount of code that we have written till date has grown
> > to a big amount. As people keep writing the same software again an again, we
> > are coming up with libraries that are reducing the LOCs that we use.
>
> > Moreover, have you thought of third-party libraries that allow us to make
> > calls to common functions. for e,g, HTTP EMail CLient commons library of
> > Apache reduces the LOCs that we write.

-- 
You received this message because you are subscribed to the Google Groups "The 
Java Posse" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.

Reply via email to