There is no question that programming in C and C++ requires skill, and that memory management is an issue, and automatic heap allocation and garbage collection is the popular solution to that issue, but there is no silver bullets, and they are always compromises. It seems to me like every is so scared of they tools that they don't even want to learn to use them. They never learn to use an Exacto knife because they never get past those plastic scissors they give you in grade school. At some point one has to take off the training wheels, at least for some projects. For better or worse,the core stuff, the stuff that does the heavy work, has to be written efficiently, and that may mean a human has to code it without over-dependence on the compiler.
Well, let's think about it from the point of view of a regular old user of software and applications, rather than from the viewpoint of chest thumping uber-geeks that insist you're a pussy if you don't use a low level programming language like C or C++.
Would you prefer software that's as fast and lean as possible, but may have a bunch of vulnerabilities (via stack smashing, buffer overruns, etc.)? Then you may prefer applications written in C and C++ and other low level but high danger programming languages.
Or would you prefer software that's slower and fatter, thus requiring more hardware to get equivalent performance, but with less vulnerabilities because whole classes of exploits are now extremely unlikely? Then you may prefer applications written in higher level languages such as Java, Python, and JavaScript.
I posit that most users would be better off spending the extra $20 on hardware to run software written in higher level and safer programming languages.
Again, there are no silver bullets. For instance, the Java sandbox is one solution to a security issue. It is not perfect, and it's imperfections lead to a false sense of security. It is ok for developers to be sloppy because garbage collection and the sandbox will protect the user. Not true. The real issue is that we are running what are essentially single user stand alone apps in multiuser networked contexts, at least in Windows. Of course in *nix there is segregation of processes built from the OS up, which is good. I do believe that such segregation at the user application level has the same benefit. It is a hack to make people feel better. Now, in chrome there is a side benefit that each page is it's own process. We will see how that works out.
Yeah, you hear about stack smashing and buffer overrun exploits in Java programs all the time. Not.
This seems to counteract what they were saying in the first item. C and C++ leads to coding bugs, but using standard complex libraries leads to unexpected behaviour. This is why we use C and C++, because it is simple enough to understand and carries very little useless overhead. Once we start using more complex libraries, we end up with a few functions we use, much more code we do not use, and many side effects we do not understand. I mean do we write everything in C++, and gain understanding, or use a range of technologies to maximize efficiency? If there are bugs in some high level libraries, all we need to do is fix the bug in library. Is the risk of the library greater than the risk of using a simple language like C?
I've been programming in C for 20 something years now. Just because the language is simple does not mean programming in the language is simple.
When you (as the developer) can't even count on primitive types being the same size all over, it makes writing portable software a huge pain in the ass. It's easy to constantly stumble into undefined behavior, and the compiler won't even warn you.
C and C++ are very, very good at some things, like implementing low level routines where top performance is critical, and low level access to the hardware is required. But for many other programming tasks, they have become completely impractical.
If Apple manufactures is, not on your life. I don't want to have to jailbreak the thing at each update, or be denied the right to run this or that on it.
Locking down the software that can run on a device may be a deal breaker for you, but it's a huge advantage for most users.
Most users would probably love a machine which is basically incapable of getting a virus because it's impossible to install malware on it in the first place.
So, sure, the average Slashdotter might hate a locked down machine, but for the majority of the population it would be an advantage.
I recently tried Vista (for the second time) because so many monkeys like you keep telling us Vista is much, much better now.
What a bunch of hooey. Vista still makes my (pretty nice) laptop run like a dog. From slow video, to audio stuttering, to far too much hard drive thrashing, to disappointing program startup times...hell, sometimes I can't even track my mouse across the screen without it pausing half way while Vista does God knows what.
And yes, my laptop is "Vista compatible", and yes, I had all the correct drivers installed for my hardware.
I went back to XP (again) and the performance is so much improved, it's like getting a new computer.
Sorry, buddy, but Vista still sucks, despite your claims otherwise. And if Windows 7 is more of the same, I'm going to have to tell Microsoft, "Thanks, but no thanks."
I would mod you up if I had mod points right now. What you describe is very similar to what I would like to do.
There are 3 computers I use regularly, my work PC, my home PC, and my wife's PC. I would like to be able to switch between these interchangeably, with my entire "operating system" coming with me when I sit down at one of these PCs.
Right now I can partially achieve what I want by running VirtualBox or VMware (or whatever) and copying the "virtual hard drive" to/from my USB flash drive. However, the entire process is still very manual and error prone, plus high capacity (32+ GB) USB flash drives are kind of expensive, and slow to transfer that much data.
Also, it requires I shutdown the "virtual OS" and un-mount the "virtual hard drive" (making it safe to copy). Live migration of my running virtual operating system would be awesome.
Ideally, I would like a solution that keeps my three "virtual hard drives" (on my work PC, my home PC, and my wife's PC) in sync via some kind of daemon or server that tracks changes and propagates the changes to the other locations seamlessly, and allows live migrations, all completely seamlessly and effortlessly.
I rather like the idea of having an OS with as little on it as possible.
That way I can add what I see fit, much like the Server OS.
Hey it's a step in the right direction.
Next, they should create some kind of... I don't know, package or application manager maybe, which would allow users to easily add/remove programs... might have to wait until Windows 8 or 9 for that, though. But, never fear, Microsoft can innovate it.:-)
I think these things would be more useful going the thin-client approach. E.g., just use it to ssh+vnc into a persistent desktop on your home PC. That way you have all your settings preserved, and the performance will likely be much better for anything more complicated than reading.
In the United States, at least, the upload bandwidth broadband customers (cable, DSL) get is pretty anemic. Combine that with VNC, which doesn't perform that well in the first place since it performs screen scraping, and you have a recipe for a really slow, frustrating experience.
In addition, all that wireless communication will drain your battery fast. It's better to keep as much local as possible.
Why DO you have to reboot your routers? Mine, including a WR54GT almost never require rebooting. Occasionally, after a power outage, it's necessary, but not very often. Maybe once or twice a year, and I live in Panama, where power interruptions come fairly frequently.
WTF? How did this end up +5 Informative?
The power interruptions are obviously regularly rebooting his equipment. Is it any wonder he doesn't need to reboot it himself?
lots and lots of anti-republican comments and most of them are going to get modded way the hell up, but I bet if someone said "give this to democrats LOL" they'd get modded into oblivion
Oh, quit whining. People always poke a lot more fun at the party of the administration currently in power.
Sorry to feed the troll, but the point of the GPL is not to increase adoption. Your absolutely right to say that other licenses will lead to greater adoption- but this is adoption by people who may take, take, take and not give back.
The company I work for sells closed source software. We also use some open source software (not GPL) in the product.
We contribute back to the open source we use because it's more sensible. Adding the same features back in again and again would be counterproductive. We'd rather they get added to the open source project permanently.
We have a blanket ban on using GPL'd source, though. We can't afford to GPL our entire 20 million line software stack, which would be the result of using even a tiny bit of GPL code.
Try to understand that not everyone loves the GPL and not everyone that doesn't love the GPL is a troll.
Now it's my turn to get modded into oblivion for not being fond of the GPL. Sigh.
i find complaints about the GPL being viral somewhat amusing, seeing as it is invariably closed-source software which is viral and forces everybody else to buy it if they want to interact with it. the GPL however produces free software which everybody can interact with as they wish.
Source code that is licensed under the GPL is viral in nature. Richard Stallman wrote the GPL that way on purpose so that it would tend to spread to more and more source code. It's his weapon of choice to help shape the software world the way he thinks is best.
I don't personally agree with his belief that all source code should be open, as I believe that party A should have the freedom to buy closed source software from party B if that is their choice. Mr. Stallman would have you believe that party A and party B are behaving immorally and unethically.
It reminds me a bit of the prostitution debate: A third party passing judgment on two consenting adults that wish to make a transaction. Except Mr. Stallman didn't stop at passing judgment; he devised a plan that attempts to reduce those kinds of transactions: It's called the GPL.
Closed source is many things, some of those things being good, some of those things being bad, but you always have the choice, as a user or a developer, to simply not use it.
Likewise, you always have the choice, as a user or developer, to not use code (binary or source) if it's licensed under the GPL.
I, personally, take a pragmatic approach: I use software licensed under the GPL, but I will not contribute, because I simply don't share Mr. Stallman's beliefs.
And now I will be modded into oblivion, because a dissenting opinion regarding the GPL is not allowed on Slashdot.
We still need Linux to run all those servers. We need Linux to run handheld devices. We need Linux for scientific workstations. And we need Linux for Web 2.0 desktops, desktops that provide standards compliant browsers, RSS software, HTML editors, E-mail clients, backup, P2P, etc. at a combined hardware+software cost lower than a Microsoft Vista license.
A good compromise might be to allow workers to telecommute 20% of the time (1 day per week). Give everyone that freedom, and nobody can complain. Plus, you'd still have plenty of "face time" with your co-workers.
Java isn't exactly what I'd call a scripting language. What I expect from a scripting language is the easy ability to interact with it on a command line or interactive interpretive interface (like Smalltalk).
Researchers at the Teckla Institute for Scientific Advancement have determined that it's possible to have a "Cone of Nonsense" that remains stable for months, even years.
"Take, for example, the Cone of Nonsense generated at Slashdot, an online site dedicated to News for Nerds," says Dr. Teckla, a long-time scientist at the Institute. "We've identified at least two powerful Cone of Nonsense forces there, which we've named the 'Roland Piquepaille Effect' and the 'Ponca City, We Love You Force'."
Combine these potent forces with 'ScuttleMonkey Energy', and the result is a stable, if frightening, Cone of Nonsense.
"We're not sure what happens if you enter this Cone of Nonsense," commented Dr. Teckla, "But we're pretty sure it drops your I.Q. by 50 points.
Actually, this is one area where Windows and OSX have Linux legitimately beat.
On Windows and OSX, you always have access to an absolutely massive set of APIs that are always there.
On Linux, non-trivial programs link against dozens of libraries (which may or may not be currently installed), each of which may have dependencies on other libraries themselves. Getting all that organized into your build can be a major hassle.
On Linux, you also have to concern yourself with the license of every single library you link in (unless you're planning on releasing your work as Free Software).
Besides, with a perfectly good, free, open source alternative (i.e. OpenOffice) why should anyone put their data at risk by using some web based application?
With a perfectly good, free online alternative (i.e., Google Docs), why should anyone put their data at risk by having it stored in only one place (i.e., at home) and likely not backed up?
OK, I'm not saying Google Docs is right for everyone, but you seem to be completely dismissing the advantages of having your documents online and ignoring the disadvantages of having your documents offline.
Both approaches (online and offline) will continue to exist and thrive because different people have different needs.
No, his purpose is to make it so all software has its source code available for modification. That's what he's here for. Think what you like of the guy, he's never veered from that purpose.
Neither has Osama bin Laden.
Forgive me if I continue to be skeptical of RMS's extremism...
Dear Java Hating Slashdot Editors,
Java is not responsible for "generating class loader errors", any more than Perl is responsible for all the HTML errors on the Slashdot front page.
Here's the link to the W3C HTML Validator, go get yourself a clue.
This is similar in principle - use dominance in one area (ad supported email accounts) to promote business in a different area (browser technology).
You would have a point if Google dominated in that area (ad supported email accounts). But, they don't.
There is no question that programming in C and C++ requires skill, and that memory management is an issue, and automatic heap allocation and garbage collection is the popular solution to that issue, but there is no silver bullets, and they are always compromises. It seems to me like every is so scared of they tools that they don't even want to learn to use them. They never learn to use an Exacto knife because they never get past those plastic scissors they give you in grade school. At some point one has to take off the training wheels, at least for some projects. For better or worse,the core stuff, the stuff that does the heavy work, has to be written efficiently, and that may mean a human has to code it without over-dependence on the compiler.
Well, let's think about it from the point of view of a regular old user of software and applications, rather than from the viewpoint of chest thumping uber-geeks that insist you're a pussy if you don't use a low level programming language like C or C++.
Would you prefer software that's as fast and lean as possible, but may have a bunch of vulnerabilities (via stack smashing, buffer overruns, etc.)? Then you may prefer applications written in C and C++ and other low level but high danger programming languages.
Or would you prefer software that's slower and fatter, thus requiring more hardware to get equivalent performance, but with less vulnerabilities because whole classes of exploits are now extremely unlikely? Then you may prefer applications written in higher level languages such as Java, Python, and JavaScript.
I posit that most users would be better off spending the extra $20 on hardware to run software written in higher level and safer programming languages.
Again, there are no silver bullets. For instance, the Java sandbox is one solution to a security issue. It is not perfect, and it's imperfections lead to a false sense of security. It is ok for developers to be sloppy because garbage collection and the sandbox will protect the user. Not true. The real issue is that we are running what are essentially single user stand alone apps in multiuser networked contexts, at least in Windows. Of course in *nix there is segregation of processes built from the OS up, which is good. I do believe that such segregation at the user application level has the same benefit. It is a hack to make people feel better. Now, in chrome there is a side benefit that each page is it's own process. We will see how that works out.
Yeah, you hear about stack smashing and buffer overrun exploits in Java programs all the time. Not.
This seems to counteract what they were saying in the first item. C and C++ leads to coding bugs, but using standard complex libraries leads to unexpected behaviour. This is why we use C and C++, because it is simple enough to understand and carries very little useless overhead. Once we start using more complex libraries, we end up with a few functions we use, much more code we do not use, and many side effects we do not understand. I mean do we write everything in C++, and gain understanding, or use a range of technologies to maximize efficiency? If there are bugs in some high level libraries, all we need to do is fix the bug in library. Is the risk of the library greater than the risk of using a simple language like C?
I've been programming in C for 20 something years now. Just because the language is simple does not mean programming in the language is simple.
When you (as the developer) can't even count on primitive types being the same size all over, it makes writing portable software a huge pain in the ass. It's easy to constantly stumble into undefined behavior, and the compiler won't even warn you.
C and C++ are very, very good at some things, like implementing low level routines where top performance is critical, and low level access to the hardware is required. But for many other programming tasks, they have become completely impractical.
If Apple manufactures is, not on your life. I don't want to have to jailbreak the thing at each update, or be denied the right to run this or that on it.
Locking down the software that can run on a device may be a deal breaker for you, but it's a huge advantage for most users.
Most users would probably love a machine which is basically incapable of getting a virus because it's impossible to install malware on it in the first place.
So, sure, the average Slashdotter might hate a locked down machine, but for the majority of the population it would be an advantage.
I recently tried Vista (for the second time) because so many monkeys like you keep telling us Vista is much, much better now.
What a bunch of hooey. Vista still makes my (pretty nice) laptop run like a dog. From slow video, to audio stuttering, to far too much hard drive thrashing, to disappointing program startup times...hell, sometimes I can't even track my mouse across the screen without it pausing half way while Vista does God knows what.
And yes, my laptop is "Vista compatible", and yes, I had all the correct drivers installed for my hardware.
I went back to XP (again) and the performance is so much improved, it's like getting a new computer.
Sorry, buddy, but Vista still sucks, despite your claims otherwise. And if Windows 7 is more of the same, I'm going to have to tell Microsoft, "Thanks, but no thanks."
I would mod you up if I had mod points right now. What you describe is very similar to what I would like to do.
There are 3 computers I use regularly, my work PC, my home PC, and my wife's PC. I would like to be able to switch between these interchangeably, with my entire "operating system" coming with me when I sit down at one of these PCs.
Right now I can partially achieve what I want by running VirtualBox or VMware (or whatever) and copying the "virtual hard drive" to/from my USB flash drive. However, the entire process is still very manual and error prone, plus high capacity (32+ GB) USB flash drives are kind of expensive, and slow to transfer that much data.
Also, it requires I shutdown the "virtual OS" and un-mount the "virtual hard drive" (making it safe to copy). Live migration of my running virtual operating system would be awesome.
Ideally, I would like a solution that keeps my three "virtual hard drives" (on my work PC, my home PC, and my wife's PC) in sync via some kind of daemon or server that tracks changes and propagates the changes to the other locations seamlessly, and allows live migrations, all completely seamlessly and effortlessly.
Scepter of Goth, actually. I still have the Pascal source code for it. Wish I had the time/patience to port it to C or Java.
I rather like the idea of having an OS with as little on it as possible.
That way I can add what I see fit, much like the Server OS.
Hey it's a step in the right direction.
Next, they should create some kind of ... I don't know, package or application manager maybe, which would allow users to easily add/remove programs ... might have to wait until Windows 8 or 9 for that, though. But, never fear, Microsoft can innovate it. :-)
For many years, SOE has been ignoring what many old EverQuest fans really want: Original EverQuest + Kunark + Velious, and nothing more.
I think these things would be more useful going the thin-client approach. E.g., just use it to ssh+vnc into a persistent desktop on your home PC. That way you have all your settings preserved, and the performance will likely be much better for anything more complicated than reading.
In the United States, at least, the upload bandwidth broadband customers (cable, DSL) get is pretty anemic. Combine that with VNC, which doesn't perform that well in the first place since it performs screen scraping, and you have a recipe for a really slow, frustrating experience.
In addition, all that wireless communication will drain your battery fast. It's better to keep as much local as possible.
Why DO you have to reboot your routers? Mine, including a WR54GT almost never require rebooting. Occasionally, after a power outage, it's necessary, but not very often. Maybe once or twice a year, and I live in Panama, where power interruptions come fairly frequently.
WTF? How did this end up +5 Informative?
The power interruptions are obviously regularly rebooting his equipment. Is it any wonder he doesn't need to reboot it himself?
lots and lots of anti-republican comments and most of them are going to get modded way the hell up, but I bet if someone said "give this to democrats LOL" they'd get modded into oblivion
Oh, quit whining. People always poke a lot more fun at the party of the administration currently in power.
People could try, you know, not committing copyright infringement...
The company I work for sells closed source software. We also use some open source software (not GPL) in the product.
We contribute back to the open source we use because it's more sensible. Adding the same features back in again and again would be counterproductive. We'd rather they get added to the open source project permanently.
We have a blanket ban on using GPL'd source, though. We can't afford to GPL our entire 20 million line software stack, which would be the result of using even a tiny bit of GPL code.
Try to understand that not everyone loves the GPL and not everyone that doesn't love the GPL is a troll.
Now it's my turn to get modded into oblivion for not being fond of the GPL. Sigh.
The Supreme Court doesn't set presidents, they set precedents.
Oh, wait...
Source code that is licensed under the GPL is viral in nature. Richard Stallman wrote the GPL that way on purpose so that it would tend to spread to more and more source code. It's his weapon of choice to help shape the software world the way he thinks is best.
I don't personally agree with his belief that all source code should be open, as I believe that party A should have the freedom to buy closed source software from party B if that is their choice. Mr. Stallman would have you believe that party A and party B are behaving immorally and unethically.
It reminds me a bit of the prostitution debate: A third party passing judgment on two consenting adults that wish to make a transaction. Except Mr. Stallman didn't stop at passing judgment; he devised a plan that attempts to reduce those kinds of transactions: It's called the GPL.
Closed source is many things, some of those things being good, some of those things being bad, but you always have the choice, as a user or a developer, to simply not use it.
Likewise, you always have the choice, as a user or developer, to not use code (binary or source) if it's licensed under the GPL.
I, personally, take a pragmatic approach: I use software licensed under the GPL, but I will not contribute, because I simply don't share Mr. Stallman's beliefs.
And now I will be modded into oblivion, because a dissenting opinion regarding the GPL is not allowed on Slashdot.
We need Linux?
*cough* BSD *cough*
A good compromise might be to allow workers to telecommute 20% of the time (1 day per week). Give everyone that freedom, and nobody can complain. Plus, you'd still have plenty of "face time" with your co-workers.
Perhaps you would like BeanShell
Researchers at the Teckla Institute for Scientific Advancement have determined that it's possible to have a "Cone of Nonsense" that remains stable for months, even years.
"Take, for example, the Cone of Nonsense generated at Slashdot, an online site dedicated to News for Nerds," says Dr. Teckla, a long-time scientist at the Institute. "We've identified at least two powerful Cone of Nonsense forces there, which we've named the 'Roland Piquepaille Effect' and the 'Ponca City, We Love You Force'."
Combine these potent forces with 'ScuttleMonkey Energy', and the result is a stable, if frightening, Cone of Nonsense.
"We're not sure what happens if you enter this Cone of Nonsense," commented Dr. Teckla, "But we're pretty sure it drops your I.Q. by 50 points.
Actually, this is one area where Windows and OSX have Linux legitimately beat.
On Windows and OSX, you always have access to an absolutely massive set of APIs that are always there.
On Linux, non-trivial programs link against dozens of libraries (which may or may not be currently installed), each of which may have dependencies on other libraries themselves. Getting all that organized into your build can be a major hassle.
On Linux, you also have to concern yourself with the license of every single library you link in (unless you're planning on releasing your work as Free Software).
With a perfectly good, free online alternative (i.e., Google Docs), why should anyone put their data at risk by having it stored in only one place (i.e., at home) and likely not backed up?
OK, I'm not saying Google Docs is right for everyone, but you seem to be completely dismissing the advantages of having your documents online and ignoring the disadvantages of having your documents offline.
Both approaches (online and offline) will continue to exist and thrive because different people have different needs.
When it stops sucking?
Seriously, I skip lots of Slashdot stories I'm not interested in. You can do the same thing, you know.
They are not ripping off OpenBSD. They are using BSD licensed code within the letter and spirit of the license. Sheesh.
Neither has Osama bin Laden.
Forgive me if I continue to be skeptical of RMS's extremism...