Hi
pcmattman,
pcmattman wrote:Why bother? Nothing would set apart that "bunch of OSes" - they'd all essentially be clones of each other because everything that makes an OS unique would have to be the same. If anything was different, the behaviour of an application may not be consistent across all of the systems... Not to mention the difference between, say, a micro and monolithic kernel.
What makes my OS unique is the system for programming and building apps in such a way that they become part of the OS. The normal way of running apps is left completely free to be made compatible with someone else's OS. If someone else has built something similar which is based around some other programming method, it might make perfect sense for two such OSes to share the same system for apps running outside the OS while having their own unique system for apps running within it. It appears that none of you have that kind of design for your OS, so it looks as if nothing will happen.
Hi
Brendan,
Brendan wrote:Getting people to agree on the design of a new standard wouldn't work - the more people that are involved the more different opinions there are and the more time you spend disagreeing; and every disagreement is a potential reason for people to stop being involved. If you can find a small group of OS developers that happen to agree on most things and you manage to convince them to cooperate, then it'd make far more sense to combine your efforts on the same implementation of a single OS rather than working on different implementations of the single OS.
Well, now that I've had some feedback from quite a few of you about the idea, it looks as if it will go nowhere, so it's more a case now of leaving an open invitation to people who might come along with the same idea and with an OS which could be made compatible to some degree without damaging the point of their OS project. Mine wouldn't be damaged by making it compatible with someone elses OS, and theirs might not be damaged either.
However, you might have limited success if you (for e.g.) chose to use a subset of POSIX. That way there's an upgrade path (full POSIX) and more importantly there's only one decision for everyone to agree/disagree with (to use it or not) rather than thousands of decisions.
That does sound like a good option.
If humans can design an A.I that is smarter than humans, then that A.I would be smart enough to design an A.I that is smarter than itself, and eventually (after several iterations) you end up with with a super-smart A.I. From the super-smart A.I.'s perspective, humans would be morons, and it would treat us like pets and do it's own thing (not what we asked it to do). After a while humans would get annoyed and resist, and form a militia, and the A.I. would send a very advanced robot from the future to kill the militia's leader.
A.I. wouldn't want to do anything: it would simply do what it's programmed to do. As for it becoming more and more intelligent, it isn't clear that it would be able to become any more intelligent other than by thinking faster. As soon as it can apply ordinary reasoning to all ideas, it will have the ability to think to enormous depth through complex issues and to solve problems that people can't, but it isn't necessarily going to come up with new or improved methods of reasoning. If it runs the wrong system of computational morality, such as one based on a religion, it will obviously kill everyone for breaking silly laws, but if it runs a rational formula for morality based on minimising harm (but without being allowed to do so by eliminating us) it will protect us all instead.
Um, you built a language translator? That's nice (because the existing language translators mostly suck). I thought you we're talking about an A.I. capable of programming, not something that might be able to (for e.g.) convert C source code for a specific OS into functionally equivalent Pascal source code for the same OS.
It's not about translating from one language into another, although that should automatically follow as an intelligent machine should be able to learn other languages in minutes. The translation I was talking about is translation within a language of the kind required to recognise that "why don't metal boats sink" and "how come iron ships float" are asking almost exactly the same question. We recognise that straight away because we translate sentences into thoughts where the differences in wording are eliminated as much as possible. A machine has to be able to do the same kind of translation if it is to be able to compare all the ideas fed into it. If you type "Why don't metal ships sink?" into Google, one of my pages will appear high up the list of results, but word the question in any other way and you won't see it. That is because Google doesn't translate ideas into different forms - it just works with words at the most superficial level. My page appears in the search results with one particular wording largely because that exact wording is the title of my page. The superficial manner in which Google analyses pages (i.e. without understanding) results in my page perhaps appearing above other people's superior pages on the same subject just because a particular wording has been typed into Google by someone doing a search, and long lists of possibly inferior pages appear above mine if some other wording is used. For intelligent search, you need a machine to be able to translate and recognise that all the different possible wordings are asking the same question, and then the results will look the same regardless of which version you type in, and the pages which give the best answers will be at the top. Of course, when you get to that level of machine intelligence, the machine won't need to search but will simply tell you the answer to your question directly and ask if you want to know more. Intelligent search will hide most Web sites from people and most of them will disappear.
For fun, write a tiny "printf("Hello world\n");" console application in C, and see if your language translator can convert this into C source code for an event driven dialog box (for KDE or Gnome or Windows) that actually works. It should be "easy" for a language translator to convert C source code into C source code...
The first target is to get it to talk sense in a single language (not a programming language). Once it can do that, It should be able to learn how to program in different ways and to translate programs if it's properly intelligent.
The easiest shortcut to getting a lot more hardware working is to slap a thin abstraction layer on top of an existing OS. If you only want to do A.I. experiments, then maybe writing an OS is "wasting effort by going down wrong paths".
The point of writing the OS was to create a programming environment in which I could do my A.I. work without having to fight with other people's complex systems. It also has to run within the OS so that it can see everything you're doing on the machine just by reading through memory. If I tried to do it within Windows it would be stuck in a cage and unable to see out. The stuff I'd like to add for other kinds of A.I. work could be done on any OS, but the way I program within my own OS is so much easier for me and so much faster than other systems that doing a bit more work to add the required capability could pay off fairly quickly. The only reason I've discussed this here is to see if anyone else is looking to do the same kinds of thing with their OS, in which case there could be an opportunity to work together to achieve the same ends for both or all those OSes in a fraction of the time. If no one else's plans fit in with that, that's fine - nothing is lost by asking.
Hi
Combuster,
Now, in all seriousness, you sound like a big fantast, making big claims about things without apparently being aware of the many common conceptions found in the computer science industry. You just make the statement "I'll just do it" and being extremely secretive about how things work. In fact, when it comes to details I've seen you discuss natural language parsing and computer vision. Those are well defined applications within computer science. They have in and of themselves *nothing* to do with the kind of sentient intelligence you expect to see of A.I.
I don't expect to see any sentient intelligence in A.I. - there will be nothing conscious in the machine capable of sentience. The whole business of being able to translate an idea from one wording to any other wording of the same idea is absolutely key to A.I. - you can't apply reasoning to ideas that are expressed in different ways if you can't convert them into compatible forms. A machine has to be able to understand what all words mean, translating them into simpler components until there are no simpler components left to translate to. To get to the point where you can build a system capable of human-level thought, you have to analyse thousands of words to work out what they actually mean in terms of simpler words, avoiding all cases of circular definition. This work is unbelievably hard, but it can be done. Initial definitions are easy to make, but you quickly get to words which don't split readily at all, and unless you split them into their components (or unless you've reached a fundamental concept that can't be split) your A.I. system's going to get stuck because it won't be able to compare all of its data properly. This isn't just about parsing, but it involves deep componential analysis which goes way beyond anything I've seen published by anyone working in linguistics (though no one in their right mind would publish such work as it's too valuable to give away for free).
The vision thing is not essential for making a computer intelligent (as blind people are clearly of normal intelligence even if they've never seen anything), but we want computers to be able to recognise items in images and patterns of changes which can be identified as nameable actions. A machine should be able to see events happen and generate information representing what it has seen which can then become part of the knowledge stored in its database - it goes way beyond just identifying objects and fitting names to them. For a machine to identify an assault taking place in the street it will need to convert data to a form that can be compared fully with all other data about similar events, so you have the same need to convert everything to fundamental components of meaning. Intelligent thought doesn't have to be done at the most fundamental level, but to translate data into usable forms it will often be necessary to analyse it to a deep level before rebuilding it into a higher-level translated form compatible with other data which it needs to be compared with.
Add to that your low post count and lack of references, this thread is beginning to look like an elaborate practical joke. Have fun
If everyone thinks it's a joke, that's fine by me. But someone may know enough to recognise that everything I've said is absolutely on the ball, and if so, it might lead to some useful collaboration. It appears that there is no one else here at the minute doing the kind of work that would lead to that happening, so this thread can probably be allowed to go into hibernation until such a person turns up (which may be never).
Thanks to everyone for your input to this thread - you've given me a much clearer idea of where I should be going with developing my OS, and the result is that I've decided to put compatibility with other OSes on the back burner and concentrate on working out how to add the few bits of capability that I most want to add to it by whatever route looks the quickest. If I need help with that, I'll ask in other threads.