I think the assumption was that "graphic and end-user friendly stuff" is consumer-level software, software where the services model doesn't really make sense.
This has been one of my concerns with the whole services model: The goal of (consumer) software development should be to make software that doesn't need services.
Software doesn't wear out or rust; paying a programmer the way you pay a plumber won't work.
Java, when it comes to handhelds, is theoretically great for the developer, because the developer gets to write an application once and have it run on all the different handhelds..
But it sucks for the user, because they're getting an application that's not taking advantage of the native abilities of the platform. When the platform is as limited as a Pilot or an iPaq, software that is written natively for each particular platform or device to get as much out of it as possible will be much better than software written for the lowest common denominator.
In a situation where the developer has a pretty good idea of where the software will be running (ie someone targetting PocketPC or PalmOS) the "write once run anywhere" benefit of Java doesn't really apply. Or at least, it applies to Java as much as it does to C code - to get the code to run well on both a Pilot and a PocketPC, for example, it's going to have to be somewhat different.. and if you're building a native build for each target anyway then why use Java?
That's one of the reasons Java is doing so well in the server market - the "write once run anywhere" part is really useful, and there aren't really any native GUI features or hardware aspects of the local system that the software needs to exploit; to a developer, pretty much any web server is conceptually the same (and if there isn't enough RAM, the sysadmin can add more, and if it's too slow, well, upgrade the box).
When you're talking about devices as diverse (in CPU speed, RAM, input methods, IO, etc) as handhelds, it's a different story.
For example, in my Java applet if I want to read whether or not the button on the top left corner of the device is pushed in or not, how do I do that? And if I do it so it works on my iPaq, will that same code "write once run anywhere" on the Clie? What button will provide the same input? Will I be able to use the jog dial of the Clie? I don't know the answer to that, but I expect not..
I don't see a lot of desktop Java applications, and the ones that I do see are generally slower and more, um, clunky, than the stuff written natively. And slower and more clunky is the last thing you want on a handheld.
You can use C# to write "Unsafe" code, but it's the runtime that ultimately decides whether or not to let it run. For example, if the VM that the browser creates tries to launch a C# app downloaded from the Internet, and it's "Unsafe", the CLR will refuse to run it.
Difference between C# and ActiveX in this case is that in ActiveX, everything is "Unsafe" and you either take it or leave it. In Java, of course, everything is "safe". C# can go either way.
I really hope that Microsoft simply makes it impossible to run "Unsafe" CLR code in the browser. Not even an option.
Well, he said that MFC doesn't work very well if you try to do something beyond what it was intended for, and that's very true. MFC is a pain to work with as soon as you don't want the default behaviour...
But if you don't want it's default behaviour, don't use it. I wouldn't write a 3D game in MFC, and I wouldn't complain that it was a crappy environment for writing one.
If a technology sucks for what it was designed for then go ahead and beat on it. The early DirectX APIs were rotten 3D game APIs, and that's what they were designed to be. MFC, on the other hand, isn't so bad at what it was designed for.
True but it's unlikely that a patent would invalidate the entire class library. There may be specific algorithms in some of the classes that turn out to be patentable (though Miguel has said they're being careful about that), so if Microsoft says that some particular class is covered by a patent, then the folks implementing the Mono-compatible framework will just reimplement it.
The core stuff, the CLR and the language, are covered by the ECMA standard.
This isn't like Samba, where the Samba guys are basically reverse engineering a proprietary Microsoft protocol (CIFS aside.. it was never really intended to document all of SMB).
With C# and the CLR, well, it's an ECMA standard. Go look it up. And the ECMA standards group has policies that deal with patents on their standards...
Think of the IL (the language the CLR runs) as an instruction set akin to a processor's native instruction set.. Obviously every language can be compiled to to run in assembler..
It may be more efficient to redesign the language to work with the underlying stuff, but I don't think it's a requirement..
Sun proved, when they sued Microsoft, that they don't want Java-the-language being used to generate code to run anywhere but inside Java-the-VM or have direct access to anything but the Java classes.
Microsoft's extensions to Java were allowing Java code to directly instantiate and use COM objects; a really big part of.NET. The CLR is designed to give easy access to the underlying operating system (in a managed manner). Very different goals.
If Sun would have been willing to allow Java to be used this way, then Microsoft would probably have stuck with Visual J++ and the Windows Java framework they were already working on, and we wouldn't have C# or.NET.
They can't keep it "uselessly lagging" if it's already useful enough to be able to write it's own compiler!
If your goal is to be able to run any Microsoft.NET app on Linux then it may lag; but as a new development tool available to folks writing code on Linux, it's perfectly useful the way it is right now.
They would attack the manufacturers of the hardware. Make possession of a promiscuous mp3 player an offense the same way possession of a radar detector or certain types of radios is an offense in some places. Go after the supply chain.
The govt is probably gearing up now for the War on Piracy.:)
Security was designed into XP from the ground up; it's there at the core OS level, it's generally the stuff built on top of it (services like IIS) where the security holes come in.
It seems a lot of the security holes we've been seeing lately are buffer overflows and stupid default configurations.. These are things that don't require a redesign to fix..
A month's worth of code review could do a lot of good IMHO.
A lot of commercial software uses pieces licensed from other people, and sometimes the people who developed the licensed technology aren't willing to release it.
I know of one scanner company that normally plays nicely (releases specs for the protocols for their SCSI and USB scanners) that cannot release their parallel protocol because of agreements they have with the suppliers of the chipsets in the scanners... Yet the company fields hostile "release the protcol you idiots" spam from "Open Source" advocates.
It's cool when a company can release an old product free - but in some cases it's just not possible...
They're not for IIS; The.chm format is Microsoft's way of distributing help and online documentation. It's a replacement for the old.HLP file that uses HTML instead of RTF.
A.CHM is a compilation of HTML files with support for a tree style view of the documents in it, as well as binary files (examples), images, browse order (associating a "forward" button with the page that represents the page after the current page), searching, etc...
It's a pretty handy way of distributing online documentation, kinda like PDF but for HTML.
Being HTML you can still dynamically resize the window and have the text reflow - In my opinion that's it's big advantage over PDF. A PDF is basically a rendering of a page - not really what you want for an online help system.
It probably ends up just being a bunch of standard filenames inside a.CAB file (the.CAB format is what Microsoft puts a lot of their install packages and other archives into).
Does HeUnique even read the messages on his own site? Folks here figured out pretty quickly that it's obviously a fake, and he posts an update to the story asking someone to try it.
The XBox HD contents have been dumped; read up on it at www.xboxhacker.net. It's going to be a lot of work for anyone to make an emulator, or even to get unsigned code to run on the box - but some progress has been made..
The XBox uses the IDE password mechanism to prevent you from dropping the drive into a PC and reading it, but if you connect the drive to the PC *after* the XBox has unlocked it (without resetting the drive), then you can read from it. Course your PC BIOS didn't see it at boot so you need to write custom software to talk to it.. but that's been done..
The folks at xboxhacker are very determined. It's fun to watch.
Which Windows? I know everyone loves to beat up the unreliability of the 16 bit Windows kernel, but with Windows 2000 and Windows XP it's a different story.
In a few years Microsoft won't be selling any of the Win9x series.. then the extra stability of Linux won't be such a novelty to users, and Linux folks will have to come up with a better line than a more stable kernel.
Or to say it differently, when most Windows users don't find Windows to be unstable, telling them that you've got a more stable OS isn't going to convince them.
- Steve
Re: How does it play DVD's?
on
XBox Released
·
· Score: 2
Yeah but the hardware can do it. Think about it. DVD data is just data on a disk, software can read it - and software can set the display mode to 480p (progressive-scan). So a completely software solution could enable progressive-scan DVD.
- Steve
Re: How does it play DVD's?
on
XBox Released
·
· Score: 2
I've been wondering about this - it's my only reason for holding off on purchasing an Xbox.
I want to be able to use it as a progressive scan DVD player. The hardware can do it, but Microsoft has chosen not to make this feature available to me.
My reasoning is this: Progressive-scan DVD players are expensive (average about $500), and with the Xbox being around $299, many people would buy the Xbox instead of a dedicated progressive-scan player.
If Microsoft is really selling the Xbox at a loss and making the money back on games, then having people buy it to use it as a DVD player with no intention of ever buying games would be bad.
Anyway, since the hardware can do it, I'm hoping someone (Intervideo? Cyberlink?) will come out with a software DVD player that works in the non-interlaced mode. It's certainly possible.
(Oh and then there's the other issue of there being no VGA output available.. anyone have a link to someone selling an adapter?)
The analogy is flawed because, in the case of the tires, keeping the information a secret will result in more deaths, while in the case of exploits, keeping the details secret will (generally) lead to fewer incidents.
There have been plenty of cases where vendors have found the holes themselves and released patches. According to your logic the vendor should say "There's a hole in our product; here's how to exploit it; we don't have a fix yet" even when there have been no known exploits.
Again.. it's not possible for more death to occur by telling people that the tires are flawed.. It is possible for more exploits to happen with full disclosure.
I'm all for full disclosure once a patch is available, and I'm all for full disclosure after a fairly aggressive time allowance for the vendor to come up with a patch (like, two weeks). I'd also go for full disclosure once there's a well known exploit in the wild - but if I find a vulnerability and report it to Microsoft, I think the correct thing to do is wait until Microsoft releases a patch before telling the world about it.
How is he removing them freedom? He gives the people that buy his software the source code. If you don't buy his software, you don't get it.
He hasn't taken away any freedom. He just hasn't given you anything.
You want freedom not his crappy software. Well, then don't buy it. Problem solved.
- Steve
I think the assumption was that "graphic and end-user friendly stuff" is consumer-level software, software where the services model doesn't really make sense.
This has been one of my concerns with the whole services model: The goal of (consumer) software development should be to make software that doesn't need services.
Software doesn't wear out or rust; paying a programmer the way you pay a plumber won't work.
- Steve
Java, when it comes to handhelds, is theoretically great for the developer, because the developer gets to write an application once and have it run on all the different handhelds..
But it sucks for the user, because they're getting an application that's not taking advantage of the native abilities of the platform. When the platform is as limited as a Pilot or an iPaq, software that is written natively for each particular platform or device to get as much out of it as possible will be much better than software written for the lowest common denominator.
In a situation where the developer has a pretty good idea of where the software will be running (ie someone targetting PocketPC or PalmOS) the "write once run anywhere" benefit of Java doesn't really apply. Or at least, it applies to Java as much as it does to C code - to get the code to run well on both a Pilot and a PocketPC, for example, it's going to have to be somewhat different.. and if you're building a native build for each target anyway then why use Java?
That's one of the reasons Java is doing so well in the server market - the "write once run anywhere" part is really useful, and there aren't really any native GUI features or hardware aspects of the local system that the software needs to exploit; to a developer, pretty much any web server is conceptually the same (and if there isn't enough RAM, the sysadmin can add more, and if it's too slow, well, upgrade the box).
When you're talking about devices as diverse (in CPU speed, RAM, input methods, IO, etc) as handhelds, it's a different story.
For example, in my Java applet if I want to read whether or not the button on the top left corner of the device is pushed in or not, how do I do that? And if I do it so it works on my iPaq, will that same code "write once run anywhere" on the Clie? What button will provide the same input? Will I be able to use the jog dial of the Clie? I don't know the answer to that, but I expect not..
I don't see a lot of desktop Java applications, and the ones that I do see are generally slower and more, um, clunky, than the stuff written natively. And slower and more clunky is the last thing you want on a handheld.
- Steve
Pants are optional, but recommended for you...
How do you explain Microsoft funding the development of a FreeBSD port of the .NET runtime and compiler?
Some details are here
- Steve
Sounds like basically the same thing, no?
- Steve
You can use C# to write "Unsafe" code, but it's the runtime that ultimately decides whether or not to let it run. For example, if the VM that the browser creates tries to launch a C# app downloaded from the Internet, and it's "Unsafe", the CLR will refuse to run it.
Difference between C# and ActiveX in this case is that in ActiveX, everything is "Unsafe" and you either take it or leave it. In Java, of course, everything is "safe". C# can go either way.
I really hope that Microsoft simply makes it impossible to run "Unsafe" CLR code in the browser. Not even an option.
- Steve
Well, he said that MFC doesn't work very well if you try to do something beyond what it was intended for, and that's very true. MFC is a pain to work with as soon as you don't want the default behaviour...
:)
But if you don't want it's default behaviour, don't use it. I wouldn't write a 3D game in MFC, and I wouldn't complain that it was a crappy environment for writing one.
If a technology sucks for what it was designed for then go ahead and beat on it. The early DirectX APIs were rotten 3D game APIs, and that's what they were designed to be. MFC, on the other hand, isn't so bad at what it was designed for.
Same with OLE/COM. MAPI, well, MAPI sucks.
- Steve
You're saying that Microsoft's technologies don't work very well for things they weren't designed for? Gee, no kidding.
And TCP/IP makes a terrible 3D graphic API.
- Steve
True but it's unlikely that a patent would invalidate the entire class library. There may be specific algorithms in some of the classes that turn out to be patentable (though Miguel has said they're being careful about that), so if Microsoft says that some particular class is covered by a patent, then the folks implementing the Mono-compatible framework will just reimplement it.
The core stuff, the CLR and the language, are covered by the ECMA standard.
- Steve
This isn't like Samba, where the Samba guys are basically reverse engineering a proprietary Microsoft protocol (CIFS aside.. it was never really intended to document all of SMB).
With C# and the CLR, well, it's an ECMA standard. Go look it up. And the ECMA standards group has policies that deal with patents on their standards...
- Steve
Think of the IL (the language the CLR runs) as an instruction set akin to a processor's native instruction set.. Obviously every language can be compiled to to run in assembler..
It may be more efficient to redesign the language to work with the underlying stuff, but I don't think it's a requirement..
- Steve
Sun proved, when they sued Microsoft, that they don't want Java-the-language being used to generate code to run anywhere but inside Java-the-VM or have direct access to anything but the Java classes.
.NET. The CLR is designed to give easy access to the underlying operating system (in a managed manner). Very different goals.
.NET.
Microsoft's extensions to Java were allowing Java code to directly instantiate and use COM objects; a really big part of
If Sun would have been willing to allow Java to be used this way, then Microsoft would probably have stuck with Visual J++ and the Windows Java framework they were already working on, and we wouldn't have C# or
- Steve
They can't keep it "uselessly lagging" if it's already useful enough to be able to write it's own compiler!
.NET app on Linux then it may lag; but as a new development tool available to folks writing code on Linux, it's perfectly useful the way it is right now.
If your goal is to be able to run any Microsoft
- Steve
They would attack the manufacturers of the hardware. Make possession of a promiscuous mp3 player an offense the same way possession of a radar detector or certain types of radios is an offense in some places. Go after the supply chain.
:)
The govt is probably gearing up now for the War on Piracy.
-Steve
Security was designed into XP from the ground up; it's there at the core OS level, it's generally the stuff built on top of it (services like IIS) where the security holes come in.
It seems a lot of the security holes we've been seeing lately are buffer overflows and stupid default configurations.. These are things that don't require a redesign to fix..
A month's worth of code review could do a lot of good IMHO.
- Steve
A lot of commercial software uses pieces licensed from other people, and sometimes the people who developed the licensed technology aren't willing to release it.
I know of one scanner company that normally plays nicely (releases specs for the protocols for their SCSI and USB scanners) that cannot release their parallel protocol because of agreements they have with the suppliers of the chipsets in the scanners... Yet the company fields hostile "release the protcol you idiots" spam from "Open Source" advocates.
It's cool when a company can release an old product free - but in some cases it's just not possible...
- Steve
A .CHM is a compilation of HTML files with support for a tree style view of the documents in it, as well as binary files (examples), images, browse order (associating a "forward" button with the page that represents the page after the current page), searching, etc...
It's a pretty handy way of distributing online documentation, kinda like PDF but for HTML.
Being HTML you can still dynamically resize the window and have the text reflow - In my opinion that's it's big advantage over PDF. A PDF is basically a rendering of a page - not really what you want for an online help system.
It probably ends up just being a bunch of standard filenames inside a .CAB file (the .CAB format is what Microsoft puts a lot of their install packages and other archives into).
As for the format it's in, here's what I found on Google.
- Steve
Why would anyone pay for bottled water when you can get water for free? Free is better than not free isn't it?
Does HeUnique even read the messages on his own site? Folks here figured out pretty quickly that it's obviously a fake, and he posts an update to the story asking someone to try it.
The XBox uses the IDE password mechanism to prevent you from dropping the drive into a PC and reading it, but if you connect the drive to the PC *after* the XBox has unlocked it (without resetting the drive), then you can read from it. Course your PC BIOS didn't see it at boot so you need to write custom software to talk to it.. but that's been done..
The folks at xboxhacker are very determined. It's fun to watch.
> a) Windows is unstable. Period.
Which Windows? I know everyone loves to beat up the unreliability of the 16 bit Windows kernel, but with Windows 2000 and Windows XP it's a different story.
In a few years Microsoft won't be selling any of the Win9x series.. then the extra stability of Linux won't be such a novelty to users, and Linux folks will have to come up with a better line than a more stable kernel.
Or to say it differently, when most Windows users don't find Windows to be unstable, telling them that you've got a more stable OS isn't going to convince them.
- Steve
Yeah but the hardware can do it. Think about it. DVD data is just data on a disk, software can read it - and software can set the display mode to 480p (progressive-scan). So a completely software solution could enable progressive-scan DVD.
- Steve
I've been wondering about this - it's my only reason for holding off on purchasing an Xbox.
I want to be able to use it as a progressive scan DVD player. The hardware can do it, but Microsoft has chosen not to make this feature available to me.
My reasoning is this: Progressive-scan DVD players are expensive (average about $500), and with the Xbox being around $299, many people would buy the Xbox instead of a dedicated progressive-scan player.
If Microsoft is really selling the Xbox at a loss and making the money back on games, then having people buy it to use it as a DVD player with no intention of ever buying games would be bad.
Anyway, since the hardware can do it, I'm hoping someone (Intervideo? Cyberlink?) will come out with a software DVD player that works in the non-interlaced mode. It's certainly possible.
(Oh and then there's the other issue of there being no VGA output available.. anyone have a link to someone selling an adapter?)
- Steve
The analogy is flawed because, in the case of the tires, keeping the information a secret will result in more deaths, while in the case of exploits, keeping the details secret will (generally) lead to fewer incidents.
There have been plenty of cases where vendors have found the holes themselves and released patches. According to your logic the vendor should say "There's a hole in our product; here's how to exploit it; we don't have a fix yet" even when there have been no known exploits.
Again.. it's not possible for more death to occur by telling people that the tires are flawed.. It is possible for more exploits to happen with full disclosure.
I'm all for full disclosure once a patch is available, and I'm all for full disclosure after a fairly aggressive time allowance for the vendor to come up with a patch (like, two weeks). I'd also go for full disclosure once there's a well known exploit in the wild - but if I find a vulnerability and report it to Microsoft, I think the correct thing to do is wait until Microsoft releases a patch before telling the world about it.