< up >
2022-06-16

we are developers world congress 2022

I attended at the WeAreDevelopers world congress 2022 in Berlin.

Some facts:

Disclaimer: I’m paraphrasing (italic) the speaker based on my notes and memories as best as I can.

  1. Evolution of C++ - Bjarne Stroustrup
  2. We are all part of the game - Joanna Pirker
  3. Wolfenstein 3D Post mortem - John Romero

Evolution of C++ - Bjarne Stroustrup

The inventor of C++ himself gave a brief history of C++, its features and progress over time.

Low Level abstraction

Bjarne’s initial motivation to create C++ was the lack of C’s (or any available language) abstraction while keeping it’s flexibility talking to hardware without unecessary layers. Dynamic memory without memory management. Someone needs to care about resource: RAII (Resource acquisition is initialization. A class cares about acquiring a resource via constructor and releasing it again via destructor, implicitly.

All good engineering relies on feedback

C++ was shaped by its users and use-cases. While its initial purpose was for the probable first network cluster software (wich got never developed), it got attention from bunch of other directions.

I conclude “Shaphing through feedback” from this and would even say that this is true for many more areas of our life. Especially positive feedback (or as AI people might say “positive reinforcement”) will let us focus on the things that went well. That’s one metric I try to measure for private software projects, which make more fun if its useful for someone.

Make it simple, don’t be to clever

What’s called KISS (Keep it simple stupid) today was important back then to avoid overengineering.

Compile time optimizations

Anything the compiler can compute, doesn’t need to get computed at runtime. From constant arithmetic expressions to static assertions. The latter has the goal to outsource error-handling more to the compiler to improve runtime performance.

Influence

It was very impressive that the language introduces sophisticated concepts like generics and shaped a whole world1. Even if we don’t use it, it seems to be anywhere: conceptual and as a fundament for higher languages or engines.

We are all part of the game - Joanna Pirker

Joanna Pirker

Physical presence

_People celebrated birthdays and weddings within Animal Crossing during the pandemic2. While video converences like skype or zoom let their attendees feel the difference by lack of physical presence, games do. Like in Animal Crossing3, there is a physical interactible presence/avatar representing the friend or family member._

Having a family spread across the country, playing games with physical presence can be quite helpful to overcome distance. Especially with my brother I play games like Minecraft, Fortnite, Raft, GTA, Borderlands, Risk of rain, No mans sky.

As long as this doesn’t replace real interaction, this is a good thing in my opinion.

Wolfenstein 3D Post mortem - John Romero

John Romero is a founder of the famous id software game studio from 1991.

Debugging

There were no debugger around at that time, so the cycle was: making a small code change, test game, repeat. With Assembler and C.

Its amazing how this was even possible. They made their own engine and built a dozen of games per year, mostly two at the same time, with not more than six people. Debugging a game engine without debugger sounds like huge pain to me. Maybe the whole automation, meta-language and tooling thing to accelerate the feedback loop on debugging prevents a developer to evolve their focus and “stamina”. Like how long do you follow the path down the rabbit hole when things go wrong? If you’re already familiar with the assembler-hell, maybe nothing can stop you. Nowadays I don’t have any clue about processor registers in memory dumps and I primarily evaluate a more high level way of debug something than get my hands dirty. Maybe I should…


  1. Go introduces generics this year with 1.18
  2. See Washington Post: The pandemic canceled their wedding. So they held it in Animal Crossing.
  3. or in my case GTA 5