3 ms·
> We can statically eliminate any error scenario from our program Well this sounds great. When do I get a version of this in my day job? (Python, Flask, VSCod
by bckr 5y ago
> We can statically eliminate any error scenario from our program
Well this sounds great. When do I get a version of this in my day job? (Python, Flask, VSCode, MacOS).
I really hope software engineering in 10 years is as cool as it can be... formal verification, fast, readable, portable... All the things!
- lambdasquirrel 5y agoI think the problem with the PLT space is that it's not monetizable the same way that e.g. ML is. If you get a Ph.D in ML, you have an easy shot at a high paying industry job. Not so with a Ph.D in PLT. That alone provides some force for research. It's hard getting enough investment in the PLT space because the costs that are borne can't be easily recouped. It's a classic problem with research. And we know how much the world runs around money right now.
- pjmlp 5y agoNowadays, 30 years ago my AI professors where trying to keep their classes open and stuff like neural networks where optional lectures.
- oxff 5y agoQuick, easy formal verification tools that programmers can use on the spot from the IDE are hard to make for most languages because most languages and their compilers weren't made with such thing in mind. I guess Rust might be heading somewhere interesting with tooling, with tools like Flowistry existing (https://github.com/willcrichton/flowistry https://github.com/willcrichton/flowistry) showing what is possible. It's a plugin that can compute backwards / forwards static slices for you, straight in the IDE as a VSCode plugin. I think you need an external program that runs a full program analysis to do the same in C++.
- pjmlp 5y agoFrama-C and Ada/SPARK are two examples of tooling with IDE support and wide use in high integrity computing domain.
- chriswarbo 5y ago> Python Probably never. Python provides very few guarantees about anything; e.g. there's a lot of dynamic dispatch which cannot be resolved ahead-of-time, and it's technically possible to mess with lots of things (e.g. swapping a value's __class__ using a random number generator!)
- deterministic 5y agoI think it will happen slowly but steadily. There are now a few commercial companies specialising in writing software that is proven correct. CompCert and seL4 are some examples. And various large companies are using tools like TLA+ to prove complex systems correct. However I think it will always be a specialised area (like embedded systems). With new job titles like “Proof Engineer” or “Verification Engineer”.
- mbrodersen 5y agoSPARK/Ada is an example of a language/proof system used for real world software. Especially embedded military systems.