I particularly like the take The Register has on this quote:
A Redmond spokesman quoted by Reuters described the VM as "a lot of code that many users don't need.".
Now if only the Beast could do the same for the many megabytes of COM+ code it bundles with every copy of Windows 2000 (a quick run through our Services list shows we've got Microsoft Transaction Co-Ordinator, Event Publisher, Transaction Services Client and a ton of others stuff we didn't ask for), we'd be prepared to call it evens. ®
Actually, even if he did generate optimal code the benchmarks are meaningless. How maintainable is the code? How many bugs did he generate when writing it? How long did it take to write? How much will it cost me to train all my Visual Basic developers to switch over to OCaml?
And so on, and so forth...
I like to think that in 100 years time, we will have computers that would scoff at this definition of intelligence.
Actually, neither of these definitions tries to define intelligence itself, which I think is one of the reason why they're my favourite definitions of AI. They certainly don't attempt to enforce any human-based implementation for AIs - the first definition defines AI not through the way in which accomplishes tasks, but the tasks which it accomplishes.
One of the great weaknesses in a lot of arguments about AI (in particular those put forward by such AI 'specialists' as KevinWarwick) is a failure to define intelligence up front, or even give a few broad descriptions of what might be seen as intelligent. It's probably one of the more difficult definitions to come up with, and defining a test for it is next to impossible. Behaviour that appears intelligent can be extremely stupid. Likewise, behaviour that appears to require low intelligence may involve a lot of it. The Turing test is often put forward as a test of intelligence, but it's highly flawed: having intelligence does not mean needing to be capable of communicating with a human being. If an American was acting as the observer in a Turing test, then a Russian would fail the test - surely if such a simple thing as a language barrier between different races of the same species can break the test, communication between two entirely different forms of intelligence would render it useless.
I doubt the defense department would be so interested in Cyc if it were "just a nice toy".:)
Sure they would. Plenty of things that are nothing more than 'nice toys' for the AI world have practical applications. The question isn't whether it's useful, but whether it's furthering the bounds of what AI can do, and the suggestion is that it isn't.
Artificial Intelligence is defined differently by different people but one widely accepted definition is "The ability for a machine to perform tasks which are normally thought to require intelligence".
Minsky, I believe. The version I heard was "The ability for a machine to perform tasks which if carried out by a human being would be perceived as requiring intelligence."
I also like another definition of AI, as provided by that greatest of scholars, Anonymous: "Artificial Intelligence is the science of making computers that behave like the ones in the movies."
Searle's thought experiments are by no means universally accepted as a 'proof' that Turing machines cannot be intelligent. I recall that we spent almost an entire lecture during my Artificial Intelligence MSc course looking at arguments against the Chinese Room argument. There are interesting ideas there, but I rank the idea that they provide definitive proof that Turing machines cannot be intelligent up there with the idea that Kevin Warwick is a cyborg, as did many of the staff.
Oh, Java APPLETS crash all of the time. And any college that'll try to teach computer programming is going to try to do it with applets, at least partially.
Again, you're trying to blame the language for bad teaching approaches. I've seen courses taught with buggy C compilers. Does that make C an inherently bad language? Of course not.
There is no requirement to teach applets as part of a programming course that incorporates Java, and IME courses which do concentrate on applets are normally outdated: applets don't play as large a role in Java today as they did back in the days of 1.0.x - most of the roles Java was expected to fulfil through applets are now using other technologies, from simple animated GIFs to Shockwave applications.
The last good Java course I saw didn't cover applets at all, except in passing. It did, however, cover enough to make it possible for students to learn how to write applets if they needed to.
The claim here is that Java is a better language to teach beginning computer programmers.
Fair enough. Quibble over granularity rather than answering that issue. The overall question is whether Java is a better language to teach beginner programmers (or more accurately whether it's a good language to teach them) - the issue that you misunderstood was the question of whether Java is 'cleaner' than C++. This has nothing to do with buggy VMs, and everything to do with a clean and simple object model.
By the way, you CAN'T write global variables in Java - everything is inside of a class!
public class Globals {
public static int GLOBAL_INT;
public static String GLOBAL_STRING;
}
Ugly, yes, but I believe you'll find it does the trick. It's actually one of those recurring features you see in bad Java code where people are trying to write C++ in Java.
it's (in my opinion) FAR easier to code Java, from an understanding of C++, than it is to code C++ from an initial understanding of Java.
And if we step back a little from your argument, what you're actually saying is that it's easier to learn to code in Java than it is to code in C++ (something that I'd personally agree with). And that's a good argument for using Java over C++ in my book: there's much less time getting to grips with (and struggling with) the language, with the result that more time can be dedicated to learning what you can actually do with it. Which is presumably what people are there to learn anyway.
Simply put, I don't want someone using a hashtable if they can't program one themselves.
I sincerely hope that's sarcasm. The idea that you have to be able to write something in order to use it is so fundamentally wrong it makes me shudder. Incidentally, I hope you can write web browsers and operating systems. Otherwise you've got no right posting to Slashdot.
the class libraries have been debugged to death after five years.
You mean it takes about five years for Sun to fix a bug once it's well-known and they've been provided with a working fix?:^P (Witness the bug preventing any program which calls getDefaultToolkit() from terminating, which has led to years of truly horrific user interface application design, and has finally been fixed in 1.4)
No it's not. Java crashes more often than C++, with provably correct code.
Regardless of whether that's the case (it isn't, IME) that's not what was being said in the first place, I believe. The claim here, AFAICT, is that Java is a cleaner, better designed OO language than C++. And I certainly wouldn't argue with that.
And you're never going to write device drivers in Java.
Most people are never going to write device drivers at all. Why is this relevant?
Any reasonably competent C/C++ coder can pick up Java in a heartbeat.
And frequently do, with the result that they write truly hideous Java code. I've seen the result of people taking this attitude, and it's not pretty. It's frequently possible to tell that people were C++ coders before becoming Java coders from the quality and style of their code.
But the problem is that most simple projects are written in one class, which essentially teaches them to use global variables - which is not good.
If that's what people are being taught, then it's the quality of the teaching that is to blame, not the quality of the language. No Java coder worth their salt would write like that. Sounds more like the sort of thing I've seen from bad C++ coders, in fact.:^P
If you wanna use java you have to play SUNs game because they've got the only halfway useable compilers / interpreters / JIT compilers.
Sorry, but that's just plain untrue. IBM provide compilers and JVMs that are every bit as good as Sun's and in many cases better (check out pretty much any performance comparison for 1.1.x JVMs, for example...)
Since there's no requirement here for the IDE to be free, there are plenty of other (dare I suggest better) options for a Linux-based IDE for Java. VisualAge for Java is a nice one, IMHO.
Here you can search a range of dictionaries, giving this definition (among others):
verb (past sported, past participle sported, present participle sporting, 3rd person present singular sports)
1. transitive verb wear: to wear or display something, usually proudly or with the intention of impressing others (informal)
Well, given that Linux is already available for the PS2, it seems like a reasonable assumption. I can't see them licensing WinCE, what with one thing and another...
Yet another 3D-without-goggles thing. Yawn.
on
3D w/o Goggles
·
· Score: 4
I first heard reports of imminent 3D without goggles when I was in secondary school. Since then I've been to university (twice) and been working for three years since then.
So excuse my scepticism if I say that I'll believe it when I see it.
That's not the XP model, though. There you write the test, and then fix it as simply as possible, then write the next test. There isn't any code to stress and break until after the test has been written.
That would be true if XP was expected to handle all testing through this mechanism: however it isn't, or at least not in any practical application of it that I've ever come across. There is no replacement for real testers, the evil sort with black waxed moustaches who spend half their time tying maidens to rail tracks, and the other half crashing your finely tested code.
Of course, XP makes better use of these testers than many other methodologies: as soon as a tester finds a way to break your program you don't fix it. Instead, you write a test that demonstrates the bug, and then fix it. As a result, the error won't arise again.
I don't have much XP experience, but *good*. You're supposed to think up the unit tests that break your code - then fix the code so that it isn't broken any more. When you can't think of any more tests, the code works.
As I understand it, not only does XP not encourage you to design for re-use, it does not allow re-use outside a single project, since that would violate the principle of providing only the simplest possible code to pass a test.
As far as I'm concerned XP is an inherently broken methodology. Then again, as far as I'm concerned, so is everything else, so why not use XP anyway?;^)
So? Where does it say that emulation == a decrease in speed?
:looks up:
Re: Native is MUCH Faster
You might want to change the subject. Or at the very least, read it.;^)
The real point isn't semantic quibblings over a single dictionary definition of emulation that clearly hasn't been thought through (since it defines as emulators many things that would generally be agreed not to be emulators, including drivers, Linux and Bruce Willis). The real point is whether native code is necessarily faster than Wine, and because Wine does not emulate every aspect of the target system, this is not the case.
It was also Bill Gates who once said "What's a network?" - a quote that really doesn't get enough coverage these days. Get the full story.
Of course, this isn't about Bill Gates, though. It's naive to assume that Microsoft don't know what open source is - they see it is a serious threat, and any apparent confusion over what it is (confusing open source with free software, or the GPL with Marxism) is just more FUD.
And why should open source force MS to drop their prices? If people are still willing to pay $500 for Office then more power to them. They like the features it offers, they like the support and accountability, they like the hundreds of books on Word for Dummies. You're not likely to get all that for an open source product. There's room in the world for both models, which is something the hardliners from both sides seem to be unaware of. Or just ignoring.
Sounds ideal to me. I wouldn't want any potentially crackable database containing triggers for my nuclear devices. :^P
I particularly like the take The Register has on this quote:
Actually, even if he did generate optimal code the benchmarks are meaningless. How maintainable is the code? How many bugs did he generate when writing it? How long did it take to write? How much will it cost me to train all my Visual Basic developers to switch over to OCaml? And so on, and so forth...
Why not? Just stick to a standard (or even better - slightly nonstandard) way of transliterating, and you shouldn't have any problem.
Of course, the downside of this approach is that if someone discovers your system, all the passwords you ever had are then known to them.
Actually, neither of these definitions tries to define intelligence itself, which I think is one of the reason why they're my favourite definitions of AI. They certainly don't attempt to enforce any human-based implementation for AIs - the first definition defines AI not through the way in which accomplishes tasks, but the tasks which it accomplishes.
One of the great weaknesses in a lot of arguments about AI (in particular those put forward by such AI 'specialists' as Kevin Warwick) is a failure to define intelligence up front, or even give a few broad descriptions of what might be seen as intelligent. It's probably one of the more difficult definitions to come up with, and defining a test for it is next to impossible. Behaviour that appears intelligent can be extremely stupid. Likewise, behaviour that appears to require low intelligence may involve a lot of it. The Turing test is often put forward as a test of intelligence, but it's highly flawed: having intelligence does not mean needing to be capable of communicating with a human being. If an American was acting as the observer in a Turing test, then a Russian would fail the test - surely if such a simple thing as a language barrier between different races of the same species can break the test, communication between two entirely different forms of intelligence would render it useless.
Sure they would. Plenty of things that are nothing more than 'nice toys' for the AI world have practical applications. The question isn't whether it's useful, but whether it's furthering the bounds of what AI can do, and the suggestion is that it isn't.
Minsky, I believe. The version I heard was "The ability for a machine to perform tasks which if carried out by a human being would be perceived as requiring intelligence."
I also like another definition of AI, as provided by that greatest of scholars, Anonymous: "Artificial Intelligence is the science of making computers that behave like the ones in the movies."
Searle's thought experiments are by no means universally accepted as a 'proof' that Turing machines cannot be intelligent. I recall that we spent almost an entire lecture during my Artificial Intelligence MSc course looking at arguments against the Chinese Room argument. There are interesting ideas there, but I rank the idea that they provide definitive proof that Turing machines cannot be intelligent up there with the idea that Kevin Warwick is a cyborg, as did many of the staff.
Again, you're trying to blame the language for bad teaching approaches. I've seen courses taught with buggy C compilers. Does that make C an inherently bad language? Of course not.
There is no requirement to teach applets as part of a programming course that incorporates Java, and IME courses which do concentrate on applets are normally outdated: applets don't play as large a role in Java today as they did back in the days of 1.0.x - most of the roles Java was expected to fulfil through applets are now using other technologies, from simple animated GIFs to Shockwave applications.
The last good Java course I saw didn't cover applets at all, except in passing. It did, however, cover enough to make it possible for students to learn how to write applets if they needed to.
Fair enough. Quibble over granularity rather than answering that issue. The overall question is whether Java is a better language to teach beginner programmers (or more accurately whether it's a good language to teach them) - the issue that you misunderstood was the question of whether Java is 'cleaner' than C++. This has nothing to do with buggy VMs, and everything to do with a clean and simple object model.
public class Globals {public static int GLOBAL_INT;
public static String GLOBAL_STRING;
}
Ugly, yes, but I believe you'll find it does the trick. It's actually one of those recurring features you see in bad Java code where people are trying to write C++ in Java.
And if we step back a little from your argument, what you're actually saying is that it's easier to learn to code in Java than it is to code in C++ (something that I'd personally agree with). And that's a good argument for using Java over C++ in my book: there's much less time getting to grips with (and struggling with) the language, with the result that more time can be dedicated to learning what you can actually do with it. Which is presumably what people are there to learn anyway.
I sincerely hope that's sarcasm. The idea that you have to be able to write something in order to use it is so fundamentally wrong it makes me shudder. Incidentally, I hope you can write web browsers and operating systems. Otherwise you've got no right posting to Slashdot.
You mean it takes about five years for Sun to fix a bug once it's well-known and they've been provided with a working fix? :^P (Witness the bug preventing any program which calls getDefaultToolkit() from terminating, which has led to years of truly horrific user interface application design, and has finally been fixed in 1.4)
Regardless of whether that's the case (it isn't, IME) that's not what was being said in the first place, I believe. The claim here, AFAICT, is that Java is a cleaner, better designed OO language than C++. And I certainly wouldn't argue with that.
Most people are never going to write device drivers at all. Why is this relevant?
And frequently do, with the result that they write truly hideous Java code. I've seen the result of people taking this attitude, and it's not pretty. It's frequently possible to tell that people were C++ coders before becoming Java coders from the quality and style of their code.
If that's what people are being taught, then it's the quality of the teaching that is to blame, not the quality of the language. No Java coder worth their salt would write like that. Sounds more like the sort of thing I've seen from bad C++ coders, in fact. :^P
Sorry, but that's just plain untrue. IBM provide compilers and JVMs that are every bit as good as Sun's and in many cases better (check out pretty much any performance comparison for 1.1.x JVMs, for example...)
Since there's no requirement here for the IDE to be free, there are plenty of other (dare I suggest better) options for a Linux-based IDE for Java. VisualAge for Java is a nice one, IMHO.
A great resource for such questions can be found at:
Here you can search a range of dictionaries, giving this definition (among others):A good back massage can work wonders. Not just a through-the-clothes shoulder rub, but a full Swedish-style massage with oil. Lovely.
Well, given that Linux is already available for the PS2, it seems like a reasonable assumption. I can't see them licensing WinCE, what with one thing and another...
I first heard reports of imminent 3D without goggles when I was in secondary school. Since then I've been to university (twice) and been working for three years since then.
So excuse my scepticism if I say that I'll believe it when I see it.
That's not the XP model, though. There you write the test, and then fix it as simply as possible, then write the next test. There isn't any code to stress and break until after the test has been written.
That would be true if XP was expected to handle all testing through this mechanism: however it isn't, or at least not in any practical application of it that I've ever come across. There is no replacement for real testers, the evil sort with black waxed moustaches who spend half their time tying maidens to rail tracks, and the other half crashing your finely tested code.
Of course, XP makes better use of these testers than many other methodologies: as soon as a tester finds a way to break your program you don't fix it. Instead, you write a test that demonstrates the bug, and then fix it. As a result, the error won't arise again.
The book wasn't designed. He just kept adding chapters until it passed all the tests. :^)
I don't have much XP experience, but *good*. You're supposed to think up the unit tests that break your code - then fix the code so that it isn't broken any more. When you can't think of any more tests, the code works.
As I understand it, not only does XP not encourage you to design for re-use, it does not allow re-use outside a single project, since that would violate the principle of providing only the simplest possible code to pass a test.
As far as I'm concerned XP is an inherently broken methodology. Then again, as far as I'm concerned, so is everything else, so why not use XP anyway? ;^)
:looks up:
Re: Native is MUCH Faster
You might want to change the subject. Or at the very least, read it. ;^)
The real point isn't semantic quibblings over a single dictionary definition of emulation that clearly hasn't been thought through (since it defines as emulators many things that would generally be agreed not to be emulators, including drivers, Linux and Bruce Willis). The real point is whether native code is necessarily faster than Wine, and because Wine does not emulate every aspect of the target system, this is not the case.
It was also Bill Gates who once said "What's a network?" - a quote that really doesn't get enough coverage these days. Get the full story.
Of course, this isn't about Bill Gates, though. It's naive to assume that Microsoft don't know what open source is - they see it is a serious threat, and any apparent confusion over what it is (confusing open source with free software, or the GPL with Marxism) is just more FUD.
And why should open source force MS to drop their prices? If people are still willing to pay $500 for Office then more power to them. They like the features it offers, they like the support and accountability, they like the hundreds of books on Word for Dummies. You're not likely to get all that for an open source product. There's room in the world for both models, which is something the hardliners from both sides seem to be unaware of. Or just ignoring.