Free Software Magazine
EmilEifrem writes: "Why hasn't everyone submitted this story one million times? Anyway, the Free Software Magazine (FSM), issue 01 is out there. There's a column by RMS, an article about making a living with free software, a C advocacy article and even an "enterprise" section, amongst other things. Seems like a promising first issue. s/Linux/GNU\/Linux/g."
Be sure to read the article "Objective C is Fun". It is about GNUStep Objective C, and it is a light, well written intro to this language. It is a good read for anyone who knows another object-oriented Language, particularly one from the C family. Heck it seems the C family has quite a few OO extensions: C++, Java, Objective C, Eiffel sort of, and cringe ... MS CFlat (whatever!).
I thought the most interesting article was this piece dealing with the recent changes over at Sourceforge. It probably deserves it's own submission even though we have discussed this before.
I mean, before the old guys in Benjing decide that FSF-China (the magazine's publisher) is guilty of anti-Chinese activities, high treason and general lack of hygien. You see, China is a country where order is far more important than freedom.
/whoever proprietary lock. They are well aware of the strategic value controlling its own software.
They have a good chance, though. Every week some US commerce agency produces a memo criticizing China for its lack of copyright enforcement. I wonder if some time from now we will start to see memos criticizing China for its copyleft enforcement...
The Chinese government has already showed interest in Free Software/Open Source many times in the past, mainly as a way to avoid Microsoft/Oracle/IBM
This can also boost FS/OS development in ways we simply can't imagine. As someone said, when you change some quantity by an order of magnitute or more, you automatically achieve a quality change as a side-effect. Think about China sponsoring a few (a few, in China, are hundreths of thousands) Chinese programmers developing Free Software. Microsoft may well fear this.
So Java became a language in search of home and found in the web browser. But it's never been more than a cult language outside this market.
Mr. Steve Oualline seems to be well in touch with reality and the industry direction, heh.
Advocate all you want but come on... surely you can do better than that.
Agreed. When I've always used the W3C logo for a page conforming to the W3C standards, I have always linked the logo to a URL that will validate my HTML.
Obviously, it looks bad if a page displays the logo and does not validate. I'm not blaming everyone involved with the magazine, but they should really get on the case of the web page designer(s) to either
get the HTML to validate, or to remove the logo.
It is a pet peeve of mine when people use the logos without validating.
"You spoony bard!" -Tellah
And just WHY do you need to care about how your structures are laid out in memory? Or how the calling conventions look like? Isn't the point of a high level language (which C doesn't seem to be) to abstract away such details from the programmer?
You've got a point there if you're talking about device driver development or truly performance critical code (like the rendering core in a 3d game). But WHY would I need to fiddle with such things when I'm writing a web-browser? An IRC client? A CGI script?
I certainly don't want to mess with those implementation-specific details. If those were abstracted properly away, you wouldn't need such clutches like configure.
-- The plural of 'anecdote' is not 'data'.
i find it odd that most instances of "linux" in this article are not preceeded with the "gnu/" prefix. it's in the title, but lacking in most of the article. it's not that i really care about this issue, but i would have thought something published by the fsf would insist on this.
-- john
Ummm...those problems come from mistakes made by the programmer. Like writing printf(mystring) instead of printf("%s", mystring), using the outdated gets instead of fgets, or incorrectly specifying the amount of space a buffer has--such as coding read(fd, buffer, 256) when your buffer has only 200 byes of space.
Those types of mistakes could just as easily be made in other languages...for example doing something like popen("sort " . $HTTP_GET_VARS['filename']."r") would be a big security mistake in PHP.
Maybe all of the people you are referring to aren't advocates, but people who see the need for a language like C. There are many cases where a low level language is needed, and C is much easier to program and much more portable than assembly. Not to mention there are some cases where using C is a more elegant or easier solution.
There is a reason C has been around for a while--it gives the maximum control for the least amount of coding. There are a few things assembly has over C (just try to figure out if that last addtion operation just overflowed). PHP is far better for web programming. I hear Perl is great for text processing. I have also heard Python is easier to program. However, C still has its uses.
C++, on the other hand, I hate, becuase it doesn't give you this fine-grained control (for example, the in-memory layout of a class containing virtual methods is largely implementation-defined, I believe).
I've never understood this version of the "C versus C++" argument. C++ was based on C. A few things were changed, but an attempt was made to maintain backwards compatibility with C when it didn't compromise safety and design.
From "The Design and Evolution of C++", page 120:
"C++ doesn't aim at 100% compatibility with C because that would have compromised the aims of type safety and support for design. However, where these aims are not interfered with incompatibilities are avoided - even at the cost of inelegance."
C++ generally added new features to the language to support design. If you want to write a program as you would in C, you can do that. If you want to access a struct directly based on its memory layout, then go ahead. You still have access to the lower-level constructs that C provides. If a new feature of the language causes problems with this, then simply don't use the feature in that situation. For example, in your vtable situation, you could have the raw data contained in its own struct, and the class with virtual functions could contain that struct.
In short, C++ has extra "stuff". Usually, this "stuff" doesn't interfere with the old "stuff" in C. I don't understand why "anti-C++" C programmers feel that C++ is less powerful than C, when C++ was intended to maintain a high degree of backwards compatibility with C, and still supports most of the features of the language.
If you're going to bother making the case that Linux should be written as GNU/Linux then you should also strive to make sure that when you're talking about Free Software that you don't focus on just Linux.
--
My comments and opinions completely reflect those of anyone and anything I am remotely associated with.