• 0 Posts
  • 8 Comments
Joined 1 year ago
cake
Cake day: June 23rd, 2023

help-circle
  • Because it’s inescapable. Web development is by far the most common type of programming work and even if you’re a backend developer you tend to have to touch javascript at some point, so everyone knows the pain of javascript’s foot guns and javascript has a lot.

    The fact that it’s mandatory to do your work invokes bitterness in people. For backend, you can kind of switch around until you find a language you like. For frontend, it’s javascript or nothing at all.

    Javascript as a language is very out of sync with other commonly used languages. Its footguns are very easy to run into. As a result you have a lot of rituals around just not shooting yourself in the foot. The rituals, libraries, and frameworks around avoiding Javascript’s foot guns have been very shifting and changing. Of course, because the javascript ecosystem changes far faster than other languages, there are a lot of rakes for developers to step on to add to the naturally existing foot guns.

    Javascript as a language probably shouldn’t be the sole language of the internet for a variety of reasons. It’s a very hateable language because of how easy it is for newbies to make new terrible code and how common it is. Until something like WASM takes off, the downpour of hate for javascript will continue.



  • I feel like this is only true of internal or enterprise software where switching is expensive. For business to consumer, the impact of bugs can cause a company to go under or at least become a zombie. For any type of company, the thread of a competitor is high and can cause your company to stagnant and slowly go under or bleed and rapidly go under.

    There is a real impact to a high amount of bugs, it just doesn’t happen in one quarter. It happens over years and results in higher stress foe the developers. A stagnating company doesn’t hire. It doesn’t give raises and slashes benefits. A lot of terrible things happen before a company goes under. We can watch Twitter speed running this.


  • I wasn’t talking about rewriting an existing system either. I’m talking about adding to a system. In order to do that effectively, you need to understand the system as it stands and consider how any requirement could clash or be impossible with the current set of requirements. This is why I bring up the AI needing to pull a set of requirements from the existing code. You cannot add requirements without knowing the requirements that already exist.

    I think that hallucination is still a massive issue. I don’t even like to call it hallucination because what it really is bad guesses. We should never forget that all any AI does is guess. It doesn’t reason about anything or connect information together. AI will hold contradictory positions because of this.

    Currently we have no way to make an AI declare that it just doesn’t know or even very often ask for more information in order to make a decision because the method of training an AI is literally guess and check.

    For that reason, I don’t think that AI will ever be the tool for the job when it comes to any kind of requirements gathering. I mean I guess you could, but I always run the risk of being like that lawyer who had made up cases in this result. AI made things up because all it does it make its best guess and it doesn’t care I’d that guess is grounded in much of anything at all.


  • I feel like AI would fall down even harder here. A lot of long running applications have “secret” rules in them that developers have as either tribal knowledge or they have to reas the code and see is the case. Will AI be sophisticated enough to read a massive repo probably dependent on several others and have a realistic understanding of the requirements inherent in that code system? Because that’s what we pay senior devs to be good at quickly figuring out. I find myself skeptical that AI will be able to do that in a trustworthy way with how it “hallucinates” now and doesn’t have the concept that it just doesn’t know sometimes. If a developer has to spend time checking the AI’s assertions about the rules, is that actually going to be faster than just keeping them in their mind or doing the research themselves?



  • I don’t think I’ve ever had a working definition of a business rule beyond what feels right intuitively. I’m going to carry this forth with me.

    Perhaps you’ve been reading this with mounting frustration: How about validating the address according to the SMTP spec?

    Indeed, that sounds like something one should do, but turns out to be rarely necessary. As already outlined, users can easily supply a bogus address like foo@bar.com. It’s valid according to the spec, and so what? How does that information help you?

    I feel like this is the difference between an academic and a professional. One is trying to do it provably right and the other is trying to satisfy a need with limited resources.