Re: [Haskell-cafe] Doing some things right

2007-12-29 Thread Jon Harrop
On Saturday 29 December 2007 07:18:28 Peter Verswyvelen wrote:
 Jon Harrop wrote:
  However, both F# and Scala have the potential to dwarf all of these
  languages in the not-so-distant future. I believe F# will do so in 2008
  but Scala will take 2-3 years because they have far fewer resources to
  develop essential tools like working IDE plug-ins.

 I agree on that. IMHO, having looked at both F# and Scala, these seem
 like the most pragmatic languages, adding functional programming on top
 of industry proven imperative/OO technologies.

F# is certainly pragmatic and I'm hugely impressed with the work they're 
doing. I'm undecided about Scala. It seems to be going in research directions 
that solve new problems at the (grave) expense of usability. In particular, 
it seems to have forgotten many of the lessons taught by languages like OCaml 
and Haskell.

 Furthermore, if F# 
 really becomes an officially supported Microsoft product as promised,
 this will indeed have the potential of rapidly becoming popular. It is
 also possible that C# will get more and more functional features as it
 is currently doing, and hence either become a monster or remain very
 popular in the industry...

Yes. Microsoft have already employed half a dozen people to work on F# full 
time, so I think there is no question that they are putting their money where 
their mouth is.

 And what do you think about Sun's Fortress? I kind of liked that
 language a lot too, but it was way too early to use it.

I have only read a presentation about Fortress and not actually tried to use 
it. While I think it is nice that Sun are trying to do something specfically 
for technical users, I think they would get a lot more out of an 
industrial-strength implementation of ML like F#.

 What I like about Haskell is that the language progresses faster than I
 can learn it ;-) (which might be one of the reasons people don't like
 it, but hey, it's a *research* language, it must advance!)

As much as I like the languages, I would really like to ship commercial 
software for them (e.g. libraries for visualization) but the current 
generation of implementations basically make this impossible.

-- 
Dr Jon D Harrop, Flying Frog Consultancy Ltd.
http://www.ffconsultancy.com/products/?e
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Doing some things right

2007-12-29 Thread Miguel Mitrofanov
  ? Kay's definition of OOP necessarily implies imperative behaviour.
 OCaml has purely functional object update IIRC.

That's OK, but it doesn't seem to agree with Kay's definition. Erlang 
definitely does.
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Doing some things right

2007-12-29 Thread Andrew Coppin

Luke Palmer wrote:

OO is orthogonal to functional.  Erlang is pure functional, Lisp is a
bastard child...
  


1. Wasn't Lisp here first? (I mean, from what I've read, Lisp is so old 
it almost predates electricity...)


2. I'm curios as to how you can have a functional OO language. The two 
seem fundamentally incompatible:


- FP could be defined as programming without mutable state.
- In OOP we have the definition: An object has identity, state and 
behaviour.


That a state has an *identity* more or less demands *mutable* state. So 
OOP is programming with mutable state inside objects, and FP is 
programming without mutable state. Hmm...


3. I know very little about Erlang, but the Haskell wiki claims it is 
not pure functional. (This agrees with the small amount of Erlang I do 
know.)


http://www.haskell.org/haskellwiki/Comparison_of_functional_programming_languages

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Doing some things right

2007-12-29 Thread Luke Palmer
On Dec 29, 2007 10:32 AM, Andrew Coppin [EMAIL PROTECTED] wrote:
 Luke Palmer wrote:
  OO is orthogonal to functional.  Erlang is pure functional, Lisp is a
  bastard child...
 

 1. Wasn't Lisp here first? (I mean, from what I've read, Lisp is so old
 it almost predates electricity...)

Before the concepts of OO, functional, and imperative?  Well, certainly before
OO -- the other two... perhaps.

 2. I'm curios as to how you can have a functional OO language. The two
 seem fundamentally incompatible:

See O'Caml, O'Haskell.  I'd call those OO functional languages.  You may
reject state from OO and still have something which is quite close to OO.
But it's a matter of minor semantics now I think...

 3. I know very little about Erlang, but the Haskell wiki claims it is
 not pure functional. (This agrees with the small amount of Erlang I do
 know.)

I don't know any erlang.  Someone in freenode.net#erlang things erlang is
pure functional :-)

Luke
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Doing some things right

2007-12-29 Thread Andrew Coppin

Luke Palmer wrote:

On Dec 29, 2007 10:32 AM, Andrew Coppin [EMAIL PROTECTED] wrote:
  

1. Wasn't Lisp here first? (I mean, from what I've read, Lisp is so old
it almost predates electricity...)



Before the concepts of OO, functional, and imperative?  Well, certainly before
OO -- the other two... perhaps.
  


I actually meant before Erlang, O'Camal and Haskell. ;-)


2. I'm curios as to how you can have a functional OO language. The two
seem fundamentally incompatible:



See O'Caml, O'Haskell.  I'd call those OO functional languages.  You may
reject state from OO and still have something which is quite close to OO.
But it's a matter of minor semantics now I think...
  


Right. So a language where you have objects and methods, it's just that 
all objects are immutable?



3. I know very little about Erlang, but the Haskell wiki claims it is
not pure functional. (This agrees with the small amount of Erlang I do
know.)



I don't know any erlang.  Someone in freenode.net#erlang things erlang is
pure functional :-)
  


And I met somebody who thinks assembly is a pure OO language. ;-)

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Doing some things right

2007-12-28 Thread Andrew Coppin

Don Stewart wrote:

A Wake Up Call for the Logic Programming Community

Or what the logic programming community can learn from the Haskell
community (in particular):


http://www.cs.kuleuven.ac.be/%7Edtai/projects/ALP//newsletter/dec07/content/Articles/tom/content.html

Interesting read!
  


Haskell is the undisputed flagship of the FP community.

Er... really? I thought Lisp and Erlang were both infinitely more 
popular and better known. Followed by Clean and O'Camal. Indeed, until I 
stumbled across an article on Wikipidia quite by chance, I'd never even 
*heard* of this thing called Haskell. (Note to self: Add more links to 
the Haskell page on Wikipedia...)


[I actually heard a number of people tell me that learning LISP would 
change my life forever because LISP has something called macros. I 
tried to learn it, and disliked it greatly. It's too messy. And what the 
heck is cdr ment to mean anyway? To me, LISP doesn't even seem all 
that different from normal languages (modulo weird syntax). Now 
Haskell... that's FUN!]



___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Doing some things right

2007-12-28 Thread Alex Sandro Queiroz e Silva

Hallo,

Andrew Coppin escreveu:
[I actually heard a number of people tell me that learning LISP would 
change my life forever because LISP has something called macros. I 
tried to learn it, and disliked it greatly. It's too messy. And what 
the heck is cdr ment to mean anyway? To me, LISP doesn't even seem 
all that different from normal languages (modulo weird syntax). Now 
Haskell... that's FUN!]


Macros are not the only thing that makes Lisp (it hasn't been 
called LISP for ages) great, but surely contributes for that. 
Unfortunately Lisp is like the Matrix, you can't be told how great it 
is, you have to see for yourself.


Cheers,
-alex

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Doing some things right

2007-12-28 Thread Brian Sniffen
On Dec 28, 2007 6:05 AM, Andrew Coppin [EMAIL PROTECTED] wrote:
 [I actually heard a number of people tell me that learning LISP would
 change my life forever because LISP has something called macros. I
 tried to learn it, and disliked it greatly. It's too messy. And what the
 heck is cdr ment to mean anyway? To me, LISP doesn't even seem all
 that different from normal languages (modulo weird syntax). Now
 Haskell... that's FUN!]

Contents of Data Register.

Macros are like Template Haskell.  One example of where they're useful
is programmer definition of new binding forms.  That's not possible in
Haskell without Templates.  Macros were invented in Lisp because the
syntax is so easy for machine manipulation---they don't have a tenth
the complexity of Template Haskell for about the same power.

-Brian

-- 
Brian T. Sniffen
[EMAIL PROTECTED]or[EMAIL PROTECTED]
http://www.evenmere.org/~bts
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Doing some things right

2007-12-28 Thread Ketil Malde
Andrew Coppin [EMAIL PROTECTED] writes:

 
 http://www.cs.kuleuven.ac.be/%7Edtai/projects/ALP//newsletter/dec07/content/Articles/tom/content.html

 Haskell is the undisputed flagship of the FP community.

 Er... really? 

It depends on how you define the FP community, of course.  The
author counts participation at ICFP, so he probably has an academic
slant. 

 I thought Lisp and Erlang were both infinitely more
 popular and better known. 

Certainly not infinitely.  Lisp isn't entirely functional, and while
Erlang is an industrial success story, I think Haskell is seeing a
wider range of application.

 [I actually heard a number of people tell me that learning LISP would
 change my life forever because LISP has something called macros.

The close ties between data and code in Lisp gives some nice
opportunities for your program to e.g. manipulate itself.  For
e.g. genetic programming.

I think macros are used for bottom-up design (i.e. building EDSLs),
where you would use higher-order functions in Haskell.

(I don't really have a lot of Lisp experience, I'd be interested to
hear if other people agree or not)

-k
-- 
If I haven't seen further, it is by standing in the footprints of giants
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Doing some things right

2007-12-28 Thread Andrew Coppin

Brian Sniffen wrote:

On Dec 28, 2007 6:05 AM, Andrew Coppin [EMAIL PROTECTED] wrote:
  

[I actually heard a number of people tell me that learning LISP would
change my life forever because LISP has something called macros. I
tried to learn it, and disliked it greatly. It's too messy. And what the
heck is cdr ment to mean anyway? To me, LISP doesn't even seem all
that different from normal languages (modulo weird syntax). Now
Haskell... that's FUN!]



Contents of Data Register.
  


Right. I've heard the story about why it came to be called that, but 
seriously... I can never remember whether I want cdr or car. It's a 
silly choice of name. [Sure, you can rename it. And then nobody but you 
will understand it.]



Macros are like Template Haskell.


Which, incidentally, I also don't use. ;-)

Doesn't Derive cover most of the useful cases for TH?

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Doing some things right

2007-12-28 Thread Alex Sandro Queiroz e Silva

Hallo,

Andrew Coppin escreveu:

Brian Sniffen wrote:
On Dec 28, 2007 6:05 AM, Andrew Coppin [EMAIL PROTECTED] 
wrote:
 

[I actually heard a number of people tell me that learning LISP would
change my life forever because LISP has something called macros. I
tried to learn it, and disliked it greatly. It's too messy. And what 
the

heck is cdr ment to mean anyway? To me, LISP doesn't even seem all
that different from normal languages (modulo weird syntax). Now
Haskell... that's FUN!]



Contents of Data Register.
  


Right. I've heard the story about why it came to be called that, but 
seriously... I can never remember whether I want cdr or car. It's a 
silly choice of name. [Sure, you can rename it. And then nobody but 
you will understand it.]


In Common Lisp, standardised in 1984, there are the equivalent 
functions FIRST and REST, which everyone know what they mean.


Cheers,
-alex

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Doing some things right

2007-12-28 Thread Miguel Mitrofanov

I thought Lisp and Erlang were both infinitely more
popular and better known.


Certainly not infinitely.  Lisp isn't entirely functional, and while
Erlang is an industrial success story, I think Haskell is seeing a
wider range of application.


Well, it seems for me that Erlang is much less functional than Lisp.  
It's totally OO, in fact.

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Doing some things right

2007-12-28 Thread Luke Palmer
On Dec 28, 2007 2:55 PM, Miguel Mitrofanov [EMAIL PROTECTED] wrote:
  I thought Lisp and Erlang were both infinitely more
  popular and better known.
 
  Certainly not infinitely.  Lisp isn't entirely functional, and while
  Erlang is an industrial success story, I think Haskell is seeing a
  wider range of application.

 Well, it seems for me that Erlang is much less functional than Lisp.
 It's totally OO, in fact.

OO is orthogonal to functional.  Erlang is pure functional, Lisp is a
bastard child...

Luke
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Doing some things right

2007-12-28 Thread Jon Harrop
On Friday 28 December 2007 11:05:12 Andrew Coppin wrote:
 I thought Lisp and Erlang were both infinitely more 
 popular and better known. Followed by Clean and O'Camal.

According to the Debian and Ubuntu package popularity figures OCaml, Haskell 
and Erlang are the most popular general-purpose functional programming 
languages, followed by Lisp and Scheme:

http://flyingfrogblog.blogspot.com/2007/11/most-popular-functional-languages-on.html

OCaml, Haskell and Erlang are also growing much more rapidly than Lisp:

http://people.debian.org/~igloo/popcon-graphs/index.php?packages=ocaml-nox%2Cghc6%2Cerlang-base%2Csbcl%2Cclispshow_installed=onwant_legend=onwant_ticks=onfrom_date=to_date=hlght_date=date_fmt=%25Y-%25mbeenhere=1

However, both F# and Scala have the potential to dwarf all of these languages 
in the not-so-distant future. I believe F# will do so in 2008 but Scala will 
take 2-3 years because they have far fewer resources to develop essential 
tools like working IDE plug-ins.

 [I actually heard a number of people tell me that learning LISP would
 change my life forever because LISP has something called macros. I
 tried to learn it, and disliked it greatly. It's too messy. And what the
 heck is cdr ment to mean anyway? To me, LISP doesn't even seem all
 that different from normal languages (modulo weird syntax). Now
 Haskell... that's FUN!]

OCaml also has macros as well and, yes, forking the syntax of a language is a 
bad idea. I would have said that the metacircular evaluator was the most 
interesting aspect of Lisp/Scheme though, not macros.

-- 
Dr Jon D Harrop, Flying Frog Consultancy Ltd.
http://www.ffconsultancy.com/products/?e
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Doing some things right

2007-12-28 Thread Bill Wood
On Fri, 2007-12-28 at 20:23 -0700, Luke Palmer wrote:
   . . .
 OO is orthogonal to functional.  Erlang is pure functional, Lisp is a
 bastard child...

Give it its historical due, please -- bastard grandsire at least.

 -- Bill Wood


___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Doing some things right

2007-12-28 Thread Peter Verswyvelen

Jon Harrop wrote:
However, both F# and Scala have the potential to dwarf all of these languages 
in the not-so-distant future. I believe F# will do so in 2008 but Scala will 
take 2-3 years because they have far fewer resources to develop essential 
tools like working IDE plug-ins.
  
I agree on that. IMHO, having looked at both F# and Scala, these seem 
like the most pragmatic languages, adding functional programming on top 
of industry proven imperative/OO technologies. Furthermore, if F# 
really becomes an officially supported Microsoft product as promised, 
this will indeed have the potential of rapidly becoming popular. It is 
also possible that C# will get more and more functional features as it 
is currently doing, and hence either become a monster or remain very 
popular in the industry...


And what do you think about Sun's Fortress? I kind of liked that 
language a lot too, but it was way too early to use it.


What I like about Haskell is that the language progresses faster than I 
can learn it ;-) (which might be one of the reasons people don't like 
it, but hey, it's a *research* language, it must advance!)


Andrew Coppin wrote:


[I actually heard a number of people tell me that learning LISP would
change my life forever because LISP has something called macros. I
tried to learn it, and disliked it greatly. It's too messy. And what the
heck is cdr ment to mean anyway? To me, LISP doesn't even seem all
that different from normal languages (modulo weird syntax). Now

Ah well, CDR and CAR are historic terms, something to do with the first 
LISP hardware (Content of Data / Address Register). Wikipedia tells you 
all about it. Or watch the MIT videos about SICP (structure and 
interpretation of computer programs), they are fun too.


Actually Lambda is just as abstract no? It also has historic meaning.


Haskell... that's FUN!
Yes, it's fun, but again, it would be much more fun to me if it had a 
good IDE with integrated refactoring, good completion, on the fly type 
inference, etc... But that of course is not of great research interest, 
so I should not have brought that up again ;-)


Peter

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Doing some things right

2007-12-28 Thread Jon Harrop
On Saturday 29 December 2007 06:09:44 Bill Wood wrote:
 On Fri, 2007-12-28 at 20:23 -0700, Luke Palmer wrote:
  OO is orthogonal to functional.  Erlang is pure functional, Lisp is a
  bastard child...

 Give it its historical due, please -- bastard grandsire at least.

You'll have to speak up: I don't think Lisp can hear you. ;-)

-- 
Dr Jon D Harrop, Flying Frog Consultancy Ltd.
http://www.ffconsultancy.com/products/?e
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Doing some things right

2007-12-28 Thread Jon Harrop
On Saturday 29 December 2007 06:31:35 Miguel Mitrofanov wrote:
  Well, it seems for me that Erlang is much less functional than Lisp.
  It's totally OO, in fact.
 
  OO is orthogonal to functional.

 ? Kay's definition of OOP necessarily implies imperative behaviour.

OCaml has purely functional object update IIRC.

-- 
Dr Jon D Harrop, Flying Frog Consultancy Ltd.
http://www.ffconsultancy.com/products/?e
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] Doing some things right

2007-12-27 Thread Don Stewart
A Wake Up Call for the Logic Programming Community

Or what the logic programming community can learn from the Haskell
community (in particular):


http://www.cs.kuleuven.ac.be/%7Edtai/projects/ALP//newsletter/dec07/content/Articles/tom/content.html

Interesting read!

-- Don
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Doing some things right

2007-12-27 Thread Ketil Malde
Don Stewart [EMAIL PROTECTED] writes:

 A Wake Up Call for the Logic Programming Community

 
 http://www.cs.kuleuven.ac.be/%7Edtai/projects/ALP//newsletter/dec07/content/Articles/tom/content.html

 Interesting read!

Clearly, the logic programming people are vastly more successful at
our prime goal: avoiding success at all costs.  We have much to learn
here :-)

-k
-- 
If I haven't seen further, it is by standing in the footprints of giants
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe