Comments by "p11" (@porky1118) on "Uncle Bob LOVES Functional Programming | Prime Reacts" video.
-
12
-
3
-
3
-
2
-
2
-
2
-
2
-
2
-
2
-
1
-
1
-
1
-
1
-
1
-
1:35 Yay, Lisp!
I think he has a point there.
Lisp was my first programming language, I really got into.
It seemed so weird at first. Everything just looked the same, no matter if it was a function call, a macro call, control flow, type definitions or function definitions.
But the different syntax is just an abstraction for humans. It's not necessary.
Before I only used Java in school.
And I did a bunch of programming in GML (Game Maker) to create many unfinished games.
Then I started to get into C++ for Graphics Programming (with old OpenGL), and also tried a few others, one of them being Go.
But I never really used a standard library.
But when I got into Lisp, I really learned all of the language features, including the more obscure non-standardized ones like the CLOS MOP, and I also used a package manager for the first time (quicklisp).
I used Common Lisp for around 3 years almost exclusively. Whenever I didn't like something about the language I thought, I could simply fix it by using macros, preventing me from really getting into other languages, especially if they weren't S-Expression based.
Aferwards I had another phase, where I tried a bunch of PLs, most of them being inspired by Lisp, like Stanza, Dale, Scopes, and also started to get into Rust.
I still think Scopes has potential to be the best programming language. It's basically Lisp, but using an indentattion based syntax, being more low level than C, having a borrow checker, havnig three kinds of macros, useful multiple value return semantics like Lua. Basically Common Lisp, but everything is better.
I think, the best programming language is basically Rust, but with S-Expression based intermediate format.
I think, the programming language should not be monolithic, but be devided into two layers: The semantic layer and the syntax layer.
The semantic layer defines the core features, and it's defined in S-Expressions. It only is about thinks like if it's statically or dynamically typed (by default), if it's garbage collected, does it have classes, interfaces, etc, a borrow checker, etc.
The syntax layer is just a syntax, which could work for different languages. It is just a different format for S-Expressions.
So a C-like syntax, a python-like syntax, a node based visual language, a voice based programming language, etc. all map some format to the same S-Expression format.
I hope, this will happen to Rust one day, too.
1
-
1
-
1
-
1