Are functional languages any good? 
Author Message
 Are functional languages any good?

You and I know that functional languages have great merits and are the
"silver bullet" that will save the programming world.  The arguments
have been made elsewhere, and there is nothing to be said agianst.  All
that remains now is to convince the world of its impending salvation, and
people may be forgiven for being a bit sceptical if at the end of 15+
years all they get is "we really haven't put a lot of effort into our
compilers; just wait".  People want to see their application programs
written in these languages, crunching away at high speed, ... before they
buy all this, and I think all the fellow at Xerox is saying is that this
has not happened.  


Sun, 01 Jan 1995 19:02:28 GMT  
 Are functional languages any good?

Quote:

>You and I know that functional languages have great merits and are the
>"silver bullet" that will save the programming world.  The arguments
>have been made elsewhere, and there is nothing to be said agianst.  All
>that remains now is to convince the world of its impending salvation, and
>people may be forgiven for being a bit sceptical if at the end of 15+
>years all they get is "we really haven't put a lot of effort into our
>compilers; just wait".  People want to see their application programs
>written in these languages, crunching away at high speed, ... before they
>buy all this, and I think all the fellow at Xerox is saying is that this
>has not happened.  

I don't know about purely functional languages, but "dirty" functional
languages (ones with assignment) such as Scheme have some pretty darn
good compilers out there.  As someone who programs in a mostly
functional, sometimes OO, sometimes imperative, sometimes ... style
depending on the problem(s) at hand, I perfer a multi-paradigm
approach.  I am not sure that there really are people out there doing
real things that advocate "pure" styles (pure functional, pure OO,
...).   I think that what one wants is support for various styles and
languages which don't get in the way of what one wants to do.

-Ken



Tue, 03 Jan 1995 00:34:31 GMT  
 Are functional languages any good?

   You and I know that functional languages have great merits and are the
   "silver bullet" that will save the programming world.  The arguments
   have been made elsewhere, and there is nothing to be said agianst.  All
   that remains now is to convince the world of its impending salvation, and
   people may be forgiven for being a bit sceptical if at the end of 15+
   years all they get is "we really haven't put a lot of effort into our
   compilers; just wait".  People want to see their application programs
   written in these languages, crunching away at high speed, ... before they
   buy all this, and I think all the fellow at Xerox is saying is that this
   has not happened.  

I think there is no need for sarcasm. I suspect that few people are
naive enough believe that there is a silver bullet.

Functional languages like SML are an evolutionary step forward, giving
you polymorphic static type checking, higher-order functions, garbage
collection, a decent module system, and runtime safety.

As anyone programming in a language like SML will discover, despite
those neat features, programming is still a difficult and arduous
task. But it's just a little less bad than in a language like C++ or
CommonLisp. And there is, additionally, the promise that functional
programming languages will be a little easier to parallelize
automatically.

Yes, the proof of whether (mostly-) functional languages can be
compiled efficiently is still lacking. But the same can be said for
other new languages like Eiffel or Scheme. However, there are good
reasons to be hopeful, as you would discover if you looked into the
matter yourself.

                                                Thomas.



Tue, 03 Jan 1995 08:47:50 GMT  
 Are functional languages any good?

Quote:


>   You and I know that functional languages have great merits and are the
>   "silver bullet" that will save the programming world.  The arguments
>   have been made elsewhere, and there is nothing to be said agianst.  All
>   that remains now is to convince the world of its impending salvation, and
>   people may be forgiven for being a bit sceptical if at the end of 15+
>   years all they get is "we really haven't put a lot of effort into our
>   compilers; just wait".  People want to see their application programs
>   written in these languages, crunching away at high speed, ... before they
>   buy all this, and I think all the fellow at Xerox is saying is that this
>   has not happened.  

>I think there is no need for sarcasm. I suspect that few people are
>naive enough believe that there is a silver bullet.

I was not being sarcastic.  Perhaps "silver bullet" was what I should have
used, but I believe in something close to it.  What I was trying to say is
this: People who know something about functional languages can see their
advantages; those who do not obviously cannot.  The latter should work to
convince the former, and with all due respect (after all, John Hughes is at
the top of the computer science heap, and I am at the bottom) telling them
(as one person did) to go read Hughes's paper on why functional programming
matters is not the answer; they will only be convinced if you write their
application programs in your language.  


Tue, 03 Jan 1995 06:50:32 GMT  
 Are functional languages any good?

The question of the usefulness of lazy evaluation seems to have been
phrased to ask what major advances in computing have a occurred as a
secondary effect of the technique.

The small examples we all know of neat ways of utilising infinite data
structures are not really going to satisfy this questionner. We appear
to still pay a significant price in terms of implementation speed, as
well as other problems that have been mentioned, such as debugging. So
the question appears to be whether it is worth solving these problems.

I would like to suggest an area in which algorithm development will
benefit from lazy evaluation. Because the area is at the forefront of
performance requirements, the lazy functional language implementations
have had little to offer hitherto, but now that these languages execute
somewhat faster than continental drift, and languages such as SISAL are
being used in anger, I expect that advances will be seen.

One particular facility that laziness provides is the resolution of
complex data dependencies at run-time. The major work in many of the
classical algorithms (especially in number crunching) is to arrive at a
static description of the data dependencies, so that the (static)
program can be written to process the structure efficiently. One can
think of matrix processing algorithms such as Gaussian elimination, or
some of the algorithms from OR which carefully divide the network into
stages, as examples. The best documented case, as referred to earlier
in this discussion is the use of attribute grammars. Because of the
complex (input-dependent) data dependencies, it is the subject of much
research as to how to parse using attribute grammars in conventional
languages. The lazy view of the world is able to give a much cleaner
view.

It is a characteristic of applications users that they only ask for
that which they think is possible. My experience of coding applications
which have carefully crafted algorithms into lazy functional languages
is that, having specified the problem clearly in the new language
(often very close to the original mathematical model), it is possible
to open up almost a vista of new possibilities for the customer to be
able to ask. At the worst (given that lazy implementations are still
slower than fortran) this seems to improve the understanding of the
original problem. This is particularly important in the emerging world
of parallel processing, as the algorithms were devised to be
sequential.

The general provision of laziness is crucial to the process, because
I want to give the application-producer the freedom that it provides.
I find they love it.



Tue, 03 Jan 1995 19:45:32 GMT  
 
 [ 5 post ] 

 Relevant Pages 

1. What is the best functional language

2. where's a good functional language?

3. where's a good functional language?

4. non-functional syntax in a mostly functional language

5. Speed of FP languages, prospects (was Re: Benchmarking Lazy Functional Languages)

6. good code/good language

7. I am just learning verilog any good books or websites

8. good niche for functional programming?

9. functional programming / good style

10. I am new to Assembly language Programming.

11. i am new to assembly language

12. Good introduction to functional programming with Python?

 

 
Powered by phpBB® Forum Software