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.
