5 ms·
The trick is to introduce Rust wherever you're at, assuming it's a good fit for the task. This may be harder to do if you don't have enough influence.
by xedrac 3y ago
The trick is to introduce Rust wherever you're at, assuming it's a good fit for the task. This may be harder to do if you don't have enough influence.
- tayo42 3y agoQuick way to be annoying and unlikeable at work. The times I've seen rust introduced, and tried it my self, it introduces a whole bunch of related tech debt. Like hacks to make builds work
- beeboobaa 3y agoIf it's a good fit then it's a good fit. Of course you'll need to ensure the CI is set up properly, just like everything else. If it's not a good fit, then you're just forcing it, and yeah...
- xedrac 3y agoWhen I see people on my team (myself included) shoot themselves in the foot over and over with C++, sometimes causing very costly production bugs, and yet I know of a tool that could have prevented nearly all of that pain at compile time, I am going to risk being disliked in order to help lift everyone up. Most people that I mentor on Rust have become completely sold on it after some initial resistance. I don't like change for change's sake, or rewriting things in a new language unless there is some really big payoff.
- tayo42 3y agoI think that argument makes sense in a vacuum. Like considering nothing else, yes, 100%, rusts compiler prevents more bugs then c++ would. I don't think bugs are the only way to waste time or break things. In a large company or complex project your never talking about one small code base. There are inter-dependencies within code and outside code. Rewriting all of anything significant is a huge undertaking. In reality your introducing a new language in addition to cpp/java/go. Its another support task. Its another thing to context switch between when your working on "the legacy" repo and the new stuff. You need to be skilled in both languages. Its like any team that starts writing automation and support projects in python, when their main language is something else. You get trash python scripts and programs. Its another language where technically the domain is right, but the skill is lacking.
- xedrac 3y agoYes, there's definitely a cost of introducing Rust to an existing project. But there are a ton of projects that could also benefit greatly from it, such that it'd be a net benefit even in the short term, and a huge benefit in the long term. I'm not advocating for people to blindly add it to their project.
- deleted 3y ago[deleted]
- jonnytran 3y agoYes, I did this at my startup. Fast forward a few years, and now the company has more Rust code than Python, and the majority of the company's IP is in Rust. I suggest beginning with small, one-off things that don't have much impact. People, even developers, tend to shy away from things that aren't familiar. By introducing Rust in a small, low-risk way, it helps people get familiar with it. They get to build familiarity with building Rust projects, navigating the project structure, and reading docs. I submit pull requests that get people to read Rust code, even if it's just to say "looks good". Their familiarity builds slowly over time, meaning they'll be less triggered by seeing Rust in a larger, more impactful project down the road. How do you boil a software developer? Slowly. If they give Rust a chance and your team has a champion to guide them, they'll see its merits. I think a lot of people come to Rust for the performance, but that's not why they stay.
- Capricorn2481 3y agoWhat domain are you working in where Rust is the replacement for Python?
- tracker1 3y agoPerformance, portability, reduced memory use.. even containerization which can benefit from all of the above.
- Capricorn2481 3y agoThose aren't really domains. Chances are if portability was a concern to you, you didn't start your project in Python.
- PartiallyTyped 3y agoI am in the process of oxidizing some stuff at work with Rust. I too am starting from small pieces, things that I can incorporate and call off python directly. Also relying a bit on codegen to blend the two languages and slowly remove all python code.