Honestly, I don't know which of these is by Stallman and which is by others at FSF but for starters: emacs, gcc, g++, g77, gdb, all of which are nicely integrated if you know how to use them.
Maybe he is not relevant to you but I use his software every work day of my life and he has made doing the kind of software I do much easier. I develop very complex scientific software tools (google chombo). The gnu software development environment rocks for me. Maybe it does not work for you but for some of us, without FSF, our work lives would be much more difficult.
Furthermore, I admire a man that stands by his principles. Life is struggle. Choose your battles and fight them. I have very little respect people who think that someone who actually stands up for what he believes is some kind of obstacle to "the movement". Without Stallman and people like him, there would not be much of a movement to obstruct.
As to his ego, if he is proud of his accomplishments, he has every right to be.
Instead of tacking more features like threads onto an already bloated language, how about making some options that would make C++ codes more debuggable. I would love to have a compiler option that forces strong typing ala Ada in my codes. No automatic type conversions. No default constructors or operators to my classes being built. I would also love a sane I/O syntax. And while you are at it, please simplify the STL API. I know I am just being cranky but I would be surprised if there are a dozen people on the planet that understand the complete C++ standard as it is.
It's worse than that. Poor countries have an incentive to encourage such illegal behavior. It brings money into their countries. Nigeria is probably much better off because of that scam, for example.
This is also the question in my mind. Why cannot the author of a piece of software impose any restrictions upon its use that she likes? How is this keeping anyone else from selling their work? This is like Denny's suing a soup kitchen.
This has nothing really to do with governements. Yes you can choose to use non-free software. RMS is advocating a position that ethical people should choose to use (and write) only free software. He is not saying someone should bust down your door and arrest you if you do not agree with him.
Even if you do not buy into his ethical framework, it is difficult to avoid the RMS argument that if you choose to use non-free software, it is a trap. Once you agree to use non-free software, you are allowing someone else to have control over how you use your computer. Free software might be more awkward to use but it gives nobody a hold over you.
I would go further, in fact. I personally think that even using proprietary file formats is unethical. If I send you data in such a format, I am putting pressure on you to buy non-free software.
Out of the hundreds of thousands of police officers and the millions of interactions they have with civilians every damn day you come up with a few extreme examples of police violence. In two of these examples, the victims were SHOOTING AT THE POLICE (a very, very bad idea). From this weak data you come to the conclusion that all cops should be killed.
You, sir, are a blathering idiot. It is a shame you ever managed to learn to write and inflict your opinions upon the world. Here are a couple of clues that might make you a bit less of menace:
1. Cops are human. Some are worse than others. If you think of other humans as human, you might learn a bit of respect.
2. Try engaging your brain for once before you wish violence upon others, especially out loud. Some of those people who spend every day protecting you might take offense.
When discussing the features that Subversion brings to the version control table, it is often helpful to speak of them in terms of how they improve upon CVS's design. If you're not familiar with CVS, you may not understand all of these features. And if you're not familiar with version control at all, your eyes may glaze over unless you first read Chapter 2, Basic Concepts, in which we provide a gentle introduction to version control in general.
Subversion provides:
Directory versioning
~ CVS only tracks the history of individual files, but Subversion implements a virtual versioned filesystem that tracks changes to whole directory trees over time. Files and directories are versioned. True version history
~ Since CVS is limited to file versioning, operations such as copies and renameswhich might happen to files, but which are really changes to the contents of some containing directoryaren't supported in CVS. Additionally, in CVS you cannot replace a versioned file with some new thing of the same name without the new item inheriting the history of the oldperhaps completely unrelated file. With Subversion, you can add, delete, copy, and rename both files and directories. And every newly added file begins with a fresh, clean history all its own. Atomic commits
~ A collection of modifications either goes into the repository completely, or not at all. This allows developers to construct and commit changes as logical chunks, and prevents problems that can occur when only a portion of a set of changes is successfully sent to the repository. Versioned metadata
~ Each file and directory has a set of propertieskeys and their values associated with it. You can create and store any arbitrary key/value pairs you wish. Properties are versioned over time, just like file contents. Choice of network layers
~ Subversion has an abstracted notion of repository access, making it easy for people to implement new network mechanisms. Subversion can plug into the Apache HTTP Server as an extension module. This gives Subversion a big advantage in stability and interoperability, and instant access to existing features provided by that serverauthentication, authorization, wire compression, and so on. A more lightweight, standalone Subversion server process is also available. This server speaks a custom protocol which can be easily tunneled over SSH. Consistent data handling
~ Subversion expresses file differences using a binary differencing algorithm, which works identically on both text (human-readable) and binary (human-unreadable) files. Both types of files are stored equally compressed in the repository, and differences are transmitted in both directions across the network. Efficient branching and tagging
~ The cost of branching and tagging need not be proportional to the project size. Subversion creates branches and tags by simply copying the project, using a mechanism similar to a hard-link. Thus these operations take only a very small, constant amount of time. Hackability
~ Subversion has no historical baggage; it is implemented as a collection of shared C libraries with well-defined APIs. This makes Subversion extremely maintainable and usable by other applications and languages.
I write very complex codes that solve partial differntial equations for science applications. We use fortran all the time for our core routines. All the data choreography is done in C++ but when you really need an array operation done quickly (and portably), nothing works better than Fortran. We have done tests comparing Fortran array operations to similar code written in c, and at one point the performance difference on the big iron was a factor of 7 (I doubt that it is still that high since most supercomputers now have commodity processors).
Mixed language programming is a pain in the neck and we would get rid of it if we could. As of now, we can't.
Sailboats can tack because there is a keel on the bottom of the boat that keeps it going in a line. There is no equivalent of a water surface with a solar sail. It may be possible to tack into the wind with a solar sail, but I don't see how.
My guess is that all those English-speakers in India and Pakistan would count as English-English. Since India alone outnumbers the US almost 4-1, I would say that English-English is by far the more broadly spoken.
You make a mistake when you say "just rack them up." Modern supercomputers are (ususally) made of commodity chips connected by extremely fast networks. Solving large systems of equations, especially elliptic or parabolic systems, requires large amounts of communication. You can debug codes running smaller problems on a cluster. To do large production runs, real supercomputers are necessary.
Nobody in their right mind would use a supercomputer where it is not needed. They are difficult to get time on and painful to use.
I almost never need to use the mouse outside of web surfing. I use emacs to edit files, compile, read news, read mail, debug (with gdb) and run shells. I even use the keyboard to switch between subwindows (c-x o). Since I started this system (and got a split keyboard---comfort keyboards are amazing) my wrist problems have more or less gone away.
When someone makes a web browser that has an emacs interface, I will use it. Aside from that, if it cannot be done in emacs, it is not worth doing.
begin{quote} It's not something every programmer can learn. Most programmers don't have any aptitude for UI design whatsoever. It's an art, and like any art, it requires innate ability. You can learn to be a better writer. You can learn to be a better illustrator. But most people can't write and can't draw, and no amount of practice or education is going to make them good at it. Improved, yes; good, no. end{quote}
So this guy somehow believes there is genetic ability to program good GUIs? I do a *lot* of art and I believe that there is some innate ability associated with art like sculpture and painting, but it mostly has to do with fine motor control. Most good art (and good programming of any form) is the result of practice and of caring about the quality of what you are doing.
The real reason GUI's are very difficult to do well is that they are difficult to debug because they are event-driven instead of linear. It is difficult to find bugs of the form "it breaks when I do A the X then Z" because the designer often cannot imagine why someone would do things in that order.
Arg! Another language in which whitespace is meaningful (this language uses it for scoping, as python does). It's evil in python, it's *really*
evil in make, and it's evil here. Maybe my mind has been too warped by C++. I *like* classes. I *like* semicolons and curly braces.
That is the one decent argument I have heard for ending the estate tax. Well put and insightful. Thanks for putitng it out there.
Wow, that is a heck of a batting average.
How does he hit for power? How's his throwing arm?
Honestly, I don't know which of these is by Stallman and which is by others at
FSF but for starters: emacs, gcc, g++, g77, gdb, all of which are nicely integrated
if you know how to use them.
Maybe he is not relevant to you but I use his software every work day of my life and he has made doing the kind of software I do much easier. I develop very complex scientific software tools (google chombo). The gnu software development environment rocks for me. Maybe it does not work for you but for some of us, without FSF, our work lives would be much more difficult.
Furthermore, I admire a man that stands by his principles. Life is struggle. Choose your battles and fight them. I have very little respect people who think that someone who actually stands up for what he believes is some kind of obstacle to "the movement". Without Stallman and people like him, there would not be much of a movement to obstruct.
As to his ego, if he is proud of his accomplishments, he has every right to be.
Instead of tacking more features like threads onto an already bloated language, how about making some options that would make C++ codes more debuggable. I would love to have a compiler option that forces strong typing ala Ada in my codes. No automatic type conversions. No default constructors or operators to my classes being built. I would also love a sane I/O syntax. And while you are at it, please simplify the STL API. I know I am just being cranky but I would be surprised if there are a dozen people on the planet that understand the complete C++ standard as it is.
It's worse than that. Poor countries have an incentive to encourage such illegal behavior. It brings money into their countries. Nigeria is probably much better off because of that scam, for example.
Pshaw. The Pentagon wastes more every day.
This is also the question in my mind. Why cannot the author of a piece of software impose any restrictions upon its use that she likes? How is this keeping anyone else from selling their work? This is like Denny's suing a soup kitchen.
I can just see it. Clippy will get replaced by a stern man's face watching you. The power switch to the monitor will no longer work...
This has nothing really to do with governements. Yes you can choose to use non-free software. RMS is advocating a position that ethical people should choose to use (and write) only free software. He is not saying someone should bust down your door and arrest you if you do not agree with him.
Even if you do not buy into his ethical framework, it is difficult to avoid the RMS argument that if you choose to use non-free software, it is a trap. Once you agree to use non-free software, you are allowing someone else to have control over how you use your computer. Free software might be more awkward to use but it gives nobody a hold over you.
I would go further, in fact. I personally think that even using proprietary file formats is unethical. If I send you data in such a format, I am putting pressure on you to buy non-free software.
Let me get this straight.
Out of the hundreds of thousands of police officers and the millions of interactions they have with civilians every damn day you come up with a few extreme examples of police violence. In two of these examples, the victims were SHOOTING AT THE POLICE (a very, very bad idea). From this weak data you come to the conclusion that all cops should be killed.
You, sir, are a blathering idiot. It is a shame you ever managed to learn to write and inflict your opinions upon the world. Here are a couple of clues that might make you a bit less of menace:
1. Cops are human. Some are worse than others. If you think of other humans as human, you might learn a bit of respect.
2. Try engaging your brain for once before you wish violence upon others, especially out loud. Some of those people who spend every day protecting you might take offense.
You know your level of confidence to four significant digits? Impressive!
From the document:
Subversion's Features
When discussing the features that Subversion brings to the version
control table, it is often helpful to speak of them in terms of how they
improve upon CVS's design. If you're not familiar with CVS, you may not
understand all of these features. And if you're not familiar with
version control at all, your eyes may glaze over unless you first read
Chapter 2, Basic Concepts, in which we provide a gentle introduction to
version control in general.
Subversion provides:
Directory versioning
~ CVS only tracks the history of individual files, but Subversion
implements a virtual versioned filesystem that tracks changes to whole
directory trees over time. Files and directories are versioned.
True version history
~ Since CVS is limited to file versioning, operations such as copies
and renameswhich might happen to files, but which are really changes to
the contents of some containing directoryaren't supported in CVS.
Additionally, in CVS you cannot replace a versioned file with some new
thing of the same name without the new item inheriting the history of
the oldperhaps completely unrelated file. With Subversion, you can
add, delete, copy, and rename both files and directories. And every
newly added file begins with a fresh, clean history all its own.
Atomic commits
~ A collection of modifications either goes into the repository
completely, or not at all. This allows developers to construct and
commit changes as logical chunks, and prevents problems that can occur
when only a portion of a set of changes is successfully sent to the
repository.
Versioned metadata
~ Each file and directory has a set of propertieskeys and their
values associated with it. You can create and store any arbitrary
key/value pairs you wish. Properties are versioned over time, just like
file contents.
Choice of network layers
~ Subversion has an abstracted notion of repository access, making it
easy for people to implement new network mechanisms. Subversion can plug
into the Apache HTTP Server as an extension module. This gives
Subversion a big advantage in stability and interoperability, and
instant access to existing features provided by that
serverauthentication, authorization, wire compression, and so on. A
more lightweight, standalone Subversion server process is also
available. This server speaks a custom protocol which can be easily
tunneled over SSH.
Consistent data handling
~ Subversion expresses file differences using a binary differencing
algorithm, which works identically on both text (human-readable) and
binary (human-unreadable) files. Both types of files are stored equally
compressed in the repository, and differences are transmitted in both
directions across the network.
Efficient branching and tagging
~ The cost of branching and tagging need not be proportional to the
project size. Subversion creates branches and tags by simply copying the
project, using a mechanism similar to a hard-link. Thus these operations
take only a very small, constant amount of time.
Hackability
~ Subversion has no historical baggage; it is implemented as a
collection of shared C libraries with well-defined APIs. This makes
Subversion extremely maintainable and usable by other applications and
languages.
I write very complex codes that solve partial differntial equations for science applications. We use fortran all the time for our core routines. All the data choreography is done in C++ but when you really need an array operation done quickly (and portably), nothing works better than Fortran. We have done tests comparing Fortran array operations to similar code written in c, and at one point the performance difference on the big iron was a factor of 7 (I doubt that it is still that high since most supercomputers now have commodity processors).
Mixed language programming is a pain in the neck and we would get rid of it if we could. As of now, we can't.
Sailboats can tack because there is a keel on the bottom of the boat that keeps it going in a line. There is no equivalent of a water surface with a solar sail. It may be possible to tack into the wind with a solar sail, but I don't see how.
dtg
Computer science isn't religion? Clearly you have never gotten in the middle of a emacs-vs.-vi flamewar.
dtg
This is the funniest post I have seen in ages.
dtg
My guess is that all those English-speakers in India and Pakistan would count as English-English. Since India alone outnumbers the US almost 4-1, I would say that English-English is by far the more broadly spoken.
You make a mistake when you say "just rack them up." Modern supercomputers are (ususally) made of commodity chips connected by extremely fast networks. Solving large systems of equations, especially elliptic or parabolic systems, requires large amounts of communication. You can debug codes running smaller problems on a cluster. To do large production runs, real supercomputers are necessary.
Nobody in their right mind would use a supercomputer where it is not needed. They are difficult to get time on and painful to use.
dtg
Child labor? Unsafe working conditions? Working
for company scrip?
Idiot.
dtg
ps.
I know, I know, don't feed the trolls.
If you are going to pirate some code from your
old company and bring it to your new company,
make sure you debug it before the world sees it.
dtg
I almost never need to use the mouse outside
of web surfing. I use emacs to edit files, compile, read news, read mail, debug (with gdb) and run shells. I even use the keyboard to switch between subwindows (c-x o). Since I started this system (and got a split keyboard---comfort keyboards are amazing) my wrist problems have more or less gone away.
When someone makes a web browser that has an emacs interface, I will use it. Aside from that, if it cannot be done in emacs, it is not worth doing.
dtg
begin{quote}
It's not something every programmer can learn. Most programmers don't have any aptitude for UI design whatsoever. It's an art, and like any art, it requires innate ability. You can learn to be a better writer. You can learn to be a better illustrator. But most people can't write and can't draw, and no amount of practice or education is going to make them good at it. Improved, yes; good, no.
end{quote}
So this guy somehow believes there is genetic ability to program good GUIs? I do a *lot* of art and I believe that there is some innate ability associated with art like sculpture and painting, but it mostly has to do with fine motor control. Most good art (and good programming of any form) is the result of practice and of caring about the quality of what you are doing.
The real reason GUI's are very difficult to do well is that they are difficult to debug because they are event-driven instead of linear. It is difficult to find bugs of the form "it breaks when I do A the X then Z" because the designer often cannot imagine why someone would do things in that order.
dtg
Arg! Another language in which whitespace is meaningful (this language uses it for scoping, as python does). It's evil in python, it's *really* evil in make, and it's evil here. Maybe my mind has been too warped by C++. I *like* classes. I *like* semicolons and curly braces.
So by the metric they care about, Microsoft is an effective OS.
dtg