Friday, October 3, 2014

Object Oriented Programming Isn't Bad!

I was hanging out on Facebook today, when I came across a rant written by a friend of mine. My friend is an extremely talented programmer, artist, and overall just a gifted individual. But he recently came to the realization that he hates Object-Oriented Programming (OOP). So I ended up wasting an hour or two of my time ranting in disagreement.

My rantings aren't anything particularly special. The things I've said below have been said a thousand times before by people far smarter than me. The same also applies to arguments against everything I'm about to say. But these sorts of debates are very common amongst programmers, so I thought some of you all might enjoy reading if I shared :-)

So without further ado, here's what my friend wrote, and my response is what follows.
After years of c++ and object oriented programming, I have come to the ultimate conclusion how useless this paradigm is in the programming world. It's also made horrible by the fact that a lot of substandard programmers use it, to where it's much easier to run into software that is utter crap because of the object oriented style. Objected oriented design leads to very bad design choices that are riddled with abstractions and indirection that aren't very efficient and must be waded through to debug later in the future. This means that to do something efficiently you limit yourself to what is only available in procedural languages like C so there's no real reason to even use OOP at all. 
Basically, I came to realize that a lot of programmers out there do not get the concept of "pay only for what you use". Which, inherently, make them "bad" programmers. I say "bad" as in "they can't write code that is efficient". These programmers might come up with very nice (as in, pretty) pieces of software. They also might come up with very stable piece of software. But they can't come up with code that is at least as efficient than code written by the programmers who know exactly the advantages of C(procedural) over C++\C#\Java\Python. 
The main issue at hand is "quality of life". I now understand that there is a lot of programmers out there who are only "consumers". They consume compilers and languages (and, as an extend, processors) as they see fit for their convenience and not as they see fit for the efficiency of the final software. They only want to "get the job done", and do it in the most efficient manner for the number of lines they have to write, or the easiness of the code they write. 
But a "real" programmer will actually be aware of the generated code. They do not care about their quality of life, as long as the generated software is slim and efficient. These programmers will know exactly what kind of assembly code is going to be generated as they write the source code. They are perfectly aware of each and individual cost of their line of code in terms of generated code size and speed. And C is the only language that fully provides this ability. Linus original argument can be translated into "if you are a OOP advocate for the sole reason it's easier to use for some programmers, then I don't want you to contribute to git, because you're most likely to be not aware of code efficiency, and thus, you're most likely to contribute non-efficient code into a project where efficiency is the main selling point." 
Now, in an environment where the code is fully controlled, and where code contributors are fully respected and trusted, then OOP might be acceptable, because then one can trust them to do the right choices, and dodge the various pitfalls that OOP will present them. When you can't possibly fully review every and each contribution being made, because there's so many, then C presents the advantage of fencing yourself against common bad programming practices that Object-Oriented programmers tend to be plagued with.
I disagree. I think that OOP is a good thing. Same goes for parameterized types (aka templates or generics). The only real problem with OOP is that most programmers are idiots who think inheritance of implementation is a good idea. It’s actually quite evil. It's one of the most abominable acts a programmer can commit. Even among my most trusted colleagues, this stuff still happens, but they tend to do it a whole lot less than everyone else in the industry.

Do you religiously write unit tests? Because that's the main advantage of OOP. It's very difficult to write testable code without OOP. But you know what's even better than OOP? OOP + Dependency Injection. I think dependency injection is really the pinnacle of object-oriented development. And the best way to do DI-OOP is Dagger 2.o.

Testing is such an important part of programming. So much so, that I'd say if a particular paradigm makes testing better, then it's probably a good thing. However I'd like to attach a disclaimer that I'm not exactly advocating TDD. I think TDD is for zealots. The only time IMHO when tests should absolutely be written first is when you're fixing bugs. It's important to prove that what you think you're fixing is indeed what you're fixing before you fix it!

But one thing I must admit, even though I like OOP, I have a great deal of respect for how Linus Torvalds writes C applications. When he wrote Git, he broke it down into a zillion tiny little C programs—almost to the point where each C program could practically be considered a class—and then tested them using bourne shell. Brilliant. That's how coding gets done when you treat the kernel itself as your framework, rather than as a cesspool upon which all your other goofy fleeting frameworks float.

I've done a lot of cool stuff  but overall I'd consider myself a spec in Torvald's shadow. There are very few software engineers on this planet who are in the same league as him. I'd say Richard Stallman, Donald Knuth, Jeff Dean, Sanjay Ghemawat, and John Carmack are some of the very few people I'd place up there beside him.

Here's another important thing to consider: data structures. C programmers don't have a whole lot of quality data structure libraries at their disposal, because the C language makes it very difficult to write abstract code. On the other hand, C++ programmers have a whole lot of cool things, like sparsehash to choose from, and they can always count on these libraries to have remarkably similar APIs. The same cannot be said about C data structure libraries whose APIs are oftentimes incomprehensible (like Judy).

It's also worth mentioning that, due to the way memory behaves on modern computing architectures, the complexity of the assembly output for your code can be deceiving in terms of performance. Let's say you fine-tune your code to reduce the number of instructions that's required from like 100 to 10. A 3ghz CPU can perform many of its instructions, like adding two integers, in just 0.3ns, so you'd expect 27ns performance increase. But oh wait—somehow a main memory reference got thrown in there that didn't hit the cache, so now you got a 100ns penalty on a single instruction and you lose. Or maybe you reduced the number of instructions by using an O(n) algorithm instead of O(logn) and you need N main memory lookups, so you lose again.

These problems become more apparent when you're operating at scale. If you're dealing with several gigabytes of data in memory, choosing the theoretically optimal algorithms and data structures can have far more impact than writing the practically optimal code. Scale it up even further, where algorithmic iterations are no longer measured in opcodes—but rather in network roundtrips—and the difference between a line of crappy C++ versus its hand-tuned assembly equivalent just seems like ants.

But when it comes to code that doesn't have to operate on large data sets—like for example if you're writing a desktop operating system—tremendous performance benefits can really be had from writing hand-tuned code. Take for example MenuetOS which is written in FASM. The entire freakin' operating system and all its applications fits in L2 cache (!!!) If everything you're doing fits in <=L2 cache, then you can probably get away with crap algorithms for everything. It won't matter, because L2 lookups are an order of a magnitude faster than main memory, and L1 lookups are nearly as fast as the registers themselves.


But overall I endorse your brand of programmer elitism. There are just so many things lurking beneath the surface of well-written shiny code that every programmer needs to know in order to be a pro. We need to know how our code translates into machine code and how it executes on the system. We need to know the performance characteristics of the system. We need to know the upper limits for what the system is capable of doing. And we need to understand computer science.

If you’re frustrated about the silly layers of abstractions people create that we oftentimes find ourselves needing to purge, then perhaps your gripe is with the solipsistic programmer?

The solipsistic programmer (e.g. James Gosling) rejects reality and substitutes it with his own imagination. He sees computer systems as how he wants them to be, rather than how they actually are. He shuns existing tools that work and instead seeks to replace them with his own. He rejects standards, without even trying to understand them. He disregards style guides, when he isn't complaining about them. He cares not about performance, for it imposes an impediment to his idyllic design. He has no interest in the quality of the end-user product, for his goal is to impose his vision and ego upon others. Whenever he finds austere beauty in software design, he will immediately try to snuff it out with bloat and complexity.

I wouldn't be surprised if 99% of all software engineering effort in this country is wasted on egotistical men (architects) who keep designing new junk, and the poor innocent devs who have to cope with that junk. Eventually there becomes so many pieces of junk (platforms) that even more junk (cross-platform frameworks) needs to be created to cope with that junk.

I should also note that the solipsistic programmer's political equivalent is the progressive ;)

Tuesday, July 1, 2014

Give Matriarchy Ⓐ Chance

I'm a strong supporter of matriarchy. This is because men are violent misbehaving creatures. If you want to have order in your society and maximize quality of life for womyn, you need to find some way to cure man of his brutish tendencies. If you look at history, you will see that only one method has really proven to work. That method is slavery.

The two most popular types of slavery in modern america are are wage slavery and slavery to a wife and children through marriage. If the men in your society aren't married or working jobs, then you will have disorder and chaos. They'll form violent gangs and spend all their time gambling and getting drunk in saloons and brothels.

Women on the other hand don't need to be slaves, since women are naturally more civilized. Under matriarchy, a woman is head of her home and home is the center of the universe. She lives in peace and serenity, spending her time with children, family, and community. She spends her time making her surroundings beautiful and sharing nourishing meals with her loved ones. After all, these are the things that truly matter. They're the very foundation of our existence. Everything else that we do, is meant to support these fundamental things. And only women should have the right to enjoy them to the fullest.

On the other hand… all the horrible soul-crushing things that suck, yet are required to support a woman's happiness—should be the sole responsibility of men. Men should be the ones forced to do all the grueling physical labor. Men should be the ones who are forced to go to war to fight and die. Men should be the ones forced to work awful jobs for evil corporations where they're tormented by cruel uncaring bosses that don't care whether they live or die. Men should have to be the ones who worry about money, bills, and all the other capitalist abominations in our society—which I might add were invented by men! When will they learn?

Sunday, June 22, 2014

Gun Control

Here's my position on guns: Ban them in the cities; let the hicks have them.

There's 34,000 men in NYC walking around in blue uniforms toting guns. They belong to what was once called Mayor Bloomberg's Private Army, which happens to be the seventh largest army in the world. In a place like New York City, I don't think any conservative can make a sensible argument that we need civilians to also have guns. Anyone who wants to shoot, can just sign up for this thing where they put you on a bus, take you to a place where it's legal to shoot, and then hand you a gun so you can have your testosterone-driven orgy of destruction. Then they take the gun away before they bring you back home.

On the other hand, I can understand how if you're living in a remote area, a rifle would be useful. It's good for hunting. It's also good for helping you and your family feel safe. Nature is a very lonely and scary place. Even though we live in a time of remarkably little violence, we humans evolved to feel unsafe in certain situations. I myself couldn't help but feel afraid when I've visited remote areas. I wondered, what if raiders were to materialize from the shadows? I'd be utterly helpless. After all, if you're deep in the woods or in some random open space, the cops can't exactly show up in two minutes.

There are also people who prefer to live autonomously… I guess you could say "off the grid". They're fully cognizant of the fact that America is likely to collapse at some point in the coming decades. They generally see the government as the enemy. They do not trust police forces to protect them, nor do they want to. Such people need guns. Because there might come a day when they'll need them. Who are we to tell them otherwise?

I would also say that we should ban handguns, since they are not a weapon one uses for hunting. They are also not a weapon one uses to defend their property. Pistols are a weapon of law enforcement and war. I would honestly prefer that hicks out in no man's land have 50-caliber machine guns than have pistols. Why? Because men don't get drunk in bars and pull out a mounted 50-cal machine gun. It's merely a gun people use for entertainment and war. They do however get drunk and stupidly pull out a pistol and shoot people. That's why they shouldn't have pistols. But there's no harm in allowing boys to continue to have their toys.

If you think about it, the so-called “gun control debate” isn't really about guns. It's just a lack of understanding between city-dwellers and townies. People in the cities aren't really empathetic to the plight of those who don't live in cities. They don't want to understand them, they just want to antagonize them. That makes me sad.

Thursday, April 17, 2014

Modern Politics is Built on Stealing Credit from Engineers


The history of modernity is basically the story of political hacks stealing credit from scientists and engineers. We've built a lot of cool shit over the past few hundred years. We create the technologies that drive human progress. But opportunistic scoundrels with political ambitions always steal credit for our accomplishments.

  • Capitalists say shit like, "cutthroat competition brought you all these wonderful things!"
  • Progressives say, "government regulation brought you all these wonderful things!"
  • Marxists say, "struggle and antagonism brought you all these wonderful things!"

They're all liars. Meanwhile engineers are geeking out in a basement, caring very little for politics.

This conflict can only be resolved by scientists and engineers stepping up and taking power. We already rule the world, we just haven't figured out how to reign. But we will eventually. Welcome to the new age.

Thursday, April 10, 2014

My cynical synopsis of “The After Party”

After Party Logo

A new political party was just launched online yesterday named The After Party. Great name right? I cracked up when I heard it too—it's just too good. In a political landscape dominated by geriatrics, what self-respecting millennial couldn't resist the temptation to become a card-carry member?

After Party is being put together by some veteran organizers from the Occupy Movement and U.S. Uncut. They're good guys who are intelligent and serious. I've even done a few things to help them out, since I love seeing hardworking ambitious people shoot for the moon.

However it fills me with great sorrow to report that The After Party's politics… aren't quite as awesome as the name. They're explicitly populist with a loyalist agenda laden with slave mentality. Their ideology is indistinguishable from the liberal belief politics status quo. These guys are basically clamoring for more of the same.

The only divergence the After Party has with the mainstream left in America, is their emphasis on mutual aid. This ideal manifests in their political strategy to provide Detroit residents with free social services like gardening and cleaning debris. How they intend to gain political power through random acts of charity is beyond me. This sounds like a great way to lose power.

Detroit is 82% black. I'm very interested in seeing how they'll react to busloads white hippie kids invading their neighborhood to do construction work. I'm also interested in knowing how they intend to secure the reciprocity that mutual aid implies. Perhaps they'll win over their hearts and minds with tales of Kropotkin in Siberia discovering the enlightened social darwinism of ant colonies. We cleared your rubble, now you have to be our drones.

After Party Manifesto Screenshot

After Party Manifesto tl;dr


For those of you who don't speak the activist lingo, I'll provide the following translation of the After Party Manifesto.

Each bullet point is a summarization of its corresponding section within the screenshot on the left.
  1. We are helpless
  2. We are exploited
  3. We are entitled
  4. Please don't destroy nature
  5. We don't think straight white men should be in power
  6. We're hippies working within the system for bottom up change
Propaganda like this can only come from the soul of a man who is docile and broken. It's a distant cry from the sort of propaganda I originally tried to weave into Occupy's culture, which was the politics of empowerment through exit & resistance. This stuff is just weak and sad.

After Party Platform tl;dr


The following is my translation of the After Party Platform. Each bullet point contains a letter which corresponds to the section in the screenshot to the right of which it's a summary.
  • R: We believe in republicanism and paying reparations to communities of color.
  • I: We will incentivize third-word emigration to western nations.
  • S: We will increase subsidies to green energy technology manufacturers like GE.
  • E: We will pay for young adults to go to a four year long sex and drinking party before they enter the workforce.
  • U: We believe people have the right to see a doctor when they get sick.
  • P: We will fight corruption.

This isn't a platform, this is a statement of loyalty to the existing state ideology. If this were a European political party, it would also be an endorsement of existing state policy. So the After Party could accurately be described as a loyalist party, or perhaps anti-western liberal conservatism.

Suggestions


People don't want to take a vacation to Detroit so they can become servants to random people they've never met. The poor black people up there also don't need us to come running in and trying to save them; as they're perfectly capable of helping themselves.

If you truly care about helping the communities in Detroit, you would need to become a community there first yourselves. Just pick a neighborhood and start moving your people there. Tulia is telling me that north of MLK Boulevard, houses are going for $35k. Have each of your supporters get a loan to buy a house. Make sure you guys all live within a block of each other and try to stay as tight as possible. Then you can start building your own community and establish a presence.

Now you might be thinking, "but that's gentrification!" You'd be correct, but gentrification itself is actually a good thing. It's not gentrification that radicals oppose, but rather its consequences, such as the displacement of existing communities through market forces. So in order to to prevent yourselves from displacing the black community, you'll need to find a way to prevent your members from becoming bourgeois. I recommend doing this by requiring after partiers to enter a legal agreement that:
  1. Prohibits sale of property to persons outside the movement.
  2. Requires any return on investment from property sale be surrendered to the movement.
  3. Prohibits usufruct.
  4. Prohibits employment with organizations outside the movement.
  5. Requires meals be consumed in community cafeterias.
Once you guys have your own community, own your own land, and are solidly invested in the city—then it'll actually make sense to help the people around you. You'll all have a shared interest in the prosperity of the city.

The investment of each individual also makes sense from a recruiting standpoint. There's a lot of completely insane and toxic people in the activist community who aren't willing to do a bit of work. So if you put the requirement in place that everyone has to buy land in order to participate in your thing, it'll be a great deterrent against the sorts of people you don't want to have around. It also acts as discouragement against those you do recruit from leaving. This is essential for mutual aid to work; since it's irrational to invest in ephemeral social relationships. Nobody is going to invest the time and energy into supporting members of their community, if those members could very well disappear the next day.

Do not provide any sort of aid to people without securing loyalty in exchange. This is the only way to gain political power. One of the mistakes Occupy made, was it just gave everyone free stuff unconditionally. This is bad news, because the natural state of activists is to be disloyal and treacherous. So by providing aid without correcting their behaviors, Occupy basically just leaked power.

I also recommend establishing a solid niche in the ideological space. You're just too much… the same. You lack flavor and excitement. It's good to follow the status quo by default, as a general rule of thumb; but if you don't find a way to differentiate yourself from the competition, then there's no point to your existence. You need to tap into at least one appealing truth that no one else is offering. Something that makes you special and invigorates the passion of your supporters.

Conclusion


The After Party seems to be the latest manifestation of white liberal guilt in America. It's carries with it the pedigree of radical urban leftist politics, inheriting all of its masochism, yet none of its rage. Its propaganda lacks boldness and flavor. Its strategy is indicative of a fundamental misunderstanding of reality. Its beliefs are surprisingly tame.

I think these problems can easily be solved, as the party is still in its beta stages. There's a good chance this might turn into something interesting. I may not believe in beliefs of this organization, but I do believe in the organizers themselves.

Saturday, March 29, 2014

Liberals Hate Gay People

Photo credit: istolethetv on Flickr

I spend a lot of time talking about “liberal belief politics”, which is the term I use to describe the official religion of the U.S. Regime. I think it's evil. So I spend a lot of time fighting against the influence it has over our culture and the minds of intelligent people.

But I received a question the other day from a concerned liberal loyalist:
The power of sexual (and other) minorities to live as they wish has been greatly enhanced by widespread adherence to "Liberal Belief Politics" over the last 2 generations. Are you not concerned the breaking down that adherence to it will attend the destruction of said power?
Noooo! Don't give the liberals credit for LGBT rights, you monster! Let me tell you a story: the only reason gay people have "rights" is because some tranarchists decided to start a riot. It happened outside the Stonewall Inn in the late 60's. The police were being scoundrels (as you'd expect) and some radical tranarchists were brave enough to fight back. That's what started the gay rights movement. Because the fact of the matter is, the only rights you have are those you're willing to defend.

BTW tranarchists also started Occupy Wall Street. We trannies tend to be the vanguard of any resistance movement, since society hates us the most and we have the least to lose. For us, revolution is a means of survival.

It wasn't until the 90's that the liberals decided to co-opt the gay rights movement and divert all its resources into a single agenda: gay marriage. This meant that all the money that was going to help people, now went to lawyers, lobbyists, and media efforts. Why give your money to a wonderful organization like Bailey House to help homeless people with AIDS, when you can give your money to the Human Rights Campaign to help them buy another bottle of champagne as they wine and dine U.S. senators?

Since liberals are the great homogenizers of culture, they needed to assimilate us into mainstream society. To do this, they had to:
  1. Destroy queer culture so we're forced to integrate with mainstream culture.
  2. Brainwash mainstream society into guiltily accepting us.
  3. Throw trans people under the bus because we'd alienate and frighten the people whose "hearts and minds" they were trying to win over.
After a few decades of social conditioning, the liberals were successful. Queer people are now allowed to live a straight lifestyle. Straight people still hate us of course. Like the christians probably hate us more now than they ever have before. But they can't do a damn thing about it. Because we'll sue and shame them into oblivion if they do. Muahaha :-)

The liberals' next trick was to fight for our "right" to become gay cannon fodder for the U.S. Regime. Oh wait, I meant openly gay cannon fodder, since gay people have always served in the military. There's always been sodomy. It just wasn't something you talked about. Like remember the Spartans? Those dudes were totally getting it on. So DADT wasn't really about rights, but rather a rebellion against the rules of propriety. It was also a brilliant recruiting strategy, because idiots enlisted thinking the military had turned progressive. Like you would not believe how much it costs to hire mercenaries when there's a shortage of volunteers. But thankfully, there weren't any transgender people among them. The liberals were kind enough to throw the trans community under the bus (yet again) when they fought to get DADT repealed. So I think my lucky stars I'm still not allowed in the military. Woot.

Liberals also came into power by vilifying gay people. One of the biggest blows to the french monarchy was when the bourgeoisie (who hated gay people) decided to smear Marie Antoinette as a lesbian. After all, lesbianism was totally a thing among the french aristocracy (or should I say timocracy?)

Oh and here's another interesting talking point. The next time you see a bible thumper quoting the King James Bible in order to condemn homosexuality, be sure to remind them that King James was—you guessed itcompletely and utterly gay. Medieval England must have been pretty progressive. The liberals would never let us have a gay president today. Why? Because liberals hate gay people.