On needing a new line of work

I need to declare it now and stick by it forever.

This will be the last year I write any C code.

Let’s go on a rant here.

Software programmers are assholes, generally, to some degree. They’re also very arrogant and stubborn. They believe that their way is best, usually to the detriment of whatever team they are on. These kinds of programmers don’t believe in using the best tool for the job; they believe in using the tool they like.

I let a programmer at the firm I contract for tell me to switch from using the best tool for the job, to a tool that is just wasting a shitload of my time and making things much more complicated than they should be for me.

Not only did said person tell me how to do my job, which is against the law (I’m a 1099 contractor and cannot be directly told how to accomplish the tasks given to me, otherwise I become classified an employee,) but they did so after I’d already done the work in another tool. That means that I get to bill twice for the same work, which is an up side. The down side, though, is that if I have to write any more C, I’m going to kill myself. It’s got to be the absolute furthest away from anything I’d consider wanting to do. I am very high level. I like to think up in the clouds, do things visually, and not get bogged down in tedium. If I spend more than five minutes trying to do something, I feel like it’s taking forever.

Let’s give an example for the non-coders out there of how C runs counter to the way I like to operate.

Text like you’re reading now is called a “string” in programming jargon. It’s a “string” of characters, which is where the name comes from. One thing that’s very common in programming is putting one of these “strings” together with another. Like, let’s say I have the word “dog”, and I want to append the word “good” and a space before it, so that it reads “good dog”. In a high level programming language, it would look a bit like this.

string noun;
string adjective;
string compliment;

noun="dog";
adjective="good";

compliment = adjective + " " + noun;

Now you’ve got the noun, and the adjective you want to modify the noun with, and you want to put them together to form a compliment. So you take your adjective, and add it together with a space and the noun. Bam. Now the string “compliment” says “good dog”.

Let’s do it in C.

char* noun;
char* adjective;
char* compliment;
int complimentBufSize;

noun=malloc((sizeof(char)*3)+1);
if(noun==0) return false; // out of memory
adjective=malloc((sizeof(char)*4)+1);
if(adjective==0) return false; // out of memory

strcpy(noun,"dog");
strcpy(adjective,"good");

complimentBufSize=(sizeof(char)*(strlen(noun)+strlen(adjective)))+2;
compliment=malloc(complimentBufSize);
if(compliment==0) return false; // out of memory
_snprintf(compliment,complimentBufSize,"%s %s",adjective,noun);

free(noun);
free(adjective);
free(compliment);

YES! THATS WHAT I’M TALKING ABOUT! SO MUCH WORK FOR NO FUCKING REASON!

Look, I can see why you’d want to do all that shit once in awhile. But not for stupid little fucking programs. There’s no reason anymore, really. None except pointless, menial arguments like “reducing memory bloat” and “lowering dependencies”. Fuck. Screw that. Everything’s dependent on something. This is fucking 2005. Computers are so goddamned complicated. Look in C:\WINNT\SYSTEM32 once in a fucking while. See all those .dll files? Zillions of them. They are all required by something. Your program is no different. Just because your dependencies ship with Windows, doesn’t mean you aren’t dependent on them. Your low-bloat, low-dependency program that in reality requires kernel32.dll, shell32.dll, advapi.dll, user32.dll, gdi.dll, mfc42.dll, and innumerable other libraries is not going to suddenly become shitty when it also requires mscorlib.dll and System.Windows.Forms.dll. Get real.

And that’s today’s angry rant that nobody will read.

Tags:

Leave a Reply

You must be logged in to post a comment.