Meetup ONLINE – Windows, macOS and the Web: Lessons from cross-platform development
18 novembre @ 6:30 PM - 8:00 PM
Windows, macOS and the Web: Lessons from cross-platform development
Un nuovo appuntamento online dedicato al C++!
Saluti iniziali – Marco Arena
Windows, macOS and the Web: Lessons from cross-platform development – Sebastian Theophil
For twelve years, think-cell had been a Windows-only software company and their codebase of approximately 700k lines of code had accumulated many unintentional platform dependencies. Six years ago, the company decided to port their application to the Mac. This change has affected every part of the development process: the project organization, build system, and the way they program in C++ today.
The commonly used cross-platform libraries such as Qt and boost were good tools to build on, but by themselves were not enough. For many concepts, such as mutexes, semaphores, or shared memory, they only offer a common interface to platform-specific objects with very different semantics and lifetimes. The team wanted light-weight, platform-independent C++ abstractions with identical semantics for rendering, internationalization, file I/O, mouse event handling, RPC calls, and error reporting.
Developing these was challenging, firstly, because they had to define which semantics application needed and, secondly, the team had to implement them on each platform. This was not an easy process but Sebastian would argue it has improved the quality of code very much. By now, think-cell has moved on to the next challenge and has started to move some functionality to web applications. They wanted to reuse the existing code-base of course, and that meant writing web applications in expressive, type-safe C++.
Definitely an advantage in the book! They have built web applications using emscripten, but thanks to a student intern, they generate type-safe C++ bindings, beyond those provided by emscripten, from any TypeScript interface definition. In this talk, Sebastian will give you an overview of the C++ abstractions think-cell have implemented, focusing on the cross-platform problem areas where common semantics were hard to define due to limitations of either one of the operating systems, and of course, Sebastian will show you tools that let the company write a web application in C++.
Networking su Remo!
- Attenzione: ci hanno sfrattato da Remo! L’evento al momento sarà solo la live su YouTube, quindi puoi impostare un promemoria e seguire la diretta.
- Slides & Demo
Come sono strutturati i nostri meetup online:
- iscriviti all’evento su Remo (al link sopra)
- il giorno dell’evento potrai entrare a partire dalle ore 18 (riceverai un promemoria) ed iniziare a fare due chiacchiere con gli altri
- la sessione inizierà alle 18:30 e la stanza si trasformerà automaticamente in un “auditorium virtuale”
- alle 19:30 torniamo a fare networking sui tavoli virtuali
- puoi rimanere quanto vuoi oppure andare a cena e tornare!