I want to stop using Delphi. Can I use Oxygen as a replacement?

I imagine that this question was already made and answered before.
But RemObjects keeps updating its products. I’m genuinely interested in taking advantage of a modern Pascal that is actively supported and unafraid to introduce the latest features from competing languages.
As I understand it, the language itself is better than Delphi, but it lacks support for a visual framework like VCL or FireMonkey. Now that WebAssembly is becoming a common target for many languages and has introduced components, all Elements languages could gain access to a common visual platform.
How feasible is it to migrate from Delphi to Oxygene to create the same applications? What could I gain and lose in the process?

Thank you for reminding me of acquiring a copy of ‘The Deadline’. I knew there was something left to to. The days this book showed up answering your question would have been as easy as today.

First of all I have been a big fan of what’s called Elements today from the very beginning and Oxygene in particular. I still used it for litte .net coding and building other non visual applications targeting JVM and native on Linux but without Desktop GUI. My MacBook is on Linux nowadays and letting the Win 8.1 Laptop rot will finally seal Delphi’s fate. I don’t have to deploy software to customers. The Oxygene Language is really pretty suitable and modern.

This decision imho was very likely driven by the Visual Studio and the improving design environment and later for the Mac and iPhone as well as Android those were provided. In practice starting to implement competing ideas would not have been a good idea at all. Even if Remobjects successfully tried, people simply switch to what was called ‘out of the box’ in former days or such libraries simply become adopted to everyone’s very unique development environment.

There is a huge difference, no need to tell you, between what’s possible and the aftermath. We had so many many many of such different ways of offering GUIs over the last almost 3 decades, so that I finally lost trust that a one approach does it all will ever succeed. Just a fistful remained and those were the first being started to implement when grass was still not even green on the PC. Even the early days of .net there were many great ASP.net widget sets available especially open sourced ones - easy to use in a developer’s sende including extending those as well as cute, clever in design and pretty advanced too early obviously. None of those is left today. This story repeated and repeated and repeated and is still the same old story repeating ever since the first days of the GUI on Windows, let’s say 3.0.

One widget set for all platforms and languages is not what Elements and especially Fire and Water are all about. Anyone correct me, if I’m wrong. The opposite was/is intended.

I personally wouldn’t start to port visual projects, especially dialog based ones.

As far as I have understood the point when it comes to WebAssembly and GUI is that the whole application/GUI runs locally and controls are redrawn on demand. That’s usually a thing of the communication and the redraw capabilities of the server and the browser. From the GUI perspective it’s again a hype around almost nothing but we will see.

In order to really get an idea of benefits I’d give FPC/Laz and pas2js a try in the early beginning.

Ideas similar to integrating gtk for example this way build a Linux GUI application takes lots of time and imports the characteristics of the libraries integrated. That doesn’t help and does no longer allow to make full use of Oxygene’s superb language and compiler features.

GUI the native way with Python worked to a certain degree. What’s not built with GUI in mind after a technical integration of GUI frontend technologies turns out as half baked crap from the overall experience. That’s why I really liked Remobjects Idea to let the providers of the GUI technology offer the visual parts.

So your idea of just having the controls makes perfect sense, the process of integrating such controls in such a manner is still a long one to go.

1 Like

Good answer, and I share most of your opinions.
My only problem is with my existing projects.
Another problem, a huge problem, is with what is the future is bringing.
Pascal, or any other language, is like the new assembly language. We should be concerned with a higher level of abstraction, and the language should implement the high-level architecture or design with decide to use.
It is one of the reasons I believe MDriven is way underestimated.
MDriven (www.mdriven.net) is implemented in .NET, but it evolves in time and the “developers” design the solutions.
The new goals of WebAssembly with the WASI standard and a component-based approach will enable a common “binary” to execute everywhere, server-side, client-side embedded in the browser, or in any native desktop.
I used to develop for UniGUI and it achieved a tight integration between the Delphi code and the HTML 5 UI on the client browser, and it could be modified to send WebAssembly instead of JavaScript, but I don’t see the point just for one language.
In any case, I still love programming at any level (and I was recently coding for the 80186!!!), but it could be nice to start programming once, in any language, and see your code running everywhere.
Don’t get me wrong, Oxygene is a much better Pascal than Delphi. I was looking also at Pascal ABC (www.pascalabc.net). FreePascal is still behind Delphi in a few ways (but it is very good at supporting many platforms).
I would like to start using Oxygene as the language and WebAssembly as a target for things like Blazor or equivalent open-source tools.

1 Like

Thank you for your information.

My history short: I’m not a what is called a Pascal developer since Turbo Pascal these days in version 4 on the horizon was said to be for technical people. I’m a certain kind of VB programmer and loved Visual REXX and Oracle PowerObjects and little 4th Dimension on Mac. More evil I’m an OS/2 guy and I used Describe as a word processor. I was never really a crazy one, but simply an insane bastard driving on the road to hell with love in my heart and style in my mind, in the end a programming ‘salesman’ and I loved 4GL. Later PHP, Python (because of Oracle access (web)) and Java as well as .net and Javascript. From a hobbyist perspective I hope that’s enough.

I simply took Delphi to a friend of mine who was seeking for something beyond TurboPascal for Windows 1.0. They were busy programming PC frontends on OS/2 acting as a companion to PDP/11 or VAX in the area of steel banding machines, I hope that’s the right word. They used a copy of MS-PASCAL 4 I purchased for about 1 EURO at a sell-off/rummage sales at an industries related IBM-IT shop I ordered IBM manuals until the went bankrupt, very likely because of the shipping costs - kidding. They had been purchased by General Electric. I’m not an an old hand but I grew up with all of them and soaked up all the stories of the good old days of IT here in Austria (more or less C-64 and IBM-Host). Developing ABAP on SAP I found all they told my about on the system - smell’s like the host spirit. Around 2005 some of the guys in a steel trust showed me CICS and how to build messages.

At university they kicked our asses as well as brains into almost every implementation technology or programming languages from INTEL ASM, IBM HOST ASM, PL/I, COBOL, Ada, TCL/TK, MODULA II, OBERON with co-routines instead of threads (at beginning of the battle threads vs. co-routines), Eiffel (contracts), Smalltalk and a home-made compiler by a prof plus IDE (Smalltalk compiler embedded into an IDE), Perl (OraPerl) and Oracle PHP, Objective C together with Ingres/Postgres, Smalltalk with GemStone (OO Database) and additionally I did pretty much the same with all the visual development front-ends. These days object orientation was in it’s early days and Borland C++ and Borland Pascal available in DOS IDEs. It took a while until I evolved beyond MS-BASIC and Visual Basic. The assistants and profs wanted us to get to know the various paradigms and programming languages as well as IT systems available and I was in the first generation of programming on DOS and PC.

Not saying I’m great, but I allow me to use the words of an IT veteran who looked a my C code in computer graphics, 'Mike. You have no idea what you are doing. I answered, ‘Well that’s definitely true, but it works. Let’s go for coffee. I’m here to make money and nothing else’. Programming fore has always been a certain kind of a hell ride on a ghost train. Everything that support this feeling is pretty welcome.

I grew up with Linux available on a fistful of floppy disks at my first days at university. Again I’m no technical person but surrounded by such guys.

One day grabbed a copy of Personal Oracle 8 and replaced PowerObjects (which never really worked stable) with the Delphi Box mentioned, a copy Digital Metaphor’s Report Builder and finally was very happy that some guys in the Netherlands already took the burden of translating the OCI header files before I was finish and already did offer ready made Delphi components. After a few minutes I made the ‘database machine’ sing my songs. Afterwarts I took the long path through the Delphi rabbit hole and it’s deep, it’s dark and deep.

What I really need can be simply described as an IDE, a Reporting tool (rather complicated to implement) and a certain kind of DB access. Anything else is welcome but not definitely required. I still love PL/SQL and to a certain degree I found coding ABAP on SAP still amazing after a while. But always in fashion of ‘do it the other way’. In this world in Europa, ten years behind is still a decade ahead :laughing:

At the moment I’m still busy with harbor on Linux. I couldn’t acquire much more knowledge but such thing tech you humility.

I have tried all of them except from QuartexPascal which is more or less

SmartMobile done right not talking about the technical part solely.

Another alternative is still Elevate Web Builder but it does what it should do, somehow acting as an add-on to Elevate DB for building database related, but in general it does it job pretty good, but also can act as a general web development environment and as always for example the webserver provided is clever.

We will see. I never really bothered with the web and front-ends in depth. I really admire and honor technical people’s work. I’m already petty happy about CodeIgniter still, Daraja Framework or those strongly tied to PC and Membrane Service Proxy. I general I love relational databases a lot more. In Austria web development was strongly tied to Web Design companies and it turned out that in the area of multi dimensional analysis of business data (SAP Business Warehouse) telling stories heard about the good olds builds trust. IT People as well as manager finally found someone who a least knows what they talked about, when they thought back of the good old days. Good old time change with the years and over the decades and maintaining and fixing bugs in legacy systems is still the best business here. I have always had a focus of integrating older worlds on the back-end into more modern front-ends. You hear lot’s of good stories of other people’s good old days.

Btw: FreeDOS is great.


I’m very impressed with your experience and with how close we are in many things despite coming from very different and far places.
I was born in Cuba and started using computers in 1980 while I studied Computer Sciences (the first time it was available in Cuba).
After graduating in 1982, I started researching it at the Informatics’ Institute in the same university.
The reason for studying Computer Sciences (instead of Mathematics or something about Physics, my other options and preferences) was my dream of monitoring and controlling “things” (factories, cars, robots, anything).
I learned most of the old programming languages but focused on ALGOL-60 and Pascal for most of what I wanted to create. My ambition was to automate applications. To ask the user what they wanted (defining the program menu, and the actions for the menu items). If something was not automated, and no scripting was available, I would generate source code with placeholders for the user.
My first version was programmed with Microsoft Pascal, and some C and assembler for low-level libraries needing more speed or smaller binaries. I generated code in Pascal or C.
I had to create my own database (I didn’t have one available), but later I accepted and used the .DBF formats (up to version 4).
That was the time for learning from many sources (disassembling the BIOS, IO.SYS, MS-DOS.SYS), MINIX and Unix sources, and more than 20 databases (like Informix, Oracle, SAS, DB2, etc.)
I also programmed many devices using 8080, 8085, Z-80, etc. Sometimes in assembler, but also with C and Pascal versions (some of them generating better code than C).
I tried and tested Stonebrook Pascal, UCSD Pascal, IBM 360 Pascal, TI 990 Pascal, Pascal OMSI for the PDP-11, but only ALGOL-60 for the PDP-8.
As part of my research, I learned a lot about RTOS, firmware, multi-threading, IPC, and created a low-level task switcher for some platforms where I needed something simpler than a full RTOS.
Later, I continued with communication protocols, using some of the first Ethernet implementations (as well as Token Ring), and industrial protocols.
The thing is that all of that was necessary in 1980, but just a memory in 2024.
When everyone is developing or learning AI, we shouldn’t be focused on low-level programming (and the “low” is now much higher than before).
A few years ago, I was programming in assembly code because some very old locomotives were using 80186 and nobody will pay for an upgrade.
Later on, when creating the controller for a satellite, I used Visuino (generating C++) for enjoying graphical programming, LabVIEW-style, for that software.
I see languages now as a mean to reach a target. I need something that will execute what I design. I don’t say I don’t enjoy programming, that will be a lie. That is one of the reasons for wanting to use Oxygene. But I will strongly prefer to write once and use everywhere. It looks like very soon any Elements language could be generating WebAssembly and that target, propelled by their developers and user’s requests, could complete the package.
I know, inertia is still a Physics law.
Even today, T-SQL, a very powerful language, doesn’t have anything remotely like PL/SQL packages, and MSSQL support for hierarchical structures is much worse than Oracle’s.
So, Michael, you are very happy as a very advanced hobbyist, but I’m not so happy when I spent my whole life focused on the science behind all of this.
BTW, my latest adventure is about Data Science (which I started in 1983) with Python (and testing Mojo from www.modular.com).
I really hope that some developers will survive this AI era.

It’s not about boasting from my side :slight_smile:

I just wanted to give an idea/impression how getting to know IT worked in Austria these days. In Europe, especially Austria, the focus was solely on ERP and machine automation in a broader sense was something like the ugly duckling. Later the focus shifted to solely analyzing business data in a first place. In Europe computer science didn’t exist in it’s purest sense. The European way was called Informatics and very seen the focus strongly moved to business informatics. It was not even a good a idea in the 1990s to care about bindings to ‘C’ based libraries, because has always been way to expensive. The reason for using Python was Oracle support first and little later the well organized treatment of such bindings, when PHP was running into troubles.

Huge completely and/or new technology stacks are what’s needed to start a business here or betting on a mega-trend as you pointed out hinting at the application of AI. Anything else can work for one or the other entrepreneur, but successful examples being in the position to grow a sustainable business in IT can rarley be found.

From time to time it’s possible here to live from programming as a freelance developer for example .net as friends of mine did over the last two decades. That said, it requires a hype to do so. This means to get your hands dirty.

We will see what the future will bring. Anyway. Your experience is deeply impressive.

I don’t have lot’s of experience with AI until today. This topic was hot for a short period at my time at university because one of the assistant profs focused on neuronal networks with weighted (probabilities) and friend of mine in 2005 participated in a project at the local steel factory aiming at optimizing the application of neuronal networks to coil coating (steel). It turned out that the machine was in the position to learn faster and better how and when the next service is required an how to stretch the times between the services and what materials to apply and to optimize the thickness of the coating. compared to analysis by humans before. This was not about what is called AI today, but worked successfully on a plugin processor card implemented running one of the special Java language based (acting as a replacement for Assembler) implementations of Java aiming at systems-automations even in a broader sense.

One of my profs once told me, ‘Michael. When the high priests of methodology move across all over the lands like horsemen of the Apocalypse the old paradigm is already dead and gone for a while. Take your board, get you gone, go to the beach*), take the ride of your life’. The extended version by a friend of mine Hans Brieslinger the Business guy behind SQL Detective & Co (former Oracle Marketing kinda director) would be: by driving the Flood in front of you, otherwise it will roll over you. That’s why I quit from IT pretty soon already shortly after 2008. Ever since then I’m busy driving the Flood, which makes lot of fun.

That said, Gungla is still your friend (Delphi Easter Egg). It’s just the about the 90’s image and not about technical things in particular. I never had the choice to choose the technical environment. In Austria it’s very vital to adopt your skill set and turn around 180 degrees over night.