From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by sympa.inria.fr (Postfix) with ESMTPS id C9BB77EE51 for ; Tue, 28 May 2013 21:49:41 +0200 (CEST) Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of misterherr@freenet.de) identity=pra; client-ip=195.4.92.92; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="misterherr@freenet.de"; x-sender="misterherr@freenet.de"; x-conformance=sidf_compatible Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of misterherr@freenet.de) identity=mailfrom; client-ip=195.4.92.92; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="misterherr@freenet.de"; x-sender="misterherr@freenet.de"; x-conformance=sidf_compatible Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of postmaster@mout2.freenet.de) identity=helo; client-ip=195.4.92.92; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="misterherr@freenet.de"; x-sender="postmaster@mout2.freenet.de"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AmMBALgIpVHDBFxclGdsb2JhbABZgmdRgzuFXrkJgQcWDgEBAQEHDQkJFAMlgiMBAQQBI0kBCQIGCwsYCRYIAwICCQMCAQIBNBETBgIBAYd2AQMJBwMIqhqIMwlBDGgBh2mNUBaBPoJBgRMDmGSEdY4zgWc X-IPAS-Result: AmMBALgIpVHDBFxclGdsb2JhbABZgmdRgzuFXrkJgQcWDgEBAQEHDQkJFAMlgiMBAQQBI0kBCQIGCwsYCRYIAwICCQMCAQIBNBETBgIBAYd2AQMJBwMIqhqIMwlBDGgBh2mNUBaBPoJBgRMDmGSEdY4zgWc X-IronPort-AV: E=Sophos;i="4.87,759,1363129200"; d="scan'208,217";a="19348824" Received: from mout2.freenet.de ([195.4.92.92]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/DHE-RSA-AES256-SHA; 28 May 2013 21:49:41 +0200 Received: from [195.4.92.140] (helo=mjail0.freenet.de) by mout2.freenet.de with esmtpa (ID misterherr@freenet.de) (port 25) (Exim 4.80.1 #3) id 1UhPts-0004Qc-GY for caml-list@inria.fr; Tue, 28 May 2013 21:49:40 +0200 Received: from localhost ([::1]:49229 helo=mjail0.freenet.de) by mjail0.freenet.de with esmtpa (ID misterherr@freenet.de) (Exim 4.80.1 #3) id 1UhPts-0007Jy-9D for caml-list@inria.fr; Tue, 28 May 2013 21:49:40 +0200 Received: from [195.4.92.28] (port=46720 helo=18.mx.freenet.de) by mjail0.freenet.de with esmtpa (ID misterherr@freenet.de) (Exim 4.80.1 #3) id 1UhPrW-0001db-GX for caml-list@inria.fr; Tue, 28 May 2013 21:47:14 +0200 Received: from e177061078.adsl.alicedsl.de ([85.177.61.78]:46668 helo=suse123-acer.home.loc) by 18.mx.freenet.de with esmtpsa (ID misterherr@freenet.de) (TLSv1:DHE-RSA-CAMELLIA256-SHA:256) (port 465) (Exim 4.80.1 #3) id 1UhPrV-0008PE-W8 for caml-list@inria.fr; Tue, 28 May 2013 21:47:14 +0200 Message-ID: <51A509C1.7050903@freenet.de> Date: Tue, 28 May 2013 21:47:13 +0200 From: "Mr. Herr" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130329 Thunderbird/17.0.5 MIME-Version: 1.0 To: caml-list@inria.fr References: <20130523235355.GI6510@siouxsie> <20130526150008.GA2014@siouxsie> <20130526234911.41866xca7wgoirfb@webmail.in-berlin.de> <51A30E01.5070300@freenet.de> <20130527185345.e01a7733ac652f89f4e400f7@mega-nerd.com> <51A353BE.5030009@freenet.de> <51A40590.4090501@riken.jp> <51A4FC9B.4040004@freenet.de> In-Reply-To: Content-Type: multipart/alternative; boundary="------------030200080709070907080108" Subject: Re: Problems to get larger user base ... (Re: [Caml-list] OCaml's variables) This is a multi-part message in MIME format. --------------030200080709070907080108 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit See bottom post. Am 28.05.2013 21:06, schrieb Anthony Tavener: > I don't have this "computer science". :) You don't need it for functional > programming. I was trying to program "functionally" in C, 20 years ago (after asm), > but I didn't know there was a whole programming paradigm supporting what I kept > wanting to do. (I favored recursion, use of ternary conditional, wanted closures > but didn't know what that was, avoided mutable state...) > > However when I started learning OCaml (my first FP language), it was still a steep > learning curve. I needed to develop enough familiarity with the idioms to use them > with less mental friction. That takes time. I think imperative techniques can be > easier to grasp, much like a GUI is easier at first, but it doesn't scale as well > -- if you stick with the GUI you limit yourself. You don't need compsci, but I > think there's more time to gain familiarity -- though in my case it might have been > more unlearning that took the time. > > > On Tue, May 28, 2013 at 12:51 PM, Mr. Herr > wrote: > > > Am 28.05.2013 03:17, schrieb Francois Berenger: > > On 05/27/2013 09:38 PM, Mr. Herr wrote: > >> > >> Am 27.05.2013 10 :53, schrieb Erik de Castro Lopo: > >>> Mr. Herr wrote: > >>>> I think the biggest problem is you generally can only learn FP and/or Ocaml at > >>>> university, because: > >>>> > >>>> The FP terminology is at first (and a long time after starting learning it), > >>>> without > >>>> a teacher, not understandable. > >>> Sorry, that's simply not true. > >>> > >>> I studied my last univeristy course in 1992. I picked up Ocaml in 2004 > >>> and Haskell in 2008. Before Ocaml, the only functional language I had > >>> used was scheme in the late 1980s. > >>> > >> > >> Scheme is terribly functional, so to say, and is absolutely immerged in the > Lispy > >> slang. > >> All your knowlegde in C, Java, PHP, Assembler, Tcl/Tk, Pascal ... will not > help you > >> there. > >> > >> I started as an IBM /370 Systems Admin in the late nineties, and it took me > months of > >> reading in 2012 > >> to get some understanding about what the heck the scheme people are talking > about. > >> > >> Scheme is even a better example for the problems non university learners > encounter, > >> than Ocaml, IMO. > > > > A very good book on scheme (which is also quite a deep introduction to computer > > science if you read the whole thing in fact): > > > > "structure and interpretation of computer programs" > > > > http://mitpress.mit.edu/sicp/full-text/book/book.html > > > > Yes, a good book. The author takes care to only use terms and features he explained > before. I started working through it, then I thought there must be an easier way to > write some system admin scripts like checking if IPv6 is functional, ssh-agent has > identities, ... I will come back to the book. > > I find for myself Ocaml is indeed easier to start with than Scheme for a FP > beginner. > > But this is the point: do we need computer science to start with functional > programming? > > Before someone answers "computer science will be good for you" - other programming > languages do not have this requirement. > > /Str. > Ah, at least one person knows what I am talking about. Indeed, I also see Ocaml as a good stepping stone into functional programming, with pattern matching as extra goodie. We should make it more popular, without requiring a course in computer science. Hmm - how did this thread start ... /Str. --------------030200080709070907080108 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 7bit See bottom post.

Am 28.05.2013 21:06, schrieb Anthony Tavener:
I don't have this "computer science". :) You don't need it for functional programming. I was trying to program "functionally" in C, 20 years ago (after asm), but I didn't know there was a whole programming paradigm supporting what I kept wanting to do. (I favored recursion, use of ternary conditional, wanted closures but didn't know what that was, avoided mutable state...)

However when I started learning OCaml (my first FP language), it was still a steep learning curve. I needed to develop enough familiarity with the idioms to use them with less mental friction. That takes time. I think imperative techniques can be easier to grasp, much like a GUI is easier at first, but it doesn't scale as well -- if you stick with the GUI you limit yourself. You don't need compsci, but I think there's more time to gain familiarity -- though in my case it might have been more unlearning that took the time.


On Tue, May 28, 2013 at 12:51 PM, Mr. Herr <misterherr@freenet.de> wrote:

Am 28.05.2013 03:17, schrieb Francois Berenger:
> On 05/27/2013 09:38 PM, Mr. Herr wrote:
>>
>> Am 27.05.2013 10:53, schrieb Erik de Castro Lopo:
>>> Mr. Herr wrote:
>>>> I think the biggest problem is you generally can only learn FP and/or Ocaml at
>>>> university, because:
>>>>
>>>> The FP terminology is at first (and a long time after starting learning it),
>>>> without
>>>> a teacher, not understandable.
>>> Sorry, that's simply not true.
>>>
>>> I studied my last univeristy course in 1992. I picked up Ocaml in 2004
>>> and Haskell in 2008. Before Ocaml, the only functional language I had
>>> used was scheme in the late 1980s.
>>>
>>
>> Scheme is terribly functional, so to say, and is absolutely immerged in the Lispy
>> slang.
>> All your knowlegde in C, Java, PHP, Assembler, Tcl/Tk, Pascal ... will not help you
>> there.
>>
>> I started as an IBM /370 Systems Admin in the late nineties, and it took me months of
>> reading in 2012
>> to get some understanding about what the heck the scheme people are talking about.
>>
>> Scheme is even a better example for the problems non university learners encounter,
>> than Ocaml, IMO.
>
> A very good book on scheme (which is also quite a deep introduction to computer
> science if you read the whole thing in fact):
>
> "structure and interpretation of computer programs"
>
> http://mitpress.mit.edu/sicp/full-text/book/book.html
>

Yes, a good book. The author takes care to only use terms and features he explained
before. I started working through it, then I thought there must be an easier way to
write some system admin scripts like checking if IPv6 is functional, ssh-agent has
identities, ... I will come back to the book.

I find for myself Ocaml is indeed easier to start with than Scheme for a FP beginner.

But this is the point: do we need computer science to start with functional programming?

Before someone answers "computer science will be good for you" - other programming
languages do not have this requirement.

/Str.

Ah, at least one person knows what I am talking about.

Indeed, I also see Ocaml as a good stepping stone into functional programming, with pattern matching as extra goodie.

We should make it more popular, without requiring a course in computer science. Hmm - how did this thread start ...

/Str.
--------------030200080709070907080108--