Roma
Via Barberini 29, 00187
+39 06 772 50 136
+39 06 770 70 449
Rende
Rende (CS)
Contrada Cutura 119, 87036
Codemotion Milan 2023

Codemotion Milan 2023

Codemotion is the largest technical conference for developers, and the Codemotion community now exceeds 250,000 people. This annual event has become a crucial moment for updates and discussions for those who work in, and are passionate about, the world of computer science. For this reason, PC Cube never misses the event, and this year, we were also present at Codemotion Milan 2023.

There were many hot topics discussed, including some particularly interesting ones.

 

Let’s start with the evolution of quadruped robots, a particularly interesting technological innovation in the fields of security, medicine, agriculture, and space exploration.

Victor Barasoul’s presentation was particularly engaging, focusing on the easy implementation of AI-based algorithms. This approach is revolutionizing the programming of quadruped robots, improving their effectiveness and efficiency, and enabling them to adapt more intelligently to their surroundings. This field of research is having a significant impact in sectors such as inspection, agriculture, and space exploration, as quadruped robots are increasingly used in complex and dangerous scenarios. Programming plays a fundamental role in these successful applications and continues to evolve with new discoveries and innovations. It’s worth noting the presence of the HyQReal robot, a massive 140 kg machine that demonstrated its power by moving an aircraft weighing nearly 3 tons in a strength test at Genoa airport, further highlighting the progress in quadruped robot engineering.

 

Next, let’s discuss Servant Leadership, an important reflection on the role of the team leader.

The cohesion of a group and the success of the projects managed depend on this figure. We often focus on the “trendy” technologies currently used in the tech world, but we should never forget how to manage a team of developers from the perspective of the direct supervisor. Ultimately, it is the cohesive group that delivers the work and achieves seemingly unattainable projects in a short time. The topic of adopting an approach based on empathy, trust, and collaboration in technical teams is extremely relevant and intriguing. What strikes me the most is the idea of transforming technical teams into a highly motivated and creative force through leadership that inspires and motivates. Creating an environment where team members feel valued and able to fully express their potential is an ambitious but essential goal. This aspect can significantly improve the effectiveness and productivity of technical teams and represents an interesting challenge for delivery leaders and team leaders. The concept of “Servant leadership” suggests an approach that prioritizes the well-being and development of team members over the leader’s ego. This perspective can open up new avenues for more inclusive and effective leadership.

 

How do you overcome the weaknesses of JavaScript frameworks and libraries when developing web applications?

Today, there is an enormous quantity of JavaScript frameworks and libraries available for building web applications, but almost all of them suffer from the same weaknesses: challenging SEO implementation, poor results in terms of Google’s Core Web Vitals, and performance issues, especially regarding the initial loading and content display on the screen. These weaknesses are primarily due to the large amount of JavaScript code required to make the HTML and CSS page interactive. Browsers render web applications, both client-side (CSR) and server-side (SSR), through the hydration process, which handles event listener binding, application state restoration, and rebuilding the entire component tree from scratch. What Misko Hevery proposes with the Qwick framework is a solution to all of this by eliminating the hydration process and replacing it with a new rendering paradigm called “Resumability.” It refers to the ability to suspend execution on the server and resume it on the client without having to replay or download all the application logic. A web app written with Qwick generates pure HTML and CSS and, in case of user interaction, only downloads the necessary JavaScript code for that action. The framework is based on the concept of delaying the download and execution of JavaScript code as long as possible, using “lazy loading.” This approach helps achieve performance and metrics comparable to those of a static site. Giorgio Boa explained how this is achieved by prefetching the JavaScript code that might be executed based on the user’s previous interactions and connections between various parts, keeping it in the cache, and utilizing service workers. Qwick aims to be a breakthrough framework, providing users with a ready-to-use ecosystem focused on performance and the developer experience, allowing developers to focus on the business logic without worrying about many code optimization aspects.

 

Web components could metaphorically save developers’ lives by addressing many situations where it was necessary to start work from scratch.

Perhaps one of the most interesting talks at this Codemotion is centered on solving a problem that many companies that create web applications using various frontend frameworks and libraries often face. It often happens that to complete a project, a set of basic reusable and composable components must be defined, which will then form the UI of the web app. Sometimes, a complete design system of components needs to be defined, while in other cases, the client provides it to the team for development. But what happens if you later need to create a twin or a similar project with the same set of basic components or design system but using a different framework? Or when you have a component system created with a CSS framework with a specific version, and that same framework releases a new version that is not backward compatible, making those components unusable? Or when the frontend framework itself updates with a new API, rendering the previously used one deprecated? These are all real scenarios that can occur during web development. The topic addressed in Massimo Artizzu’s talk focuses on presenting a solution to these problems: web components. Web components are a set of W3C standards for creating reusable HTML components. In essence, they are a set of native Web platform APIs that, using HTML, CSS, and JavaScript, allow you to create custom, reusable, and encapsulated HTML tags for web apps based on established standards. What you get is a library of reusable components that can adapt to any JavaScript framework, even if it’s based on Server-Side Rendering. During the talk, it was shown how to create them, what compatibility issues exist today with some browsers, which can still be solved through various polyfills while they adapt to web components, working in this direction. I believe that if used properly, web components can be an excellent solution for companies using different JavaScript frameworks and aiming to maintain a consistent look across various web apps.