Instead of using the high-level languages, programmers will start using the more higher-level programming languages and human language level programming languages?


#1

Hi,

It is written in book Java How to Program ninth edition that instead of using the strings of numbers that computers could directly understand, programmers began using English-like abbreviations to represent elementary
operations:

1.5 Machine Languages, Assembly Languages and High-Level Languages

Programmers write instructions in various programming languages, some directly understandable by computers and others requiring intermediate translation steps. Hundreds of such languages are in use today. These may be divided into three general types:

  1. Machine languages
  2. Assembly languages
  3. High-level languages

Any computer can directly understand only its own machine language, defined by its hardware design. Machine languages generally consist of strings of numbers (ultimately reduced to 1s and 0s) that instruct computers to perform their most elementary operations one at a time. Machine languages are machine dependent (a particular machine language can be used on only one type of computer). Such languages are cumbersome for humans. For example, here’s a section of an early machine-language program that adds overtime pay to base pay and stores the result in gross pay:

+1300042774
+1400593419
+1200274027

Programming in machine language was simply too slow and tedious for most programmers. Instead of using the strings of numbers that computers could directly understand, programmers began using English-like abbreviations to represent elementary
operations. These abbreviations formed the basis of assembly languages. Translator programs called assemblers were developed to convert early assembly-language programs to machine language at computer speeds. The following section of an assembly-language program also adds overtime pay to base pay and stores the result in gross pay:

load basepay
add overpay
store grosspay

Although such code is clearer to humans, it’s incomprehensible to computers until translated to machine language. Computer usage increased rapidly with the advent of assembly languages, but programmers still had to use many instructions to accomplish even the simplest tasks. To speed the programming process, high-level languages were developed in which single statements could be written to accomplish substantial tasks. Translator programs called compilers convert high-level language programs into machine language. High-level languages allow you to write instructions that look almost like everyday English and contain commonly used mathematical notations. A payroll program written in a high-level language might contain a single statement such as

grossPay = basePay + overTimePay

Instead of using the high-level languages, programmers will start using the more higher-level programming languages and human language level programming languages?

I probably will create the more higher-level programming and the human language level programming.


Will robots replace programmers?
#2

Someone?


#3

What exactly are you looking for? You did not ask a question. Also your last statement just seems unlikely. I doubt any one person could do this and I’m not even sure the claim about such a language being the future is right, at least not in the near future. The reason is simple. Programming languages need to be explicit. Natural languages on the other hand have far too many inconsistencies. They might be used to interface with computers/AI but I doubt they will ever be used like a programming language.


#4

Since you want someone to reply, let me post some ads here: https://www.jetbrains.com/mps/


#5

@Wasabi375,

I asked the following question:

'Instead of using the high-level languages, programmers will start using the more higher-level programming languages and human language level programming languages"?

@Wasabi375,

An intelligent compiler will ask for clarification whenever there’s an ambiguity and may suggest improved wordings to resolve the issue. Writing a program will end up being a conversation with an intelligent machine which anyone could handle even if they know nothing about programming - it will be a collaboration with an intelligent system which is in itself an expert programmer. The error messages will be comments and questions just like the ones you’d get if you were co-writing a program with a human programmer. (“When you say “print the result of that part”, do you mean this part [a section of the code is highlighted], and do you want it printed to the screen or the printer?”)

None of that will stop you putting in a line of C or any other programming language if you want to, but most of the work will simply be done in natural language, typically at a much higher level with the compiler working out how to carry out the tasks asked of it. The end user will also become a programmer, telling the machine how (s)he would prefer things to be done, and the machine will comply. That will rarely be done through anything other than natural language.

Programming languages will end up being increasingly high-level until they become identical to natural language. You will eventually be able to write all your programs in English, Portuguese, or any other natural language, although you will also be able to mix that with instructions of the kind used in today’s programming languages whenever you think that’s more efficient or clearer.


#6

Good luck with that. I think we should discuss it when you have first working toy model. But I do not understand, what it have to do with kotlin.


#7

@Wasabi375,

Where natural language is ambiguous, the machine can simply ask for clarification to make sure it has understood the instruction the right way, and if it hasn’t, it can help the programmer improve the wording of the instruction.

@Wasabi375, @darksnake,

Please, see the Plain English Programming site so that you can see a language that looks close to natural language. That would let you see that using normal language would be a practical way to write code.


#8

Wasn’t that one of the main goals of COBOL? It didn’t go so well.

I think natural-language-like programming languages is neat but flawed idea. Code becomes less readable when the goal is to be as close to a natural language as possible.

The real moon-shot idea, which would be cool to see in the future, is the tooling. The idea that the IDE could take wrong or ambiguous intentions from the developer and turn it into the unambiguous code that the developer wants.
I don’t think this will be possible to a large scale, but we already have it to an extent with our current IDEs. I’d consider everything from autocorrection in typing to Intellij’s inspections to be progress towards better tooling.

TL:DR Programming with natural language does inherently make more readable code or a better coding experience.