Feb 7, 2021
FOSDEM 2021 edition takes place online. I won’t miss the overcrowded rooms, the slightly overlapping sessions at opposite sides of the campus, the driving under the marginal weather conditions, the queue for not-so-great food or eating my own spartian lunch. What I surely miss: the atmosphere, the chance to join a session with former colleagues, chat with random people from many countries, grab some swags, remember the years I studied there, and feel the energy.
Some presentations were only "meeeh" IMO (I was disappointed by what I watched on go-lang, maybe I got unlucky). Some presenters would definitely better not act like they are trying to get more followers, wasting 6-7 minutes out of 25 on self-promotion — we can read your bio, right, get to the point.
Playbacks will be available in a few days I believe.
Here are my top picks from the session I attended. Thank you for all the fish 👋
Some people love python also because it is dynamically typed, some people are allergic to it. Using type hints can partly reconcile you with the language — or further upset you, in case you feel it is a half-baked solution that does not fit.
At any rate, introducing Mypy:
Exhaustiveness checking
Type narrowing to check all typing cases are handled
assert_never()
and NoReturn
are neat
Catching errors at "compile time"
Write less trivial tests
Framework can be introduced gradually
Helps you with the heavy lifting of animations, detection collision, variable bindings, with or without listeners. You can implement easing with a fluent API with no sweat. All mundane things that would be extremely tedious to implement in a manual game loop.
I believe Java can be a sound choice for building a game. Recent versions are faster than ever and the JVM footprint has become small and certainly acceptable if you are not trying to squeeze it.
Using… Scheme 😻 The author first shows the desired WA output… by coding it (in emacs), and it is horrible like any bytecode, maybe even worse.
Function (that belongs to a class) vs bound method
dunder methods (get
, set
, delete
, …)
Not enough time to do more than brushing the subject but a good explanation of otherwise somewhat less known mechanisms.
Long time since I did Java/Kotlin (other than some OpenJFX). The involvement this reactive shift requires is not trivial.
Migrate to functional API first (easier)
Everything needs to be reactive (Blockhound is your friend)
More work but doable
Coroutines make non-blocking easier
Don’t go Reactive because others do
Sharing is caring!