Domain: apostate.com
Stories and comments across the archive that link to apostate.com.
Comments · 7
-
Oh my, oh my...
...how things change. for BM's earlier position on free software see The Ethics of Free Software . For a decent eiffel compiler (last time i tried, ISE's sucked hard. funny that, for a company made by the number one authority on software engineering), try SmallEiffel. and don't take me wrong, i think Object-oriented Software Construction is one of the great classics of computer science. but there is a gap between theory and practice.
-
Re:Talk about Situational Irony
You aren't remembering correctly, he went after all open source and free software. His biggest criticism of Stallman and Linus was for not distancing the free software movement from the NRA when Raymond tried to link the two (he held Stallman more responsible since Linus being a Finn might not have known what the NRA was...). He attacked FreeBSD explicitly for poor quality.
What is funny though he lists a whole bunch of reasons vendors turn something open source that pretty much amount to "it isn't worth keeping as commercial product for reason X" where he lists the possible X's. Anyway here is a reminder:
http://www.apostate.com/programming/bm-freesoftwar e.html -
Re:Seriously, why can't we fix this damn thing now
So in your little corner of the universe, which language is everybody supposed to care about above all others? Let me guess. Perl? Java?
In either Perl or Java, or in many other languages (Ada, Eiffel, Modula 3, Python, Sather, Scheme,and Smalltalk, to mention only a few), the language actually cooperates in helping the programmer write robust software. With C, the language doesn't actively impede such an effort, but it doesn't offer any assistance either. C does make a few minor concessions to robustness, but not much in comparison to better languages.C++ does have some good features buried in the morass (mostly features copied from Ada, and sometimes given new names), but it still inherits all of the weaknesses of C.
C isn't a high-level language; rather it is a portable assembler. C++ is a fancier, object-oriented portable assembler.
There's a place for C, in writing code for very small embedded systems (perhaps under 16K of memory). IMNSHO, it is only a mediocre language for writing operating system kernels, and a terrible one for writing applications. Ada, Modula-3, Sather, and similar languages are quite suited for writing kernels, and many more languages are well suited for applications programming.
C++ seems well-suited for not much of anything. I have yet to find any convincing argument that C++ is the best-suited language for any particular purpose. The only thing it seems to have going for it is popularity, and one shouldn't confuse popularity with merit.
And dismissing the whole C++ language with a flick of the pinky
Oh, that it should be that easy!Eric Smith (who writes C and sometimes C++ code for a living, sigh)
Software Reliability: Don't Use the Wrong Tools
Obligatory C++ quotes:
C++ is a fairytale language. Unfortunately, the fairytale is not The Goose that laid the Golden Eggs, but rather The Emperor has no Clothes.
-- Peter van der Linden
C++ is already too large and complicated for our taste.
-- X3J16, (SIGPLAN notices, June 1992)
C++ will do for C what Algol-68 did for Algol.
-- David L. Jones
If you think C++ is not overly complicated, just what is a protected abstract virtual base pure virtual private destructor and when was the last time you needed one?
-- Tom Cargin (C++ Journal, Fall 1990) [see http://www.apostate.com/programming/c-tech.html]
[see Peter van der Linden, _Expert C Programming_, Page 327]It has been discovered that C++ provides a remarkable facility for concealing the trivial details of a program - such as where its bugs are.
-- David Keppel
When your hammer is C++, everything begins to look like a thumb.
-- Steve Haflich (smh@franz.com)
-
Ethics of Free SoftwareA few years ago, Bertrand Meyer penned a fascinating article, "The Ethics of Free Software". (Printed in Software Development magazine (reg req'd), but mirrored many places including here and here.)
Meyer criticizes the self-assumed ethical superiority of ESR, RMS, and others, and in particular notes the "gun evangelism" ESR intertwines with his open-source evangelism.
This thoughtful article should be required reading for all overly-strident geeks.
-
Re:Um... I havn't taken a biology class lately
Nope. He can't do that. He is such a wuss, that he could only have created earth and the universe 6,000 years ago, and He's such a blabbering idiot, that almost all of His ramblings are incoherrent and contradicts itself.
That's exactly what the gnostics said. They were one of the earlier secs of Christianity, actually listening to the words of the person people mistakenly call Jesus (Yeshua ben Yosef), unlike modern "Christians." Gnosticism has roots in other religions and philosophies before it, like any other belief system.
That blabbering idiot truly is the YHVH of the Jews and the "God" of the Christians. The True Creator lies beyond that, and the real salvation is ascending YHVH. The book of Genesis never states that the serpend in the garden was Satan, like many modern Christians like to believe. The Gnostics believe that the serpent was in fact Yeshua (Jesus), freeing Adam and Eve from the prison that the God of the Hebrews put them in, giving them the knowledge to transcend his lame trickery. And lame it was- all they had to do was eat some fruit. Incompetence, indeed. -
You're wrong about HungarianHungarian Notation? Ugh. Spare me the need to be ever so explicit about types. Good programming is all about layers of abstraction. It isn't a "pointer to an object with
..." It's a pointer to a DEVICE, damn it! Learn the paradigms and abstractions before delving into the code.FYI, it's not your fault, but you learned the wrong version of Hungarian Notation, the one deployed in the Windows API by a bunch of morons at Microsoft.
True Hungarian Notation is exactly about layers of abstraction. Hungarian Notation tells you exactly that it's a pointer to a DEVICE and nothing else. Read Charles Simoni's paper about it In fact, if you read the bit about how traditional variable naming mnemonics tend to create ambiguity of reference, you'll see that Hungarian Notation is much more precise about economically distinguishing between different abstractions like files, file pointers, file handles, filenames, etc. (Simoni, BTW, implemented the first WYSIWYG word processor when he was at Xerox PARC)
-
Hungarian NotationIf you really want to study and learn, you should definately soak in Charles Simonyi's "Hungarian Notation" for a few days, a part of his PhD thesis. To get you in the right frame of mind
Dr. Simonyi's idea was to think of good programming to be a test where two programmers are given the same task and then separated from each other. They "pass" if they produce identical code, and they "fail" if they don't. This is a good test because if different programmers can follow rules to produce the same code, their code will be easy to borrow, read, maintain, etc.
Cool, right? Note it's the exact opposite of perl's TMTOWTDI, or "there's more than one way to do it."You can read a version at Microsoft but if you, like me, don't even like going there then there are other copies on the web. There's one at apostate that has some additional addenda that might be interesting (I didn't look too closely) and one here that has some rather mindless criticism sprinkled in. Here's a plain text version.
A variant of this naming convention that most people have heard of was also adopted by Microsoft for use with Windows. The version Windows uses is a steaming pile of shit and is a complete perversion of the original idea, so don't base your opinion of Hungarian on Windows or on criticisms from people who only know that version. If you have the good sense to despise Windows's Hungarian because it is the opposite of abstract, you'll love the real thing. It can be hard to get used to Hungarian, but I don't know anybody who has gotten used to it who was able to stop using it.
BTW, he also worked at Xerox PARC where he more or less "invented" WYSIWYG word processing, before he succumbed to the evil empire and became charless@microsoft.com, father of Microsoft Word.
----