Meaning of Community
My wife attended Cascadia JS 2013 and I tagged along to join the significant other track, which was really just an excuse to visit Vancouver for a weekend. I had a great deal of fun getting there on the Hacker Train, which was a merry band of JavaScripters who rented out a train car. Along the way, I had many conversations that went something like this.
js: "Are you excited for the conference?" me: "Actually, I'm just here with my wife on the SO track." js: "Oh, so what do you do?" me: "I'm a programmer working at https://sprint.ly/" js: "Neat. Which language do you write all day?" me: "JavaScript." js: "..."
After the third or fourth such conversation it hit me. The majority of my day-to-day coding is in JavaScript. Why then do I not self-identify as a member of the JavaScript community? A better question, what makes one a member of a community?
It might be useful to first take a step back and ask ourselves what is a community? Looking to the dictionary for the answer, you might find something like "a group of people living in the same place or having a particular characteristic in common". By this metric, everyone who writes JavaScript is a member of the JavaScript community. I don't think this quite meets the bar of community in my mind.
For me, the meaning of community connotes a sense of vested interest. There is a sense of being mutually dependent that comes from a community. I think in the programming world this could take the form of actual package dependencies. More than there, there's a symbiosis in which your ideas can build on someone else's ideas, the result of which is a better world which others can occupy.
Its not as clear to me, however, how membership within a community works. It seems that there is a natural duality to membership: one side is self-electing into the group and the other is being accepted.
To date, I've tagged along enough to the node meetups that I've (at least from observable happenstance) self-elected into the group. The awesome people in the node community have been extremely welcoming as well. The fact remains, however, that I feel like an outsider in this community.
This may have to do with my dislike of JavaScript the language. The
truth is, while I do write JavaScript all day, I don't particularly
enjoy it. I find the tooling ill-equipped to deal with the sorts of
problems I face. This is mostly a result of really liking interfaces
and the sorts of tooling that types provide. I also have a problem
with the syntax warts that are completely unintuitive for folks who
come from other languages (==
vs ===
, 4-argument reduce methods,
the need to wrap for..in
with a hasOwnProperty()
check, etc). I
find myself looking longingly towards the Dart community, but the
investment my job has made into JavaScript makes switching to
something like Dart poor business sense.
It's also possible this may be due to some deep-seated disrespect of javascript programmers. We have a problem in the programming community of shaming people for their technology choices. Furthermore, people tend to look down upon frontend programmers in particular. While I realize not all JavaScript is for the frontend, it's possible those are just difficult to mentally separate.
I can't say I have any answers here, but I'm sure I'm not the only one out there in this situation. How do you rectify this internal inconsistency?