On 8 December 2011 14:56, Vince O'Sullivan <[email protected]> wrote:

> On Dec 8, 1:57 pm, Kevin Wright <[email protected]> wrote:
> > It's like roads really.  We still lay down surfaces for them, and sit in
> > something with wheels and a source of locomotion.
>
> Yes indeed, a pickup truck is basically a better horse and cart in the
> same way that Scala is a better Fortran.
>
> Programming by having a programmer "manually" defining what needs to
> be done to each piece of data is a bit like requireing all transport
> to go by road.
>

My understanding is very different.  Of course programmers must manually
define what to do, that's the very definition of programming, the only
variant is the level of abstraction at which this takes place.

This is defining what needs to be done to every little bit of data:

    List<ObligatoryOutputType> output =
        new ConventionalSubclassOfList<ObligatoryOutputType>()
    for(ObligatoryInputType datum : input) {
        output.add(someFunc(datum))
    }

This, by contrast, is defining something that must happen to the collection
as a whole:

    val output = input map someFunc

Just consider what would happen if this was a transform pipeline and you
decided to start using arrays instead of lists.  In the first example you'd
have to go back and change the collection types specified in every such
transformation.  There's a crucial difference in the level of abstraction
being used here.

(At the risk of hammering the analogy into the ground) there are
> alternatives to roads that can take you to places that roads cannot
> (e.g. ships, planes and rockets) but little indication that the same
> can be done in computing (i.e. the possibility of creating software at
> a level of abstraction where the developer isn't writing stuff like
> "let x = 1" or "var x = 1" or whatever the latest language's variation
> is.).


No language will *ever* exist where you don't have to name or otherwise
specify the entities that are core to the functioning of the system.
 Without the ability to name stuff, all that can really be said is "do
something", and that isn't particularly useful as descriptions of a program
go.

-- 
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