[Haskell-cafe] Investing in languages (Was: What is your favourite Haskell "aha" moment?)

Vanessa McHale vanessa.mchale at iohk.io
Thu Jul 12 10:28:53 UTC 2018


I wouldn't say Rust has a large capacity for FP. I am not familiar with
F#. The thing that makes FP infeasible in Rust is not the lack of purity
but rather the fact that affine types make it difficult to treat
functions as first-class values.


On 07/12/2018 01:40 AM, Brett Gilio wrote:
> Tony,
>
> I am curious on your attitude towards multi-paradigm and ML-like
> languages. I agree that functional programming is easily the better of
> the bundle in many forms of application logic and elegance (which is
> why I have come to love Scheme and Haskell), but do you see any room
> for those languages like F# or Rust which have large capacities for FP
> but are either functional-first (but not pure) or a hybrid?
>
> Brett Gilio
>
> On 07/12/2018 01:35 AM, Tony Morris wrote:
>>   I used to teach undergrad OOP nonsense. I have been teaching FP for 15
>> years. [^1]
>>
>> The latter is *way* easier. Existing programmers are more difficult than
>> children, but still way easier to teach FP than all the other stuff.
>>
>> [^1]: Canberra anyone? https://qfpl.io/posts/2018-canberra-intro-to-fp/
>>
>>
>> On 07/12/2018 04:23 PM, Joachim Durchholz wrote:
>>> Am 11.07.2018 um 16:36 schrieb Damian Nadales:
>>>>
>>>> I speak only from my own narrow perspective. I'd say programming is
>>>> hard, but functional programming is harder.
>>>
>>> Actually it's pretty much the opposite, I hear from teachers.
>>>
>>>> Maybe that's why Java replaced Haskell in some universities
>>>> curricula
>>> The considerations are marketable skills.
>>> A considerable fraction of students is looking at the curriculum and
>>> at job offers, and if they find that the lists don't match, they will
>>> go to another university.
>>> Also, industry keeps lobbying for teaching skills that they can use.
>>> Industry can give money to universities so this gives them influence
>>> on the curriculum (and only if they get time to talk the topic over
>>> with the dean). This aspect can vary considerably between countries,
>>> depending on how much money the universities tend to acquire from
>>> industry.
>>>
>>>> https://chrisdone.com/posts/dijkstra-haskell-java. For some reason
>>>> most programmers I know are not scared of learning OO, but they fear
>>>> functional programming.
>>>
>>> Programmers were *very* scared of OO in the nineties. It took roughly
>>> a decade or two (depending on where you put the starting point) to get
>>> comfortable with OO.
>>>
>>>>
>>>    I think the reason might be that OO concepts
>>>> like inheritance and passing messages between objects are a bit more
>>>> concrete and easier to grasp (when you present toy examples at least).
>>>
>>> OO is about how to deal with having to pack everything into its own
>>> class (and how to arrange stuff into classes).
>>> Functional is about how to deal with the inability to update. Here,
>>> the functional camp actually has the easier job, because you can just
>>> tell people to just write code that creates new data objects and get
>>> over with it. Performance concerns can be handwaved away by saying
>>> that the compiler is hyper-aggressive, and "you can look at the
>>> intermediate code if you suspect the compiler is the issue".
>>> (Functional is a bit similar to SQL here, but the SQL optimizers are
>>> much less competent than GHC at detecting optimization opportunities.)
>>>
>>>> Then you have design patterns, which have intuitive names and give
>>>> some very general guidelines that one can try after reading them (and
>>>> add his/her own personal twist). I doubt people can read the Monad
>>>> laws and make any sense out of them at the first try.
>>>
>>> That's true, but much of the misconceptions around monads from the
>>> first days have been cleared up.
>>> But yes the monad laws are too hard to read. OTOH you won't be able to
>>> read the Tree code in the JDK without the explanations either.
>>> _______________________________________________
>>> Haskell-Cafe mailing list
>>> To (un)subscribe, modify options or view archives go to:
>>> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
>>> Only members subscribed via the mailman list are allowed to post.
>>
>>
>>
>>
>> _______________________________________________
>> Haskell-Cafe mailing list
>> To (un)subscribe, modify options or view archives go to:
>> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
>> Only members subscribed via the mailman list are allowed to post.
>>
> _______________________________________________
> Haskell-Cafe mailing list
> To (un)subscribe, modify options or view archives go to:
> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
> Only members subscribed via the mailman list are allowed to post.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20180712/afebaf1e/attachment.sig>


More information about the Haskell-Cafe mailing list