4 ms·
All these features are nice and stuff... But they are often runtime features... At compile time Python doesnt tell you wether a program is correct. Which is fin
by TeeWEE 4y ago
All these features are nice and stuff... But they are often runtime features... At compile time Python doesnt tell you wether a program is correct. Which is fine for small programs or small services. But any big system is written in python is really hard to maintain without LOTS of unit tests...
Static typing, compile time checks just win in the long run. And with languages like kotlin you still have all the advantages, and you have nice tools like python has which execute at COMPILE time using DSL, which are type safe themselve..
Python has become mostly a toy language for me to write scripts in.
- chatmasta 4y agoWhat does "compile time" even mean for Python?
- RedTachyon 4y agoThe moment you run the script, before it actually gets executed.
- CoastalCoder 4y ago> At compile time Python doesnt tell you wether a program is correct. This is a general limitation of type systems, IIUC. If you want a type system to guarantee 100% program correctness, I think it can't handle an arbitrary Turing-complete program. Disclaimer: I'm not sure I really understand this topic, so take this with a grain of salt.
- ReflectedImage 4y agoNo programming language tells you if a program is correct at compile time. Type errors aren't a very common type of bug either.
- danpla 4y agoAs I know, SPARK can do this (in particular, thanks to the strong type system). https://learn.adacore.com/courses/intro-to-spark/chapters/01_Overview.html https://learn.adacore.com/courses/intro-to-spark/chapters/01...
- kayodelycaon 4y agoThe most common type error I see are unexpected null values. Which, surprise, is still a problem in many typed languages. :)
- bobbylarrybobby 4y ago“No programming language tells you if a program is correct at compile time” is technically true, but my experience is that about 99% of the refactors I do in rust, no matter how large, go back to working correctly as soon as the code compiles again. I don't think anything like this is possible in a language like python.
- necovek 4y agoThat's true, but mostly because one rarely compiles Python. I've done significant refactors in untyped Python without much ado: as soon as your tests pass, code works too. I've done significant changes with tests passing on the first go.
- mountainriver 4y agoYes but a linter can