Vigil, the eternal morally vigilant programming language
github.com> This is where Vigil sets itself apart from weaker languages that lack the courage of their convictions. When a Vigil program is executed, Vigil itself will monitor all oaths (implorations and swears) that have been made. If an oath is broken, the offending function (the caller in the case of implore and the callee in the case of swear) will be duly punished. > How?
> Simple: it will be deleted from your source code.
> The only way to ensure your program meets its requirements is to absolutely forbid code that fails to do so. With Vigil, this shall be done for you automatically. After enough runs, Vigil promises that all remaining code meets its oaths.
Related:
Vigil: The eternal morally vigilant programming language - https://news.ycombinator.com/item?id=25052001 - Nov 2020 (34 comments)
Vigil, the eternal morally vigilant programming language - https://news.ycombinator.com/item?id=24967144 - Nov 2020 (2 comments)
Vigil, the eternal morally vigilant programming language - https://news.ycombinator.com/item?id=20451115 - July 2019 (1 comment)
Vigil, the eternal morally vigilant programming language - https://news.ycombinator.com/item?id=15209452 - Sept 2017 (48 comments)
Vigil: A programming language with eternal moral vigilance - https://news.ycombinator.com/item?id=5002597 - Jan 2013 (118 comments)
"Every program can be shortened by one line, and every program contains at least one bug. By which we can infer that every program can be reduced to a single, incorrect line of code."
By fire shall it be cleansed, by the blade shall it be redeemed, no evil shall taint this blessed land!
So, when a program fails it's oath... and it must be punished... I strongly suggest it be sent to purgatory (not deleted), for redemption is always possible.
This would make it possible for a programmer to redeem themselves.
Of course, you could probably do a git difference... but that's not as thematically consistent.
Programmer: makes minor typo
Vigil: THE HERESY MUST BE PURGED
Replace deleted with passed to ChatGPT and you'll have VCs lining up.
Is this like God working through you to change your ways and become righteous?
> It goes without saying that any function that throws an exception which isn't caught is wrong and must be punished.
Surely the failure is in the lack of handling, not in the throwing of the exception itself? I suppose the lack of checked exceptions in Python makes it impossible to blame the handler because there is no way to indicate what exceptions may be thrown.
Hilarious!
And Brilliant!
Also... deeply, deeply disturbing... on many levels... <g>
(But then, sometimes some of the best humor is inseparable from being deeply disturbing on many levels...)
Kudos to the sick, but funny (but still sick, let's not kid ourselves!) mind or group of minds that concocted this!
You guy(s) are extremely funny, brilliant, and funny(!) -- but (and it pains me to say this!) also deeply, deeply disturbed...
Which I, then again, suppose is a hallmark of great comedy... I mean, I can think of SNL and Monty Python sketches that were extremely funny -- yet also deeply, deeply disturbing on many levels...
So, perhaps it is a hallmark of comedic brilliance...
But then again, perhaps it is a hallmark of sickness...
This we don't know -- but we do know that it is funny, and we do know that it is hilarious! <g> :-) <g>
I could see this being fun in a competitive programming context.
Makes me miss Terry a little bit :/
Let's be clear, we all know that Virgil doesn't go far enough because PEBCAK
Talk about executable…
Why can't you in modern languages just say n:0.. like in Pascal?
Why can't you narrow down numeric types to provide range checking?
I laughed. Hard.
I know this is a joke, but it would be interesting to see an actual project built with this, just for curiosity.
if I put square_root("branch") what then? how you gonna punish me? cut my workload? raise my paycheck?
Careful, if there's no calling code left to delete it might just go after the programmer :-)
Haha, better know what you’re doing before you dare invoke ‘vigil -i’.
Isn't the fib function as given heretical? Is it missing an oath, or is that the point?
It ends with:
swear result >= 0 return resultGood to know that any sequence of non-negative numbers is the Fibonacci sequence.
Well, it is lying. The function name says so.
Once it implements the Wich Hunt feature, I'm sure the Woke Apostle Task Force will adopt it in a heartbeat.