The 'feel' of a language

Header - laptop with code

I've been thinking a lot about programming language choices lately, and realized that a lot of my preferences relate to how a language "feels" to me. This may be down to the properties of the language, the look of its syntax or something as meaningless as the style of a tutorial website. There's nothing particularly wrong with having a gut reaction to something, but when it can influence your decisions, it's important to understand that they are just that and should be weighed accordingly.

As an example, way back when I was starting out programming, I picked up Perl and Java at around the same time. I quickly developed a preference for Java because it felt more "solid" to me, likely because of it's stronger typing and having everything wrapped up in a class. I didn't consider the benefits or drawbacks to those features, I just felt more comfortable and somewhat "safer" programming in Java, which as a beginner was a big deal for me.

Perl itself often felt incomprehensible as well, which I think is likely down to seeing some whitespace-free scripts for chat services and the like. Through the power of internet memes, I now realize that I'm not the only one who felt like this. But this perhaps led to me giving up on some problems a bit earlier than I might have.

Years later, I was picking up Python for a text manipulation project. This was right as Python 3 was being released, and I was frequently tripped up by the changes, especially when trying to find open source modules. I was left with an impression that Python was unreliable, and never really got into the more powerful features the language offered as a result. It wasn't until recently that I discovered some of the more interesting aspects of the language, while conducting a coding interview. The funny thing is, I have no such feelings about Swift, despite it going through far more changes on a yearly basis of late, and Python 3 has been stable for years.

I'm sure we all have these sorts of feelings, I'd certainly be interested to hear how different programming languages feel to other people. What's important is that we don't allow them to dominate our decision making. They certainly can be taken into consideration (particularly when choosing a language a small team will be happy using), but we need to recognize these potential biases and make sure to either back up our immediate reaction with real, valid arguments, or dismiss them with counterargument.

So what about you? How would you describe the "feel" of the languages you use?