Last weekend I participated in ZuricHac. It was an awesome event. Well organized ππ and full of interesting people!
ZuriHac is the biggest Haskell Hackathon in the world: a completely free, three-day grassroots coding festival organized by ZΓΌrich Friends of Haskell. It features fantastic keynotes, interesting tracks, and of course lots of hacking and socializing!
This year, due to Corona π¦ π· the event took place online. Everything revolved around a Discord server. There were channels for particular projects people were hacking on, channels for the different tracks (beginner, intermediate and expert) and common channels to discuss the talks, hang out and share pictures of coffee β
Here's a small recap of the things I did and learned.
did
- Joined 3 talks
- Languages all the way down by @rob_rix
- (Programming Languages) in Agda = Programming (Languages in Agda) by Philip Wadler
- Effects for Less by @lexi_lambda π€―
- Joined one live coding session on GHC language extensions. Write a GHC extension in 30 minutes by @RaeHaskell.
- Joined one spontaneous call about lazy IO pintfalls when working with files by @me_coot.
- Found some fellow Spanish speakers #lakeside-spanish (Spain, Argentina, Mexico, Guatemala, probably more!) π¬πΉπ²π½πͺπΈπ¦π·
- Collaborated on tsearch.io and even got a contributor!!! π€©
- Participated in different conversations and reacted with tons of emoji π₯³
learned
- Lazy evaluation / lazy IO one of Haskell main features. As much as it enables some good stuff it can also cause some problems. When reading files (
readFile :: String -> IO String
), the files are open but not read until the evaluation is forced which might result in too many open files issues. Since files are closed as soon as the content is read the solution is to force the evaluation. π€ - Effect systems are all about abstraction of effects and being able to represent those effects in different ways.
- Effect systems have performance penalties due to polymorphism.
- The compiler (GHC) does a mind-blowing job optimizing code. π€―
- To there's some much the compiler can do. So is up to the developers to find ways to produce more optimized code.
- Is important to know how and why the compiler optimizes (or not) certain code.
- TypeScript is harder than Haskell. Being able to type JavaScript programs makes for a very complex type system.
- Formal proof languages like Agda are less scary than they seem! π€
And a huge thanks to the organizers and everyone who made the event possible!
I look forward to participate next year in person.
Top comments (0)