A language agnostic meditation on software design and explorations in code.
It's easy to think of the internet not grounded in any place. But, nothing is performed out of its a cultural context, and coding is no exception, so we offer you this preamble with two small sections, to set expectations, before we get into the rest of the site. In Australia, where we live, it’s appropriate to lead with an acknowledgement of country.
We acknowledge and pay respect to the Elders past and present, to those who have passed before us and to the members of the Aboriginal and Torres Strait Islander community. We acknowledge the Turrbal and Yuggera Peoples, the traditional custodians of the city we live and work in.
We acknowledge that discrimination exists, and that the coding community is more
difficult and more inequitable for women, for people of colour, for LGBTQI+ individuals, and for those whose English is a
Second Language (ESL). I recognise my privilege and hope to balance the scale. In the spirit on inclusion, all are safe and welcome at
alt-ctrl-code
, my preferred pronouns are his/him, but I otherwise adopt we/us on the site. If you'd like to know more about me IRL
, I link a short bio. With all that said, we hope that you enjoy and find value in the work.
Our goal at alt-ctrl-code
is sharing with coders at any level, junior and “senior”, fresh or not-so-fresh. We assume some familiarity with coding in
a developer stack, perhaps JavaScript or Go or Python, and though we don't aim to cover languages directly, we do refer to and include them from
time to time. This is our extended meditation on application design, regardless of the particular stacks we use, or whether
we adopt TDD, linting and so on. The explorations escalate naturally, so suspend your disbelief, and enjoy the show.
We hope you find a flavour to like or two.
From the advent of modern programming languages with FORTAN, Lisp and COBOL emerging in the late 1950's, though ANSI C in the early 1970's and into the popularisation of objected-oriented languages like Smalltalk, Objective C and C++ in the 1980's, software engineering was for the most part a stable affair. We might have been a COBOL or C prog for our entire career, give or take. But then --
The invention of the world wide web after Tim Berners Lee wrote the first hyper text (HTML) browser, literally called WorldWideWeb in 1990, was transformative. It’s not hyperbole to suggest software development began to change dramatically that year, 30 odd years ago. Netscape shipped JavaScript in 1995, the same year that gave us Java, Ruby, PHP and the Perl CPAN - getting dynamic web development going. The noughties gave us C# (2000), then Scala (2004), AJAX & Web 2.0 (2006), Groovy & Clojure (2007), Node.js (2009), and in just the last decade Go (2012), Swift (2014), Rust (2015) and Kotlin (2016).
It's non-exhaustive, but still a dizzying cosmos of languages, ecosystems and communities to navigate for veteran and rookie alike. Whether we cut our geek on Java or C#, or got started in Ruby or Node or whatever, the diversity of our industry is crazy.
While all languages and different, in that they emerge at different times with different goals, and may have radically divergant idioms and norms, whether its the enterprise "safety" of Java and C#, the isomorphism of JavaScript ("The world’s most misunderstood programming language"), the pure productivity of Python, or the athletic asceticism of Go, whatever attracts us, the goals of the coder more often remain doggedly consistent, whether parsing a file or exposing an endpoint, and sampling a generous variety is probably healthy advice.
Exploring design approaches and coding choices, across ecosystems, makes our work better – because when we lean into "learning", code is fun and awesome.
Our goal is to consider a series of topics. Each topic contributes toward a small but "complete" progressive web application with supporting API, SDK and CLI, running in the cloud. Our aim is to "think out" a very narrow slice, allowing us to reason about specific design and code ideas, without the cognitive burden of busy application features and code.
Module application example source and packages are provided (and linked) publicly here on GitHub and npm .