this post was submitted on 01 Sep 2023
339 points (96.2% liked)

Programming

17456 readers
69 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities [email protected]



founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] russmatney 4 points 1 year ago (19 children)

Types and unit tests are bloat that increase the maintenance cost of whatever code they are involved in. Most types force premature design/optimization. Most unit tests lock up some specific implementation (increasing cost of inevitable refactors) rather than prevent actual bugs.

Nil-punning in clojure has spoiled me rotten, and now every other language is annoyingly verbose and pedantic.

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

Most types force premature design/optimization.

I disagree. What you're saying is true for Java-like OOP languages because OOP is actually complete garbage if you want to design good, easy to understand abstractions. Types are way more elegant in functional or functional-inspired languages.

Most unit tests lock up some specific implementation (increasing cost of inevitable refactors) rather than prevent actual bugs.

Agreed, unit tests are useless in most cases, they mostly test the bullshit abstractions you built for the unit tests themselves.

[–] russmatney 1 points 1 year ago

I think you’re right re:oop - let’s throw that in there too.

One problem is naming things - bad names/naming conventions can start things off in a bad direction, so you spend forever figuring one out… but do you really need this thing you’re naming after all?

Maybe the hot-take is more like: All code is bad, so less code is better…. what should we drop first?

load more comments (17 replies)