1. 19
  1.  

  2. 21

    I’m sorry, if I have the skill to build it, i’ll likely build it myself. That’s the beauty of software and computers. These things should be empowering and we should not be at the mercy of “the open market”. In fact, the market kind of sucks for giving you what you want.

    1. 8

      What people want and what is good for them are usually different things, and having a common tool with some common discomfort is far better than a bunch of bespoke solutions.

      It is no accident in history that the spread of interchangeable parts and industry made artisans basically irrelevant.

      1. 10

        Not if they never get fixed and are poorly documented or hard to contribute changes into. Then people have to create something new in order to fix common discomforts.

        EG, check out the node ecosystem.

      2. 4

        Indeed. To bring in a little more jargon, even if I were to believe in such a strong version of the “efficient market hypothesis” that applied outside of formal markets with real prices, why should I expect that it should apply in such a novel and immature area as software, where Ecclesiastes is obviously wrong?

        1. 6

          Ecclesiastes

          Because economics is religion. Religion can’t be wrong.

        2. 4

          Author here. Should have posted with the “devops” tag.

          Absolutely, I encourage you to! The point I try to make in the article is not to deter you from building anything new. Just to make you think if the effort is worth it, and to make you question if the problem you’re solving is indeed a problem that has no solution other than requiring you to build a new thing from scratch. In fact, I repeat this quite a few times throughout the writing. But some things just aren’t the focus of your work, and for those things making a couple of compromises and adopting the general case might be worth it.

          Glad you think the market sucks when catering to your demands, as diversity is what makes the ecosystem evolve.

          1. 1

            Indeed. The market isn’t for building things, it’s for setting prices.

          2. 5

            No, no, it’s the children who are wrong.

            1. 3

              By this logic, nothing ever would have had to have been invented. At least if you carry it through to the end, it the way stated, not the way it was intended.

              1. 12

                This particular line of refutation and critique is probably the most common refrain I hear when this sort of article or sentiment is brought up. It’s also wrong–note the “maybe” in the post title.

                Let’s not flatter ourselves: yet another “HTML DOM but with better syntax”, “jQuery but with cleaner syntax”, “HTML DOM but with databinding”, “Angular but with smarter data-binding this time”, “Angular but with version-breaking and typescript”, “HTML DOM but with better diffing”, “React but artisinal”, “React but artisinal but also angular”, is hardly invention in the sense you probably mean it.

                1. 10

                  Our use of common tools has forced us into fixing the things that bother us about them, instead of developing truly new ways of solving our problems. The common solutions don’t make us think, and destroy our ability to think outside the box.

                  What would software be like if the free software movement never happened? Instead of “buying” loose fitting uniforms, I bet we’d all be excellent fabric makers, and tailors of original clothes that fit just right.

                  1. 3

                    And worse, now that we have too many tools to ever fix any of them, there is actually an entire generation of “developers” who simply have no capacity to write quality, durable code.

                    What would software be like if the free software movement never happened? Instead of “buying” loose fitting uniforms, I bet we’d all be excellent fabric makers, and tailors of original clothes that fit just right.

                    Some of us anyway.

                    But unlike good clothing, most people cannot “see” code, so very few people appraise it’s quality – A lot of people actually think they’re paying for code, that somehow more code is more valuable.

                    Weird.

                    I actually welcome legislation that puts programmers and business on the hook legally (with proper teeth, like the GDPR promises to have) for their work, because I would like to always do good work, but I know I can’t do that while being competitive.

                    1. 3

                      And worse, now that we have too many tools to ever fix any of them, there is actually an entire generation of “developers” who simply have no capacity to write quality, durable code.

                      This isn’t any different from how it used to be. For as long as we’ve had computers we’ve had people worried about developers writing bad, brittle code. The usual solution? High quality, well tested components we know are good, so that developers have fewer places to screw up.

                      Not having to roll our own crypto is, on the whole, a good thing.

                      1. 1

                        And worse, now that we have too many tools to ever fix any of them, there is actually an entire generation of “developers” who simply have no capacity to write quality, durable code.

                        You sound old and grumpy, it’s gonna be alright. I’ve seen old people and young generation alike write shitty (and good) code. At least by reusing existing components people might have an easier time to build systems or complex program relying on widely used and tested pattern.

                        I actually welcome legislation that puts programmers and business on the hook legally (with proper teeth, like the GDPR promises to have) for their work

                        How would such legislation going to encourage individuals from taking risk and rewrite their own components instead of reusing existing more tested and widely used ones?

                        because I would like to always do good work, but I know I can’t do that while being competitive.

                        If you need legislation to be able to market your good work, “maybe it’s you”.

                        1. 1

                          That probably results in more money for insurance companies but not better software.

                          1. 4

                            I’m confident if we are planning more, writing better specs, coding more carefully, focusing on reducing code size, and doing more user-testing, then software will be better.

                            And there may always be a gap: As we learn where it is, we can probably refine those fines…

                        2. 3

                          What if I don’t want to be a tailor, though? I want to be a welder, but I can’t, because I spend all my time tailoring!

                          Component programming has, historically, been the hoped-for solution to the software crisis. Parnas made that a central advantage of his work on modules, high-correctness software is predicated on using verified components, etc etc. It might not have lived to it’s standards, but it’s a lot better than where we used to be.

                          Consider the problems you want to think about, and then consider how hard it would be to solve then if you had to write your own compiler.

                          1. 2

                            It might not have lived to it’s standards, but it’s a lot better than where we used to be.

                            Hmm. Can you elaborate on why it’s better? I feel that in a lot of ways it’s worse!

                            Consider the problems you want to think about, and then consider how hard it would be to solve then if you had to write your own compiler.

                            We’ve trained ourselves to make a base set of assumptions about what a computer is, and has to be. A C compiler is just a commodity tool, these days. But, obviously, people have invented their own languages, and their own compilers.

                            But, consider a very basic computer, and forth. Forth is simple enough that you can write very big functioning systems, in a small amount of code. Consider the VPRI Steps project that’s been attempting to build an entire computing system in a fraction of the code modern systems take. What would things look like, then?

                            1. 1

                              Hmm. Can you elaborate on why it’s better? I feel that in a lot of ways it’s worse!

                              The most popular Python time library, Arrow, is 2000+ lines of core code and another 2000+ lines of localization code. If you tried to roll your own timezone library you absolutely will make mistakes that will bite you down the line, but Arrow is battle-tested and, to everybody’s knowledge, correct.

                              Consider the VPRI Steps project that’s been attempting to build an entire computing system in a fraction of the code modern systems take. What would things look like, then?

                              That report lists 17 personnel and was funded by a 5 million dollar grant. I don’t have that kind of resources.

                              1. 2

                                When was the last time you wrote code that required accurate timezones (UTC is almost always OK for what I do)? And, to be honest, 4,000 lines doesn’t seem like enough to be exhaustive here…

                                But, I don’t disagree that there are exceptional things that we should all share.

                                Just that, in the current state of things, relying on an external library responsibly, requires a deep understanding of it to use it properly. You can’t rely on documentation—it’s incomplete. You can’t rely on its tests—they don’t exhaustively prove it works. You can’t trust the names of functions—they lie, or at least have ambiguity. And, more often than not, you care about only a small percentage of the functionality, anyway.

                                That report lists 17 personnel and was funded by a 5 million dollar grant. I don’t have that kind of resources.

                                The point wasn’t “we should all go define 2,000 line systems that do everything.” It was, apparantly poorly, attempting to point out that there may have been another way to “compute,” that would have made rolling everything yourself more appropriate. I think it’d be pretty hard to go back to a place where that’s true—the market has spoken, and it’s OK with bloated, completely broken software that forces them to upgrade their computers every 3 years just to share photos in a web browser and send plain text email to their familes.

                                1. 1

                                  When was the last time you wrote code that required accurate timezones (UTC is almost always OK for what I do)? And, to be honest, 4,000 lines doesn’t seem like enough to be exhaustive here…

                                  Maybe not timezones, but definitely https, authentication libraries, web scrapers, crypto, unit testing frameworks, standard library stuff…

                                  I think it’d be pretty hard to go back to a place where that’s true—the market has spoken, and it’s OK with bloated, completely broken software that forces them to upgrade their computers every 3 years just to share photos in a web browser and send plain text email to their familes.

                                  Right, but I’m asking historically if this was caused by the rise of component-based programming, as opposed to just being correlated with it, or even if it happened despite it! It’s really hard to prove a counterfactual.

                        3. 0

                          So… do you not believe in evolution, then?

                          1. 1

                            Thb, when I read “maybe it’s you”, I understand this as a stylistic device, and don’t read it literally. And I guess it depends on the situation, I totally agree with you than 99% of the “new” stuff invented for the web have no need to be created (which one could generalized to the whole economy if one would want to). I just want to say that there are situations where being open to new ideas wouldn’t be bad, because sometimes bad ideas are kept just because of a network effect.

                            And if we’re already talking about what exactly was written (I should have clarified this, so it’s my fault), i was talking about the title. I know the text says something different, that’s why I said “not the way it was intended”.

                            1. 2

                              Author here. Thank you for your feedback! You’re right: the title may be construed as an accusative. For the record: it is not. I’ll take better care with such things going forward!

                        4. 2

                          I have some choice words for OP which I won’t share out of respect for the platform.

                          OP, tell me what you think about this simple case: https://www.drupal.org/project/drupal/issues/2859381#comment-12417374

                          I can’t see non-default state as the moderation state. I need it. What does OP suggest I do?

                          1. 3

                            I suggest you actually read the article. Or even just the title in its entirety.

                          2. 2

                            not really the point of the article, but the one thing i’ve never found a good tool for is deploying my application. its something that i absolutely don’t want to build, but keep on reinventing for every project i work on.

                            1. 2

                              I’d like to solve this problem, but I have very strong opinions about how it should be done.

                              1. 2

                                Write down the problem/requirements in a blog post and submit it here. I love to read about unsolved problems. Maybe someone even knows a solution.

                                1. 1

                                  Having written these things for a few startups (Instacart, Airbnb) I can say, it’s tough to make a clean API for it and that makes generality, reusability and consistency (all requirements for a “tool” instead of a “solution”) very difficult.