DEV Community

Sherry Day
Sherry Day

Posted on

What language has the most beautiful syntax?

Regardless of usability, which programming language is the most elegant?

Top comments (29)

Collapse
 
maxfindel profile image
Max F. Findel

I think one must mention the fabulous Brainfuck :)

++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.
Enter fullscreen mode Exit fullscreen mode
Collapse
 
abhinav1217 profile image
Abhinav Kulshreshtha

You call BrainFk, I raise you Ook!, which is based on BrainFk. 🤣

Jokes aside, I really liked Shakespeare. There was something poetic about coding in it. 🤯

Collapse
 
k_penguin_sato profile image
K-Sato

Thanks! Came here to say this!

Collapse
 
vulcanwm profile image
Medea

yep!

Collapse
 
ben profile image
Ben Halpern
1337.positive? # => true
Enter fullscreen mode Exit fullscreen mode

Is that more beautiful than 1337 > 0? I'm not sure, but that's the Ruby way to do things and it can definitely be elegant. (The typical operator syntax is also perfectly valid in Ruby).

Collapse
 
darkwiiplayer profile image
𒎏Wii 🏳️‍⚧️

To be honest, I think Ruby has an awful syntax. There's way too many ambiguities that get resolved in weird ways. It just feels like there once was an idea behind it that has long been forgotten.

Being able to call methods on literals is nice, but compared to the many ugly parts, I'd still prefer something a bit more unwieldy but at least consistent.

Collapse
 
rollergui profile image
Guilherme

I have my reasons not to like Ruby, but I can't deny it's very beautiful

Collapse
 
thorstenhirsch profile image
Thorsten Hirsch

Rails is making perfect use of it. Look at such expressive queries:

recent_posts = Post.where(created_at: 2.weeks.ago..Time.now)
Enter fullscreen mode Exit fullscreen mode
Collapse
 
jonrandy profile image
Jon Randy 🎖️

Yeah, it can make code quite elegant. Totally possible to do similar in JS

Collapse
 
lksmrqrdt profile image
Lukas Marquardt • Edited

Every time I work with Elixir, I feel like the code (and any generated documentation) is a work of art. It's very familiar to Ruby but has an entirely different programming paradigm, which feels great.

Also, the fact that it uses way less intransparent magic makes it more straightforward for me to read.

Collapse
 
etienneburdet profile image
Etienne Burdet

It's a bit more "hardcore" than Ruby too, but has much less ambiguity too. I was gonna name it too, pattern matching allows to do everyday operation so easily, once you get used to it it's crazy.

Collapse
 
amtins profile image
André

All languages that use curly brackets.

Collapse
 
m0nm profile image
m0nm

+1

It's more readable for me, imagine debugging indentation issues!

Collapse
 
k_penguin_sato profile image
K-Sato • Edited

There is a language called "なでしこ(Nadeshiko)". It's all in Japanese.

If you code and like anime, this is one way to learn Japanese lol

天気=「晴れ
もし天気が晴れならば
  「ピクニックへ行こうと言う
違えば
  「家で読書しようと言う
ここまで
Enter fullscreen mode Exit fullscreen mode

I'll leave the link to their official site here.

Collapse
 
envoy_ profile image
Vedant Chainani

I Guess Solidity as it is a mix of C++, Python and JavaScript It does not has that much use case as of C++ or JavaScript but it looks Beautiful. Here is an example

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;

contract MyContract {
   uint8 j = 0;
   uint public num = 2;

   function whileLoop() public returns(uint) {
      while (j < 5) {
         j++;
         num *= 2;
      }
      return num;
   }
}
Enter fullscreen mode Exit fullscreen mode
Collapse
 
cubiclesocial profile image
cubiclesocial

Elegant and beautiful are two different words that have two different meanings. You are effectively asking two different questions. I'll attempt to answer both.

Assembly language is always, technically-speaking, "the most elegant." It is one step removed from raw opcodes processed by the CPU but, unlike raw opcodes, is still technically "readable" by humans.

mov eax, 15
Enter fullscreen mode Exit fullscreen mode

The downside is that assembly language is somewhat painful to write real software in. There is no concept of functions, classes, etc. at the hardware level. The resulting code is also tied to a single CPU architecture. For embedded development, that might not be a problem but it is a problem for general-purpose computing, especially cross-architecture development. And is also a problem if you ever want to accomplish anything useful in a reasonable amount of time. C is the next best thing to writing assembly but does add a bunch of software layers to abstract away the hardware to some degree.

Spoken languages have the most beautiful syntaxes. Entire professions exist just to analyze the syntax of spoken and written languages. However, programming languages that aspire to be like spoken languages (e.g. COBOL) tend to be too wordy to program in. Programming languages that produce "symbol soup" just to save a few bytes tend to be incomprehensible to the casual reader - even for other seasoned programmers who know the language and are reading a codebase for the first time. Symbols also have the downside of being unsearchable on various search engines. The best programming languages therefore strike a balance between the two by being neither too symbol-heavy nor too word-heavy.

Here's another possible perspective: The most beautiful syntax in software development is the one that naturally emits no errors, warnings, or notices from a compiler/interpreter. The greatest challenge then is to keep the code that way for a decade or longer even as the language changes, new versions are released, and half of the codebase is declared deprecated.

Collapse
 
auroratide profile image
Timothy Foster

Using LabVIEW, you can draw pictures:

LabVIEW program with wires that spell out "LABVIEW"

Collapse
 
val_baca profile image
Valentin Baca

Python's readability is unparalleled, even non-programmers can have an idea of what's going on. Straightforward but can it be called beautiful just because it's readable? English is readable but it's certainly not a "beautiful" language.

Ruby certainly emphasizes elegance. It's like poetry...but not all poetry is good.

Lisp has a timeless minimalism in its absolute lack of syntax beyond (this).

Collapse
 
eljayadobe profile image
Eljay-Adobe

Tough call between APL and F# as being the most elegant. (Lispers and Schemers will disagree with me. But I make no apologies!)