Live data from Hacker News

Systems Past: The software innovations we actually use

davidad.github.io

21–30 of 98 posts

Re: Systems Past: The software innovations we actually use

#21

You want to throw out the OS and programming languages? You think that text is a poor interface for specifying machine behavior? Then show me. Show me something real. Perhaps not text (since text is a dirty word, right?) but something I can install on my machine. If you're going to pull an Emperor's New Clothes, then it's not enough to loudly (and snarkily) proclaim that the emperor has no clothes on - you need to pr…

These arguments probably trace back to the pitfalls of Von Neumann architecture, and the hardcoded expectations of memory and such. It would require experts in very disparate fields (mechanical / electrical engineering, computer engineering, software development, theoretical mathematics, and others) to develop a viable replacement.

I do postulate that we are already kind of warping that model, though. SMP and NUMA force you to question the assumptions and that lead to a lot of the modern changes of tone (functional programming becoming big because asyncs and lambdas are really useful, for example).

Re: Systems Past: The software innovations we actually use

#22
post #4
post #2

This is an outstanding essay -- more fields need this kind of thinking. Plus it's doubly ironic having it in computation, a field that has always seemed determined to ignore history, and reinvent it. A nano nit: Yes, GC came from Lisp, but its first mention was in AI Memo #1 (the first MIT AI Lab working paper) by Minsky. I have a copy someplace -- it was only a few pages long.

I would love to read that if you could post it.

Argh.

http://publications.csail.mit.edu/ai/browse/0000browse.shtml

(It is not there)

Re: Systems Past: The software innovations we actually use

#23

Haven't people been communicating information to other people as text for thousands of years? I'm not so convinced that there's a universally better mechanism for communicating with machines.

Or it could be that it will take another thousand years for us to develop a good language for the new medium. Text took a long time to figure out.

Re: Systems Past: The software innovations we actually use

#24

You want to throw out the OS and programming languages? You think that text is a poor interface for specifying machine behavior? Then show me. Show me something real. Perhaps not text (since text is a dirty word, right?) but something I can install on my machine. If you're going to pull an Emperor's New Clothes, then it's not enough to loudly (and snarkily) proclaim that the emperor has no clothes on - you need to pr…

I'm sad that you got downvoted, though I have a feeling its simply your choice of language, as your points are spot on. This is a wonderfully curated list of where computers have come from. But to go further and claim that we're all somehow fools for not exploring new ideas without offering any overview of what a new idea might look like is disingenuous. Plenty of artists can dream up interfaces like in Minority Repo…

Honestly I feel like this type of viewpoint is one that almost every programmer gets to after about 10 years doing real work. The difference is tact. Some hack out some experiments in new programming paradigms and some post detailed ideas or concepts of how things can be improved, and others just try to gain street cred by just saying everything is obviously shit and we are all fools for not "fixing" things.

Re: Systems Past: The software innovations we actually use

#25
> Virtual memory should have been extended to network resources, but this has not really happened.

I get that we are already operating in heterogeneous virtual memory worlds, but network transactions are so slow. I can't see it being useful to have them as virtual addresses if random reads and writes to network space take literal seconds of round trip. That is so much worse than even disk, there is a reason networking is at most virtual filesystem bound and at least just its own thing above that via URIs.

It really pokes holes in Von Neumann computer models around memory when the memory has heavily disparate access times. You can have networked devices via drivers (like printers) that do have those huge round trip times, or you can have cache hits that give you single digit cycle retrieval. It is NUMA before you even get to the hardware version.

> Reject the notion that one program talking to another should have to invoke some “input/output” API. You’re the human, and you own this machine. You get to say who talks to what when, why, and how if you please. All this software stuff we’re expected to deal with — files, sockets, function calls — was just invented by other mortal people, like you and I, without using any tools we don’t have the equivalent of fifty thousand of. Let’s do some old-school hacking on our new-school hardware — like the original TX-0 hackers, in assembly, from the ground up — and work towards a harmonious world where there is something new in software systems for the first time since 1969.

So if you had a machine executing code - without an operating system - it would need to pull in functions from disk or something whenever they get invoked by another program? And have some means to deduce which function that is, via some mechanism to scan the filesystem to find it. Because you need to discretize out "programs" because each one is inherently insular in its world view. So you just execute dynamic code that invokes other dynamic code.

That sounds like a real big performance hit, though, to have an indirection on every function call to see if its property resident in memory or just fake - at least a conditional every time saying "is this function at 0x00? then it needs to be looked up!".

Re: Systems Past: The software innovations we actually use

#26

You want to throw out the OS and programming languages? You think that text is a poor interface for specifying machine behavior? Then show me. Show me something real. Perhaps not text (since text is a dirty word, right?) but something I can install on my machine. If you're going to pull an Emperor's New Clothes, then it's not enough to loudly (and snarkily) proclaim that the emperor has no clothes on - you need to pr…

Or it could be that the prevalence of this attitude prevents nascent alternatives from receiving adequate support.

Text took thousands of years to develop.

Re: Systems Past: The software innovations we actually use

#28
post #24

Earlier quoted context omitted.

I'm sad that you got downvoted, though I have a feeling its simply your choice of language, as your points are spot on. This is a wonderfully curated list of where computers have come from. But to go further and claim that we're all somehow fools for not exploring new ideas without offering any overview of what a new idea might look like is disingenuous. Plenty of artists can dream up interfaces like in Minority Repo…

Honestly I feel like this type of viewpoint is one that almost every programmer gets to after about 10 years doing real work. The difference is tact. Some hack out some experiments in new programming paradigms and some post detailed ideas or concepts of how things can be improved, and others just try to gain street cred by just saying everything is obviously shit and we are all fools for not "fixing" things.

Well said, sir. Worth noting that this overview of where we've come from and how not far we've come was posted by a fellow is both clearly a genius, and who has his most popular github project written in x64 assembly. So I'd argue that even he sees the merit in the past when attempting to blaze a trail into the future.

For one thing, as long as our computers are binary, they are going to require instructions in a very specific way and anything we put over the top of them will expose that architecture to some degree or another.

Re: Systems Past: The software innovations we actually use

#29
See David Wheeler's page, The Most Important Software Innovations " rel="nofollow">http://www.dwheeler.com/innovation/innovation.html>.

The page has been online and refined for 12 years. It lists things such as the Stack, Packet-Switching Networks, Spelling Checker, Relational Model and Algebra (SQL), and quite a few other useful and important software innovations.

Re: Systems Past: The software innovations we actually use

#30

"ARPAnet is the quintessential computer network. It was originally called “the Intergalactic Computer Network” and ultimately became known as simply “the Internet”." Awesome, I did not know that.

It was something J.C.R. Licklider envisioned in the early 1960s when he was the first director of the Information Processing Techniques Office at ARPA.

https://en.wikipedia.org/wiki/Intergalactic_Computer_Network

M. Mitchell Waldrop delves into the history in his wonderful book about Licklider titled "The Dream Machine". Here's chapter one:

http://www.nytimes.com/2001/10/07/books/chapters/07-1st-wald...

Here's an example of a memo written by Licklider discussing the Intergalactic Computer Network:

http://worrydream.com/refs/Licklider-IntergalacticNetwork.pd...

Post reply on HN