If C were "run anywhere" I could trivially compile Evince 0.8.0 in FC6, right? If Python were, I could easily run Meld in Windows, right?
Now you may, rightfully so, say that it is not the languages, it is the libraries. Or you could, perfectly reasonably, point out that you can write non-portable Java too.
But the point still is: Java, with its huge libraries and VM is extremely portable. With just a minor amount of work (mainly testing) you can easily write complex programs which work in many platforms. No need to hunt down more or less portable libraries which more or less work together most of the time in most of the platforms.
Something you really cannot do with C or Python or...
The problem with Linux is that it is getting worse. Almost every release since about 2.6.10 has been worse than previous (there are exceptions, maybe 2.6.16 is the best, or maybe 2.6.20).
First, the time for 2.8.0 is long overdue - we need official stable kernel.
Second, we need stable ABI, for a while. There is no point in forcing users to compile and test the drivers. Claiming that drivers in the kernel tree gets enough testing is just plain silly, everybody knows that far far too many things have broken far too many times.
Unfortunately it seems neither is going to happen. Fortunately there is competition. One of them is OpenSolaris. Stable, reliable, quickly improving. Seems to me that some of the competiton (*BSDs, OpenSolaris,...) might go past Linux soon (2008, maybe). This is why Torvalds fears OpenSolaris gets the drivers.
The point is that I get to pick the license for the software I write. I can say that company X cannot use my source if I so want. I can, and will, say that any company cannot use my source to lock me out.
And actually, if it were feasible, I would *love* to rule out "defense" (arms) business. Unfortunately it is not.
The way: 1. Get "the signature" (allowing license change) from as many developers as possible. 2. Those who do not want or cannot be contacted: 2a. Identify the code they wrote and rewrite it. Exactly like writing around SCO/Microsoft IP/patents would have happened.
I disagree completely. After reading CDDL (the license Sun uses for OpenSolaris at the moment) it is very clear to me that the patent clause is very important to Sun.
After all, MPL (Mozilla public license) has only one major difference to GPLv2 - patent clause. CDDL is essentially same as MPL.
And, actually, Solaris would benefit much more about Linux (kernel) than other way round - the easiest parts to integrate are device drivers which Solaris needs.
And overall (ignoring Torvalds and Sun) GPL is a big step forwards.
There's nothing to stop anyone from producing hardware compatible with Tivo's code, minus the "keys". Tell me, why on earth should I write and distribute my code with a license that allows Tivo to use it without giving me back anything?
Actually you cannot add redundancy (fault tolerancy) to an existing zpool. You can add space to a stripe, though. And, at least right now, you cannot remove a disk from a stripe (although I have heard it would be available "soon").
I would be really surprised if ZFS were default on Apple. It is, after all, the first incarnation of the file system in OSX. Even Sun does not have bootable ZFS (opensolaris just have bootable mirrors, not raidz).
The advantages it gives (easy management, snapshots, crc's, speed,...) are big, but there is no need to put it as default. There is no extra bloat as the old file systems must be supported anyway.
I myself will be using ZFS on my next (home) file server, no doubt.
Yes, RAII is very neat, and one of the things where Java lags.
But lets see, e.g. Wikipedia example of RAII. The file objects cannot be put into STL containers because they are not copyable. Making them copyable... just to define how should e.g. write behave is a big task. Not worth it.
Another example: I've got a data structure which would benefit from using shared_ptr (heavy concurrent use). Unfortunately shared_ptr is not "compatible" with normal pointer so I would have to change every user of the data structures. Hundreds of users and several thousands of code lines. Impractical.
In e.g. Java the change would be much smaller (use ConcurrentSkipListMap instead of TreeMap), most likely doable in a week (with testing, of course).
And this is my point. The several different ways of telling "I've got an object" is not an advantage, it is a hindrance. The different methods do have their advantages (performance/RAII/...) but in general they are just making my job harder than necessary.
After all, the amount of file/database/... objects whose life time is within one method is several orders of magnitude rarer than memory only objects - at least for me.
The effect in Java is like every pointer (or object reference or whatever you want to call them) were shared_ptr (except better).
The point I (the AC) was trying to make that HLLs do not necessarily need lot of different kind of "handles" to an object, one suffices.
For example, you can have weak pointers in Java - except that they are 100% interchangeable with "normal" ones. In C++ smart pointers are not. So, IMHO the Java model actually does work better than C++ in many ways (not always, not in every respect, but most of the time).
I plan on doing similar setup on the autumn. Except I'll use ZFS/raid-z2 and boot from USB flash. With ZFS the setup is quick and very easy. With ZFS you get cheap snapshots. Reliability should be marginally better than with HW RAID. Other than those, there is no big difference.
Thank god OS X, Windows, Solaris, etc. developers can innovate without breaking everything in every change. Thank god ATI and NVidia test their drivers instead of giving source to those who cannot. If ABI/API changes too often it means decreased security, not improved. Security fixes extremely rarely need to change ABI. Most importantly, stable ABI/API means increased reliability.
That said this is not what a typical home user with only a hand full of disk drives and users needs. Perhaps does not *need*, but the advantage over e.g. ext3 is huge.
If you do not want redundancy you can stripe the disks and the performance will increase almost linearly (depending on ATA/SATA/motherboard/...). And you've got end-to-end checksums, simple administration, trivial snapshots, etc.
Yes, ZFS do have its limitations, it is no silver bullet for every system (biggest IMHO is inability to remove a disk from a stripe even if there would be enough space).
I'm not so worried about NSA and like, but spying agencies like CIA. Before 9/11 the most important job for CIA was industrial espionage, to help American companies.
I think everybody agrees 1. CIA is not the only player (organized crime...) 2. All of them have several viruses (& trojans/worms/rootkits/...) ready to launch against several OS's (as you said). 3. Whenever you become good enough target they will come - unless your security is pretty close perfect.
Varied configuration has the disadvantage that any one of them might be penetrable, giving access to LAN and hugely bigger attack vector. But it is the only way against DoS.
I'd recommend hardware firewall (and proper security practices in LAN).
I am extremely surprised that e.g. Creative still sells mp3 players with "plays-for-sure", even after been screwed by Microsoft once.
People just don't learn: cooperation with Microsoft is one way street.
If all the programs I own worked just as well under Linux than they do in WinXP, I'd change immediately. WHY???
I am a *nix fanboy, but I do not understand why would you first pay for a Windows license and then "immediately change".
If Windows works for you (better), why on earth move? Is Microsoft so horrible? Is XP so horrible? Is either so horrible you are willing to pay for commercial Linux applications and/or different and/or missing applications?
If not, then, just why? The company providing Windows compatibility you are looking after is called Microsoft. You do not need to learn new programs. All your problems solved!
unicode allows more than one representation for some characters Unicode states how normalization should occur: http://www.unicode.org/unicode/reports/tr15/.
Is there some problems in this or what are you referring to?
If C were "run anywhere" I could trivially compile Evince 0.8.0 in FC6, right?
...
If Python were, I could easily run Meld in Windows, right?
Now you may, rightfully so, say that it is not the languages, it is the libraries. Or you could, perfectly reasonably, point out that you can write non-portable Java too.
But the point still is: Java, with its huge libraries and VM is extremely portable. With just a minor amount of work (mainly testing) you can easily write complex programs which work in many platforms. No need to hunt down more or less portable libraries which more or less work together most of the time in most of the platforms.
Something you really cannot do with C or Python or
The problem with Linux is that it is getting worse. Almost every release since about 2.6.10 has been worse than previous (there are exceptions, maybe 2.6.16 is the best, or maybe 2.6.20).
First, the time for 2.8.0 is long overdue - we need official stable kernel.
Second, we need stable ABI, for a while. There is no point in forcing users to compile and test the drivers. Claiming that drivers in the kernel tree gets enough testing is just plain silly, everybody knows that far far too many things have broken far too many times.
Unfortunately it seems neither is going to happen. Fortunately there is competition. One of them is OpenSolaris. Stable, reliable, quickly improving. Seems to me that some of the competiton (*BSDs, OpenSolaris, ...) might go past Linux soon (2008, maybe). This is why Torvalds fears OpenSolaris gets the drivers.
You miss the point.
The point is that I get to pick the license for the software I write. I can say that company X cannot use my source if I so want. I can, and will, say that any company cannot use my source to lock me out.
And actually, if it were feasible, I would *love* to rule out "defense" (arms) business. Unfortunately it is not.
Sorry, but you failed give me any reason to write code in a license which does not force Tivo to give me the HW in a form which I can use it.
See, after all it is (or actually would be - I never wrote anything which Tivo uses) *my* code - *I* can make the rules.
Giving me SW which I cannot use is, obviously, totally useless - the code I wrote most likely was not (to me).
The way:
1. Get "the signature" (allowing license change) from as many developers as possible.
2. Those who do not want or cannot be contacted:
2a. Identify the code they wrote and rewrite it. Exactly like writing around SCO/Microsoft IP/patents would have happened.
Not easy, not "clean", but doable.
I disagree completely. After reading CDDL (the license Sun uses for OpenSolaris at the moment) it is very clear to me that the patent clause is very important to Sun.
After all, MPL (Mozilla public license) has only one major difference to GPLv2 - patent clause. CDDL is essentially same as MPL.
And, actually, Solaris would benefit much more about Linux (kernel) than other way round - the easiest parts to integrate are device drivers which Solaris needs.
And overall (ignoring Torvalds and Sun) GPL is a big step forwards.
Actually you cannot add redundancy (fault tolerancy) to an existing zpool. You can add space to a stripe, though. And, at least right now, you cannot remove a disk from a stripe (although I have heard it would be available "soon").
...) are big, but there is no need to put it as default. There is no extra bloat as the old file systems must be supported anyway.
I would be really surprised if ZFS were default on Apple. It is, after all, the first incarnation of the file system in OSX. Even Sun does not have bootable ZFS (opensolaris just have bootable mirrors, not raidz).
The advantages it gives (easy management, snapshots, crc's, speed,
I myself will be using ZFS on my next (home) file server, no doubt.
Yes, RAII is very neat, and one of the things where Java lags.
But lets see, e.g. Wikipedia example of RAII. The file objects cannot be put into STL containers because they are not copyable. Making them copyable ... just to define how should e.g. write behave is a big task. Not worth it.
Another example: I've got a data structure which would benefit from using shared_ptr (heavy concurrent use). Unfortunately shared_ptr is not "compatible" with normal pointer so I would have to change every user of the data structures. Hundreds of users and several thousands of code lines. Impractical.
In e.g. Java the change would be much smaller (use ConcurrentSkipListMap instead of TreeMap), most likely doable in a week (with testing, of course).
And this is my point. The several different ways of telling "I've got an object" is not an advantage, it is a hindrance. The different methods do have their advantages (performance/RAII/...) but in general they are just making my job harder than necessary.
After all, the amount of file/database/... objects whose life time is within one method is several orders of magnitude rarer than memory only objects - at least for me.
The effect in Java is like every pointer (or object reference or whatever you want to call them) were shared_ptr (except better).
The point I (the AC) was trying to make that HLLs do not necessarily need lot of different kind of "handles" to an object, one suffices.
For example, you can have weak pointers in Java - except that they are 100% interchangeable with "normal" ones. In C++ smart pointers are not. So, IMHO the Java model actually does work better than C++ in many ways (not always, not in every respect, but most of the time).
Or with a glove. My mp3 players touchpad cannot be used with a very thin bicycle gloves. I have no clue why not, but it just doesn't work.
Other than that, the touchpad very often gets a "tap" when none was intended. Not for me.
I plan on doing similar setup on the autumn. Except I'll use ZFS/raid-z2 and boot from USB flash. With ZFS the setup is quick and very easy. With ZFS you get cheap snapshots. Reliability should be marginally better than with HW RAID. Other than those, there is no big difference.
Thank god OS X, Windows, Solaris, etc. developers can innovate without breaking everything in every change.
Thank god ATI and NVidia test their drivers instead of giving source to those who cannot.
If ABI/API changes too often it means decreased security, not improved. Security fixes extremely rarely need to change ABI. Most importantly, stable ABI/API means increased reliability.
And, most importantly, they do not get testing. Those who change API/ABI cannot test.
[...] because revving the whole kernel would be a nightmare.
... finally someone who understand the importance of having stable Kernel Binary Interface.
Ahhh
Seems you also understand the importance of starting 2.8 series (of the kernel).
If you do not want redundancy you can stripe the disks and the performance will increase almost linearly (depending on ATA/SATA/motherboard/...). And you've got end-to-end checksums, simple administration, trivial snapshots, etc.
Yes, ZFS do have its limitations, it is no silver bullet for every system (biggest IMHO is inability to remove a disk from a stripe even if there would be enough space).
Neat. I have been waiting years for e.g. Gnome to store all configuration changes into a VCS. And not only Gnome related but also those in /etc.
This way I could put change labels "This change is because XXX" and rollback to know working set would be much easier.
I'm not so worried about NSA and like, but spying agencies like CIA. Before 9/11 the most important job for CIA was industrial espionage, to help American companies.
...)
I think everybody agrees
1. CIA is not the only player (organized crime
2. All of them have several viruses (& trojans/worms/rootkits/...) ready to launch against several OS's (as you said).
3. Whenever you become good enough target they will come - unless your security is pretty close perfect.
Varied configuration has the disadvantage that any one of them might be penetrable, giving access to LAN and hugely bigger attack vector. But it is the only way against DoS.
I'd recommend hardware firewall (and proper security practices in LAN).
I am extremely surprised that e.g. Creative still sells mp3 players with "plays-for-sure", even after been screwed by Microsoft once. People just don't learn: cooperation with Microsoft is one way street.
Wrong. The law is stupid. The lady responsible for it is, frankly, idiot. She used to be underwear model.
I am a *nix fanboy, but I do not understand why would you first pay for a Windows license and then "immediately change".
If Windows works for you (better), why on earth move? Is Microsoft so horrible? Is XP so horrible? Is either so horrible you are willing to pay for commercial Linux applications and/or different and/or missing applications?
If not, then, just why? The company providing Windows compatibility you are looking after is called Microsoft. You do not need to learn new programs. All your problems solved!
HD-DVD is not Sony, but it is Microsoft format. Is that better?
Actually, Blu-ray is not really Sony (either).
01010100 01101111 ... ah, screw it, you got the point.
Had he recommended Java there would have been zillions "write once test everywhere" comments.
...
But apparently Apples "universal" binary does not require any testing whatsoever