doyougnu
990 posts

doyougnu
@do_you_gnu
PhD in programming languages. PL, FP, SAT solvers, Philosophy, and most importantly, dungeons and dragons. all views and claims are my own. (he/him)
Beigetreten Temmuz 2009
346 Folgt125 Follower
doyougnu retweetet

This is a very hazardous false equivalence, and it gets trotted out every six months or so.
There's an important difference between the items in those two sets.
If I tell you, that say, this code only cares that some type argument is a Monoid, you know how to reason about it and come away with laws you can use to check if your code is correct without having to go down to the case-by-case instantiation of that code at every possible type.
That doesn't happen if I tell you it is a Strategy. What are the laws of a Strategy? The Gang of Four sure as hell never told us any. So now I have to read the code anyways, and still reason through every possible instantiation of the types. I've gained nothing except additional onboarding time, and some vocabulary for smells and feelings.
Now it did give us, for the time, a vocabulary that was better than what we had in the imperative world. It gave us a canonical reference chapter for each golden idea, complete with a smorgasbord of options to pick and choose between judiciously written so as to not offend anybody that their precious variant on the idea wouldn't fit the mold.
But, ultimately, the GoF patterns hold for a narrow range of languages. And patterns are really about expressing thoughts your language is bad at letting you properly encode as a library. They more or less acknowledge that in the book itself. They are by definition code that some poor schmuck is stuck writing variants on over and over.
But I can write a 'Monoid' and package it up and never rewrite that code again. Most consumers of it need never care too much about the details. You can know it is safe to foldMap with (at least for finite cases) as long as you trust the implementation to be correct to the claim of being a Monoid.
Now, we do have _plenty_ of "real" design patterns in functional programming!
* encouraging `higher-kinded` data to avoid having lots of copies of near identical structure
* "boring" haskell so you don't have to teach so many new tricks and more of the language works
* some folks like to newtype all sorts of things rather than rely on them being stringly typed.
* all the machinery we use to manage masking for exceptions is right on the cusp of being a design pattern. I say that because we _do_ get to reuse the implementation that was written by God and/or @simonmar back at the dawn of time, but knowing when and why to use the mask idiom takes about the effort of reading one of the GoF chapters.
* I gave a bigger laundry list here last time the oop design patterns vs. functional programming thing came up: x.com/kmett/status/1…
*tl;dr* FP isn't free of design patterns, but typeclasses aren't design patterns.
English
doyougnu retweetet

FUNARCH 2025 call for lightning talks is up! Come give a 5-10 minute presentation about your hexagonal architecture, or the system that you've architected in a functional language, or your experience using FP in the large!
#Call-for-lightning-talks" target="_blank" rel="nofollow noopener">conf.researchr.org/home/icfp-spla…
English
doyougnu retweetet

Today is the day! Make sure you don't miss today’s deadline to submit to The Third ACM SIGPLAN Workshop on Functional Software Architecture - FP in the Large! #About" target="_blank" rel="nofollow noopener">conf.researchr.org/home/icfp-spla…
#FUNARCH2025
English
doyougnu retweetet

Only a single week to go until the deadline on Monday, June 16th: Send us your paper on FP in the large - to the SIGPLAN Workshop on Functional Software Architecture! Happy Writing! #FUNARCH-2025-Call-for-Papers" target="_blank" rel="nofollow noopener">conf.researchr.org/home/icfp-spla…
English
doyougnu retweetet

Only a little more than a month before the deadline on Mon. June 16: Send us your paper on FP in the large - to the SIGPLAN Workshop on Functional Software Architecture! Happy Writing! conf.researchr.org/home/icfp-spla…
#FUNARCH2025
English
doyougnu retweetet

Website & CfP online for the Erlang Workshop, co-located with ICFP 2025 in Singapore. Submit your paper by 6th June! We look forward to bringing together scholars and practitioners working on Erlang, Elixir, BEAM, functional programming, and concurrency! conf.researchr.org/home/icfp-spla…

English
doyougnu retweetet

The Call for Papers for #FUNARCH2025 is open - deadline is June 16th. Send us research papers, experience reports, architectural pearls, or submit to the open category!
#FUNARCH-2025-Call-for-Papers" target="_blank" rel="nofollow noopener">conf.researchr.org/home/icfp-spla…
functional-architecture.org/events/funarch
English
doyougnu retweetet

We've extended the deadline for FUNRARCH 2024 to June 12th.
Know something about what makes functional programming work in the large? Write it up!
functional-architecture.org/events/funarch…
English

just too good to pass up, even on @elonmusk's @trashfuturepod
Steven Strogatz@stevenstrogatz
"How would you explain the concept of eigenvectors to a child?" asks @JayDeep_1729. A few years ago I tried to do something like that – to explain eigenvectors intuitively, in five minutes, with no pictures, just words. youtube.com/watch?v=AXk12z…
English

Many thanks to @PaulMBittner instrumented the final touches and pushed the manuscript through and to @EricWalkingshaw and @ThomasThuem for all their hard work and support over the last 2 years! Congrats guys!
English

At long last my article Variational satisfiability solving: efficiently solving lots of related SAT problems (link.springer.com/article/10.100…) has been published in Empirical Software Engineering! This is the most refined version of the VSAT work outside of my thesis!
English
doyougnu retweetet

doyougnu retweetet

@chreekat @GabriellaG439 He’ll always be space daddy to be. No I’m not in anyway a supporter of musk lol
English

@GabriellaG439 I constantly refer to him as 'Trump' unintentionally and without realizing it
English
doyougnu retweetet

Idris 2 version 0.6.0 has been released. For more details, see idris-lang.org/idris-2-versio…
Enjoy!
English
doyougnu retweetet

@lexi_lambda I’ve switched to Dvorak since last week and now clock in at around 35 words per minute. Not fast but usable. But my wrists feel so so much better. There is much less demand to move your hands in Dvorak. I’ll never go back.
English





