Vigil: The eternal morally vigilant programming language
github.com
github.com
[1] http://journal.stuffwithstuff.com/2015/09/08/the-hardest-pro...
Yours was certainly good for your career as far as I can tell though, so it's not like it wasn't worthwhile. :)
If you don't prefix enough of your instructions with PLEASE, the compiler will reject your program for not being polite enough, but doo it too much and your code will be rejected for being too polite. You have to find the right balance.
FYI, INTERCAL is one of the earliest and best known joke programming language.
https://medium.com/@kentbeck_7670/test-commit-revert-870bbd7...
https://medium.com/@tdeniffel/test-commit-revert-questions-a...
That doesn’t make sense though. You wouldn’t need to revert if the test failed because it wouldn’t have committed...
Serious question for the author, as this project kinda alludes to it... how do you feel about the current industry trend towards strongly typed languages? Was Vigil in anyway a response to that?
However, if it permanently 'deactivated' it instead, causing it to exit the program with an error, until some sort of 'guarantee' that the developer has renewed their oaths, I would love this language in a very serious manner.
In summary it gives you compile time feedback on types with refinements, e.g. positive ints, negative ints, even ints, etc, and can be based on custom predicates.
Thank you so much for doing it!
1. On checking on Wikipedia, I see there's a second edition now.
Vigil gutting your source when you make a mistake would prove an effective motivation though! I actually like that and would actually be prepared to give that kind of thing a try (backed up with version control of course)!
I use assertions pretty heavily in my code anyway but strong static typing does most of the heavy lifting and I'm grateful for it.
The company ultimately dumped eiffel (that was ~20 years ago) because it had promise and hype but little else. Pre/post-conditions remain as a framework for thought as much as for coding.
I think something like that could do really well now since there seems to be so much interest in the topic now based on all the Reddit and HN posts.
It's an esolang.
Good thing that's only a promise and not an oath. In the scenario where we have `f` and `g`, `f` calling `g` incorrectly and `g` violating its own oaths. Vigil will delete `f` and `g` will go without punishment forever!
> Any time - any time - you type any remotely incorrect command, the interpreter creatively resolves it into `rm -rf /`
> Eternal moral vigilance is no laughing matter.