What are the top few most human-readable programming languages?
ProgrammingThis forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
Ultimately, the size and complexity of the project becomes an overwhelming factor in whether the language is human readable. No one should claim C++ is high on the list of human readable programming languages, but as you scale up to bigger and more complicated projects, eventually C++ becomes the most human readable programming language, because it holds up better to bigger and more complicated projects than any other commonly used language.
You are probably right about that. I think that is also why it is used for large complicated projects. It may also be the reason why it is preferred to C for large projects.
So you have a hard time understanding that 'add' means 'add' as any non-tech person would already know intuitively.
It's not intuitive, the word "add", like most of the rest of human language, is ambiguous. Its actual meaning depends on context. What if your example said "Add ItemName to Receipt", what would "add" mean then? All of a sudden the exact same command switches from a mathematical sum to appending a new entry onto a list. Or does it? Maybe it's still a mathematical sum using the ASCII codes for the characters in ItemName? I don't know. That's the problem.
From the sound of it, you're taking "human-readable" to mean "looks like English-speak". That doesn't make it more readable. It makes the words and symbols more familiar, but the added ambiguity actually makes it less readable IMO.
This is why computer languages are written the way they are, to remove ambiguity. To write computer programs in "normal speak" brings about all of the problems with ambiguity that we face in our daily lives. No thank you. We have enough variations of the phrase "What?" "I don't understand" "What do you mean?" "Come again?" in normal communication, keep that crap out of computer programs.
You still didn't answer what on god's green earth "PIC 9(4)." means.
Last edited by suicidaleggroll; 05-11-2015 at 12:52 PM.
For example, a typical line of Cobol code might be
Code:
Add ItemAmount to InvoiceTotal.
which code itself is self-explanatory, with no need of comments
Sure but I would say the same about
Code:
InvoiceTotal += ItemAmount
Quote:
Originally Posted by suicidaleggroll
What does "Add ItemAmount to InvoiceTotal" do? Is InvoiceTotal just a running sum? A list? An array? What does "add" mean?
I think you're being a bit disingenuous here, InvoiceTotal is clearly a sum (if it's not, ).
Quote:
Originally Posted by dogpatch
The outline way of defining data is likewise self-evident and human readable. e.g
I agree with suicidaleggroll that the PIC thing is rather cryptic, I guess (again from the names chosen) it means some kind of character type? I thought the numbers would indicate max/min length except then it makes no sense to have 99 on DayOfBirth. And what's with the numbers that appear to be indicating the indent level?
Quote:
'add' means 'add' as any non-tech person would already know intuitively. The non-tech would not immediately wonder whether an array or list were involved.
How would you add a new number to a bunch of numbers in Cobol then?
Quote:
which was the OPs original question.
I don't know that the OPs original question meant anything, beyond starting a language war, like dugan says.
Last edited by ntubski; 05-11-2015 at 12:52 PM.
Reason: replace possibly specific "list" with "bunch"
I think human-readable is a very misleading term. The point of programming is that you have to be able to describe what you want to do in an exact way. Everyone is able to sort numbered pieces of paper in an ascending order if you ask them to, but not all of them can describe the algorithm they used to do it. But if you can't explain it to yourself, you can't program it. Sometimes I think some people are thinking "high-level", or "human-readable" language means the compiler will understand (their) natural language and know what they meant even if they don't. But high-level is not an adequate substitute for being able to put the logic together. Leave computation to computers and thinking to human beings. Programs trying to guess what you meant rather than do what you wrote tend to result in a very poorly predictable behavior. When google gives me what it thinks I want instead what I asked for when I actually do know what I want is annoying, but if I was forced to use a programming language that behaves like that, I'd probably jump out of the nearest window.
Rebol is also very readable, can generate even more human friendly DSL's easily and is *very* lightweigt.
Red (red-language.org) is its successor and has the same advantages, but will be even more powerful than Rebol.
Personal preference, I rather think of it as in what language can you write code that is easily portable to other languages. For example, you can cut and past BASIC right into the old Microsoft .ASP files. With very few tweaks you can quickly convert it to PHP. Likewise you can call BASH from PHP. A good example of what is NOT portable is the new Microsoft .ASPX files. But then again, when Microsoft released its plans for .NET in the late 90's was when I decided I needed to learn Linux! Total insecure ..... better stop there, got absolutely nothing good to say about .NET
The most easily read language I've used was Pascal. Pretty straightforward. But it's not in much use these days. Ada is very similar, but never had wide adoption outside NASA AFAIK.
I wonder why nobody has brought up Smalltalk in this discussion. I would think that any language that is used to teach programming to kids (Smalltalk, Logo, ...) would fit the description of "human readable" best, if "human readable" is defined as "easy to understand for people with no knowledge of the language".
Last edited by TobiSGD; 06-05-2015 at 08:50 AM.
Reason: fixed typo
C# is what most applications are written in. C# replaced C and C++. VB or Java would be on the list. CSS would be on the list because of web site. Cobol, Pascal and Fortran are still used.
Human readable? Some doubt programmers are humans. I can look at most code and figure out the syntax. I can tell you what the code does. I have been programming 30+ years. C# with visual studio took the fun out of writing code. It was an art in the 1980s. With Java and Visual Studio anyone can write code. It takes a good programmer to make it elegant instead of spaghetti.
It's not the language but the way the code is written that makes the code readable or not.
Almost any language that permits well defined programming structures, long variable and function names, suitable indenting etc can be used to create readable programs.
Ideally, you should be able to take pseudo-code and translate it directly into the language you are using without any restructuring of the code.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.