Live data from Hacker News

Vigil: A programming language with eternal moral vigilance

github.com

111–120 of 120 posts

Re: Vigil: A programming language with eternal moral vigilance

#111

IDK. Implore? Shouldn't there also be beg, cajole, plead, and grovel?

There is nothing morally upright about begging, cajoling, pleading or grovelling.

Imploring isn't really right either, because it seems too subservient to enforce a requirement on calling code.

It's more like the feudal lords obligation to his vassal - that he provide them with the use of the fief and protect them from others. If the function is the fief, then you provide the use of it only to those other functions that will swear fealty to you.

Re: Vigil: A programming language with eternal moral vigilance

#112
post #109

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

Agreed. The "deletes the function from your source code" part is amusing, but "swear" and "implore" are just like Python's "assert".

Not quite.

Implore asserts that a test passes (prototypically on a passed in parameter), but if that test fails the blame is on the calling function.

Swear on the other hand will assign blame to the current function if the test fails.

Re: Vigil: A programming language with eternal moral vigilance

#113

Earlier quoted context omitted.

Slightly more severe than typical - two words are duplicated.

Worst I ever saw was an advertisement proclaiming that the car in question had "Advanced ABS Braking System". I consider that an example of "Maximally Redundant MRAS Acronym Syndrome".

Isn't the A in ABS "Anti-lock"? In which case, it's comparable. I like your syndrome name, though!

Re: Vigil: A programming language with eternal moral vigilance

#114
post #61

Earlier quoted context omitted.

GHC Haskell compiler = Glasgow Haskell Compiler Haskell compiler

Typical case of "redundant acronym syndrome syndrome" http://en.wikipedia.org/wiki/RAS_syndrome

My favorite is things like 'Role of UBIquitin and ubiquitin-like modifiers in Cellular regulatiON' ("RUBICON") - New Scientist called it "MAD" = "malformed acronym syndrome".

http://www.newscientist.com/article/mg19025562.700-feedback....

Re: Vigil: A programming language with eternal moral vigilance

#115

Supposedly an unreleased version of the GHC Haskell compiler had this feature first: https://twitter.com/bos31337/status/116372971509121025

GHC Haskell compiler = Glasgow Haskell Compiler Haskell compiler

Actually, GHC Haskell compiler = The Glorious Glasgow Haskell Compilation System Haskell compiler[0]

[0]: http://en.wikipedia.org/wiki/Glasgow_Haskell_Compiler

Re: Vigil: A programming language with eternal moral vigilance

#116

Earlier quoted context omitted.

I'm working on getting Vigil to be self-hosted. There's a bit of a "who watches the watchers" problem involved. But, remember, Vigil only holds you to the oaths you yourself have sworn. If Vigil swears to punish a function, then it should be punished for failing to do so. But if it's given no oath to that effect, then it's off the hook. You may reasonably ask yourself, "well, what oaths does Vigil swear to uphold?" T…

This is the essence of the Hobbesian approach - Vigil is has unlimited power over the programmer's code. The programmer has no claim upon Vigil other than that it enforce morality upon their code. I don't think you can have turtles all the way down.

Because chances are four of them are teenaged ninjas?

Re: Vigil: A programming language with eternal moral vigilance

#117
I like python-like languages, but the deleting of code seems rather extreme (and unlike the personality I'd expect from a python-like language). Boo provided a super extensible compiler pipeline and metaprogramming (http://boo.codehaus.org/), while Cobra provided built in unit test support and contracts (with keywords of ensure and require) (http://cobra-language.com/) -- neither destroy your work (even if it is WIP).

Re: Vigil: A programming language with eternal moral vigilance

#118
post #50

Earlier quoted context omitted.

projects like this are why coffeescript needs to support macros. There are so many coffeescript dialects out there that make minor changes to the language to accomodate one or two extra features, e.g. IcedCoffee. I don't want to have to use a separate, presumably less well supported language for this kind of stuff, just let me plug it in!

> The golden rule of CoffeeScript is: "It's just JavaScript"[0] Macros would be deviating from core JS too much to fit with CoffeeScript's goal. Just happens that the compiler is nicely hackable to allow for these projects. Not to say I object to the idea of an expanded CoffeeScript, just that it should be a fork. [0] http://coffeescript.org/

Macros will eventually be in core JS, see:

http://disnetdev.com/blog/2012/10/14/hygienic-macros-for-jav...

and http://brendaneich.github.com/Strange-Loop-2012/#/40 http://www.infoq.com/presentations/State-JavaScript

Re: Vigil: A programming language with eternal moral vigilance

#119
post #7

Earlier quoted context omitted.

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…

There was an issue filed for this. One simple fix would be to have Vigil delete your .git directory when a transgression occurs.

The git filter-branch command might be more appropriate. It should allow you to delete just one function through all history.

Re: Vigil: A programming language with eternal moral vigilance

#120

Supposedly an unreleased version of the GHC Haskell compiler had this feature first: https://twitter.com/bos31337/status/116372971509121025

The anecdote is told here starting around 00:15:10 into the talk: (all of which is excellent)

http://yow.eventer.com/events/1004/talks/1054

Post reply on HN