7 ms·
There's something mildly "ranty" about this, to its own detriment. I believe what it is is that it seems to try to connect ideas that have no logical connection
by alexandercrohde 8y ago
There's something mildly "ranty" about this, to its own detriment. I believe what it is is that it seems to try to connect ideas that have no logical connection, but simply an emotional association.
For example, what is the connection between "Beautiful code gets rewritten" and "Refuse to work on systems that profit from digital addictions." ?
It comes across as though the author is just vaguely angry at the loose concept of software.
It's true that the software ecosystem is incredibly disorganized and inefficient (100s of similar distros, dozens of similar package managers, thousands of redundant tools). But I don't think one should get bent out-of-shape about it. If you think about it objectively, if it were efficient then most of us likely wouldn't have jobs.
- OnlyRepliesToBS 8y agoa rant about someone ranting
- jgalentine007 8y agoYeah, I wonder how many 'just works' codebases he/she has had to spar with. It usually ends in tears. I have a 20k line VB.Net disaster that can't be changed without side effects because of the use of global variables, basically needing a whole rethink/rewrite. At least with some beautiful code the author might have put some thought into it beyond what is directly in front of them.
- phalangion 8y agoTo me, that's what the author is saying with "ugly code survives." You have an ugly 20k line codebase that survives because you can't touch it without breaking something.
- ams6110 8y agoAnd you have it because the elegant, abstracted version exceeded the developer's ability to comprehend.
- wild_preference 8y agoIn my experience, ugly code is more a product of churn (like moving target business requirements) than incompetence. You may have started with a nice abstraction for one case, but you don't have time to reabstract every step of the way.
- ams6110 8y agoYes, it can be, but that has not been the only reason in my experience. Smart developers can see the abstractions and organize their code accordingly. Mediocre/poor developers just think about what needs to get done. They will copy code that seems to do something similar and hack on it until it works. I saw this a lot with asp pages back in the day. An entire application, that actually worked and was well liked by its users, was implemented as hundreds of totally stand-alone .asp files. When a new page was needed, the developer copied an old one and modified it. That made it pretty easy to add new features without breaking old ones, but made it very difficult to make cross-cutting changes such as changing the name or type of a field on multiple pages, changing page headers, changing database connections (yes, they were also duplicated in every file) etc. This is also how you end up with a "20k line VB.Net disaster." They are created by developers who know just enough to make something work, but don't know about abstraction and modularization or aren't smart enough or experienced enough to see the abstractions and to keep track of what's going on when the code is split out over a dozen files or modules. Or possibly, just don't care.
- reidjs 8y agoPerhaps a lot of bad code comes from strict time requirements, loose specs, and employee churn. Your customers and your manager/supervisor couldn’t care less about how neat your code is, so I understand the logic to push out something that works ASAP. I personally try my best to write clean code, but I don’t call other developers ‘stupid’ given the reality of ridiculous timelines and low job security.
- pdimitar 8y ago
- jgalentine007 8y agoIt seemed to me that the author was advocating for ugly code. If that wasn't his intention, then he didn't do a very good job of expressing it - the title of the article is 'against software development'. But rather than spend any more time talking about bad code, I'm going to go now and try and write some good code.
- jrochkind1 8y agoI think he's advocating (with a "grain of salt") for _minimizing_ software development, because it's so hard to keep it from turning terrible. If we could spend more time on less of it, maybe we could keep it better. I don't think he's advocating for ugly code.
- jgalentine007 8y agoThat makes more sense, thanks. RIP my reading comprehension.
- gmfawcett 8y agoThis idea is very well explored in the classic article, "Big Ball of Mud" by Foote and Yoder: http://laputan.org/mud/ http://laputan.org/mud/
- jimbokun 8y agoThat was the point of the reference to the "Programmer Archaelogist": http://lambda-the-ultimate.org/node/4424 http://lambda-the-ultimate.org/node/4424
- epicide 8y agoI read it more like a poem than a manifesto. There are elements of both, of course.
- gglitch 8y agoI think the two parts are bridged by the line, "Perhaps we should expect true advances in software 'engineering' only when we learn how better to govern ourselves." Makes sense to me, though I personally am a bit bearish on whether humans are fit to be governors of anything, self- or other.
- antoineMoPa 8y ago"If you think about it objectively, if it were efficient then most of us likely wouldn't have jobs." So programmers should write bad software to keep their jobs? And civil engineers should build bad bridges to build them again a bit later? And doctors?
- njarboe 8y agoDrug companies look to discover/invent drugs that can treat a symptom forever, rather than curing people. Probably the main reason people hate drug companies. That and charging 100k for a treatment when they do find a cure (Hep C).
- HeyLaughingBoy 8y agoCan you cite actual instances of this happening?
- njarboe 8y agoIt is what is not happening that is the problem. A bit harder to prove but not researching antibiotics is one case that is widely discussed. A google search on "why aren't drug companies researching antibiotic drugs" brings up lots of articles spanning decades. This Business Insider [1] article is quite recent. Here is a quote from that article: "The costs to develop a new antibiotic drug are no less expensive compared to development of drugs for other therapeutic areas, yet the commercial potential and return on investment for companies developing new antibiotics are significantly lower than drugs to treat chronic conditions such as diabetes or heart disease," said Gary Disbrow, deputy director of the Biomedical Advanced Research and Development Authority, which sits within the U.S. Department of Health and Human Services. [1]https://www.businessinsider.com/major-pharmaceutical-companies-dropping-antibiotic-projects-superbugs-2018-7 https://www.businessinsider.com/major-pharmaceutical-compani...
- minitel 8y agoEngineers and Doctors were smart enough to form professions/unions to protect themselves without having to resort to incompetence. Programmers haven't been wise enough to take this route so targeted incompetence (making things that only you can maintain) is our only existing avenue for job protection. (Before people start yelling about competence being its own form of protection: the top 1% of programmers will always be in demand, but the bottom 99% are not always going to have it so good whether that be from economic downturns or automation.)
- debt 8y agoWell Part 3 just goes off the rails completely. I don’t know what centralizing control of media has to do with poorly written software.
- llcoolv 8y agoI wonder why a person whose experience as a software engineer is limited to a couple of internships is trying to come up with god-like generalisations even reaching as far out as politics. Obviously, because of freedom of speech. But why are supposedly intelligent people taking this sort of stuff seriously is beyond me...
- wtetzner 8y agoIt does say Take with a grain of salt. at the top of the page...
- deleted 8y ago[deleted]
- Felz 8y agoAd hominem is not an argument. To be fair, neither is anything as generalized as this article. I'd say it's more useful as a lens through which to consider software than a fact you could prove or disprove. If you don't feel it's plausible at all that software is trending towards overcomplicated ugly, then yea you won't find much of interest here. If you do, you can start to draw parallels, look for counterexamples, consider courses of action, etc.
- anoplus 8y ago> I believe what it is is that it seems to try to connect ideas that have no logical connection, but simply an emotional association. I see why you feel that. While it may sound like emotional associations, I find the topics still thought provoking. For example: > if it were efficient then most of us likely wouldn't have jobs. This is exactly what I was thinking of this. I wonder to what extent does industry complexities are embraced as job creators. I often feel something is fundamentally wrong in how society views job "market". I said it before, I believe technology is meant to free us. To make jobs unnecessary. It may sound weird but I always wish to find one day my job is automated or becomes unnecessary. I think true engineers keep things ridiculously simple for everyone. For the team and for the customers.
- sigi45 8y agoMy credo is to do my job so good that my company could fire me. I'm apparently still needed. :|
- beat 8y agoMine is that I build robots to do my job for me. I'm only interested in the parts of my job that can't be done by a robot.
- all2 8y agoI have a family member who worked in a factory that built electronics backplanes. His entire job, for eight hours a day, was to pick up a back plane from a chute, flip it over, and place it on a conveyor. I got so mad when I heard he was being paid to do that. I'm not mad that he was being paid, but that his time was being wasted. Give me a week, a pile of old junk, and a micro-controller and I could have a solution bashed together. I'm not saying it would be good, but at least it would be functional.
- dx87 8y agoI had a friend in high school with a similar job. His entire job consisted of getting a box of electronic components, plugging them into a test machine, and pressing a button. If a light on the test machine turned green, he put the part in one box, if it turned red, he put it in another box. Sad part is that it actually paid really well because working in the facility required a security clearance.
- rc-1140 8y ago> It comes across as though the author is just vaguely angry at the loose concept of software. I'd dare to call it pretentious: "your code is bad and it's your fault the world is a mess but I, the genius not at fault for and detached from any of this, know how to fix all of it".
- kiriakasis 8y agoI read it more as a two part rant, first "all code is bad and what is good will become bad" with a shade of resignation then "the source of badness is in how we set our own goals as an industry and we should strive to change them". Overall it seems quite reasonable except maybe for the tone that was off-putting to many apparently
- pdimitar 8y agoIt's only your choice to read it that way. I read it as: "We can do better but the current way of doing things looks broken to me. We should start by replacing it with something VERY different."
- rc-1140 8y ago> It's only your choice to read it that way. That's not how any kind of writing works. You aren't allowed to go, "This is what I wrote, but the way this poster wrote it is what I actually mean." The author will always carry some of the responsibility for interpretation via the words and grammar they use. Reader interpretation is not a way to handwave criticism of the writer's tone or the content they share.
- pdimitar 8y agoIMO that's exactly how most of the writing works -- especially if it is non-scientific as this post is. Basically, how you choose to read it is a part of the experience, like reading a literature. Hence I believe that people are projecting while reading it. I know I did.
- rntz 8y ago
- otras 8y agoI got the ranty vibe as well. It looks like the author completed a BS and went straight into a PhD that he's still pursuing, with summer internships at Google, RethinkDB, and the Recurse Center. I wonder if the author's perspective would change if he worked in industry? Not trying to ad hominem argue his points away, but I agree that one shouldn't be angry about the loose concept.
- jimbokun 8y ago"I wonder if the author's perspective would change if he worked in industry?" It's because I work in the industry that I find a lot of what he says resonating with me.
- jimbokun 8y agoI like reading rants. Maybe because I'm prone to them myself. This one is very concise and provocative. "It comes across as though the author is just vaguely angry at the loose concept of software." Not really, the title was clearly deliberate hyperbole. He just wants us to all stop and think about what we're doing as developers.
- pure_ambition 8y agoThe problem with your analysis is that the OP should be read like a poem, not an essay. That's my take, at least.
- p2t2p 8y agoInefficiency and duplication. One can look at it as at sign of rather efficient ecosystem. It is so easy to make and distribute certain things so we now have bunch of duplicates which are different on only in some small details.
- rntz 8y agoIt is a bit of a rant, yes; I did write it to evoke emotion; and it is less clear than it could be. > what is the connection between "Beautiful code gets rewritten" and "Refuse to work on systems that profit from digital addictions." ? Both result from systematic perverse incentives caused by local rather than global optimisation processes. That's part of what I was trying to get at in part II. We really aren't very good at making collective decisions yet; neither narrow ones about how to build software, nor broader ones about what software to build. I don't have a solution, but in the meantime I'd like to try not to make things worse.