What are the most 'natural' feeling languages around?

In your opinion which programming languages are simple to use and easy to get started wither those who don’t have a computer science background or exposure to other languages previously? In other words, which feel the most natural - where they just happen to flow: when you think something is going to work, it just does.

2 Likes

Ruby is a language where simplicity and productivity is actually a design goal. Many people are of the opinion it feels natural and intuitive, hence why they think it is a joy to work with.

People also love the syntax, though maybe that’s a topic for another thread :laughing:

3 Likes

SQL. Even my boss can use it. :drum:

3 Likes

This might come off a little gray-beard-ish of me but the most natural syntax – after you spend a week with it – to me is LISP.

Ruby / Elixir / Crystal are okay but nothing that special or productive per se – IMO it’s a habit and people overestimate their readability.

Even something as exotic as OCaml’s almost complete lack of parentheses – and usage of whitespace to express meaning – becomes natural after a while.

3 Likes

I think we need a syntax thread :nerd_face:

It’s fascinating how different syntax styles are preferred by different people :upside_down_face:

2 Likes

It’s only that though – fascinating / a point of interest. IMO programmers bickering over syntax is quite unproductive.

There surely is some neuro-science truth buried there somewhere. As various poets have said: “the difference between the wrong word and the right word is to be described the effects of lightning compared to being hit by it”.

So probably there is a syntax that helps our brain along with the programming itself. But IMO people overdo the syntax disputes.

4 Likes

I agree pointless bickering is unnecessary as a lot of the time it will boil down to personal preference.

However, there are basic principles to design and that includes in language design - KISS is one such example. It all depends on the goal of the language - for some, being ultra succinct can be a goal, for others, familiarity, while others might aim for intuitiveness/feeling ‘natural’.

On top of that you have how syntax looks, and this is very subjective - some people can absolutely love the syntax of a language, while others might think it looks ugly.

In terms of language design, highly intuitive and natural languages are my favourite. Reminds me of the famous line out of Enter the Dragon; the art of fighting without fighting. I like languages which feel effortless… almost as if you’re not programming at all and certainly not having to constantly battle or feel baffled :blush:

5 Likes

TBH I find abandoned Quel much more readable, as you can read them top to bottom naturally, which not really is a thing in SQL.

About “easiness” of the language I think that shells are there the one of the most “natural” approaches.

5 Likes

I’ve always found OCaml, Prolog, Lisp, Forth, SQL, and Python to be very ‘natural’ languages to me for a variety of reasons that differ for each. It’s not really ‘syntax’ for any of them except maybe FORTH, it has the purest syntax.

2 Likes

But seriously, significant whitespace? That’s one of the least intuitive things for one’s brain. :expressionless:

3 Likes

I’m not a fan of significant whitespace, but I see why it’s useful to many. Like Python forces people to already indent in a way that they are planning to, without annoying hanging things that are in one block programmatically but not visually, it keeps things consistent…

1 Like

Sure, I am all for consistency but I’d prefer if a file just fails to get compiled if it doesn’t follow convention. Significant whitespace is straight up recipe for disaster; people will get the whitespace wrong, and often.

Just give the devs Emacs and VIM scripts from the get go so the files get automatically formatted on save.

I love this article on the topic: Syntactically Significant Whitespace Considered Harmful.

2 Likes

Article? Looks like a failed search…

2 Likes

No clue why my browser copied the parent URL but here’s the right one:

https://proxy.c2.com/cgi/wiki?SyntacticallySignificantWhitespaceConsideredHarmful

2 Likes