this post was submitted on 10 Sep 2023
78 points (91.5% liked)

Programming

13376 readers
2 users here now

All things programming and coding related. Subcommunity of Technology.


This community's icon was made by Aaron Schneider, under the CC-BY-NC-SA 4.0 license.

founded 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 9 points 1 year ago (2 children)

Damn right. I care about getting features in the hands of my users. If code quality helps with that, if type script helps with that, I’m all in favor.

But the moment I care about code quality for its own sake you need to sack my ass like yesterday.

[–] [email protected] 27 points 1 year ago (3 children)

What an utterly blind, self-centered view. Write good, readable code so you can actually maintain it and so your coworkers don't want to kill you.

[–] aport 11 points 1 year ago (2 children)

I think vzq's point is that you can write good, readable code that doesn't do what the user wants. Same with other metrics that are ripe for navel-gazing like code coverage.

It's bordering on a false dichotomy... but I also believe that dynamic, untyped languages have proven exceptionally useful for rapid prototyping and iteration.

[–] [email protected] 11 points 1 year ago* (last edited 1 year ago) (1 children)

I must admit that I write that deliberately to annoy the “code quality is everything” brigade.

I have no issues prioritizing maintainability where needed, but in my experience people that dogmatically prioritize code quality are not honest with themselves. They almost never chase code quality in general. They are always looking to enforce some burdensome standard or specific tool or archaic process or fiddly CICD script, and if you push back they go cry in a corner about the abstract virtue of “code quality”.

Just be straight with me. You enjoy using type script. Tell me how it adds value to the product and the customer.

Stop trying to shame me into it. I can’t be shamed. I have no shame. I’m a professional software engineer.

[–] [email protected] 8 points 1 year ago (1 children)

You're setting up a theoretically boogie man that no one said exists and then setup the extreme opposite point of view. You're annoying the people that are actually sane. You're being dogmatic in your one views and too extreme.

[–] [email protected] 3 points 1 year ago (1 children)

Oh fuck me for wanting to give my users what they want and make money right?

[–] [email protected] 9 points 1 year ago (1 children)

This is a shitty response. You won't make money if you design the app poorly and can't maintain it.

[–] [email protected] 3 points 1 year ago (1 children)

It’s a business decision. Why would for example an app that’s only needed for a 24 hour event need to be maintainable?

Sometimes it’s ok to take the money and run. Feel free to make your case, but it’s not a developer’s call to make.

[–] [email protected] 3 points 1 year ago (1 children)

That sounds like bad business. No application is 100% unique in everything. Code reuse saves time. If you are unable to bring anything from one app to another, you're doing it wrong.

Let me guess though, I was right. You're a manager not a developer.

[–] [email protected] 3 points 1 year ago (1 children)

You're a manager not a developer.

You’re wrong. But the fact that you live this dichotomy so deeply is not a great sign.

[–] [email protected] 3 points 1 year ago* (last edited 1 year ago)

? I mentioned it twice. And you sounded like a manager a little bit in one comment, and then a lot in the followup reply to it. To the point it sounded like you were defending it. Making claims that developers aren't allowed to make the choice you were saying to make. So it was really weird. I don't even know how your stance makes sense from your point of view.

Edit: and thanks for ignoring anything of actual value to reply to.

[–] [email protected] 6 points 1 year ago

but I also believe that dynamic, untyped languages have proven exceptionally useful for rapid prototyping and iteration.

Except that prototypes never end up as just prototypes, they die or become the real app with lots of masking tape.

[–] [email protected] 6 points 1 year ago* (last edited 1 year ago) (1 children)

What an utterly blind, self-centered view.

This is a really surprising retort.

In the end, the only thing that has value is what ends up in the user’s hands. The rest is only a means to an end, in the very best case.

This is not a controversial take in professional software development.

What is self centered and self absorbed is putting misguided notions of “craftsmanship” and maintainability over business needs.

[–] [email protected] 21 points 1 year ago* (last edited 1 year ago) (1 children)

If you can't see that writing readable code is part of the means to that end, I don't know what to tell you. If nobody can maintain the codebase because it's a mess of spaghetti logic and 20-deep dependency trees (I'm looking at you, every JavaScript project I've ever seen), the end product is going to suffer while also making every single engineer working on it want to leave.

This is not a controversial take in professional software development.

Funny, it sure seems like "maintainability should not be a priority" is a pretty controversial take to me.

[–] [email protected] 4 points 1 year ago (2 children)

You are making a lot of assumptions. You don’t know what my product is, how it is developed, what it’s used for, what its lifecycle is. Whether improving maintainability or code quality would be a net benefit, and whether using type script would be a possible solution.

You also didn’t bother to find out.

You just charge at me guns blazing, trying to string me up for heresy.

Funny, it sure seems like "maintainability should not be a priority" is a pretty controversial take to me.

How many things can you prioritize?

In my world we prioritize one. And that not the one.

[–] [email protected] 11 points 1 year ago

In my world we prioritize one. And that not the one.

Then I'm really glad I don't live in that world.

[–] [email protected] 7 points 1 year ago (2 children)

In my world we prioritize one.

Weird. In most cases priorities change as the situation demands. The application doesn't matter when it comes to maintainability. Tech debt will take down any application if you keep ignoring maintainability at the expense of just delivering more and more. You sound more like a manager than a developer.

[–] [email protected] 2 points 1 year ago (1 children)

Even their excuses if a “24h only event app” don’t hold water

Even in that case, a business would be wanting to make many of those apps, and this commenter is arguing making a new one from scratch every time over massively simplifying things with quality reusable code.

Even their own example shows how terrible it is an idea to deprioritize code quality/readability.

[–] [email protected] 1 points 1 year ago

I guess they are running some kind of shovelware company with constant bluffings.

[–] [email protected] 1 points 1 year ago

Maybe, but you can push it really far before the breaking point is reached.

[–] [email protected] 2 points 1 year ago

But you can do that in vanilla JS, too.

Even better, don't use JS at all if you don't have to.

You can write shitty code in TS too.

[–] [email protected] 12 points 1 year ago* (last edited 1 year ago) (1 children)

maintainability is arguably not a value-added for the end user. But still absolutely important. Robustness of code is arguably not visible to an end-user, until it fails. And that's very important. Features are great, but quality is still important and is basically the mortar between the bricks that are features. Only caring about features leads to poorly written applications.

[–] [email protected] 2 points 1 year ago

Less chance of security vulnerabilities, breaches, less bugs fixed more permanently, faster features, etc

Those things all sound like value adds for the end user…