A year on from “Moving on from Xojo”

A year ago I decided it was time to end my journey with Xojo. A few days later I started looking at Vala. Over the last year I’ve been learning Vala and converting Xojo projects to Vala.

Why Vala?
I chose Vala as whilst it’s heavily Linux focused and based on GObject, it’s also cross platform and is cross compiled to C. It is open source (licensed under the LGPL) and is object oriented. Using libsoup it is also possible to create a web server to serve web content. Vala was influenced by several languages including C# and Java. The documentation is also very useful.

What’s gone well?
Overall my experience with Vala has been good so far. It’s been an exciting year with several interesting projects in progress, one of which is a cross platform Vala code editor written in Vala - working on this I have learnt a huge amount about the language. I’ve spent a lot of time learning about theming GTK applications and making them look native on macOS and Windows, taking into account the users chosen accent colour etc. I’ve also spent a lot of time on building up reusable libraries of common code to make things easier going forward.

What’s been frustrating?
All of my frustrations have been focused on one (fairly important) area - the code editors. I spent the first few days in a code editor without autocomplete - this really didn’t help when learning a new language. Once I had this setup things were much better until an ‘upgrade’ led to really weird errors where parts of code would be overwritten or extra quotation marks and semi colons added erroneously (deleting the extra quotation marks was also painful as the editor thought it should delete them in pairs but only one mark was erroneously added). I thought I’d miss the drag and drop UI designer but I’ve gotten used to not having one for now.

Resolving the frustrations
Well they say fix a problem you know, so I’m developing a Vala code editor in Vala. It’s in a state where it’s usable to now use it to continue developing it, whilst I add the last v1 features. I’m looking forward to adding a functional graphical UI designer after v1!

A note about web applications
I’ve used libsoup to create the backend web server for a couple of web applications and web APIs so far. The APIs return json based on data from SQLite databases. The front end of the web applications was written in HTML, JavaScript and CSS, all served by the libsoup based Vala application. The ‘pages’ are stored as templates and then the relevant ‘fields’ replaced with data pulled from the database. I’d class the web application developments as a work in progress - circa v0.4 .

Is Vala perfect for everyone?
No! I think choosing a programming language is a very personal choice based on your preference and your needs. I would definitely recommend looking at Vala though.

Hopefully this musing is interesting to someone.


Thanks for sharing! Always interesting to see what people gravitate towards.

Once v3 of The Wails Project (Go with React/Typescript) goes live I’ll start digging into and it’s on my personal goals list to recreate one of my utilities that I’ve updated every few years ever since I started with RealBasic 3.5. Should be an interesting project.

It certainly is interesting to port projects to new language!

I wouldn’t call it a port. I’d call it a re-imagining. I now have 5 full-months of Go under my belt but haven’t touched React/Typescript since initial training. I will definitely be doing things differently than a Xojo project.

1 Like

Differently to Xojo is definitely a plus!


You can use Geany as an IDE for Vala.

To get autocomplete working download the Vala tags files from here

On Linux extract them to:

on Windows:

on Mac:
TBA :upside_down_face:

Restart Geany and you’re away.

For a drag and drop designer Vala can work with Glade

1 Like

plus many more hours than xojo you mean ?
well it’s implied
nothing beats Xojo on productivity - prove me wrong -

you have too much free time?
I’m sorry but you are just using it without a purpose ? you are retired ?
thanks for sharing, but i still don’t know what to except with xojo background , you can make xplat desktop apps ? it makes nice apps from linux ? thx


Python spanks Xojo’s arse for productivity.


wanna bet ?
deskop app? i don’t care bout the rest
and nothing beats UI/UX of a desktop app
apps owns

Okay let’s bet. Desktop database application. Java beats Xojo. String concatenation Java beats Xojo. Sorry but what you wrote is bullshit. It is slow and shitty. Not like you try to tell. And yes, it is even more productive to work with java. Man. Only while you have no idea about something you should stop write things like that. Maybe you believe it. But it isn’t true while you believe it

1 Like

I hear an echo from the distant past :deaf_person:

1 Like

Thanks Steve. Geany was an editor I’d tried, can’t recall which issues I had with it, I’ll take another look.

I settled on GTK4 which Glade doesn’t yet support.

Now I’ve got setup with Vala the average time to create a project is many many LESS hours than Xojo, without the headaches and running into bugs which are never fixed.

Far from retired, I’m a developer and this is a snippet musing of the last year. I’ve ported several applications previously created in Xojo to Vala and my customers are happy. The code editor is a fun project which will fit my workflow and make me even more productive. I’ve been testing it on Linux, macOS and Windows.

1 Like

Have you tried the glade file converter? I think it’s installed with GTK4.

$ gtk4-builder-tool simplify --3to4 mygtk3.glade > mygtk4.glade

Alternatively you could look at Cambalache

!!! great :hushed:

Thanks, I looked at Cambalache when I first started with Vala; looks like it’s moved on a bit so I’ll take another look. Do you use Vala much?

No, I’ve only experimented with it ( tbh I was actually more interested in Genie than Vala ).

Take a look at ElementaryOS code editor:

All of their apps on that OS are written in Vala.