|
The third message contained a link to a cat video that wouldn't be available for another 40 years. They were so forward-looking back then.
|
|
|
|
|
Whippersnapper! I wrote my first program in the summer of 1965, in FORTRAN II on an IBM 1620.
|
|
|
|
|
FORTVER = FORTRAN90 - FORTRAN77 - FORTRANII
IF (FORTVER) 10,20,30
10 CALL FORTRANII()
GOTO 99
20 CALL FORTRAN77()
GOTO 99
30 FORTRAN90()
99 STOP 1
ET phone home now.
|
|
|
|
|
I was at UCSB when the ARPANET was up in mid 70's running on an IMP processor. I used it to run the MIT Math lab remotely and other things. The Culler-Fried (we called it KFC, but his name sounds like Freed ) on-line system used a card-oriented interface (COL, I think, IBM 80 columns) and a math interface (MOLSF). Had a double keyboard with math functions on top, the output was on a Tektronix Storage Oscilloscope. "Clear Screen" was the erase button! Ran all my Fortran simulations on it connected to a 360/75 with real iron-core memory.
|
|
|
|
|
I was a student at MIT at the time. The MIT network (prior to Athena) was ChaosNet and it used TCP to link to the ARPANET.
|
|
|
|
|
|
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 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
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?
|
|
|
|
|
will future programmers take into consideration just as the today programmers should do, that our compiler compiled their compiler?
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.
|
|
|
|
|
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!
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
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
|
|
|
|
|
Even the other way can be a problem - my satnav occasionally tells me to "turn slightly right" which is ... um ... interesting at a T junction.
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
Wish I could give two up-votes for the Christopher Hitchens quote alone...
|
|
|
|
|
"hanging from the chandelier the man saw a spider" -- who is hanging on the chandelier?
|
|
|
|
|
(After over 30 years, we still have to have a conversation every time my wife refers to "next xxxday". It almost always ends up NOT being the next xxxday, but the one after. But I can never assume... )
|
|
|
|
|
So if today is Monday and your wife says "Next Friday", how many days from now is she referencing?
“That which can be asserted without evidence, can be dismissed without evidence.”
― Christopher Hitchens
|
|
|
|
|
Normally, eleven days. She will describe the next Friday (i.e. 4 days time) as "this Friday".
Worse, we miscommunicate daily about dinner time. To me, "dinner" means the main meal of the day, which may occur at either lunchtime or supper time. She says she's meeting a friend for dinner; I have absolutely no idea at what time she might be going out. She can't get her head around my meaning of the word, I still can't - after 30 years - remember whether "dinner" means supper or lunch to her.
|
|
|
|
|
That's interesting, because if today is Monday and I say "Next Friday" I also mean in 11 days time. "This Friday" to me would be four days away as "This" and "Next" refer to the week(as in "Friday this week/this Friday" and "Friday next week/next Friday").
I tend to use lunch and supper, so dinner would confuse me too.
In the UK we also have "tea", if you are middle class "tea" means tea and some sort of cake mid-afternoon. If you are from a working class background "tea" means supper.
“That which can be asserted without evidence, can be dismissed without evidence.”
― Christopher Hitchens
|
|
|
|
|
Sounds perfect for quantum processors, gotta love the observer effect!
"I don't really know what you're saying, but I do feel like I know where you're going with this."
vs
"I know what you're saying, but where are you going with it?"
"Never attribute to malice that which can be explained by stupidity."
- Hanlon's Razor
|
|
|
|
|
COBOL was the first "natural language" programming language. Enough said!
- I would love to change the world, but they won’t give me the source code.
|
|
|
|
|
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
|
|
|
|
|
That's not a fault in natural language per se, more of a shortcoming in English (and possibly many other languages too). In fact the whole "too imprecise" problem is down to the "implementation" of natural language. Maybe we could, I dunno, create some sort of natural language, with its own syntax and structure, that computers could understand without ambiguity? oh... doh.
|
|
|
|
|
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.
|
|
|
|
|
There were attempts during the 1950's and -60's to create Loglan, the first of a series of constructed, unambiguous languages that (presumably) humans and computers could share. The idea never really caught on, not even to the extent that Esperanto (another constructed language) has.
Apparently, humans do not like thinking logically.
Freedom is the freedom to say that two plus two make four. If that is granted, all else follows.
-- 6079 Smith W.
|
|
|
|
|
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.
|
|
|
|