





















































Level up your coding skills with the Python: From Beginner to Advanced Bundle by Packt. Learn to code and gain amazing insights from books like Learn Python Programming,Building AI Intensive Python Applications,Modern Time Series Forecasting with Python, and more. This library of 20+ programming books are perfect for novice coders and seasoned pros in growing your career. Plus, your purchase helps support the Python Software Foundation. Starting at US$1.
Hi ,
Welcome to a brand new issue of ProgrammingPro.
In today’s Expert Insight, we share an excerpt from our conversation with Fabrizio Romano, author of Learn Python Programming, Fourth Edition. He discusses Python’s strengths, limitations, evolving concurrency, AI-powered coding tools, and its future.
News Highlights: Eclipse Foundation launches Theia AI and AI-powered Theia IDE; Java 24 launches with 24 new features, including generational GC and 32-bit x86 removal; Google’s Gemma 3, OpenAI’s Responses API, and Visual Studio's GPT-4o code completion debut; and Graphite unveils Diamond AI code reviewer.
My top 5 picks from today’s learning resources:
But there’s more, so dive right in.
Stay Awesome!
Divya Anne Selvaraj
Editor-in-Chief
Legend:🎓 Tutorial/Course | 💼 Case Study | 💡 Insight/Analysis | 📖Open Access Book
free_on_exit()
, a function that automatically frees memory when a function returns by hijacking the return address using inline assembly@MainActor
Is a Game-Changer: Explains how @MainActor
in SwiftUI ensures UI-related closures run on the main thread automatically, reducing the need for manual dispatching.Http::record()
method, which enables monitoring real HTTP requests without blocking them, making debugging, logging, and testing API interactions easier.MERGE
statement updates, inserts, or deletes records based on matching criteria between source and target tables.debug.gem
, and integration with IRB, along with configuration tips.Extracted from a converstation with Fabrizio Romano, co-author of Learn Python Programming, Fourth Edition.
Fabrizio Romano, a seasoned software developer and author of Learn Python Programming (now in its fourth edition), has spent over a decade teaching Python. He has taught Python to professional software engineers and data students through collaborations with Oxford University and other institutions. In this part of the discussion, he shares his journey with Python, its strengths and limitations, and how the language continues to evolve.
Q: What originally drew you to Python?
Fabrizio: In the early 2000s, I was primarily working with C#, Java, and PHP. I also enjoyed competitive programming challenges in my spare time. On one of these platforms, I noticed another competitor using Python. His solutions were conceptually similar to mine but significantly more concise. That intrigued me—I decided to explore Python and was struck by its readability, indentation-based syntax, and expressive nature. What started as an experiment soon became a long-term professional relationship with the language.
One of the platforms I used early on was Project Euler, which is heavily math-oriented. Solving problems with Python allowed me to learn its built-in data structures and understand which were optimal for different algorithms. Through these challenges, I developed a deep appreciation for Python’s efficiency and elegance.
Q: Why would you recommend Python to new developers?
Fabrizio: Python has a gentle learning curve, making it accessible to beginners. Its syntax is close to natural language, and its standard library and extensive third-party ecosystem reduce the need to reinvent the wheel. The language is also highly versatile, spanning web development, automation, machine learning, and more.
Another key advantage is Python’s expressiveness. Compared to Java or C++, Python code is significantly shorter, allowing developers to focus on solving problems rather than dealing with verbose syntax. It also maintains consistency across different data structures. For example, regardless of the collection type, you can simply use len(collection)
to get its size, eliminating inconsistencies found in other languages.
Python is also backed by a strong global community, which means there is a vast amount of support available through documentation, tutorials, and open-source contributions. The ecosystem includes a wide range of tools that make development smoother, from testing frameworks to packaging solutions.
Q: Where does Python fall short?
Fabrizio: Performance is often a consideration—while Python is flexible, it is not the fastest language. That’s why libraries like NumPy and TensorFlow, which handle computationally intensive tasks, are built in C. Python is also not ideal for mobile development. While frameworks like Kivy and BeeWare exist, native languages like Swift and Kotlin are better suited for mobile applications.
Concurrency has traditionally been a challenge due to Python’s Global Interpreter Lock (GIL). However, Python 3.13 introduces an experimental free-threaded mode, signaling improvements in this area. Despite the GIL, many high-performance applications already circumvent these limitations using multiprocessing, async I/O, and JIT-compilation techniques.
Additionally, while Python is widely used in back-end development, JavaScript and TypeScript still dominate the front-end space. That said, frameworks exist that allow Python to be used in front-end development by compiling into JavaScript, though it is still a translation layer rather than a native approach.
Q: What are your thoughts on AI-powered coding assistants like GitHub Copilot?
Fabrizio: AI tools are changing how developers write code. At Sohonet, we adopted GitHub Copilot across the team, and it has proven valuable in handling repetitive tasks and structuring code efficiently. It also helps developers by intelligently predicting test cases and speeding up refactoring.
However, I caution against over-reliance on AI. Programming is not just about writing code—it’s about problem-solving and understanding logic. AI should be used to enhance productivity, not replace fundamental thinking skills. Developers should still challenge themselves with problems to keep their critical thinking skills sharp.
Additionally, developers should be mindful of how AI suggestions influence their approach to coding. While AI can generate solutions, understanding why a particular approach is valid remains crucial. Developers should maintain a balance between leveraging AI’s speed and honing their own problem-solving skills.
Q: How do you see Python evolving in the coming years?
Fabrizio: Python continues to improve in performance, tooling, and concurrency management. The introduction of structural pattern matching, type annotations, and enhanced tooling like Black and Ruff simplifies development. Additionally, efforts to unify package management, such as the UV project, are making Python’s ecosystem more beginner-friendly.
Python’s adaptability ensures it remains a dominant force across industries. With AI advancements and optimizations to the core language, it will continue to be a top choice for developers worldwide. The tooling around Python is also evolving—Jupyter Notebooks have revolutionized how we teach and document code, and deployment processes have been transformed by containerization and tools like Docker.
Python’s strength lies in its ability to evolve while maintaining its core philosophy of simplicity and readability. As the ecosystem continues to grow, developers can expect even more powerful tools and streamlined workflows to enhance productivity.
Author Bio:Fabrizio Romano holds a master’s degree in computer science engineering from the University of Padova and has been working as a professional software developer since 1999 and with Python since 2007. Today, he is the development manager of the Sohonet product development team.
He gave talks at Europython (Berlin 2014, Bilbao 2015) and ProgSCon 2016, on the topics of teaching Python programming
to every employee of a whole company, and TDD and testing with Python. In 2022, he also collaborated with Oxford University, teaching Python to professional software engineers, and data science students. In his free time, he mostly enjoys playing the guitar and teaching meditation, maths, and Python programming.
His book Learn Python Programming, Fourth Edition was published in November 2024.
That’s all for today.
We have an entire range of newsletters with focused content for tech pros. Subscribe to the ones you find the most usefulhere.
If your company is interested in reaching an audience of developers, software engineers, and tech decision makers, you may want toadvertise with us.
If you have any suggestions or feedback, or would like us to find you a learning resource on a particular subject, just respond to this email!