Hasn't this been possible with Microsoft's DRM from the offset?
Fairplay can be actually played on HP Media Center PCs, Motorola ROKRs and soon RAZRs, iPods, Macs, and PCs. More to the point, you can burn to a CD and play on any CD player you want; there are also numerous unlocking tools of dubious legality, but not of dubious morality.
Unfortunately the law currently works in terms of legality. Also, all of these products (considering that you have to use iTunes to use it on a PC) are officially-sanctioned Apple systems (the Motorola ones are a big licencing thing that's not really possible for other companies). Theoretically, other DRM systems can generally be licenced out. This is a huge advantage in terms of openness.
So I've seen. "Re-inventing" doesn't change the fact that it wasn't in widespread use in modern systems until then though. And there's other things too, it's just ClearType is an easy one to remember.:)
A quote from Galen Hunt (apparently someone working on it) from the Channel9 video page (I have to say I've not watched the video, at least yet, it's just interesting wherever developers actually reply to queries), says something about this:
In Singularity, you can add new code to your application. However, instead of loading it into your own process, you load it into a child process. The OS facilitiates setting up channels between the child and its parent.
While this is still very much a work in progress, the results so far look promising. For example, we have a dynamic web server that uses child processes. Also all of our device drivers run in child processes.
I don't know if that directly answers your question, but I think it kinda explains how they're dealing with this sort of thing.
Thanks for being one of the two posts on this topic that isn't "HAHAHAHA their server fell over!" or "Dependable? You mean like Linux?". I had thought that the differences with this system would be obvious.
It's a different approach to writing OSs in general. BSD is dependable (when built right) because it's been around for a long time. This system is aiming to abstract everything so that sources of instability just can't happen. Everything is abstracted to an object model, it's similar to a system running in a Virtual Machine, but "not really".
As for developing to proprietary APIs, this system appears to be built upon CLR, which is an open specification.
If you read the paper, the idea is that, yes, it'll be slower, but the reliability will be built in from the beginning, rather than other systems which take something fast and bolt reliability on. They make a good point that they will be able to use optimising compilers for CLR languages in this context, too.
A few things they've come up with have been used (ClearType off the top of my head, and quite a few usability things, although I'm sure there's more), but it is quite disappointing that there's not been more — the quality and originality of the ideas that come out of Microsoft Research is really quite surprising.
That's not really my point. The parent post to my post was saying "screw this, I'm buying from Nintendo instead!", as if they were some paragon of moral virtue.
For the record, if I get fired for doing this at work, I'm blaming you:D
void f(Foo& foo) { /* foo is guarenteed to be non-null. It can still be invalid, but that should lead to a segmentation fault */ foo.doSomething();// dot notation }
How is it being "invalid" different than it being null, in any functional sense, though? They both cause runtime errors when they're being accessed, Java just abstracts pointers.
As for the second example, here's a Java class which should do the same as your C++ one:
class TST { private Vector<Integer> contents; public void Vector<Integer> getContents() { return contents.clone(); } }
Admittedly you need to create a new object to prevent modification, but on the other hand if you're using an object-based collection rather than an array (which is generally what you want to do) all the accessor methods would damage the integrity anyway. In general, I don't think Java breaks encapsulation in any serious way — if you want data to be unmodifiable, you just don't let it out. Java's more set towards using objects rather than primitives, in which case the contruct you mention isn't so useful, except in the case of immutable objects.
As for the covariant return types thing, I'm fairly sure it's possible in C#, but I've not idea about Java, it's not something I've ever looked into (I'm currently coding C#, so the mindset gets kinda jarred back and forth).
Because GNU is the operating environment for the UNIX-style part. To be honest, if you were to equate it with what comes in a normal desktop "OS" these days, it should be called GNOME/Xorg/GNU/Linux. Probably more things in that stack than that.
People don't include the term "GNU" because it's inconvenient and not very snappy, much of the time. I say I'm talking to people on "XChat on Linux" because it's easier than saying "XChat on GNOME on Xorg on GNU on Linux".
The proper name of the OS base may be GNU/Linux, but to be fair that's not a hell of a lot more correct than saying, say, Suse/Linux, or Debian/Linux, or whatever. GNU is a set of applications providing a userland — each of these systems provides a larger set of applications to provide a bigger userland.
Are C++ references actually always non-null? Don't most people use pointers to 0 for NULL, and define this in pre-processing?
Going through the list though, covariant return types are possible in C++, and used, no? There's certainly an equivalent, although I have to say it's been a while since I've played with C++. Const-correctness I'm not sure what you're meaning, but I believe that that's what "final" is for?
I'm finding this interesting, but I apologise that I've not much time to research stuff at present.
A GUI, or did you have to choose your specific dashboard?:)
The point is that although the opportunity of choice is good, in many contexts the necessity of choice is bad. Most people are fine with choosing a car because they understand the differences. With OSs, this is much less clear, and isn't something many people need to understand.
I have no problems copy and pasting between KDE and Gnome. Also, Gnome task-tray items show up in the KDE task tray7 and vice-versa, ditto 'start menu' items.
Don't know about the copy-and-pasting thing, but the task tray stuff is fairly recent (since FreeDesktop standardised the protocol for system try items, which would count as an example of this standardisation), and the start menus need to be (to the best of my knowledge) manually updated between the two systems (often packages in distributions will update both if necessary, though). Not sure about that bit though.
Yes, but chances are your car came with wheels, an engine, windows, a steering wheel, and seats by default. You can choose to change them with alternate models, but someone made the default choice for you.
Re:Freedom of Choice will hunt you forever...
on
Debian GNU/Solaris
·
· Score: 2, Insightful
I use OSS already. The fact is though, most people don't care what program they use so long as it works and it's easy to find. Look at all the people using IE.
'Tis interesting, anyway. The problem is that OSS is currently beginning to appeal to a whole new group of people, and these people don't know what the hell all these different packages are, let alone have any particular opinions over which are better or worse.
A lot of systems are good for this, and getting better, though. To be clear, removing the freedom of the user to choose is a bad thing, but making choices that they don't want to make for them is generally a very good thing. "Sane defaults" and all that.:)
Nah, "more than one way to do it" is considered a feature of Perl, whereas Python tries to only allow there to be one (sensible) way to do things. The friction between the two groups mean that some Python developers get a little vocal about what they consider the "right" approach!
Debian isn't the sort of community that really wants to decide for anyone, no. But the problem here is that if you want to have a widely-accepted and consistent system (which many people don't, and which Ubuntu is basically trying to do) with a community-developed project, then at some point a community will need to make these decisions for people who don't want to have to make them.
Indeed. As many Python developers will tell you, "there's more than one way to do it" can often lead to confusion and inconsistency. Freedom and choice are great, but the fact is that many people often just want the choice made for them in as sensible a way as possible.
Hasn't this been possible with Microsoft's DRM from the offset?
Unfortunately the law currently works in terms of legality. Also, all of these products (considering that you have to use iTunes to use it on a PC) are officially-sanctioned Apple systems (the Motorola ones are a big licencing thing that's not really possible for other companies). Theoretically, other DRM systems can generally be licenced out. This is a huge advantage in terms of openness.
Bentley?
Interestingly, I believe that that's exactly the kind of infrastructure that this system is trying to enforce.
So I've seen. "Re-inventing" doesn't change the fact that it wasn't in widespread use in modern systems until then though. And there's other things too, it's just ClearType is an easy one to remember. :)
Interesting point! I guess that's exactly what it would mean, yes, since they seem to be treating all of these things at similar levels.
The cynicism is strong in you, my son. :)
A quote from Galen Hunt (apparently someone working on it) from the Channel9 video page (I have to say I've not watched the video, at least yet, it's just interesting wherever developers actually reply to queries), says something about this:
I don't know if that directly answers your question, but I think it kinda explains how they're dealing with this sort of thing.
Thanks for being one of the two posts on this topic that isn't "HAHAHAHA their server fell over!" or "Dependable? You mean like Linux?". I had thought that the differences with this system would be obvious.
It's a different approach to writing OSs in general. BSD is dependable (when built right) because it's been around for a long time. This system is aiming to abstract everything so that sources of instability just can't happen. Everything is abstracted to an object model, it's similar to a system running in a Virtual Machine, but "not really".
As for developing to proprietary APIs, this system appears to be built upon CLR, which is an open specification.
If you read the paper, the idea is that, yes, it'll be slower, but the reliability will be built in from the beginning, rather than other systems which take something fast and bolt reliability on. They make a good point that they will be able to use optimising compilers for CLR languages in this context, too.
A few things they've come up with have been used (ClearType off the top of my head, and quite a few usability things, although I'm sure there's more), but it is quite disappointing that there's not been more — the quality and originality of the ideas that come out of Microsoft Research is really quite surprising.
Try checking out the Microsoft Research page, and their past systems stemming from there. You might be surprised.
That's not really my point. The parent post to my post was saying "screw this, I'm buying from Nintendo instead!", as if they were some paragon of moral virtue.
Grass still green, water still wet. More at 11.
For the record, if I get fired for doing this at work, I'm blaming you :D
How is it being "invalid" different than it being null, in any functional sense, though? They both cause runtime errors when they're being accessed, Java just abstracts pointers.
As for the second example, here's a Java class which should do the same as your C++ one:
Admittedly you need to create a new object to prevent modification, but on the other hand if you're using an object-based collection rather than an array (which is generally what you want to do) all the accessor methods would damage the integrity anyway. In general, I don't think Java breaks encapsulation in any serious way — if you want data to be unmodifiable, you just don't let it out. Java's more set towards using objects rather than primitives, in which case the contruct you mention isn't so useful, except in the case of immutable objects.
As for the covariant return types thing, I'm fairly sure it's possible in C#, but I've not idea about Java, it's not something I've ever looked into (I'm currently coding C#, so the mindset gets kinda jarred back and forth).
I strongly suspect Nintendo will do this too. Hell, I'd be surprised if they've not done this in the past.
Because GNU is the operating environment for the UNIX-style part. To be honest, if you were to equate it with what comes in a normal desktop "OS" these days, it should be called GNOME/Xorg/GNU/Linux. Probably more things in that stack than that.
People don't include the term "GNU" because it's inconvenient and not very snappy, much of the time. I say I'm talking to people on "XChat on Linux" because it's easier than saying "XChat on GNOME on Xorg on GNU on Linux".
The proper name of the OS base may be GNU/Linux, but to be fair that's not a hell of a lot more correct than saying, say, Suse/Linux, or Debian/Linux, or whatever. GNU is a set of applications providing a userland — each of these systems provides a larger set of applications to provide a bigger userland.
Are C++ references actually always non-null? Don't most people use pointers to 0 for NULL, and define this in pre-processing?
Going through the list though, covariant return types are possible in C++, and used, no? There's certainly an equivalent, although I have to say it's been a while since I've played with C++. Const-correctness I'm not sure what you're meaning, but I believe that that's what "final" is for?
I'm finding this interesting, but I apologise that I've not much time to research stuff at present.
A GUI, or did you have to choose your specific dashboard? :)
The point is that although the opportunity of choice is good, in many contexts the necessity of choice is bad. Most people are fine with choosing a car because they understand the differences. With OSs, this is much less clear, and isn't something many people need to understand.
It's already underway, at least for the .NET (also known as "not nearly as bad as the older versions edition") version.
Don't know about the copy-and-pasting thing, but the task tray stuff is fairly recent (since FreeDesktop standardised the protocol for system try items, which would count as an example of this standardisation), and the start menus need to be (to the best of my knowledge) manually updated between the two systems (often packages in distributions will update both if necessary, though). Not sure about that bit though.
Yes, but chances are your car came with wheels, an engine, windows, a steering wheel, and seats by default. You can choose to change them with alternate models, but someone made the default choice for you.
I use OSS already. The fact is though, most people don't care what program they use so long as it works and it's easy to find. Look at all the people using IE.
'Tis interesting, anyway. The problem is that OSS is currently beginning to appeal to a whole new group of people, and these people don't know what the hell all these different packages are, let alone have any particular opinions over which are better or worse.
A lot of systems are good for this, and getting better, though. To be clear, removing the freedom of the user to choose is a bad thing, but making choices that they don't want to make for them is generally a very good thing. "Sane defaults" and all that. :)
Nah, "more than one way to do it" is considered a feature of Perl, whereas Python tries to only allow there to be one (sensible) way to do things. The friction between the two groups mean that some Python developers get a little vocal about what they consider the "right" approach!
Debian isn't the sort of community that really wants to decide for anyone, no. But the problem here is that if you want to have a widely-accepted and consistent system (which many people don't, and which Ubuntu is basically trying to do) with a community-developed project, then at some point a community will need to make these decisions for people who don't want to have to make them.
Indeed. As many Python developers will tell you, "there's more than one way to do it" can often lead to confusion and inconsistency. Freedom and choice are great, but the fact is that many people often just want the choice made for them in as sensible a way as possible.