Good software engineers write simple software with simple tools, and it works. Bad software engineers write complicated software with complicated tools and it only works insofar as you run it on CPUs designed in the last 6 months on one of 2-3 operating systems on 1-2 architectures and provided you don't look at it too funny
@sir whether we want it or not, majority of software is written by "bad engineers", and people depend on it. It's better if the tools used to make it work with less hiccups, even if it constrains the environments where it can work.
@ignaloidas I think bad engineers can be made into good engineers
@sir I disagree. Not everyone who develops software is a professional engineer, and most of the time have no incentive(or even unable) to become a "good engineer". Take for example data science. They do use programming, they create utilities for self and others, but they do not gain anything from becoming a "good engineer". For them using tools that decrease the amount of thinking they have to do for a piece of code, while also adding security guarantees, is an obvious choice.
@ignaloidas Given a simple and well defined environment, bad engineers can write good code. Case in point: Golang. And I pray to any god who will listen that academics will not be building the operating systems of the future.
@sir Golang isn't that different from Rust though. They both provide a safe environment, but with different tools. Rust gives more varied tools for lower level programming, while Golang gives you simple general tools for general programming. In turn it is easier to write good general code in Golang, and good low level code in Rust.
@ignaloidas Golang and Rust are similar insofar as they're both programming languages. In every other respect they are starkly different and I find your statement disingenuous and outlandish
@sir I don't see a huge difference between them in sense we are talking. They are both memory safe languages. They both are statically typed. The only real difference I can see between them are the tools provided. Go has very barebone tools suited for general development. Rust has a lot more tools that are more suited for lower level programming and abstraction. Between the languages themselves I don't see much difference, I only see the difference in tools provided with them.
@ignaloidas they are fundamentally different in goals, design, implementation, and usage, in almost every respect. Yes, if you bucket them into broad, opaque categorizations like "statically typed", they have a similar shape. An orange has a similar shape to a basketball, too.
The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!