| ||Ask HN: When has switching the language/framework made an important difference?|
140 points by banashark on July 18, 2017 | hide | past | web | favorite | 146 comments |
|It's always fun to look at different (micro)benchmarks comparing language/frameworks/systems to each other.|
I'm curious about real world examples where a change (preferably measurement/profiling driven) has lead to a significant positive outcome in performance, code quality/maintainability, etc.
Did changing from Python to Go make it so that you could avoid horizontal scaling for the size of your app, reducing operational complexity?
Did switching from Dart to Rails speed up development because of the wide range of libraries available, speeding up time to market?
While most bottlenecks exist outside of languages/frameworks, I find it interesting when the language/framework actually made a difference.
An example I'll use is switching an internal library from C# to F#:
The module as designed mutated 3 large classes through a pipeline of operations to determine what further work was needed.
I incrementally rewrote this module in type-driven F# with 63 types to model the data transformations and ensure that the correct outcome desired was compiler verified. In the process 3 bugs were fixed and 12 additional bugs were discovered that while edge cases, had a couple of old tickets with "unable to reproduce" as the last comment in the ticketing system.
This could have been done in C# and because I did it in F# it is most likely slightly more difficult for the other team members to jump into. It probably also uses more memory to represent the types than the C# version.
In this case however, the trade offs were worth it and I've been told the module has barely needed to be touched since.
| Apply to YC