With multimedia becoming a bigger part of what people are doing on their computer, won't that shift the balance away from a web platform?
No, the network will adapt. Like I said, new standards will be created to meet the need.
The other question in my mind is, is the web platform actually any better? "As good as" "in most cases" isn't going to cut it.
Yes and no. The web platform is about providing distributed services, especially in cases where management can be effectively consolidated to better use resources. For example, which is easier for a company to maintain: A single "Wordprocessor" web app that the entire company can use, or a copy of Microsoft Word on every desktop? Is it easier to search for company data on a shared drive, or across every desktop in the company?
On the truly distributed side, you often have things that *can't* be installed on the desktop. For example, if I deal in the stock market, part of my application *must* be network aware. If you use local installs of software, then you have a synchronization problem as communications standards are upgraded. Anyone who doesn't get the memo (ha ha) will be effectively disabled. Web apps provide a way of distributing the application as well as the protocol so that such issues don't occur.
Empower IT with HR's traditional roles of hiring, promotion, and termination.
And you wonder why people hate IT departments.
Listen, this "holier than thou" attitude is just stupid. Do you know how to diversify a portfolio to meet acceptable risk according to an efficient frontier formula? Well, some of those "idiot users" do. Does that make them smarter than you? If so, should they have veto power on how you run the network?
IT people are not necessarily smarter, despite what they may think. The goal is to work together in a company, and find solutions that take into account problems that employees may have. Which also means that locking everyone's computer so they can't do anything may not be the correct solution. Maybe, just maybe, users occassionly have a need that you're going to have to work extra to fullfill. That's why you were hired, not so you can sit on your duff and complain about all the work that users make for you.
"Test Procedure Specification" as defined by IEEE 829, mostly used in government work.
And as far as I'm concerned, workers need to get used to the jargon or take a hike. Measurements and particular jargon abound in all walks of life. If you're making cookies, for example, you need to understand a cup, teaspoon, pint, etc. (or liter and the like if you're not American). If you build a shed, you need to know what a foot or meter is, don't you? In those disciples, you also need to know things like what a hammer is, or a mixer. Computers aren't any different. No one is asking that the average user understand coding, but understanding things like storage space is a requirement.
Personally, I don't think the problem is that he got stopped. If the police want to check you out, there's no law against them asking you if you would step aside for a moment to speak with them. Even a search granted by a "terrorism act" is acceptable under extreme circumstances. But to then arrest him, take his stuff, ransack his home, and demand bail all without reasonable cause (there was no bomb in his pack!), now THAT is a problem.
No, that would be the original poster. I was just responding to him. If you check, you'll find your comment is redundant as others have already pointed out that he probably meant "crystal meth". As for "crank", I have no idea what that is. (A street name for crystal meth?)
Sorry, the second quote is the wrong section. Here:
`(f) REVERSE ENGINEERING- (1) Notwithstanding the provisions of subsection (a)(1)(A), a person who has lawfully obtained the right to use a copy of a computer program may circumvent a technological measure that effectively controls access to a particular portion of that program for the sole purpose of identifying and analyzing those elements of the program that are necessary to achieve interoperability of an independently created computer program with other programs, and that have not previously been readily available to the person engaging in the circumvention, to the extent any such acts of identification and analysis do not constitute infringement under this title.
I'm sorry, how are you disagreeing? It seems like you've restated exactly what I said.
You buy the disc, so you having the disc is a privilege.
No, it's not a privilege. It's property.
unless there is a contract preventing you from doing something.
Which is my point. You don't sign a contract when you buy a disk. So cut it up, resell it, use it as a frisbee. As long as you don't copy it (other than backups, shifting, and fair use) there are no restrictions on its use.
If there's a technical "feature" preventing you from playing it on a mac, and not a contract, you can break it and not get into any trouble
Exactly. US law says that in absense of a contract, you can't be forced into terms you didn't agree to.
unless of course there's such an excellent piece of legislation as DMCA in your country.
The DMCA allows you to decrypt the music so you can listen to it:
`(c) OTHER RIGHTS, ETC., NOT AFFECTED- (1) Nothing in this section shall affect rights, remedies, limitations, or defenses to copyright infringement, including fair use, under this title.
Also:
`(2) As used in this subsection--
`(A) to `circumvent protection afforded by a technological measure' means avoiding, bypassing, removing, deactivating, or otherwise impairing a technological measure; and
`(B) a technological measure `effectively protects a right of a copyright owner under this title' if the measure, in the ordinary course of its operation, prevents, restricts, or otherwise limits the exercise of a right of a copyright owner under this title.
If you don't affect the copyright holder, then you may not be liable. i.e. Personal use. People tend to get confused when they consider DeCSS, because the author was tried. However, the problem was that DeCSS was redistributed not kept for personal use.
Anyway, there are no "rights" involved here at all.
Copyright is a "right" and is very much the issue.
You've picked a very specialized type of program to complain about. Even then, however, solutions do exist. SVG is perfect for vector drawing, and Applets can be used to provide the per-pixel drawing necessary for raster image editing. The point is that *most* of what people do with their computers can be done with a web platform today. And if a need arises for something more sophisticated, I'm sure you'll be seeing standards to address the problem.
Case V: Va: You own the silver coaster, not the music. Vb: you own nothing, you only have permission to listen.
Incorrect. You own the silver coaster and the particular copy of the music on the coaster. Copyright is the right to control the copies of a work, thus creating an artificial scarcity. i.e. As if the music was a sheep or a car.
You have to either destroy the backup or transfer it the buyer as a backup copy. Basically, no part of the data may remain in your possession after sale.
The web is an infrastructure that lets our individual machines communicate with one another. I very much doubt the web will be a viable platform anytime soon, for bandwidth reasons if nothing else.
Case I: You buy a movie theater ticket. But because you can't make it to the theater that night, you instead set up a video camera on your seat
You must note that you own nothing in this case. The movie theater sold you a service, not a product. Thus this case is not covered under copyright law. (Until you try to "steal" the movie, that is.)
Case II: You buy some ephedrine, some lithuim batteries, some drano and some Acetone. You decide to whip up a batch of Crack. Are you allowed to do this? NO.
Actually, I'm a little fuzzy on this one. I'm not certain that whipping up crack is so much the problem as to what your intent is with it. If you were using the resulting chemical for non-biological scientific experiments (not sure what you'd do with crack, but hey) you probably would not be liable for criminal actions. Of course, it always helps to get a hazmat license to prove the fact before you begin your experiments.
Case III: You own your car. You decide it would be cool to remove the windshield wipers and seatbelts. Can you do that?
YES!
only if you don't put it on the road or try to sell it for such a use.
Again, this is a matter of services provided. The public as a whole is providing you with a service (public roads) which comes with terms of use. You agree to those terms in exchange for use of public roads when you get your driver's license. That's why a cop can fine you for having a vehicle that isn't up to code.
BTW, you can still sell the vehicle. You just can't claim it's road worthy. Otherwise, how do you think junk yards can take damaged cars?
case IV: you own some swapland. You want to drain it. can you do that? Not if it's considered a protected wetland.
This is probably a valid case, but it gets back to your rights ending when they begin to reasonably interfere with the rights of others. In the case of draining wetlands, the environmental impact will affect others. e.g. A bit like if you diverted a river farther up stream.
You own a peice of DRM'd music for which you contracted to play on a single computer. Can you sell that to someone else. NO. you contracted for that.
Actually, if you never signed a contract (or at least a click through agreement), you can sell it all you like. I remember a fellow attempting to sell his copy of an iTunes song just to prove he could do it. It's allowed by copyright law, so without a pre-existing agreement you are not restricted from sale.
Case VI: Your a farmer and the govenement tells you you can grow so many bushells on your land. You grow more but you plan to use them only for internal consumption on the property. Can you do that? seems like you could but infact you can't
I'll have to look up this case, but that is a rather serious issue if it's as simple as you state.
I don't know what part of "oversimplification" you aren't following here, but you're being an ass. A bullet point does not a deep explanation make. I clearly explained the three modes that Java software can run in, which you have carelessly (purposefully?) ignored. What purpose does that serve other than to get a lot of people very angry?
Is the music industry required to label CDs that have copy protection?
There's no specific law, if that's what you mean. The only thing compelling CD providers to not label their discs as "CD" is the fact that Phillips owns the "Compact Disc" trademark. Phillips also defines the spec for Compact Discs and (generally speaking) doesn't allow a company to use the mark unless their product complies with Phillips' CD specifications.
If a DRMed CD provider went ahead and used the mark anyway, Phillips would have to file a suit to force them to remove the mark. Whether Phillips takes that step or not is a different issue altogether.
I know that EA, for instance, will sell you a replacement CD of the Battlefield 2 game for the PC if you can prove you bought it, but I've never heard of similar service from any music publisher/distributor.
It's worth noting, however, that they do this as a service to their customers, not because they are in any way required. It stems quite a bit from the fact that many computer programs are sold with no media at all. I know of at least one company (Hi H&R Block, we like TaxCut!) that has a scheme whereby you pay extra to be able to redownload your purchased software past the initial download. This is allowed because copyright law creates artificial scarcity. One copy is all you're entitled to with the exception of a single backup copy and loading from disk to memory. Note that this is complicated by situations that are considered "shifting" of the data rather than copying.
In relation to the article, let me be the first to say, "Whiskey Tango Foxtrot". You pay for the disk. The disk is yours and you should be allowed to do whatever you want with it. The disk can be resold, cut into pieces, used as a frisbee, whatever. It's still your disk, and that copy of the content is still yours. (Note that this is artificial scarcity, so copying the data isn't allowed. The copy of data you have is supposed to be considered indivisible as if it were a physical product.) Once I have the disk, the only "rights" I don't have are the ones explicity restricted by copyright law. i.e. Copying.
Of course, this is a Finish comment, so their law may work differently. But this idea of "privledges" sure as hell doesn't jive with US law.
More like a 5000 line network app that used RMI and other stuff. Nothing major, but I think I know it pretty well.
That's a step up, but now you're being outright disingenous. If you were writing RMI code, what do you have to compare against? Is your complaint that it was slow serialzing objects across the network? In which case, I'm afraid that you don't understand the code you were writing. Network object libraries are almost ALWAYS slow. RMI is no exception. (That's why no one uses it.) Trying to get the best performance out of such systems is a very specialized field of research. Writing 5000 lines of code (which really doesn't tell me anything, BTW) doesn't exactly make you an expert on the field.
I don't know what your definition of "interpreted" is, but Java is most certainly interpreted.
Interpreted is an execution paradigm in which code is translated line by line (or instruction by instruction as the case may be) for execution on the machine. Java hasn't done that since the stone age. JVMs use a process known as "Just In Time" (JIT) compilation that compiles the code prior to execution. Once the code is compiled, there is no translation that goes on, thus no interpreter.
What you're thinking of is a hybrid mode present in recent JVMs. This mode trades off the cost of startup vs. runtime performance. It calculates which one is faster for a given piece of code (yes, interpreted can be faster in certain circumstances) and then makes a decision on how to proceed. Pretty much all code that gets run more than once is fully compiled. Code that runs frequently gets optimized like no one's business.
Yeah, it compiles it into bytecode and does some neat dynamic recompilation tricks, but it runs it through a virtual machine.
More evidence that you don't know what the hell you're talking about. A virtual machine has nothing to do with interpreted code. Windows, for example, has a wide variety of virtual machines including its DOS support and WOW16 (Windows on Windows) support. None of those are interpreted. VMWare is a virtual machine. It doesn't interpret jack.
If you want an app that can get incredibly slow, try Eclipse (especially their visual editor component).
If you want an app that can get incredibly slow, try Open Office (especially when you load a 50 meg Writer document).
I mean, COME ON. You're picking a highly advanced development environment with more features than Carter has little pills as an example of why a language is slow? Good God, how much ignorance are you going to flaunt here?
Well, BitTorrent is very fast even when written in Python, and python is many times slower than native code by anyone's yardstick.
Whiskey Tango Foxtrot. Do you know what the hell you're talking about? (Scratch that, we already established that you don't.) The BitTorrent client is distributed as precompiled python code. Go ahead and open one of those PYD files sometime. You'll find executable code inside (recognizable by the "This program cannot be run in DOS mode." or "ELF32" strings), not Python scripts.
I use a 700MHz Duron, so maybe I notice more than you do. Please note, however, that a native GUI is fairly responsive even on a 200MHz processor. Java isn't that great even on a 700MHz one.
Uh huh. So, did you run ICEBrowser? What did you learn?
Have you? Because it certainly doesn't sound like it from your response. I've been running ICEBrowser since I posted that comment and found it to be quite sufficient for most browsing activities. It is most certainly NOT slow.
So that leaves me with only a few different options as to your comment:
1. You made up your "performance problems" so you can troll. 2. You're running it under something like GCJ and conveniently "forgot" to tell everyone that fact. 3. You tried NetClue or some other POS before and assumed that I linked to the same thing.
One way or another, you're full of it as anyone who actually RUNS ICEBrowser can attest.
That, my friend, is called an oversimplification. Yes, the Java code must be converted into native code to execute. However, there are three ways to do that. Way #1 is to interpret the bytecode one instruction at a time. That is highly inefficient and slow. Way #2 is to compile the bytecode to native code prior to execution. This is known as "Just In Time" (JIT) compiling, and is just as efficient as native code, albeit with slow program startup times. (You have to compile the code at some point.) Many JVMs use this solution. Way #3 is a hybrid mode whereby the execution time of the code is analyzed to deterimine if it's faster to compile or to interpret. That way the main loops that matter are quickly compiled and optimized while the code that is rarely run (such as startup code) never gets compiled. This leads to a "best of both worlds" performance, and even allows the JVM to apply expensive optimizations to the compiled code if it detects that the cost of the optimization is significantly less than the execution time that would be saved. This method is used by the HotSpot VM, which is why Java 1.5 is a speed demon.
It's surprisingly fast -- for an interpreted language.
Java is not interpreted, nor has it been for a VERY long time. If you seriously programmed in it, then you would know this.
Which basically means it runs 5x slower than native code instead of 30x slower.
Do I have to yank out the benchmarks that prove that this is nonsense?
Of course, this might not be very noticeable for something like Azureus which is basically a GUI bolted on to some network code
More utter nonsense. "Some network code"? The network code in BitTorrent is quite extensive. Java was used because it has a very good implementation of networking APIs.
most of which is native code that is part of the JVM or the OS
Now you're just being disingenous. A network stack is always only as good as the stack implementation. Yanking that card out is ridiculous because all calls eventually fall to the system services. If your point mattered, then all programs except for encryption and PI calculating loops would run at the same speed regardless of what they did behind the scenes.
However, you will notice that the GUI is fairly sluggish compared to a native application, especially if your processor is not very fast.
No, no I haven't. Not since the bad old days of applets. And up until recently I used a PIII 733.
If you wrote firefox in Java, it would be a major memory hog and also very slow.
A memory hog? Perhaps. (FireFox isn't a slouch itself, in case you haven't noticed.) Very slow? No. But don't take my word for it. Try it yourself.
I would never run it under Windows because the UI is slower, the startup is horrid, and it takes more resources than other programs.
I do run it under Windows, and I can't say that I've seen a finer client. The memory footprint is a side effect of what it's doing (caching large amounts of data), not the JVM. Java programs only have ~20% increase in footprint. This increase comes from the fact that running the Java VM requires that an OS be loaded on top of an OS. If the JVM was an OS, there would be no overhead other than the differences in String handling.
The right answer is that Java is faster than C for some things, slower than C for others.
This is almost always the correct answer when comparing technolgies. However, that answer is still quite different from "Java is slow". Java is *not* slow and has a very comparable average execution to C/C++ code. Worst case, we're talking about a 5-10% reduction in performance. Best case, we're talking about a 5-20% increase in performance. (Due mainly to programs that Hotspot can optimize well.) Either way, the performance difference is irrelevant on modern machines.
Java also has the issue of the UI handling, which is not as nice as the established UI toolkits available to other languages. The UI response is also not as good as a native program.
That is a whole other issue independent from the Java itself. FWIW, Swing is provably faster than the native Windows GDI. (Which, BTW, tends to cheat by not performing all updates.) The problem is that Swing has a different update model which can have *percieved* performance problems. This puts a bit more of a requirement on the developer to understand how to avoid those problems.
One other issue that makes Java seem slow is the interaction of the Java Objects with the VMM of many systems. When Java scans the objects to see if they should be collected or not, it creates havoc with the memory that the VMM swapped out (particularly on Windows). A system designed around Java would not have this problem. (Or even a better memory manager like on Linux, FreeBSD, and Solaris.
That's like my saying "No, C/C++ is just the right answer, because Windows, Linux, OSX, BSD, QNX, BeOS, Firefox, Gaim, Office, etc. is written with them." It has no bearing on anything.
No, if you said that "No one will use C because it's slow", using those examples would be a good counterpoint. I never tried to say that Java is "the right answer" because of a few programs. I said, that these are a few examples of programs that easily disprove the "Java is slow" argument.
But shouldn't you be able to make them immune to it even with C and C++?
Can't. As long as you're allowing direct access to chunks of memory, you're going to have problems. For example, what happens when I overflow a string on the stack and overwrite a return pointer?
Some OS designs make these holes a lot harder to exploit (e.g. The reordering of the data segment), but they aren't a perfect solution.
Java and C# are nice and all, but it's still interpreted code, and that means slow.
WILL PEOPLE PLEASE STOP SAYING THIS. Java hasn't been an "interpreted language" since Java 1.1 nearly 10 YEARS AGO. The modern JVM (HotSpot) can run in a hybrid mode, but it actually does so to IMPROVE performance. It is not slow, and I REALLY wish people would stop accepting these myths at face value.
With multimedia becoming a bigger part of what people are doing on their computer, won't that shift the balance away from a web platform?
No, the network will adapt. Like I said, new standards will be created to meet the need.
The other question in my mind is, is the web platform actually any better? "As good as" "in most cases" isn't going to cut it.
Yes and no. The web platform is about providing distributed services, especially in cases where management can be effectively consolidated to better use resources. For example, which is easier for a company to maintain: A single "Wordprocessor" web app that the entire company can use, or a copy of Microsoft Word on every desktop? Is it easier to search for company data on a shared drive, or across every desktop in the company?
On the truly distributed side, you often have things that *can't* be installed on the desktop. For example, if I deal in the stock market, part of my application *must* be network aware. If you use local installs of software, then you have a synchronization problem as communications standards are upgraded. Anyone who doesn't get the memo (ha ha) will be effectively disabled. Web apps provide a way of distributing the application as well as the protocol so that such issues don't occur.
Empower IT with HR's traditional roles of hiring, promotion, and termination.
And you wonder why people hate IT departments.
Listen, this "holier than thou" attitude is just stupid. Do you know how to diversify a portfolio to meet acceptable risk according to an efficient frontier formula? Well, some of those "idiot users" do. Does that make them smarter than you? If so, should they have veto power on how you run the network?
IT people are not necessarily smarter, despite what they may think. The goal is to work together in a company, and find solutions that take into account problems that employees may have. Which also means that locking everyone's computer so they can't do anything may not be the correct solution. Maybe, just maybe, users occassionly have a need that you're going to have to work extra to fullfill. That's why you were hired, not so you can sit on your duff and complain about all the work that users make for you.
"Test Procedure Specification" as defined by IEEE 829, mostly used in government work.
And as far as I'm concerned, workers need to get used to the jargon or take a hike. Measurements and particular jargon abound in all walks of life. If you're making cookies, for example, you need to understand a cup, teaspoon, pint, etc. (or liter and the like if you're not American). If you build a shed, you need to know what a foot or meter is, don't you? In those disciples, you also need to know things like what a hammer is, or a mixer. Computers aren't any different. No one is asking that the average user understand coding, but understanding things like storage space is a requirement.
Personally, I don't think the problem is that he got stopped. If the police want to check you out, there's no law against them asking you if you would step aside for a moment to speak with them. Even a search granted by a "terrorism act" is acceptable under extreme circumstances. But to then arrest him, take his stuff, ransack his home, and demand bail all without reasonable cause (there was no bomb in his pack!), now THAT is a problem.
No, that would be the original poster. I was just responding to him. If you check, you'll find your comment is redundant as others have already pointed out that he probably meant "crystal meth". As for "crank", I have no idea what that is. (A street name for crystal meth?)
Sorry, the second quote is the wrong section. Here:
`(f) REVERSE ENGINEERING- (1) Notwithstanding the provisions of subsection (a)(1)(A), a person who has lawfully obtained the right to use a copy of a computer program may circumvent a technological measure that effectively controls access to a particular portion of that program for the sole purpose of identifying and analyzing those elements of the program that are necessary to achieve interoperability of an independently created computer program with other programs, and that have not previously been readily available to the person engaging in the circumvention, to the extent any such acts of identification and analysis do not constitute infringement under this title.
I'm sorry, how are you disagreeing? It seems like you've restated exactly what I said.
You buy the disc, so you having the disc is a privilege.
No, it's not a privilege. It's property.
unless there is a contract preventing you from doing something.
Which is my point. You don't sign a contract when you buy a disk. So cut it up, resell it, use it as a frisbee. As long as you don't copy it (other than backups, shifting, and fair use) there are no restrictions on its use.
If there's a technical "feature" preventing you from playing it on a mac, and not a contract, you can break it and not get into any trouble
Exactly. US law says that in absense of a contract, you can't be forced into terms you didn't agree to.
unless of course there's such an excellent piece of legislation as DMCA in your country.
The DMCA allows you to decrypt the music so you can listen to it:
`(c) OTHER RIGHTS, ETC., NOT AFFECTED- (1) Nothing in this section shall affect rights, remedies, limitations, or defenses to copyright infringement, including fair use, under this title.
Also:
`(2) As used in this subsection--
`(A) to `circumvent protection afforded by a technological measure' means avoiding, bypassing, removing, deactivating, or otherwise impairing a technological measure; and
`(B) a technological measure `effectively protects a right of a copyright owner under this title' if the measure, in the ordinary course of its operation, prevents, restricts, or otherwise limits the exercise of a right of a copyright owner under this title.
If you don't affect the copyright holder, then you may not be liable. i.e. Personal use. People tend to get confused when they consider DeCSS, because the author was tried. However, the problem was that DeCSS was redistributed not kept for personal use.
Anyway, there are no "rights" involved here at all.
Copyright is a "right" and is very much the issue.
I mean, i guess that's ok if you don't really want to do anything.
I'm sorry, do you define Word Processing and Spreadsheets as "anything"?
You've picked a very specialized type of program to complain about. Even then, however, solutions do exist. SVG is perfect for vector drawing, and Applets can be used to provide the per-pixel drawing necessary for raster image editing. The point is that *most* of what people do with their computers can be done with a web platform today. And if a need arises for something more sophisticated, I'm sure you'll be seeing standards to address the problem.
Case V: Va: You own the silver coaster, not the music. Vb: you own nothing, you only have permission to listen.
Incorrect. You own the silver coaster and the particular copy of the music on the coaster. Copyright is the right to control the copies of a work, thus creating an artificial scarcity. i.e. As if the music was a sheep or a car.
You have to either destroy the backup or transfer it the buyer as a backup copy. Basically, no part of the data may remain in your possession after sale.
The web is an infrastructure that lets our individual machines communicate with one another. I very much doubt the web will be a viable platform anytime soon, for bandwidth reasons if nothing else.
You might want to recheck that. It's been done before, and it will be done again. (Use test:test for user/pass.)
Case I: You buy a movie theater ticket. But because you can't make it to the theater that night, you instead set up a video camera on your seat
You must note that you own nothing in this case. The movie theater sold you a service, not a product. Thus this case is not covered under copyright law. (Until you try to "steal" the movie, that is.)
Case II: You buy some ephedrine, some lithuim batteries, some drano and some Acetone. You decide to whip up a batch of Crack. Are you allowed to do this? NO.
Actually, I'm a little fuzzy on this one. I'm not certain that whipping up crack is so much the problem as to what your intent is with it. If you were using the resulting chemical for non-biological scientific experiments (not sure what you'd do with crack, but hey) you probably would not be liable for criminal actions. Of course, it always helps to get a hazmat license to prove the fact before you begin your experiments.
Case III: You own your car. You decide it would be cool to remove the windshield wipers and seatbelts. Can you do that?
YES!
only if you don't put it on the road or try to sell it for such a use.
Again, this is a matter of services provided. The public as a whole is providing you with a service (public roads) which comes with terms of use. You agree to those terms in exchange for use of public roads when you get your driver's license. That's why a cop can fine you for having a vehicle that isn't up to code.
BTW, you can still sell the vehicle. You just can't claim it's road worthy. Otherwise, how do you think junk yards can take damaged cars?
case IV: you own some swapland. You want to drain it. can you do that? Not if it's considered a protected wetland.
This is probably a valid case, but it gets back to your rights ending when they begin to reasonably interfere with the rights of others. In the case of draining wetlands, the environmental impact will affect others. e.g. A bit like if you diverted a river farther up stream.
You own a peice of DRM'd music for which you contracted to play on a single computer. Can you sell that to someone else. NO. you contracted for that.
Actually, if you never signed a contract (or at least a click through agreement), you can sell it all you like. I remember a fellow attempting to sell his copy of an iTunes song just to prove he could do it. It's allowed by copyright law, so without a pre-existing agreement you are not restricted from sale.
Case VI: Your a farmer and the govenement tells you you can grow so many bushells on your land. You grow more but you plan to use them only for internal consumption on the property. Can you do that? seems like you could but infact you can't
I'll have to look up this case, but that is a rather serious issue if it's as simple as you state.
Er, yes. I'm afraid I've been getting worse and worse at proofreading for typos. Sorry about that. :-)
Are you going to argue with the people who designed the software?
Are you?
I don't know what part of "oversimplification" you aren't following here, but you're being an ass. A bullet point does not a deep explanation make. I clearly explained the three modes that Java software can run in, which you have carelessly (purposefully?) ignored. What purpose does that serve other than to get a lot of people very angry?
Is the music industry required to label CDs that have copy protection?
There's no specific law, if that's what you mean. The only thing compelling CD providers to not label their discs as "CD" is the fact that Phillips owns the "Compact Disc" trademark. Phillips also defines the spec for Compact Discs and (generally speaking) doesn't allow a company to use the mark unless their product complies with Phillips' CD specifications.
If a DRMed CD provider went ahead and used the mark anyway, Phillips would have to file a suit to force them to remove the mark. Whether Phillips takes that step or not is a different issue altogether.
I know that EA, for instance, will sell you a replacement CD of the Battlefield 2 game for the PC if you can prove you bought it, but I've never heard of similar service from any music publisher/distributor.
It's worth noting, however, that they do this as a service to their customers, not because they are in any way required. It stems quite a bit from the fact that many computer programs are sold with no media at all. I know of at least one company (Hi H&R Block, we like TaxCut!) that has a scheme whereby you pay extra to be able to redownload your purchased software past the initial download. This is allowed because copyright law creates artificial scarcity. One copy is all you're entitled to with the exception of a single backup copy and loading from disk to memory. Note that this is complicated by situations that are considered "shifting" of the data rather than copying.
In relation to the article, let me be the first to say, "Whiskey Tango Foxtrot". You pay for the disk. The disk is yours and you should be allowed to do whatever you want with it. The disk can be resold, cut into pieces, used as a frisbee, whatever. It's still your disk, and that copy of the content is still yours. (Note that this is artificial scarcity, so copying the data isn't allowed. The copy of data you have is supposed to be considered indivisible as if it were a physical product.) Once I have the disk, the only "rights" I don't have are the ones explicity restricted by copyright law. i.e. Copying.
Of course, this is a Finish comment, so their law may work differently. But this idea of "privledges" sure as hell doesn't jive with US law.
More like a 5000 line network app that used RMI and other stuff. Nothing major, but I think I know it pretty well.
That's a step up, but now you're being outright disingenous. If you were writing RMI code, what do you have to compare against? Is your complaint that it was slow serialzing objects across the network? In which case, I'm afraid that you don't understand the code you were writing. Network object libraries are almost ALWAYS slow. RMI is no exception. (That's why no one uses it.) Trying to get the best performance out of such systems is a very specialized field of research. Writing 5000 lines of code (which really doesn't tell me anything, BTW) doesn't exactly make you an expert on the field.
I don't know what your definition of "interpreted" is, but Java is most certainly interpreted.
Interpreted is an execution paradigm in which code is translated line by line (or instruction by instruction as the case may be) for execution on the machine. Java hasn't done that since the stone age. JVMs use a process known as "Just In Time" (JIT) compilation that compiles the code prior to execution. Once the code is compiled, there is no translation that goes on, thus no interpreter.
What you're thinking of is a hybrid mode present in recent JVMs. This mode trades off the cost of startup vs. runtime performance. It calculates which one is faster for a given piece of code (yes, interpreted can be faster in certain circumstances) and then makes a decision on how to proceed. Pretty much all code that gets run more than once is fully compiled. Code that runs frequently gets optimized like no one's business.
Yeah, it compiles it into bytecode and does some neat dynamic recompilation tricks, but it runs it through a virtual machine.
More evidence that you don't know what the hell you're talking about. A virtual machine has nothing to do with interpreted code. Windows, for example, has a wide variety of virtual machines including its DOS support and WOW16 (Windows on Windows) support. None of those are interpreted. VMWare is a virtual machine. It doesn't interpret jack.
If you want an app that can get incredibly slow, try Eclipse (especially their visual editor component).
If you want an app that can get incredibly slow, try Open Office (especially when you load a 50 meg Writer document).
I mean, COME ON. You're picking a highly advanced development environment with more features than Carter has little pills as an example of why a language is slow? Good God, how much ignorance are you going to flaunt here?
Well, BitTorrent is very fast even when written in Python, and python is many times slower than native code by anyone's yardstick.
Whiskey Tango Foxtrot. Do you know what the hell you're talking about? (Scratch that, we already established that you don't.) The BitTorrent client is distributed as precompiled python code. Go ahead and open one of those PYD files sometime. You'll find executable code inside (recognizable by the "This program cannot be run in DOS mode." or "ELF32" strings), not Python scripts.
I use a 700MHz Duron, so maybe I notice more than you do. Please note, however, that a native GUI is fairly responsive even on a 200MHz processor. Java isn't that great even on a 700MHz one.
Uh huh. So, did you run ICEBrowser? What did you learn?
Have you actually tried that browser?
Have you? Because it certainly doesn't sound like it from your response. I've been running ICEBrowser since I posted that comment and found it to be quite sufficient for most browsing activities. It is most certainly NOT slow.
So that leaves me with only a few different options as to your comment:
1. You made up your "performance problems" so you can troll.
2. You're running it under something like GCJ and conveniently "forgot" to tell everyone that fact.
3. You tried NetClue or some other POS before and assumed that I linked to the same thing.
One way or another, you're full of it as anyone who actually RUNS ICEBrowser can attest.
Check the replies. Java has not been interpreted since the stone age of computers.
That, my friend, is called an oversimplification. Yes, the Java code must be converted into native code to execute. However, there are three ways to do that. Way #1 is to interpret the bytecode one instruction at a time. That is highly inefficient and slow. Way #2 is to compile the bytecode to native code prior to execution. This is known as "Just In Time" (JIT) compiling, and is just as efficient as native code, albeit with slow program startup times. (You have to compile the code at some point.) Many JVMs use this solution. Way #3 is a hybrid mode whereby the execution time of the code is analyzed to deterimine if it's faster to compile or to interpret. That way the main loops that matter are quickly compiled and optimized while the code that is rarely run (such as startup code) never gets compiled. This leads to a "best of both worlds" performance, and even allows the JVM to apply expensive optimizations to the compiled code if it detects that the cost of the optimization is significantly less than the execution time that would be saved. This method is used by the HotSpot VM, which is why Java 1.5 is a speed demon.
I've programmed quite a bit in Java.
So you did a few applets back in the day?
It's surprisingly fast -- for an interpreted language.
Java is not interpreted, nor has it been for a VERY long time. If you seriously programmed in it, then you would know this.
Which basically means it runs 5x slower than native code instead of 30x slower.
Do I have to yank out the benchmarks that prove that this is nonsense?
Of course, this might not be very noticeable for something like Azureus which is basically a GUI bolted on to some network code
More utter nonsense. "Some network code"? The network code in BitTorrent is quite extensive. Java was used because it has a very good implementation of networking APIs.
most of which is native code that is part of the JVM or the OS
Now you're just being disingenous. A network stack is always only as good as the stack implementation. Yanking that card out is ridiculous because all calls eventually fall to the system services. If your point mattered, then all programs except for encryption and PI calculating loops would run at the same speed regardless of what they did behind the scenes.
However, you will notice that the GUI is fairly sluggish compared to a native application, especially if your processor is not very fast.
No, no I haven't. Not since the bad old days of applets. And up until recently I used a PIII 733.
If you wrote firefox in Java, it would be a major memory hog and also very slow.
A memory hog? Perhaps. (FireFox isn't a slouch itself, in case you haven't noticed.) Very slow? No. But don't take my word for it. Try it yourself.
I would never run it under Windows because the UI is slower, the startup is horrid, and it takes more resources than other programs.
I do run it under Windows, and I can't say that I've seen a finer client. The memory footprint is a side effect of what it's doing (caching large amounts of data), not the JVM. Java programs only have ~20% increase in footprint. This increase comes from the fact that running the Java VM requires that an OS be loaded on top of an OS. If the JVM was an OS, there would be no overhead other than the differences in String handling.
The right answer is that Java is faster than C for some things, slower than C for others.
This is almost always the correct answer when comparing technolgies. However, that answer is still quite different from "Java is slow". Java is *not* slow and has a very comparable average execution to C/C++ code. Worst case, we're talking about a 5-10% reduction in performance. Best case, we're talking about a 5-20% increase in performance. (Due mainly to programs that Hotspot can optimize well.) Either way, the performance difference is irrelevant on modern machines.
Java also has the issue of the UI handling, which is not as nice as the established UI toolkits available to other languages. The UI response is also not as good as a native program.
That is a whole other issue independent from the Java itself. FWIW, Swing is provably faster than the native Windows GDI. (Which, BTW, tends to cheat by not performing all updates.) The problem is that Swing has a different update model which can have *percieved* performance problems. This puts a bit more of a requirement on the developer to understand how to avoid those problems.
One other issue that makes Java seem slow is the interaction of the Java Objects with the VMM of many systems. When Java scans the objects to see if they should be collected or not, it creates havoc with the memory that the VMM swapped out (particularly on Windows). A system designed around Java would not have this problem. (Or even a better memory manager like on Linux, FreeBSD, and Solaris.
That's like my saying "No, C/C++ is just the right answer, because Windows, Linux, OSX, BSD, QNX, BeOS, Firefox, Gaim, Office, etc. is written with them." It has no bearing on anything.
No, if you said that "No one will use C because it's slow", using those examples would be a good counterpoint. I never tried to say that Java is "the right answer" because of a few programs. I said, that these are a few examples of programs that easily disprove the "Java is slow" argument.
But shouldn't you be able to make them immune to it even with C and C++?
Can't. As long as you're allowing direct access to chunks of memory, you're going to have problems. For example, what happens when I overflow a string on the stack and overwrite a return pointer?
Some OS designs make these holes a lot harder to exploit (e.g. The reordering of the data segment), but they aren't a perfect solution.
Java and C# are nice and all, but it's still interpreted code, and that means slow.
WILL PEOPLE PLEASE STOP SAYING THIS. Java hasn't been an "interpreted language" since Java 1.1 nearly 10 YEARS AGO. The modern JVM (HotSpot) can run in a hybrid mode, but it actually does so to IMPROVE performance. It is not slow, and I REALLY wish people would stop accepting these myths at face value.
605 horsepower? 10 cylinders? No Bvlgari clock? Lame. (With apologies to CmdrTaco.) :-)