Programming Sucks
stilldrinking.org
stilldrinking.org
<!--
So this guy we just interviewed at my
current job wrote this little script
to see if a product update for some
company had come out. Every 10 seconds
the script urllib'ed the page, checked
the length of the html - literally
len(html) - against the length it was
last time it checked. He wrote a blog
post about this script. A freaking
blog post. He also described himself
as "something of a child prodigy"
despite, in another post, saying he
couldn't calculate the area of a slice
of pizza because "area of a triangle
with a curved edge is beyond my
Google-less math skills." Seriously
dude? I haven't taken geomtry in 20
years, and pi*r^2/8 seems pretty
freaking obvious.
The script also called a ruby script
to send him a tweet which another
script was probably monitoring to text
his phone so he could screenshot the
text and post to facebook via
instagram.
I think the "millenials" - who should
be referred to as generation byte - get
undeserved flak, as all generations do,
for being younger and prettier and
living in a different world.
But this kid calling himself a prodigy
is a clear indication of way too many
gold stars handed out for adequacy, so
to ensure that no such abominable
script ever does anything besides
bomb somebody's twitter account, this
comment shows up exactly 50% of the
time, and I encourage others to do
the same.
-->/*
Yeah, there's some shitty code here. There are some things that shouldn't be done. I did them. Sometimes, I had my reasons. Sometimes, I was just being lazy. But guess what? You're sitting there reading the source on some guy's blog. So fuck you.
*/
And, yes, of course I realize it's a bit rich for me to call anyone pretentious, but really. If he were even remotely sympathetic, I'd be embarrassed on his behalf. As it is, I'm just sort of uncomfortably amused, the way you might be when someone you don't really like has just publicly wet himself and failed to notice.
I guess what we miss in programming is a standardized way to do things and if you did it that way your accountability ends there. There's a lot of uncertainty being dealt with all the time because there's no de-facto "THIS IS THE WAY IT'S DONE BRUH!" for pretty much anything. Maybe that's what makes it interesting ? It's definitely what makes it stressful.
Isn't that what Java is for? But seriously, I would rather have the opportunity to do it right, even with the concomitant risk of being responsible for having done it wrong, than to find myself in a field where what matters is not whether my work is right or wrong, but only that it's done according to the rules.
If you're a web developer, and if "THIS IS THE WAY IT'S DONE BRUH!" is what you're looking for, you should really try Ruby on Rails, because that's their entire philosophy, and they're really very good at it -- so good, indeed, that in every major version they do it all over again.
"s/camel/_/"
"Cool thanks."
> Wasn't that guy helpful? With the camel? Doesn't that seem like an appropriate response? No? Good. You can still find Jesus.
That made perfect sense. Aw crap.
"Yep, change it to dead snake case; what's the problem here?"
Forgive me for telling you what you no doubt already know, but there's a reason for that. Actually, correcting people's inaccurate typing at all on Facebook makes you look like a douche, and there's a reason for that, too. I understand how you feel when you see it; I used to feel the same way. But there truly is a lot to be said for the idea that what matters is how well it gets the point across. Besides, having to explain what a sed replacement is and how it works, in Facebook comments, is like having to explain the joke, and only realizing partway through the explanation that the joke was not funny in the first place.
"We get to make something cool!" is not the same as "Everything we make is cool!" I'm not a professional programmer, but it seems to me that, if you're not also (in addition to your job) programming in your spare time for the sheer joy of creating, then you're probably not the best programmer you could be.
Granted, if you're a Googler or Amazonite, or otherwise working for a decent company, this isn't true. But most software developers aren't Googlers or what have you.
These qualities are extremely counter to a lot of corporate jobs, where development is a cost that should be cut, there's never enough time for anything (because, business!), and the work is CRUD-driven.
The only place I knew which didn't have any business pressure was the old Bell Labs. That's because of the AT&T was a monopoly and was allow a profit of 7%. That meant any expense can instantly be justified because no matter what AT&T would earn 7%.
End of the day, engineering is about compromises and tradeoffs. It's applied science. It's about being practical and sometimes that means we need to compromise on "quality". That's what makes good engineering culture. A product that ships and makes money is infinitely better than a product that doesn't ship. So, I don't think it's right to assume that the corporate approach is incorrect. In fact, it is better simply because once you get business involved, a lot of the decisions become impersonal.
When I try to explain to loved ones that research is a dying career path (which I sadly invested in by getting a PhD), I get pep talks saying that I should be more optimistic :-p
I too once dreamed of perfect programs. Then I got a real job.
Programming doesn't suck, but you really need to take a break sometimes!
Sigh.
Should every creative and expressive person be on a team writing code, hell no - we've seen what they produce and it's not something you ship to people.
The individual themselves though, their ideas and their input and their drive and passion. I enjoy that company and when we gel as a team.
Programming is beautiful.
It can be. But corporate programming too often is... well, it's often not as bad as the article said, but it's somewhat less than beautiful.
It's not just about programming. In writing up my own bit on this piece (http://redd.it/24cxgc), I happened to look for the origins of the phrase "complexity is the enemy", figuring it would turn up in some late 1980s / early 1990s Usenet post.
Nope.
The Economist Newspaper, Jan 18, 1958, volume 186: "It is easy to see that complexity is the enemy of reliability".
(Thanks again to the Google ngram viewer).
Bruce Schneier takes this one step further and notes that "Complexity is the enemy of security"
https://www.schneier.com/news-038.html
This also applies far beyond just programming, the Internet, or IT. All technology faces this problem, and it's going to bite us by and by.
Everyone should read this.
* Brainfuck[0]:
>+++++++++[<++++++++>-]<.>+++++++[<++++>-]<+.+++++++..+++.[-]
>++++++++[<++++>-] <.>+++++++++++[<++++++++>-]<-.--------.+++
.------.--------.[-]>++++++++[<++++>- ]<+.[-]++++++++++.
[0]: http://en.wikipedia.org/wiki/Brainfuck* This one I googled, it's called Ook![1][2]:
Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook.
Ook! Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook?
Ook! Ook! Ook? Ook! Ook? Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook.
Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook.
Ook? Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook.
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook. Ook! Ook. Ook! Ook? Ook! Ook! Ook? Ook!
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook! Ook.
[1]: http://www.dangermouse.net/esoteric/ook.html
[2]: http://esolangs.org/wiki/ook!* This one is in Perl[3]:
#:: ::-| ::-| .-. :||-:: 0-| .-| ::||-| .:|-. :||
open(Q,$0);while(<Q>){if(/^#(.*)$/){for(split('-',$1)){$q=0;for(split){s/\|
/:.:/xg;s/:/../g;$Q=$_?length:$_;$q+=$q?$Q:$Q*20;}print chr($q);}}}print"\n";
#.: ::||-| .||-| :|||-| ::||-| ||-:: :|||-| .:|
[3]: http://mysite.verizon.net/les.peters/id2.html