Domain: vpri.org
Stories and comments across the archive that link to vpri.org.
Comments · 20
-
Re:STOP throwing out successful ideas
Nobody seems interested in exploring and developing new standards to make CRUD and productivity applications easier again.
-
Re:Just what the world needed most urgently...
You might be interested in Viewpoint Research Intitute's (headed by Alan Kay) experiments with "language-based code compression". They believe that useful functionality of contemporary software should be expressible in much lesser amount of (much higher-level) source code. I also remember an Adobe executive stating something to the same effect (that, e.g., Photoshop's functionality should be ideally expressible in something like 10000-20000 lines of highly mathematical code).
-
Re:One problem
The *actual* AI equivalent would be working call-by-meaning.
-
Re:Was the Dynabook patented?
A very detailed article about the Dynabook was published in 1972:
http://www.vpri.org/pdf/hc_per...
The PDF makes it sound like an internal Xerox PARC report but it was actually article 1 in ACM '72 Proceedings of the ACM annual conference - Volume 1.
While previous patents are the first thing the US Patent Office looks for in prior art that might invalidate a patent under consideration, an article such as the above counts just as much. A public demonstration of a product would count too. In fact, even if the prior art was produced by the author of the patent it can invalidate it, though there is a grace period (six months or something like that) in the case of the patent's author. I don't know if that has changed in the move from "first to invent" to "first to file" by the USPO.
Once thing that always makes these discussions more confusing than they should be is that there are patents for inventions (how it works) and also patents for designs (how it looks). They are different and how they are invalidated by prior are is different. Since the summary talks about "rounded corners" and stuff like that we might be talking about a design patent.
-
Re:By this argument...
And for neither of the two, we've made any actual leaps as to what we're running on those things. Besides that, people will surely continue to buy new phones... To replace the old ones that got broken. That's still a huge market. Like over a billion units per year.
-
Re:"When everyone can code . . . "
Learning to store values in variables, write "if else" and loops, and call subroutines is ridiculously simple.
This is equivalent to learning the letters of the alphabet. That won't make you a writer, though. Writing classes are about something different.
Learning a dozen frameworks, a hundred "gotchas" in your language of choice, security best practices, database interfaces, GUI libraries, IDE quirks, platform incompatibilities, version control and arcane build systems & toolchains is NOT simple, and I would challenge anyone to learn a modern commercial software dev process in less than 5 years.
I think you're making two major mistakes here. First of all, you're assuming that these things are intrinsic rather than accidental complications of current computing. Some people believe them to be the latter rather than the former. Second, even if this were the case for core computing functionality, there's still a large class of useful programs that does not necessitate the involvement of any such complications into the process of programming. Nobody is calling for turning the population of this world into a nation of low-level programmers by trade. There's a middle ground between that and current casual computer users that multiplies the productivity of computer users considerably.
-
Thanks for the pointer to Minix 3! See also FONC
How workable could it be as a general desktop at this point, like to read email and browse the web? And do some development whether with Eclipse or something else, for C, Java, and JavaScript)?
Does Node.js work on it yet?
http://stackoverflow.com/quest...
"Thanks! I did try getting NodeJS to work in Minix3 but it simply did not work, worked with a couple of guys and there are too many unresolved dependencies and its just a pain... I will try other microkernels and see if I have better luck. Thanks for your reply! -- Purefan Sep 15 '11 at 8:11"Personally, it seems to me we could have a much simpler OS than something UNIX-y based around Forth and Smalltalk somehow... There seems a lot of clutter and inconsistency of naming things in the UNIX world with various abbreviations (especially including command-line programs and their arguments). But perhaps something like Minix as a microkernel could still form a core for that...
Alan Kay's FONC project was a hopeful step in that direction, but I'm not sure it has really delivered more than some interesting experiments?
http://vpri.org/mailman/listin...But Alan Kay's heart is in the right place, regardless of recent outcomes. It would have been fun to work with him and maybe become the next Dan Ingalls!
:-)
http://www.drdobbs.com/article...
"Kay: Yeah. You want to get those from the objects. You want it to be a mini-operating system, and the people who did the browser mistook it as an application. They flunked Operating Systems 101.
Binstock: How so?
Kay: I mean, look at it: The job of an operating system is to run arbitrary code safely. It's not there to tell you what kind of code you can run. Most operating systems have way too many features. The nice thing about UNIX when it was first done is not just that there were only 20 system commands, but the kernel was only about 1,000 lines of code. This is true of Linux also.
Binstock: Yes.
Kay: One of the ways of looking at it is the reason that WYSIWYG is slowly showing up in the browser is that it's a better way of interacting with the computer than the way they first did it. So of course they're going to reinvent it. I like to say that in the old days, if you reinvented the wheel, you would get your wrist slapped for not reading. But nowadays people are reinventing the flat tire. I'd personally be happy if they reinvented the wheel, because at least we'd be moving forward. If they reinvented what Engelbart, did we'd be way ahead of where we are now. " -
Re:ETLA AFU
APL is quite domain-specific. The guys I mentioned are basically working on metalanguages, in order to allow them to describe application domains as succinctly as possible. By way of example, APL could be one specific instance of a result of applying their methods to one specific domain, whereas they're focused on providing the tools for you to do that for an arbitrary domain you're confronted with. In fact, this is their second most recent published paper.
-
VPRI
Obligatory - smart people have been working on it for quite some time. (Although admittedly, their main goal is to prove that common personal computing is ultimately squashable into 20 kLOCs.)
-
Re:It would be interesting
Smalltalk, running on the Alto, definitely had overlapping windows. See for example http://www.vpri.org/pdf/m19770... .
-
FONC: Fundamentals of New Computing -- Alan Kay
From: http://vpri.org/fonc_wiki/inde...
---
We are faced with a need for significant action and the odds are stacked against us. Invention receives no attention, and innovation (even when incorrectly understood) receives lip service in the press but no current-day vehicle exists to to nurture it. This wiki is an open invitation for talented individuals to pool their energy and collaborate towards fundamentally changing computing.Over the years many groups have debated how to make progress in computing. There were likely as many opinions as there were people in the debates. Nevertheless personal accounts suggest that initiatives were sometimes reduced to a handful and then pursued with vigour. Consider what could be achieved by following the same pattern today, with the added benefit of doing it as a virtual, distributed team.
Our goal could be to capture the significant ideas and initiatives that we have been exposed to, are aware of, or can discover, distil them into groups, reduce them to a handful of concepts worthy of vigorous exploration, and focus our efforts on these common ideas with the eventual aim of making substantial progress towards finding a common set of fundamentals of new computing.
---See also: http://vpri.org/fonc_wiki/inde...
A big focus of FONC was in reducing lots of complexity. Smalltalk shows what is possible... But in practice new languages and new standards often just add more complexity to the mix and what we often need are better tools for dealing with complexity. And community and trends mean a lot too, as does hireability and ubiquity and easy installability. So, again, in practice, I'm moving to JavaScript with conceptually simple backends (even in, yikes, PHP) -- inspired in part by Dan Ingall's own work with the Lively Kernel which shows what is possible as near-zero-effort-to-install JavaScript apps.
My own thoughts on FONC from 2010:
"fonc] On inventing the computing microscope/telescope for the dynamic semantic web"
https://www.mail-archive.com/f...
---
Biology made a lot of progress by inventing the microscope -- and that was done way before it invented genetic engineering, and even before it understood there were bacteria around. :-)What are our computing microscopes now? What are our computing telescopes? Are debuggers crude computing microscopes? Are class hierarchy browsers and package managers and IDEs and web browsers crude computing telescopes?
Maybe we need to reinvent the computing microscope and computing telescope to help in trying to engineer better digital organisms via FONC?
:-) Maybe it is more important to do it first? ...It's taken a while for me to see this, but, with JavaScript, essentially each web page can be seen like a Smalltalk ObjectMemory (or text-based image like PataPata writes out). While I work towards using the Pointrel System to add triples in a declarative way, in practice, the web of calling cgi scripts at URLs is a lot like message passing (just more like the earlier Smalltalk-72 way without well-defined syntax). So, essentially, a web of HTML pages with JavaScript and CGI on servers is like the Smalltalk system written large.
:-) Just in a very ad hoc and inelegant way. :-)---
-
FONC: Fundamentals of New Computing -- Alan Kay
From: http://vpri.org/fonc_wiki/inde...
---
We are faced with a need for significant action and the odds are stacked against us. Invention receives no attention, and innovation (even when incorrectly understood) receives lip service in the press but no current-day vehicle exists to to nurture it. This wiki is an open invitation for talented individuals to pool their energy and collaborate towards fundamentally changing computing.Over the years many groups have debated how to make progress in computing. There were likely as many opinions as there were people in the debates. Nevertheless personal accounts suggest that initiatives were sometimes reduced to a handful and then pursued with vigour. Consider what could be achieved by following the same pattern today, with the added benefit of doing it as a virtual, distributed team.
Our goal could be to capture the significant ideas and initiatives that we have been exposed to, are aware of, or can discover, distil them into groups, reduce them to a handful of concepts worthy of vigorous exploration, and focus our efforts on these common ideas with the eventual aim of making substantial progress towards finding a common set of fundamentals of new computing.
---See also: http://vpri.org/fonc_wiki/inde...
A big focus of FONC was in reducing lots of complexity. Smalltalk shows what is possible... But in practice new languages and new standards often just add more complexity to the mix and what we often need are better tools for dealing with complexity. And community and trends mean a lot too, as does hireability and ubiquity and easy installability. So, again, in practice, I'm moving to JavaScript with conceptually simple backends (even in, yikes, PHP) -- inspired in part by Dan Ingall's own work with the Lively Kernel which shows what is possible as near-zero-effort-to-install JavaScript apps.
My own thoughts on FONC from 2010:
"fonc] On inventing the computing microscope/telescope for the dynamic semantic web"
https://www.mail-archive.com/f...
---
Biology made a lot of progress by inventing the microscope -- and that was done way before it invented genetic engineering, and even before it understood there were bacteria around. :-)What are our computing microscopes now? What are our computing telescopes? Are debuggers crude computing microscopes? Are class hierarchy browsers and package managers and IDEs and web browsers crude computing telescopes?
Maybe we need to reinvent the computing microscope and computing telescope to help in trying to engineer better digital organisms via FONC?
:-) Maybe it is more important to do it first? ...It's taken a while for me to see this, but, with JavaScript, essentially each web page can be seen like a Smalltalk ObjectMemory (or text-based image like PataPata writes out). While I work towards using the Pointrel System to add triples in a declarative way, in practice, the web of calling cgi scripts at URLs is a lot like message passing (just more like the earlier Smalltalk-72 way without well-defined syntax). So, essentially, a web of HTML pages with JavaScript and CGI on servers is like the Smalltalk system written large.
:-) Just in a very ad hoc and inelegant way. :-)---
-
Re:Slew of missing business applications
There is a slew of missing applications for industry verticals where there is no race to the bottom.
Yeah, e.g., the software for the translation industry is an utter joke. Or a crapfest, whatever you prefer.
It may be that general audience horizontal applications aren't the best place for small teams
http://www.vpri.org/ would probably disagree on that.
:-) -
Re:Foundation
As others have said, what other kind of algebra is there?
What I had in mind was the transition from the pre-18th/pre-19th century algebra which studied mostly the properties of numbers (see Devlin's "everything you learned in high school math is more than two and a half centuries old") to the modern branches that study the properties of mathematical structures in general, including itself (with important consequences for the properties and compositionality of computer programs themselves).
But more to the point, the obsession with the declarative programming paradigm is one of the things holding programming back
What are you referring to by "the declarative programming paradigm", and what are you contrasting it with?
But more to the point, the obsession with the declarative programming paradigm is one of the things holding programming back. Algebra is a core part of classical mathematics and therefore is an underlying component of all mathematical thought. Deterministic problem solvers are a standard tool in research, but it's a black art as far as most programmers are concerned. Worse, many consider it somehow "not real programming" on grounds of being unoptimised.
You sound like you'd probably like the VPRI papers (and the research itself, of course).
-
Future already here but unevenly distributed
"Yep. That goes a long way towards explaining the complete lack of innovation in the computer industry. Basically nothing has improved or even changed in the last 30 years."
More true than one might think at first: http://developers.slashdot.org/story/13/08/09/1641249/back-to-the-future-of-programming
See also:
"The Real Computer Revolution Hasn't Happened Yet" by Alan Kay
http://www.vpri.org/pdf/m2007007a_revolution.pdf
http://archive.cra.org/Activities/grand.challenges/kay.pdf
http://www.youtube.com/watch?v=oKg1hTOQXoYPersonally, cross-platform reasonable speedy VisualWorks Smalltalk from the 1990s in many ways still has not been surpassed (except in the sense it was not free and open source and somewhat lesser stuff like Python and now Java is). The Newton's 1990s view of a PDA with integrated soups of data is still (in some ways) advanced beyond Android. Or from:
http://inventors.about.com/od/istartinventions/a/internet.htm
"Vannevar Bush first proposed the basics of hypertext in 1945 [in "As We May Think"]. Tim Berners-Lee invented the World Wide Web, HTML (hypertext markup language), HTTP (HyperText Transfer Protocol) and URLs (Universal Resource Locators) in 1990."
Project Xanadu was around in the 1980s doing Hypertext, inspired by Theodore Sturegon's 1950 short story "The Skills of Xanadu".Don't confuse the eventual implementation of part of old ideas (like Kay's 1970s DynaBook vision being realized in part in today's laptops and smartphones) with the notion of conceptual progress.
Even much of robotics and AI is just old ideas finally being more workable with better hardware.
http://www.transhumanist.com/volume1/moravec.htm
"The stupendous growth and competitiveness of the computer industry is one reason. A less appreciated one is that intelligent machine research did not make steady progress in its first fifty years, it marked time for thirty of them! Though general computer power grew a hundred thousand fold from 1960 to 1990, the computer power available to AI programs barely budged from 1 MIPS during those three decades. "Still, it is also true there are no doubt many innovations now lurking here or there for which we have not yet hear much of. As WIlliam Gibson said:
http://www.goodreads.com/quotes/681-the-future-is-already-here-it-s-just-not-evenly
"The future is already here â" it's just not evenly distributed."Much of what young kids are interested in is what they have seen in movies, read in stories, or played with in games, and so on. True, they may sometimes put things together in new ways. But its still very often old, old ideas they are working with.
-
Re:Fanboy attack
Actually looking at his gripes, and they are so far and away from legitimate that there is a very valid argument to be made that he's full of shit.
Actually, if you read the papers at the VPRI site, his gripes are so close to being legitimate that there is a very valid argument to be made that you are full of shit.
This has been absolutely done by the iPad and other tablets. People love to make the claim you can not create content on the iPad but its been proven time and again for the most part to be false beyond a few exceptions you can create just fine.
OK, show me the VPRI system implementation for the iPad. I suspect that Apple would never, EVER allow such a system to be distributed through their channels.
It shows a blatent misunderstanding of the app store, and reasons behind it.
And this shows your blatant misunderstanding of the Dynabook idea, and the reasons behind it. It was supposed to make it not only possible for you to easily create stuff, including new behavior (code), but also to make it as simple for two people to exchange digital stuff as is the exchange of books between the same two people in a room.
-
Re:Cheap labor trained with tax dollars
If there was a shortage, people wouldn't be getting fired for being over 30. People who actually can program wouldn't be blown off for interviews after applying because they didn't have every keyword on their resume.
People like Alan Kay keep pointing out that this is not about you knowing or not knowing Java or Cobol. This is about the vast majority of programmers (and their superiors) suffering from extreme tunnel vision, leading to the absolutely atrocious software ecosystem that we have to live with right now, negating most of the progress made by HW folks ("SW is getting slower faster than HW gets faster"). Kay and his buddies are trying to bring some remedy in form of their research at VPRI.
No matter how many pages you have on your resume, in their words, the things you're doing in your job are like "driving a car by looking into the rear mirror all the time". The world needs people unspoilt by the idea that a useful software system needs to have millions of lines of code with enlessly repeated functionality and impredance-matching boilerplate everywhere. Otherwise, no progress is possible. For that, you absolutely need young people.
-
Instructions for language virtual machines
On 6) instructions for virtual machines, there are probably many good ideas for this. One thing I've wanted since implementing my first VM in the early 1980s is to have a way to tell a processor to interpret a sequence of virtual instructions (8 or 16 bit) as calls to a jump table of real instructions. Or perhaps the instructions could be wider (like 64 bit or 128 bit) with extra data beyond the first 8 or 16 bits as a jump indirection being loaded automatically into registers. There would then be instructions to process the next virtual instruction or perhaps to jump to some toerh virtual instruction. This approach is somewhat analagous to "microcode" in the sense that you are defining what virtual instructions do. This kind of support would remove the inner loop speed penalty of a lot of interpretation which can cause programming language virtual machines to run several times slower than native code. I've long thought proprietary CPU vendors would never add such a feature since it makes CPU families more easily interchangeable.
You could talk to people who implement Forth, Smalltalk, and Java language VMs for some general ideas in this direction as well, as a broader area of dynamic language support. In particular, better support for dynamic stack frames (which are objects in themselves in Smalltalk, but usually can be on the CPU stack) could make a language like Smalltalk run faster. Anything that improved support for Smalltalk-like message passing would be a good thing. Basically, ask Chuck Moore, Dan Ingalls or the FONC project what he would like to see.
http://en.wikipedia.org/wiki/Charles_H._Moore
http://en.wikipedia.org/wiki/Daniel_Henry_Holmes_Ingalls,_Jr.#Work
http://vpri.org/mailman/listinfo/fonc -
Re:Open Source
Well, you could start with a "hello world!" operating system:
http://www.vpri.org/fonc_wiki/index.php/XO_Hacking
Seriously, it's a lot easier to build a bomb that can kill a few thousand civilians (air burst fuel-air explosives anyone?), than a rocket that can take out a stealth UAV before it's able to take you out.
On the other hand, if the "bad guys" had access to real weapons, maybe they'd kill some politicians, generals and CEOs rather than infantry and civilians (on "both" sides)
... -
Colas: Coke, Pepsi and Jolt point a way forward
Ian Piumarta and the VPRI [http://vpri.org] are doing some amazing work related to this story.
COLAs: Combined Object Lambda Architectures - A Complete System in 20,000 Lines of Code.
http://piumarta.com/software/cola
The system is slowly evolving towards version 1.0 which
* is completely self-describing (from the metal, or even FPGA gates, up) exposing all aspects of its implementation for inspection and incremental modification;
* treats state and behaviour as orthogonal but mutually-completing descriptions of computation;
* treats static and dynamic compilation as two extremes of a continuum;
* treats static and dynamic typing as two extremes of a continuum; and
* late-binds absolutely everything: programming (parsing through codegen to runtime and ABI), applications (libraries, communications facilities), interaction (graphics frameworks, rendering algorithms), and so on.http://piumarta.com/papers/colas-whitepaper.pdf
http://piumarta.com/papers/EE380-2007-slides.pdf
http://piumarta.com/pepsi/objmodel.pdf
http://www.vpri.org/html/work/NSFproposal.pdfAllen Wirfs-Brock and Dan Ingalls are currently working on bringing notions like Colas to the browser so that we can use any programming language WE choose to for our browser based applications. Check out their interview here.
http://channel9.msdn.com/posts/Charles/Dan-Ingalls-and-Allen-Wirfs-Brock-On-Smalltalk-Lively-Kernel-Javascript-and-Programming-the-Inter/