Branch: master
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
61 lines (42 sloc) 5.36 KB
layout date title author github_username authorurl gravatar
2017-12-03 T19:00:00
A Tight-Knit Group
Geoffrey Huntley

Maybe I've been attending the wrong meetups here in Sydney but I can't scratch the feeling that there's something wrong with the standard format. A couple presentations, free booze and free food. Ugh. It's all consumption driven with very little attendee participation. Over the last couple years I've dramatically scaled back my attendance to such meetups because there are better sources to obtain knowledge in the world of unlimited opportunities that is open-source. The standard pace is for chumps, if you’re more driven than “just anyone” - you can do so much more than anyone expects.

So few professions have the opportunity that we do - like, if I want to be an expert in Civil Engineering, I can't just like build a bridge in my spare time. But if I want to understand functional reactive programming at a deeper level, I can literally hang out with the folks that invented the techniques, with zero hiring bar to entry. Open-source is such a massive opportunity for folks in tech to improve their careers, it makes me so sad that it's so criminally underutilized.

Our events will center around being active participants in open-source, learning via deliberate spaced repetition, pairing and participating in documentation sprints and software sprints. There will be minimal presentations as there's other meetups in Sydney for that type of stuff. Bring your laptop, food and drinks and we will supply high speed internet, opportunities for learning and just good vibes.

If you don't already know Haskell then this is the perfect opportunity as for the first couple of months [on a weekly basis] we will be working through the haskell book. If you already know Haskell, you are also welcome to participate and help others get up to speed.

"If you want to go fast, go alone. If you want to go far, go together." - African Proverb

The goal is to build a community of Haskell developers in the Sydney area that freely shares knowledge and develops a global reputation for shipping great things whilst remaining inclusive to beginners and never elitist language jerks.

Why Haskell?

In most programming languages the world as we know it lives and dies in the confines of the opening and closing brace of the main function, which is the entry point to our application. Everything that happens in our program, the universe our program interacts with, happens between those two braces. By its very definition, our program returns an exit code, specifying whether it succeeded or not, and everything else happens as a side-effect.

public static void main(String[] args)

The implication, that all the work is done between the two braces of the main method, is what drives everything we know about this model — every design pattern, every practice, every discipline, every tool, library, or framework — were created to let us manage this model of our world that exists between those two braces. We have decades of knowledge in how to do this properly in almost any language.

Earlier this year, by chance I stumbled into a pub with Tony Morris who over a few beers, introduced me to Haskell and how to how to implement pure-functional I/O in C#.

main :: IO () -- reads as 'main, having the return type of IO ()'

What I saw being explained is that Haskell doesn’t actually do any work inside of its main function. Instead, the program “describes” in a declarative way what is going to have happen when your program executes, and this “description” will be returned into the Haskell runtime, and exactly what was described will happen - with no possible side-effects or surprises. It flips the entire idea of execution on its head - the work, the actual execution of effects is not being done inside of main - it’s done on the outside!

Intriguing huh?