In some cases, yes, java is faster. And you named one of them: loop intensive math, where a runtime optimizer can do its best work.
But to say C is not faster by a wide margin in most cases is ludicrous. It's precisely this attitude that caused this entire article to begin with. All the Java people say Java is fast, but keep wondering why it has an "unfair" reputation for sluggish performance. If Java is just as fast, then show me the Java office suite that was promised me ten years ago. I don't need one that's MS compatible, just one that works and is responsive enough to be usable.
If you click the "I Agree" button, you have agreed to the contract. You aren't coerced into agreeing, but if you don't you have no way to use the software. And if you don't agree, it's pretty damned difficult to get your money back.
For contract law to come into effect, you first need a contract.
What do you think a EULA is? They're contracts. You must agree to them before you can use the software. The courts in both US and Europe have already upheld the validity of these agreements.
If most copyright jurisdictions say you can reverse engineer software, but the license says you cannot, and the the license has been ruled to be valid by a court, then it is contract law at work, and not copyright law.
Python people aren't claiming that Python is greyhound of performance. But I have seen more than one article by a Java advocate making the strange claim that Java is faster than C.
really? on what permanent media is this copy made?
On what permanent media is a copy of the software made during execution? Random access memory? You have a much different definition of "permanent" than I do. Perhaps that's why it's called "transient" instead of "permanent."
Otherwise youd'd never be able to legally see the film you paid to see or read the book you've bought.
Then why don't I have an implied license to use the software I've bought?
This is the biggest problem I have with proprietary software, surpassing by far the lack of source code: the fact that such software does not operate under copyright law, but under contract law. When you take home a shrink-wrapped box of software, you cannot legally use it without first entering into subsequent contract with the manufacturer. All you've purchased, in essence, is the opportunity to beg someone for permission to use the software.
This is why I brought up the absurd examples of humming songs and reading books. If the current state and practices of software were applied to music, books, movies, etc, the public would be righteously indignant.
UK readers may be interested to note that merely humming the words to a Spice Girls song while jogging down the street is the creation of a transient and incidental copy, and an infringement. Reading a book causes transient and incidental copies of the text on your retinas, not to mention the gross copyright violations that occur in movie theaters across the UK.
then realized I'd set NT as the default in lilo in case someone needed to use the copmuter.
I use a GRUB boot disk, so if IT ever comes by and turns on the system, they see a perfectly "normal" boot screen. Walk away with the floppy and the second harddrive (I love Dell's quick remove HDD mounts) and the system is EXACTLY as I first received it.
Next up on Nightly News: Internal Affairs discovers firearm without a safety lock in Police Chief's desk drawer.
I shouldn't laugh. My own company has a policy about locking your file cabinets, even though the building has locks five times as secure on all the doors.
He wasn't referring to the author, but to the Free Software Community(tm) at large. The typical and average member of that community will consider a copyright violation of GNU software to be immoral, but a copyright violation of RIAA music to be perfectly fine.
The reason is simple: system and network maintainance.
Funny, my FreeBSD machine is a well behaved netizen. It's all those Windows machines on the network that are screwing everything up. A quick glance at the packets passing by my NIC is frightening!
they can easily standardize on setup, security, what apps need to be installed, and so on.
How the heck do you know what apps I need? Are you psychic or something? About 90% of the users can get by with the basic stuff you set out for them, but the remaining 10% are going to need stuff not on your approved list, and they won't want to be waiting around for two weeks while your committee approves their software.
If you did format my system with extreme prejudice, you had better be sure you have the authority to do so. The computer doesn't belong to you. It belongs to the company. So check with your boss, his boss, and his boss's boss first. Then double check with my boss, his boss, and his boss's boss.
Someone did this in my company to a laptop four years ago. Just last week I noticed he was still sitting funny after the impromptu buttectomy the VP gave him.
I'm not running Linux under the radar, I'm running FreeBSD. I'm so much more productive with FreeBSD/KDE than with the mandated Win2K. Especially since the network is Solaris. (Why we're supposed to use Windows on a UNIX network is something I still haven't figured out).
But IT doesn't know about it. I don't have their permission. But guess what? IT doesn't own this computer, my department does, and I got my boss's permission, his boss's permission, and the permission of the VP above him. I would have told IT, but then they would have a cow and it would become a big pile of political crap. But IT doesn't know, so they're happy, I'm happy and my boss is happy.
I'm certainly not going to tell them about the development lab being switched over the FreeBSD, the Dicom lab running Mandrake, or any of the internal websites running Redhat and SuSE.
But why should we be stuck with C forever? Isn't there room for another mid level language suitable for systems programming? Something like a more advanced C, or a cleaned up C++?
I do try to keep up with the times. it's hard though. I came from the world where you only had 64Kb of RAM. You made every byte count. But nowadays the trend seems to be "make the user upgrade." I've got a 1.4GHz Pentium and Java still runs like a sick dog on it. I'm going to be purchasing a new system next week, but dammit it's obsolete before I've even bought it!
We probably don't disagree as much as you would think.
I like libraries, don't get me wrong. I use them all the time. But there are times when you don't have the luxury of lugging along a mandatory library. Most people on Slashdot seem to be making the assumption that every system in the world is a PC. This is simply not the case. When you are working on an embedded device with 2MB of flash memory, you can't afford a 3MB runtime.
I don't have a problem per se with standard libraries. But I do have a problem with standard libraries that are mandatory. Can you imagine having to lug around all of CPAN as a runtime for Perl? Of course not!
Give me the libaries! But don't force me to carry them if I don't use them. Keep them separate.
"People who want 1.44Mb boot floppies should: 1. Are old farts who can't handle technology. 2. Should find a corner to die in. 3. Must do what I tell them to do, dammit!"
Translation of what I meant:
If you can't fit a kernel into one and half megabytes, perhaps it's getting to big. I don't care about floppies or CDROMs or USB boot devices. But I do care about systems that aren't necessarily your typical gamer's desktop.
Ditto! As a systems programmer, I have a definite need for compiled languages, as well as interpreted scripts. But it seems that everyone is all gungho over interpreted or byte-code languages.
I think it would be really cool to have a Ruby compiler. But I suppose it would end up like the gcj compiler, and not give you much of a benefit because of the runtime overhead.
I think we need a language that not only performs those operations but is built with Cross-platform GUI design in mind.
But the real question will be, "Whose GUI?" It would be a real bummer if Microsoft got involved in the language committee, and everyone had to use something of theirs.
A better way is to *support* some common GUI constructs, such as signal/slots (callbacks) and events.
A pragmatic language should have mature class libraries.
Libraries should not be a part of the language. There is a use for small minimal standard libraries, just to aid in portability, but please keep the language small by keeping the libraries out. There is a distinction that must be made between syntax and semantics, and useful routines that other people have made.
Libraries as part of a language seem to be an interpreted language kind of thing, because it makes absolutely no sense to put them in a compiler. But they're not to hard to include in a runtime environment. That means they will still be there taking up resources even if you don't use them. In C/C++ you don't have to use any of the standard libaries if you don't want to. Maybe you want to use Dinkumware instead of glibc. Or maybe Qt instead of GTK+. Or roll your own mini-libc for an embedded device.
Moving libraries into the language is like moving web servers, web browsers, office suites and solitaire games into the kernel. Some people will think it's cool, but others will wonder why they can no longer fit a bootdisk onto a 1.44Mb floppy.
50% of the people out there will vehemently disagree with me. The other 50% will think I'm right. This is just an opinion.
It is just easier to use Windows than most other OSes.
Correction. It is just easier to use Windows software under Windows than most other OSes. But beyond that it's actually pretty mediocre.
Compare the individual components of Windows to their counterparts in the UNIX world. Compare *just* the window manager part (not the desktop) to Blackbox. Blackbox is easier to use. You can easily control the z-order of windows, snap to window or screen borders, etc., making it very easy to organize your windows on the screen. Now compare *just* the desktop part (not the window manager) to the KDesktop. Under KDE you can use any damn image you want as the wallpaper, and scale it smoothly. You can align you icons to a grid. Multiple desktops are a given. Etc. Now look at task bars. Kicker and Panel kick butt over the Windows taskbar.
People who have never used any other system always say that Windows is easier than anything else they've tried. And there are so many of them, that people who HAVE used other systems tend to believe them. But it's just not true. It just seems that way because it's what you're used to. Spend a couple of week using something other than Windows, then go back. You'll be surprised.
p.s. I've never used XP, so it may be a different story, but even CDE seems usable compared to Win9x/NT/2K.
This is why I ALWAYS put the type modifier next to the variable name. I do this for pointers and references.
And yet another reason I prefer string types as opposed to char arrays. When people see a "char*" they think "string", when they should always think "pointer to character". If I can help I never use char* for strings, but use STL string or something else, instead.
It believes that by helping people create patents, it is helping businesses protect and build themselves.
Actually, that's true. But only for genuine patentable ideas. It needs to be novel, non-obvious to the practitioner in the field, have a prototype, etc. And shorten the patent terms.
Patents were supposed to help the little guy. Let him get his unique product out on the market before megacorp steals his idea and grinds him into the dust with economy-of-scale. But with the rubber stamp mentality of the USPTO, patents have devolved into commodity properties used as barter between megacorps.
The idea of patents is a good one, but the current USPTO behaviors and policies suck.
Should there be another tier of patents that protect IP but cannot be licensed out for money (BSD style patents?)?
Simply disclose the patent in some way. Either to the public, or to your patent attorney. Or file a "preliminary" patent (forget the exact term) and then let it lapse.
You've just established prior art, and no one else can patent it.
The problem is that others will take your general idea and patent a specific application. So try to include as many specific applications as you can in your disclosure.
p.s. At my company we had been using a system configuration tool for seven years, and shipping it with the product for six.
What free trade? The US certainly doesn't believe in it. The more accurate description would be "micromanaged trade". Just because the politicians talk about free trade, and put those words in the titles of treaties, doesn't mean that it actually exists here.
Ruby is not a scripting language in the sense that Perl is. Thus it is not necessarily suitable for creating web sites. It can be of course, just as you can create a site in C++, but the web site manipulation is not where it's strength lies.
In some cases, yes, java is faster. And you named one of them: loop intensive math, where a runtime optimizer can do its best work.
But to say C is not faster by a wide margin in most cases is ludicrous. It's precisely this attitude that caused this entire article to begin with. All the Java people say Java is fast, but keep wondering why it has an "unfair" reputation for sluggish performance. If Java is just as fast, then show me the Java office suite that was promised me ten years ago. I don't need one that's MS compatible, just one that works and is responsive enough to be usable.
If you click the "I Agree" button, you have agreed to the contract. You aren't coerced into agreeing, but if you don't you have no way to use the software. And if you don't agree, it's pretty damned difficult to get your money back.
For contract law to come into effect, you first need a contract.
What do you think a EULA is? They're contracts. You must agree to them before you can use the software. The courts in both US and Europe have already upheld the validity of these agreements.
If most copyright jurisdictions say you can reverse engineer software, but the license says you cannot, and the the license has been ruled to be valid by a court, then it is contract law at work, and not copyright law.
Python people aren't claiming that Python is greyhound of performance. But I have seen more than one article by a Java advocate making the strange claim that Java is faster than C.
You didn't get your membership card when you signed up for a Slashdot account, did you? Let me refresh you as to the rules regarding individuality:
1) RMS can do no wrong.
2) Bill Gates can do no right.
3) The correct name is "GNU/Linux".
4) Check in every morning for your whining orders.
really? on what permanent media is this copy made?
On what permanent media is a copy of the software made during execution? Random access memory? You have a much different definition of "permanent" than I do. Perhaps that's why it's called "transient" instead of "permanent."
Otherwise youd'd never be able to legally see the film you paid to see or read the book you've bought.
Then why don't I have an implied license to use the software I've bought?
This is the biggest problem I have with proprietary software, surpassing by far the lack of source code: the fact that such software does not operate under copyright law, but under contract law. When you take home a shrink-wrapped box of software, you cannot legally use it without first entering into subsequent contract with the manufacturer. All you've purchased, in essence, is the opportunity to beg someone for permission to use the software.
This is why I brought up the absurd examples of humming songs and reading books. If the current state and practices of software were applied to music, books, movies, etc, the public would be righteously indignant.
UK readers may be interested to note that merely humming the words to a Spice Girls song while jogging down the street is the creation of a transient and incidental copy, and an infringement. Reading a book causes transient and incidental copies of the text on your retinas, not to mention the gross copyright violations that occur in movie theaters across the UK.
then realized I'd set NT as the default in lilo in case someone needed to use the copmuter.
I use a GRUB boot disk, so if IT ever comes by and turns on the system, they see a perfectly "normal" boot screen. Walk away with the floppy and the second harddrive (I love Dell's quick remove HDD mounts) and the system is EXACTLY as I first received it.
Next up on Nightly News: Internal Affairs discovers firearm without a safety lock in Police Chief's desk drawer.
I shouldn't laugh. My own company has a policy about locking your file cabinets, even though the building has locks five times as secure on all the doors.
He wasn't referring to the author, but to the Free Software Community(tm) at large. The typical and average member of that community will consider a copyright violation of GNU software to be immoral, but a copyright violation of RIAA music to be perfectly fine.
The reason is simple: system and network maintainance.
Funny, my FreeBSD machine is a well behaved netizen. It's all those Windows machines on the network that are screwing everything up. A quick glance at the packets passing by my NIC is frightening!
they can easily standardize on setup, security, what apps need to be installed, and so on.
How the heck do you know what apps I need? Are you psychic or something? About 90% of the users can get by with the basic stuff you set out for them, but the remaining 10% are going to need stuff not on your approved list, and they won't want to be waiting around for two weeks while your committee approves their software.
If you did format my system with extreme prejudice, you had better be sure you have the authority to do so. The computer doesn't belong to you. It belongs to the company. So check with your boss, his boss, and his boss's boss first. Then double check with my boss, his boss, and his boss's boss.
Someone did this in my company to a laptop four years ago. Just last week I noticed he was still sitting funny after the impromptu buttectomy the VP gave him.
I'm not running Linux under the radar, I'm running FreeBSD. I'm so much more productive with FreeBSD/KDE than with the mandated Win2K. Especially since the network is Solaris. (Why we're supposed to use Windows on a UNIX network is something I still haven't figured out).
But IT doesn't know about it. I don't have their permission. But guess what? IT doesn't own this computer, my department does, and I got my boss's permission, his boss's permission, and the permission of the VP above him. I would have told IT, but then they would have a cow and it would become a big pile of political crap. But IT doesn't know, so they're happy, I'm happy and my boss is happy.
I'm certainly not going to tell them about the development lab being switched over the FreeBSD, the Dicom lab running Mandrake, or any of the internal websites running Redhat and SuSE.
But why should we be stuck with C forever? Isn't there room for another mid level language suitable for systems programming? Something like a more advanced C, or a cleaned up C++?
I do try to keep up with the times. it's hard though. I came from the world where you only had 64Kb of RAM. You made every byte count. But nowadays the trend seems to be "make the user upgrade." I've got a 1.4GHz Pentium and Java still runs like a sick dog on it. I'm going to be purchasing a new system next week, but dammit it's obsolete before I've even bought it!
We probably don't disagree as much as you would think.
I like libraries, don't get me wrong. I use them all the time. But there are times when you don't have the luxury of lugging along a mandatory library. Most people on Slashdot seem to be making the assumption that every system in the world is a PC. This is simply not the case. When you are working on an embedded device with 2MB of flash memory, you can't afford a 3MB runtime.
I don't have a problem per se with standard libraries. But I do have a problem with standard libraries that are mandatory. Can you imagine having to lug around all of CPAN as a runtime for Perl? Of course not!
Give me the libaries! But don't force me to carry them if I don't use them. Keep them separate.
Translation of what you said:
"People who want 1.44Mb boot floppies should:
1. Are old farts who can't handle technology.
2. Should find a corner to die in.
3. Must do what I tell them to do, dammit!"
Translation of what I meant:
If you can't fit a kernel into one and half megabytes, perhaps it's getting to big. I don't care about floppies or CDROMs or USB boot devices. But I do care about systems that aren't necessarily your typical gamer's desktop.
Ditto! As a systems programmer, I have a definite need for compiled languages, as well as interpreted scripts. But it seems that everyone is all gungho over interpreted or byte-code languages.
I think it would be really cool to have a Ruby compiler. But I suppose it would end up like the gcj compiler, and not give you much of a benefit because of the runtime overhead.
I think we need a language that not only performs those operations but is built with Cross-platform GUI design in mind.
But the real question will be, "Whose GUI?" It would be a real bummer if Microsoft got involved in the language committee, and everyone had to use something of theirs.
A better way is to *support* some common GUI constructs, such as signal/slots (callbacks) and events.
A pragmatic language should have mature class libraries.
Libraries should not be a part of the language. There is a use for small minimal standard libraries, just to aid in portability, but please keep the language small by keeping the libraries out. There is a distinction that must be made between syntax and semantics, and useful routines that other people have made.
Libraries as part of a language seem to be an interpreted language kind of thing, because it makes absolutely no sense to put them in a compiler. But they're not to hard to include in a runtime environment. That means they will still be there taking up resources even if you don't use them. In C/C++ you don't have to use any of the standard libaries if you don't want to. Maybe you want to use Dinkumware instead of glibc. Or maybe Qt instead of GTK+. Or roll your own mini-libc for an embedded device.
Moving libraries into the language is like moving web servers, web browsers, office suites and solitaire games into the kernel. Some people will think it's cool, but others will wonder why they can no longer fit a bootdisk onto a 1.44Mb floppy.
50% of the people out there will vehemently disagree with me. The other 50% will think I'm right. This is just an opinion.
It is just easier to use Windows than most other OSes.
Correction. It is just easier to use Windows software under Windows than most other OSes. But beyond that it's actually pretty mediocre.
Compare the individual components of Windows to their counterparts in the UNIX world. Compare *just* the window manager part (not the desktop) to Blackbox. Blackbox is easier to use. You can easily control the z-order of windows, snap to window or screen borders, etc., making it very easy to organize your windows on the screen. Now compare *just* the desktop part (not the window manager) to the KDesktop. Under KDE you can use any damn image you want as the wallpaper, and scale it smoothly. You can align you icons to a grid. Multiple desktops are a given. Etc. Now look at task bars. Kicker and Panel kick butt over the Windows taskbar.
People who have never used any other system always say that Windows is easier than anything else they've tried. And there are so many of them, that people who HAVE used other systems tend to believe them. But it's just not true. It just seems that way because it's what you're used to. Spend a couple of week using something other than Windows, then go back. You'll be surprised.
p.s. I've never used XP, so it may be a different story, but even CDE seems usable compared to Win9x/NT/2K.
This is why I ALWAYS put the type modifier next to the variable name. I do this for pointers and references.
And yet another reason I prefer string types as opposed to char arrays. When people see a "char*" they think "string", when they should always think "pointer to character". If I can help I never use char* for strings, but use STL string or something else, instead.
It believes that by helping people create patents, it is helping businesses protect and build themselves.
Actually, that's true. But only for genuine patentable ideas. It needs to be novel, non-obvious to the practitioner in the field, have a prototype, etc. And shorten the patent terms.
Patents were supposed to help the little guy. Let him get his unique product out on the market before megacorp steals his idea and grinds him into the dust with economy-of-scale. But with the rubber stamp mentality of the USPTO, patents have devolved into commodity properties used as barter between megacorps.
The idea of patents is a good one, but the current USPTO behaviors and policies suck.
Should there be another tier of patents that protect IP but cannot be licensed out for money (BSD style patents?)?
Simply disclose the patent in some way. Either to the public, or to your patent attorney. Or file a "preliminary" patent (forget the exact term) and then let it lapse.
You've just established prior art, and no one else can patent it.
The problem is that others will take your general idea and patent a specific application. So try to include as many specific applications as you can in your disclosure.
p.s. At my company we had been using a system configuration tool for seven years, and shipping it with the product for six.
What free trade? The US certainly doesn't believe in it. The more accurate description would be "micromanaged trade". Just because the politicians talk about free trade, and put those words in the titles of treaties, doesn't mean that it actually exists here.
Ruby is not a scripting language in the sense that Perl is. Thus it is not necessarily suitable for creating web sites. It can be of course, just as you can create a site in C++, but the web site manipulation is not where it's strength lies.