Re: Survey: What led you to functional programming?
  Home FAQ Contact Sign in
comp.lang.functional only
 
Advanced search
POPULAR GROUPS

more...

 Up
Re: Survey: What led you to functional programming?         

Group: comp.lang.functional · Group Profile
Author: Slobodan Blazeski
Date: Sep 19, 2008 05:51

On Sep 19, 11:42 am, Benjamin L. Russell Yahoo.com>
wrote:
> The thought has just occurred to me that conducting a public survey on
> evolution across, familiarity with, and exposure to various
> programming paradigms in students and practitioners of functional
> programming could be illuminating in revealing the correlation between
> degree of familiarity with and experience in
> procedural/object-oriented programming paradigms, and ease of learning
> functional programming in a non-strict, purely functional programming
> language, such as Haskell or Clean.
>
> Could you please outline your evolution as a functional programmer in
> the following manner (preferably in this thread):
>
> A) Your chronological evolution in programming languages; e.g. (in my
> case):
>
>>N-BASIC/N-80 BASIC (1983-1985) -> Pascal (1989) ->
>>Common Lisp / Scheme (T) (1990) -> Scheme (T) (1991) ->
>>C (1993) -> Scheme (T) (1994) -> Tutorial-D
>>(in _Introduction to Database Systems, Seventh Edition_ by C. J. Date)
>>(2000) -> Oracle SQL / PL/SQL (c. 2000-2001) -> Java (c. 2001) ->
>>MIT/GNU Scheme (2005) / PLT Scheme (2005-now) ->
>>Ruby (2007-2008) -> PLT Scheme / GHC Haskell (now)

gwbasic (1993-1995) didn't know for anything better
qbasic (1996-1999) finally those damn line numbers are gone
pascal (1998-1998) Stupid begin end
c++ (1999) In use
c# (2001) In use
T-sql (2001) In use
lisp (2003) In use
erlang (2006-2006)
delphi (2006-2006) Again those stupid begin end
php (2007-2007)
prolog (2007-2007) One of my favourite though I don' use it much
haskell (2008-2008) http://tourdelisp.blogspot.com/2008/03/lisper-first-look-at-haskell.html
j (2008-2008) One of my favourite though I don't use it much
joy (2008-2008) One of my favourite though I don't use it much
>
> B) Relevant comments; e.g. (in my case):
Don't have much time, but as you see from my line I was using
procedural/OO languages all my life and I don't have any problem
working with functional languages where the problem naturally should
be solved functionally. There are many problems that are stateful and
I don't want to jump through houps just to make my solution
functional.
>
>
>
>
>
>>I first because fascinated with the idea of a computer program after
>>seeing a demonstration of an application at a personal computer show
>>in circa 1981 for interactive computer music on an Apple ][ j-plus computer
>>(see
>>http://www.apple2world.jp/apple2/COL/MapItems/apple2jplus/apple2jplus...
>>(in Japanese)) (at the Sumitomo Sankaku Building in Shinjuku, Tokyo).  The
>>application involved a user playing music on a music keyboard, and vertical color
>>bar graphs on a horizontal line appearing in real time in response to the notes
>>played on a color monitor.  The idea of a computer exhibiting a form of
>>artificial intelligence by responding to user input in real time according to
>>a computer program seemed fascinating at the time.
>
>>Also interesting at that show was a lunar lander program, which I think
>>was on a black-and-white Commodore VIC-1001 (see "History of Commodore
>>Computers" athttp://oldcomputers.net/vic20.html, for Commodore Japan for
>>1980) (known as the VIC-20 (seehttp://oldcomputers.net/vic20.html) in the
>>United States, where it was released a year later), in which the player's
>>character would occasionally fall into a ditch while running across the screen,
>>which I found extremely humorous.
>
>>After that, I first started out in programming in 1983 with N-BASIC on
>>the NEC PC-8001 (see
>>http://museum.ipsj.or.jp/en/computer/personal/0001.htmland
>>http://park10.wakwak.com/~pinevill/image/nec/PC8001.JPG) (I was a poor
>>student at the time, so I had no choice but to code on coding sheets and
>>manually to enter my code in computers line by line at computer showrooms).  
>>I planned to write and sell my own computer program in order to purchase my
>>own computer; alas, this plan later failed miserably (my N-80 BASIC pocketbook
>>accounting program, written on a PC-8001 mk II (see
>>http://park10.wakwak.com/~pinevill/image/nec/PC8001mkII_1.JPG), wouldn't
>>sell), and as a result, I was prohibited from programming between 1985 and
>>1989, when I finally entered college.
>
>>Later, I became exposed to the Apple Macintosh personal computer (see
>>http://applemuseum.bott.org/), and felt excited at its prospects for multimedia
>>applications.  This is when I first became interested in multimedia applications
>>for personal computers.
>
>>Just before entering college, in March of 1989, I visited a computer exhibition
>>at Tokyo Dome featuring the Fujitsu FM TOWNS "hyper-media personal
>>computer" (seehttp://museum.ipsj.or.jp/en/computer/personal/0029.html).  
>>This computer was essentially a Japanese counterpart to the Macintosh, geared
>> toward starting a home-use-focused multimedia-based personal computer
>>movement in Japan, to counter the business-use-focused PC-9801 personal
>>computers (seehttp://museum.ipsj.or.jp/en/computer/personal/0011.html)
>>from NEC.  Exposure to the FM TOWNS at this event greatly strengthened my
>>interest in multimedia applications for personal computers, especially on home-use
>>entertainment applications focusing on the use of high-speed three-
>>dimensional color computer graphics and stereo sound in a virtual reality
>>environment.
>
>>Then in college, I became exposed to Scheme in computer science.  I was also
>>briefly exposed to Pascal, Common Lisp, and C, but greatly preferred Scheme
>>because of the emphasis on higher-order programming techniques, which I
>>found greatly helped me to concentrate on what I wanted to program,
>>rather than how to program it.  For similar reasons, I also became interested
>>in Haskell, to which I was also briefly exposed. However, I did not have many
>>opportunities to study Haskell at that time, because the language was not
>>used in the courses that I actually took (as opposed to audited).  I also took
>>a course in Formal Semantics of Programming Languages, which I found to be
>>one of the most interesting courses in computer science.  In particular, the
>>discussions on the operational and denotational semantics of the lambda calculus
>>were especially interesting.
>
>>One difficulty that I had in sustaining my interest in computer science was the
>>lack of any focus on multimedia applications.  While functional programming was
>>very interesting from a theoretical viewpoint, most functional programming
>>courses lacked any focus on multimedia applications.
>
>>After graduation with a Bachelor of Science in computer science, since I was
>>more interested in the theory of programming languages than in business
>>applications, I looked for ways of using this background at work, but
>>unfortunately, most careers in industry did not use any of this background.  I
>>was very exhausted from years of lack of sleep in conquering math phobia and
>>discrete mathematics in eventually passing the course in design and analysis of
>>algorithms, and did not want to proceed immediately to even more years of even
>>less sleep in graduate school.  So, I decided to pursue my study of programming
>>language theory as a hobby, and eventually to find a way somehow to earn
>>income without having to spend time in work (perhaps through writing a book or
>>creating a popular Web site with income from advertisements), so that I could
>>concentrate on studying programming language theory full-time as a hobby, while
>>simultaneously searching for a way to integrate this interest with my other interests
>>in virtual reality and multimedia applications.
>
>>Currently, I work as a Japanese->English translator/interpreter at a patent office
>>in Tokyo, where I translate patents for computer technology while studying
>>programming language theory whenever I have free time during the week after
>>work.
>
> Basically, what led me to the idea of this survey were the following
> thoughts:
>
> 1) A recent discussion on comp.lang.prolog, entitled "How long it
> takes to educate Prolog/CLP programmer?", where Nick Wedd stated, "The
> more C++-like experience they have, the higher this factor [of the
> amount of time required to learn Prolog and CLP compared to that
> required to learn a C++-like language such as Java] will be.
That's bs. It's all about:
1. Does anybody want's to learn prolog or whatever language
2. Does he has natural predisposition for thinking in certain paradigm
Some people think in objects, some prefer assignment, some function
mapping the other are multiparadigm.
Though I've never sit down to learn scheme, I'm a common lisper I
found that I prefer lisp-1 than lisp-2.Just from looking how would I
like to see the code flow.
People are differnet, problems are different that's why we have
different langauges and paradigms.
> Logic and mathematics are barely relevant."  Wedd's hypothesis is that
> there exists an inverse correlation between experience in
> object-oriented programming and speed in learning Prolog.  
Lies, damn lies and statistics. What kind of people did he sampled?
Was it some Java veterans or programming-is-just-my-job people who
doesn't understand why the hell should they be learning some weird
language where there is no money in it, while everywhere there are job
ads for java programmers.
>I suspect
> that a similar correlation exists between experience both procedural
> and object-oriented programming and speed in learning non-strict,
> purely functional programming languages, such as Haskell or Clean.
Purely functional is a misnomer, the better name would be langauges
who lack assignment.
>
> 2) A blog entry that I read in 2006 (in Japanese) in which one person
> who desperately wanted to learn programming, but who was inadept in
> the art, failed at learning VB, Perl, Python, C, C++, and Java, but
> was eventually able to learn Haskell (see the (Japanese-language) blog
> entry athttp://d.hatena.ne.jp/scinfaxi/20070523/1179935877).  (He
> then complained that he remained a NEET (one "Not currently engaged in
> Employment, Education or Training") because he had difficulty finding
> a programming job using Haskell.)
>
> At the time, I did not consider this entry surprising, but since then,
> I have discovered that Haskell seems to have a much steeper learning
> curve (at least for me) than Scheme or Ruby (even though I also find
> it highly interesting precisely for this reason).  I am now very
> surprised that somebody who had difficulty with Perl and Python would
> not have such difficulty with Haskell, and suspect that there is an
> inverse correlation between familiarity with alternative programming
> paradigms and the ability to learn a non-strict, purely functional
> programming language such as Haskell or Clean; i.e., the less one
> knows about alternative programming paradigms, the easier it is to
> learn Haskell or Clean.
>
> 3) A discussion I read several years ago (reference unavailable) in
> which somebody once said that students of programming should not learn
> BASIC as a first language because it leads to students writing
> spaghetti code.  Somebody else also wrote (reference unavailable) that
> line BASIC should be especially avoided (presumably for this reason).
It is practically impossible to teach good programming to students
that have had a prior exposure to BASIC: as potential programmers they
are mentally mutilated beyond hope of regeneration.
Edsger Dijkstra

And I disagree. it should say it's hard to teach non-mainstream
languages to students who know that there is no money in them and have
experience with mainstream langauges that earned them cash by making
web sites for video store next door.
>
> Summary:
>
> There seems to be an inverse correlation between familiarity with
> procedural/object-oriented programming languages and ease of learning
> a non-strict, purely functional programming language language, such as
> Haskell or Clean.  A detailed survey might help in investigating this
> correlation.
Then make a free survey that could be finished in under 2 minutes
http://www.freeonlinesurveys.com/faq.asp (google result didn't try it
myself)

cheers
bobi
>
> If you could please briefly outline your evolution in programming
> languages as a functional programmer (preferably in this thread), and
> describe any related thoughts/comments that you have on this
> correlation (or anything else relevant), your assistance in this
> research would be greatly appreciated.
>
> -- Benjamin L. Russell- Hide quoted text -
>
> - Show quoted text -
no comments
diggit! del.icio.us! reddit!

RELATED THREADS
SubjectArticles qty Group
Hypergeometric functions and beta functionssci.math ·