I Program JavaScript for Work, but I am not JavaScript Programmer

I have noticed an interesting phenomena - technology world is divided into the islands, that do not really talk to each other.

I first realized this on the Data Science meetup. I was talking to somebody, that had something against AWS - he was of the opinion that AWS is powering too much of the internet, and that somebody needs to stop Amazon from having too much power. Since there is no real alternative.

So I mentioned, that a lot of the local businesses and probably others have their webpages on the local providers. In Slovenia this would be companies like Domovanje or NeoServ. The other countries have their own. And it is usually the shared server with the LAMP (Linux-Apache-MySQL-PHP) configuration. I mean, for my personal side, I am using the same thing - I doubt AWS or Azure or Digital Ocean would provide me with the hosting for 20 EUR per year that I get here.

But it seems that for that person this did not compute at all. Even though some other person near backed me up, he did not accept this as any kind of argument. It was like it needs to be AWS or AWS like service for him to count.

So I started to really think about this. It is really interesting that a lot of the sites in the world are powered by Wordpress, written in PHP. Yet nobody suggest learning PHP to get a programming job. It is usually on backend something like golang or Python or similar.

On the other side, I have met people using Wordpress that think the entire internet runs on it, and nothing else exists - which is also not true.

Around that time, I was also thinking about how people with no programming experience can get programming jobs - which is still a problem. Once you have a couple of years of experience, you get to pick your jobs. But getting that first job is still depended on luck and perseverance.

So I ended up in the weird part of Twitter (or maybe a normal part of Twitter), where there was a discussion about the frontend, that was similar to what I experienced before. There is apparently a gulf between people that concentrate on HTML+CSS+JavaScrpt, and the ones using the new frontend frameworks.

The CSS knowledge was by some people perceived to be less technical and more female. Even though the end result on the web is HTML and CSS, sometimes with some JavaScript.

And it is a different type of thinking. I generally think in HTML+CSS way. But frontend frameworks use such a different mental models, that I had a hard time grasping it. Googling did not help, since most articles either assume you already know this mental frame, or are toy objects, that do not help grappling with the production code in my job.

Even my coworkers talked in what was to me technobabble, when trying to explain me some things. That was fun.

So I started to think about myself. I mean, I can see the differences in how I and others in my team approach the problems. I think one of the reasons for this could be, that my mentality when it comes to the programming does not include computer science mental models. Since I never really went through them, maybe I never learned how to think like a computer scientist.

But it can also be a community. I mostly write JavaScript in my job, but if anybody told me to identify with a programming language, it would be Python. It is my go to language for thinking about code, I speak at Python conferences and I prefer the people in Python meetups in Ljubljana, then on JavaScript meetups.

So even though I have been writing JavaScript code daily for years now, I do not consider myself a JavaScript programmer. Based on observing other people, JavaScript people have different culture, that I do not identify with. Plus, if anybody would tell me to write frontend, especially with frontend frameworks, I would have a lot of problems getting anything done. And this seems to be something, that JavaScript is mostly associated with.

I guess something similar is happening in Python. I have heard stories of people using Python libraries like pandas for years, and only then seek to learn Python as a programming language.

Thought this might partly be because there is a more diverse community in Python. Not in the demographics, but in the interests and why people are using Python.

In the sociolingustics, there is this idea, that we code switch. We adapt out language, so it is most like people we admire or want to be a part of. And less like people we do not want to be associate with.

When it comes to the topics, this is true. I remember a Ljubljana tech meetup with picnic. When the Fronend finished before backend track, the person asked for other topics to discuss. They ended up discussing the module bundles like webpack and which one give better developer experience.

Compare this to the Python meetup, when a person explaining the use of Python in farming and we ended up discussing not just Python but also green farming.

I also wonder, if the langauges attrack different people, Languages do have different affordances and different mental models.

I am experiencing this the most with the golang now. I would say that JavaScript and Python are similar enough, that the thinking that can be done with the language can be similar. So switching between them is easy.

This is not true for golang. If I try to think through the code to the solution, I feel like I have to fight with the language at each step. So I commented one line to test something - now I have to comment and change multiple lines just so the code would run.

I guess this makes it less likely to ship bugs in the production. But it makes it harder to think with the language. It actually constrains the thinking to the specific way. This is probably at least one of the reasons, why golang code is readable.

Maybe that is why the golang/backend meetups always have such technical talks.

This for me is a lot bigger differences then how to deal with errors - something that was a discussion at the dinner at PyCon Slovakia that I participated in. This are small differences you get used to. Getting used to an entire different way of thinking is much harder.

Or maybe this kind of thinking comes naturally with the master of computer science thinking - and I am simply lacking this.

If there is any proof needed, that some version of the Sapir-Whorf hypothesis exists, this would be a good case. This stipulates that language either limits (strong hypothesis) or influences (weak hypothesis) what you can think about. The weak version is generally accepted. Even if I can think it, if I can not express it, I can not communicate it, then it can not help anybody.

I find it hard to think the way frontend framworks, golang and entire Kubernetes environment want me to think. Which is why I can not consider myself part of this - even if I use it every day at work.