Interesting way to think. Keep that same thought in mind as you go back and read your response to the first poster.
Because I look at a car that has a sticker of $89K doesn't make me a sucker.
You read too much into my post; being labeled something doesn't make you something. It's not your act of looking that labels you, but rather the salesman's acts of kissing ass. The instant a salesman wants to "be your buddy" or makes other similar gestures, it's only for the purpose of taking your money (that's not said in a bad way; it's their job). I've had no cash and I've had sick cash, and the respect I get for dropping a wad of bills is so transparent it's disgusting. It's a sad day when you first notice it, and a sadder day still if you never do.
It looks like a nicely structured language with clean syntax that leads to good coding style.
Shall I guess that your only other experience with OO languages is C++?:-) Java is definitely a step up from the horrors of C++, but a survey of all the other (portable) OO languages will turn up far nicer alternatives. Heck, you don't even need to leave the C family to find Objective-C. And while some might not like the syntax of Lisp, CLOS provides a very powerful, advanced OO framework. Different tools for different tasks.
This may be a bit of a tangent, but when did people start expecting the companies they work for to care for their health? (By extension, when did people start expecting the government they live under to do the same?) If I smoke and drink and eat fatty foods (or engage in other dangerous activities, regardless of genetic predisposition), why does it fall on my employer to keep me from dying at 40? Sure, they wouldn't want to lose a valuable employee, but I would think that my own life is a little more valuable to me than it is to my employers.
A poster in another thread was saying their father got fired because they had a medical condition that cost over a million dollars to treat a year. Now does it really cost that much to treat, or does it cost that much because they can bill a company for it instead of a person? I wonder how strong a hold HMOs would have on poorly managed health care if they couldn't stick large companies for big bills.
Just because your car is stupid doesn't mean it must always be so. Wouldn't you prefer a car with a "command line" that you get in and say, "go to work" and be done with it? Work is already quite advanced on the development cars that can drive themselves. So a stupid device and/or a stupid user both benefit from a GUI, where as a smarter device or a smarter user can benefit from a CLI.
It is getting downright disgusting the number of sites I have come across recently that make excessive use of size=1 for their font tags. And I'm not talking about the copyright at the bottom or some nothing note under a graphic, but large amounts of text they actually want you to read! In whose mind is it a good idea to put the most important text in the smallest font possible?
If what you say is true,.NET actually sounds much worse than I thought. First, XML is just a buzzword, one of an infinite number of ways to represent data (it is a useful interchange format, to be sure, but what other vendors does Microsoft want you to interchange your Windows configuration files with?); it does not make object sharing between apps or OSes any simpler than what is available now (read: badly done), it simply makes it more structured for reuse (read: badly done and shared). What you're really saying is the big deal is that all configuration files are accessible and modifyable. I don't believe it but, my goodness, wouldn't that be a absolute support nightmare? It's nice to have a somewhat configurable system, but giving the users the ability to tweak absolutely everything is a disaster waiting to happen.
I don't see the GUI as being a major wall anymore so much as it is the desktop metaphor and, by extension, the file system it is built on that gets the way. As we start managing larger amounts of information, we're starting to see a need to look at it differently, and not by putting a prettier front end on it, but fundamentally altering how we manipulate it. I predict that within the next few years (OK, it's something that I'm working on that has just such a projected release date:-), the file system will be abstracted up to the level of an object system. It's already started in some respects with Easel and Mac OS X, but more significant work is being done, and just maybe it'll make the desktop easier to use, and further allow the desktop metaphor to be abandoned for . . . I know not what.
I don't know if MP3.com has a workable business model or not, but I don't see a reason to assume that they would adopt a suicidal business model.
Suicide or murder at the hands at the RIAA, it's all the same result. They "decided" to implement a bad service model, regardless of how long a grace period they have for verification. I don't see how it can be made workable, but that's something they have to explain to their investors, not their customers (and I am neither).
But, your need for polymorphism, etc and way for an object to print itself is already built into Java.
Um, no. you're getting hung up on this one example and I'm trying to talk about the advantages of various object systems independent of particular classes. All you're saying is that you can get a string that describes an object; nothing fancy. I'm talking about actually adding a method to the string class that takes care of pushing it to stdout (let's not get into using other output streams, as that's a simple change to take an argument, of course). But, again, don't get hung up on the one example, instead think about the general advantage of simply extending classes by adding methods, without any need to do unnecessary subclassing (especially when it is not allowed).
Since apparently you nor the person trying to extend the String class know Java, a little hint about the above code..e.nextElement() returns an Object.;)
Feel free to think I know nothing about Java, but here's a little hint for you: A collection should be able to tell its objects to perform a method without you having to enumerate through them all. Instead of drooling over Java, take a look at the utility of a broader selection of OO languages. You might not be so happy with how you've been spending your time.
It's not a stupid need, but rather a fundamental principle of OO design and implementation. It isn't just about this one little example, but how object libraries set an example of proper use. Why wasn't the String object set up to print in the first place? Why weren't all objects set up to print/describe themselves in a polymorphic manner? I won't even address the fact that you had to subclass the object to add the method, causing all sorts of inheritance/typing issues. Afterall, you still do have a string printing itself, you have a method hanging off a subclass that provides the ability to print a member of its superclass; an OO design that any competent developer should laugh at.
The point where I disagree is in multiple components aggregated into a larger component, instead of multiple inheritance.
I didn't actually argue in favor of aggregation, but rather the basic OO principle that how an object behaves is more important than what an object is. With most popular OO languages it is true that in order to share the code behind common behavior, you must use some form of inheritance or aggregation. That is not a rule, however, and OO languages exist that do not tightly couple methods with classes; some even allow instance-level method definitions.
Once you aggregate an object, it is now un accessible for future derivation.
The class that is formed by either MI or aggregation is stuck with the classes it subsumes. I'm not seeing a weakness for aggregation here, but rather the standard "weak base class" issue.
If you have a base class that does most of what you want, yet you want to customize a few operations, you have a few options:
Most OO languages with a proper runtime will also allow you to insert your own method (re)definitions, which may also be a suitable option. Also, aggregation of a base class may have inheritance issues ("breaks type compatibility", as you say), but proper OO design would have you looking at an object's behavior when working with it, not its type. And as far as re-implementation efforts go, you have to weigh the cost of maintaining the extra code against the cost of maintaining a broken design. I've had projects that leaned both ways, so there's no one answer there.
Well, how's about simply asking a string to print itself? How's about allowing developers to extend the string class (any class, really) to do that (or anything else they please)? Objective-C isn't an ideal OO language by any means, but if it were to suit my fancy, I could at least drop in code that would allow me to write things like:
[@"some static string" print];
Seems to make more sense to me than 90% of the crap I see (or have to write myself, when so forced) in Java.
Now we have an actual component that is a DynComponent object as well as a ReqCorba object.
Here is where you go wrong and, ultimately, where OO development fails you (hint: MI is not the solution). An object is just an object, not multiple objects. Remember the attempts to market cars that could fly or swim? Are you saying they were car-planes or car-boats? Of course not; they were unique objects that had certain behaviors of other objects. If you really tried to apply MI as a solution to modeling complex objects, you would run into numerous problems. From an inheritance standpoint, you could say that the object was a kind of car or a kind of plane or a kind of boat, which ever it made more sense to model it after, but to go beyond that and say it was multiple kinds of objects is extremely bad modeling. Depending on the behaviors of the object, it might not be wise to have it inherit from car, plane, or boat at all. So, IMHO, MI is dangerous because it attempts to extend the OO paradigm (at least as it is implemented by most languages) in a direction it was not meant to go. If sharing an implementation among a number of classes is the real intent, you should look for an OO language that supports that sort of thing.
Why not use a C-based object-oriented language that has been evolving for over a decade with an open standard that was first drafted in 1994? Yes, I'm talking about Objective-C and OpenStep, which is the most important technology behind Apple's new Mac OS X and has open source efforts (beyond what is already available in gcc, that is) available at www.gnustep.org. It's worth a look for anyone who is interested in serious object-oriented development.
Seriously, you should be defining your interface independent of the implementation language. That would allow a browser-based "least common denominator" view and still allow you to work up a special "bells and whistles" client app when you discover that Java is cutting you off at the knees (and, for any moderately complex task, you will find that).
More to the point, what do the 6000+ Virginia Beach workers need? Keep in mind that MS only hit them for a fraction of the licenses they should have; their total cost was roughly 9 times that, about a million dollars (that's just to MS; nevermind all the other software licenses they buy to make Windows useful). I honestly doubt all 6000+ workers absolutely *need* Windows to get their job done. Most people who use computers have general needs, and for that most any system (Windows, Mac, Linux, etc.) will do. Any organization that builds its foundation on a Windows-only infrastructure gets exactly what it deserves.
Instead of taking up the traditional "fight the power" battle, consider what can be accomplished by embracing the DCMA. My own little protest is up at www.datafetish.com, whereat I apply an "access control device" to various softwares (and I don't mean the index page; that's supposed to be satire). Now, unless you circumvent that access control device (thereby violating the DCMA), how do you know that what I have is actually what I say it is? I'm no lawyer, but it strikes me that just about any kind of encoding software format (tar, gzip, MIME) could be argued as being protected by the DCMA. I mean, where does the DCMA allow us to draw the line between the content and the presentation?
You clearly have not tried the right kind of chocolates.:-) And, besides, what does necessity have to do with taxation? Taxes should be imposed to support (if you do indeed support) a government's involvement in a process. I suspect that the government is more involved in keeping water clean and drinkable than it is in making chocolates so gosh darn yummy, so water should, in fact, be taxed more. If you don't like it, just drink the dirty water instead.
Actually, the press release says nothing about Windows, so I'm making the assumption that it will apply to all supported platforms. Since I use Mac OS X as my primary desktop OS, I imagine I'll see MS supporting that (even if it's just the Classic environment) sooner than I'll see Word Viewer or Star Office. I don't have much use for Office-type software anymore (free or otherwise), so this is probably the only chance MS has to get money out of me.
Most everyone here is complaining that they'd never buy the subscription software (even when they don't know the price) if they wouldn't be able to make changes, but what about those people who don't compose documents? It's been many years since I locked my own information into a proprietary MS format, but people less thoughtful send me.doc files all the time (as if that were an interchange format!). I normally extract the text, or just ask for a more portable format. If Microsoft put out the subscription version for $20, I'd probably buy it just to avoid the hassles involved in dealing with the idiots of the world. That's $20 more from me than they would have gotten in the past, and less complaining from me about people sending me crappy.doc files. MS can definitely make this work to their advantage.
does anyone here NOT think Coca-Cola will register coke.xxxx in all of them
I. If you think about it, why bother? They own the trademark, so all they need is one person to complain in order to declare marketplace confusion and rip the domain from what is almost certainly a squatter's hands. The squatter can try to fight it, but will likely lose at the cost of many thousands in legal fees. I wouldn't take take any trademark.TLD even if it were given to me for free.
How many companies that aren't ISPs are network providers have.net for example?
I'm sure a lot do. I know I do, but I got subsume.net (a year and a half after my subsume.com registration) because I consider.net to be useful for not just ISPs, but any company that provides network/back-end processing services. I use subsume.com when people need to talk to people, and I use subsume.net when machines need to talk to machines. I have no intention of registering in any other TLD because none of the proposed ones offer any kind of logical value.
Linux's drivers are better than many third-party drivers under NT
Just to be a bit pedantic, I don't think there many third-party drivers for NT, or many other closed OSes. If an NT driver is buggy, you can usually either blame the OEM or MS, not some third-party. Under Linux and other open-but-unsupported (moreso in the early days, but still true to a great extent today) OSes, nearly everything is third-party. It's counterintuitive that a third-party can write a better driver than the OEM, but that just goes to show that NT really is a counterintuitive OS.:-)
Harsh judgement considering you do not know me.
Interesting way to think. Keep that same thought in mind as you go back and read your response to the first poster.
Because I look at a car that has a sticker of $89K doesn't make me a sucker.
You read too much into my post; being labeled something doesn't make you something. It's not your act of looking that labels you, but rather the salesman's acts of kissing ass. The instant a salesman wants to "be your buddy" or makes other similar gestures, it's only for the purpose of taking your money (that's not said in a bad way; it's their job). I've had no cash and I've had sick cash, and the respect I get for dropping a wad of bills is so transparent it's disgusting. It's a sad day when you first notice it, and a sadder day still if you never do.
You're bragging because you have "sucker" written on your forehead instead of "loser"? Whatever makes you happy, I guess.
It looks like a nicely structured language with clean syntax that leads to good coding style.
Shall I guess that your only other experience with OO languages is C++? :-) Java is definitely a step up from the horrors of C++, but a survey of all the other (portable) OO languages will turn up far nicer alternatives. Heck, you don't even need to leave the C family to find Objective-C. And while some might not like the syntax of Lisp, CLOS provides a very powerful, advanced OO framework. Different tools for different tasks.
Simple, reduced health care costs.
This may be a bit of a tangent, but when did people start expecting the companies they work for to care for their health? (By extension, when did people start expecting the government they live under to do the same?) If I smoke and drink and eat fatty foods (or engage in other dangerous activities, regardless of genetic predisposition), why does it fall on my employer to keep me from dying at 40? Sure, they wouldn't want to lose a valuable employee, but I would think that my own life is a little more valuable to me than it is to my employers.
A poster in another thread was saying their father got fired because they had a medical condition that cost over a million dollars to treat a year. Now does it really cost that much to treat, or does it cost that much because they can bill a company for it instead of a person? I wonder how strong a hold HMOs would have on poorly managed health care if they couldn't stick large companies for big bills.
What happens when the new calendar says that it is Wednesday, but your religious beliefs say that it is the Sabbath?
FIVE DAY WEEKEND!!!
Just because your car is stupid doesn't mean it must always be so. Wouldn't you prefer a car with a "command line" that you get in and say, "go to work" and be done with it? Work is already quite advanced on the development cars that can drive themselves. So a stupid device and/or a stupid user both benefit from a GUI, where as a smarter device or a smarter user can benefit from a CLI.
Yeah, we know everything about big objects like, black holes, galaxies, and the Universe itself . . .
It is getting downright disgusting the number of sites I have come across recently that make excessive use of size=1 for their font tags. And I'm not talking about the copyright at the bottom or some nothing note under a graphic, but large amounts of text they actually want you to read! In whose mind is it a good idea to put the most important text in the smallest font possible?
If what you say is true, .NET actually sounds much worse than I thought. First, XML is just a buzzword, one of an infinite number of ways to represent data (it is a useful interchange format, to be sure, but what other vendors does Microsoft want you to interchange your Windows configuration files with?); it does not make object sharing between apps or OSes any simpler than what is available now (read: badly done), it simply makes it more structured for reuse (read: badly done and shared). What you're really saying is the big deal is that all configuration files are accessible and modifyable. I don't believe it but, my goodness, wouldn't that be a absolute support nightmare? It's nice to have a somewhat configurable system, but giving the users the ability to tweak absolutely everything is a disaster waiting to happen.
I don't see the GUI as being a major wall anymore so much as it is the desktop metaphor and, by extension, the file system it is built on that gets the way. As we start managing larger amounts of information, we're starting to see a need to look at it differently, and not by putting a prettier front end on it, but fundamentally altering how we manipulate it. I predict that within the next few years (OK, it's something that I'm working on that has just such a projected release date :-), the file system will be abstracted up to the level of an object system. It's already started in some respects with Easel and Mac OS X, but more significant work is being done, and just maybe it'll make the desktop easier to use, and further allow the desktop metaphor to be abandoned for . . . I know not what.
I don't know if MP3.com has a workable business model or not, but I don't see a reason to assume that they would adopt a suicidal business model.
Suicide or murder at the hands at the RIAA, it's all the same result. They "decided" to implement a bad service model, regardless of how long a grace period they have for verification. I don't see how it can be made workable, but that's something they have to explain to their investors, not their customers (and I am neither).
But, your need for polymorphism, etc and way for an object to print itself is already built into Java.
Um, no. you're getting hung up on this one example and I'm trying to talk about the advantages of various object systems independent of particular classes. All you're saying is that you can get a string that describes an object; nothing fancy. I'm talking about actually adding a method to the string class that takes care of pushing it to stdout (let's not get into using other output streams, as that's a simple change to take an argument, of course). But, again, don't get hung up on the one example, instead think about the general advantage of simply extending classes by adding methods, without any need to do unnecessary subclassing (especially when it is not allowed).
Since apparently you nor the person trying to extend the String class know Java, a little hint about the above code..e.nextElement() returns an Object. ;)
Feel free to think I know nothing about Java, but here's a little hint for you: A collection should be able to tell its objects to perform a method without you having to enumerate through them all. Instead of drooling over Java, take a look at the utility of a broader selection of OO languages. You might not be so happy with how you've been spending your time.
It's not a stupid need, but rather a fundamental principle of OO design and implementation. It isn't just about this one little example, but how object libraries set an example of proper use. Why wasn't the String object set up to print in the first place? Why weren't all objects set up to print/describe themselves in a polymorphic manner? I won't even address the fact that you had to subclass the object to add the method, causing all sorts of inheritance/typing issues. Afterall, you still do have a string printing itself, you have a method hanging off a subclass that provides the ability to print a member of its superclass; an OO design that any competent developer should laugh at.
The point where I disagree is in multiple components aggregated into a larger component, instead of multiple inheritance.
I didn't actually argue in favor of aggregation, but rather the basic OO principle that how an object behaves is more important than what an object is. With most popular OO languages it is true that in order to share the code behind common behavior, you must use some form of inheritance or aggregation. That is not a rule, however, and OO languages exist that do not tightly couple methods with classes; some even allow instance-level method definitions.
Once you aggregate an object, it is now un accessible for future derivation.
The class that is formed by either MI or aggregation is stuck with the classes it subsumes. I'm not seeing a weakness for aggregation here, but rather the standard "weak base class" issue.
If you have a base class that does most of what you want, yet you want to customize a few operations, you have a few options:
Most OO languages with a proper runtime will also allow you to insert your own method (re)definitions, which may also be a suitable option. Also, aggregation of a base class may have inheritance issues ("breaks type compatibility", as you say), but proper OO design would have you looking at an object's behavior when working with it, not its type. And as far as re-implementation efforts go, you have to weigh the cost of maintaining the extra code against the cost of maintaining a broken design. I've had projects that leaned both ways, so there's no one answer there.
Well, how's about simply asking a string to print itself? How's about allowing developers to extend the string class (any class, really) to do that (or anything else they please)? Objective-C isn't an ideal OO language by any means, but if it were to suit my fancy, I could at least drop in code that would allow me to write things like:
[@"some static string" print];
Seems to make more sense to me than 90% of the crap I see (or have to write myself, when so forced) in Java.
Now we have an actual component that is a DynComponent object as well as a ReqCorba object.
Here is where you go wrong and, ultimately, where OO development fails you (hint: MI is not the solution). An object is just an object, not multiple objects. Remember the attempts to market cars that could fly or swim? Are you saying they were car-planes or car-boats? Of course not; they were unique objects that had certain behaviors of other objects. If you really tried to apply MI as a solution to modeling complex objects, you would run into numerous problems. From an inheritance standpoint, you could say that the object was a kind of car or a kind of plane or a kind of boat, which ever it made more sense to model it after, but to go beyond that and say it was multiple kinds of objects is extremely bad modeling. Depending on the behaviors of the object, it might not be wise to have it inherit from car, plane, or boat at all. So, IMHO, MI is dangerous because it attempts to extend the OO paradigm (at least as it is implemented by most languages) in a direction it was not meant to go. If sharing an implementation among a number of classes is the real intent, you should look for an OO language that supports that sort of thing.
Why not use a C-based object-oriented language that has been evolving for over a decade with an open standard that was first drafted in 1994? Yes, I'm talking about Objective-C and OpenStep, which is the most important technology behind Apple's new Mac OS X and has open source efforts (beyond what is already available in gcc, that is) available at www.gnustep.org. It's worth a look for anyone who is interested in serious object-oriented development.
Seriously, you should be defining your interface independent of the implementation language. That would allow a browser-based "least common denominator" view and still allow you to work up a special "bells and whistles" client app when you discover that Java is cutting you off at the knees (and, for any moderately complex task, you will find that).
More to the point, what do the 6000+ Virginia Beach workers need? Keep in mind that MS only hit them for a fraction of the licenses they should have; their total cost was roughly 9 times that, about a million dollars (that's just to MS; nevermind all the other software licenses they buy to make Windows useful). I honestly doubt all 6000+ workers absolutely *need* Windows to get their job done. Most people who use computers have general needs, and for that most any system (Windows, Mac, Linux, etc.) will do. Any organization that builds its foundation on a Windows-only infrastructure gets exactly what it deserves.
Instead of taking up the traditional "fight the power" battle, consider what can be accomplished by embracing the DCMA. My own little protest is up at www.datafetish.com, whereat I apply an "access control device" to various softwares (and I don't mean the index page; that's supposed to be satire). Now, unless you circumvent that access control device (thereby violating the DCMA), how do you know that what I have is actually what I say it is? I'm no lawyer, but it strikes me that just about any kind of encoding software format (tar, gzip, MIME) could be argued as being protected by the DCMA. I mean, where does the DCMA allow us to draw the line between the content and the presentation?
Candy and chocolate are not needed
You clearly have not tried the right kind of chocolates. :-) And, besides, what does necessity have to do with taxation? Taxes should be imposed to support (if you do indeed support) a government's involvement in a process. I suspect that the government is more involved in keeping water clean and drinkable than it is in making chocolates so gosh darn yummy, so water should, in fact, be taxed more. If you don't like it, just drink the dirty water instead.
Actually, the press release says nothing about Windows, so I'm making the assumption that it will apply to all supported platforms. Since I use Mac OS X as my primary desktop OS, I imagine I'll see MS supporting that (even if it's just the Classic environment) sooner than I'll see Word Viewer or Star Office. I don't have much use for Office-type software anymore (free or otherwise), so this is probably the only chance MS has to get money out of me.
Most everyone here is complaining that they'd never buy the subscription software (even when they don't know the price) if they wouldn't be able to make changes, but what about those people who don't compose documents? It's been many years since I locked my own information into a proprietary MS format, but people less thoughtful send me .doc files all the time (as if that were an interchange format!). I normally extract the text, or just ask for a more portable format. If Microsoft put out the subscription version for $20, I'd probably buy it just to avoid the hassles involved in dealing with the idiots of the world. That's $20 more from me than they would have gotten in the past, and less complaining from me about people sending me crappy .doc files. MS can definitely make this work to their advantage.
does anyone here NOT think Coca-Cola will register coke.xxxx in all of them
I. If you think about it, why bother? They own the trademark, so all they need is one person to complain in order to declare marketplace confusion and rip the domain from what is almost certainly a squatter's hands. The squatter can try to fight it, but will likely lose at the cost of many thousands in legal fees. I wouldn't take take any trademark.TLD even if it were given to me for free.
How many companies that aren't ISPs are network providers have .net for example?
I'm sure a lot do. I know I do, but I got subsume.net (a year and a half after my subsume.com registration) because I consider .net to be useful for not just ISPs, but any company that provides network/back-end processing services. I use subsume.com when people need to talk to people, and I use subsume.net when machines need to talk to machines. I have no intention of registering in any other TLD because none of the proposed ones offer any kind of logical value.
Linux's drivers are better than many third-party drivers under NT
Just to be a bit pedantic, I don't think there many third-party drivers for NT, or many other closed OSes. If an NT driver is buggy, you can usually either blame the OEM or MS, not some third-party. Under Linux and other open-but-unsupported (moreso in the early days, but still true to a great extent today) OSes, nearly everything is third-party. It's counterintuitive that a third-party can write a better driver than the OEM, but that just goes to show that NT really is a counterintuitive OS. :-)