Settings

Theme

Vigil, the eternal morally vigilant programming language

github.com

121 points by alex_marchant 2 years ago · 27 comments

Reader

alex_marchantOP 2 years ago

> 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.

dang 2 years ago

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)

winternewt 2 years ago

"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."

eternityforest 2 years ago

By fire shall it be cleansed, by the blade shall it be redeemed, no evil shall taint this blessed land!

mikewarot 2 years ago

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.

taneq 2 years ago

Programmer: makes minor typo

Vigil: THE HERESY MUST BE PURGED

foota 2 years ago

Replace deleted with passed to ChatGPT and you'll have VCs lining up.

  • vitiral 2 years ago

    Is this like God working through you to change your ways and become righteous?

jeroenhd 2 years ago

> 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.

peter_d_sherman 2 years ago

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>

xeckr 2 years ago

I could see this being fun in a competitive programming context.

lagniappe 2 years ago

Makes me miss Terry a little bit :/

vitiral 2 years ago

Let's be clear, we all know that Virgil doesn't go far enough because PEBCAK

reilly3000 2 years ago

Talk about executable…

scotty79 2 years ago

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?

esbeeb 2 years ago

I laughed. Hard.

yosito 2 years ago

I know this is a joke, but it would be interesting to see an actual project built with this, just for curiosity.

lemper 2 years ago

if I put square_root("branch") what then? how you gonna punish me? cut my workload? raise my paycheck?

  • foota 2 years ago

    Careful, if there's no calling code left to delete it might just go after the programmer :-)

    • shwaj 2 years ago

      Haha, better know what you’re doing before you dare invoke ‘vigil -i’.

whisket 2 years ago

Isn't the fib function as given heretical? Is it missing an oath, or is that the point?

classified 2 years ago

Once it implements the Wich Hunt feature, I'm sure the Woke Apostle Task Force will adopt it in a heartbeat.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection