|
|
Subscribe / Log in / New account

GNU sed 4.2.2 released; maintainer resigns

From:  Paolo Bonzini <bonzini-AT-gnu.org>
To:  info-gnu-AT-gnu.org, GNU Smalltalk <help-smalltalk-AT-gnu.org>, "'bug-gnu-utils-AT-gnu.org'" <bug-gnu-utils-AT-gnu.org>
Subject:  GNU sed 4.2.2 released, and a rant from the maintainer
Date:  Sat, 22 Dec 2012 17:10:19 +0100
Message-ID:  <50D5DB6B.1010900@gnu.org>

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

* -u also does unbuffered input, rather than unbuffered output only

* New command `F' to print current input file name

* sed -i, s///w, and the `w' and `W' commands also obey the --binary option
  (and create CR/LF-terminated files if the option is absent)

* --posix fails for scripts (or fragments as passed to the -e option) that
  end in a backslash, as they are not portable.

* New option -z (--null-data) to separate lines by ASCII NUL characters.

* \x26 (and similar escaped sequences) produces a literal & in the
  replacement argument of the s/// command, rather than including the
  matched text.

GNU sed 4.2.2 can be downloaded from the following URLs:

* http://ftp.gnu.org/gnu/sed/sed-4.2.2.tar.gz
* ftp://ftp.gnu.org/gnu/sed/sed-4.2.2.tar.gz
* http://ftp.gnu.org/gnu/sed/sed-4.2.2.tar.bz2
* ftp://ftp.gnu.org/gnu/sed/sed-4.2.2.tar.bz2


I am less pleased to announce that I am resigning from maintenance of
GNU sed (after 8 years) as well as GNU grep (after 3).  I have also
given up commit access to Autoconf, Automake, Libtool, gnulib,
libsigsegv and Bison.

For fellow GNU maintainers and to some external observers, the relation
between this announcement and Nikos Mavrogiannopoulos's note ("gnutls
is moving", http://lwn.net/Articles/529558/) will not be a surprise.
Like Nikos, I do support the ideas behind the FSF as strongly as ever;
and I am grateful to the FSF staff for the support I have had since
I joined the GNU project in 1999.  However, like him I am in major
disagreement with some decisions of the FSF and of Richard Stallman.

This boils down to these three points:

1) To put it somewhat bluntly, the only way for a GNU project to be a
leader in its field is to _ignore_ whatever recommendations come from
the FSF.  I don't think Stallman was involved when the GNU Compiler
Collection switched from C to C++, or when GNOME chose JavaScript as
the extension language for gnome-shell.

Sometimes, having a single person take executive decisions is a good
thing.  It is likely not possible to convince a diverse group such
as the group of GNU maintainers to agree on coding standards for C++,
for example.  However, all Stallman had to offer on the topic was "We
still prefer C to C++, because C++ is so ugly" (sic).  As a result of
this, the GNU coding standards have not seen any update in years and
are entirely obsolete.

This is not limited to the topic of programming languages.  Something
like libabc (http://0pointer.de/blog/projects/libabc.html) ought to have
come from the GNU community, but it didn't.  There is also no mention
of security in the GNU coding standards.  They still say "Unix programs
often have static tables or fixed-size strings, which make for arbitrary
limits; use dynamic allocation instead" but sometimes arbitrary limits
are a necessity when dealing with possibly hostile input.


2) GNU is doing too little for the FSF, and the FSF is doing too
little for GNU.  Due to the huge success that free software had since
the appearance of the GNU manifesto, distributing free software is
absolutely not the exclusive of GNU anymore, and that's a good thing.
On the other hand, the FSF is not doing anything to value the GNU
"brand".  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.  Other projects in the list do not exist at all,
because they would require man-years of development but people who want
to do the work must, again, do it on their own money.

This is not enough to be relevant in a world where free software is
dominating in so many fields.  It is absolutely not enough if you want
to remain relevant in a world where free software is called "open
source" and most people actually do not care about the user's freedoms.


3) 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.

Being part of GNU is not an emblem of technical leadership anymore,
either.  "If it is done poorly in Unix, feel free to replace it completely
with something totally different and better".  Is this still true of
today's GNU?


Barring any large change in policy and momentum from GNU, these three
reasons are bound to be the first step towards the irrelevance of GNU.
And barring any such policy change, I have no reason to be part of
GNU anymore.

I didn't resign commit access for two projects only: GCC and GNU
Smalltalk.  I still have not decided what to do about GNU Smalltalk.
Work and family obligations forced me away from the project that
introduced me to free software back in 1996.  I would like to move
it within the GNOME umbrella, but again that is not possible without
devoting serious development effort to it.  Suggestions are welcome.

For more information about the vicissitudes of gnutls, you could read
the good summary at Linux Weekly News.  Non-subscribers can access it
at http://lwn.net/SubscriberLink/529522/854aed3fb6398b79/ (and are urged
to support LWN, of course!).

Thanks for reading this.

Paolo



to post comments

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 22, 2012 22:15 UTC (Sat) by aigarius (subscriber, #7329) [Link] (76 responses)

I might not be involved in the particular processes, but to me both a decision to switch to C++ in GCC and a decision to use JavaScript in GNOME Shell sound like horrible technical choices. If those are the best examples of GNU "failure", then ... more power to them!

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 22, 2012 23:36 UTC (Sat) by HelloWorld (guest, #56129) [Link] (68 responses)

C++ was the only option for GCC to transition to. C is simply not an option nowadays, it doesn't offer the facilities that people want: generic, type-safe, fast algorithms and data structures, at least some help with resource management and perhaps support for OOP abstractions. Add the requirements that the new language must be compatible enough with C for a transition to be feasible and that GCC must ship a frontend for it in order to stay self-hosting, and C++ is pretty much the only choice.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 23, 2012 0:25 UTC (Sun) by udp (guest, #80701) [Link] (59 responses)

Or rather, C doesn't offer the facilities that _GCC_ wanted. C is perfectly fine for many other projects, so saying it's "simply not an option nowadays" is a bit unwarranted.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 23, 2012 3:11 UTC (Sun) by JoeBuck (subscriber, #2330) [Link] (1 responses)

If it were up to RMS, GCC never would have been permitted to switch to C++, but RMS doesn't get a veto over technical matters with GCC, only with issues that affect core free software principles (and even those issues can be very sticky).

One nice feature of LLVM is that the competition has made it easier to push back against RMS's innate conservatism. His typical reaction to significant proposals has often been something like: this change might be exploitable by the enemies of free software, so let's not do anything but talk about it for a year and a half. Now we can say that if he blocks features that users and developers want and need, everyone will drop GCC and switch to LLVM. He now seems to get this, so it's been easier lately.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 26, 2012 22:27 UTC (Wed) by stevenb (guest, #11536) [Link]

How cynical, that you'd need another, competing project to change RMS's mind. Does he also "get" that by the time it's gotten that far, it may already be too late?

I've contributed to GCC for many years now, but and it's still a complete mystery to me why the EGCS project had to merge back and become GCC. I can't help feeling that EGCS stand-alone, without the "help" of the FSF and RMS, would have been much better off, long term.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 23, 2012 7:54 UTC (Sun) by lu_zero (guest, #72556) [Link] (56 responses)

In all fairness GCC is hindered by the horrible, eye poking GNU coding style.

You can do in C everything you do in C++ and be as terse if not more.

The C++-subset used by Opera, fdk-aac and harfbuzz is a good trade-off for non-system libraries and tools. Yet the system compiler (and incidentally C++ libraries among the rest) should support the most basic language (for bootstrapping) so it could be compiled properly no matter which is the compiler currently available.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 23, 2012 11:31 UTC (Sun) by khim (subscriber, #9252) [Link] (36 responses)

You can do in C everything you do in C++ and be as terse if not more.

This is kinda pointless argument. I mean: of course! Just embed interpreter of your favorite language and stuff the real program in a string.

This being said C++ can be used to improve readability and maintainability. Gold is great example: in cases where you need to support different types similarly yet slightly differently where "real" C program will be forced to use plethora of macro definitions which are not just harder to write and read but which are extremely hard to debug (and yes, both classic ld and gcc suffer from this malady) C++ program just uses templates with partial specialization.

The big question is not whether it's possible to use C++ to write more readable and/or maintainable program but specifically if GCC developers will be able to do that: C++ enthusiasts are notoriously hard to keep in check and this is where coding standards are vital. Standards which RMS quite expressly refuses to develop.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 23, 2012 15:08 UTC (Sun) by lu_zero (guest, #72556) [Link] (35 responses)

See my point regarding C++-subset. You are scare of macros and you feel happier with templates (that just suck differently).

Gold is a great example on why clean slate rewrites can work decently w/out the second system syndrome. Yet gold is a really small subset of ld.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 23, 2012 16:57 UTC (Sun) by khim (subscriber, #9252) [Link] (33 responses)

See my point regarding C++-subset.

Where is said point, pray tell?

In the end you can just take Cfront and extend it enough to prove that everything you can do in C++ you can do in C, too—but this is an illusion: yes, that proves that theoretically some kind of superhuman can do in C everything real human can do in C++, but we don't have superhumans here, only humans—and they can do things in C++ which they can not do in C.

You are scare of macros and you feel happier with templates (that just suck differently).

This has nothing to do with my opinions and everything to do with facts. Templates may be ugly and awkward to use, but they can used by real-world humans to write nice libraries like Eigen. C macros can not be used for this goal: when people try to do that (see ATLAS or FFTW) they usually invent their own macro system to do that.

And that's my point: C macros are not suitable for the task if real humans are involved while C++ templates are suitable.

Gold is a great example on why clean slate rewrites can work decently w/out the second system syndrome. Yet gold is a really small subset of ld.

May be, but it implements everything needed for most used and it's much easier to support because of C++ template system.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 23, 2012 22:33 UTC (Sun) by lu_zero (guest, #72556) [Link] (32 responses)

This long rebuttal seems to explain quite well why most of C++ is wrong.

http://yosefk.com/c++fqa/

That said, I never said C is perfect, just that between broken preprocessor and the demented templating system I prefer the broken preprocessor.

Had I a choice I would use a saner preprocessor or/and better tools, e.g. having proper annotations so macros can be tracked decently during debugging and error reporting.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 23, 2012 22:54 UTC (Sun) by Cyberax (✭ supporter ✭, #52523) [Link] (31 responses)

C++ is broken in the sense that it can't do everything perfectly.

C is broken because you have to do EVERYTHING from scratch. And in 99% of cases you'd do it much worse than in C++.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 24, 2012 9:19 UTC (Mon) by landley (guest, #6789) [Link] (30 responses)

C++ has a fundamental design problem which neither C nor scripting languages share.

C is more or less a portable assembly language, with minimal abstraction between the programmer and what the machine is doing. If you want to know how something is implemented you can dig in and get all the details, even write your own replacement version (uClibc, musl, dietlibc, klibc, newlib...).

Scripting languages like python, ruby, lua, and so on abstract away memory management and type conversions, providing opaque abstractions that you can use without caring how they're implemented. Is a dictionary a hash table or a tree? Is the garbage collector mark and sweep or reference counting? It doesn't matter, it just works. Scripting languages even do away with the source/binary distinction, running the source code directly with no need for makefiles.

C++ provides thick layers of abstraction built on top of manual resource management and static typing, but most of all on top of pointers (instead of references). C++'s abstractions leak implementation details, and C++ advocates blame programmers for "not using the language right". As for the complexity of the build process, templates are literally turing complete at compile time (there's no guarantee a C++ program compilation will ever terminate) and teaching a debugger to name demangle a function pointer to an overloaded member function in a virtual base class is hard enough without bringing cross compiling into it.

This is a fundamental problem: C is a simple language because it has no abstraction, scripting languages are simple by having opaque abstractions that truly hide complexity. C++ provides leaky abstractions that embody enormous complexity but require knowledge of their implementation details down to the hardware to use correctly. Most of the complexity of C programs comes from the program. A significant part of the complexity of C++ programs comes from the language.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 24, 2012 16:38 UTC (Mon) by heijo (guest, #88363) [Link] (2 responses)

The whole point of C++ is to provide the maximum amount of abstraction possible while still allowing to have almost full control of the generated assembly code, memory layout, runtime behavior and performance of your program.

And I think it's absolutely excellent at that, to the point that it is the only language widely used in that niche, while other niches have lots of competing languages.

If you want maximum abstraction and programmer comfort at the cost of not being able to generate arbitrary assembly/memory layout or obtain arbitrary runtime behavior and performance tradeoffs, then C++ is just not the right language to use, and I'd recommend Scala or C# instead.

Note however that in some areas like algorithms, data structures and numerics C++ has FAR better support and abstractions than most (probably all) languages, since for instance in Java and C# you can't do arithmetic with variables with a generic type, and C++ probably has more powerful algorithmic libraries than any other language (STL, Boost, GMP++, LEDA, CGAL, LEMON, etc.).

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 25, 2012 21:53 UTC (Tue) by marcH (subscriber, #57642) [Link] (1 responses)

> The whole point of C++ is to provide the maximum amount of abstraction possible while still allowing to have almost full control of the generated assembly code, memory layout, runtime behavior and performance of your program.

If that's not the definition of "kitchen-sink" then I don't know what is. Strong agreement with the previous poster.

> Note however that in some areas like algorithms, data structures and numerics C++ has FAR better support and abstractions than most (probably all) languages, since for instance in Java and C# you can't do arithmetic with variables with a generic type, and C++ probably has more powerful algorithmic libraries than any other language (STL, Boost, GMP++, LEDA, CGAL, LEMON, etc.).

By the way: C++ was born under "C with classes" name. Now here is an excerpt from an fantastic interview with the man behind the C++ STL:

"Yes. STL is not object oriented. I think that object orientedness is almost as much of a hoax as Artificial Intelligence. I have yet to see an interesting piece of code that comes from these OO people. In a sense, I am unfair to AI [...] I find OOP technically unsound...."

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 26, 2012 3:23 UTC (Wed) by artem (subscriber, #51262) [Link]

In my experience, every time I use a library with OO API I have to resort to downcasting or run-time type checking whenever I need to do something non-trivial - often it's the documented and officially recommended way. That's what the man probably meant by 'technically unsound' - looks like his standards of soundness are way above average industry level.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 24, 2012 19:59 UTC (Mon) by Cyberax (✭ supporter ✭, #52523) [Link] (22 responses)

C++ has a fundamental advantage - it's the only game in the town for complex code with manually managed resources. It's a complex task and most of C++ problems are a result of this.

There's simply nothing that can replace it. Mostly because any C++ replacement would end up being C++ with a different syntax.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 25, 2012 22:13 UTC (Tue) by marcH (subscriber, #57642) [Link] (21 responses)

> C++ has a fundamental advantage - it's the only game in the town for complex code with manually managed resources. It's a complex task and most of C++ problems are a result of this.

> There's simply nothing that can replace it.

The "ideal replacement" is to use a mix of languages and manually manage resources ONLY where required: in the critical path. The right tool for each job. In this respect big C++ programs are premature optimization.

It's unfortunately not always practical. For instance JNI is horrible. Fading memories of ocamlmklib look better. How is Python.h ?

Of course it's not just a technical problem: programmers fluent in several (and very different!) languages are hard to find. Teamwork to the rescue?

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 26, 2012 0:40 UTC (Wed) by Cyberax (✭ supporter ✭, #52523) [Link] (2 responses)

The problem is - that approach fails very fast. Especially with complex software that needs to do something different from processing text files using pipes.

For example, look at Mesa3D or GIMP.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 26, 2012 15:46 UTC (Wed) by marcH (subscriber, #57642) [Link] (1 responses)

Thanks for the examples.

I had a 2 minutes look at a tutorial explaining how to write a GIMP plugin in Python and saw nothing wrong with it. It even looked cool. When and how does this fail?

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 26, 2012 16:37 UTC (Wed) by Cyberax (✭ supporter ✭, #52523) [Link]

Yup. I knew you'd say this. How about writing the bulk of GIMP itself in Python?

We actually have an example of this - it's called 'Blender'. If you look inside it then you'll see quite a lot of horror when their developers simply had to do some cross-layer hacks to achieve tolerable performance. Because even as a thin glue layer Python is not fast enough.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 26, 2012 16:57 UTC (Wed) by marcH (subscriber, #57642) [Link] (17 responses)

> For instance JNI is horrible.

... which is OK since it is seldom required.

Apologies for stating the obvious: plain Java (no JNI) is actually one decent answer to C++. Other and unrelated sins aside, Java's abstraction level sits in a very sweet spot. Just far enough from the hardware to avoid tedious and error-prone and insecure coding. Equipped with enough abstractions to enable programming at large.

I suspect .NET is at the very same point in the spectrum.

Interesting that these two are immensely successful in "enterprise" applications and very little on the desktop.

http://arstechnica.com/features/2012/10/windows-8-and-win...

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 26, 2012 17:16 UTC (Wed) by dlang (guest, #313) [Link] (16 responses)

> Interesting that these two are immensely successful in "enterprise" applications and very little on the desktop.

COBOL was also immensely successful in "enterprise" applications

being successful in that market does not equate to being a great language

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 26, 2012 18:34 UTC (Wed) by marcH (subscriber, #57642) [Link] (14 responses)

Please find a counter-example that is less than 50 years old...

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 26, 2012 19:06 UTC (Wed) by hummassa (subscriber, #307) [Link] (2 responses)

This whole discussion is quite silly, and the C++-bashing people on it are acting the silliest...

There is no perfect language. There are lots of languages and development environments, and to each problem there is a proper solution. And the solution depends on external factors (where I work today there are many corporate apps written in Delphi7; why? because we have a lot of tenured developers that are fluent in it, so Delphi7 it is.)

Of course C++ is not a perfect language. Personally, having more than ten years of experience developing and maintaining sofware on both C++ and Java, I tend to prefer some aspects of C++ (especially the algorithmic libraries, STL, boost and others), and I suffer with Java's latencies, XMLims, and endless repetitions of the same thing when I need its nice multitiered web development tools.

For graphical apps, C++ (with your preferred UI toolkit -- mine is Qt) is excellent, I'm sorry, no need to have a multilanguage team. And, having supervised a multilanguage team, I can say one thing to you: a monolanguage team (of the same size/capable of writing the same app) is cheaper, because of the interface between languages, where things WILL get problematic...

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 27, 2012 0:12 UTC (Thu) by marcH (subscriber, #57642) [Link] (1 responses)

> This whole discussion is quite silly, and the C++-bashing people on it are acting the silliest...

You are really too kind spending time reading it nevertheless and - even better - enlightening it with your post. Thank you so much.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 27, 2012 1:55 UTC (Thu) by hummassa (subscriber, #307) [Link]

You are so welcome!

Yes, I know what sarcasm is and I can even detect it more than 75% of the time!!

Seriously, my "enlightening" comment had one of the following intents:

1. To show off how old I am and that I am here since the dawn or time, or the invention of C++ by Stroustroup, whichever came first (hint: NOT); or

2. To try to break up a language war when there are no two languages really competing.

My point, if in the last post it didn't come across is that there is no competition for C++. There is no competition for Java (ok, maybe clojure :-D). There is no competition for Python, Perl and definitively no competition for my fellow countrymen's Lua.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 26, 2012 19:07 UTC (Wed) by dlang (guest, #313) [Link] (8 responses)

how about the widespread use of Windows?

In Enterprise Programming, the prior fad was C++. Different languages have different strong points, but just because they are used a lot by some group doesn't mean that they are great languages overall.

in a different field, mortgage backed securities

or as your mother probably put it "If all your friends were to jump off a bridge, would you do so as well"

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 27, 2012 0:08 UTC (Thu) by marcH (subscriber, #57642) [Link]

> in a different field, mortgage backed securities

Anything even more distant and off-topic?

> In Enterprise Programming, the prior fad was C++

... and it got replaced for some reason(s) [excellent point]

> "If all your friends were to jump off a bridge, would you do so as well"

This can explain to some extend why C++ got replaced by _only a few_ competitors but it's not enough to explain why C++ lost the throne. You don't get fired for buying the same as everyone else but you do get fired for wasting time and money throwing away for no clear benefit older technology that do the job. Many CEOs and CFOs could not care less about technology - even less technology fads.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 28, 2012 12:34 UTC (Fri) by khim (subscriber, #9252) [Link] (6 responses)

how about the widespread use of Windows?

Thanks for the reminder.

In Enterprise Programming, the prior fad was C++.

Absolutely not. The prior fad was called Visual Basic (by some estimates half of the “programmers” in circa 2000 were Visual Basic programmers. And before that it was xBase (dBase, Clipper, etc).

The fact that enterprise programming graduated to some [relatively] modern and sane language is kind of astonishing, but it just shows that “enterprise programmers” are improving.

“Enterprise programming” is not about good code. It's as in the following dialogue:

Chode: Ok, they might have been slightly used.
Gus: And let me guess… cheap, cheap, cheap?!
Chode: No, they were even cheaper than that.

Chode talks about saving big on the “dutritium rods” and “enterprise programming” is about saving big on the software engineers but the principle stays: it's about something barely functioning but “even cheaper then “cheap, cheap, cheap””.

Enterprise programming do advance over time: remember that it started with “ADD b TO c GIVING a” because “a = b + c” was considered too cumbersome for these “cheap, cheap, cheap” programmers. If you'll view evolution of “enterprise programming” from this POV then Java is indeed the pinnacle of said evolution: you can finally easily construct anything you want in the “enterprise language” (you don't need these expensive C++ programmers to create “components” now! yay!) and language even tries to detect and report most problems—what's not to like?

As usual, the fact that some language is widely used by “enterprise programmers” probably means that is's too inefficient to use for the projects where people actually know what they are doing, but, gasp, it's finally language which you can actually use to create [somewhat] efficient programs! Finally, after all these years!

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 28, 2012 21:22 UTC (Fri) by Cyberax (✭ supporter ✭, #52523) [Link] (1 responses)

Well, Java is exactly "ADD 1 TO COBOL GIVING COBOL". The same in Java is: java.setValue(java.getValue()+1).

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 29, 2012 1:15 UTC (Sat) by hummassa (subscriber, #307) [Link]

C++

That's why I don't understand how can people can find it ugly. :-D

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 29, 2012 1:39 UTC (Sat) by dlang (guest, #313) [Link] (2 responses)

This is a good writeup.

Along similar lines, many of these same managers see DevOps as a way to eliminate those expensive *nix admins (I've heard many people use this as an excuse for using Windows, even in non-profit orgs with *nix people volunteering)

and many such managers are embracing the "cloud" because it again lets them eliminate expensive admins, and in addition the expensive facilities people

One world

Posted Dec 29, 2012 11:51 UTC (Sat) by man_ls (guest, #15091) [Link] (1 responses)

I cannot possibly see how replacing the expensive sysadmin with a very expensive developer is a good move. Keep in mind that your average coding monkey will not know a thing about DevOps.

I see value in having a homogeneous set of workers which can both work on development and administration; in fact that is how I prefer to work. Having two worlds where one side hurls undeployable code to the poor sysadmin side creates unnecessary barriers; while deploying your own code is good, and also makes sure that deployment is simple enough.

Same goes for cloud deployments. Commercial cloud services are really expensive compared with buying and maintaining your own servers, even when you factor sysadmin salaries. What they give is flexibility, and the ability to play around without waiting for decades to get hardware.

Sysadmin people, it's time to sharpen your development skills. And viceversa. We are one world once again.

One world

Posted Dec 29, 2012 17:33 UTC (Sat) by dlang (guest, #313) [Link]

> I cannot possibly see how replacing the expensive sysadmin with a very expensive developer is a good move. Keep in mind that your average coding monkey will not know a thing about DevOps.

Ahh, you just don't "get it", developers actually produce something, as a result, their expense can be justified.

But Sysadmins are just overhead, eliminating pure overhead is good, and DevOps promises to make things easier and faster by letting the developers do whatever they want. (this is not what DevOps is supposed to be, but this is what managers hear it to be)

> Having two worlds where one side hurls undeployable code to the poor sysadmin side creates unnecessary barriers

I agree with this, but I don't agree that every developer and sysadmin should be equally skilled in both specialities. They need to understand enough of the other's tasks to respect them, and to appriciate the expertise that they bring to the table.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 29, 2012 11:45 UTC (Sat) by marcH (subscriber, #57642) [Link]

> you can finally easily construct anything you want in the “enterprise language” (you don't need these expensive C++ programmers to create “components” now! yay!) and language even tries to detect and report most problems—what's not to like?

Yes. Massively reducing the amount of rope the programming masses used to be given to hang themselves with: definitely a major progress for the human kind. Really don't care if this requires double or triple more hardware to run since that's much cheaper than education.

As the experienced C++ developer you seem to present yourself as you should be happy because I think a rising tide lift all boats - even the C++ boat. I mean, even while C++ (or any other expert language) is losing market *share* there will still be increased demand for them if the overall market is growing fast.

[OT] my language is better than yours

Posted Dec 27, 2012 8:58 UTC (Thu) by oldtomas (guest, #72579) [Link] (1 responses)

> Please find a counter-example that is less than 50 years old...

Microsoft Visual Basic for Applications?

(Sorry. I was to weak to stay out of this language flamefest. I tried, I tried).

[OT] my language is better than yours

Posted Dec 27, 2012 12:43 UTC (Thu) by marcH (subscriber, #57642) [Link]

> Microsoft Visual Basic for Applications?

A more relevant example indeed.

Not a great language but infinitely better (and especially: safer) than C++ in the hands of Joe the 8-to-5 enterprise software developer.

Both recently displaced by Java and .NET languages as explained in this brilliant, on-topic and highly recommended article:
http://arstechnica.com/features/2012/10/windows-8-and-win...

> (Sorry. I was to weak to stay out of this language flamefest. I tried, I tried).

It looks like any complex computing technology is bound to make computer "scientists" emotional and irrational. Maybe because of the enormous brain investment they require?

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 27, 2012 12:22 UTC (Thu) by vonbrand (subscriber, #4458) [Link]

COBOL is a great language for its intended purpose (frobbing sequential files to generate voluminous, complex printouts). The world changed around it, there is little use for that in today's environment.

(Yes, I did get turned off by it at first sight too, but you have to look into the more advanced language features like the REPORT WRITER and such to really "get it".)

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 24, 2012 20:09 UTC (Mon) by khim (subscriber, #9252) [Link] (1 responses)

Scripting languages like python, ruby, lua, and so on abstract away memory management and type conversions, providing opaque abstractions that you can use without caring how they're implemented.

This is only true if you don't care about the ability to actually use said program or when all the inputs are non-hostile. That's why scripting languages are good for software development and awful for anything else.

Is a dictionary a hash table or a tree?

…say you to yourself and happily use them everywhere. Ten days after release your service is killed by a well-crafted attack and you suddenly need to urgently redo everything while your company is rapidly losing money.

Is the garbage collector mark and sweep or reference counting?

You may not care till your circular structures fill all the memory (if that's reference counting GC and you “don't know and don't care about that”) or, alternatively, till all your backends are tied by the uncollected “Connection” objects and your site no longer accessible.

It doesn't matter, it just works.

…till it does not. Sorry, but all the scripting languages are unbelievably leaky.

Most of the complexity of C programs comes from the program. A significant part of the complexity of C++ programs comes from the language.

This is true for most higher-level languages, not just for C++. And C++ is, in fact, one of the best ones. In my own practice it's much easier to tame C++ compiler rather then JVM's histrionics (and let's not even try to talk about Python). With C++ quite often you find out that code which should compile for some reason refuses do to so, or sometimes it does something strange, but rarely code does what you need in tests but falls apart under real load while “great” scripting languages tend to behave this way regularly.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 27, 2012 23:09 UTC (Thu) by marcH (subscriber, #57642) [Link]

> > Is a dictionary hash table or a tree?

> …say you to yourself and happily use them everywhere. Ten days after release your service is killed by a well-crafted attack [link to Python hash collision security issue] and you suddenly need to urgently redo everything [huh, why "everything"?!]

Are you seriously saying that you'd rather deal with the gazillion of security and obfuscation issues that every junior/average engineer in your team routinely leaves in your product (since most of them don't understand C++), as opposed to simply patching a successful, massively used, open source and well maintained external component?

At least for this example you must have been kidding.

landley, stop hitting the Turing complete strawman

Posted Dec 27, 2012 2:04 UTC (Thu) by jwakely (subscriber, #60262) [Link] (1 responses)

> As for the complexity of the build process, templates are literally turing complete at compile time (there's no guarantee a C++ program compilation will ever terminate)

Oh noes, how will I ever stop the compiler from consuming all the computing resources in the universe and turning the Earth to grey goo?

Oh wait, Ctrl-C. Or it will just hit an instantiation limit, or memory limit.

Has this ever been a problem for anyone? If not why do you keep making this stupid argument? (http://lwn.net/Articles/504751/ for the last time I know of.)

> and teaching a debugger to name demangle a function pointer to an overloaded member function in a virtual base class is hard enough without bringing cross compiling into it.

How often do you need to do that and can't use existing demangler code?

landley, stop hitting the Turing complete strawman

Posted Dec 27, 2012 8:50 UTC (Thu) by khim (subscriber, #9252) [Link]

Oh wait, Ctrl-C. Or it will just hit an instantiation limit, or memory limit.

Has this ever been a problem for anyone? If not why do you keep making this stupid argument? (http://lwn.net/Articles/504751/ for the last time I know of.)

The fact that we can not classify all the programs is not a big deal, the fact that often C++ programs are very slow to compile is.

Not only C++ templates are Turing complete language, they are extremely inefficient Turing complete language.

Still, as Cyberax rightfully pointed out: C++ is the only game in town for what it does, so we are stuck with it.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 28, 2012 0:09 UTC (Fri) by HelloWorld (guest, #56129) [Link]

> See my point regarding C++-subset. You are scare of macros and you feel happier with templates (that just suck differently).
In what universe? The preprocessor has all the drawbacks of templates (poor error messages, potential for code bloat and misuse) and a lot more.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 23, 2012 13:25 UTC (Sun) by HelloWorld (guest, #56129) [Link] (18 responses)

> You can do in C everything you do in C++ and be as terse if not more.
No you can't, please stop spreading this kind of nonsense.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 23, 2012 15:02 UTC (Sun) by lu_zero (guest, #72556) [Link] (17 responses)

Absolutely you do

We can continue saying "yes you can, no you cannot" till you try to provide an example.

Between C (and its dreadful macro system bound to cause aberrations) and C++ (and its horrible template system bound to spawn horribly verbose code as hard to track, if weren't for clang error reporting mitigating it) you have a
richer but brain damaged standard library and a plethora of features you should not use (or at least not all of them together).

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 23, 2012 23:22 UTC (Sun) by robert_s (subscriber, #42402) [Link] (1 responses)

"code as hard to track"

What do you mean "hard to track"? At least templated code is fully interactive-debuggable - good luck trying to use debugging tools on code than heavily uses macros.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 26, 2012 12:03 UTC (Wed) by lu_zero (guest, #72556) [Link]

gcc annotates macro and let you track them in gdb up to a point. That's something I'd love to see improved surely.

clang let you delve in template nests a lot better than gcc and that makes it a really useful tool on the other hand

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 23, 2012 23:27 UTC (Sun) by daglwn (guest, #65432) [Link] (14 responses)

You cannot do RAII in C. End of story.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 23, 2012 23:36 UTC (Sun) by walters (subscriber, #7396) [Link] (3 responses)

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 24, 2012 8:15 UTC (Mon) by khim (subscriber, #9252) [Link] (1 responses)

If you have GCC then you have C++, too. The lu_zero's fit of hysteria is related to the fact that you may have only some other, quite limited and deficient compiler instead. Which probably means that not only GCC extensions are not permittable but that ANSI C is "too new" and K&R C should be supported forever.

I think that since it's exclusively his problem (most other guys do a bootstrap using some other platform with full-blown GCC nowadays not a vendor-provided compiler) he can support any compiler he wants in said state, but it's not a good enough reason to make life for everyone else miserable.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 26, 2012 12:06 UTC (Wed) by lu_zero (guest, #72556) [Link]

Would be _nice_ to stick to the standards and have standards improve.

The great thing about gcc is/was the fact you can get a good compiler to replace the shoddy one you had or that is just there.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 26, 2012 20:02 UTC (Wed) by daglwn (guest, #65432) [Link]

1. That is not C.

2. That does not cover all cases.

One must have proper exception handling as well as destructor-like routines.

talloc as an RAII alternatives in C

Posted Dec 24, 2012 8:35 UTC (Mon) by scottt (guest, #5028) [Link] (1 responses)

> You cannot do RAII in C. End of story.
Apache and Samba manage resource handles through apr_pool_t and talloc and they fair pretty well despite being written in C.

talloc as an RAII alternatives in C

Posted Dec 24, 2012 19:56 UTC (Mon) by Cyberax (✭ supporter ✭, #52523) [Link]

Nope. They don't have RAII, they have refcounted pools. It's about the best you can do in plain C.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 24, 2012 22:31 UTC (Mon) by paulj (subscriber, #341) [Link] (7 responses)

You can do RAII in C, you just need explicit scaffolding to setup the context that will destroy the objects. E.g. you can lift the destruction out of the code doing the work, by using a wrapping function that holds the state and cleans up after the "work" function - explicitly doing something equivalent to what a C++ compiler would do.

We've been in a thread on this before, which was also interesting: http://lwn.net/Articles/424527/

If you define RAII as requiring destruction to be tied into the scope in the language, then yes C doesn't have it. If you mean something more abstract, then you can implement it in C just fine. You have to implement it yourself then, of course, rather than let the C++ compiler do the work, but it's still possible, AFAICT. Surely?

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 25, 2012 0:18 UTC (Tue) by Cyberax (✭ supporter ✭, #52523) [Link] (5 responses)

Well, yeah. You can do pretty much anything in C (except non-sjlj exceptions which require true compiler support), but you have to do it manually.

And that's the point - doing things manually is error-prone and code-bloating.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 25, 2012 12:47 UTC (Tue) by paulj (subscriber, #341) [Link] (4 responses)

Having to create your own infrastructure - doing it manually - doesn't of course mean you have to do it manually from scratch at every point. You can re-use your infrastructure of course. It will take a little more typing than "}" though, sure. That needn't mean it's more error-prone though, imho.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 25, 2012 21:35 UTC (Tue) by Cyberax (✭ supporter ✭, #52523) [Link] (3 responses)

Everything that is not automatic is error-prone. Especially in rarely-tested code paths.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 26, 2012 20:17 UTC (Wed) by lu_zero (guest, #72556) [Link] (2 responses)

Everything is error prone then.

One of the issues I do have with C++ is that you must use a really strict subset (defeating the whole purpose of having such large standard library) in order to be reasonably sure your code will build and behave as you expect across different compiler/libstdc++ implementations.

And that because C++ is so complex and hard to implement that you have lots of interesting pitfalls.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 26, 2012 20:25 UTC (Wed) by Cyberax (✭ supporter ✭, #52523) [Link]

Not everything, only the stuff that humans do directly.

> One of the issues I do have with C++ is that you must use a really strict subset
The only reason is to avoid incomprehensibly complex code.

> (defeating the whole purpose of having such large standard library) in order to be reasonably sure your code will build and behave as you expect across different compiler/libstdc++ implementations.
That hasn't been true for ages. All modern STL implementations are reasonably compatible - you won't find problems with standard containers and algorithms.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 27, 2012 16:53 UTC (Thu) by bronson (subscriber, #4806) [Link]

> ... you must use a really strict subset in order to be reasonably sure your code will build and behave as you expect across different compiler/libstdc++ implementations.

To be fair, this is true of libc too. "Always use glibc" dodges the problem (and not very successfully since glibc has so many obscure, dark corners).

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 26, 2012 20:03 UTC (Wed) by daglwn (guest, #65432) [Link]

> If you define RAII as requiring destruction to be tied into the scope in
> the language, then yes C doesn't have it.

Well of course that's what I mean! That is the whole point.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 23, 2012 7:49 UTC (Sun) by lu_zero (guest, #72556) [Link] (7 responses)

The switch to C++ will make me move to clang since then GCC would not have any practical advantage in bootstrapping new systems.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 23, 2012 15:23 UTC (Sun) by stevenb (guest, #11536) [Link] (3 responses)

Right, because bootstrapping is something most of us do every day. Twice.

Oh, wait...

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 23, 2012 22:35 UTC (Sun) by lu_zero (guest, #72556) [Link] (2 responses)

Some do that as part of their job...

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 24, 2012 18:05 UTC (Mon) by heijo (guest, #88363) [Link] (1 responses)

Ever heard of cross compilation?

This idea that you need to support bad compiler is bullshit, just use your x86-64 g++ to compile an x86-64 to $bootstrap g++, then use the latter to compile a native $bootstrap g++.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 26, 2012 10:49 UTC (Wed) by CopperWing (guest, #82856) [Link]

The GCC switch to C++ changes completely nothing in terms of system bootstrap. Zero lines of code must be changed anywhere because of that.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 26, 2012 10:40 UTC (Wed) by CopperWing (guest, #82856) [Link] (2 responses)

So you leave GCC because of its switch to C++, to embrace llvm and clang which are completely written in C++ as well? Does not make sense at all.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 26, 2012 12:11 UTC (Wed) by lu_zero (guest, #72556) [Link] (1 responses)

You use the tool that works better, bootstrapping a system clang isn't exactly impossible (see FreeBSD) yet has some pitfalls. Bootstrapping gcc as system compiler and libstdc++ is/was more straightforward.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 26, 2012 13:40 UTC (Wed) by CopperWing (guest, #82856) [Link]

I was not complaining about your choice, just found quite contradictory the reason you gave for it.

I build quite often the arm-linux-gnueabi GCC cross-compiler and a Linux root file system for my work, and after the switch to C++ I didn't find any issue in doing that. It's neither more nor less straightforward than before, just the same.

Conversely if you plan to rebuild the Linux kernel with llvm/clang, be prepared to get some headaches. Last time I checked, some components still needed to be recompiled with GCC and the resulting kernel was not at all stable.

So, for real work on Linux, GCC is still the only choice. Until someone volunteers to improve the situation (FreeBSD with clang didn't came exactly for free).

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 23, 2012 4:32 UTC (Sun) by ovitters (guest, #27950) [Link]

Suggest to read the email again. He listed other reasons.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 24, 2012 3:53 UTC (Mon) by dberlin (subscriber, #24694) [Link] (4 responses)

Do you contribute to GCC?
The reality is that the inability to sanely represent concepts in C cleanly was a huge maintenance burden.

Yes, you can make OOP like stuff in C.
Yes, you can theoretically do anything you can do in C++.

But you only have to look at GCC to see what happens you do your best to simulate C++ concepts in C.

Yes, it's possible. Heck, I spent almost a year creating a sane structure hierarchy for the tree structures using the first member rule.

Compared to real classes and overloading, it's a joke.

But hey, rather than argue this point with me, you should just go and prove everyone wrong. Make GCC sane to maintain. Show us all how it's done. If you do that, i'll happily say you were right. Because a lot of smart people thought very hard about how to make GCC easier to maintain, and they are the ones that moved it to C++.
So if you are going to say they were wrong, please, prove it.

FWIW, so far they have been right.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 24, 2012 4:20 UTC (Mon) by cmccabe (guest, #60281) [Link] (3 responses)

I haven't contributed to gcc, except by bug reports.

However, I have worked with many C and C++ projects. In my experience, you CAN represent objects very cleanly in C-- the kernel is a good example. C++ has its advantages for certain applications, but it's far from a cure-all. It's kind of funny that on "Linux weekly news" people haven't read the opinions of the creator of Linux about C++.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 24, 2012 7:46 UTC (Mon) by halla (subscriber, #14185) [Link]

I have read those opinions, and dismissed them as more of the bigoted nonsense that Linus is apt to spout when he feels like flaming off a bit.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 24, 2012 15:05 UTC (Mon) by dberlin (subscriber, #24694) [Link]

Of course i've read it, but what does that have to do with anything.
The kernel is not exactly the bastion of clean maintainable code, despite Linus's opinions.

Nobody complaining about C++ has yet come onto the GCC mailing list and explained, in clear concrete terms with examples, how they could make GCC more maintainable using C than it would be using C++.
Instead they sit on LWN and kibitz from afar.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 25, 2012 22:41 UTC (Tue) by HelloWorld (guest, #56129) [Link]

> However, I have worked with many C and C++ projects. In my experience, you CAN represent objects very cleanly in C-- the kernel is a good example.
I disagree, the typical implementation of objects with vtables etc. is ugly in C, and manual implementations of advanced concepts like multiple and virtual inheritance are hard to use and maintain.
C++ also has a lot more to offer than OOP (esp. templates).

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 26, 2012 1:14 UTC (Wed) by ramon_garcia (guest, #67060) [Link]

Freedom and responsability is the right way to manage projects.

GNU should let maintainers be free to manage their projects, with very limited constraints. And judge the results, only the results. This is why GNU is killing its developers.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 22, 2012 23:43 UTC (Sat) by bjd (guest, #82059) [Link] (4 responses)

Boy do I hate whining like this.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 23, 2012 0:01 UTC (Sun) by stevenb (guest, #11536) [Link]

I know Paolo. He does not whine. If you disagree with him, perhaps you can share your reasoned opinion?

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 23, 2012 0:40 UTC (Sun) by HelloWorld (guest, #56129) [Link]

So we have this guy who's been maintaining various pieces of software for years that many of us use every day. And instead of thanking him for his hard work and wishing him the best, you complain about him making use of his freedom of expression (free software is about freedom, remember?)? Boy, do I hate jerks like you.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 23, 2012 23:00 UTC (Sun) by Company (guest, #57006) [Link]

Boy do I hate whining like these comments.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 24, 2012 3:47 UTC (Mon) by dberlin (subscriber, #24694) [Link]

I have had my disagreements with plenty of folks, including Paolo, but he is *definitely* not a whiner.
In fact, if you are a GNU person, you should be very worried that folks like Paolo have decided to resign/not work on projects anymore.
*very* worried.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 23, 2012 9:33 UTC (Sun) by oldtomas (guest, #72579) [Link] (5 responses)

Thanks, Paolo, for all those things (AFAIR it's not only sed, grep and Smalltalk, and C and Autofoo. Anyone remember GNU Lightning?).

Sad to see your frustration: I do understand where it comes from, and you hit the nail on the head with your insights; GNU would be well-advised to read thoroughly what you wrote.

OTOH, I'm torn on many things: in many a case, what at first seemed to me RMS stubborness turned out to be vision.

In any case, I hope you don't go too far away :-)

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 23, 2012 13:45 UTC (Sun) by pbonzini (subscriber, #60935) [Link] (4 responses)

lightning was definitely not one of my top contributions to free software...

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 24, 2012 13:40 UTC (Mon) by oldtomas (guest, #72579) [Link] (2 responses)

> lightning was definitely not one of my top contributions to free software...

You never know. At the time it was a cool idea and inspiring to some. Of course, these days everyone and their dog are doing JIT, but at that time it was either in arcane Lisp world or somewhere buried within Sun. Lightning was there for all to read.

So you'll have to accept thanks from me, anyway :-)

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 24, 2012 20:05 UTC (Mon) by pbonzini (subscriber, #60935) [Link] (1 responses)

A lot of the ideas for lightning came from ccg (Ian Piumarta) and vcode (Fraser, IIRC). Don't forget Self and Smalltalk JITs!

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 26, 2012 9:12 UTC (Wed) by oldtomas (guest, #72579) [Link]

> ccg (Ian Piumarta) and vcode (Fraser, IIRC)

Thanks for the pointers!

> Don't forget Self and Smalltalk JITs!

I knew (well, at my very humble level, anyway) about those. But were they in the open back then?

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 28, 2012 1:41 UTC (Fri) by HelloWorld (guest, #56129) [Link]

What's wrong with it?

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 24, 2012 11:26 UTC (Mon) by mlopezibanez (guest, #66088) [Link]

Thanks Paolo for all your hard work. Sad day for GNU/Linux and free software in general. This is a major loss of a top-notch contributor to essential projects. I do hope this is a prelude to a rebirth of the GNU project.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 24, 2012 13:47 UTC (Mon) by Del- (guest, #72641) [Link] (10 responses)

Paolo, thanks for all your efforts for which I am eternally grateful.

With regards to your choice of loudly leaving the GNU project I am torn. I have read through your three points at least three times by now to try to get to grips with what you try to accomplish. Both personally (a paying fsf member) and professionally (sponsoring coding on GNU projects) I am involved with GNU, so your opinions mean a lot to me.

Please understand that it is hard to see how your outburst separates from that of Ulrich Drepper (glibc) and Peter Penz (dolphin). Glibc has appearantly been more prosperous without Ulrich, so today his outburst seems little more than a stubborn man being generally dissatisfied. The underpinning of Peter's resignation seems surprisingly similar to yours, a dissatisfaction with how fast things evolved, and the lack of fruitful direction and professionality in parts of the project, leading to software in the project out-competed by proprietary offerings. Only problem is, Peter's problems were with KDE, a project that embraces just about every change you complain about missing in GNU, so it seems developers will complain loudly no matter what a project does. BTW, I am also a proud member of KDE's Join the game, so I see both GNU and KDE as critical pieces in the success of free software. In other words, both approaches seems fruitful to me.

Hence, I hope you can shed a bit more light on your frustration. You have shared you frustrations, but you have said very little about what would motivate you to stay, and contribute more. As I am sure you understand, no open project can accomodate the wishes of all developers, so please try to focus on the really critical parts. That is, can you please share what you see as critical changes that needs to be done. To give an idea of what I am hoping to learn, here is a few direct questions:
Would funding for the GNU projects be sufficient for you to stay onboard?
Would a transition from C to C++ accompanied by clear and good coding guidlines be sufficient for you to stay?
Would abolishing copyright transfer (using a GPLv3+ licensing with distributed copyright) for GNU projects be sufficient for you to continue contributing?
Maybe simply being allowed to transfer copyright to FSFE would be enough?
Would RMS stepping down from GNU, only focussing on FSF be enough?
Would Nikos being heard somehow be enough?
Maybe GNU should get another governance model? Is so, what would be acceptable?

You see, I am left with a thousand questions, and this whole ordeal makes me really sad.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 25, 2012 20:45 UTC (Tue) by mlopezibanez (guest, #66088) [Link] (9 responses)

I cannot speak for Paolo, but I can speak of my experience as a GCC contributor. In the case of GCC, the FSF would do to the GCC community a great service if the copyright assignment process was streamlined as to make it less obnoxious. The current procedure is either too much a hassle or even simply impossible to fulfill. Read the horror stories of potential contributors chasing down who can sign the CA form in their organizations in the thread "Why not contribute to GCC" in the archives. I have my own horror story in which after two failed attempts and several mornings wasted, *I* proposed to the FSF the modification to my CA form that got accepted to be signed by my university.

The other glaring example is the issue with generating documentation from code. In GCC, there is a lot of stuff that is auto-generated from description files. It would be ideal to generate the documentation of this stuff from the same description files that generate the code. But the incompatibility between GPL (code) and GFDL (docs) means that it cannot be done. GCC devs have proposed many many potential solutions for this issue, but they have been either shot-down or ignored by RMS.

The remark made by Paolo about the coding standards and C++ is not that every GNU software should be re-written in C++, but that since some GNU software is (like GCC), the coding standards should acknowledge this. However, the strategy of RMS is: "I don't like it, so I am not going to do anything about it and hope you get discouraged and switch back to C." This is the same strategy as for the two issues above: "Not a problem for RMS, so RMS won't do anything about it."

Finally, there are the issues with the lack (or direct obstruction) of technical leadership and the lack of communication, misunderstandings, or failures of diplomacy and tact. There are plenty of examples of this given in the email by Paolo.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 25, 2012 23:35 UTC (Tue) by dd9jn (✭ supporter ✭, #4459) [Link] (2 responses)

I agree with most of your comments. However, to be fair to Mr. Stallman we should notice that he does not enforce the use of a specific programming language. For example on Nov. 9 there was a question on the internal mailing list (g-p-d):
  Just wondering, is is acceptable for
  GNU project to use languages, other then C, C++, Scheme? [...]
Someone commented:
  I think GNU's open for any language include .net things(hmm...)
on which Stallman only replied:
  We ask people not to write programs in C# and .Net.".
Thus I cannot see any banning of C++ - even if he dislikes it. Right, there are other hackers who expressed their concerns about using C++ for gcc, but this was a pure technical-religious thing and not about free software.

BTW, for GnuPG I simply disobey the order to use the FDL.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 26, 2012 22:34 UTC (Wed) by stevenb (guest, #11536) [Link] (1 responses)

In GCC, ignoring the GFDL is hard, because there is so much legacy documentation. Before and just after the switch to GFDL, there was some talk about forking the documentation and keeping it GPL'ed. But the FSF is the copyright holder, and the GCC steering committee seems to be more interested in keeping RMS happy than in confronting him about these problems.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 27, 2012 8:07 UTC (Thu) by dd9jn (✭ supporter ✭, #4459) [Link]

Well, than it is time to stand up and do the best for gcc and free software by doing whatever is needed to keep gcc an attractive software for new developers (e.g. IT students).

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 26, 2012 8:40 UTC (Wed) by rsidd (subscriber, #2582) [Link] (2 responses)

It would be ideal to generate the documentation of this stuff from the same description files that generate the code. But the incompatibility between GPL (code) and GFDL (docs) means that it cannot be done.

GFDL is one of RMS's worst ideas. When Debian regards RMS's pet licence as non-free, you know there's trouble. And surely it should have been obvious that it means trouble for auto-generated documentation.

However, the strategy of RMS [on C++ coding standards] is: "I don't like it, so I am not going to do anything about it and hope you get discouraged and switch back to C."

But GNU's C coding standards are awful! At least the parts on formatting code. The BSD style, as described in FreeBSD's style(9) manpage, is much better. I would think that an insistence on GNU C coding style would encourage developers to use another language and some sensible widely-accepted coding standard.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 28, 2012 1:58 UTC (Fri) by HelloWorld (guest, #56129) [Link]

> I would think that an insistence on GNU C coding style would encourage developers to use another language
If that is the case, then it should be kept the way it is.

GNU sed 4.2.2 released; maintainer resigns

Posted Jan 4, 2013 17:10 UTC (Fri) by nix (subscriber, #2304) [Link]

But GNU's C coding standards are awful! At least the parts on formatting code. The BSD style, as described in FreeBSD's style(9) manpage, is much better.
This is extremely debatable. I happen to prefer the GNU style, for the simple reason that I evolved a personal style very similar to it myself, decades ago, before I ever heard of GNU. I find the BSD style exceedingly cramped and hard to read. Nonetheless, my current job involves 95% BSD indentation and 5% GNU indentation, and, y'know, I adjusted in about half an hour.

I don't know of any actual research, let alone replicated, analyzing the effect of indentation style on error rates and the like. I suspect any such effect is marginal, on the grounds that if a large effect was seen, we wouldn't see such a wide variety of styles and such anger over the subject. Without that, such things remain a matter of taste, and there are no real grounds to say that one code style is better than another.

Of course this does not change the undisputable fact that my preferred style is better than yours and anyone who disagrees is clearly a traitor and should be fed on by demons for the next thousand years and made to use Microsoft Word atop Windows ME as their text editor.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 26, 2012 14:00 UTC (Wed) by Del- (guest, #72641) [Link] (2 responses)

>In the case of GCC, the FSF would do to the GCC community a great service if the copyright assignment process was streamlined as to make it less obnoxious.

Sounds like a valid complaint. This process should be made as steam-lined as possible. Has any non-controversial changes been suggested?

>The other glaring example is the issue with generating documentation from code.

Indeed, the GFDL seems like poor craftsmanship (I am thinking of the incomatible with GPL part of it here). I would prefer CC-BY-SA, but I do see a value in protecting parts of the documentation from exclusion or alteration. Not sure whether the value justifies the drawbacks though. Do you know the current status here, is there any efforts to improve GFDL? Does FSF allow other licenses on documentation?

>The remark made by Paolo about the coding standards and C++ is not that every GNU software should be re-written in C++, but that since some GNU software is (like GCC), the coding standards should acknowledge this.

This should hardly have anything to do with RMS. AFAIK, he is not a C++ programmer, so others will need to step up if coding standards are to be established. Judging by the attitude towards the existing C standards, I am actually a bit in the dark as to whether coding standards are even wanted. Are you sure you want it? If so, are you sure you want FSF to provide it, or that it should be provided as one standard across all GNU projects at all?

With respect to diplomacy, I am not sure what to think. Linus is not exactly known for diplomacy nor tact, but whatever he does, it works.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 27, 2012 9:14 UTC (Thu) by khim (subscriber, #9252) [Link] (1 responses)

Judging by the attitude towards the existing C standards, I am actually a bit in the dark as to whether coding standards are even wanted. Are you sure you want it?

It's not the question of "want", it's the question of "need". C++ is built in "no policy" fashion. In a sense it's not a language, but meta-language. You can use many different styles in it (similarly to C, actually, but much, much worse). Thus it needs a style guide.

It's funny, really: when people discuss various style guides usually a lot of heat exchanged on the question of where to put braces, but these are minor issues. Things like "do we want to support exceptions" are fundamental: RAII is much less powerful without them, but, on the other hand it's basically impossible to create exception-safe code unless it's created this way from the beginning. And these should be discussed and resolved somewhere. It's possible to use C++ with or without exceptions, but these are almost like two different languages. Similarly with auto/declspec: you can write code which is very Ocaml-like (as in: it almost exclusively derives types from types of other objects or functions) or you can write more C-like code (where only some local objects don't have a fixed declared type). This too, is a large difference (although smaller then exceptions).

And, back to braces: yes, these decisions are minor but still there are few different styles for C++-only constructs and it'll be nice to have one "canonical form" for them.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 28, 2012 14:54 UTC (Fri) by Del- (guest, #72641) [Link]

>It's not the question of "want", it's the question of "need".

Yes, but that was not the issue. The issue is whether FSF should provide C++ coding standards across all GNU projects. The alternative is to leave it up to the individual projects to decide. I am not at all sure it is a good idea to have FSF dictate C++ coding standards across GNU projects. I am pretty sure having RMS dictate such standards is a bad idea, so asking for that makes no sense to me.

Generally speaking, the developers of any GNU project can do pretty much as they please with the code if they are able to agree (except if it goes against freedom of course). As such, GNU projects are no different from other open projects. Get the other leading developers on your side, and you will get it your way.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 24, 2012 19:22 UTC (Mon) by drag (guest, #31333) [Link] (24 responses)

Well, nothing lasts for ever.

Maybe the GNU project and FSF are just obsolete. This is not necessarily a bad thing. It just may mean that they have accomplished what they can and it's time to move on.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 25, 2012 11:46 UTC (Tue) by nathanpc (guest, #88512) [Link] (23 responses)

Totally agree with your point. I'm not a GNU/Free Software guy. I use anything, but if possible being open source (or free software) is a good thing. I developed open source (not free) and proprietary software and I'll continue to create open source software whenever possible.

The problem with the FSF and GNU (and Stallman) is that they are just plain obsolete, you can't do everything right if you are an extremist, it's time for them to adapt or die.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 25, 2012 12:24 UTC (Tue) by hummassa (subscriber, #307) [Link] (22 responses)

I respectfully disagree.

In a time when many outfits -- and, most importantly, Apple and Google -- are making many things work without copyleft, fundies like RMS are most important because there is a good and big collection of copylefted software that they curate based on it solely.

Oh, I like llvm and clang. And I like the Android runtime. But I am always worried if their non-copyleft status could be a shot in the foot for the Free Software community. Apple, for instance, closed up the Darwin kernel a long time ago.

And I believe in Free Software and what it represents. Not only Open Source as ESR says -- a methodology for open development, reaping the benefits in its "many eyeballs" and other effects --, but Free Software, preserving fundamental freedoms that proprietary software robs us.

So, I support RMS, not because I believe that he is never wrong, but I believe that he brings balance to the world. When things tend do be closed, TPM'd, DRM'd and Tivo-ized, he is the wheel that squeaks louder, warning that the whole machine needs to get a bit of grease.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 26, 2012 8:49 UTC (Wed) by rsidd (subscriber, #2582) [Link] (21 responses)

Oh, I like llvm and clang. And I like the Android runtime. But I am always worried if their non-copyleft status could be a shot in the foot for the Free Software community. Apple, for instance, closed up the Darwin kernel a long time ago.

No, the Darwin source for the latest OS X is listed here and includes the kernel (xnu, near the bottom). Apple also has a guide on kernel hacking.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 26, 2012 14:10 UTC (Wed) by mjg59 (subscriber, #23239) [Link] (20 responses)

xnu's under a non-free license.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 26, 2012 14:57 UTC (Wed) by rsidd (subscriber, #2582) [Link] (19 responses)

It's APSL 2.0 and BSD - says so right there and the APSL is in the xnu subdirectory. Both are free software licences according to the FSF.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 26, 2012 15:29 UTC (Wed) by mjg59 (subscriber, #23239) [Link] (18 responses)

There's this additional clause that's attached to the files:

* You may not use this file except in
* compliance with the License. The rights granted to you under the License
* may not be used to create, or enable the creation or redistribution of,
* unlawful or unlicensed copies of an Apple operating system, or to
* circumvent, violate, or enable the circumvention or violation of, any
* terms of an Apple operating system software license agreement.

Restriction of use. Non-free.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 27, 2012 5:45 UTC (Thu) by mathstuf (subscriber, #69389) [Link] (1 responses)

Are terms which explicitly state uses which are otherwise illegal a practical restriction of use? If I put a "You may not commit murder with the Software" term in a license, would that make the software non-free? The additional terms here state that uses which are already illegal aren't allowed ("unlawful or unlicensed copies" and "violate…terms of an Apple operating system software license agreement"). It reads more like a reminder than anything else. It doesn't preclude one from making an Apple-compatible system with the code (as I read it), just not an *actual* Apple system in such a way that breaks other laws or licenses *already*.

(IANAL)

GNU sed 4.2.2 released; maintainer resigns

Posted Jan 14, 2013 13:19 UTC (Mon) by oak (guest, #2786) [Link]

Referring to another license and not even stating the version / date of that license seem like a statement of forbidding everything Apple has every forbidden in their OS licences, or that it might forbid in future licenses. I can only assume that it's that vague on purpose.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 27, 2012 5:58 UTC (Thu) by rsidd (subscriber, #2582) [Link] (15 responses)

It is an odd clause certainly, since it doesn't forbid anything that isn't already illegal. There is no restriction here that was not already applicable via the same laws that make the APSL (or GPL) enforceable. I'm not sure why Apple felt the need to include that text, but it is not part of the licence: it seems only to be a legal warning to the end-user. If the "free software" fanatics deem these warnings to be "restrictions of use" that render the software "non-free" then we have a rather large problem. Free software isn't about the right to break existing law.

It's no different from saying you cannot use GPL software to illegally reproduce GFDL documentation. (For example, you cannot combine auto-generated documentation from your GPL program with existing GFDL documentation). It is not a restriction -- it is a legal fact that you cannot do that (at least in countries where the GPL and GFDL are legally valid licenses). And it is possible that users will need to be reminded of that fact. But if I include a warning to that effect in my source files, is that an "additional restriction" that renders my code non-free?

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 27, 2012 11:22 UTC (Thu) by mpr22 (subscriber, #60784) [Link] (2 responses)

If I have a license to Work A, and use Work A to copy Work B, then (by default) I am not breaching the license of Work A, only of Work B. The clause appears on cursory examination to be an attempt to make the violation of Work B's license using Work A a violation of Work A's license. Thus yes, it is an additional restriction. ("For any purpose", remember.)

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 27, 2012 11:43 UTC (Thu) by rsidd (subscriber, #2582) [Link] (1 responses)

But this "clause" is not part of the License for "work A"! The License is a separate text file in the source directory. This "clause" is just a comment embedded directly in the source files. If you use the code to copy work B, you are not breaching the "license" of work A, only "breaching" (whatever that means) this "clause". A more logical view is that this is not a "clause" at all, just a clarification to the user about what is and is not allowed.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 27, 2012 12:02 UTC (Thu) by hummassa (subscriber, #307) [Link]

One simple counter-example: down here in Brazil, the clause in Apple's OSX license "only run this in Apple hardware" is null and void (*). what you call the "clarification" is, effectively, here, one extra clause to the license.

(*) our Software Law grants us the right of modifying legally-acquired software in any way we need, if it is with the objective of making it run in our hardware and/or operating system, for our private use. (Law 9609/98, art. 6, IV)

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 27, 2012 18:15 UTC (Thu) by mjg59 (subscriber, #23239) [Link]

> It is an odd clause certainly, since it doesn't forbid anything that isn't already illegal.

Sure it does. The OS X license agreement contains all kinds of requirements that are unenforceable in a range of jurisdictions. It's not merely a reminder of obligations you already have, it's an explicit limitation of the acts you're permitted to perform with the code.

> it is not part of the licence

It's part of the conditions of use of the source code, so it's part of the license you received the code under even if it's not part of the APSL.

> Free software isn't about the right to break existing law.

So it'd be fine for a license to forbid use by dissidents seeking to overthrow a despotic government? Obviously they're breaking the law anyway and so copyright terms are unlikely to be their biggest concern, but it seems like an unfortunate scenario for licenses to get involved with.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 27, 2012 18:51 UTC (Thu) by rahulsundaram (subscriber, #21946) [Link] (10 responses)

Any additional restrictions are problematic even if you believe they are merely clarifications and innocent. For instance, JSON license (http://www.json.org/license.html) says "The Software shall be used for Good, not Evil". That counts as a use restriction and makes this license non-free because "Good" and "Evil" is not defined within the license.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 27, 2012 19:15 UTC (Thu) by Cyberax (✭ supporter ✭, #52523) [Link] (9 responses)

Does that make it impossible to use JSON to exterminate all humans?

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 27, 2012 19:19 UTC (Thu) by mjg59 (subscriber, #23239) [Link] (7 responses)

Only if you think that it'd be an evil thing to do.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 28, 2012 2:06 UTC (Fri) by HelloWorld (guest, #56129) [Link] (1 responses)

> Only if you think that it'd be an evil thing to do.
That seems a little far-fetched, don't you think?

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 28, 2012 23:58 UTC (Fri) by bronson (subscriber, #4806) [Link]

How about the killing of a substantial and well-defined subset of humans? Genocidal maniacs tend to see their actions as anything but evil.

GNU sed 4.2.2 released; maintainer resigns

Posted Jan 2, 2013 13:48 UTC (Wed) by rfontana (subscriber, #52677) [Link] (4 responses)

Not necessarily. The license could be interpreted such that the standard for "evil" is not the subjective view of the licensee.

GNU sed 4.2.2 released; maintainer resigns

Posted Jan 2, 2013 16:31 UTC (Wed) by mjg59 (subscriber, #23239) [Link] (3 responses)

I thought the licensor was on record as it being up to the licensee's interpretation?

GNU sed 4.2.2 released; maintainer resigns

Posted Jan 2, 2013 16:36 UTC (Wed) by rfontana (subscriber, #52677) [Link] (2 responses)

I wasn't aware of that. If that is so, I withdraw much of my past objection to this license to the extent the licensor you refer to is the licensor in a particular instance.

GNU sed 4.2.2 released; maintainer resigns

Posted Jan 2, 2013 16:59 UTC (Wed) by mjg59 (subscriber, #23239) [Link] (1 responses)

I have recollections of something like "If IBM thinks it may do evil, IBM would need to negotiate a new license".

GNU sed 4.2.2 released; maintainer resigns

Posted Jan 8, 2013 17:04 UTC (Tue) by mgedmin (subscriber, #34497) [Link]

IIRC he said he gave an explicit right for IBM to use the software for evil, after receiving a request from IBM's laywers.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 28, 2012 2:41 UTC (Fri) by cortana (subscriber, #24596) [Link]

You'd have to ask the licensor(s).

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 26, 2012 1:34 UTC (Wed) by ramon_garcia (guest, #67060) [Link] (3 responses)

A criticism to Paolo and GNU TLS former maintainers

I agree with them on their reasons about resigning. But I think that before that they should have discussed these issues with the community in public, and strike our attention.

GNU maintainers should have send an open letter asking for freedom in technical choices. Since GNU receives donations, its policies should be openly discussed.

Well managed organizations are oriented towards results. The president of the university of Princetone does not tell professors how to teach or research. There is no point in telling David Wentzlaf how to teach computer architecture (and he is a wonderful teach, check his free classes in coursera. He knows much better than the president about is area. Then, he must pass evaluations (student surveys, research reports) to ensure the (outstanding) quality of his work, and fire him if he were not performing well.

As former Excel program manager Joel Spolsky explains:

The third drawback is that in a high tech company the individual contributors always have more information than the “leaders,” so they are really in the best position to make decisions. When the boss wanders into an office where two developers have been arguing for two hours about the best way to compress an image, the person with the least information is the boss, so that’s the last person you’d want making a technical decision.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 26, 2012 8:59 UTC (Wed) by rsidd (subscriber, #2582) [Link] (1 responses)

Since GNU receives donations, its policies should be openly discussed.

Several people pointed out above that GNU and the FSF are distinct entities, though headed by the same person. GNU's help the project page mentions cash donations only to the FSF, not to GNU. Presumably some of the FSF money finds its way back to GNU, via funding developers or hardware. But it is time for the two organisations to be properly separated, and RMS should head the FSF only, leaving GNU to active developers.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 26, 2012 14:15 UTC (Wed) by Del- (guest, #72641) [Link]

FSF is quite transparent as to what donations fund:
http://www.fsf.org/appeal/2012
and it is very easy to find.

There is nothing preventing you from funding GNU projects directly in addition. A number of companies do it by allowing employees to contribute. For selected projects, developers offer to do project work, so direct funding of development is also possible. FSF does not facilitate that, but neither does KDE either, for natural reasons.

GNU sed 4.2.2 released; maintainer resigns

Posted Dec 27, 2012 10:11 UTC (Thu) by ortalo (guest, #4654) [Link]

Very nice citation from M$ staff.
I wonder if it is very common for managers in such companies to speak about what they do not do; while we would really like to know about what they are doing themselves.


Copyright © 2012, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds