3 ms·
> However, it makes the assertion that the only way to allow people to reliably develop software they don't understand is to have the compiler 'understand' it
by Dewie3 11y ago
> However, it makes the assertion that the only way to allow people to reliably develop software they don't understand is to have the compiler 'understand' it for them (I use understand loosely of course).
More like have the compiler make sure (and let it be able to make sure) that you didn't screw anything up. You still have to understand ownership and lifetimes, so I don't get what 'understanding' you're offloading.
- arcticbull 11y agoWhat I meant is that I see increased compiler validation the future of software development -- not that Rust is there, just that it's a step in the right direction. I'd love a world where I can safely make changes to trunk features and the compiler would validate that there are no unintended consequences or side-effects. I think this is important because it addresses both the need to move quickly and the desire for responsibility.
- angersock 11y agoSo, the problem with this stuff is that mere additional compiler passes and better type systems are not how we get "responsibility". That's just a red-herring. It's as though we said "Yes, the next generation of calipers will add an additional factor of ten in precision to our machinist's work and so increase our responsibility!"...and then those machinists go on to build gas chambers. We cannot confuse the quality of the tools with the broader notion of ethics and responsibility, even if it's the only thing we have actual control over.
- codygman 11y agoThese are the reasons I advise using Haskell for startups. If you make everything validated (or much of it) at compile time you can move very quickly. There's also the feeling of the code writing itself. In some places you can literally put in different functions until it typechecks which is great for exploring a problem domain. In the future I hope to be able to recommend Idris as well.