Tips for stable and portable software
31–40 of 63 posts
Re: Tips for stable and portable software
#32Seems like good advice. I'd add another one that seems completely obvious, but some sloppy developers ignore it: avoid undefined behaviour. If you're going to work with C, you need to know about undefined behaviour and take it seriously.
Re: Tips for stable and portable software
#33One day, maybe when I am retired, I am going to develop a programming language-agnostic algorithm specifying language with which you can generate code for programming languages ;-). A kind om Mathematica, but than for software.
That's just a programming language tailored for transpilation, no?
Theoretical computer science shows us there is no 'one true representation' for algorithms.
Re: Tips for stable and portable software
#34Seems like good advice. I'd add another one that seems completely obvious, but some sloppy developers ignore it: avoid undefined behaviour. If you're going to work with C, you need to know about undefined behaviour and take it seriously.
If it were so easy, there would be already specified a subset of C without undefined behavior and you could be able to automatically check your code against it.
Re: Tips for stable and portable software
#35Really weird that he recommends Motif. Motif is not comparable to Web/Gtk/Qt since it has only the most primitive widgets, and no 3D support. I would propose doing a web-app if you really care so much about compatibility. Web also allows for more custom widgets.
I don't know if Motif is better at that, but I wouldn't bet on web-apps personally.
Re: Tips for stable and portable software
#36Earlier quoted context omitted.
> I'm betting on the tooling to stay backwards compatible or with minimal changes in the codebase This is actually why I'm pretty bullish on things like RoR, Laravel, et al. The sheer speed at which they go to a new version that breaks BC is actively making the web less secure. I've lost count of how many times I've found a new client with this software that's been working for years but suddenly broke, only to realiz…
The same reason why my default stack is still Java/Kotlin with Spring and Hibernate. A stable environment, stable runtime that is guaranteed to not change too much and has a culture of backwards compatibility.
Re: Tips for stable and portable software
#37I'm currently "betting" on Go for making a back-end (just a REST API + sqlite database) that will last a decade; I'm betting on the tooling to stay backwards compatible or with minimal changes in the codebase; I'm betting on the readability of my own code for the next decade, and I'm betting on the language + tools to continue to be developed whilst sticking to their original goals. Generics is going to be fun.
Re: Tips for stable and portable software
#38Seems like good advice. I'd add another one that seems completely obvious, but some sloppy developers ignore it: avoid undefined behaviour. If you're going to work with C, you need to know about undefined behaviour and take it seriously.
If it were so easy, there would be already specified a subset of C without undefined behavior and you could be able to automatically check your code against it.
> a subset of C without undefined behavior
There are various projects out there that let you produce C code guaranteed to be free of undefined behaviour, but they're not 'quick fix' solutions, so they're not widely used.
https://www.eschertech.com/products/
https://blog.regehr.org/archives/1069 (ctrl-f for actually)
Re: Tips for stable and portable software
#39I'm currently "betting" on Go for making a back-end (just a REST API + sqlite database) that will last a decade; I'm betting on the tooling to stay backwards compatible or with minimal changes in the codebase; I'm betting on the readability of my own code for the next decade, and I'm betting on the language + tools to continue to be developed whilst sticking to their original goals. Generics is going to be fun.
> I'm betting on the tooling to stay backwards compatible or with minimal changes in the codebase This is actually why I'm pretty bullish on things like RoR, Laravel, et al. The sheer speed at which they go to a new version that breaks BC is actively making the web less secure. I've lost count of how many times I've found a new client with this software that's been working for years but suddenly broke, only to realiz…
Do you mean bearish? I think you do as I was confused for about half of your comment before I realised
Re: Tips for stable and portable software
#40Earlier quoted context omitted.
If it were so easy, there would be already specified a subset of C without undefined behavior and you could be able to automatically check your code against it.
You could follow NASA standards. They've got a pretty good record with c. But it'll cost you.
Alternatively, NASA host an uglier scan of the document at https://ntrs.nasa.gov/citations/19950022400