What is a monad? (Wadler's definition) (was "Re: How to sell FP?") 
Author Message
 What is a monad? (Wadler's definition) (was "Re: How to sell FP?")

Jeffrey L Straszhe says

Quote:
>  Regarding FP for the layperson: I think we might as well accept that
>  the Visual Basic and Java crowd will, by and large, never get it.
>  Please forgive my apparent elitism, but they just aren't that smart.
>  On the other hand, FP in the hands of a skilled team has shown itself
>  to be amazing in productivity and quality. If an organization wants
>  that quality it will have to pay for the talent.

All our undergraduates here at UMASS get a modest grounding in FP using
the functional subset of Scheme. This includes requiring them to write
and use combinatory parsers, and an extended exercise in using a
generalised merge function to implement a chunk of algorithmic algebra.
They also are shown how to use the Y-combinator to obtain recursion,
with the occasional exercise in this.

        http://www.*-*-*.com/

Some like it a lot, many don't. It is certainly the less-liked of the
two courses I teach...  

The honors bunch have a look at SML and Prolog with me. My sense from
this is that FP technology is more approachable without modern type
systems, which operate at too high a level of abstraction for many
students. Scheme seems the best language for the non-honors course
since it readily supports a study of evaluation (eval and apply stuff),
which would be harder to fit into a semester in a language that didn't
provide quotation.

Robin.



Sat, 29 Jun 2002 03:00:00 GMT  
 What is a monad? (Wadler's definition) (was "Re: How to sell FP?")

Quote:

> Jeffrey L Straszhe says
> >  Regarding FP for the layperson: I think we might as well accept that
> >  the Visual Basic and Java crowd will, by and large, never get it.
> >  Please forgive my apparent elitism, but they just aren't that smart.
> >  On the other hand, FP in the hands of a skilled team has shown itself
> >  to be amazing in productivity and quality. If an organization wants
> >  that quality it will have to pay for the talent.
> All our undergraduates here at UMASS get a modest grounding in FP using
> the functional subset of Scheme. This includes requiring them to write
> and use combinatory parsers, and an extended exercise in using a
> generalised merge function to implement a chunk of algorithmic algebra.
> They also are shown how to use the Y-combinator to obtain recursion,
> with the occasional exercise in this.

Sounds neat. Of course, now I feel driven to go learn what a Y-combinator
is. Perhaps I'll start with your course notes (thanks for the URL, btw).

Quote:
>         http://www-edlab.cs.umass.edu/cs287/

<snip>

-- Jeffrey Straszheim          
-- Systems Engineer, Programmer
-- http://www.shadow.net/~stimuli
-- stimuli AT shadow DOT net



Sat, 29 Jun 2002 03:00:00 GMT  
 What is a monad? (Wadler's definition) (was "Re: How to sell FP?")

  Robin> Jeffrey L Straszhe says
  >>   Regarding FP for the layperson: I think we might as well accept
  >> that the Visual Basic and Java crowd will, by and large, never
  >> get it.  Please forgive my apparent elitism, but they just aren't
  >> that smart.  On the other hand, FP in the hands of a skilled team
  >> has shown itself to be amazing in productivity and quality. If an
  >> organization wants that quality it will have to pay for the
  >> talent.

  Robin> All our undergraduates here at UMASS get a modest grounding
  Robin> in FP using the functional subset of Scheme. This includes
  Robin> requiring them to write and use combinatory parsers, and an
  Robin> extended exercise in using a generalised merge function to
  Robin> implement a chunk of algorithmic algebra.  They also are
  Robin> shown how to use the Y-combinator to obtain recursion, with
  Robin> the occasional exercise in this.

  Robin> http://www-edlab.cs.umass.edu/cs287/

  Robin> Some like it a lot, many don't. It is certainly the
  Robin> less-liked of the two courses I teach...

I probably wouldn't have liked it. Too much algebra for my taste,
and not enough "real-world" examples.

My introduction to Erlang was a small course called "Computers
in Telecommunications", and it included a two-week introduction
to Erlang, where we ended up completing a control program for a
real PBX (and were actually able to make a call through it!)
That's also the final lab in the 4-day introductory Erlang course.

On day 2 of the continued Erlang course, students get to try
client-server programming, and after the 4th day they've done
databases, distribution and graphics as well.

Zipping on to the 4-day Erlang/OTP course, students get to build
robust applications, try some release handling and orient them-
selves among the support libraries used for real products.

Most students seem to like it. Observe that they get to learn a
thing or two about functional programming as well, but it's not
the main point.

/Uffe
--
Ulf Wiger, Chief Designer AXD 301
Ericsson Telecom AB                          tfn: +46  8 719 81 95
Varuv?gen 9, ?lvsj?                          mob: +46 70 519 81 95
S-126 25 Stockholm, Sweden                   fax: +46  8 719 43 44



Mon, 01 Jul 2002 03:00:00 GMT  
 What is a monad? (Wadler's definition) (was "Re: How to sell FP?")
Picking up this thread:

Quote:
> Jeffrey L Straszhe says

> >  Regarding FP for the layperson: I think we might as well accept that
> >  the Visual Basic and Java crowd will, by and large, never get it.
> >  Please forgive my apparent elitism, but they just aren't that smart.

Now, that's just damn rude.

I'm a software engineer by profession, I'm employed to build software to do
economically useful work. I choose to work in distributed systems, and the
market currently favours Java in that domain. So I learned Java, although I
try to _think_ (for professional purposes) in Eiffel.

I also write some programs in my own time, for the pleasure of solving
problems and for the mental exercise involved. I choose to do this in
Scheme. And so I subscribe to this newsgroup. And so, again, in my own time,
I study, for example, the lambda calculus

How smart am I?

It seems that Jeffrey regards Java programmers as "lay people".  How does
that work? Does he assume that all Java programmers are hobbyists playing
around in their bedrooms?

Keith Braithwaite



Mon, 01 Jul 2002 03:00:00 GMT  
 What is a monad? (Wadler's definition) (was "Re: How to sell FP?")

  Keith> Picking up this thread:
  >>  Jeffrey L Straszhe says
  >>
  >>  > Regarding FP for the layperson: I think we might as well
  >>  > accept that the Visual Basic and Java crowd will, by and large,
                                                          ^^^^^^^^^
  >>  > never get it.  Please forgive my apparent elitism, but they
  >>  > just aren't that smart.

  Keith> Now, that's just damn rude.

[ description of multilingual Keith snipped ]

  Keith> How smart am I?

I don't think anyone means to suggest that you have to be ignorant
just because you're programming in Java (I know some fairly smart
people who program in Java, and -- I must admit -- have started
peeking at a Java book.)

I think a basic problem is that many are afraid of starting
development efforts in "niche" languages, because they won't be able
to recruit any programmers. Does this mean that:

A) They are just plain wrong?
B) The majority of mainstream programmers are not interested in
   working with niche languages (Keith is an exception)?
C) Management wants to believe that you can hire programmers like
   you've traditionally hired factory workers -- numbers count more
   than competence?
D) All those smart people using FPLs don't want to work in industry,
   but are content doing research?
E) The majority of mainstream programmers really ache to learn
   Haskell, but all those textbooks and teachers are simply
   not good enough for them to get it?

Personally, I'm leaning towards a combination of B, C, and D, where
B in some sense follows from C -- managers must start realising
that software development is *difficult*. Until they do, programmers
will keep focusing on the best selling tools rather than the best
ones.

/Uffe
--
Ulf Wiger, Chief Designer AXD 301
Ericsson Telecom AB                          tfn: +46  8 719 81 95
Varuv?gen 9, ?lvsj?                          mob: +46 70 519 81 95
S-126 25 Stockholm, Sweden                   fax: +46  8 719 43 44



Mon, 01 Jul 2002 03:00:00 GMT  
 What is a monad? (Wadler's definition) (was "Re: How to sell FP?")

    > I think a basic problem is that many are afraid of starting
    > development efforts in "niche" languages, because they won't be able
    > to recruit any programmers. Does this mean that:

    > A) They are just plain wrong?
    > B) The majority of mainstream programmers are not interested in
    >    working with niche languages (Keith is an exception)?
    > C) Management wants to believe that you can hire programmers like
    >    you've traditionally hired factory workers -- numbers count more
    >    than competence?
    > D) All those smart people using FPLs don't want to work in industry,
    >    but are content doing research?
    > E) The majority of mainstream programmers really ache to learn
    >    Haskell, but all those textbooks and teachers are simply
    >    not good enough for them to get it?

A fair list.  I wanted to add:

F) In general, people think programming languages matter much more than
   they do, and are prone to exagerrate the difficulty of picking up a new one.
   (Maybe this is because they equate programming with writing code.)

It's conceivable that on some kinds of projects, the choice of
programming language might be one of the last decisions to be
made. (In my experience, it's usually the first, and the most hotly
debated.)

    > Personally, I'm leaning towards a combination of B, C, and D, where
    > B in some sense follows from C -- managers must start realising
    > that software development is *difficult*.

My impression is that this runs opposite to the prevailing management
philosophy that one can understand all kinds of non-managerial work as
something like assembling a model-T Ford.

Of course, not *all* software development is difficult, and surely
some of it is more difficult than it needs to be.  The really
difficult bits seem to me remote from the programming language, in
figuring out the basic principles of how something is to work.

At some level, I do not care whether functional languages
"make it" in the real world, especially the functional languages
that we have today.  Maybe programming language zealotry only
adds to the impression that programming just fabricating code.

(The Erlang people have never struck me as FP zealots.  They seem
laudably free of language idolatry, including their own one.)
--
Peter Hancock



Mon, 01 Jul 2002 03:00:00 GMT  
 What is a monad? (Wadler's definition) (was "Re: How to sell FP?")

  Peter> F) In general, people think programming languages matter much
  Peter> more than they do, and are prone to exagerrate the difficulty
  Peter> of picking up a new one.  (Maybe this is because they equate
  Peter> programming with writing code.)

I agree.

  Peter> Of course, not *all* software development is difficult, and
  Peter> surely some of it is more difficult than it needs to be.  The
  Peter> really difficult bits seem to me remote from the programming
  Peter> language, in figuring out the basic principles of how
  Peter> something is to work.

True. Now, this is also an argument in favour of recruiting smart
people who really understand computer science. My general impression
is that these people are also less religious when it comes to
the choice of programming language.

  Peter> (The Erlang people have never struck me as FP zealots.  They
  Peter> seem laudably free of language idolatry, including their own
  Peter> one.)

Thank you.

/Uffe
--
Ulf Wiger, Chief Designer AXD 301
Ericsson Telecom AB                          tfn: +46  8 719 81 95
Varuv?gen 9, ?lvsj?                          mob: +46 70 519 81 95
S-126 25 Stockholm, Sweden                   fax: +46  8 719 43 44



Mon, 01 Jul 2002 03:00:00 GMT  
 What is a monad? (Wadler's definition) (was "Re: How to sell FP?")

Quote:

> B) The majority of mainstream programmers are not interested in
>    working with niche languages (Keith is an exception)?

In my experience, I'm a member of a large minority. Most of the _good_ (I
flatter myself that I'm quite compentent), "mainstream" developers I've met
are computational polyglots, to some extent.

Quote:

> E) The majority of mainstream programmers really ache to learn
>    Haskell, but all those textbooks and teachers are simply
>    not good enough for them to get it?

I've never looked at Haskell (beyond reading some FP example written in it),
but: when I decided that I wanted to learn an FP I chose Scheme over Common
Lisp because SICP was such a good book, and because IMHO, Winston and Horn
(which was recommended to me as THE Lisp book) is so bad.

Keith



Mon, 01 Jul 2002 03:00:00 GMT  
 What is a monad? (Wadler's definition) (was "Re: How to sell FP?")

Quote:

> Picking up this thread:

> > Jeffrey L Straszhe says

> > >  Regarding FP for the layperson: I think we might as well accept that
> > >  the Visual Basic and Java crowd will, by and large, never get it.
> > >  Please forgive my apparent elitism, but they just aren't that smart.

> Now, that's just damn rude.

> I'm a software engineer by profession, I'm employed to build software to do
> economically useful work. I choose to work in distributed systems, and the
> market currently favours Java in that domain. So I learned Java, although I
> try to _think_ (for professional purposes) in Eiffel.

I think that by "Visual Basic and Java crowd" he does not mean "anyone
who was ever compelled by circumstances to use one of these languages"
but rather means "those ignorant fools who really believe that VB and
Java are the most powerful and useful languages ever developed, the
zenith of language design, the ultimate end-point of language evolution,
the best ever"! Don't laugh, many VB and Java users really think and
talk in those kinds of terms.

Remember, in many cases languages are chosen by managers who are
technically clueless and make their decisions based on the latest
shallow article in InformationWeek. Many of these people are fools,
plain and simple. This does not mean, however, that all the engineers
working under (and around) them are less than competent or in any way
ignorant.

The press all talk about the shortage of IT workers. The reality, I
think, is that there is a much worse shortage of good managers than of
good engineers. Thus at any point in time many good engineers will not
have been able to arrange their career to be working for a good boss.

And the market. Geez. The market. It's amazing that so many companies
let technical decisions be dictated by this amorphous non-intelligent
non-entity whose opinions are PURELY (I mean 100%) determined by
marketing campaigns. If Java had been created by a small startup
company, it would have died long ago. The only thing that kept it going
was continuous marketing life-support from Sun, involving massive
transfusions of $$$. (Which was helped by the general desperation at the
time caused by lack of any credible "un-Microsoft" solution.)



Mon, 01 Jul 2002 03:00:00 GMT  
 What is a monad? (Wadler's definition) (was "Re: How to sell FP?")
You guys are funny, you should write a comedy. I'm sure your bloated egos
would entertain everyone.


Quote:


> > Picking up this thread:

> > > Jeffrey L Straszhe says

> > > >  Regarding FP for the layperson: I think we might as well accept
that
> > > >  the Visual Basic and Java crowd will, by and large, never get it.
> > > >  Please forgive my apparent elitism, but they just aren't that
smart.

> > Now, that's just damn rude.

> > I'm a software engineer by profession, I'm employed to build software to
do
> > economically useful work. I choose to work in distributed systems, and
the
> > market currently favours Java in that domain. So I learned Java,
although I
> > try to _think_ (for professional purposes) in Eiffel.

> I think that by "Visual Basic and Java crowd" he does not mean "anyone
> who was ever compelled by circumstances to use one of these languages"
> but rather means "those ignorant fools who really believe that VB and
> Java are the most powerful and useful languages ever developed, the
> zenith of language design, the ultimate end-point of language evolution,
> the best ever"! Don't laugh, many VB and Java users really think and
> talk in those kinds of terms.

> Remember, in many cases languages are chosen by managers who are
> technically clueless and make their decisions based on the latest
> shallow article in InformationWeek. Many of these people are fools,
> plain and simple. This does not mean, however, that all the engineers
> working under (and around) them are less than competent or in any way
> ignorant.

> The press all talk about the shortage of IT workers. The reality, I
> think, is that there is a much worse shortage of good managers than of
> good engineers. Thus at any point in time many good engineers will not
> have been able to arrange their career to be working for a good boss.

> And the market. Geez. The market. It's amazing that so many companies
> let technical decisions be dictated by this amorphous non-intelligent
> non-entity whose opinions are PURELY (I mean 100%) determined by
> marketing campaigns. If Java had been created by a small startup
> company, it would have died long ago. The only thing that kept it going
> was continuous marketing life-support from Sun, involving massive
> transfusions of $$$. (Which was helped by the general desperation at the
> time caused by lack of any credible "un-Microsoft" solution.)



Mon, 01 Jul 2002 03:00:00 GMT  
 What is a monad? (Wadler's definition) (was "Re: How to sell FP?")

Quote:

> > Jeffrey L Straszhe says
> > >  Regarding FP for the layperson: I think we might as well accept that
> > >  the Visual Basic and Java crowd will, by and large, never get it.
> > >  Please forgive my apparent elitism, but they just aren't that smart.
> Now, that's just damn rude.

Allow me to appologize then. My comment was too blunt and not properly
qualified. To clear things up: I don't think that anyone who uses Java
(or VB for that matter) is automatically less intelligent than someone
else. However, I still feel that the "average Joe programmer" probably
isn't going to get something like FP, and I do think that it is an
issue of intelligence.

I more-or-less assumed that the term "VB and Java crowd" would kind of
sum this up. I'm sure you've met those programmers who know nothing
beyond those languages, haven't bothered to look beyond them, and get
irate if you dare suggest that they are less than ideal. I probably
should have said something more like, "The buzzword-dejour crowd,"
But in any event, I don't think I've caused any lasting harm.

<snip>

Oh, and just for the record, I'm often found using Java in my day job
as well :)

-- Jeffrey Straszheim          
-- Systems Engineer, Programmer
-- http://www.shadow.net/~stimuli
-- stimuli AT shadow DOT net



Mon, 01 Jul 2002 03:00:00 GMT  
 What is a monad? (Wadler's definition) (was "Re: How to sell FP?")

Quote:
> C) Management wants to believe that you can hire programmers like
>    you've traditionally hired factory workers -- numbers count more
>    than competence?

C1) Management has a hard time finding qualified people in *any*
language. A niche language just makes it worse.

Thou doest underestimate the importance ofsoftware maintenance.



Mon, 01 Jul 2002 03:00:00 GMT  
 What is a monad? (Wadler's definition) (was "Re: How to sell FP?")

Quote:

> True. Now, this is also an argument in favour of recruiting smart
> people who really understand computer science. My general impression
> is that these people are also less religious when it comes to
> the choice of programming language.

on the other hand, smart people who really understand computer science
might not understand political requirements for using non-optimal
languages.

thi



Mon, 01 Jul 2002 03:00:00 GMT  
 What is a monad? (Wadler's definition) (was "Re: How to sell FP?")

Quote:

>     > Personally, I'm leaning towards a combination of B, C, and D, where
>     > B in some sense follows from C -- managers must start realising
>     > that software development is *difficult*.

> My impression is that this runs opposite to the prevailing management
> philosophy that one can understand all kinds of non-managerial work as
> something like assembling a model-T Ford.

this is the crux.  functional programming is the best way to manage
complexity.  managers fear for job security, and thus hire people who do
not manage complexity (their job, actually), but rather manage code.

industrial management loathes recursion and recursive power structures.

thi



Mon, 01 Jul 2002 03:00:00 GMT  
 
 [ 481 post ]  Go to page: [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33]

 Relevant Pages 

1. Monads and Automating "The Awkward Squad"

2. I am not deaf, but am I mute?

3. '"""' and linefeed characters

4. "FP+OOP=Haskell"

5. "FP+OOP=Haskell" paper

6. I am finding a definition of OCODE

7. "Salaried studentship" in Concurrent FP available

8. "FP + OOP = Haskell"

9. selling book, "Instant UML"

10. set fp [open "|program" r+]

11. string.join(["Tk 4.2p2", "Python 1.4", "Win32", "free"], "for")

12. definition of "canonical"

 

 
Powered by phpBB® Forum Software