What is Language Feel?

I don’t know if everyone has this experience, but in my opinion there is a “feel” to every programming language. Its syntax, idioms, libraries, error handling, etc. all create a unique feel to each language.

When I open a JavaScript codebase I’m expecting to feel C-like code with some OOP sprinkled in. It’s likely the only time I see === in code. I’m also expecting heavy reliance on libraries and lots of try/catches. When I open a Ruby project I’m expecting an HTML-like syntax with emphasis on functional programming, less error handling, and plenty of libraries. The Ruby project will read more like English and has more “syntax sugar.”

Why is Language Feel Important?

This feel is unique for most languages and the languages I continuously use are ones that have a good feel to them. The ones I advocate for are also the ones that have a good feel to them. Some of my favorites: Dockerfiles, Rust, and Elixir. JavaScript didn’t make the list because it’s too quirky. Python didn’t make the list because it relies on proper spacing. Go didn’t make the list likely because I haven’t used it enough.

What Makes a Good Language Feel?

TODO: Flesh this out more

  • Sensible syntax
  • Less footguns (give example of GitHubs ${{ }} syntax)
    • Maybe include a Solidity example?
  • Bring the features people like in a prev ecosystem to a new one
  • typein Python, typeof in C, type in JavaScript
    • “type” as a variable name in Python is a footgun