1 (edited by sagaracharya 2022-05-01 07:05:50)

Topic: Properties of a great programming language

1. It should have good grammer which specifies inputs and outputs.

#language A
a = "foobar"
out("foobar.txt")
#fails to mention input for foobar.txt
#language B
a = "foobar"
out("foobar.txt", a)
#shows clearly what is the input for output file foobar.txt

An even better way in language B would be to mention complete filepath in the filesystem wrt root.

2. It should have a small and easy to read compiler created by a reputable community (prevent to be ethical in past wrt actions).
3. It should be easy to learn with very few easily understandable logical concepts which you can remember.

Haskell fails miserably on this. Veterans cannot even explain the concepts of monads and functors easily and they want to teach Haskell. Make things simple, not complex. Language is just a tool to convert human language to binary.

For me, functions and data is a complete set. You have data as input and output, and you have functions which process data.

4. It should force the programmer to write clear, concise and beautiful code.

I've not found such a language today. I tried to  Multiple ways to write a program should be removed. Things should be strict so that all people are on the same page and don't struggle with different representations.

Bad

int a = 0;

int b;
b = 0;

Good

int a = 0;

Above code is still simple to understand but it gets more and more complex for more multiple representations.

5. Prevention of corruption.

Once the language is complete and mature, the urge to do something with it should be suppressed and the language should be left as it is without adding additional features. Maintainers of the language should make sure that all the higher level modules made by the devs are consistent with above principles and only then add them to the packages. This might suppress freedom a bit but it maintains the beauty of the language and the ease of understanding. If some base working of computer hardware changes, only then should the language be changed.

2 (edited by auanta 2022-08-30 17:25:41)

Re: Properties of a great programming language

I enjoy this analysis a lot, I like reading a lot **about** programming languages but still have never properly learned one.

I just wonder what it feels like to be having to know like 5 different programming languages when 4 of them are bad for xyz reasons and yet you have to know them for work because work demands it. How dizzying..

I think the most important factor for me to learn a programming language would be point #1: that the syntax is logically, mathematically sound.  I prefer Python3 over Python2.7 solely because I do not want 7 divided by 2 to equal 3. It's 3.5!!!! The only correct answer!

Is there at least one in existence that is close to points #1, 4, and 5?

3

Re: Properties of a great programming language

C fills them all except #4. But it still is pretty close to #4. The only issue I find with C is lack of easy module/package manager. But I'm not that experienced to conclude it.

I've found that human languages too have some very difficult words. Some language aspects are made for making it more difficult to understand. Similarly, there are auto-code-generators which deliberately obfuscate code and enlarge it so much that a new programmer who comes to manage cannot understand and replace the original programmer.

I confine mostly to 2 languages, Python and C. They solve everything for me. I also don't like pointers in C.

There's tcc, a minimal compiler by suckless.

4

Re: Properties of a great programming language

Noted! I think I'll stick to Python and C then.

5

Re: Properties of a great programming language

This one any good?

https://en.wikipedia.org/wiki/D_(programming_language)

HyperbolaBSD: The Future of Secure Libre Lightweight Operating Systems!

6 (edited by sagaracharya 2022-10-13 11:46:34)

Re: Properties of a great programming language

D is object oriented. This in turn introduces classes and multiple ways to program same thing. I don't like it. I delved a bit into C and it seems installing packages of C should be directly into repositories which would be fetched by OS itself. There doesn't need to be a package manager. A coder will be aware of where to place o files within the OS itself. Pretty amazing! It essentially connects with minimalism of UNIX.

7

Re: Properties of a great programming language

Folks, check out V. It looks pretty amazing!

8

Re: Properties of a great programming language

sagaracharya wrote:

Folks, check out V. It looks pretty amazing!

Wow, this looks really exciting to learn! I'm into it.

Please keep us updated with any further findings, I am bookmarking and taking notes!