Kiriakos Vlahos is a software engineer with a PhD in Management Science and more than 40 years of experience in the industry. He is the creator of PyScripter, a Python IDE built with Delphi that is hugely popular among both Delphi and Python developers, and the developer and maintainer of Python for Delphi and other delphi libraries.
Originally from Greece, Kiriakos lived and worked in London for nearly 20 years before returning to Athens and continuing his career in academia as a university professor.
We asked Kiriakos to tell us about his career origins, his history with Delphi, and his experience and vision for PyScripter and the Python for Delphi libraries.
When and why did you choose to learn software development?
I was introduced to programming in my first year at university back in the late 80s, and I loved it. At those days, the main programming language was Fortran and we were still using punch cards.
After the second year at university, we started using terminals. As an exchange student in then communist Poland, I learnt some assembly language and I got to use an Apple II personal computer for the first time. I really enjoyed studying programming languages. In my PhD days, I even developed a teaching software package that was used by my university, using Turbo Prolog. More recently I wrote a Monte-Carlo simulation Excel add-in that is also used for teaching.
Why did you choose to work with Delphi?
My PhD work (large scale optimization techniques applied to energy planning) was heavily computational. In addition to Fortran, I started using Turbo Pascal version 4. Compared to the competition at the time, Turbo Pascal was miles ahead. I got hooked on it, and later Delphi, and have stayed hooked ever since.
What were your ambitions when you first started working with Delphi? Have those ambitions changed, or been realized?
My PhD work evolved into a software package that, besides being used for research, was also sold as a commercial product. I always want to produce high-quality modern software, and Turbo Pascal/Delphi certainly helped me do that. It still does.
How did the collaboration with Embarcadero over PyScripter begin?
I was invited by Jim McKeeth to give a couple of seminars on P4D and one for PyScripter. The response was remarkable. There was clearly a great deal of interest from the Delphi community in using Python and Delphi together. Following that, Embarcadero decided to sponsor the development of the delphivcl and delphifmx Python libraries. These libraries, developed with P4D, allow Python users to leverage the power of Delphi in developing GUI Python applications. Embarcadero also provided generous support, as did the company Tranquil IT, for the further development of P4D and PyScripter.
What do you see as the value of Python combining with Delphi? How do they complement each other?
What Python can bring to Delphi is access to its vast range of libraries. Python is the language of choice for Data Analytics and AI, so every C and C++ library in those fields becomes readily accessible from Python. Python is also a good choice for scripting Delphi applications, since users are likely to be familiar with the syntax. On the other hand Python is slow and weak when it comes to developing GUI applications. Delphi excels in developing fast native applications and its RAD aspects are second to none. So combining the two makes great sense.
Why did you decide to build a Python IDE with Delphi?
Almost by accident. I was looking for a scripting solution for my Delphi software, and back in the late 90’s Microsoft was pushing ActiveX Scripting (vbs, jscirpt), another technology abandoned by Microsoft. One of the languages available for ActiveX Scripting was Python. So I had a close look at Python and I loved the compact syntax and its design principles. Then I came across Python for Delphi (P4D), a library that enabled the use of Python with Delphi together and provided an alternative to ActiveX scripting.
At the time the available IDEs for Python were really very basic. I developed a simple Python IDE for my own use, but Morgan Martinez, the maintainer of the P4D at the time, encouraged me to release it publicly. The user reception was amazing and provided me with the motivation to keep on improving it ever since. Later, when PyScripter development was hosted at Google Code, it would get hundreds of thousands of downloads every time there was a new release. The closure of Google Code was frustrating and held back development until it moved to its current home at Github. By that time Python had become very popular and a number of free and commercial Python IDEs came up. But, despite the intense competition, PyScripter still maintains a sizable and loyal user base.
What was the inspiration behind Pyscripter? What did you intend to achieve with it, or what problem did you want to solve?
As mentioned earlier, I originally developed the first version for my own use! But, once it was publicly released, the huge user response and encouragement was very rewarding and gave me inspiration to continue the development. At the time and as mentioned in the project description, the aspiration was to develop a Python IDE that is competitive in functionality with commercial Windows-based IDEs available for other languages
Does PyScripter match your original intentions for the tool?
In many ways yes. But there are so many things I would like to add to the project…
What would you like to see improved or added to PyScripter?
Here are some of the areas of potential improvement:
- Refactoring support
- Better support for Linux and WSL Python development
- Android support
- Editor improvements (multi-caret editing, etc.)
What makes PyScripter different from many of the other Python IDEs out there?
PyScripter is Python-centric. The main competitors, such as PyCharm, VS Code, Visual Studio are general IDE’s that support Python as one of the many other supported languages. As a result, PyScripter offers a much more streamlined and less bloated user experience to Python developers. It is a lightweight but at the same time powerful Python IDE. Also, its learning curve is less steep, making it a good choice for novice programmers.
How was the P4D project conceived and implemented?
P4D is a very old project. The original developer was Dr. Dietmar Budelsky. At the time I got involved in the project (early 2000) the maintainer was Morgan Martinez, who was the author of VarPyth, a unit that allows high level access to Python objects from Delphi. I contributed the first version WrapDelphi, which allows high-level access in the opposite direction using RTTI, around 2005. At that time the first version of PyScripter was released initially as part of the P4D project. About a year later Morgan left the project and passed the task of developing/maintaining it to me.
Do you know why the initial developers/maintainers of P4D ended their involvement? Did they ask you to maintain P4D or did you take the initiative yourself?
I don’t know about Dietmar, but I know that Morgan’s company shifted development from Delphi to .NET or Java, and he no longer had the time to work on the project.
What do you enjoy most about software development?
- The creative aspects of programming
- Problem solving
- Positive feedback from users
- The fact that if you like programming, you will never get bored in your life.
What frustrates you most about software development?
- Bug hunting can be frustrating sometimes
How do you anticipate the software developer profession will change in the coming years?
Having been in the field for quite some time, one thing that strikes me is that software development has not changed massively over the last half century. The most popular language on the planet right now, Python, has been around for more than 30 years. Of course there have been innovations (object orientation, functional programming, IDEs and tooling ), but I don’t think the nature of programming has changed much. The majority of popular programming languages are still procedural (if statements, loops etc.). I really like non-procedural (declarative) and functional languages and I hope at some point they gain momentum.
The thing that has changed software development a great deal is the shift from desktops to smartphones and the cloud. This trend will certainly continue.
Design. Code. Compile. Deploy.
Start Free Trial Upgrade Today
Free Delphi Community Edition Free C++Builder Community Edition