Will future programmers probably warn people not to use anything other than natural language just as most programmers today warn people not to use assembler?
-
Just as most programmers today warn people not to use assembler, probably future programmers will warn people not to use anything other than natural language. 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: Machine languages Assembly languages 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
Quantum Robin wrote:
Just as most programmers today warn people not to use assembler, probably future programmers will warn people not to use anything other than natural language.
I think everyone should learn assembly! Given how poorly people communicate with natural language, I think programming languages will be around for a while. We don't do very well with them either!
Latest Articles:
Client-Side TypeScript without ASP.NET, Angular, etc. -
Just as most programmers today warn people not to use assembler, probably future programmers will warn people not to use anything other than natural language. 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: Machine languages Assembly languages 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
Ph'nglui mglw'nafh Osmosian R'lyeh wgah'nagl fhtagn. :-\
Did you ever see history portrayed as an old man with a wise brow and pulseless heart, weighing all things in the balance of reason? Is not rather the genius of history like an eternal, imploring maiden, full of fire, with a burning heart and flaming soul, humanly warm and humanly beautiful? --Zachris Topelius Training a telescope on one’s own belly button will only reveal lint. You like that? You go right on staring at it. I prefer looking at galaxies. -- Sarah Hoyt
-
Just as most programmers today warn people not to use assembler, probably future programmers will warn people not to use anything other than natural language. 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: Machine languages Assembly languages 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
I reject the premise of the question.
-
Having seen the standard of many "future programmers" - go to QA and get a face full of stupidity - even using "natural language" will be beyond many of them. I'm not convinced that natural language is a good idea for programming - it's too imprecise, too open to misinterpretation: you would need a truly intelligent system (rather than what is called AI these days) to process it and work out what the developer actually meant to do. Heck, I've met developers who can't process a natural language specification and produce what it asked them to do! :laugh:
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony AntiTwitter: @DalekDave is now a follower!
-
I reject the premise of the question.
Will future programmers probably warn people not to use high-level programming languages just as most programmers today warn people not to use assembler? If yes, what are the programming languages that will replace the high-level programming languages?
-
Will future programmers probably warn people not to use high-level programming languages just as most programmers today warn people not to use assembler? If yes, what are the programming languages that will replace the high-level programming languages?
Please see previous response.
-
Having seen the standard of many "future programmers" - go to QA and get a face full of stupidity - even using "natural language" will be beyond many of them. I'm not convinced that natural language is a good idea for programming - it's too imprecise, too open to misinterpretation: you would need a truly intelligent system (rather than what is called AI these days) to process it and work out what the developer actually meant to do. Heck, I've met developers who can't process a natural language specification and produce what it asked them to do! :laugh:
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony AntiTwitter: @DalekDave is now a follower!
OriginalGriff wrote:
...I'm not convinced that natural language is a good idea for programming - it's too imprecise, too open to misinterpretation...
Just the absence of differentiation between Inclusive OR (IOR) and Exclusive OR (XOR) disqualifies natural language. That's a pretty basic concept that is completely absent.
I'm retired. There's a nap for that... - Harvey
-
Having seen the standard of many "future programmers" - go to QA and get a face full of stupidity - even using "natural language" will be beyond many of them. I'm not convinced that natural language is a good idea for programming - it's too imprecise, too open to misinterpretation: you would need a truly intelligent system (rather than what is called AI these days) to process it and work out what the developer actually meant to do. Heck, I've met developers who can't process a natural language specification and produce what it asked them to do! :laugh:
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony AntiTwitter: @DalekDave is now a follower!
I tend to think the opposite, natural language will become the way computers are programmed - we aren't there yet but it will come. I agree that most natural language can be imprecise, but you can work around this by echoing back in plain english what we think you said in precise terms "Next friday" becomes "Friday the 9th of November". We replaced a very complex data entry screen with 50+ input fields and checkboxes and turned it to english input. End user mistakes have dropped, help desk calls have dropped. To be fair the english parser is super dumb, and we are only using it for very specific domains, not complete programs, but the power is evident. Small first steps, but I can see we could probably build a simple PWA based purely on english if that was our aim. Heck, we even now have an experimental API that takes classic query parameters OR english /people?q=get 5 most recent seen with blue as favourite color. Vs /people?limit=5&order=recentseen&select=favouritecolor(blue) I hate to say it, but it is putting power into end users who aren't programmers. Most end users can look intuitively at previous sentences and understand how to change it. Sure, it cannot handle all the nuances yet, and users learn to phrase in a certain way. When you step right back, isn't a programming language simply another language like english/french/german? Programmers take natural language requirements and translate to C/Java/etc which compilers then translate again to machine code. Of course programmers [should] also have more logical thought patterns than J.Bloggs which is currently still required.
-
Exactly! How many times have you had a conversation with someone when they say "Next Friday..." and you have to define what they mean by the word "Next" or at least confirm by responding in kind adding "Friday next week..." only to find out that they mean "this" Friday. Or when someone uses the word "couple" to mean more than two. Natural language is by it's nature ambiguous and dependent on context.
“That which can be asserted without evidence, can be dismissed without evidence.”
― Christopher Hitchens
-
Daniel Pfeffer wrote:
Apparently, humans do not like can't thinking logically. (at least the big %) :)
FTFY
M.D.V. ;) If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about? Help me to understand what I'm saying, and I'll explain it better to you Rating helpful answers is nice, but saying thanks can be even nicer.
Humans are not logical. But we (most of us) are able to think logically, even though it takes a bit of effort for most people.
Wrong is evil and must be defeated. - Jeff Ello
-
Humans are not logical. But we (most of us) are able to think logically, even though it takes a bit of effort for most people.
Wrong is evil and must be defeated. - Jeff Ello
We are the exception confirming the rule :rolleyes: :rolleyes:
M.D.V. ;) If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about? Help me to understand what I'm saying, and I'll explain it better to you Rating helpful answers is nice, but saying thanks can be even nicer.
-
Ph'nglui mglw'nafh Osmosian R'lyeh wgah'nagl fhtagn. :-\
Did you ever see history portrayed as an old man with a wise brow and pulseless heart, weighing all things in the balance of reason? Is not rather the genius of history like an eternal, imploring maiden, full of fire, with a burning heart and flaming soul, humanly warm and humanly beautiful? --Zachris Topelius Training a telescope on one’s own belly button will only reveal lint. You like that? You go right on staring at it. I prefer looking at galaxies. -- Sarah Hoyt
This answer is the most underrated here. Have an upvote for the mix of Ctuhlu and the hidden reference to the PEC (I won't write in plain text to avoid making advertisement for it).
-
Just as most programmers today warn people not to use assembler, probably future programmers will warn people not to use anything other than natural language. 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: Machine languages Assembly languages 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
There's a distinct possibility we will get to natural language programming. Many of the comments above say that people don't think logically, and that is true. They will not sit down and dictate the entire operation of an application from A to Z flawlessly on their first attempt. The process will be necessarily iterative. Something like this: "Make a page that shows me my stock quotes and the weather." "Put the weather in the top right." "The weather should show the current temperature and the 24 hour forecast for my current location." "For the stocks, show the current trading price for Microsoft and Bill's Sweat Socks from the TSE" "Also show an up/down arrow for the four hour trend" This will take some work, but I don't think we're too far away.
Outside of a dog, a book is a man's best friend; inside of a dog, it's too dark to read. -- Groucho Marx
-
Exactly! How many times have you had a conversation with someone when they say "Next Friday..." and you have to define what they mean by the word "Next" or at least confirm by responding in kind adding "Friday next week..." only to find out that they mean "this" Friday. Or when someone uses the word "couple" to mean more than two. Natural language is by it's nature ambiguous and dependent on context.
“That which can be asserted without evidence, can be dismissed without evidence.”
― Christopher Hitchens
"hanging from the chandelier the man saw a spider" -- who is hanging on the chandelier?
-
Just as most programmers today warn people not to use assembler, probably future programmers will warn people not to use anything other than natural language. 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: Machine languages Assembly languages 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
-
Just as most programmers today warn people not to use assembler, probably future programmers will warn people not to use anything other than natural language. 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: Machine languages Assembly languages 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
Natural language will never be used for programming, because natural language isn't suitable for strict logic. Otherwise, no one would have had to invent symbolic logic. Symbolic logic is the foundation of computing, it's no accident that Turing was a logician. You can't translate logic into natural language without introducing ambiguity, and it's worse trying to go the other way because you're starting with ambiguity.
-
Just as most programmers today warn people not to use assembler, probably future programmers will warn people not to use anything other than natural language. 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: Machine languages Assembly languages 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
-
Just as most programmers today warn people not to use assembler, probably future programmers will warn people not to use anything other than natural language. 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: Machine languages Assembly languages 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
So you've traced the evolution from machine language, to assembly, to high level languages. And you also note why the change occurred. Before I could answer your question, I have to ask why would programming move to a natural language to describe the program? Would natural language programming languages offer any benefit over a high level language? All I see is downsides.
-
Just as most programmers today warn people not to use assembler, probably future programmers will warn people not to use anything other than natural language. 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: Machine languages Assembly languages 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
"Just as most programmers today warn people not to use assembler, probably future programmers will warn people not to use anything other than natural language." - Quantum Robin Please don't go down this rabbit hole. I really don't want to see a resurgence of COBOL...
-
Exactly! How many times have you had a conversation with someone when they say "Next Friday..." and you have to define what they mean by the word "Next" or at least confirm by responding in kind adding "Friday next week..." only to find out that they mean "this" Friday. Or when someone uses the word "couple" to mean more than two. Natural language is by it's nature ambiguous and dependent on context.
“That which can be asserted without evidence, can be dismissed without evidence.”
― Christopher Hitchens