11 ms·
Programming Sucks
- killertypo 12y agoProgramming is beautiful and interesting and filled with creative folks who want to express themselves. That's what I see in programming. 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.
- AnimalMuppet 12y ago> 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.
- beat 12y agoI'm not just a programmer, I'm an artist in other media. I play music very deeply. It's just as full of suffering.
- taiki 12y agoI'm struggling to find any sort of counter argument that isn't, "But we get to make something cool!" Which is wrong, because most of our time, we're coding up something that shits CSVs so someone can go into a meeting and highlight some menial point to other managers.
- JadeNB 12y ago> I'm struggling to find any sort of counter argument that isn't, "But we get to make something cool!" Which is wrong, because most of our time, we're coding up something that shits CSVs so someone can go into a meeting and highlight some menial point to other managers. "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.
- taiki 12y agoI also meant to say that even if we do eventually make something cool, the crushing realities of working as a software developer still sucks. 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.
- _random_ 12y agoOr deal with HTML, JS, CSS :( (my job).
- Igglyboo 12y agoYea, I had big dreams of working on compilers and kernels only to realize i'll probably be working on ecommerce sites for the rest of my life.
- fragmede 12y ago"Is that called arrayReverse?" "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.
- deadghost 12y agoI didn't even realize how nonsensical it looks to the average person until I read it over a few times. "Yep, change it to dead snake case; what's the problem here?"
- wldlyinaccurate 12y agoStuff like this bleeds over into my "normal" life all the time, and it's starting to get really embarrassing. Correcting my mother's inaccurate typing on Facebook by replying with a sed substitute pattern only serves to make me look like a douche.
- aaronem 12y ago> ...only serves to make me look like a douche. 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.
- Intermernet 12y agoAbsolutely brilliant article. From someone who has, in times of stress, had nightmares in code, and spent minutes in normal conversation formulating replies to illogical questions, before realising they were illogical. Programming doesn't suck, but you really need to take a break sometimes!
- WhiteHalmos 12y ago"Every programmer starts out writing some perfect little snowflake like this. Then they're told on Friday they need to have six hundred snowflakes written by Tuesday..." I too once dreamed of perfect programs. Then I got a real job.
- mattgreenrocks 12y agoThis is why I only work for engineering-driven organizations. If I'm going to be slogging through things, then I want the work to be interesting, challenging, and I need to know my opinion will be heard and respected. I know my peers are reasonably high caliber, and will not compromise quality. 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.
- shortsightedsid 12y agoAny job or work can eventually become frustrating. That's why its called a "job" or something your "work" for. Even if you work for the greatest company in the work with the best engineering driven "culture", there will be something that will hinder you due to business. 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.
- turnip1979 12y agoYou probably know this already but for the youngins ... such places (such as the old Bell Labs) don't exist anymore. Research labs have gotten a lot more stressful over the years. Simple problem of having to justify their existence, and aligning with the products of their sponsor company. 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
- ashray 12y agoThis is one of the most brilliant pieces I've ever read about programming. It's funny and really manages to capture the frustrations a programmer faces through the days, months, and years with his relationship with code. 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.
- aaronem 12y ago> 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. 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.
- beat 12y agoI cannot possibly recommend this post enough. Is this the top of the front page yet? Or is it some random drool about Bitcoin or gossip about funding another zero-revenue startup or the other nonsense that dominates here? Everyone should read this.
- mkal_tsr 12y agoIncredibly accurate rant that gets it
- markpundmann 12y ago->The only reason coders' computers work better than non-coders' computers is coders know computers are schizophrenic little children with auto-immune diseases and we don't beat them when they're bad. HAHAHA so true
- sikhnerd 12y agoThe page source has a nice gem: <!-- 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. -->
- maaarghk 12y agohahaha wow that's magic
- mathgladiator 12y agomy favorite: /* 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. */
- ColdHawaiian 12y agoAre you sure that's in the source for the blog post? Because I don't actually see it in there, I searched for "so this guy" and "interviewed" too.
- 12y ago
- dredmorbius 12y agoFor a field that has a number of classic formulations of this essay (look up "The Story of Mel, a Real Programmer"), this is a new and excellent addition to the genre. It's not just about programming. In writing up my own bit on this piece (http://redd.it/24cxgc 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 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.
- mangeletti 12y agoOh my god, this guy should go on tour, or at least get to give an intro speech / keynote introduction at some big conference... something
- good-citizen 12y agoStephen Ramsay how did you find this article and be the first to post it on hacker news? This is _the_ most appropriate hacker news story there ever was.
- ColdHawaiian 12y agoFor the curious, these are the languages of the example Hello World programs: * Brainfuck[0]: >+++++++++[<++++++++>-]<.>+++++++[<++++>-]<+.+++++++..+++.[-] >++++++++[<++++>-] <.>+++++++++++[<++++++++>-]<-.--------.+++ .------.--------.[-]>++++++++[<++++>- ]<+.[-]++++++++++. [0]: http://en.wikipedia.org/wiki/Brainfuck 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 http://www.dangermouse.net/esoteric/ook.html [2]: http://esolangs.org/wiki/ook 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 http://mysite.verizon.net/les.peters/id2.html
- lemming 12y agoA friend sent me this article on IM, and I read it when I needed a break. I needed a break because the method I want to call is private, and deprecated, and the suggested substitute in the deprecation comment doesn't exist. If I go ahead and call it via reflection, the implementation is commented out with a TODO comment. Sigh.