this post was submitted on 02 Oct 2025
71 points (93.8% liked)

Programming

22960 readers
87 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 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] masterspace@lemmy.ca -1 points 4 days ago* (last edited 4 days ago) (1 children)

Lazy is an overly harsh and judgemental way to put it (virtually all programmers start with some high level simplified language), but the sentiment arises because it's syntax is designed to be easy for people writing code, but at the cost of people maintaining code.

The whitespace delimiters, the lack of type system, the lack of semi-colons ... They're all things that people who haven't programmed before think make programming easier. In reality they all make in the wild production programs waaay harder to maintain.

There's a reason that JavaScript has been surpassed by TypeScript for professional developers, and it did so remarkably quickly. All that 'extra' information that seems pointless for a new dev to express, in reality constrains your program, makes it more readable and understandable, reduces the amount of tests you have to write, and makes it easier for someone else to come in and make a change to it and be confident they haven't broken anything.

[–] namingthingsiseasy@programming.dev 2 points 4 days ago (1 children)

Python's type system is dramatically better than Javascript's though. Try doing things like '' + True and Javascript will do incredibly stupid things. Python will just give you a type error. Also, look at things like == vs === in Javascript as well. That's the biggest reason why Typescript replaced it overnight. Python has found a better balance between productivity and error safety.

In my opinion, the biggest shortcoming of Python's dynamic typing system is that you need to have very thorough test coverage to be sure that your code doesn't have semantic errors (a lot more than, say, Java). It has gotten better with the introduction of type hints, those I don't have much experience with them, so I can't say how much.

[–] Feyd@programming.dev 2 points 4 days ago (1 children)

In my opinion, the biggest shortcoming of Python’s dynamic typing system is that you need to have very thorough test coverage to be sure that your code doesn’t have semantic errors

That is a large shortcoming.

[–] namingthingsiseasy@programming.dev 0 points 4 days ago (1 children)

Sure, but as with all things, it can depend on a lot of factors. All code needs some degree of testing, though one could certainly argue that Python needs more than Java and Java needs more than Rust/Haskell/etc. So you could argue that the productivity gain of using Python is offset by the productivity loss of extra testing. It's still hard to say which one wins out in the end.

[–] Feyd@programming.dev 6 points 4 days ago* (last edited 4 days ago)

People underestimate the cost of testing.

  1. It has to actually happen to be effective and is something that can be dropped under time pressure where something built into the language cannot.
  2. Test code is also code that is not guaranteed to be correct, and also incurs it's own maintenance tolls

Removing the need for entire classes of tests cases is a huge win