The underlying idea here is a contract system, first pioneered by Bertrand Meyer in the programming language Eiffel[1] and then augmented with the ability to describe higher-order functions by Robby Findler[2]. PLT also strongly advocated the use of blame with contracts -- the ability to blame the responsible party (function) when a contract fails. My Masters thesis under Robby Findler was on guided random testing us…
> I should note that an ordinary > contract system does not delete your code... Much to my dismay.
Vigil: A programming language with eternal moral vigilance
101–110 of 120 posts
Re: Vigil: A programming language with eternal moral vigilance
#102Eternal moral vigilance is the price of coding liberty! This project clearly needs to be amended to integrate with version control.
Source control allows one to bypass the moral purity of Vigil by recovering arbitrary sinful code from the past. Moral purity can not be advanced while the sins of the past remain with us forever, uncleansed. One can only properly use Vigil without any sort of source control. Even copying files before the compiler tries to run it is an attempt to cheat the system; for that, Vigil would be justified in deleting your e…
In order for the human to produce a valid function that human must mentally execute the code s/he is writing. If that code is flawed then the mental compiler should delete the sinful code from the programmer's memory before it ever makes it to digital form.
If vigil merely deletes the code then it's acting like the human's brain, and forces the human to try again. But it does not eradicate the source of the sin. It acts as a tool for the human rather than a universal enforcer of good morals.
Note that one can lie as to one's sinfulness. Rather than lie about implores and swears a function can deceive by stating none at all (or just weak ones). This is like pleading the fifth. This is like not promising to not do something bad and therefore not being dishonest if you do do something bad.
Should flaws in vigil cause vigil to delete itself? Or should the inherent flaws in vigil cause it to delete the programmer who made vigil? If vigil can not catch all sins, as it currently cannot, should it therefore delete both itself and it's author immediately? If it does any less than this then it falls short of being an enforcer of pure morality, instead settling on a subset deemed of utmost importance.
Re: Vigil: A programming language with eternal moral vigilance
#103Re: Vigil: A programming language with eternal moral vigilance
#104To make this actually useful, instead of deleting bad functions, it's probably better to make the offending functions throw a special exception when they are called, signaling the calling of a function known to be bad. This way, you can still inspect the code for the offending functions and fix the bugs. Otherwise, the original code could just totally disappear after multiple runs. What good is non-buggy code if it d…
From the creator's own mouth, it's a satire language, but all satire has a good point. Vigil's is many programmers' susceptibility to The Broken Window problem. It's creation raises a good point about the usefulness of contracts in the absence of mechanisms for enforcing those contracts.
Re: Vigil: A programming language with eternal moral vigilance
#105In my opinion, deleting code is fine...however you should 1) be warned that it will happen in the near future if you do nothing about it and 2) it should be tied to some version control system (e.g. GitHub) where it pushes the deletes (maybe even creating a branch and remerging it so the changes are clear) so that code can be recovered if need be.
Vigil can maybe even have some logic built in if you revert deleted code it gets "angrier" and starts more aggressively purging code in the future :P
Re: Vigil: A programming language with eternal moral vigilance
#106Re: Vigil: A programming language with eternal moral vigilance
#107Re: Vigil: A programming language with eternal moral vigilance
#108Re: Vigil: A programming language with eternal moral vigilance
#109I rather enjoyed reading about the language, but was a bit disappointed that they made no attempt at static analysis, especially with such a rich set of assertions that the language enforces. I'd really like to see my entire program get deleted at compile-time rather than having to run it a bunch of times to delete all the faulty nested function calls one at a time.
Re: Vigil: A programming language with eternal moral vigilance
#110Earlier quoted context omitted.
Typical case of "redundant acronym syndrome syndrome" http://en.wikipedia.org/wiki/RAS_syndrome
Slightly more severe than typical - two words are duplicated.
I consider that an example of "Maximally Redundant MRAS Acronym Syndrome".