3 ms·
No programming approach is perfect but some programming approaches are better than others. I started programming with a statically typed language for many years
by jondubois 8y ago
No programming approach is perfect but some programming approaches are better than others.
I started programming with a statically typed language for many years and then I went back and forth between dynamically and statically typed several times in my professional career.
Once you've developed good programming habbits (which statically typed languages can help you to learn), ultimately, dynamically typed is better.
Dynamically typed languages are simpler, faster to write, easier to change, easier and faster to test and debug, focus on raw logic instead of semantics, interact with external services more easily (JSON is the most popular data interchange format and it doesn't carry type information), integrate better with unrelated systems (no type conflicts when integrating different projects).
Functional programming is really nice for some things but ultimately, you need to store state somewhere and often you don't want to store all the data in your entire system inside a single monolothic store or database - Often, you want data to be close to the logic which operates on it; having a global data store is often just as bad as using global variable names in your application; it can lead to conflicts (forces you to think about data in a system-wide way; not accounting for data from external systems) and makes it hard to track where the data is used within the system.
- rienbdj 8y agoI came to the opposite conclusion. Working on a dynamically typed project feels slippery... whenever you make a change it is difficult to know what will end up broken. I agree that deserialization can be a pain up front, but for the long term stability and assurances it is worth it.