Domain: mactech.com
Stories and comments across the archive that link to mactech.com.
Comments · 71
-
Re:technical aspects of Copland/NuKernel
I posted it above, but take a look at the Copland article in Apple's develop Tech Journal. -
Re:Mac tech promised, demo'd, here-and-gone, whate
Here's the archive of Apple's official Hotsauce (aka Project X) homepage, which is what you're thinking of. Yeah, even Yahoo was up on the Meta-Content Framework deal.
V-Twin was the basis for the summarize feature, I think there's still an SDK up for it.
Personally, I liked PowerTalk. A system-wide, integrated mail and collaboration framework with a standardized mailing interface.
Even if the implementation is done with LDAP, PGP, and Sendmail now, I really wish they'd bring back those APIs for application code. The "digital signing" concept integrated into the API was better integrated than Apple File Security in Mac OS 9, and better than anything in OS X right now. Remember being able to verify a document's signiature from the Get Info window? The Keychain is the only concept that survived.
QuickDraw GX ( here or here) was WAY ahead of its time. Although a lot of its features found their way into ATSUI with Unicode, QDGX still had soul. I still don't know of any program that can do all the really really fancy and obscure ligatures properly.
Probably my FAVORITE technology was/is Apple Guide. There's nothing quite like a help system that draws coach marks on the screen when telling you how to perform a step. That plus hilighting proper menu options in red, and the fact that it wasn't glacially slow once it became PowerPC native, made it a really amazing conversion tool.
Balloon Help was quirky and fun. I don't really understand why they replaced something so cool with something as lame as Tooltips. =(
QuickDraw 3D and Apple Data Detectors had some cool concepts too. Maybe we should get them to re-write Data Detectors using Perl regexps :)
Arrgh.. the OS that Could Have Been... Try the old Apple Advanced Technology Research Group website for more stuff. -
Re:Mac tech promised, demo'd, here-and-gone, whate
Here's the archive of Apple's official Hotsauce (aka Project X) homepage, which is what you're thinking of. Yeah, even Yahoo was up on the Meta-Content Framework deal.
V-Twin was the basis for the summarize feature, I think there's still an SDK up for it.
Personally, I liked PowerTalk. A system-wide, integrated mail and collaboration framework with a standardized mailing interface.
Even if the implementation is done with LDAP, PGP, and Sendmail now, I really wish they'd bring back those APIs for application code. The "digital signing" concept integrated into the API was better integrated than Apple File Security in Mac OS 9, and better than anything in OS X right now. Remember being able to verify a document's signiature from the Get Info window? The Keychain is the only concept that survived.
QuickDraw GX ( here or here) was WAY ahead of its time. Although a lot of its features found their way into ATSUI with Unicode, QDGX still had soul. I still don't know of any program that can do all the really really fancy and obscure ligatures properly.
Probably my FAVORITE technology was/is Apple Guide. There's nothing quite like a help system that draws coach marks on the screen when telling you how to perform a step. That plus hilighting proper menu options in red, and the fact that it wasn't glacially slow once it became PowerPC native, made it a really amazing conversion tool.
Balloon Help was quirky and fun. I don't really understand why they replaced something so cool with something as lame as Tooltips. =(
QuickDraw 3D and Apple Data Detectors had some cool concepts too. Maybe we should get them to re-write Data Detectors using Perl regexps :)
Arrgh.. the OS that Could Have Been... Try the old Apple Advanced Technology Research Group website for more stuff. -
Re:Mac tech promised, demo'd, here-and-gone, whate
Here's the archive of Apple's official Hotsauce (aka Project X) homepage, which is what you're thinking of. Yeah, even Yahoo was up on the Meta-Content Framework deal.
V-Twin was the basis for the summarize feature, I think there's still an SDK up for it.
Personally, I liked PowerTalk. A system-wide, integrated mail and collaboration framework with a standardized mailing interface.
Even if the implementation is done with LDAP, PGP, and Sendmail now, I really wish they'd bring back those APIs for application code. The "digital signing" concept integrated into the API was better integrated than Apple File Security in Mac OS 9, and better than anything in OS X right now. Remember being able to verify a document's signiature from the Get Info window? The Keychain is the only concept that survived.
QuickDraw GX ( here or here) was WAY ahead of its time. Although a lot of its features found their way into ATSUI with Unicode, QDGX still had soul. I still don't know of any program that can do all the really really fancy and obscure ligatures properly.
Probably my FAVORITE technology was/is Apple Guide. There's nothing quite like a help system that draws coach marks on the screen when telling you how to perform a step. That plus hilighting proper menu options in red, and the fact that it wasn't glacially slow once it became PowerPC native, made it a really amazing conversion tool.
Balloon Help was quirky and fun. I don't really understand why they replaced something so cool with something as lame as Tooltips. =(
QuickDraw 3D and Apple Data Detectors had some cool concepts too. Maybe we should get them to re-write Data Detectors using Perl regexps :)
Arrgh.. the OS that Could Have Been... Try the old Apple Advanced Technology Research Group website for more stuff. -
Re:Mac tech promised, demo'd, here-and-gone, whate
Here's the archive of Apple's official Hotsauce (aka Project X) homepage, which is what you're thinking of. Yeah, even Yahoo was up on the Meta-Content Framework deal.
V-Twin was the basis for the summarize feature, I think there's still an SDK up for it.
Personally, I liked PowerTalk. A system-wide, integrated mail and collaboration framework with a standardized mailing interface.
Even if the implementation is done with LDAP, PGP, and Sendmail now, I really wish they'd bring back those APIs for application code. The "digital signing" concept integrated into the API was better integrated than Apple File Security in Mac OS 9, and better than anything in OS X right now. Remember being able to verify a document's signiature from the Get Info window? The Keychain is the only concept that survived.
QuickDraw GX ( here or here) was WAY ahead of its time. Although a lot of its features found their way into ATSUI with Unicode, QDGX still had soul. I still don't know of any program that can do all the really really fancy and obscure ligatures properly.
Probably my FAVORITE technology was/is Apple Guide. There's nothing quite like a help system that draws coach marks on the screen when telling you how to perform a step. That plus hilighting proper menu options in red, and the fact that it wasn't glacially slow once it became PowerPC native, made it a really amazing conversion tool.
Balloon Help was quirky and fun. I don't really understand why they replaced something so cool with something as lame as Tooltips. =(
QuickDraw 3D and Apple Data Detectors had some cool concepts too. Maybe we should get them to re-write Data Detectors using Perl regexps :)
Arrgh.. the OS that Could Have Been... Try the old Apple Advanced Technology Research Group website for more stuff. -
Apple's "develop" article on Copland
For those of who weren't programming Macs back in the Day (remember APDA?), Apple had an award-winning quarterly technical journal called "develop" which had lots of neat articles in it with a fun and offbeat tone. Sort of like O'Reilly and Associates has now. They stopped putting it out in '97 amid all the hemoraging, but all the issues are available here.
Anyway, there's a pretty informative article explaining all about Copland here. -
Apple's "develop" article on Copland
For those of who weren't programming Macs back in the Day (remember APDA?), Apple had an award-winning quarterly technical journal called "develop" which had lots of neat articles in it with a fun and offbeat tone. Sort of like O'Reilly and Associates has now. They stopped putting it out in '97 amid all the hemoraging, but all the issues are available here.
Anyway, there's a pretty informative article explaining all about Copland here. -
Great programming environmentI played with Newton development and it was a truly great development environment. The NewtonScript Programming Language, influenced by Self, is a a beautiful, elegant language based on prototypes. The view system, which runs the display, makes it really easy to to customize user interfaces. The Newton Toolkit in it's day was a ground breaking IDE. Newton supported persistant objects.
The Newton group actually thought about and did user testing on their interface, then published interface standards. Unlike most OSes
Sigh. I spend so much of my professional life dealing with poorly thought out languages/systems that I look back very fondly on the Newton.
Actually I still use two of them. One is in the kitchen - I use it to keep track of groceries I need. The other sits by my desktop machine for taking notes.
-
Your agenda, CmdrTacoIf only you had read the article, CmdrTaco. According to http://www.mactech.com/news/mt-news-detail.mgi?id
= 0000064bb918b85d (which is the link you gave):In this rare public appearance, he'll join MacHack's crowd of developers for a lively discussion that will range from his adventures building the online community that Slashdot has become to open source issues and where ever else the freeform gathering might lead.
I know you guys don't follow links to stories but this is a little ridiculous. But, now you know what to do. -
Re:another Linux user's experiences with OSX
-
Re:Where's the innovation?
There once was a truly innovative new spreadsheet that was only available for the Macintosh called Spreadsheet 2000. It was originally made by Casady & Greene but was handed over to another company when it matured. It came out at the time when the Macintosh almost folded, and is now nearly forgotten.It was truly amazing. It featured a canvas to which one could paste spreadsheets. Then one could draw relations between sheets, specifying mathematical operations to be done in the relations. Sets of relations could be grouped to build custom relations that worked just like the ones that came with the program. I don't know if it was very intuitive, I know I am no mathematician but I got the hang of it pretty quickly. It felt highly scaleable too.
I wish somebody would implement it for Linux (or the MacOS X
:) That would not be innovation either I suppose since the idea is not new, but it sure would be a Good Thing all the same. -
Re:Be careful!
The SAMS book "Carbon Programming" is just a dead-tree version of the awesome text "Macintosh C Carbon - A Hobbyist's Guide To Programming the Mac OS in C" by K.J.Bricknell (which is a followup to an older Toolbox version by the same author, called "Macintosh C") and the entire book can be browsed online in HTML or downloaded as PDF for absolutely free (no registration required). Good writing and plenty of sample code included.
-
A few good linksPowerPC
Lightsoft: Beginners Guide to PowerPC Assembly Language
March 95 - Balance of Power: Introducing PowerPC Assembly Language
The Metroworks Code Warrior documentation also has some helpful stuff. I found a copy online a while ago, but it's gone now.
-
A few good linksPowerPC
Lightsoft: Beginners Guide to PowerPC Assembly Language
March 95 - Balance of Power: Introducing PowerPC Assembly Language
The Metroworks Code Warrior documentation also has some helpful stuff. I found a copy online a while ago, but it's gone now.
-
Rational Programming vs Semantic WebAs I posted to Slashdot a year ago on the topic:
The future of the Internet is in what I call "rational programming" derived from a revival of Bertrand Russell's Relation Arithmetic. Rational programming is a classically applicable branch of relation arithmetic's sub theory of quantum software (as opposed to the hardware-oriented technology of quantum computing). By classically applicable I mean it is applies to conventional computing systems -- not just quantum information systems. Rational programming will subsume what Tim Berners Lee calls the semantic web. The basic problem Tim (and just about everyone back through Bertrand Russell) fails to perceive is that logic is irrational. John McCarthy's signature line says it all about this kind of approach: "He who refuses to do arithmetic is doomed to talk nonsense." More on this a bit later, but first some history, because he who fails to learn from history is doomed to repeat its nonsense:
When I invented the precursor to Postscript (an audacious claim that I can back up -- it started as a replacement for NAPLPS which I proposed while Manager of Interactive Architectures for Viewdata Corp of America back in November of 1981 -- the Xerox PARC guys found my approach of what they called a "tokenized Forth" communication protocol to be an intriguing way to encode text and graphics), I was interested in having a Forth virtual machine migrate into silicon (ala Novix) so it could evolve from mere graphics rendering into a distributed Smalltalk VM environment (ala Squeak) as videotex terminal/personal computer capacities increased. But I was _not_ interested in object-oriented programming as the long-term semantics of distributed programming environments. (I still have some of the hardcopy of the communiques with Xerox PARC and others from this period.)
Rather, relational semantics were what I saw as the ultimate direction for distributed programming. I had a bit of a go at Tony Hoare's "communicating sequential processes" paradigm and its Transputer realization because he was, at least, starting with the hard problem of parallelism rather than making like the drunk looking for his keys under the light post the way everyone else seemed to be doing (and still are, save for Mozart, since threads, etc. are always an afterthought). But, because there were other hard problems like abstraction, transactions and persistence that he ignored, I christened his approach "Occam's Chainsaw Massacre" in my communiques (in honor of his distributed programming language "Occam") and dropped it in favor of relational programming, which has inherent parallelism resulting from both dependency and indeterminacy. (BTW: Dr. Hoare seems to have finally come to his senses about this issue.)
Unfortunately, the only researcher doing hardcore work on relational programming (meaning, getting to the root of relational semantics in a way that Codd had failed to do) at the time was Bruce MacLennan, then, of The Naval Postgraduate School, and he just didn't have the glamour of Alan Kay at places like Xerox PARC to attract the attention of guys like Steve Jobs. Bruce had a bit of a blind-spot, too, when it came to transactions and persistence, which I attempted to remedy by bringing David P. Reed's work on distributed transactions for the ARPAnet to him, but although he wrote a white paper on a predicate calculus (close to a relational) implementation of Reed's thesis (MIT/LCS/TR-205), he didn't really "get it", IMHO. Reed and MacLennan abandoned their work for other pursuits (ironically, Reed was chief scientist at Lotus while Notes was being developed but did not contribute his ideas on distributed synchronization to that development despite the fact that we had a mutual acquaintance from my Plato days by the name of Ray Ozzie -- so, I share some of the blame for this failure) even as Steve Jobs botched the embryonic object oriented world by abandoning Smalltalk and giving us, instead, a lineage consisting of Object Pascal on the Lisa/Mac which begat Objective C on Jobs's NeXT which begat Java at Sun via Naughton and Gosling's experience with NeXT.
This brings us to the present -- a world in which Javascript-based technologies like Tibet promise to not only salvage the object oriented aspect of the Internet from the birth defects of Jobs's spawn, but actually provide an advance over Smalltalk in the same lineage as CLOS and Self. But it is also a world in which there is growing confusion over the proper role of "metadata" in the form of XML -- particularly when it comes to speech acts and distributed inference. I would call Tibet "the next major Internet advance" except for the fact that the basic idea for a Tibet-like system has been around and well understood since the early 1980's. When it is finally released, Tibet (or a system like it) will put the Internet back on track. I call that a "recovery", not an "advance".
We are now poised to move forward with type inference based on full blown inference engines, thereby dispensing with the nonterminating arguments over statically vs dynamically typed languages that allowed Steve Jobs's spawn to get its nose in the tent. If you want to declare a "type" in a declarative language, just make another declaration and let the inference engine figure out what it can do with that information prior to run time. See how easy that was? Well, there is more to it than that, but not that much: Assertions have implications and assertions made prior to run time have implications prior to run time. Live with it and don't repeat the mistakes of the past.
The confusion over semantic webs, and the reason Berners Lee et al will fail, is essentially the same as the confusion that has beleaguered all inferential systems such as logic programming and "artificial intelligence" over the years: logic is irrational and the real world demands rationality -- otherwise nothing makes sense. By "rationality" I mean that reasoning must literally incorporate "ratios" -- or, as John McCarthy would put it, doing arithmetic so things make sense. By making sense, I mean there is a sense in which one interprets the sea of assertions that clearly dominates for a particular purpose. With logic not only are you limited to 0 and 1 as effective quantities; you have no adequate theoretic basis from which to derive more accurate quantities with which to make sense by taking ratios and determining which inferences are dominant.
Fuzzy logic and expert systems incorporating probabilities have typically failed because they are not based in the first principles of probability and statistics. As Gauss, the premiere probability theorist put it, "Mathematics is the study of relations." He didn't say, "Mathematics is the study of multisets." There are good reasons that relational databases, and not set manipulation languages, have come to dominate business applications -- and Gauss was aware of these differences when he began to derive his laws of probability. Subsequent axiomatizations of mathematics based on set theory were similarly misguided and have led to the idea that "fuzzy sets" are the way to introduce rationality into programming. Rather than sets, relations are the foundation, not just of mathematics but of rationality in the same sense that Gauss realized when he derived his theory of probability from the study of relations.
Rationality allows for judgment which is recognized as inherently fallible -- but which allows one to procede without exponentiating all possible paths of inference. Judgment also allows various identities to limit sharing of information to that needed -- thereby creating speech acts and a basis for rational measures of credibility associated with those identities. Since credit-rating is a degeneration of credibility, it should come as no shock that the invention of negative numbers, originating as they did with the Arabic invention of double entry account keeping, has its analog in something that might be called "logical debt" with which negative probabilities are associated.
And now we have come to the "quantum" aspect of rational programming. It is precisely the "credibility debt" aspect of rational programming that corresponds, in mathematical detail, to the various equations of quantum mechanics and their negative probability amplitudes. (Von Neumann's quantum logic failed to properly incorporate logical debt which has led to much confusion.) Logical debt is important to distributed programming for the same reason debt is important to financial networks. Logical debt is a way of handling poor synchronization of information flow in the same way that financial debt is a way of handling poor synchronization of cash flow. As in any rational system, there are both limits to credit and limits to credibilty that influence one's judgments and actions, including speech acts.
The object oriented folks may, in a sense, have the last laugh here because when we divide up inference into identities that engage in speech acts, we are reintroducing the notion of objects that hide information via exchange of speech act messages that can be thought of as "setters" (assertions) and "getters" (queries). However, I believe it is only fair to recognize that the excellent intuitions of Johan Dahl and Kristen Nygaard did need the added insights and rigor of philosophers like J. L. Austin and T. Etter.
-
No voice command?
At the prices they mention, they still need a remote control or some kind of touchpad/touchscreen to control the system (I only read Larry Ellison and Scott Jones, though). Isn't it much better to have in-wall microphones and voice recognition software? I can do this with my old PowerMac already: "Computer, lights!" (with X10 interface of course). The latest MacTech even has an article for the do-it-yourself voice-command home automation.
-
Re:Apple MouseCan you describe the 'Mac File Open dialog box' for me?
nav services offers two: the old and the new. The new has the favourites menu on it and optional previews of everything (ha!) the old is the pared down one with the path menu and the finder-viewer. It is possible to write non-nav-services-compliant boxes... and people do.
recently added (I think like 8.blah or so) 'alt-tab' functionality?
It's command-tab actually and, no, I turned it off as several of the graphics programs I use offer scrolling through the toolbar on that keyset. I may not like it but it always works (unless you turn it off). Why not just run your app floaty menu thingy?
Bare Bones may make a good application (BBEdit) but they are lousy when it comes to a truly effective interface
no kidding. Their fonts and tabs menu option alone is such a wild violation of the human interface guidelines that there might be jail time served. I use codewarrior for what folks normally use bbedit for. No grep, but the syntax is coloured!
I guess Apple never though anyone would need to run more than one (or two) apps at once.
Again, I'll sing the praises of the app tab. Pictures or words place it wherever you want. A great thing I say.
It suprises me that a company that parades its 'UI' so much that they appear to not offer a sufficient API for their developers to build applications that are consistent.
Well, there's the appearance manager. If you want a gob of info on it here is a good place to start. After that you're into inside mac and TIL's.
I have two workstations on my desk. A Mac and a Linux workstation.
I have a mac and a solaris box on my desk and, as much as I think Solaris is a good thing, really KDE and CDE and (worst of all) openwin do nothing more for me than make me want to use my mac for anything that vaguely represents file management.
-
Re:I couldn't find how to change the MTU
I've found a third-party commercial addon that will do it by dynamically messing with the kernel, but that is hardly an acceptable way of doing it
The *NIX admin in me shudders at the thought of this as well; however, this is not harmful in the Mac environment(if the developer is careful), and is quite common practice. Since the Mac, for better or worse, has never had unprotected memory, it's a common practice to patch the OS to make it behave differently from the way that Apple designed it. Apple built this ability into the Mac OS from the day it was first built. INITs & CDEVs (or Extensions and Control Panels as they've been known since System 7) have been available to customize your computer in multitudes of ways. Everything from patching the Disc Eject routine to play a vomiting sound when ejecting a disc, to useful things like changing the Menu names to being little Icons that didn't take up as much space, or putting a clock into your menubar.
Don't want to rely on someone else's utility to edit your MTU, why not write your own?
Here's your API Documentation:
http://developer.apple.com/techpubs/macos8/Network CommSvcs/OpenTransport/opentran sport.html
Here's the Open Transport (the Mac's TCP/IP stack) SDK & Example Code: ftp://ftp.apple.com/developer/Development_Kits/Ope nTransport/OT2.6/Open_Tra nsport_SDK_2.6.img.bin
Here's a good introduction to Mac Programming:
http://www.mactech.com/Macintosh-C/
Pesky bugs annoying you? Here are a few debuggers:
http://developer.apple.com/tools/debugg ers/
Oh, and here's your free (Gratis) Compiler:
http://developer.apple.com/tools/mpw-to ols/
It can be done.
flames > /dev/null
"mac suck" > /dev/null
Intelligent content > /dev/console -
Good intro to Mac programmingA very good introduction to Mac programming (from what I've read so far -- I've only gotten through Chapter 4) is Macintosh C, a book available free on the Net in HTML, MS Word, and PDF formats. In the preface, K. J. Bricknell (the author) describes his purchasing hundreds of dollars' worth of reference books, then says:
Professionals, I concluded, need Inside Macintosh, but the beginning hobbyist needs a gentler (and, above all, cheaper) introduction to all this complexity. Having arrived at that conclusion, I decided to turn my notes into a full-blown manual in the belief that I just might be able to save other amateurs from what many would regard as cruel, unusual, and pocketbook-depleting punishment. Macintosh C, then, represents my attempt to provide an easier and more economical entry point to Macintosh programming for the beginning hobbyist.
The book assumes you already know how to program in C, but know nothing about the details of the Macintosh API. I highly recommend it to anyone who wants to get started writing open-source software for the Mac.
-----
The real meaning of the GNU GPL: -
Rational Programming is Not an OxymoronThe future of the Internet is in what I call "rational programming" derived from a revival of Bertrand Russell's Relation Arithmetic. Rational programming is a classically applicable branch of relation arithmetic's sub theory of quantum software (as opposed to the hardware-oriented technology of quantum computing). By classically applicable I mean it is applies to conventional computing systems -- not just quantum information systems. Rational programming will subsume what Tim Berners Lee calls the semantic web. The basic problem Tim (and just about everyone back through Bertrand Russell) fails to perceive is that logic is irrational. John McCarthy's signature line says it all about this kind of approach: "He who refuses to do arithmetic is doomed to talk nonsense." More on this a bit later, but first some history, because he who fails to learn from history is doomed to repeat its nonsense:
When I invented the precursor to Postscript (an audacious claim that I can back up -- it started as a replacement for NAPLPS which I proposed while Manager of Interactive Architectures for Viewdata Corp of America back in November of 1981 -- the Xerox PARC guys found my approach of what they called a "tokenized Forth" communication protocol to be an intriguing way to encode text and graphics), I was interested in having a Forth virtual machine migrate into silicon (ala Novix) so it could evolve from mere graphics rendering into a distributed Smalltalk VM environment (ala Squeak) as videotex terminal/personal computer capacities increased. But I was _not_ interested in object-oriented programming as the long-term semantics of distributed programming environments. (I still have some of the hardcopy of the communiques with Xerox PARC and others from this period.)
Rather, relational semantics were what I saw as the ultimate direction for distributed programming. I had a bit of a go at Tony Hoare's "communicating sequential processes" paradigm and its Transputer realization because he was, at least, starting with the hard problem of parallelism rather than making like the drunk looking for his keys under the light post the way everyone else seemed to be doing (and still are, save for Mozart, since threads, etc. are always an afterthought). But, because there were other hard problems like abstraction, transactions and persistence that he ignored, I christened his approach "Occam's Chainsaw Massacre" in my communiques (in honor of his distributed programming language "Occam") and dropped it in favor of relational programming, which has inherent parallelism resulting from both dependency and indeterminacy. (BTW: Dr. Hoare seems to have finally come to his senses about this issue.)
Unfortunately, the only researcher doing hardcore work on relational programming (meaning, getting to the root of relational semantics in a way that Codd had failed to do) at the time was Bruce MacLennan, then, of The Naval Postgraduate School, and he just didn't have the glamour of Alan Kay at places like Xerox PARC to attract the attention of guys like Steve Jobs. Bruce had a bit of a blind-spot, too, when it came to transactions and persistence, which I attempted to remedy by bringing David P. Reed's work on distributed transactions for the ARPAnet to him, but although he wrote a white paper on a predicate calculus (close to a relational) implementation of Reed's thesis (MIT/LCS/TR-205), he didn't really "get it", IMHO. Reed and MacLennan abandoned their work for other pursuits (ironically, Reed was chief scientist at Lotus while Notes was being developed but did not contribute his ideas on distributed synchronization to that development despite the fact that we had a mutual acquaintance from my Plato days by the name of Ray Ozzie -- so, I share some of the blame for this failure) even as Steve Jobs botched the embryonic object oriented world by abandoning Smalltalk and giving us, instead, a lineage consisting of Object Pascal on the Lisa/Mac which begat Objective C on Jobs's NeXT which begat Java at Sun via Naughton and Gosling's experience with NeXT.
This brings us to the present -- a world in which Javascript-based technologies like Tibet promise to not only salvage the object oriented aspect of the Internet from the birth defects of Jobs's spawn, but actually provide an advance over Smalltalk in the same lineage as CLOS and Self. But it is also a world in which there is growing confusion over the proper role of "metadata" in the form of XML -- particularly when it comes to speech acts and distributed inference. I would call Tibet "the next major Internet advance" except for the fact that the basic idea for a Tibet-like system has been around and well understood since the early 1980's. When it is finally released, Tibet (or a system like it) will put the Internet back on track. I call that a "recovery", not an "advance".
We are now poised to move forward with type inference based on full blown inference engines, thereby dispensing with the nonterminating arguments over statically vs dynamically typed languages that allowed Steve Jobs's spawn to get its nose in the tent. If you want to declare a "type" in a declarative language, just make another declaration and let the inference engine figure out what it can do with that information prior to run time. See how easy that was? Well, there is more to it than that, but not that much: Assertions have implications and assertions made prior to run time have implications prior to run time. Live with it and don't repeat the mistakes of the past.
The confusion over semantic webs, and the reason Berners Lee et al will fail, is essentially the same as the confusion that has beleaguered all inferential systems such as logic programming and "artificial intelligence" over the years: logic is irrational and the real world demands rationality -- otherwise nothing makes sense. By "rationality" I mean that reasoning must literally incorporate "ratios" -- or, as John McCarthy would put it, doing arithmetic so things make sense. By making sense, I mean there is a sense in which one interprets the sea of assertions that clearly dominates for a particular purpose. With logic not only are you limited to 0 and 1 as effective quantities; you have no adequate theoretic basis from which to derive more accurate quantities with which to make sense by taking ratios and determining which inferences are dominant.
Fuzzy logic and expert systems incorporating probabilities have typically failed because they are not based in the first principles of probability and statistics. As Gauss, the premiere probability theorist put it, "Mathematics is the study of relations." He didn't say, "Mathematics is the study of multisets." There are good reasons that relational databases, and not set manipulation languages, have come to dominate business applications -- and Gauss was aware of these differences when he began to derive his laws of probability. Subsequent axiomatizations of mathematics based on set theory were similarly misguided and have led to the idea that "fuzzy sets" are the way to introduce rationality into programming. Rather than sets, relations are the foundation, not just of mathematics but of rationality in the same sense that Gauss realized when he derived his theory of probability from the study of relations.
Rationality allows for judgment which is recognized as inherently fallible -- but which allows one to procede without exponentiating all possible paths of inference. Judgment also allows various identities to limit sharing of information to that needed -- thereby creating speech acts and a basis for rational measures of credibility associated with those identities. Since credit-rating is a degeneration of credibility, it should come as no shock that the invention of negative numbers, originating as they did with the Arabic invention of double entry account keeping, has its analog in something that might be called "logical debt" with which negative probabilities are associated.
And now we have come to the "quantum" aspect of rational programming. It is precisely the "credibility debt" aspect of rational programming that corresponds, in mathematical detail, to the various equations of quantum mechanics and their negative probability amplitudes. (Von Neumann's quantum logic failed to properly incorporate logical debt which has led to much confusion.) Logical debt is important to distributed programming for the same reason debt is important to financial networks. Logical debt is a way of handling poor synchronization of information flow in the same way that financial debt is a way of handling poor synchronization of cash flow. As in any rational system, there are both limits to credit and limits to credibilty that influence one's judgments and actions, including speech acts.
The object oriented folks may, in a sense, have the last laugh here because when we divide up inference into identities that engage in speech acts, we are reintroducing the notion of objects that hide information via exchange of speech act messages that can be thought of as "setters" (assertions) and "getters" (queries). However, I believe it is only fair to recognize that the excellent intuitions of Johan Dahl and Kristen Nygaard did need the added insights and rigor of philosophers like J. L. Austin and T. Etter.
-
programmer's challenge
I like puzzles as much as anyone. However, the last time I played chess... Well let's just say I suck and leave it at that. However, wht I think would be very fun is something like the Programmer's Challenge from MacTech Magazine. They would put out a programming problem and you had a month to come up with a solution. Then they picked the fastest (usually) correct solution, and printed it. ( Sometimes the criteria were different. like speed - space used, or something. ) Anyway, I sure think something like that would be cool for slashdot.