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 552977EE51 for ; Tue, 28 May 2013 21:06:17 +0200 (CEST) Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of anthony.tavener@gmail.com) identity=pra; client-ip=74.125.83.47; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="anthony.tavener@gmail.com"; x-sender="anthony.tavener@gmail.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail2-smtp-roc.national.inria.fr: domain of anthony.tavener@gmail.com designates 74.125.83.47 as permitted sender) identity=mailfrom; client-ip=74.125.83.47; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="anthony.tavener@gmail.com"; x-sender="anthony.tavener@gmail.com"; x-conformance=sidf_compatible; x-record-type="v=spf1" Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of postmaster@mail-ee0-f47.google.com) identity=helo; client-ip=74.125.83.47; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="anthony.tavener@gmail.com"; x-sender="postmaster@mail-ee0-f47.google.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AlYCALz/pFFKfVMvjWdsb2JhbABZgziwAolniDZ/CBYOAQEBAQcLCwkSBiSCIwEBBAFAARsQAQEIAwEDAQsGBQsNDSEiAREBBQEKEgYTEodoAQMJBgyeXYw/gn2EZwoZJwMJAViHcwEFDI1EFoEzBAeDVAOJH44cgSmOMhYphFQdgS0 X-IPAS-Result: AlYCALz/pFFKfVMvjWdsb2JhbABZgziwAolniDZ/CBYOAQEBAQcLCwkSBiSCIwEBBAFAARsQAQEIAwEDAQsGBQsNDSEiAREBBQEKEgYTEodoAQMJBgyeXYw/gn2EZwoZJwMJAViHcwEFDI1EFoEzBAeDVAOJH44cgSmOMhYphFQdgS0 X-IronPort-AV: E=Sophos;i="4.87,759,1363129200"; d="scan'208";a="19345485" Received: from mail-ee0-f47.google.com ([74.125.83.47]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/RC4-SHA; 28 May 2013 21:06:16 +0200 Received: by mail-ee0-f47.google.com with SMTP id t10so4784018eei.34 for ; Tue, 28 May 2013 12:06:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=8a+j8jwH8fDxcaUs6Tdy8qQb/xtbr5DwVNsbNmAZJeg=; b=dkIi5ww0qnCbErmUVa0qsFZ7kWebLumraDovttdMUcVxzSv6586dHikw1jHEMz0E1L JXYoX2vcuU74ukH6ifiJZ/cKOhS7KxmzgqENI4HxmWuDhVaZ2vHJKH1+IkMQ9DVcel2V 29oQlivcUAf1hbn8NwN5ftSOT50UdNhfEUe7fLFkZJQHOMVnry9a+ulq+MvloQnP9wPg 7E+hMyAbkpYDPpgV+rrX2iTopflH7hL5L87197KtMYcuAMMbGAiKbz5c0dWSdEfu9djw K8L6IkjiyN3mnGdzpA/1Ftbzn9brWQNk46XLQ5gmJ0FVe+vlkSsaHOGUT0/DYULLKTRL 4Mpg== MIME-Version: 1.0 X-Received: by 10.14.38.71 with SMTP id z47mr15440553eea.138.1369767976605; Tue, 28 May 2013 12:06:16 -0700 (PDT) Received: by 10.14.246.199 with HTTP; Tue, 28 May 2013 12:06:16 -0700 (PDT) In-Reply-To: <51A4FC9B.4040004@freenet.de> 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> Date: Tue, 28 May 2013 13:06:16 -0600 Message-ID: From: Anthony Tavener To: "Mr. Herr" Cc: "caml-list@inria.fr" Content-Type: multipart/alternative; boundary=001a11c3f8feabc42f04ddcbf5bb Subject: Re: Problems to get larger user base ... (Re: [Caml-list] OCaml's variables) --001a11c3f8feabc42f04ddcbf5bb Content-Type: text/plain; charset=ISO-8859-1 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. > > > -- > Caml-list mailing list. Subscription management and archives: > https://sympa.inria.fr/sympa/arc/caml-list > Beginner's list: http://groups.yahoo.com/group/ocaml_beginners > Bug reports: http://caml.inria.fr/bin/caml-bugs > --001a11c3f8feabc42f04ddcbf5bb Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
I don't have this "computer science". :) You= don't need it for functional programming. I was trying to program &quo= t;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 did= n't know what that was, avoided mutable state...)

However when I started learning OCaml (my first FP lan= guage), it was still a steep learning curve. I needed to develop enough fam= iliarity 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&#= 39;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.20= 13 10:53, schrieb Erik de Castro Lopo:
>>> Mr. Herr wrote:
>>>> I think the biggest problem is you generally can only lear= n FP and/or Ocaml at
>>>> university, because:
>>>>
>>>> The FP terminology is at first (and a long time after star= ting 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 languag= e I had
>>> used was scheme in the late 1980s.
>>>
>>
>> Scheme is terribly functional, so to say, and is absolutely immerg= ed 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 i= t took me months of
>> reading in 2012
>> to get some understanding about what the heck the scheme people ar= e talking about.
>>
>> Scheme is even a better example for the problems non university le= arners 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 f= eatures he explained
before. I started working through it, then I thought there must be an easie= r way to
write some system admin scripts like checking if IPv6 is functional, ssh-ag= ent 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.


--
Caml-list mailing list. =A0Subscription management and archives:
ht= tps://sympa.inria.fr/sympa/arc/caml-list
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
Bug reports: http://caml.inria.fr/bin/caml-bugs

--001a11c3f8feabc42f04ddcbf5bb--