Basics Designs and How We Got Them Wrong

Room 5
17:40 - 18:40

Talk (60 min)

We want to write clean code and design software that can last years.

However, even basic constructs of programming languages are broken. Strings, collections, async, private members, equality checks and many more - all these things are ill-designed and should be reworked. Do you know why and how?

In this talk, we're going to revisit the basics of programming languages. We'll see why our interfaces are wrong, why async shouldn't use coroutines, why we shouldn't encapsulate with private members, or why we should replace strings with something better. We'll see the problems and then consider solutions that lead to better language design and better code quality.

Adam Furmanek

I am Adam Furmanek, and I am a professional software engineer with over a decade of experience. In my career, I worked with all layers of the software engineering and multiple types of applications, including logistics, e-commerce, machine learning, data analysis, and database management. I am always interested in digging deeper, exploring machine code, and going through implementation details to better understand the internals of the technologies I use every day. That's why I like debugging, decompiling and disassembling the code to understand memory models, concurrency problems and other details hidden deeply inside. In my free time, I play ping-pong, watch Woody Allen's movies and blog stuff at