If you're relatively new to software development and tend to keep up with developments in different areas of it you are probably convinced that community is important. I think you're probably overestimating the value of community.
Why are we here?
How did we end up with this view that a good language has a massive community and that it derives its value from this community?
Simple: Visibility.
A community that hosts conferences, has user groups, has thousands upon thousands of libraries readily available is visible. We can observe the mighty power of this language and technology and since these are some of the easiest things to observe we tend to associate this with high quality that is trending upwards. The community is sure to produce more libraries for us that we can use to build more things faster.
What can't we observe as easily?
We can't actually observe how many of these libraries are thrown away after a month because they have massive bugs, take forever to compile or are otherwise not good enough to use in our code bases.
We can't actually observe how many programmers hate coming in to work because the popular language they use has massive holes and is super easy to accidentally misuse. Likewise we can't observe how many other offerings the users of a technology have been exposed to, so we don't know whether their frame of reference even holds any reasonable alternatives. We have extremely imprecise proxies for some of these things but they aren't good enough.
What am I suggesting?
Recently there has been a series of controversies around the Rust language and its governance. I'm here to tell you that even before this you should've been unconcerned with most other people. The community doesn't matter; only you and your usage of the technology matters.
Learn your fundamentals, learn lower-level programming and how to express those things in Rust and engage minimally with everyone else. Perhaps engage with a community but not with the community. Staying on this path will help your objectivity as you will not add libraries to your projects "because everyone else uses this serialization library that adds 20 seconds to their compile time", you won't tolerate bad things just because it's the status quo of the community.
In short, you'll learn to think for yourself and evaluate both language features and libraries based on their actual merit and usefulness to you, not anyone else. When you need something, you'll be more prepared to build it unless you can easily find an alternative that actually works.
Knock-on effects
One of the best things about detaching yourself and your engagement from a community is that you free yourself up to simply do other things. Time spent engaging with the community can be spent doing actually productive things, spent researching alternatives that have unique upsides you didn't see before because you were so entrenched in this one technology and its community.
You can do all of these things without having to engage in spectacles like "Why I'm leaving X" posts, because you're not leaving anything. You're just also using other tools. You are a programmer, a software developer, you're not tied to any one language or technology.
Hopefully when you've disconnected from any one language and community you'll also be ready to learn things that simply aren't about languages, but rather an application of ideas such as network programming, 3D rendering, game engine design, etc.
Top comments (0)