Simone Giacomelli
Experienced Senior Software Architect with 25 years in the computer software industry. Skilled in backend development, web applications, Agile Methodologies, and mobile and cross-platform development. I have a passion for programming languages and software integration. My educational background includes an MSc in Artificial Intelligence from USI Lugano, a BSc in Computer Systems and Networks Security from UNIMI Milan. I believe in continuous learning and am always seeking to expand my knowledge and skills.
Session
Slides for this talk: http://tiny.cc/wwwpy-pycones23
In this talk, we'll venture into a new frontier of web development by introducing an innovative method that seamlessly integrates server-side and in-browser programming. This transformative approach leverages the flexibility and power of Python and is made possible by Pyodide, a Python distribution operating on WebAssembly, and wwwpy, a pioneering library (authored by the speaker) that seamlessly integrates Python server-side operations with Pyodide.
The disconnect between server-side and client-side programming is a prevalent challenge in web development: diverse languages and data structures in play at each end reduce the seamless communication and code reusability.
The solution lies in Python's versatility, bridging this gap through Pyodide and wwwpy. By utilizing Python on both server and client (browser), a myriad of benefits is brought forth:
- The reuse of Python knowledge for client-side code which leverages the developer’s existing Python expertise and past experiences.
- The lower impedance between server and client is made possible by employing identical data structures (datetime, integer, float, list, set, dict, etc.) on both ends.
- The transparent interaction between client and server through secure RPC (Remote Procedure Call).
- The intrinsic development efficiency of sharing code between the two programming environments.
- The possibility to perform DOM manipulation and Web API usage directly with Python.
- The empowering capability to directly access and use JavaScript/TypeScript libraries from within Python, harmoniously blending diverse coding ecosystems and extending Python's functionality.
In this context, Pyodide enables Python code execution directly within browsers and Node.js environments, effectively harnessing Python's potential to redefine the web development paradigm, and wwwpy provides a transparent way to invoke server functions from the browser and a Widget class to interact effortlessly with HTML5 elements.
An additional highlight is Pyodide's support for a variety of packages, including pure Python wheels from PyPI, and pure Python and binary wasm32/emscripten wheels, featuring more than 150 packages such as numpy, scikit-learn, matplotlib, scipy, beautifulsoup4, and networkx.
This talk will fundamentally change the way you perceive web development by introducing an integrated approach, reducing friction between server and client-side and elevating code reuse to new heights.
Join us to explore the future of web programming, where Python reigns, from the server to the browser. Your web development journey will never be the same again!