What are some of the most important points you learned over the years as a programmer?

Everything is a tradeoff. Optimizing for less code is de-optimizing for detailed control over appearance and behavior and independence from some vendor’s concept of how the app ought to appear / behave plus their vision for the best approach to the solution (and inevitably at some point your client will disagree with the vendor – and there’s little you can do to accommodate them).

I considered for example Lianja which is targeting more the low-code approach and I found that you have to endure a shotgun marriage to their concept of data binding and components that respond to DB relations in particular ways. It could be arguably great for CRUD apps and terribly confining for anything else. And now they have decided to ditch their community edition and raise their subscription prices, which takes them out of the running entirely so far as I’m concerned. I can no longer do a proof of concept over some weeks or months and find most of the box canyons they have built for me and figure out if I can live with them before buying. Now I have to commit $1K for the privilege. How they think they’re such hot sh_t that anyone is going to put up with that is beyond me.

This is where all the low/no-code platforms end up taking you, down the path of their architectural vision and emphasis, which to make matters worse tends to thrash around and change all the time as the vendors are mostly smaller and struggling for purchase and identity. We see this happening with Xojo as well – are we targeting pros or “citizen devs”? Can’t seem to decide.

I lean more toward a general purpose language / framework than you for this reason. Xojo could be a nice compromise if they had the resources and humility to make it so. But I think inherently that the only platforms that will remain reasonably stable and viable for decades at a time (e.g., 20 years and counting for .NET; during this same period RealBasic became Xojo and still struggles to target the web which you could reach with .NET from the beginning) are the ones with broad enough utility to bring in a large number of devs and support many different project types. And even with ecosystems like Java and .NET there are evolutionary breaking changes that don’t cleanly run through some kind of converter (e.g., ASP.NET => ASP.NET MVC 5 => ASP.NET Core and now Blazor – it’s nice to have choices but god help you if you make the wrong choice).

As someone aptly pointed out in an opinion piece the other day, devs should be happy that software development is hard, otherwise they would not pay us the big bucks.