If you wanted to contribute to a large/popular front-end or node project, but discovered it used static types via TypeScript or Flow and you had no experience with either, would it deter you from contributing or would you just dive in?
If you were deterred, would onboarding, e.g. documentation, training potentially via pair programming, live coding sessions change your mind?
And if you're curious about static types, here's some good starting points
Photo courtesy of Flickr user Henadz Freshphoto.ru
Top comments (5)
I think as long as the onboarding process is well-explained, the choice is good as long as the tech is stable. I'm against jumping too quickly into these kinds of dependencies, but now that they've been around for a while, I feel like it's reasonable. For everyone turned away by the one more thing idea, there will be someone else excited to learn a new paradigm.
I've never bothered with static types in my own JavaScript code and don't intend to start anytime soon, but I've used other languages that have them so it's not like they're completely foreign to me. If I wanted to make whatever change badly enough, I could probably pick up enough of the syntax just from the existing codebase.
A project depending on a nuanced difference in syntax wouldn't be a problem for me. I already know 30 languages where 30% are just a difference in syntax from the "core", so adding another one isn't a problem.
I do agree with Ben Halpern's comment about stable tech, learning a piece of tech that is currently very unstable can be a waste of my time; unless I'm actually interested in helping the tech become more stable.
I find that many people are too stuck in their current stack and are way too resistant to changing to a new one. Their problem will be that eventually their favorite stack will become "old school" and the new stuff will be in a new stack ... which means that these people will be relegated to doing maintenance or working on the legacy codebase.
Remember: Coding is a large slow moving stream with rapids, you either move with it and adapt, or it washes over you and you drown.
I would say to myself "oh well, another JavaScript thing I have to learn" but if I really wanted to contribute to the project I would pick it up. I'm not primarily a frontend dev and I've only seen TypeScript "en passant".
I didn’t understand the question at first glance) I would rather hesitate to contribute to code with dynamic types!) it’s less stable, less clear, less ‘documented’.