Skip to content

2025

How to configure Linux for Delphi development

Delphi has long been a powerful tool for Windows application development, but with the introduction of Linux support in recent versions, developers can now leverage Delphi's capabilities to create applications for Linux environments. This opens up new opportunities for cross-platform development and expands the reach of Delphi applications.

The difficulty for many developers lies in the configuration of Linux that you can connect it to RAD Studio so that you can deploy your Linux applications directly from the IDE. This process involves several steps, configuring the Linux target in RAD Studio, and ensuring that all necessary libraries and dependencies are in place.

As always, you find great resources on GitHub from other Delphi developers.

Why do you mention Linux?

Linux is a popular choice for many developers due to its flexibility, stability, and open-source nature. By supporting Linux, Delphi developers can reach a broader audience and take advantage of the strengths of both Windows and Linux platforms. Additionally, Linux is widely used in server environments, making it an attractive option for developing backend applications and services.

Just to give you an example, I run all my web servers on Linux and I also run all my XData backend services on Linux. I simply love the stability and performance of Linux servers. Installing reverse proxies like Nginx or Apache is a breeze and does not require a lot of resources. And best of all: Linux is free! Renting a Linux server is often cheaper than 5 bucks a month. You won't find a Windows server for that price.

A note on Delphi developers and GitHub

It's common to hear that Delphi developers are less active on platforms like GitHub compared to other programming communities. While open-source collaboration is widespread elsewhere, Delphi developers often hesitate to share their code publicly or contribute to shared projects. This reluctance can limit opportunities for learning, collaboration, and innovation. Embracing platforms like GitHub can help Delphi developers connect with peers, improve code quality, and contribute to the growth of the community.

Still, talking to many Delphi developers, I often hear that they are not familiar with GitHub or do not see the value in sharing their code on a platform that they cannot control. This is a missed opportunity for the Delphi community to grow and thrive.

Version control? I only use backups and ZIP!

Sadly, another frequent occurence when talking to Delphi developers is that they do not use version control systems like Git. Many developers rely on manual backups or ZIP files to manage their code, which can lead to issues with code management, collaboration, and tracking changes over time. Version control systems like Git provide a robust way to manage code changes, collaborate with other developers, and maintain a history of code changes. By using Git, Delphi developers can improve their development workflow, reduce the risk of code loss, and enhance collaboration within their teams. It is also very easy to embrace as the learning curve is not steep at all. And best of all: Git is free! And one of the best books is free as well: Pro Git.

Please use version control!

Back to Linux

To get started with Delphi on Linux, you'll need to set up a Linux environment that RAD Studio can connect to. This typically involves installing a compatible Linux distribution, configuring SSH access, and ensuring that the necessary libraries and tools are installed on the Linux machine.

But nowadays, Windows even offers a Windows Subsystem for Linux (WSL) that you can use to run a Linux environment directly on your Windows machine. This can simplify the setup process and make it easier to test and deploy your Delphi applications on Linux.

Once your Linux environment is set up, you can configure RAD Studio to connect to it. This involves adding a new Linux target in the IDE, specifying the connection details, and testing the connection to ensure everything is working correctly.

How to configure Linux for RAD Studio

Ian Barker and Jim McKeeth to the rescue! Initally, they created a great series of Gists that walk you through the entire process of setting up Linux for RAD Studio. As Gists are a bit hard to find, I have copied the content to a GitHub repository that you can find here:

This repository contains detailed instructions and scripts to help you configure your Linux environment for Delphi development. It covers everything from installing the necessary packages to configuring SSH access and setting up the RAD Studio connection.

Surf GitHub for more resources

There's so many great resources on GitHub from other Delphi developers. Just search for "Delphi Linux" or similar terms to find repositories, gists, and projects that can help you get started with Delphi on Linux. You can find sample projects, libraries, and tools that can make your development process easier and more efficient.

Summary

Running Delphi applications on Linux is now more accessible than ever, thanks to the support provided in recent versions of RAD Studio. By setting up a Linux environment and configuring RAD Studio to connect to it, developers can take advantage of Delphi's powerful features to create cross-platform applications. This opens up new opportunities for reaching a broader audience and leveraging the strengths of both Windows and Linux platforms.

Ready to expand what your Delphi applications can do?

Whether it’s deploying to Linux, building web APIs, or learning new frontend tools, I’ll guide you through planning, setup, and delivery. Reach out and we’ll map the next steps together.

Why Web development is difficult for Delphi developers...

I have been fairly quiet over the past few months, focusing on several projects that required my full attention. Last year, I got to know React and I reported about the challenges.

Coming from a Delphi background, I have learned a great deal about web development and have applied my knowledge of TypeScript and React in real-world scenarios. Some backend functionality is written in Delphi using TMS XData, allowing me to leverage Delphi's powerful database capabilities while utilizing modern web technologies on the frontend.

When building web applications with Next.js, the gap between frontend and backend is narrowing. I can now develop full-stack applications using a single language, TypeScript, which greatly improves efficiency. The learning curve has been steep, but the rewards are significant.

As Delphi developers, we can quickly grasp TypeScript concepts since they are similar to Object Pascal. The tooling is as mature as the Delphi IDE, and the community is huge, with many resources available to help you get started.

The challenges...

The biggest challenge, as I mentioned in my previous blog post, is transitioning to React. Its component-based architecture differs from what we are used to in Delphi, but once you understand it, it becomes a powerful way to build user interfaces.

However, the main hurdle is not the component-based architecture itself, but the fact that React is a JavaScript framework. JavaScript is very different from Object Pascal—the syntax, coding style, and debugging process all differ. TypeScript helps bridge the gap, but learning a new language and framework remains a challenge.

...but they are not too difficult! A new programming paradigm.

React is a declarative, component-based framework for building user interfaces. Instead of writing imperative code to manipulate the DOM, you write declarative code that describes what the UI should look like. This represents a fundamental shift in how we approach UI development.

Consider a pizza restaurant: you order a pizza, and the restaurant prepares it for you. You don't care how the pizza is made; you just want to eat it. In React, you describe what the pizza should look like, and React handles the preparation. In Delphi, it's different—you must instruct the restaurant on how to make the pizza, what ingredients to use, and how to cook it. You control the entire process.

This is known as the declarative programming paradigm. It is a powerful way to build user interfaces, but it requires a different mindset. For me, understanding this paradigm was the most challenging part of learning React. Once you grasp it, the rest is just learning the syntax and framework. The benefit is that you can build complex user interfaces with less code and reduced complexity. Imperative code is often more complex and harder to maintain, while declarative code is easier to read and understand. Today, I would not be able to build a complex UI without the declarative approach.

UI is difficult

Building user interfaces is challenging and requires great attention to detail. In Delphi, we have the VCL and FireMonkey frameworks, which provide a rich set of components for UI development. In React, however, you must build your own components or use third-party libraries, which can be daunting if you are unfamiliar with the framework.

Fortunately, two 'tools' make building user interfaces in React easier:

  • Tailwind CSS: A utility-first CSS framework that enables you to build user interfaces quickly and easily. It offers a set of predefined classes for styling components, making it simple to create responsive, modern UIs without writing extensive custom CSS.

  • Shadcn UI: A component library that provides pre-built components for React applications. Built on top of Tailwind CSS, it offers components that are easy to use and customize, reducing the need for custom code.

If you are a Delphi developer looking to get into React, I highly recommend using Tailwind CSS and Shadcn UI. They will make your life much easier and help you build user interfaces efficiently.

Writing backend plus frontend code is tedious

Writing backend code in Delphi and frontend code in React can be tedious. You must switch between two different languages, paradigms, and frameworks, which is challenging if you are not familiar with both. Even if you write your backend in TypeScript, you still need to manage two separate projects.

Next.js simplifies full-stack development by allowing you to write both backend and frontend code in the same project using TypeScript. This approach increases efficiency, enables code sharing between backend and frontend, and reduces duplication. You can call backend code from the frontend using Server Actions or API routes, making it easy to build full-stack applications with a single language. Everything is encapsulated in one project, simplifying management and deployment.

Conclusion

In summary, React is a powerful framework for building modern, responsive user interfaces. It requires a new way of thinking about application development, but once you understand it, React offers an efficient approach to UI design. The declarative programming paradigm is the most challenging aspect, but it is also the key to React's power. With Next.js, you can build full-stack applications using TypeScript, streamlining development. Delphi, with TMS XData, provides robust database features that complement modern web technologies. If you prefer, you can also write your backend using Next.js.

Are you ready to dip your toes into something new?

If you’re interested in exploring web technologies, learning React, or building your next application for the web, I’m here to help. Whether you want to modernize parts of your existing solution or start a new project, I offer consulting to guide you through the process and help you master these tools. Let’s connect and take your development skills to the next level!