this post was submitted on 01 Sep 2023
329 points (96.1% liked)

Programming

17444 readers
147 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 !webdev@programming.dev



founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] russmatney@programming.dev 3 points 1 year ago (15 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.

[–] sajran@lemmy.ml 11 points 1 year ago (3 children)

Meanwhile here I am thinking about pivoting my career from Python to Rust because I've grown to hate Python's lack of typing. I also religiously write unit test even for minor personal projects.

[–] okamiueru@lemmy.world 5 points 1 year ago

(psst: you are right)

[–] Theharpyeagle@lemmy.world 3 points 1 year ago (1 children)

I'm a longtime fan of python, but honestly I don't know how I lived with it before type hints. It still feels a little backwards from the original design philosophy of python, and it's more verbose than other strongly typed languages, but it's come to feel pretty natural all the same.

[–] sajran@lemmy.ml 3 points 1 year ago

Yup, IMO Python is so much better with type hints that I can't help but think they should just be part of the language. Which is kinda stupid because of the "original philosophy" as you said. But on the other hand things like third party static type checkers and type stubs, or just untyped libraries can be a real PITA .

Also, I acknowledge that the lack of typing can be an advantage for some people in some circumstances, even though I use typing even in the simplest and shortest scripts myself. Why would I want to figure out the types every time I look at the function if I can just write it down?

[–] russmatney@programming.dev 0 points 1 year ago (1 children)

I suppose i should at least caveat by saying i don’t by any means advocate for all dynamic langs over statically typed, and i agree types/unit tests are necessary for most languages. So please don’t make me write python over rust!

You can get the benefits of types/unit-tests via static analysis on a per-function basis with clojure and a library like malli, and for me that hits a minimalist sweet-spot.

[–] jvisick@programming.dev 1 points 1 year ago (1 children)

Can you clarify what you meant about types, then? Because I’m not sure I really understand your point there.

[–] russmatney@programming.dev 2 points 1 year ago (1 children)

Sorry, I liked this hot-take setup and I’m shooting from the hip a bit. Maybe i actually mean objects/classes, not types? Can’t everything just be a bag of key-values, like in clojure?

I have been building mostly prototypes (games and wm-tools) for a year, so most of my context is getting things working to see if they are useful rather than locking them down.

I thought about my argument a bunch, and while i have alot of complaints, it all sounds like non-specific whining to me, so i’ve decided to give up.

types and unit-tests have their place. Fine! I admit it! i was pushing a hot-take I’ve had on a few occasions, and I’m glad to see this programming community is alive and well! If you need me I’ll be in my clojure repl.

[–] sajran@lemmy.ml 2 points 1 year ago

It's also important to acknowledge how different is prototyping from writing production code which has to be extendable and maintainable for years by multiple developers.

Your take isn't even very hot when we are talking about prototyping 😉

load more comments (11 replies)