> and wants to design an OS (the next Linus Torvalds?)
AFAIK, Linus wasn't a child prodigy. Linux is the result of sharing and hard work, not genius.
But that's cool. Teach him the value of hard work and sharing, too. Lots of bright kids never learn to apply themselves, because everything is too easy along the way.
> I'd like my teaching to steer towards cutting edge technology
Please, steer him through the basics first. In IT, oldies like correctness and maintainability will never go out of style. (Erm, well, they shouldn't have gone out of style.)
In that regard, one field that has been around for a while and can never attract the attention of too many geniuses is the field of correctness proofs. Rather than steering him through all the glitzy overhyped toys on the current scene, steer him through discrete mathematics (along with the other basics), and then see whether you can get him interested in correctness proofs. If someday he designs a language and associated IDE that incorporates correctness as an essential part of the development process, then we will have a software revolution indeed.
Also, don't push him exclusively to CS/IT. Let him see the joys of the other sciences, and of language and literature and music. The world's a big place, and a big mind should suffer as few limitations as possible. Our species could use another Homer or Michaelangelo or Beethoven, just as much as we could use another Einstein or Turing.
> I think that most would agree that that statement's disingenuous. GPL was one way for it to happen. There were a myriad of other ways it could have happened, as well. Just because one path was followed doesn't make it inherently better than the paths not taken.
Except that "paths not taken" don't actually get you there. There's a huge difference between "could have" and "did".
And speaking of potentials, I'm not entirely convinced that the others actually "could have". I'm not sure that the GPL isn't inherently better, at least for the purposes of starting the revolution. If appeals to a specific type of idealism, and I think it is the people who harbored that specific type of idealism who made OSS what it is today.
Among the less idealistic, the trend has been towards attitudes like that of Bill Gates (starting way back when), and like those at Sun and AOL, who even now feel impelled to create new "me too" licenses that let them attach a few strings, rather than contributing their code to one of the established pools of sharable code.
Yes, the BSD license has been around for a while. But did it start a revolution? I think the idealistic nature of the GPL has everything to do with how things have turned out.
> If you want to get formal about it just include the single line "Copyright 2000 by me".
If I take a piece of GPL'd code that has the usual header and the line
Copyright 2000 by The Mad Hacker
and then I incorporate portions of that code into my project (possibly with substantial modifications), what is the etiquette for the new copyright specification?
Do I leave his name on it? Do I replace his with mine? Do I append my name to his, to create a list of copyright holders?
The latter would seem to be most proper, and would create an interesting documented pedigree for the work, but it would surely become unwieldy after the code had been handed around through 50 authors. --
> If I wanted to release a large commercial project (like, for example, a good TCP/IP stack), I'd probably make it a BSD-style license to encourage all vendors to use it. The FSF version of that last sentence would probably be "license it under the GPL to force other vendors to use the GPL" but that's not my attitude -- better to convince with evidence than to coerce.
And therein lies the misconception. The FSF doesn't aspire to make everyone use FSF solutions; they aspire to let everyone use FSF solutions.
If you want to coerce everyone into using your solution, you do that with a monopoly rather than a license.
The thing about TCP/IP isn't the choice of whose source code you use, but rather adherence to a standard. The GPL has nothing to do with standards, and since the FSF is adamantly against software patents, widespread use of the GPL implementation of something like a communications protocol will not prevent others from producing their own implementations of the same thing according to the same standard.
> Perhaps some day, people will understand that the GPL does not make code free.
Perhaps some day people will understand that the Open Source movement would never have gotten off the ground without that hard-nosedly idealistic RMS and his overly picky GPL.
Of a certainty, we wouldn't be here arguing about licenses on Slashdot.
As a first approximation, you should think of the software produced under the various licenses as falling into separate equivalence classes. If you discover a "leak" between two equivalence classes that lets you use the code or components from different classes together, well and good -- but don't assume that things will work that way until it has been demonstrated.
To paraphrase another poster, decide in advance which equivalence class you want your code to be in. That tells you which license to use.
Notice that this is not notably different from proprietary software. All of Sun's secret code falls into an equivalence class separate from all of Microsoft's, and there's no a priori reason to expect that you can freely combine the two.
What I don't get is why so many people hear "open source" and think they have an intrinsic right to use the code however they please. If you use code under a license, you are bound by that license just as surely as you are bound by the controls on code coming out of Sun and Microsoft.
Granted, this forces a duplication of effort between equivalence classes. If you are working in Class A and need a widget that is only available in Class B, you have to re-implement it in your own class.
Still, the mere existence of the "open" classes has been a huge boon to code reuse, and as Open Source catches on, the number of members of each class continues to grow phenomenally. Regardless of which "open" class you release your code into, you are participating in a sharability far beyond anything you can participate in with proprietary code.
So pick a class that's large and growing, and that has a license that suits your ideals, and go with it. But don't waste your time whingeing about not being able to steal stuff out of the other classes. A license is a license, and you should take it seriously. No one promised you unrestricted access to anything you might happen to want. You might as well complain about not being able to use Microsoft's source code in your own project.
> Just distribute your program as a binary only, and make the lawyers decompose it and prove that you compiled it from your source.
On the plaintiff's side, just write your code so that the compiled result creates a distinctive pattern easily found by grepping the output of strings.
That way, the baddies will at least have to spend some time looking your code over before they steal it.
> You're comparing AmigaOS to UCSD Pascal? Congratulations, you've found a new way to be ridiculous on slashdot.
Pay attention to context, please. If you had done that, you'd know that I was refering to UCSD's p-code as a precedent to Java's byte code, which was brought up by the previous poster, rather than comparing Pascal to an operating system.
Since we're on the subject of pseudo code...
You could compile other languages to p-code, just as you can now compile other languages to byte code. IIRC, Apple had a Fortan compiler that spilled p-code which ran on the same Apple ][ interpreter that their Pascal did. Nowadays, JGNAT will compile an Ada source file and spill byte code for a Java VM. (Someone observed about a year ago that there were enormous similarities between Java and Ada "under the hood", and once the idea was out, they apparently didn't have to do much except change the back end of the compiler.)
> In particular, does you IDE trigger of a cascade of unnecessary compiles when you make a change, or is it sophisticated enough to figure out which ones are really needed?
I never use IDEs -- just naked code and a compiler. However, for the two Ada compilers I have used, you get minimal component recompilations based on the timestamp of the source file vs. the timestamp of an information file that was automatically built last time you compiled.
I'm not sure, but I think this is a requirement in the language spec. Forcing certain dependency recompilations is a safety issue, but forcing global recompilation merely be a waste.
It certainly motivates modularity, since you can change a line of code in a single module, and then recompile a huge project in half a second.
Be forewarned that when you first start using Ada you will find it very annoying that it actually expects you to say what you mean with respect to types. People who say they like C++ because "it has a stronger type system than C" don't know what "type system" actually means. (No famebait intended; just a warning to brace yourself for the shock if you do decide to give Ada a try.)
However, in my experience, once you get into the habit of thinking out what you are trying to do, you will find that most of your bugs are discovered at compile time, and your ratio of Coding_Time:Debugging_Time will go way up.
Why we chose GtkAda instead of Gtk+... Another reason was to reduce the time we spent developing GVD. Using GtkAda and GNAT, we can decrease time to market by a factor of two to four over any other language/compiler.
Raymond and Hoare notwithstanding (yes, I saw that/. fortune cookie yesterday), Ada is a very useful language.
Also, another party has mentioned that Ada is designed for multithreading; I would just like to add that MT support is in the syntax of the language itself, and has been since 1983.
Notice that GVD currently supports only C and Ada.
It is supposedly designed where support for other languages can be added, so if you use C++ you may want to ask around and find out what the current status/prospect for C++ support is.
> But you are missing one exceedingly important point: Linux != UNIX
You're right, of course. But I still have to mention this interesting symptom of shifting attitudes:
When asked by a reporter why Sun's new clustering software was restricted to Solaris and not available on Linux, McNealy's aggravation seemed to peak. "You people just don't get it, do you? All Linux applications run on Solaris, which is our implementation of Linux."
Spotted at Linux Today, which was quoting FUD^wZDnet in turn.
> a small OS built around good security, a virtual machine, and an extention of the Unix "everything is a file" model, right into your browser
So now instead of mailing you a click-to-run Virus Bearing Script, the 44x0r k1ddi35 will mail you an entire click-to-run operating system to work their evil wills on you.
Could you sucker someone into launching this and hide the fact that it was running? Might make it easy for your team to move to the front of the pack at distributed.net, if honesty wasn't one of your big priorities.
> "Passion doesn't convince. Passion makes you look like an idiot or an asshole." I've been trying to make the same point for years
I've been passionately trying to make the same point for years, but instead of taking the point, people tend to just conclude that I'm some kind of idiot or asshole or something. Go figure.
Wouldn't it be scary if lots of companies gave up their longstanding policies of full disclosure, started hiding security problems from their customers, or even denying that the problems existed, in lame hopes that obscurity would make their systems safer?
> Microsoft keeps up with things; they aren't about to lose their monopoly due to changes that were expected (cheaper, smaller, faster) but will rather require many more unexpected events to appear on the horizon
That tiny little thing called the internet blindsided them. And all this time later they still have a "standalone system" mentality that bites them in the ass now and then. I honestly think they can't understand why the e-mail virus problem won't go away.
However, I think the fall of Microsoft, whenever it comes, is going to come from below. That is, when investor faith in MS's infalibilty pops, their stock pyramid will pop shortly thereafter. Sure, they've got a huge bankroll, but they don't seem to know how to use it for anything other than keeping their stocks afloat. With the kind of money they've been sitting on for all these years, they could have revolutionized computing for real, if only they had any interest in doing so.
> It might be nice if they ran the free software under Linux, or even BSD, but this isn't going to happen overnight.
Of course, as more and more Windows users adopt GNU tools and OSS toys, some will inevitable ask why they're paying for Windows when they could run the same stuff elsewhere.
> The W2k adoption rate is still like 1/3 what the analysts were saying, and 1/10th what Microsoft was hoping.
No problem. MS only spent half a billion dollars on the initial media blitz. If they decide to get serious about selling it, there's billions more where that came from.
> and wants to design an OS (the next Linus Torvalds?)
AFAIK, Linus wasn't a child prodigy. Linux is the result of sharing and hard work, not genius.
But that's cool. Teach him the value of hard work and sharing, too. Lots of bright kids never learn to apply themselves, because everything is too easy along the way.
> I'd like my teaching to steer towards cutting edge technology
Please, steer him through the basics first. In IT, oldies like correctness and maintainability will never go out of style. (Erm, well, they shouldn't have gone out of style.)
In that regard, one field that has been around for a while and can never attract the attention of too many geniuses is the field of correctness proofs. Rather than steering him through all the glitzy overhyped toys on the current scene, steer him through discrete mathematics (along with the other basics), and then see whether you can get him interested in correctness proofs. If someday he designs a language and associated IDE that incorporates correctness as an essential part of the development process, then we will have a software revolution indeed.
Also, don't push him exclusively to CS/IT. Let him see the joys of the other sciences, and of language and literature and music. The world's a big place, and a big mind should suffer as few limitations as possible. Our species could use another Homer or Michaelangelo or Beethoven, just as much as we could use another Einstein or Turing.
--
> I think that most would agree that that statement's disingenuous. GPL was one way for it to happen. There were a myriad of other ways it could have happened, as well. Just because one path was followed doesn't make it inherently better than the paths not taken.
Except that "paths not taken" don't actually get you there. There's a huge difference between "could have" and "did".
And speaking of potentials, I'm not entirely convinced that the others actually "could have". I'm not sure that the GPL isn't inherently better, at least for the purposes of starting the revolution. If appeals to a specific type of idealism, and I think it is the people who harbored that specific type of idealism who made OSS what it is today.
Among the less idealistic, the trend has been towards attitudes like that of Bill Gates (starting way back when), and like those at Sun and AOL, who even now feel impelled to create new "me too" licenses that let them attach a few strings, rather than contributing their code to one of the established pools of sharable code.
Yes, the BSD license has been around for a while. But did it start a revolution? I think the idealistic nature of the GPL has everything to do with how things have turned out.
--
If I take a piece of GPL'd code that has the usual header and the lineand then I incorporate portions of that code into my project (possibly with substantial modifications), what is the etiquette for the new copyright specification?
Do I leave his name on it? Do I replace his with mine? Do I append my name to his, to create a list of copyright holders?
The latter would seem to be most proper, and would create an interesting documented pedigree for the work, but it would surely become unwieldy after the code had been handed around through 50 authors.
--
> If I wanted to release a large commercial project (like, for example, a good TCP/IP stack), I'd probably make it a BSD-style license to encourage all vendors to use it. The FSF version of that last sentence would probably be "license it under the GPL to force other vendors to use the GPL" but that's not my attitude -- better to convince with evidence than to coerce.
And therein lies the misconception. The FSF doesn't aspire to make everyone use FSF solutions; they aspire to let everyone use FSF solutions.
If you want to coerce everyone into using your solution, you do that with a monopoly rather than a license.
The thing about TCP/IP isn't the choice of whose source code you use, but rather adherence to a standard. The GPL has nothing to do with standards, and since the FSF is adamantly against software patents, widespread use of the GPL implementation of something like a communications protocol will not prevent others from producing their own implementations of the same thing according to the same standard.
--
> Perhaps some day, people will understand that the GPL does not make code free.
Perhaps some day people will understand that the Open Source movement would never have gotten off the ground without that hard-nosedly idealistic RMS and his overly picky GPL.
Of a certainty, we wouldn't be here arguing about licenses on Slashdot.
--
As a first approximation, you should think of the software produced under the various licenses as falling into separate equivalence classes. If you discover a "leak" between two equivalence classes that lets you use the code or components from different classes together, well and good -- but don't assume that things will work that way until it has been demonstrated.
To paraphrase another poster, decide in advance which equivalence class you want your code to be in. That tells you which license to use.
Notice that this is not notably different from proprietary software. All of Sun's secret code falls into an equivalence class separate from all of Microsoft's, and there's no a priori reason to expect that you can freely combine the two.
What I don't get is why so many people hear "open source" and think they have an intrinsic right to use the code however they please. If you use code under a license, you are bound by that license just as surely as you are bound by the controls on code coming out of Sun and Microsoft.
Granted, this forces a duplication of effort between equivalence classes. If you are working in Class A and need a widget that is only available in Class B, you have to re-implement it in your own class.
Still, the mere existence of the "open" classes has been a huge boon to code reuse, and as Open Source catches on, the number of members of each class continues to grow phenomenally. Regardless of which "open" class you release your code into, you are participating in a sharability far beyond anything you can participate in with proprietary code.
So pick a class that's large and growing, and that has a license that suits your ideals, and go with it. But don't waste your time whingeing about not being able to steal stuff out of the other classes. A license is a license, and you should take it seriously. No one promised you unrestricted access to anything you might happen to want. You might as well complain about not being able to use Microsoft's source code in your own project.
--
> Just distribute your program as a binary only, and make the lawyers decompose it and prove that you compiled it from your source.
On the plaintiff's side, just write your code so that the compiled result creates a distinctive pattern easily found by grepping the output of strings.
That way, the baddies will at least have to spend some time looking your code over before they steal it.
--
> You're comparing AmigaOS to UCSD Pascal? Congratulations, you've found a new way to be ridiculous on slashdot.
Pay attention to context, please. If you had done that, you'd know that I was refering to UCSD's p-code as a precedent to Java's byte code, which was brought up by the previous poster, rather than comparing Pascal to an operating system.
Since we're on the subject of pseudo code...
You could compile other languages to p-code, just as you can now compile other languages to byte code. IIRC, Apple had a Fortan compiler that spilled p-code which ran on the same Apple ][ interpreter that their Pascal did. Nowadays, JGNAT will compile an Ada source file and spill byte code for a Java VM. (Someone observed about a year ago that there were enormous similarities between Java and Ada "under the hood", and once the idea was out, they apparently didn't have to do much except change the back end of the compiler.)
--
> In particular, does you IDE trigger of a cascade of unnecessary compiles when you make a change, or is it sophisticated enough to figure out which ones are really needed?
I never use IDEs -- just naked code and a compiler. However, for the two Ada compilers I have used, you get minimal component recompilations based on the timestamp of the source file vs. the timestamp of an information file that was automatically built last time you compiled.
I'm not sure, but I think this is a requirement in the language spec. Forcing certain dependency recompilations is a safety issue, but forcing global recompilation merely be a waste.
It certainly motivates modularity, since you can change a line of code in a single module, and then recompile a huge project in half a second.
--
Be forewarned that when you first start using Ada you will find it very annoying that it actually expects you to say what you mean with respect to types. People who say they like C++ because "it has a stronger type system than C" don't know what "type system" actually means. (No famebait intended; just a warning to brace yourself for the shock if you do decide to give Ada a try.)
However, in my experience, once you get into the habit of thinking out what you are trying to do, you will find that most of your bugs are discovered at compile time, and your ratio of Coding_Time:Debugging_Time will go way up.
Notice this quote from the GVD home page:Raymond and Hoare notwithstanding (yes, I saw that
Also, another party has mentioned that Ada is designed for multithreading; I would just like to add that MT support is in the syntax of the language itself, and has been since 1983.
--
Notice that GVD currently supports only C and Ada.
It is supposedly designed where support for other languages can be added, so if you use C++ you may want to ask around and find out what the current status/prospect for C++ support is.
--
You're right, of course. But I still have to mention this interesting symptom of shifting attitudes:Spotted at Linux Today, which was quoting FUD^wZDnet in turn.
--
> I'm amazed that nobody has thought of something like this before.
Try this on for size.
--
> Sure, mod me down as a troll. I really don't care. I have a differing opinion and should be silenced.
Geez, man. Could you fall down and bleed a little louder?
--
> they believe that the Internet has 'peaked', and is now settling down.
Yeah, JenniCam provided an opportunity for the whole internet to peek.
--
> a small OS built around good security, a virtual machine, and an extention of the Unix "everything is a file" model, right into your browser
So now instead of mailing you a click-to-run Virus Bearing Script, the 44x0r k1ddi35 will mail you an entire click-to-run operating system to work their evil wills on you.
Could you sucker someone into launching this and hide the fact that it was running? Might make it easy for your team to move to the front of the pack at distributed.net, if honesty wasn't one of your big priorities.
--
> "Passion doesn't convince. Passion makes you look like an idiot or an asshole." I've been trying to make the same point for years
I've been passionately trying to make the same point for years, but instead of taking the point, people tend to just conclude that I'm some kind of idiot or asshole or something. Go figure.
--
> > > AFAIK bugtraq was designed as a place to post security advisories, not pimp a link to an advisory and advertise your website.
> > I can hear the Marketing meeting now - [...]
> Too bad at the @stake page where they were posting these alerts, there were NO banner ads. Really blows a hole in your theory doesn't it?
Yeah, well, sometimes you have to follow the context to get the joke.
--
I can hear the Marketing meeting now -
--
Wouldn't it be scary if lots of companies gave up their longstanding policies of full disclosure, started hiding security problems from their customers, or even denying that the problems existed, in lame hopes that obscurity would make their systems safer?
--
> Slashdot is so funny. I get moderated to +4 for admitting I'm a dunce :-)
See, none of us knew that, so you got the +4 for being informative.
--
> Here's some other interesting data on Media3
Could we get a recount on that, please!
--
> Microsoft keeps up with things; they aren't about to lose their monopoly due to changes that were expected (cheaper, smaller, faster) but will rather require many more unexpected events to appear on the horizon
That tiny little thing called the internet blindsided them. And all this time later they still have a "standalone system" mentality that bites them in the ass now and then. I honestly think they can't understand why the e-mail virus problem won't go away.
However, I think the fall of Microsoft, whenever it comes, is going to come from below. That is, when investor faith in MS's infalibilty pops, their stock pyramid will pop shortly thereafter. Sure, they've got a huge bankroll, but they don't seem to know how to use it for anything other than keeping their stocks afloat. With the kind of money they've been sitting on for all these years, they could have revolutionized computing for real, if only they had any interest in doing so.
--
> It might be nice if they ran the free software under Linux, or even BSD, but this isn't going to happen overnight.
Of course, as more and more Windows users adopt GNU tools and OSS toys, some will inevitable ask why they're paying for Windows when they could run the same stuff elsewhere.
--
> The W2k adoption rate is still like 1/3 what the analysts were saying, and 1/10th what Microsoft was hoping.
No problem. MS only spent half a billion dollars on the initial media blitz. If they decide to get serious about selling it, there's billions more where that came from.
Or they can just give more copies away.
--