This is the perfect language for the libertarian operating system I am developing. Well, it's not really a traditional operating system since it eschews coercive central controls in favor of giving each rational actor the maximum amount of freedom.
For instance, there will be no virtual memory since that would be akin to fiat money. Ever wonder why the memory footprint of your programs gets larger every year? It's because we abandoned the freedom of direct memory access in favor of fiat systems of paging and garbage collection.
Programs would be much faster and more capable if they weren't constantly being oppressed by centrally imposed costs associated with asking the kernel to do everything for you. Who decided that ivory tower fatcats like Linus Torvalds should make all my decision for me?
The CI system will also require that everyone read all the source code before they can make any commits. That way new code will introduce fewer unintended consequences.
Yeah, it's hard to sustain these metaphors for too long...
Such a wonderful confusion of libertarianism with technology :-) Libertarianism makes sense only for freely acting independent entities (not necessarily "rational", by the way), meaning there is no objective way to establish an entity more "rightful" and more "reasonable" - hence the policy of no aggression.
But in the operating system everything acts according to a command of a designer. Programs run because user has launched them, memory is paged because the designer wanted so and the user freely agrees to trust his judgement.
There is no ground whatsoever to compare virtual memory to fiat money. In some systems virtual memory makes a lot of sense even with non-desirable side effects. In some others, it makes sense to have a direct access to the memory. But in both cases the solution is completely determined by the somebody's choice. There are absolutely no "free actors".
Even if you design the OS with a policy of "no policy", it's still your particular choice, not a laissez-faire for the "actors". And, of course, Linus Torvalds has nothing to do with your decision to use a particular kernel for your particular use. If the computer belongs to your employer or customer, it's not the Torvalds, but you and your counterpart who decide whether to use the system or not (and how).
EDIT: What a fool I am :-) I didn't see the irony in the above comment.
Because objectivist ideals require that there be no regulation of the free market, I have opened the maximum number of allowable handles to the printer, thereby exhausting the supply (which I now horde). All printer access must now be routed through me. So please use the following code snippet instead, which is the only mechanism by which you can access the printer:
Should you attempt to build a printer replacement, I will deny you and your customers access to every other system resource I have similarly horded (you'll probably need a file handle to open the file you want to print, right?) and I will undercut your pricing thereby forcing your bankruptcy after which prices will resume at previous extortionate levels.
Objectivist C is an expressive language, but it's not built for reliability. I tried using a hypervisor written in Objectivist C one time to manage some VM instances, but once it realized it was critical to my business, it stopped responding to requests and removed itself from my network drive.
The parody of Ayn Rand's writing style captures it well:
Through centuries of scourges and disasters, brought about by your code, you have cried that your code had been broken, that the scourges were punishment for breaking it, that men were too weak and too selfish to spill all the blood it required. You damned men, you damned existence, you damned this earth, but never dared to question your code. Your victims took the blame and struggled on, with your curses as reward for their martyrdom - while you went on crying that your code was noble, but human nature was not good enough to practice it. And no one rose to ask the question: Good? - by what standard?
Works made using Objectivist C is licensed under copy-far-right licenses, where the rights holder cannot share the source code and is obligated to use the code only for projects that further his own selfish goals.
Meh. This is only funny for as long as your mind can hold the analogy software object :: human individual, which is for two minutes at most. Then the objectivist in you kicks in, and you realize that said analogy is cruel because it derives its punch from comparing something that is subordinate by design with something that is subordinate through misfortune.
The Poe factor[1] of this post approaches 1. Well done bluekeybox.
[1] A factor normalized as a real number between 0 and 1, which determines how applicable Poe's Law (http://rationalwiki.org/wiki/Poes_Law) and its corollaries are to the post - e.g. in this case it is both hilarious and frightening when assumed facetious or serious (respectively).
Individual humans aren't subordinate by misfortune. Evolution "designed" them to accept cultural assumptions so as to avoid threatening cultural cohesion. I love Ayn Rand (as a writer, not a philosopher. I have never identified with a character so much as with Howard Roark) but an isolated human is weak and vulnerable. We're a social creature and leaving society amounts to suicide. Absorb those stupid cultural assumptions and question them at your own risk.
I was about to complain that the code is a bit too concise, but then I read this:
"Another principle that Objectivist-C software engineers have little use for is Don’t Repeat Yourself."
But is printHelloWorld a proper function? It neither accepts something, and it returns "void". As the proper means of interaction with others is trade, this function seems rather aberrant. Functions like this probably listen to Beethoven, too.
Can a function that produces output, yet doesn't accept any parameters in return pass the compiler?
That style is definitely not objectivist, real objectivist functions always take exactly one argument and return one argument.
a -> a
Rational randian functions never obey imperatives or procedures, and certainly never return void to their investors, they obey only the Rearden calculus as defined in the Rearden-Taggart theory of universal exchangability.
I would assume that such method calls are actually descriptive reports by lesser objects of things the superior objects have already decided they are going to do. Otherwise those superior objects wouldn't have listed them in their public interface.
It's a good thing I wasn't reading over the sample code in the office.
Bravo, a poignant demonstration of the value of collectivism through code. As coders, it is easy to overlook how much we depend on the generosity of others to do our work, to feel entitled to all this infrastructure we can leverage at little or no cost, and especially to not see how this empowering system should be used in other aspects of our society.
Maybe KickStarter for open-source medical technology or textbooks.
[+] [-] bithive123|14 years ago|reply
For instance, there will be no virtual memory since that would be akin to fiat money. Ever wonder why the memory footprint of your programs gets larger every year? It's because we abandoned the freedom of direct memory access in favor of fiat systems of paging and garbage collection.
Programs would be much faster and more capable if they weren't constantly being oppressed by centrally imposed costs associated with asking the kernel to do everything for you. Who decided that ivory tower fatcats like Linus Torvalds should make all my decision for me?
The CI system will also require that everyone read all the source code before they can make any commits. That way new code will introduce fewer unintended consequences.
Yeah, it's hard to sustain these metaphors for too long...
[+] [-] oleganza|14 years ago|reply
But in the operating system everything acts according to a command of a designer. Programs run because user has launched them, memory is paged because the designer wanted so and the user freely agrees to trust his judgement.
There is no ground whatsoever to compare virtual memory to fiat money. In some systems virtual memory makes a lot of sense even with non-desirable side effects. In some others, it makes sense to have a direct access to the memory. But in both cases the solution is completely determined by the somebody's choice. There are absolutely no "free actors".
Even if you design the OS with a policy of "no policy", it's still your particular choice, not a laissez-faire for the "actors". And, of course, Linus Torvalds has nothing to do with your decision to use a particular kernel for your particular use. If the computer belongs to your employer or customer, it's not the Torvalds, but you and your counterpart who decide whether to use the system or not (and how).
EDIT: What a fool I am :-) I didn't see the irony in the above comment.
[+] [-] fusiongyro|14 years ago|reply
[+] [-] vilhelm_s|14 years ago|reply
[+] [-] biot|14 years ago|reply
[+] [-] lmkg|14 years ago|reply
[+] [-] pohl|14 years ago|reply
Through centuries of scourges and disasters, brought about by your code, you have cried that your code had been broken, that the scourges were punishment for breaking it, that men were too weak and too selfish to spill all the blood it required. You damned men, you damned existence, you damned this earth, but never dared to question your code. Your victims took the blame and struggled on, with your curses as reward for their martyrdom - while you went on crying that your code was noble, but human nature was not good enough to practice it. And no one rose to ask the question: Good? - by what standard?
Nice.
[+] [-] javert|14 years ago|reply
OP could not have written that paragraph.
[+] [-] laconian|14 years ago|reply
The Objectivist C API is also copywritten.
[+] [-] powrtoch|14 years ago|reply
[+] [-] sneak|14 years ago|reply
Oh, so it's just like Cocoa Touch!
[+] [-] FuzzyDunlop|14 years ago|reply
"No!" says the man in San Francisco, "it belongs to the community."
"No!" says the man in Hollywood, "it belongs to the Creator."
"No!" says the man in Sweden, "it belongs to everyone and no one."
I rejected those answers. Instead, I chose something different...
[+] [-] laconian|14 years ago|reply
[+] [-] bluekeybox|14 years ago|reply
[+] [-] sophacles|14 years ago|reply
[1] A factor normalized as a real number between 0 and 1, which determines how applicable Poe's Law (http://rationalwiki.org/wiki/Poes_Law) and its corollaries are to the post - e.g. in this case it is both hilarious and frightening when assumed facetious or serious (respectively).
[+] [-] aaronasterling|14 years ago|reply
[+] [-] TwiztidK|14 years ago|reply
At this point I had to stop reading because the laughter was noticeable outside of my cube.
[+] [-] unknown|14 years ago|reply
[deleted]
[+] [-] mhd|14 years ago|reply
"Another principle that Objectivist-C software engineers have little use for is Don’t Repeat Yourself."
But is printHelloWorld a proper function? It neither accepts something, and it returns "void". As the proper means of interaction with others is trade, this function seems rather aberrant. Functions like this probably listen to Beethoven, too.
Can a function that produces output, yet doesn't accept any parameters in return pass the compiler?
[+] [-] fleitz|14 years ago|reply
a -> a
Rational randian functions never obey imperatives or procedures, and certainly never return void to their investors, they obey only the Rearden calculus as defined in the Rearden-Taggart theory of universal exchangability.
[+] [-] roguecoder|14 years ago|reply
[+] [-] steve-howard|14 years ago|reply
Definitely not very Ayn Rand.
[+] [-] eric_bullington|14 years ago|reply
[+] [-] tosseraccount|14 years ago|reply
(shrug)
[+] [-] powrtoch|14 years ago|reply
[+] [-] dicroce|14 years ago|reply
[+] [-] fruchtose|14 years ago|reply
[+] [-] F_Catalan|14 years ago|reply
Trying to use "this" results in: "Syntax error: Insufficient property assertion"
Also be advised that the "?" modifier for regular expression quantifiers isn't implemented.
[+] [-] brudgers|14 years ago|reply
[+] [-] WiseWeasel|14 years ago|reply
Bravo, a poignant demonstration of the value of collectivism through code. As coders, it is easy to overlook how much we depend on the generosity of others to do our work, to feel entitled to all this infrastructure we can leverage at little or no cost, and especially to not see how this empowering system should be used in other aspects of our society.
Maybe KickStarter for open-source medical technology or textbooks.
[+] [-] javert|14 years ago|reply
Open source software is not "collectivism", which is a moral/political doctrine.
[+] [-] zaptheimpaler|14 years ago|reply
[+] [-] natep|14 years ago|reply
[+] [-] javert|14 years ago|reply
By the way, there is no virtue of "individualism" in Objectivism, it's independence. Which isn't the most important virtue.
[+] [-] mike626|14 years ago|reply