5 ms·
A good indication of someone's lack of experience is hearing something along the lines of "I used X, but now I'll rewrite it in Y", and then they proceed to exp
by optymizer 5y ago
A good indication of someone's lack of experience is hearing something along the lines of "I used X, but now I'll rewrite it in Y", and then they proceed to explain all the hypothetical benefits of the two birds in the bush, instead of the one in the hand.
After working on a project for a while, it's natural for people to start seeing inefficiences or bad trade-offs in the code/architecture/language/project/etc. The first reaction is usually to think that if only they could throw that away and rewrite it, preferably in a better language, it'll be so much better, because it has to, right? All those shiny bew features will surely make your product so much better.
But it's never the tool that got you in that spot. It's you - your decision making process and your ability to create a product. If the language is actually a problem, you made a bad decision by picking that language. If the code is bad, you didn't code it well. If the architecture is bad, you didn't design it properly. So unless you really learnt your lessons, changing the tech is just going to get into a different swamp. Do not rewrite the project if all you can say is that you don't like the state it's in. Refactor.
If you know exactly what mistakes you've made and how to fix them, but fixing them requires a large portion of the project to be refactored, then that's a good case to say that since you've learnt from your mistakes you have a good chance of rewriting the project to fix those mistakes but _without introducing additional risk_.
If nothing else, changing the language discards your expertise in the previous language. There is also no reason to believe that changing the programming language will yield a better tool than before. Sure, you got some learnings from having written v1, but you're also throwing away everything that went right.
At the end of the day, just admit to yourself that you want to rewrite your project in Rust because you like Rust and want to write Rust code now. That's it. There is need to publicly justify that it's such a great choice and it will make everything better. It won't. Software is still software, and it's limited by your imagination and ability.
People have written excellent tools before Rust came along and will write them after Rust is long gone, because the language is a tool, and the only thing at the center of your project is you, alone with a text editor, wanting to make something happen. So make it happen.
- kiliancs 5y agoA good indication of someone's experience is that they don't have hard rules and are able to analyze and see the nuance in each situation. This is to say, I wouldn't be so fast to judge.
- nindalf 5y ago> There is also no reason to believe that changing the programming language will yield a better tool than before. Except similar tools like esbuild (Go) and swc (Rust) have achieved an order of magnitude improvement in performance compared to JS based fools. This is critical because developers will prefer the fastest tools to get work done. Guessing you didn’t know this and that’s why you confidently and condescendingly proclaimed that > just admit you want to rewrite in Rust because you like Rust.
- optymizer 5y agoIt's irrelevant whether it is in principle possible to create faster tools in other languages. Joe Schmo, who ran into a wall with his project in Node.js, is lying to himself if he thinks that rewriting the whole thing in Rust is going to magically solve the problems that drove his project into a wall in the first place. A bad workman blames his tools.
- pdimitar 5y agoIt's irrelevant according to you. That's not an accepted fact.
- optymizer 5y agoI find your comment puzzling. What specifically is not an accepted fact?
- pdimitar 5y agoSorry, should have been more specific, my bad. I mean this part in particular: > It's irrelevant whether it is in principle possible to create faster tools in other languages. I disagree that it's irrelevant. There's a ton of development tooling nowadays that can be much faster. The accumulated slowdown and thumb-twiddling that ensues when 20 JS junior devs have to wait for a solid minute or two on their mid-range laptops can and has lead to real productivity losses.
- satvikpendem 5y ago> There is also no reason to believe that changing the programming language will yield a better tool than before. Why would you assume that? Languages are not all the same, if only for the reason that (all else being equal) a compiled language will run much faster than an interpreted one. You may be saying that, ie given an O(n^3) algorithm, a faster language will not cover up the slow algorithm, which is true, but again, all else being equal, including the algorithm, some languages will perform better than others. Indeed, already there are examples of JS tooling like SWC and esbuild (that are not built in JS) that are much faster than tooling built in JS like Babel and tsc.
- optymizer 5y agoThis isn't a blanket statement about languages in general. We have information that Joe failed to deliver his project in language X. Given that information, there is no reason to believe that rewriting the tool in language Y is going to be successful, because the problem may not be the language. This has nothing to do with someone else being able to write a better tool in that language - it only proves that a better tool is obtainable in general. In my experience, in such cases, Joe typically fails to deliver his new project as well.
- satvikpendem 5y agoThat is correct. In fact I submitted an article just the other day called "We rewrote everything in Rust, and our startup still failed [0]." However, again, all else being equal, a faster language is, well, faster than a slower one. [0] https://news.ycombinator.com/item?id=28573965 https://news.ycombinator.com/item?id=28573965
- pdimitar 5y agoThis is not a jab to you or your team but the title makes is sound as if you believed Rust guarantees business success? (The link is dead btw, yields an empty screen. I'd be curious to read the article.)