I've very surprised noone's mentioned this; i guess it's the US-centric crowd? The GX4000 was a MEGA failure. By the time Amstrad released their new CPC+ plus range (including GX4000) the world was well-and-truly done with 8-bit CPUs. The 286 was popular, i believe the 386 was emerging. Amiga was even reaching the end of its days, and Atari was more or less already dead. The SNES was 16-bit. Why oh why release a new range of computers and a console that still ran on Z80s, even with a hacked up color chip that could handle 4096 colors (aha! but only background shading, not sprites - wtf!) I don't know what crack Alan Sugar must've been smoking. Of course, then they released the PenPad, which was far more useful, and the REAL first PDA (not the Apple Newton like Slashdot likes to think). Now they're making all kinds of bizarre telephone/computer mixtures, which is pretty interesting. But i digress.
The GX4000 had Switchblade, which was a fantastic game, even now. It had Burning Rubber, which wasn't too bad. I'm not sure what else... I don't think they were terrible games, just not technically up-to-date.
Yep, that's the one. Absolutely schweet-lookin. Not too desperately expensive either. Now if the original poster slapped a fin on the back you'd pretty much have Australia's Ford Falcon. Mmmm can hear the V8 rumblin away in the distance already:-)
Of course, until you show why your stream is better than the main stream, you'll be pretty lonely on your fork.
Unfortunately it's not JUST showing someone you're better, it's "marketing" too. That's pretty hard in the case of Linux, because you can't use the name "Linux" anywhere - it's trademarked by Linus. If i made some funkyass Linux fork and called it Finnix, it wouldn't get the press Linux would, and you'd effectively be ten years back in time, building up a name etc. With BSD it's a little easier, because "BSD" in and of itself isn't trademarked, though it's doubtful whether you'd be able to get away with calling your Soviet Russia fork "NyetBSD".
That said, i pretty much agree. Linux has so much stuff in it right now as a kernel (in the sense of running on a zillion architectures with a zillion features) i'd say Linus is pretty much pleasing everyone in the end. Most Alan Cox stuff gets rolled in, most commercial stuff does too. It's all good.
OpenBSD doesn't have a democracy. It has a benevolent (heh) dictatorship. This is a Good Thing to a certain extent, because it keeps a project on-track. It gives it some level of direction, as opposed to letting things bloat... and bloat... and bloat... You can't compare open source to countries, because it's a lot easier to fork source and make your own branch than it is to revolt and declare independence. That said, sometimes the dictator can be a stubborn little bitch, and there's not much anyone can do. But that's why Linux users have the Alan Cox branches, and OpenBSD users have MicroBSD and other "unofficial" patched versions. It's no big deal.
I'd sure love to see more Australian race cars. Hell, I'd love to buy a Falcon! But Australia is its own automotive universe.
The single best thing about Australia:-) Rear-wheel drive V8 sedans. I've looked around for something similar to a Falcon or Commodore in the States, and it really doesn't seem to be there. However, this might change very soon. About six months ago i saw something about Ford planning to release a new "luxury" Mercury, which i believe was a RWD V8. They had images on the site, and even samples of the engine sound, if i recall. I'd go check again now but i'm at work hehe.
Commercial games are made by tons of people too, and they don't suck. What makes original open source games suck is "too many bosses, not enough laborers". In a company one or two guys are responsible for design, everything else is done by the grunts. No arguments, no "hey wouldn't it be better if...", just write the code, write the music, if the designers don't like it, do it again. Most open source programmers don't like being the grunts, because they already do that at work... so they all want to "design".
One of the good things about Linux is you have one guy at the top who is saying what does and doesn't go in. Ditto with OpenBSD. Yeah, there might be some discussion, but at the end of the day the project is being driven by one mind, and everyone is cool to go along with that - if they want it to do something else, they get a custom patch. That's the way open-source games should be developed, but it's hard to drum up enough interest in one to get it working that way. Linus had to go a long time by himself before he got the crowd around him he does now, so did Theo, so did Bill Gates, so did the top game designers.
So yes, i agree that one person's drive makes it happen initially, but in the long run it's having the support of a lot of people who are happy to bow to that one person's wishes that makes a good thing great.
I downloaded FreeCiv and deleted it about 20 minutes later. I was appalled by pretty much everything. Ignoring the fact it played differently to Civilization (different units/buildings/etc), my main my beef was the ghastly interface. I can't even begin to describe how much that irked me. Floating GTK windows that didn't resize properly in Windows, a map that didn't scroll/update properly, ten zillion windows for one game, a hugely convoluted hack just to play a single-player game, no music or sound effects...
The way i see it, if you want to make a game, it's supposed to be accessible to gamers, not ubergeeks. What the hell is a DOS console doing in a Windows app? I'm sorry, but that's not good enough, even if all it's there for is debugging. Use a frickin logfile or have a Dialog you can selectively pop up from within the program. I don't fucking care that SDL just returned successfully from a BitBlt() call. Now maybe it works better under Linux, but then why release a half-assed Windows version at all? Normally i love browsing Sourceforge, but aside from those based on commercial source (i.e. the Doom ports and Star Control 2) the games section is positively dire.
Sorry if i sound a bit flame-y here, i was just so, so disappointed when i downloaded FreeCiv after hearing the open source crowd rave on about it for years. Actually... it's probably the most disappointing piece of software i've ever installed:-( I was looking forward to a free version of one of my favorite games.
Come on, Timothy, that was cheap:-) Of course it's "Microsoft-ish" because it forces companies who want support to upgrade. Yeah, sure, you still have the source code, but in a company that doesn't mean anything if you're not getting support. Half the reason why Red Hat is so popular (over the "free beer" Linuxes like Debian) is because when a company puts it on their systems, they can be assured of getting professional support. This is really important for the PHBs of the world - they don't want to hire some in-house hacker with tattoos and spikey hair to "support" their installation.
Of course, even though it is Microsoft-ish, i don't think that's a bad thing. Forcing your clients to upgrade is better all round - it's better for the economy because it's creating sales which lead to more R&D spending, plus you can ensure your clients are running the latest version which should cut down on the bugginess or flakiness of their software. If Microsoft had had a more aggressive "push upgrades onto the client" scheme, all the internet problems we saw last week wouldn't've happened, because everyone would've been running patched SQL Servers anyway.
Actually you're right, it was the Chroma. I don't think the Polaris did have one. I think i was spacing when i wrote that. Yep, bought "Vintage Synths" a year or two after it came out... definitely a classic book, interesting for "traditional" geeks as well as audio/synth geeks. Apparently there's a second edition out now?
Not that this is particularly interesting to anyone, but the 80186 was actually used primarily in a vintage synthesizer produced by Fender/Rhodes called the Chroma Polaris. Of course that wasn't very popular either, but at around 3000 units it was probably more common than PCs running on an 80186 CPU:-)
Ahhh LHX and Indy 500:-) Man, LHX was the best damn flight sim i've ever played. I've tried so many helicopter sims after that and not one worked as smoothly and simply. I don't know whether it was realistic or not, but it was so easy to get into it and start flying missions. Made me want to learn how to fly a helicopter in real life. I wish they'd made an LHX 2. Any suggestions?
But Amiga in 1991? You had full-color Monkey Island, Lemmings, Eye of the Beholder, Prince of Persia, Sim City... I don't recall the PC ever getting those games in a decent color till at least a few years later. What about Gods? "THE Amiga game" if i remember the magazines spiel back then. I think you just wanted better sims - the Amiga was always an excellent arcade machine, but i don't remember sims coming into their own until the PC. A lot of people bought PCs just to play MS Flight Sim:-)
I think my problem with understanding these concepts is that i've been doing so much C programming recently. I was doing a lot of Java a year or three back, though even then i had problems with the whole "Factory" idea and so on. I don't like not knowing what a function is going to do when you call it - perhaps i'm just an assembly language programmer at heart:-)
But you know, i still really can't see how this would be useful on the programming level. Again, it's the interface with The Real World where "fuzzy" things are going to happen, where a user is going to do something weird and unexpected. Once you process and parse that input (perhaps in this "fuzzy" or "phenotropic" manner), what then? He talks about protocols, but have a look at some of my other comments in this thread. I don't see how it would be to our advantage to abstract protocols and start using "best guess" methods to access different chunks of data. What's the end result if we follow this out to its extreme implementation?
But we can. When you write a paragraph of text in HTML, you don't say "turn on these switches and those switches such that it indicates that we are pointing to a location in memory that represents a paragraph", you say "here is a paragraph, here's the text in the paragraph". You can make an environment where you can say "here is a rock" (but until we get better at chaos, it will look and act at best almost, but not quite, like a rock).
I think what's significant here is how something gets further and further removed from the "programming" he's talking about. Sure in HTML you can do that. In Microsoft Word it's even easier - open up your clip art directory, insert rock.bmp, fin. But how is that programming? That's using the user interface that the programmer has developed. He could be talking about some kind of AI where if the user wants a rock he says "i want a rock", and then the AI asks him more and more specific questions about the rock so it can adjust its properties to make it look more or less how the user intended. But how is this "phenotropic programming"? This is artificial intelligence, and idea that's been around for as long as we've been using machines.
And then on top of that, he wasn't talking about a rock per se, but about protocols. Let's look at the HTTP protocol as an example. Now instead of doing socket() open() fprintf("GET HTTP/1.0/") we just have a bajillion bytes of data. No concept of one computer being seperate from another. This is almost impossible to conceptualize anyway, because we're so stuck with the idea that we need TCP/IP, we need lower-level modem/NIC/communications protocols, etc. But just imagine for a second we have the whole "internet" as one big bunch of bytes and somehow our new version of DNS has found the bundle of bytes that represent the website we want. Now instead of getting the data in a stream we can understand it needs to know the user wants the "index" page in the data blob. So what does it do? Randomly leafs through the data till it finds something that resembles an index page, and just does a memcpy()? This kind of thing is way, way beyond the technology we have today... And i can already see a number of big security holes. If all the data is accessible to everyone for the purpose of the client deciding what each piece of data is supposed to represent, someone could get access to data illegally very easily. That's just the beginning.
Ahh, but this is user interface design, not code design, n'est-ce pas? That's a point i conceded further up in the comments. I can totally see the use of "fuzzy" logic or "pattern matching" in user interface, or just being innovative and trying something different... But it doesn't change the way the vast majority of a system is coded. At best, perhaps, we'd see some kind of "pattern matching" scripting language (not regex) that sat on the top of the application and could customize an interface and "grow" naturally.
Re:It's been thought I'm sure.
on
The 1991 "X-Box"
·
· Score: 3, Insightful
Bingo. Not only was EGA about as cool as it got back then (i remember VGA becoming more popular on high-end home computers in 92-93ish, around when Wolf3D took off) but Commander Keen? Come on. In 1991 i'm talking Battletech: The Crescent Hawk's Inception on a monochrome screen... An early, very crappy, Test Drive under CGA. Lode Runner. Mines of Moria (like Nethack). Space Quest 1. PCs were worse than Amigas and even the 8-bit systems back then. The people who could afford VGA systems (with CD-ROM drives!) were like the people today who have Radeon 9700s with 1 gig of RAM and God knows what other overclocked monstrosities in their system. Contrary to what we read on Slashdot, that is by far not the majority of PC users:-)
I want to reply, but i'm totally exhausted. It's 4:20am here and i'm not thinking straight any more. I'll get back to you tomorrow if you're interested and this is still on the front page:)
But if his theory is, in fact, what you are describing... Why would we ever do it on the program level? As a programmer, it's actually easier to debug an application if you know exactly how each function is going to treat your arguments. Let's try to think it back to today's technology for a second:
And in turn our calling function will have to sit and think about the return and what it probably is, etc, etc. What benefit can be gotten from programming like this? Yes, it means we could randomly fire something into a function that wasn't intended for it... for example (in Java): SomeUnknownObject.toString() and instead of getting "Object$$1234FD" we get a true string representation of whatever it is... but we programmed it in the first place! We programmed it, so we know precisely what the object is supposed to be, and precisely how to display it. Why have a computer guess at it when we KNOW?
"Ah", i see you saying, "but won't it cut down on LOC if a user gives unknown input and the app can figure it out?" True indeed, but then why doesn't he talk about making these abstractions at the GUI-level? It is far, far more practical to keep the fuzzy logic on the first layer - the input layer. And in fact this is already done to some extent. Love him or hate him, Mr PaperClip Guy pops up and guesses when you're writing a letter and tries to help. Love it or hate it, most every text widget in Windows has an auto-complete or auto-spell-fix function. Hell, even zsh and i believe bash do it. This is where fuzzy logic is useful - making sense of input that is either not what you expected or something you could "lend a hand" with. But in the core API? In the libraries, in the kernel, in the opcodes of the CPU? I don't think so. It's in those places where 100% reliability/predictability are vital, otherwise it defeats the point of using a computer in the first place. You don't want your enterprise DB suddenly "losing a few zeros" because your server farm "thought it made more sense that way".
Take libraries for example - why are they in files? Why not put all the functions in a database? Fully indexed, and cross referenced. When you need new functions, just download them.
That's a red herring. How do we store the database? As a file. What is a file? An indexed, named set of blocks on a storage medium. But that wasn't my point. My point wasn't that we couldn't use a DB or some other way of accessing our data, my point was that the concept of a "file" is just a way of categorizing data. It's semantics - you could call a DB table a "file", you could call a single field in the DB a "file", it wouldn't make any difference. You still use the data in a "blob" format that arbitrarily represents something useful. I think what he was trying to say was that data shouldn't be stored in any format at all - that it should just exist randomly and in and of itself, and our program should at run-time determine what the random data is supposed to be and somehow use it in some way. "Just like nature". Except in real life we isolate connected atoms (in the sense of "small things", not physics/chemistry atoms) into arbitrary groupings aswell. It's a conceptualization we are required to make in order to create, reason, and communicate.
His comments don't seem to make any sense with regard to the way we, as humans, actually view The Real World either:
So, now, when you learn about computer science, you learn about the file as if it were an element of nature, like a photon. That's a dangerous mentality. Even if you really can't do anything about it, and you really can't practically write software without files right now, it's still important not to let your brain be bamboozled. You have to remember what's a human invention and what isn't.
Of course a file is a human invention, but it's also a concept without which NOTHING would work - not just computers. A "file" is just an abstraction of a blob, and i mean that both in the sense of a "blob" as in "a thing" and as in "Binary Large OBject". It's a piece of data that represents something. That's exactly the same thing as looking at a house and saying "that's a house" or looking at a car and saying "that's a car". It's just a way to categorize a bunch of photons/atoms/whatever into something we can readily communicate and understand. This is HUMAN, this is how we reason. If we "saw" the universe as a bazillion photons, we'd never get anything done, because we couldn't "here is a car", we'd be describing each photon individually, which would take up millions of human lifetimes. It's a human limitation, and i don't see any way that we could just up and ignore it.
Don't get me wrong, i think what this guy is talking about is fascinating, but i also think it's got more of a place in some theoretical branch of math than in real life development.
...but i don't see how it's physically possible. It sounds like he's proposing that we re-structure programming languages or at least the fundamentals of programming in the languages we do know (which might as well mean creating a new language). This isn't a bad thing per se, but one example he talks about is this:
For example, if you want to describe the connection between a rock and the ground that the rock is resting on, as if it were information being sent on a wire, it's possible to do that, but it's not the best way. It's not an elegant way of doing it. If you look at nature at large, probably a better way to describe how things connect together is that there's a surface between any two things that displays patterns. At any given instant, it might be possible to recognize those patterns.
Am i stupid or something? He seems to be drawing two, completely unrelated things together. Our computers, our CPUs, our ICs, at the end of the day they're just a bundle of very, very tiny on/off switches - pure binary logic. When we develop code for this environment, we have to develop according to those binary rules. We can't say "here's a rock", but we can say "turn on these switches and those switches such so that it indicates that we are pointing to a location in memory that represents a rock".
Maybe i'm missing his point, but i just don't understand how you can redefine programming, which is by definition a means of communication with a predictable binary system (as opposed to a "probability-based system" or whatever quantum physicists like to call reality), to mean inputting some kind of "digitized" real-world pattern. It's bizarre.
You know, anime is... mixed. I remember watching some and finding it wonderful. I enjoyed Ghost in the Shell (Kokaku kidotai). Battle Angel Alita (Gunnm) totally blew my mind. But then i watched the ones everyone recommends - Akira, Cowboy Bebop, Evangelion, Ninja Scroll etc... And was seriously underwhelmed. I think the key thing to remember is that anime is a medium, not a genre. There are some that are quite obviously aimed at a younger audience, and some that are obviously aimed at an adult audience, but feel very much like geek porn... It seems like these are the ones that are most popular in the West, which is a bit of a shame.
For people who see the rapid-fire, rapid-speech, Nintendo-y animes and get turned off, i'd definitely recommend watching a few other things (again, Battle Angel Alita is fantastic). For people who don't like the sci-fi or GIANT ROBOTS themes, there are fantasy ones... It's an interesting scene, though i have to admit i can't understand the people who will eat up just about anything the Japanese animators churn out. It's like music... books. All different.
I've very surprised noone's mentioned this; i guess it's the US-centric crowd? The GX4000 was a MEGA failure. By the time Amstrad released their new CPC+ plus range (including GX4000) the world was well-and-truly done with 8-bit CPUs. The 286 was popular, i believe the 386 was emerging. Amiga was even reaching the end of its days, and Atari was more or less already dead. The SNES was 16-bit. Why oh why release a new range of computers and a console that still ran on Z80s, even with a hacked up color chip that could handle 4096 colors (aha! but only background shading, not sprites - wtf!) I don't know what crack Alan Sugar must've been smoking. Of course, then they released the PenPad, which was far more useful, and the REAL first PDA (not the Apple Newton like Slashdot likes to think). Now they're making all kinds of bizarre telephone/computer mixtures, which is pretty interesting. But i digress.
The GX4000 had Switchblade, which was a fantastic game, even now. It had Burning Rubber, which wasn't too bad. I'm not sure what else... I don't think they were terrible games, just not technically up-to-date.
Yep, that's the one. Absolutely schweet-lookin. Not too desperately expensive either. Now if the original poster slapped a fin on the back you'd pretty much have Australia's Ford Falcon. Mmmm can hear the V8 rumblin away in the distance already :-)
Unfortunately it's not JUST showing someone you're better, it's "marketing" too. That's pretty hard in the case of Linux, because you can't use the name "Linux" anywhere - it's trademarked by Linus. If i made some funkyass Linux fork and called it Finnix, it wouldn't get the press Linux would, and you'd effectively be ten years back in time, building up a name etc. With BSD it's a little easier, because "BSD" in and of itself isn't trademarked, though it's doubtful whether you'd be able to get away with calling your Soviet Russia fork "NyetBSD".
That said, i pretty much agree. Linux has so much stuff in it right now as a kernel (in the sense of running on a zillion architectures with a zillion features) i'd say Linus is pretty much pleasing everyone in the end. Most Alan Cox stuff gets rolled in, most commercial stuff does too. It's all good.
OpenBSD doesn't have a democracy. It has a benevolent (heh) dictatorship. This is a Good Thing to a certain extent, because it keeps a project on-track. It gives it some level of direction, as opposed to letting things bloat... and bloat... and bloat... You can't compare open source to countries, because it's a lot easier to fork source and make your own branch than it is to revolt and declare independence. That said, sometimes the dictator can be a stubborn little bitch, and there's not much anyone can do. But that's why Linux users have the Alan Cox branches, and OpenBSD users have MicroBSD and other "unofficial" patched versions. It's no big deal.
Course here in Aus they have a "Nova" which bears absolutely no resemblance to the trusty stoner car of old :-(
The single best thing about Australia :-) Rear-wheel drive V8 sedans. I've looked around for something similar to a Falcon or Commodore in the States, and it really doesn't seem to be there. However, this might change very soon. About six months ago i saw something about Ford planning to release a new "luxury" Mercury, which i believe was a RWD V8. They had images on the site, and even samples of the engine sound, if i recall. I'd go check again now but i'm at work hehe.
I can't believe it's not piste!
Actually, it'd probably work on a sliding scale, depending on how many burritos you ate the night before.
Commercial games are made by tons of people too, and they don't suck. What makes original open source games suck is "too many bosses, not enough laborers". In a company one or two guys are responsible for design, everything else is done by the grunts. No arguments, no "hey wouldn't it be better if...", just write the code, write the music, if the designers don't like it, do it again. Most open source programmers don't like being the grunts, because they already do that at work... so they all want to "design".
One of the good things about Linux is you have one guy at the top who is saying what does and doesn't go in. Ditto with OpenBSD. Yeah, there might be some discussion, but at the end of the day the project is being driven by one mind, and everyone is cool to go along with that - if they want it to do something else, they get a custom patch. That's the way open-source games should be developed, but it's hard to drum up enough interest in one to get it working that way. Linus had to go a long time by himself before he got the crowd around him he does now, so did Theo, so did Bill Gates, so did the top game designers.
So yes, i agree that one person's drive makes it happen initially, but in the long run it's having the support of a lot of people who are happy to bow to that one person's wishes that makes a good thing great.
I downloaded FreeCiv and deleted it about 20 minutes later. I was appalled by pretty much everything. Ignoring the fact it played differently to Civilization (different units/buildings/etc), my main my beef was the ghastly interface. I can't even begin to describe how much that irked me. Floating GTK windows that didn't resize properly in Windows, a map that didn't scroll/update properly, ten zillion windows for one game, a hugely convoluted hack just to play a single-player game, no music or sound effects...
The way i see it, if you want to make a game, it's supposed to be accessible to gamers, not ubergeeks. What the hell is a DOS console doing in a Windows app? I'm sorry, but that's not good enough, even if all it's there for is debugging. Use a frickin logfile or have a Dialog you can selectively pop up from within the program. I don't fucking care that SDL just returned successfully from a BitBlt() call. Now maybe it works better under Linux, but then why release a half-assed Windows version at all? Normally i love browsing Sourceforge, but aside from those based on commercial source (i.e. the Doom ports and Star Control 2) the games section is positively dire.
Sorry if i sound a bit flame-y here, i was just so, so disappointed when i downloaded FreeCiv after hearing the open source crowd rave on about it for years. Actually... it's probably the most disappointing piece of software i've ever installed :-( I was looking forward to a free version of one of my favorite games.
Come on, Timothy, that was cheap :-) Of course it's "Microsoft-ish" because it forces companies who want support to upgrade. Yeah, sure, you still have the source code, but in a company that doesn't mean anything if you're not getting support. Half the reason why Red Hat is so popular (over the "free beer" Linuxes like Debian) is because when a company puts it on their systems, they can be assured of getting professional support. This is really important for the PHBs of the world - they don't want to hire some in-house hacker with tattoos and spikey hair to "support" their installation.
Of course, even though it is Microsoft-ish, i don't think that's a bad thing. Forcing your clients to upgrade is better all round - it's better for the economy because it's creating sales which lead to more R&D spending, plus you can ensure your clients are running the latest version which should cut down on the bugginess or flakiness of their software. If Microsoft had had a more aggressive "push upgrades onto the client" scheme, all the internet problems we saw last week wouldn't've happened, because everyone would've been running patched SQL Servers anyway.
Actually you're right, it was the Chroma. I don't think the Polaris did have one. I think i was spacing when i wrote that. Yep, bought "Vintage Synths" a year or two after it came out... definitely a classic book, interesting for "traditional" geeks as well as audio/synth geeks. Apparently there's a second edition out now?
Not that this is particularly interesting to anyone, but the 80186 was actually used primarily in a vintage synthesizer produced by Fender/Rhodes called the Chroma Polaris. Of course that wasn't very popular either, but at around 3000 units it was probably more common than PCs running on an 80186 CPU :-)
Ahhh LHX and Indy 500 :-) Man, LHX was the best damn flight sim i've ever played. I've tried so many helicopter sims after that and not one worked as smoothly and simply. I don't know whether it was realistic or not, but it was so easy to get into it and start flying missions. Made me want to learn how to fly a helicopter in real life. I wish they'd made an LHX 2. Any suggestions?
:-)
But Amiga in 1991? You had full-color Monkey Island, Lemmings, Eye of the Beholder, Prince of Persia, Sim City... I don't recall the PC ever getting those games in a decent color till at least a few years later. What about Gods? "THE Amiga game" if i remember the magazines spiel back then. I think you just wanted better sims - the Amiga was always an excellent arcade machine, but i don't remember sims coming into their own until the PC. A lot of people bought PCs just to play MS Flight Sim
I think my problem with understanding these concepts is that i've been doing so much C programming recently. I was doing a lot of Java a year or three back, though even then i had problems with the whole "Factory" idea and so on. I don't like not knowing what a function is going to do when you call it - perhaps i'm just an assembly language programmer at heart :-)
But you know, i still really can't see how this would be useful on the programming level. Again, it's the interface with The Real World where "fuzzy" things are going to happen, where a user is going to do something weird and unexpected. Once you process and parse that input (perhaps in this "fuzzy" or "phenotropic" manner), what then? He talks about protocols, but have a look at some of my other comments in this thread. I don't see how it would be to our advantage to abstract protocols and start using "best guess" methods to access different chunks of data. What's the end result if we follow this out to its extreme implementation?
Huh?
I think what's significant here is how something gets further and further removed from the "programming" he's talking about. Sure in HTML you can do that. In Microsoft Word it's even easier - open up your clip art directory, insert rock.bmp, fin. But how is that programming? That's using the user interface that the programmer has developed. He could be talking about some kind of AI where if the user wants a rock he says "i want a rock", and then the AI asks him more and more specific questions about the rock so it can adjust its properties to make it look more or less how the user intended. But how is this "phenotropic programming"? This is artificial intelligence, and idea that's been around for as long as we've been using machines.
And then on top of that, he wasn't talking about a rock per se, but about protocols. Let's look at the HTTP protocol as an example. Now instead of doing socket() open() fprintf("GET HTTP/1.0 /") we just have a bajillion bytes of data. No concept of one computer being seperate from another. This is almost impossible to conceptualize anyway, because we're so stuck with the idea that we need TCP/IP, we need lower-level modem/NIC/communications protocols, etc. But just imagine for a second we have the whole "internet" as one big bunch of bytes and somehow our new version of DNS has found the bundle of bytes that represent the website we want. Now instead of getting the data in a stream we can understand it needs to know the user wants the "index" page in the data blob. So what does it do? Randomly leafs through the data till it finds something that resembles an index page, and just does a memcpy()? This kind of thing is way, way beyond the technology we have today... And i can already see a number of big security holes. If all the data is accessible to everyone for the purpose of the client deciding what each piece of data is supposed to represent, someone could get access to data illegally very easily. That's just the beginning.
Ahh, but this is user interface design, not code design, n'est-ce pas? That's a point i conceded further up in the comments. I can totally see the use of "fuzzy" logic or "pattern matching" in user interface, or just being innovative and trying something different... But it doesn't change the way the vast majority of a system is coded. At best, perhaps, we'd see some kind of "pattern matching" scripting language (not regex) that sat on the top of the application and could customize an interface and "grow" naturally.
Bingo. Not only was EGA about as cool as it got back then (i remember VGA becoming more popular on high-end home computers in 92-93ish, around when Wolf3D took off) but Commander Keen? Come on. In 1991 i'm talking Battletech: The Crescent Hawk's Inception on a monochrome screen... An early, very crappy, Test Drive under CGA. Lode Runner. Mines of Moria (like Nethack). Space Quest 1. PCs were worse than Amigas and even the 8-bit systems back then. The people who could afford VGA systems (with CD-ROM drives!) were like the people today who have Radeon 9700s with 1 gig of RAM and God knows what other overclocked monstrosities in their system. Contrary to what we read on Slashdot, that is by far not the majority of PC users :-)
DOS is an OS, my friend, not a shell :-)
I want to reply, but i'm totally exhausted. It's 4:20am here and i'm not thinking straight any more. I'll get back to you tomorrow if you're interested and this is still on the front page :)
But if his theory is, in fact, what you are describing... Why would we ever do it on the program level? As a programmer, it's actually easier to debug an application if you know exactly how each function is going to treat your arguments. Let's try to think it back to today's technology for a second:
And in turn our calling function will have to sit and think about the return and what it probably is, etc, etc. What benefit can be gotten from programming like this? Yes, it means we could randomly fire something into a function that wasn't intended for it... for example (in Java): SomeUnknownObject.toString() and instead of getting "Object$$1234FD" we get a true string representation of whatever it is... but we programmed it in the first place! We programmed it, so we know precisely what the object is supposed to be, and precisely how to display it. Why have a computer guess at it when we KNOW?
"Ah", i see you saying, "but won't it cut down on LOC if a user gives unknown input and the app can figure it out?" True indeed, but then why doesn't he talk about making these abstractions at the GUI-level? It is far, far more practical to keep the fuzzy logic on the first layer - the input layer. And in fact this is already done to some extent. Love him or hate him, Mr PaperClip Guy pops up and guesses when you're writing a letter and tries to help. Love it or hate it, most every text widget in Windows has an auto-complete or auto-spell-fix function. Hell, even zsh and i believe bash do it. This is where fuzzy logic is useful - making sense of input that is either not what you expected or something you could "lend a hand" with. But in the core API? In the libraries, in the kernel, in the opcodes of the CPU? I don't think so. It's in those places where 100% reliability/predictability are vital, otherwise it defeats the point of using a computer in the first place. You don't want your enterprise DB suddenly "losing a few zeros" because your server farm "thought it made more sense that way".
That's a red herring. How do we store the database? As a file. What is a file? An indexed, named set of blocks on a storage medium. But that wasn't my point. My point wasn't that we couldn't use a DB or some other way of accessing our data, my point was that the concept of a "file" is just a way of categorizing data. It's semantics - you could call a DB table a "file", you could call a single field in the DB a "file", it wouldn't make any difference. You still use the data in a "blob" format that arbitrarily represents something useful. I think what he was trying to say was that data shouldn't be stored in any format at all - that it should just exist randomly and in and of itself, and our program should at run-time determine what the random data is supposed to be and somehow use it in some way. "Just like nature". Except in real life we isolate connected atoms (in the sense of "small things", not physics/chemistry atoms) into arbitrary groupings aswell. It's a conceptualization we are required to make in order to create, reason, and communicate.
His comments don't seem to make any sense with regard to the way we, as humans, actually view The Real World either:
Of course a file is a human invention, but it's also a concept without which NOTHING would work - not just computers. A "file" is just an abstraction of a blob, and i mean that both in the sense of a "blob" as in "a thing" and as in "Binary Large OBject". It's a piece of data that represents something. That's exactly the same thing as looking at a house and saying "that's a house" or looking at a car and saying "that's a car". It's just a way to categorize a bunch of photons/atoms/whatever into something we can readily communicate and understand. This is HUMAN, this is how we reason. If we "saw" the universe as a bazillion photons, we'd never get anything done, because we couldn't "here is a car", we'd be describing each photon individually, which would take up millions of human lifetimes. It's a human limitation, and i don't see any way that we could just up and ignore it.
Don't get me wrong, i think what this guy is talking about is fascinating, but i also think it's got more of a place in some theoretical branch of math than in real life development.
...but i don't see how it's physically possible. It sounds like he's proposing that we re-structure programming languages or at least the fundamentals of programming in the languages we do know (which might as well mean creating a new language). This isn't a bad thing per se, but one example he talks about is this:
Am i stupid or something? He seems to be drawing two, completely unrelated things together. Our computers, our CPUs, our ICs, at the end of the day they're just a bundle of very, very tiny on/off switches - pure binary logic. When we develop code for this environment, we have to develop according to those binary rules. We can't say "here's a rock", but we can say "turn on these switches and those switches such so that it indicates that we are pointing to a location in memory that represents a rock".
Maybe i'm missing his point, but i just don't understand how you can redefine programming, which is by definition a means of communication with a predictable binary system (as opposed to a "probability-based system" or whatever quantum physicists like to call reality), to mean inputting some kind of "digitized" real-world pattern. It's bizarre.
You know, anime is... mixed. I remember watching some and finding it wonderful. I enjoyed Ghost in the Shell (Kokaku kidotai). Battle Angel Alita (Gunnm) totally blew my mind. But then i watched the ones everyone recommends - Akira, Cowboy Bebop, Evangelion, Ninja Scroll etc... And was seriously underwhelmed. I think the key thing to remember is that anime is a medium, not a genre. There are some that are quite obviously aimed at a younger audience, and some that are obviously aimed at an adult audience, but feel very much like geek porn... It seems like these are the ones that are most popular in the West, which is a bit of a shame.
For people who see the rapid-fire, rapid-speech, Nintendo-y animes and get turned off, i'd definitely recommend watching a few other things (again, Battle Angel Alita is fantastic). For people who don't like the sci-fi or GIANT ROBOTS themes, there are fantasy ones... It's an interesting scene, though i have to admit i can't understand the people who will eat up just about anything the Japanese animators churn out. It's like music... books. All different.