GNU Grep and Sed Maintainer Quits: RMS and FSF Harming GNU Project
In a scathing rant posted to a GNU project mailing list, the maintainer of grep and sed announced that he was quitting the GNU project over technical and administrative disagreements. Chief among them: He believes RMS is detrimental to the project by slowing down technical innovation (the example used was RMS's distaste for C++, not exactly a strong point against RMS). Additionally, he noted that the FSF is not doing enough to help GNU "Projects such as gnash are bound to have constant funding problems despite being (and having been for years) in the FSF's list of high priority projects.". Finally: "Attaching the GNU label to one's program has absolutely no
attractiveness anymore. People expect GNU to be as slow as an elephant,
rather than as slick as a gazelle, and perhaps they are right. Projects
such as LLVM achieve a great momentum by building on the slowness of
GNU's decision processes, and companies such as Apple get praise even
if they are only embracing these projects to avoid problems with GPLv3."
The author is quick to note that he has no philosophical disagreements with GNU or the FSF.
Enough said.
Gnu/Anonymous FSF/Coward.
the example used was RMS's distaste for C++, not exactly a strong point against RMS
So RMS doesn't like C++ -- this doesn't stop people who can use it properly from writing their projects in it, does it?
Does RMS actually have control over what GNU projects are implemented in? If so, I'd say that's quite a strong point against GNU -- throw the whole "right tool for the job" bit out the window because one dude doesn't like it?
RMS is OK (not perfect, but OK).
For Paolo Bonzini, the grapes, they are sour...
Those who can make you believe absurdities can make you commit atrocities. - Voltaire
I knew about Linus Torvalds's distaste of C++, but not Richard Stallman's. What is it with open-source leaders and their irrational hate of C++?
However, all Stallman had to offer on the topic was "We
still prefer C to C++, because C++ is so ugly" (sic).
well, score one for technical argument and intellectual reasoning.
If ugliness was a consideration, then surely GNU should be moving to a beautiful language, such as C#. If no, then WTF does subjective qualities of a language have to do with anything, there's no problem with any language as long as it is understandable (and I contend that means individual coding style rather than anything in-built - C can be so obfuscated they have competitions for it!).
the problem with all of this is the usual geek tendency of arrogance - where one always thinks he has the mental superiority to everyone else, and this is the biggest single detriment to the OSS community of all.
The year 2000 called. They want their "obvious" back.
"He who would learn astronomy, and other recondite arts, let him go elsewhere. " -- John Calvin, commenting on Genesis 1
I advise people to read the actual message; this summary is exaggerated.
C++ is crap, but when the alternatives are a tasteful subset of C++ and a half-arsed reimplementation of a horrible subset of C++ in C macros, I'd rather take C++ and bitch about it than suffer in C. There are very few places where C++ is the right tool for the job, but C is often not the right tool for these either.
I am TheRaven on Soylent News
The posting is NOT a "scathing rant", it's a pretty clear, calm and well-reasoned explanation as to issues that the author sees with GNU and GNU software development. There's no flamebait, no ranting, no name-calling.
Except C++ isn't crap.
Prove it!
This gives some ways to accomplish the same thing.
Do you even understand what the expression "sour grapes" means? Because I am struggling mightily here to try and see how what you just said makes any sense at all.
Except C++ isn't crap.
Pshaw. Well, I guess we can't really blame the Inferiors. Until you mature, I suppose you won't have a lush, fully-grown neckbeard whispering in your ears the dark secrets of why any programming language invented past 1972 is inherently worse. Trust me, everything will make so much more sense once you've heard the beard. Then you'll understand why we ONLY decided to grudgingly tolerate C after we made it more baroque than necessary to ensure our own job security. This entire "easier to write code" fad will certainly pass.
For the people who don't program, can you define why its "horrible"?
Only the State obtains its revenue by coercion. - Murray Rothbard
lol AIX who uses that shit
/me raises hand
It's not modern or "sexy", but it is incredibly stable.
All languages are crap at some level and for some uses.
But watch this from Bjarne last february for some insight in C++11:
http://channel9.msdn.com/Events/GoingNative/GoingNative-2012/Keynote-Bjarne-Stroustrup-Cpp11-Style
ipv6 is my vpn
When using RAII sensibly, C++ does offer excellent support for babysitting your memory usage. In fact, it offers superb support for managing any sort of a resource that needs to be allocated and later deallocated. There is no good equivalent in C.
These days, C++'s modern smart pointer classes make memory management a complete non-issue. You get very predictable and effortless freeing of memory, all without having the performance of your app destroyed by garbage collection like you do when using a language like Java, C# or Ruby.
This is just the power of C++ in action. It lets you easily build minimal-cost abstractions upon C.
I re-read Bonzini's post, and his complaints seem to boil down to this:
1. There are no official or de facto C++ coding standards for GNU projects. There cannot be an official one because of Richard Stallman's opposition to C++. Not that his voice matters anymore to those working in the trenches, but hey, it's still annoying.
2. The FSF isn't doing enough to help the GNU projects, either with funding or PR.
3. It simply isn't "cool" to be associated with a GNU project anymore.
Not saying that these aren't valid reasons for moving on... people make career decisions for any number of reasons. However it IS bad form to blast this out in a public forum as one's last act as official maintainer. Because many people read and remember the headline without reading and evaluating the content.
I predict that Mr. Bonzini will soon regret that he doesn't work for a boss with such a detached style as Stallman.
A lot of US credit unions and community banks use AIX to run the core process. The Microsoft equivalent in the credit union world is Jack Henry and Associates Symitar core process which only runs on AIX.
That's why all of the leading DBMS's and most Triple-A video games are primarily written in C++, as well as the guts of Google's search engine, Amazon's order and fulfillment system, Microsoft Office and Exchange server, etc.
Because these people don't realize that C++ sucks that's why!
It's Christmas and we have nerd rage on the intertubes. At least it's less boring than reading facebook updates or twitter feeds....
I was promised a flying car. Where is my flying car?
Palm trees and 8
> lol AIX who uses that shit
Employers.
A Pirate and a Puritan look the same on a balance sheet.
The leading DBMSs?
Those are likely older than you are.
Probably not as much C++ in there as you think.
A Pirate and a Puritan look the same on a balance sheet.
He didn't master the tool called "C++", so he got himself a toy called "C#". Now he bitches about the tool when in reality his own conceptual and practical incompetence is to blame.
It's like I just got out of a hot tub time machine and it's 1995.
Glacially slow development in GNU projects? That's not new.
Linux would not exist without the annoying aspects of GNU and the FSF. They would have made their own kernel in a timely fashion and Linus may never have been motivated to make his own.
In other news: water is wet and apples fall out of trees.
A Pirate and a Puritan look the same on a balance sheet.
wow, you'd think they would be pretty much done by now
Well, the post is actually a sed release message. Here's the start:
I am pleased to announce the release of GNU sed 4.2.2. The latest
release has the following bug fixes and new features:
* don't misbehave (truncate input) for lines of length 2^31 and longer
* fix endless loop on incomplete multibyte sequences
(There are actually quite a few more points)
Line lengths of more than 2^31 are probably not that common (indeed, even about a decade ago that would have exceeded maximal file size), so it's no surprise that it only came up now (indeed, some vendors would probably just have documented it as limitation of their program instead of fixing it). Also, multibyte characters for sure weren't in the original specification of sed.
The Tao of math: The numbers you can count are not the real numbers.
The LWN article linked to is about "Copyright assignment" (http://lwn.net/SubscriberLink/529522/854aed3fb6398b79/)
The author seems to complain that he cannot retain copyright over his work.
Does that mean he doesn't want to code for free anymore?
It is not hard to find examples of why C++ is bad. C++ is statically typed, but fails to deliver the sort of type system power that ML gives programmers. C++ is object oriented, but provides no metaobject protocol and forces programmers to resort to its clumsy templates system to do things that are not hard in languages with MOPs. C++ programmers are expected to figure out whether or not they should use a shared_ptr, weak_ptr, or unique_ptr, or if they should just give up on smart pointers and try to manage memory deallocation on their own (and, of course, there is no garbage collector, not even an optional one). The fact that "move semantics" and "r-value references" are considered to be highlights of C++11 speaks volumes about C++.
For me, the major issues in C++ are not even the lack of features, although most people start there; I point to the difficulty with writing reliable code in C++ as the most important problem. C++ exceptions are only useful in cases where there is no possible way to recover from an error. There are situations in C++ where exceptions are the only way to signal an error; thus there are situations in C++ where recoverable errors become unrecoverable for no reason other than deficiencies in the language. Worse still, the very situations where exceptions are the only way to signal an error also happen to be the situations where throwing an exception is dangerous: constructors and destructors. Beyond handling errors, there is the lengthy list of undefined behavior in C++, much of which could have been defined without any ill effects. The C++ standard even fails to rule out programs that could not possibly make any sense; for example, having a non-void function without any return statements (yes, most compilers will warn you about that -- but warnings are not part of the standard, and if most compilers can detect this there is really no excuse for the standard not explicitly forbidding it).
It is not hard to understand why "C++ is horrible" has become the go-to response to any comment about C++. It is a horrible language, and it is likely a culprit in the billions of dollars wasted on software bugs each year (buffer overflows, dangling pointers, etc.). It is a horrible language because it is inflexible, it lacks expressive power, and it makes things that are simple in other high-level languages needlessly difficult (how do you give the user a macro system that allows them to extend any feature of your program in C++? In some languages, that is as simple as giving the user access to a REPL, from which they can override or extend any behavior.). We are, unfortunately, stuck with this language, and will likely be stuck with it for a while (though I am hopeful that the need for reliable healthcare software will ultimately kill C++, MUMPS, and other awful languages).
Palm trees and 8
Of course the complete functionality of grep can be obtained with a awk or perl script. So unless you consider grep an useless legacy program, that's not much of an argument against the option.
The Tao of math: The numbers you can count are not the real numbers.
Yeah, and here are some applications that run in demanding environments, that were not written in C++, and that you would probably be hard-pressed to write in C++ (at least with the same results):
https://en.wikipedia.org/wiki/Dynamic_Analysis_and_Replanning_Tool
https://en.wikipedia.org/wiki/FFTW
http://www.haskell.org/haskellwiki/Haskell_in_industry
Hm, that's interesting -- demanding environments, high stakes, and no C++. This might be a clue; it is the experience of a team working in another demanding environment, that used some C++ code but mostly Lisp, who were not terribly impressed by what they saw with C++ (it seems like it was more of a chore for them):
http://www.paulgraham.com/carl.html
Of course, that was ten years ago. Times have changed; now C++ has r-value references and smart pointers!
Palm trees and 8
Also, the barber says you need a haircut.
I've never talked to anyone about the reasons why AIX was chosen over something else...it may have had more to do with the hardware they wanted to run (and/or re-use)
Bottles.
There is no shortage of insightful and very detailed negative critiques of C++ on strictly objective engineering grounds, but the parent distills just the essence of the argument and does so without raising heat. Well written and very concise.
As both an educator and a freelance developer who has worked in many commercial C++ teams, I can only shudder at the extreme myopia of those who advocate in favor of C++ for applications development. It has its useful niche, certainly, like all languages do, but that niche is not large-scale applications development. To use an unsafe language for that purpose is to knowingly accept that your application will be bug-ridden and a wide open security risk. This is not negotiable.
Large programs have bugs in proportion to their size, this absolutely cannot be avoided, and to make matters worse, C++ has by far the most complex syntax and semantics of any programming language in existence, which amplifies the inherently high bug rate of the unsafe language. If you do not accept this, then you are in denial of CompSci fundamentals and a direct contributor to the software crisis.
Use some insight, people. You can't juggle for long periods of time with a bunch of scalpels without cutting yourself. And you can't program large applications with an unsafe language without the software equivalent of blood and pain. Use some judgment.
The comments below seem no more relevant than this "slightly off topic" thread... I find that unfortunate. Of people who have made the world a better place, I list RMS near the top. He's done so in a selfless manner that makes me proud to be human. Sure, I don't agree with him half the time, but if I could trade my life for one where I could do as much good as he's done, yeah... I'd do it. Have you ever heard of Gandhi? Ever read about that flake? He slept (as in sleeping - not sex) naked with young girls to prove to himself he could control his animal impulses. Yet few argue about what Gandhi did for the world. It kills me to hear about people complaining about RMS's views on C++, on which he happens to be mostly right, and even if you disagree this is not naked girl territory. We should acknowledge the outcome of his life's effort: the world runs on free software. Standing ovation for RMS! Imagine how much harder it would be to write awesome code if we didn't have all this free stuff!
That said, RMS both promotes and harms the goals of the free software movement. As the "Cathedral and the Bazaar" pointed out, RMS brings a central control view to free software that is counter to the whole environment that made GNU/Linux awesome. Debian, IMO, epitomizes this flaw. Rather than helping young new programmer share code and ideas, you have to pray to the Debian Gods and hope they take pity on your pitiful new package before it can be share across the Debian universe. Sure, Debian has it's place... deep in the innards of server racks where 99.9% up time is required, but not on a bright young programmer's desktop. If you want to be part of the new innovative group of coders, go learn about programming for Android.
I hope this message can finally be heard by RMS and those most central to the free software movement: we volunteer programmers are sick and tired of dealing with the wall of red tape you've built. Please get out of the way and let us do our thing. But you're right about C++.
Celebrate failure, and then learn from it - Nolan Bushnell
RMS suppressed C++ and Flash support for the same reason Adobe and Microsoft are fading them away: Because they were and are ill conceived crap meant to wall garden programmers with property libraries and complexities that rely on a dedicated and nontransferable skill set.
Writing in C++ is only done out of ignorance or reliance on property libraries. No person in his right mind chooses it. Hell, even Microsoft is trying to put it aside in favor of C# and this guys are crazy as Win8.
I tend to think the only reason there's even a C++ compiler in Linux is because the GCC guys felt bored with C since it was so rock solid perfect and decided to experiment. I'm completely serious. Most of the linux kernel is shiny-new-feature driven and the compiler is much the same.
...to RMS, these absolutely had to be points 0 thru 2? ;-)
I guess the big news here to me was that GNU grep and sed were being maintained. :)
Hey, Windows users, there is no such thing as "forward" slash, there is only slash and backslash.
I'm sorry, I find it extremely laughable that you can suggest that "Ruby is on the right track."
Nearly everything about Ruby is wrong. That's why it has such a rotten community surrounding it, and such rotten frameworks and apps (like Rails) built upon it. Pick just about any factor, and Ruby will be doing it the worst way possible.
1) Performance: Ruby's performance is virtually always abysmal, while C++ code generally performs very well. This makes Ruby pretty much unusable for anything serious. When foolish people do try to use it for something serious, they usually end up having to throw far more hardware than should be necessary at it, or have to rewrite their code in a better-performing language.
2) Portability: C++ is far more portable than Ruby. It's also much more convenient to distribute C++'s binaries to end users than it is to have to distribute a Ruby implementation, or have the user try to provide the correct version themselves.
3) Community: The C++ community is made up of some of the best minds there are. These people usually have extensive academic backgrounds, followed by decades of real-world software development experience. They are professionals in every sense of the word. The Ruby community, on the other hand, is absolutely toxic. But that's not surprising, given how many of them are still inexperienced teenagers, and "manchild" is the best way to describe the ones who are older. Oh, the C++ community also welcomes women, and treats them as equals, while the Ruby community has been shown to hold extremely sexist and bigoted attitudes toward women.
4) Maintainability: The features of C++ help with the creation of large-scale software systems, often worked on by thousands of people over many years. C++ software is extremely maintainable compared to Ruby code. Ruby advocates failed ideas like dynamic typing and monkey patching, both of which hurt the maintainability of an application. It's far easier to get up-to-speed with a complex C++ system than it is to do so with even a simple Ruby app.
5) Developer Productivity: C++ has far more robust development tools, including compilers, IDEs and debuggers, than we see available for Ruby. Furthermore, C++'s compiled nature catches many issues early, which makes unit testing and bug fixes far less of an issue than we find when using Ruby.
I think you get the idea. It's clear that C++ is superior to Ruby in essentially every way. In reality, there's no comparison between the two. C++ is the more sensible language to use, even for web development.
"The author is quick to note that he has no philosophical disagreements with GNU or the FSF." - oh so he's a heretic not apostate, thank Linus! But get the pyre going anyway.
Linux would not exist without the annoying aspects of GNU and the FSF. They would have made their own kernel in a timely fashion and Linus may never have been motivated to make his own.
Interestingly, the original architect of the Hurd kernel wanted to use 4.4BSD as a starting point, but was overrulled by Stallman who wanted to use Mach.
We are about ten years overdue for someone to lead the FSF. All the successes in open source and free software have been despite RMS, not because of him.
You might be more fair and qualify that with the word "recent". RMS has been on his crusade for free software for far longer than 10 years, and some of the key enabling things early on were tools he and the FSF created. GCC was a crucial part of this, as it broke the specter of vendor lock in at the tool chain (a real threat at one point).
But the world has moved on.
"Little does he know, but there is no 'I' in 'Idiot'!"
If you are talking about the "uptime" stability
As somebody who actually occasionally uses AIX, but most and foremost who does support for HA system for past 5+ years, let me just say that the uptime stability of any system is asymptotically equivalent to the minimum distance idiot admins are kept from it. Farther you keep idiots away from important system - the system which you want to have great uptime - longer the uptime gets.
Otherwise, our AIX 5.x, 6.x and 7.x boxes run pretty well over here and with great uptime (500+ days between reboots; most commonly rebooted for network/storage reconfiguration or power outlet/physical relocation). Yeah, system is out-dated, mostly sucks and is unused. But try to think of it positively, as about the "glass half-full": Thanks God It's Not HP-sUX!!!!!!!!
All hope abandon ye who enter here.
...awk-ward!
FCKGW 09F9 42
C++ is an open standard. You can even compile it with the GNU compiler. There's absolutely nothing proprietary about C++.
The Tao of math: The numbers you can count are not the real numbers.
This reminded me of the latest project of ESR: a system to replace the CIA IRC bot that sends messages to IRC channel when people commits things to repositories. http://www.catb.org/esr/irker/
He chose to implement it in Python, probably because of distaste for C++.
After several days of trying to use it and running into severe bugs (random crashes, often locks up, doesn't deal well with unstable connections, excessive memory and CPU consumption, data races and general unreliability -- and of course it required latest python and some very svn version of some library dependency, no fun otherwise) I gave up on trying to fix it and rewrote it from scratch in C++ instead.
In two hours I had a working lightweight and extremely robust implementation of the protocol he defined. I followed the project for a while and it seems it kept having major usability issues for weeks, to the point where many people were reporting bugs and contributing hacks to fix them.
All because it was poorly designed and overengineered. The guy actually made the whole thing multi-threaded (with no knowledge of how to synchronize things properly) even though it wasn't needed.
I think one of the bad aspects of that old generation of notorious hackers is that they're not that good, but their name pulls people in.
There is nothing about C++ that makes it proprietary.
It's designed by a committee in which both companies and academia are very active.
As someone part of both the C and C++ standards committees, I can tell you that interest in evolving the C++ language is much higher than in evolving the C language.
Some of that evolving is done by academia which do it for the pleasure of making programming languages better, while companies do it to better push their technologies. For a couple of examples IBM is interested in standardizing decimal floating-point, since their hardware natively supports it, while Intel and Microsoft are working on standardizing parallel features.
I worked with a Russian programmer of very few words, who willingly ran AIX as his desktop OS. When asked why, he said "I enjoy the strict confines of AIX."
I had absolutely no idea how to respond to that.
His style of running things and divergent goals from the actual projects just rubs people up the wrong way at times. With emacs it was the ability to take advantage of features in an X-Windows environment (which the hurd didn't have, so he forked emacs away from the developer) and with gcc it was to improve compilation of linux binaries (which didn't help hurd).
Where is this scathing rant? All I can find is a extremely polite, well written airing of grievance and resignation.
Except he's not.
As an IBM employee, I am equally without words.
Yeah, and here are some applications that run in demanding environments, that were not written in C++, and that you would probably be hard-pressed to write in C++ (at least with the same results):
Example 1: a DSL. Nice, but for demanding environments, go check ADA - full blown OOP - and generally slower than C++.
Example 2: A FTT routine, how nice. Having worked with assembly implementations on several architectures, hardly a good example - except if you look at all that "demanding" software that also uses FFT in C++. And its not like C++ is a black container unable to use 3rd party libraries.
Example 3: A fringe functional language. Don't get me wrong, I actually like some of the concepts of Haskell, but it is not a mainstream language, nor is an "industry standard" (except some specific companies), And Haskel is actually SLOWER than C++. A lot.
Why are you bitching about "demanding environments"? Can you enumerate which companies RMS has worked for? Because what I see is a guy completely out of touch with reality. And you may like him a lot, thats your problem, but if he had his way, you'd be compiling your ghc with EGCS today. If you think C++ is so broken, tell me - what is the size (bytes) of an unsigned int in C? Why promote so shamelessly such a defect-prone language - specially after a decade of vunlerabilities related to the poor implementation of the standard library? Why don't you bitch about that?
And you have *tons* of demanding environment examples done with C++, Python, PHP, Java, Ruby, C#/.NET, etc. and only a few done in pure assembly. Even most operating systems try to use as little assembly as possible. So your point is?
Disclaimer: I don't even like C++. It has most of the atrocities of C coupled with a half-assed OO support.
You are right about Stallman's extreme Leftist views, and being familiar w/ your link, I'm not sure why you say that he attacks bad people. While people can have different opinions about Bush, Romney, Obama and so on, the causes Stallman embraces worldwide are wacko Left. In the Mid East, w/o saying so in so many words, he backs Jihad terror groups against Israel. And his views on pedophilia and necrophilia - how on earth can anyone consider that mainstream? And the grep/sed guy has only noticed that he is a problem now?
From the OP
Additionally, he noted that the FSF is not doing enough to help GNU "Projects such as gnash are bound to have constant funding problems despite being (and having been for years) in the FSF's list of high priority projects.". Finally:
"Attaching the GNU label to one's program has absolutely no attractiveness anymore. People expect GNU to be as slow as an elephant, rather than as slick as a gazelle, and perhaps they are right. Projects such as LLVM achieve a great momentum by building on the slowness of GNU's decision processes, and companies such as Apple get praise even if they are only embracing these projects to avoid problems with GPLv3."The author is quick to note that he has no philosophical disagreements with GNU or the FSF.
He is partly right, and a better case in point is HURD. Nothing makes the FSF look like a bunch of opportunistic thieves than abandoning HURD for all practical purposes, and trying to hijack Linux instead under a brand 'Linux-libre'. Also, by starting so many GNU projects when there ain't enough people to complete the first few, they have not done themselves any favors. Like I pointed out in the Trisquel thread, most of the GNU programs are geared towards programmers. I mean lisp, guile, scheme, et al - how important is it to support all languages, as opposed to supporting a handful, and then using those to create quality software?
The choice of whether to program in C, C++, Objective-C, Objective-C++, C#, Java or whatever should be a decision of individual programmers, since the FSF is not a company. RMS makes things ugly when he opposes bytecode distribution, even though that achieves a lot of the portability and helps proliferate Java software across various platforms. In this case of C++, regardless of whether C++ is better or worse than C - and obviously, the programming world is divided on that issue - it would be a better idea to have all the tools available and let the programmers decide. But RMS, contrary to his 'freedom' sloganeering, has never been about choice in software any more than he is about choice in his pet issues - politics.
Also, nothing demonstrates Stallman's anti-business attitudes better than his advocacy about 'freedom'. First, all the software had to be liberated, and when programmers asked how they should make their money, he stated that they could make their documentation a service. When programmers started doing that, he started demanding that the documentation should be free. When programmers, in order to get around the software support issues, started offering application services, he came out w/ AGPL. When TiVo, using legitimate GPL conditions, came out w/ a product where the code could not be altered, he came out w/ a new GPLv3 in which he had a specific clause slamming the company, calling it the 'anti-TiVoization' clause. Which company in their right mind would want to make their software GPL, knowing that even if they figured a way to make money, Stallman will do what he can to close that loophole?
On a final note, I agree w/ other posters above as well - I had no idea that grep & sed were still under maintenance. Honestly, the author should think of writing something new, instead of something that existed from the 70s. Maybe things like extending Qt to cover Objective-C, or some such activity, which would be more useful than maintaining the functionality of 2 utilities that nobody other than programmers use.
Someone actually maintains sed and grep? I would think after FORTY years you can probably just let grep do its thing on its own.
It works fine for me. I have been using Microsoft's STL for 10 years now without problems - it's implemented by Plauger.
Linux would not exist without the annoying aspects of GNU and the FSF.
Given that Linux did not start as a GPL project, I seriously doubt it. And it is widely known that Linux was started because of licensing issues with Minix, and because 386BSD wasn't available.
They would have made their own kernel in a timely fashion and Linus may never have been motivated to make his own.
A couple of years after Linus started Linux, the 386BSD was made freely available. Even considering that Hurd was started almost one year before Linux, if not for Linus work (and all the volunteers), RMS and the whole GPL thinggy would be a remainder of the nineties, like pagers and AOL, while we'd be using BSD-derived workstations.
GCC was a crucial part of this
What you know today as GCC was done as "fork-and-merge". There was a lot of resistance in integrating the patches/changes provided by EGCS. Had he get away with it, GCC would probably be dead, and you'd be running a fork of it.
but this is my account of Richard Stallman's presentation to the Yorktown High School Computer Club for anyone who would be interested.
Reading that linked article reminded me - the printer deal that was the cause of him starting this whole thing - it could have been solved w/o an anti-business manifesto demanding that all software be free. All he needed to have done was demand that whenever software changes hands - legally or illegally, the source code must accompany it. He needn't have said squat about re-distribution rights.
After all, a lot of companies did agree that open source, as in making sure that source code always accompanies binaries, is a good idea. As long as they are allowed to restrict distribution to only their paying customers, this is not an anti-business business model. The software vendor sells their software - both binaries and source code - to their customers, and in the license, they explicitly prohibit its redistribution. That way, if the customer needed to customize the thing for their own usage, they could hire their own programmers, dip into the source code, make whatever modifications they need, and use it in-house, w/o threatening the business of the ISV. Or if the ISV goes tits up, the customer can hire their own programmers to maintain that software as long as they need to, rather than be forced to sink cash into a new platform. This is a win-win scenario for both the ISV and customers.
By focusing on the liberation of software, rather than just ensuring that the source accompany the binaries, Stallman screwed a fantastic opportunity here - maybe deliberately, given his Marxist world views. The above idea would preserve the interests of ISVs as well as that of customers, making it truly workable. But by insisting that the ISV can't prevent re-distribution, Stallman made the GPL essentially a poison pill. After all, as it has been demonstrated, there are very few ways to make money on software that is GPLed. All this would also have avoided a gazillion licenses, since most of the variations are due to variations in redistribution clauses.
Open-source, as defined by OSI, has some of the same issues by insisting on the freedom of re-distribution. Since they are not leftist fanatics like Stallman, one would hope that at least they would see it this way, and allow for a total non-free software to get open source endorsements as long as source code accompanied the binaries. That would achieve all the OSI goals of promoting better software, while also earning it the broad based support of the software industry.
Getting back to the FSF, the other issues that they espouse, such as security & privacy, are things they could support, but which are totally separate issues from open source. One could put bots and other spyware into open sourced software as well, and a consumer would still have to know where to look for them to flush them out. Instead, have totally different movements on those other issues.
But given how everyone knows that TINSTAAFL, the 'free-software' or 'software-freedom' concept has to go. Free is a beautiful word, and doesn't deserve to be maligned by the Orwellian language of Stallman and his club.
Is he still w/ the project?
Just Grep the 'net for a new maintainer
Table-ized A.I.
All your little anecdote proves is that someone wrote some bad code, even if it was well-documented. I've seen plenty of unreadable C, Perl and Python, to say nothing of Java or .NET. Object orientation can be very clean, and it can be very dirty if you don't know what you're doing or don't care.
He needn't have said squat about re-distribution rights.
Except that redistribution rights are important today. Why should a company be able to restrict me giving away copies of programs?
Open-source, as defined by OSI, has some of the same issues by insisting on the freedom of re-distribution. Since they are not leftist fanatics like Stallman, one would hope that at least they would see it this way, and allow for a total non-free software to get open source endorsements as long as source code accompanied the binaries. That would achieve all the OSI goals of promoting better software, while also earning it the broad based support of the software industry.
As far as Stallman is concerned, it's the philosophy that comes first, not "industry support" of whatever the current fad is.
Stallman screwed a fantastic opportunity here - maybe deliberately, given his Marxist world views.
Your political dog-whistling really doesn't have any bearing on the merits of Free software.
Why he didn't just use BSD(M)?
...More like the barber shows you the cool new shaver that you didn't understand and that he helped design.
An interesting exercise is to compare the internals of Clang, written in more modern C++ versus gcc, written in C, and to decide for yourself which one you'd rather maintain.
http://llvm.org/svn/llvm-project/cfe/trunk/
http://gcc.gnu.org/viewcvs/trunk/gcc/
Note that Clang is written in modern C++ and is also faster than GCC.
One benchmark shown is that clang loading a parse tree of 'precompiled headers' is almost the same time as it takes to just compile the headers.
FWIW, I'm switching to Clang wherever it is supported because of all of the regressions in GCC for vectorization in C and C++ since GCC 4.2
ipv6 is my vpn
Lets face it, we have recently had some experience with projects that are the core of computing where it went terribly wrong. The GNU tools are so basic to Linux that if they underwent the same rapid development as others, they become unusable. On the other hand, if they don't keep up, they become obsolete. And when it comes to a tool chain, you can't just modernize one because it is part of a chain and it would break the chain. Simply chaining a few parameters for grep would destroy how many scripts?
You can't even just rewrite it in a new structure while keeping the interface the same because that would mean your new version would need to achieve in months a complete feature and robustness parity with the original program. This was one of the things that bit Gnome 3 hard, it just wasn't complete when it was supposed to take over from its predecessor. Stuff like Hurd and Grub 2 suffer similar programs, their goals may be noble and far reaching but they are/were for a long time not even suited as a replacement in all but the most trivial setups.
And frankly, I don't care if the GNU toolset is slow as hell or doesn't get many new gadgets... many of these programs are so essential, so basic to unix style computing that you can wonder if they ever need to evolve. How long has a hammer been a hammer and just right for being a hammer?
Proof me wrong, write a new grep tool. Get it adopted and supported. It will be a very long road. And all along the road you will have a tool that is not yet as widely installed, robuust, tested, documented and understood. The end destination better be paradise to make that worth it.
This guy might be disappointed with RMS support now but just wait until he tries to get support for an alternative grep for people to use, document, bug report, debug. Many have tried such things, most failed.
MMO Quests are like orgasms:
You may solo them, I prefer them in a group.
"Name these languages that offer more performance AND safety than C++"
Yes, Fortran. Fortran 2003/2008 is a very good conventional straight-forward programming language, except for I/O. It has a better memory and execution model for high-performance computing.
http://en.wikipedia.org/wiki/Fortran#Fortran_2003
And it supports successful code-reuse, proven empirically over decades, even when hobbled with backward compatibility with ancient cruft/
www.netlib.org
Fourier transform routines written in the 1960's are still good. Ugly to look at, but it will compile and link and work just fine.
http://www.netlib.org/go/realtr.f
And of course it doesn't omit obvious things like FUCKING MULTIDIMENSIONAL ARRAYS for real, in the language, and interoperable everywhere. And they can start at 1 or 0.
And a pointer is not the same as an allocatable array/structure.
These weren't naked "girls" they were naked girls, as massively underage.
> Billions have been wasted rewriting the same code (at times in roundabout ways) just to avoid copyLEFT restrictions!
Billions have been wasted rewriting the same code (at times in roundabout ways) just to avoid proprietary restrictions, too. People who want to use copyleft code only have to release their changes, it's not such a big deal...
From the point of view of the software ecosystem, I'd say that the GNU toolchain has given birth to what I consider the most successful open-source project ever, namely Linux (probably a billion-dollar success overall), mostly under the GPL. From an industrial point of view, copyleft hasn't harmed Google too much, and Apple is definitely not a model for free software.
As someone who administers AIX but am historically from the Linux side of things, I have seen quite a few oddities on this supposedly-stable OS of IBM's, AIX.
I have seen the kernel get clobbered by authentication systems and PAM, repeatedly. It doesn't handle OOM conditions nearly as well as Linux does (though you can tune it to a similar degree, if only because Linux borrowed a lot from their implementation). I've seen a great deal more erratic behavior (eg. daemons crashing, lack of responsiveness, etc.) on AIX when approaching OOM conditions (with or without swap - just whenever the slab space is almost all used) than I ever have on Linux.
If it were so stable, it wouldn't need patching primarily for stability as regularly as it does from IBM. Sorry, but from where I'm sitting, AIX has a lot more patches being released for a great deal more things than RHEL does, for very basic things. IMO, the biggest reason AIX is even used specifically is due to legacy, and institutional knowledge - AIX knowledge doesn't go as stale as quickly as Linux distro-specific knowledge does, because nothing ever changes - ever - on AIX, they just add more stuff.
And, of course, the hardware AIX runs on is pretty much just pure awesomeness. That's the biggest reason AIX should even be considered.
(Funny enough, the VIO and/or HMC on most "AIX" equipment appears to be some neutered and highly customized version of SuSE, so technically, AIX can only really be as stable as Linux is.)
~/ssh slashdot.org ssh: connect to host slashdot.org port 22: too many beers
Microsoft LOVES BSD, they can take code from it and never contribute anything back. But it is Linux that got popular not BSD.
BSD has its supporters, like MS, who don't actually do anything to support it. Linux has supporters, like IBM, who do massive contributions.
The GPL has won, the only ones who hate is who want stuff totally free and not contribute anything back. Well, for those people there is BSD. Enjoy.
The fact that Linux is on its way to become the biggest OS, the most used and the most installs (thanks to Android) says enough that the GPL works a LOT better then BSD in encouraging industry AND consumer adoption.
And still kiddies who never will amount to anything claim that all the Linux users and contributors are wrong. OPEN YOUR EYES!
MMO Quests are like orgasms:
You may solo them, I prefer them in a group.
Yeah, and then every man and his dog would have to re-implement that fix independently. Your suggestion is bat-shit crazy.
MySQL: C++
Mozilla: C++
Libre/OpenOffice: C++
Qt/KDE: C++
Etc.
Let the brainy people discuss why C++ is such a bad language in theory and go back programming...
We know we're really screwed when the maintainer of cat gives up.
I hadn't the slightest objection to his spending his time planning massacres for the bourgeoisie... (P.G. Wodehouse)
By "young" he means 8-year-old. Not quite what you may have been thinking.
You're confusing some proprietary C++ libraries with the C++ standard and the C++ Standard Library that both have nothing proprietary in them and that are cross-platform.
cpghost at Cordula's Web.
If you want to see how a good idea can brought to its knees by politics, correctness and an extreme lack of pragmatism then look no further than Hurd. Here is a project which started before Linux and development was so glacial and bogged down in politics that Linus Torvalds preferred to write his own kernel from scratch than wait any longer. It seems a lot of other people agreed with him which is why Linux is practically ubiquitous and Hurd isn't. It's not the only GNU project infamous for its extreme lack of progress so perhaps there is a stigma attached to the name.
Pair of insane, rambling commenters.
No, I take the 12+ year maintainer over the guy that hasn't done any serious coding in a decade (one liners to emacs lisp plugins don't count before you come back with that shit).
awk replacing grep - getting in a mac truck to get the groceries.
perl script - getting in a race car for the same
I'm just trying to type ls -l |grep something into an interactive bash shell, simple simple shit, that breaks.
Apple is the primary funder of LLVM and the creator of Clang, LLDB, and following them is Google and dozens of other major corporations contributing to the LLVM Projects.
Be careful. There are still primitive parts of the internet where that kind of talk is considered blasphemy.
Required reading for internet skeptics
Still, early versions of GNU libc and cc in the 80s and 90s where crucial. At the time it was not only the open source model which was doubted - it was doubted whether "bunch of unemployed hippies" can write anything as sophisticated and of production quality. FSF/GNU under RMS guidance had managed it.
EGCS happened much later, in the end of the 90s. As old saying goes (I have forgotten original wording), person who have contributed something major to development eventually becomes a major impediment to development himself. RMS religious zeal was important instrument to persist through the times of total commercialization of the software. Now, after he made sure that open source exists and thrives, he himself is more of an obstacle to the future of what he had created.
All hope abandon ye who enter here.
Try developing a cross-platform C++ application and we will see if you start agreeing with RMS or not.
Heck you could replace everything: grep, awk, sed with perl. That guy is just being stupid.
Clang is faster at producing slow code.
The "printer thing" is actually a red herring. The act that started RMS on his path was a lot simpler - all his coworkers at the MIT AI lab left. Stallman had finally found a place where he was comfortable, then thay all left to try and make a little money. RMS threw a hissy fit and set about taking all their original ideas and releasing them as free software. His stated goal was to drive them out of business - either to punish them for leaving or maybe to force them back to the lab. The printer story developed later, in an effort to make it seem not nearly so petty.
He didn't master the tool called "C++", so he got himself a toy called "C#". Now he bitches about the tool when in reality his own conceptual and practical incompetence is to blame.
Basic advice on trolling: Follow hyperlinks to get superficially correct posts and avoid mistakes like writing about embedded guy that he exclusively uses C#
Honestly, the same goes for the GNOME project. Just have a read here. This situation is possibly even worse for FLOSS in the long run than the FSF's conservativeness.
FLOSS development is supposed to be about choice, I find it very unsettling that various entities try to take that choice away. "If you're not a GNOME project you don't matter, in fact we'll actively try to make your life harder." is basically what they say.
The same can be said about the entire systemd debacle, is it an improvement over what we have now? Maybe so, but that is irrelevant to this discussion, but the way they are trying to force it on everyone whether you need it or not, whether you want it or not is sickening and unworthy of a FLOSS project.
Personally I'll take the FSF's slowass development, seemingly archaic policies and Stallman's insistence on correcting every use of "Linux" to "GNU/Linux" over the current trend emanating from the likes of the GNOME project.
Grep maintainer quitting. 900 billion people use grep. Somebody else will maintain it. Nothing to see here, move along.
RMS suppressed C++ and Flash support for the same reason Adobe and Microsoft are fading them away: Because they were and are ill conceived crap meant to wall garden programmers with property libraries and complexities that rely on a dedicated and nontransferable skill set.
Writing in C++ is only done out of ignorance or reliance on property libraries. No person in his right mind chooses it. Hell, even Microsoft is trying to put it aside in favor of C#.
Could have fooled me.
I had not hear this part of the tale. Can you site a reference?
GCC has been effectively re-written many times during that time. I myself was involved in the porting of G++ v1.38 (before GNU G++ was part of GCC) to run self-hosted on the Atari ST, back in 1989 or 1990. I don't think anything still exists from that code base in GCC 4.7 at all.
ipv6 is my vpn
That's not true in general, and not true specifically when generating SIMD code for SSE4 or ARM NEON.
All the latest GCC versions 4.4, 4.5, 4.6 have serious regressions in SIMD optimizations, it actually went backwards in efficiency over the years.
Final code efficiency is the primary reason why I needed to switch to Clang.
It is a real pain btw to have to have two C compilers for a single embedded device!
ipv6 is my vpn
I got what I wanted for Christmas, early - proof that we can still have a flamewar about News for Nerds!
"Sometimes a woman is a kind of religion, she can save your soul & set you free from all your sins" - Bad Examples
Care to show me the GPLed webserver that outshines Apache in marketshare? Or the GPLed DNS-server that outshines BIND in marketshare? Or the GPLed SSH implementation that dwarves OpenSSH's marketshare? And can you explain why Apache OpenOffice seems to win against LibreOffice? And when did Firefox switch to the GPL? And why are so many projects switching from GCC to LVM? So where in your world did the GPL win? But of course, if you think that Linux is becoming the world's most used OS...
All leading DBMS are much older than C++. PostGres and MySQL are written in C. I doubt hat Oracle and IBM rewrote their DBMS in C++. And of course Derby is written in Java. :-)
For all the people saying "C++ is bad", I'm curious: what would you consider a _good_ programming language?
Have you considered that the fault doesn't lie with C++, but that you might just be a shitty programmer?
No. If there is a bug in the original software, the vendor can fix it, and release the fix to either all its customers, or those who ask, depending on the situation. If customer A wants a feature added that nobody else is interested in, A can implement it in-house and use it. If customer B needs something else, B can do the same. But let's say that the ISV finds out that a whole bunch of customers want a particular feature, they can issue that to all their customers, or put it in their next release and resell them - whichever works better. Bug fixes would be something that the ISV would have to do to keep its installed base happy, but aside from that, other changes that are wanted by only a few customers can be left to them to make. Even if they make it independently, no harm done, since that code won't be re-distributed.
Have you ever spent time with him outside the speech sessions?
He is anything but selfless, he is extremely arrogant and interested in money to be called selfless.
I agree with a lot of what he says, but he is the classic example of "do as I say, not as I do"
I'm positive, don't belive me look at my karma
FFS FSF! rm RMS!
What do you get when you cross a mountain-climber with a mosquito? Nothing! You can't cross a scaler with a vector.
GCC is in version 4.7.2. I have a set of FP heavy code which runs faster in GCC with '-Ofast -march=native' than Clang with all the optimizations turned on. This also seems to be the case for everyone else I know using X86. I have no idea how the performance in ARM is like.
For me, with GCC 4.7.2, the -ftree-vectorize fails miserably compared to GCC 4.3 for code that is already prepared for SSE or NEON vectorization.
ipv6 is my vpn
Still, early versions of GNU libc and cc in the 80s and 90s where crucial. At the time it was not only the open source model which was doubted - it was doubted whether "bunch of unemployed hippies" can write anything as sophisticated and of production quality. FSF/GNU under RMS guidance had managed it.
RMS was hardly an "unemployed hippie" - at least no more than the guys who wrote the BSD. The idea that GCC (as an opensource C compiler) was "novel" is also a nice fairytale - pcc exists since the seventies.
EGCS happened much later, in the end of the 90s. As old saying goes (I have forgotten original wording), person who have contributed something major to development eventually becomes a major impediment to development himself. RMS religious zeal was important instrument to persist through the times of total commercialization of the software. Now, after he made sure that open source exists and thrives, he himself is more of an obstacle to the future of what he had created.
That epic battle between commercial software and open-source only exists on RMS's head and on a handful of follower's heads. Fact is that OSS predates RMS, many commercial software relies on it, GPL itself is an aberration (and the internet as you know it would not exist if base libraries that implement protocols were GPL and not BSD), and most relevant OSS today isn't even GPL - the big exceptions are Linux Kernel (that actually didn't start as a GPL project), and GCC itself.
That epic battle between commercial software and open-source only exists on RMS's head and on a handful of follower's heads. Fact is that OSS predates RMS [...]
Predates him, indeed. But you have probably forgotten that pretty much all *NIX and *BSD clones - actively developed clones - have abandoned it. Throw in here the USL v. BSDi case, and actually there was a period of time when there was no open source - except for the FSF/GNU.
pcc exists since the seventies.
Riiiight. It has, as BSD, fathered piles of *commercial* forks. Yet itself AFAIK it still can not even claim full ANSI C support - least C++ support or support of any arch except x86/x64. So how that rich history "since the seventies" played out?? Stagnation and irrelevance, because every good idea got implemented - in a commercial fork.
The point being before RMS, OSS was equivalent to BSD. What sucked for very obvious reasons. But RMS had showed that it can be improved upon with his community-centric license. And things have improved since then.
All hope abandon ye who enter here.
Is that it simplifies language binding. If you have the core stuff written in C, its fairly easy to bind to it from any language, whereas C++ is much more difficult - if not impossible, as I don't even think there is a standard C++ ABI. Certainly not on Windows. So, if you have your core os stuff written with C bindings, then, any language maker can talk to it, so that, if users want OOP languages, they can use anyone of them, not just C++.
This is my sig.
But you have probably forgotten that pretty much all *NIX and *BSD clones - actively developed clones - have abandoned it.
Its a mixed bag. Even the most used *NIX deskop operating system is still (mostly) opensource. On the other hand, during the 80's, very few UNIX manufacturers actually invested on x86 architecture, and traditionally microcomputer software was distributed in binary form (for several reasons, not only because of so-called "trade secrets).
Throw in here the USL v. BSDi case, and actually there was a period of time when there was no open source - except for the FSF/GNU.
Since - at the time - Linux was also mostly unusable as a real kernel, to compile UNIX GNU stuff you'd already need to have a workstation WITH an operating system, and a compiler (if you need to compile GCC).
Yet itself AFAIK it still can not even claim full ANSI C support - least C++ support or support of any arch except x86/x64.
It was "the facto" standard compiler for BSD operating systems until 1994 - and while is no match for modern GCC, probably one of the reasons it was ditched was because of proper x86 support - Keep in mind that this compiler is older than the x86 ISA. Also, only the _new_ version is x86/x64 only. You may not like it, but it exists and was a viable option - far far away from the RMS speech of "before me there were none". And if you like C++ with GCC, well - do not thank RMS for it.
The point being before RMS, OSS was equivalent to BSD.
And after RMS, they still aren't GPL. Other than the Linux Kernel (not at all related to RMS) and GCC, almost every other major project stays away from both the FSF and the GPL, while the business model RMS despises adapts to its limitations (eg. the Linux kernel is riddled with commercial hooks for 3rd party - closed source - modules and extensions; see eg. kernel namespaces).