The Odyssey of Cross Platform Development

The challenges of choosing the right cross platform development tools

2026 technology

“Time is money”, more commonly attributed to Benjamin Franklin, is often the directive of the day! You’ve got that next development idea that you really have the itch to pursue and share with the world. Maybe you are doing it because of dollar signs! Perhaps you’re doing it because you want to try to change the world. Or could it be that you want to create a tool you can use yourself, and you also see others using?

I would say I see myself in that last category. I had an idea that was not really all my own. A former office mate had shared an idea with me about 20 years ago. I saw value to it, but I was slammed working for myself doing programming and design work for Nashville musicians at the time. (My buddy didnt pursue the idea)

Some years later, when I finally had the time to work out the details of the idea, I found myself needing tools that could span the gulf between Microsoft Windows and Apple MacOS, and also would run on Linux. The immediate thought for many is to use Electron.

Electron

Electron is popular! The toolkit to build desktop apps using web technologies like Javascript, HTML, and CSS. The complaint I hear sometimes is around the resulting apps memory consumption when in use. You are running your web app within a desktop contained web server.

The big benefit is, if you know Javascript / HTML / CSS, you can crank out an application pretty quickly! Another big benefit is a plethora of packages to aid you in getting results fast – https://www.npmjs.com.

Hey! I like the idea of using tools that I have to use during my day job. I started down this path. It’s pretty easy to get setup. I even used a Electron based editor that is super popular today, Visual Studio Code by Microsoft. My development box at the time was a Macbook Pro (Intel).

Documentation for Electron is good, really good. It’s easy to get setup and to start building your idea. I found myself having my morning coffee, pulling out the laptop and writing some code, before I walked upstairs to my desk and started my day job activities.

It was fun and something different, but not so different that I was taxing my brain with a mass of new materials to have to wade through. I still needed a fresh brain daily to work my healthcare dev job at the time.

The down side as I saw it was a massive app size and the memory use while in the app. A native executable on MacOS would be vastly smaller and memory consumption no where near what an Electron based app uses.

For a lot of devs this will be the answer! Again, if you have javascript skills, you can get to market fast! There are other options that are very compelling arguments to the cross platform question.

WxWidgets

My exposure to development started with the C language via Borland C 1.00; With that in mind, and having worked at a fortune 100 petro-chemical company later doing Borland C++ based work, WxWidgets appealed to me. C/C++ makes for fast, tight code.

As I reviewed the wxWidgets framework, it brought back fond memories of days working in Borland C++ Object Windows Library (OWL). That was one of my favorite compilers and libraries that I used.

The layout of forms takes a little bit getting used to with the need to implement sizers, etc. In my opinion, cross platform work means having to plan for the various differences one will encounter between operating systems. You can crank out code that works on the platform you code directly on, but without planning and thinking ahead, you are likely to encounter some pain and rework!

For me, the challenge was getting up to speed on the newer C++ syntax of modern compilers. It had been a long time since I coded in C++ as a young man. While I missed the ‘WinForm’ RAD tool type days, I had essentially morphed into a fullstack web developer because of my day job requirements.

I found the time to crank out forms using available designers for wxWidgets to be slower than I expected. Don’t get me wrong, it is very doable, and the end result lightning fast execution wise, but with the complexity of some of the UI I needed, I was NOT up to the challenge quickly. Wxwidgets surely can handle the complexity!

If you are fluent in C++, the wxWidgets framework is worth consideration. The license is easy on the brain too!

Lazarus

When one searches the web for the term ‘cross platform’, you’ll get an array of things and technologies you may have never heard of before. It’s interesting to see what, and how, folks are doing things in this arena.

A lesser known, but very powerful cross platform consideration is Lazarus, a Pascal based IDE. I had never worked in Pascal before. Lazarus is one of the best examples of a RAD GUI tool that solidly works across operating systems.

I first found it while browsing apps on a Linux distro I had installed on an old laptop. After looking at the Lazarus website, I installed it and played around. My interest was piqued and I installed it on MacOS.

I built some apps using Lazarus and tested the GUI work on Windows, Mac, Linux. Without changes the GUI displays were consistent and worked without issue. Kudos to the Lazarus team for such a product!

I would recommend this one if you know the Pascal programming language, or you have time to learn it. I found the Pascal language to be an easy readable language, and to me, that is an important thing for longevity of the work, and future support. The speed and executable size produced here makes this a strong contender in the cross platform world!

AvaloniaUI

I remember the days not so long ago when I read articles about the excitement around NodeJS, Electron, and how that developers who love Javascript could work in their favorite scripting language and run any and everywhere. I get it! We like being able to use one tool to do everything. It cuts down on the need to learn lots of new things, and it means having more time to focus on designing and building rather than learning the new thing!

I can’t totally say that I am not in a similar camp, but in the context of using C#.Net. I looked at Microsoft’s Visual Studio for Mac at one time. I found myself uninstalling it not too long after having installed it.

In my day job, I use a Mac. I use Mac as my personal laptop too. I have been a JetBrains Rider user for quite some time. One day after reading about AvaloniaUI, I had to check it out.

It looked interesting, but I candidly approached it with some skepticism because I had seen things that looked great on the web, but in my use case were just painful. This is NOT the case with AvaloniaUI.

Though I had not had any Windows Presentation Foundation experience prior to this, it wasn’t hard to get productive building out reactive UI! Working with a language that you use daily is a huge win for me personally. AvaloniaUI is easy to get familar with fast!

Though I candidly miss the days of the RAD GUI builder tools, using declarative UI with AvaloniaUI is productive! If you are a C# developer wanting to build cross platform apps, you owe it to yourself to test drive it.

AvaloniaUI can be used to build mobile apps too. I have not used it in this way, but I would expect that the experience of doing so is just as solid as the experience I’ve had of building a desktop app.

Conclusion

About now I would guess some of you are saying to yourself, he didn’t tell me what to do! No, one has to do the homework and figure out which tool helps leverage one’s strengths and compensates for one’s weaknesses. Cross platform work is not for the faint of heart. The rewards can be great. The pains can be many. You have to find the sweet spot for yourself.

I didn’t get into the weeds with each of the tools! I know as the AI era continues, most won’t care what they use to build an application. If I code something using AI, I would need the comfort level that I did so in tools that I could drop into and fix myself if / when needed.

The next time I need to build a desktop app, I will be considering AvaloniaUI first!

–Wayne