You can expect more of this in the future...

Story: Why are the Microsoft Office file formats so complicated? (And some workarounds)Total Replies: 44
Author Content
phsolide

Feb 24, 2008
4:53 AM EDT
These binary formats do stink, Joel Spolsky's excuses notwithstanding.

They stink for the exact same reasons that Joel gives as excuses - MSFT programmers did the most expedient thing at the time, rather than do any design whatsoever.

And you can expect to see more apologetics as more information about MSFT internals appears. Because they probably all stink. I can recall someone who had gone to a Windows NT fileystem internals class (under NDA) saying that the filesystem interface "looked like a hillbilly family tree" it was so complicated.

Bah, humbug. Save the balloon juice, Joel.
dinotrac

Feb 24, 2008
5:20 AM EDT
You sound like somebody who is relatively late (say, after 1995) to the business.

Those older machines were able to do some pretty impressive -- and responsive -- work in part because the programmers cared enough to make them do it.

Doesn't happen so much anymore. Years of lazy programmers taught by lazy CS programmers to put their own needs first because, after all, you can always buy more hardware and the next generation will always be SOOO much faster.

At some point, you end up with Vista.
Sander_Marechal

Feb 24, 2008
5:39 AM EDT
Quoting:Years of lazy programmers taught by lazy CS programmers to put their own needs first because, after all, you can always buy more hardware and the next generation will always be SOOO much faster.

At some point, you end up with Vista.


No. Linux does the same thing. And quite intentionally. I think that one of the core Unix design principles is to do it right first and do it fast second. I should re-read "The art of Unix programming" for that one.

The difference between Vista and Linux is that Linux folk are smarter engineers and designers. Vista was just crap design from the start. Our interfaces are elegent, though not always the fastest possible. Vista is an accumulation of fifteen years of crud. It has nothing to do with lazy programmers and everything with bad designers and engineers.
dinotrac

Feb 24, 2008
6:11 AM EDT
>The difference between Vista and Linux is that Linux folk are smarter engineers and designers.

No. Many of the engineers and designers for Vista also worked on XP, which performs admirably well on far fewer resources.

The difference between Vista and Linux that matter to this equation are that somebody decided a somewhat clean sheet was needed -- presumably to fully incorporate DRM -- and believed that they were smarter than Fred Brooks --ie, they didn't need to heed the lessons of The Mythical Man Month.

During its release cycle, it was easy to find blogs by Vista and former Vista developers despondant over the management overhead and sign-off process for even the simplest of changes.

Vista was killed by stupid project managers, not by stupid techies.
Bob_Robertson

Feb 24, 2008
6:16 AM EDT
Shall we look for a cause for this lazy/unlazy difference?

In F/OSS, the code is open and visible. It must be well commented and clear. Better even to be concise. Write bad code, and no one will help with it. Or if they do, they will re-write it, point at you, and laugh.

File formats are developed, generally speaking, first. Again, they must be well documented and clear or no one will be able to write code to do them.

And if someone writes a better, clearer, more readable portion of code, or comes up with a better, clearer, more readable file format, people will use it.

Compare the number of pages describing ODF with the number of pages describing OOXML, even though the OOXML "spec" leaves so much out as to make it unusable!

Which format, now that you can see them and read them, are you going to implement?

Why is Microsoft code so bad? Because it is proprietary closed source. Not that all proprietary closed source code is going to be that bad, only that it will tend to be because it _can_.

And people, in case anyone missed it, are lazy. It's called the "disutility of labor", and it's one of the fundamental reasons that socialist paradises aren't.
dinotrac

Feb 24, 2008
9:13 AM EDT
Bob --

I beg to differ, but not a ton.

I have been in proprietary shops where code was written to tight standards, subjected to code reviews,etc -- and still, possibly because of, stunk.

In FOSS land, some really bad code has lived long lives because it works (cough!!! sendmail, anybody?)

Linux itself has not always been a paradigm of the coding arts. Five or six years ago, the quality of Linux code would draw serious snickers from *BSD crowd.

And don't even get me started on my personal favorite, libxml2.
tuxtom

Feb 24, 2008
10:49 AM EDT
Quoting:In FOSS land, some really bad code has lived long lives because it works
I'm not really a kernel guy (as far as the code goes), but I have a good friend and former colleague that is a 30 year kernel veteran. He says the Linux kernel is an absolute mess of disorganized, crap code compared to the various other unices. I have no reason to doubt his observation.

Being a developer myself I go back and look at what I've written and cringe, even though it has been in production for years without hiccups. Still, I feel sorry for whoever has to maintain it or extend it's functionality. Unfortunately, in the real world of constrained time and resources we don't have the luxury of creating the most aesthetic and efficient architectures.
herzeleid

Feb 24, 2008
10:58 AM EDT
@ tuxtom -

> I'm not really a kernel guy (as far as the code goes), but I have a good friend and former colleague that is a 30 year kernel veteran. He says the Linux kernel is an absolute mess of disorganized, crap code compared to the various other unices. I have no reason to doubt his observation.

Sorry, but he sounds fishy to me. I suspect he's one of these BSD ivory tower types, with an axe to grind about linux, and who's never actually seen any commercial unix kernel code.

I've seen commercial code before and the linux kernel is clean and elegant in comparison. Perhaps your friend was looking at some kernel code from 1992?

jdixon

Feb 24, 2008
11:24 AM EDT
> I have a good friend and former colleague that is a 30 year kernel veteran. He says the Linux kernel is an absolute mess of disorganized, crap code compared to the various other unices.

>> I've seen commercial code before and the linux kernel is clean and elegant in comparison.

There's no real reason both can't be true. The Linux kernel is a large, complex, and continually changing body of work. At various times you're going to find chunks of it which are lousy. However, given the rate of change and the performance characteristics, I don't think that's going to be true of the majority of it. If it was as bad as indicated, it wouldn't work as well as it does nor would the current rate of change be possible.
tuxtom

Feb 24, 2008
11:33 AM EDT
@herzeleid

BS. He has seen it all. He's not fishy. He has been doing it since 1978. He is not anti-Linux by any stretch, they are merely observations he made to in the course of our discussions. I'm not going to argue over his credentials; I have worked with him and seen his resume and you haven't (I've also been to his 2.5 million dollar house overlooking the Pacific Ocean that's paid for outright from his years in the Valley). He's a rare breed.

Quoting:I suspect he's one of these BSD ivory tower types, with an axe to grind about linux...
As opposed to one of those Linux ivory tower types with an axe to grind about BSD?

----- LIke I said, I am not a kernel guy. Many in the open source community regard Solaris as a superior and more elegant kernel than Linux. I'm not really interested, though. I'm quite happy with Linux regardless of its code architecture. That's the beauty of it...it just works and I don't have to worry about it. There are plenty of people who know more about it than me taking care of it.
herzeleid

Feb 24, 2008
11:59 AM EDT
@tuxtom -

> BS. He has seen it all. He's not fishy. He has been doing it since 1978. He is not anti-Linux by any stretch, they are merely observations he made to in the course of our discussions.

So, on the word of this unnamed friend, we're to believe that the years of effort by teams of kernel engineers from IBM, Oracle, Fujitsu, Novell and other tech companies working on the linux kernel have produced "disorganized crap"? Sorry, I don't buy it. Now, if he could point to one or two examples, he might have a bit of credibility, at least enough to warrant some consideration of his views.

> As opposed to one of those Linux ivory tower types with an axe to grind about BSD? I've never met such a person - care to be more specific?
Bob_Robertson

Feb 24, 2008
12:05 PM EDT
> Linux itself has not always been a paradigm of the coding arts.

Certainly. I've heard about such comments as "this is ugly, but it works".

Maybe the difference is that the open code gets better with time, but over time with closed one gets Vista.
dinotrac

Feb 24, 2008
12:20 PM EDT
Bob -

You are too harsh on closed-source code.

Well-managed project done by good people for the right reasons tend to product good code, whether the source is open or not.

Vista does not fall under that category,. and the warnings were out there long before it got released.
hkwint

Feb 24, 2008
1:22 PM EDT
Quoting:I think that one of the core Unix design principles is to do it right first and do it fast second.


I'm sorry (probably as the youngest one over here) to start about history, but quite the opposite is true AFAIR*. Although it is decades ago, this example is still relevant in this discussion. Unix design principles was 'leave error checking away. Don't do it right, then you will never have a product that ships. If it fails, reboot it'. Sounds too familiar these days, but really, I'm not kidding.

What you are referring to were MULTICS design principles. But because after several years and delays MULTICS still wasn't ready (they did have several thousands of pages describing the OS though, but no actual finished working product), one company took its developers away from the MULTICS project, and that company no longer wanted to be part of it. Two blokes at that company were really sorry for the 'lost' efforts and came up with 'UNICS' using the ideas of 'MULTICS'. However, since MULTICS proved it was a bad idea to do it right from the first moment on, they did it quick and dirty. Because their system shipped and MULTICS didn't, UNICS had an advantage over MULTICS even though it sucked. The conclusion is people prefer a 'severely sucking but working' system that's in time over an elegant 'formally right' system that's late and not 100% working. This is an important lesson even today, since it explains why people use Linux instead of HURD, even if HURD is better (the latter being just a hypothesis). It also explains why nobody runs the unsurpassed TUNES 'OS' (on which the creators insist it's not an OS; you'd have to look it up in WP if you don't understand as tunes.org seems gone).

It might also explain why Microsoft used an inferior file format: Because they were behind the competition and were in a hurry to ship. Better ship crap than nothing at all, they must have thought.

*AFAIR: As far as I read about the good 'ol times before I was born, ahum.
dinotrac

Feb 24, 2008
2:04 PM EDT
Hans -

Ok --- Here we live in bliss and harmony.

I have seen so many perversions of the right v fast thing that it makes me want to throw up.

A better statement would be to get it right and tweak it later, which has been programming gospel since day 1.

However -- Performance considerations should start from the moment you think about design. If you don't have a clue as to your needs, you shouldn't be writing code.

In my old mainframe days, they could afford people like me -- who worried about nothing but performance and how well systems would run. Of course, I had one datacenter with $1 billion of hardware. My salary was not a big cost compared to getting a few percent more work out of the equipment.

It's less critical now, but only lazy and/or ignorant designers and programmers ignore performance when they start to develop software. If nothing else, they should be asking whether or not the software they are writing will run once a month or a million times a day.

If you can't answer a question like that, you don't know enough to design it.





herzeleid

Feb 24, 2008
2:17 PM EDT
@hkwint

> Unix design principles was 'leave error checking away. Don't do it right, then you will never have a product that ships. If it fails, reboot it'. Sounds too familiar these days, but really, I'm not kidding.

Which unix design principles were those? Got any citations? And 'reboot'? come on, that's a microsoft innovation if there ever was one.

> It might also explain why Microsoft used an inferior file format: Because they were behind the competition and were in a hurry to ship. Better ship crap than nothing at all, they must have thought.

What competition? cp/m? Surely you jest!

jezuch

Feb 24, 2008
3:13 PM EDT
Quoting:Those older machines were able to do some pretty impressive -- and responsive -- work in part because the programmers cared enough to make them do it.


Looking from today's perspective of 10GHz 16-core CPUs in home computers (well, OK, I'm from the future) it looks plenty amazing how a decent performance could be squeezed from those machines decades ago. You guys are my personal heroes :) [I would be wishing to have lived in those times if I wasn't located in a country which had, well, pretty uninviting political climate back then...]

Quoting:Vista was killed by stupid project managers, not by stupid techies.


Someone ex-Microsoft employee wrote a great blog about it... I can't find it, but I don't think it was Joel.

Quoting:Five or six years ago, the quality of Linux code would draw serious snickers from *BSD crowd.


And it did ;)
Bob_Robertson

Feb 24, 2008
3:43 PM EDT
Torvalds has said, "Release early, release often."

That would align well with "make something that works, no matter how ugly, and clean it up as you go along."

Regardless, Linux and the rest of F/OSS has gotten better over time, while I still prefer Win95 to any of its successors.
tuxchick

Feb 24, 2008
3:52 PM EDT
jezuch, are you thinking of 'The Windows Shutdown crapfest'? http://moishelettvin.blogspot.com/2006/11/windows-shutdown-c...

Quoting: The most frustrating year of those seven was the year I spent working on Windows Vista, which was called Longhorn at the time. I spent a full year working on a feature which should've been designed, implemented and tested in a week.
tuxtom

Feb 24, 2008
4:13 PM EDT
@herzeleid: Here's his resume: http://www.tuxtom.com/resume.txt Please forgive the lack of pretty formatting.

Quoting:So, on the word of this unnamed friend, we're to believe that the years of effort by teams of kernel engineers from IBM, Oracle, Fujitsu, Novell and other tech companies working on the linux kernel have produced "disorganized crap"?
FIrst, I don't know your name. Second, perhaps my language was too strong (i.e. 'crap'). If you heard him use those words the context would have been much different. He didn't say "Linux" was crap. Nonetheless, I only mentioned him for the sake of discussion and I'm not trying to make a strong argument in his favor of his views that were shared to me (which were passing comments and not harsh judgments or complaints).

Quoting:I've never met such a person - care to be more specific?
I was referring directly to you based your jumping to conclusions about the level of experience of my friend and ad hominem attack on a person you've never met. Perhaps we can now add making one-sided demands for "proof" to satisfy you.
herzeleid

Feb 24, 2008
5:09 PM EDT
Quoting: I was referring directly to you based your jumping to conclusions about the level of experience of my friend and ad hominem attack on a person you've never met. Perhaps we can now add making one-sided demands for "proof" to satisfy yoIu.
Wow. lots of venom there, where do I start? Lets try and deconstruct your arguments,

First of all, you accuse me of "jumping to conclusions". Curious. Can you explain which conclusion that is? I expressed skepticism at your friends dismissal of linux as "disorganized crap", and apparently that offended you. That's fine, but really has nothing to do with me jumping to any conclusion.

Second, you accuse me of making an "ad hominem attack" on your friend. I don't think so. I know nothing about this friend but I will simply state the obvious, that the statement you attributed to him sounded bigoted and fanboyish.

Finally you accuse me of "making one-sided demands for proof". Oh dear. I was looking for some substance to back up the trash talk, how is that "one-sided"? It's customary when one makes a charge, to provide some basis for it.

So, linux is "disorganized crap"? How about a file name, a line number, even a general example to illustrate WTF he might possibly mean?

If I understand you correctly, you seemed to think we are to just accept this pronouncement because the guy managed to sock away a lot of money. Heck, in that case, every word that comes out of Bill Gates or Steve Ballmer's mouth ought to be absolutely priceless, and accepted immediately as the truth, eh?
herzeleid

Feb 24, 2008
5:15 PM EDT
> Here's his resume: [HYPERLINK@www.tuxtom.com] Please forgive the lack of pretty formatting.

Sounds like a smart guy - but that doesn't mean he's without biases or personal opinions. I'd love to have heard his actual statement, in context.
tuxchick

Feb 24, 2008
5:39 PM EDT
I'm with herzeleid, though with a more blase attitude :). People say things like "the linux kernel is full of crappy disorganized inelegant code. Shudder, it's a miracle it works at all- it's an unmaintainable mess" all the time. But they never bother to explain why they feel that way, or give some basic examples of crap contrasted with what good code looks like. I tend to dismiss it as empty snobbery, like people who say silly things like "Hollywood movies are not art. True art emerges from the grit and sweat of the proletariats." (I am not making that up.)

I'm no elegant snooty coder, but anyone can take a look at how the kernel works in real life. I know that is it not an un-maintainable chaos- that's just plain absurd when you look at the numbers of contributors and maintainers, and the sheer astonishing number and speed of changes and improvements. Sure, I complain when some newfangled subsystem doesn't work the way I think it should, but actually it's very impressive how the kernel team rolls out masses of changes and improvements, and everything pretty much works. Things that don't work actually get fixed. None of this would be possible if the kernel code and structure were disorganized and of poor quality.

Contrast that with the oldtime commercial Unixes- they're as stagnant as the swampy bit down at the bottom of my pasture. The only one that's made any significant progress is Solaris. What's to compare? Functionally they're very limited as well- it's really not a fair comparison, because Linux can do thousands of things those old dinosaurs can't.

FOSS code in general is full of dreck. No one disputes that- anyone can fling up some half-baked project on Sourceforge and Freshmeat and then abandon it. Probably 90% of them are sludge. But that's not a meaningful comparison either.

I like what dino said- performance should be a fundamental consideration, not artificially separated. If it's slow and sucky, it's not "right."
tuxchick

Feb 24, 2008
5:50 PM EDT
Oh, and don't forget the Coverity bughunt that rated the Linux kernel code highly, as well as a number of other FOSS projects, finding 0.17 bugs per thousand lines of code, compared to the typical 20-30 of commercial software. There are quite a few articles on this, here is one: http://www.coverity.com/html/press_story05_02_15_05.html

So, the next time someone says "foo software is full of crappy inelegant code" I hope they'll give some actual information as to why they believe that. Whenever I hear "elegant" I think what's the problem, are the curly braces too ugly? Is the coder not typing with graceful, relaxed wrists and elegant gestures like a concert pianist? I mean come on, WTF are they talking about?
dinotrac

Feb 24, 2008
6:28 PM EDT
***EDIT***

OK, I've often been accused of being empty-headed, but speechless?
tracyanne

Feb 24, 2008
6:44 PM EDT
Interesting comment dino

EDIT: I thought your previous comment was way more interesting.
tuxtom

Feb 24, 2008
7:01 PM EDT
Quoting:I mean come on, WTF are they talking about?
Thank you. I really don't know. I made the comment in that post to discuss code organization, not to start a flame war or "degrade" Linux. I was kinda secretly hoping to see a bit more of a technical rather than a religious response.

Quoting: Wow. lots of venom there
I see a lot of venom there, too, bud. I was only responding in kind. I'd actually prefer to drop it. I think that if you re-read my posts you will see that I am not trying to argue against Linux. In the subsequent posts I was only trying to defend the character and credentials of a man I respect, not defend the casual comments he may have made to me regarding kernel code.

Quoting:It's customary when one makes a charge, to provide some basis for it.
I was not making a charge. I made a clear disclaimer that I am not familiar with kernel code or it's organization when I made my original comment. I brought it up for the sake of discussion only, and I made a later annotation that my language was too strong and that it was out of context without his jovial personality.

Quoting:... you seemed to think we are to just accept this pronouncement...
Not at all. I said I brought it up for the sake of discussion. Quite frankly, you have only made mention of "looking at some code" and making references to companies that worked on the Linux kernel who sure as hell "socked away a lot of money" themselves. You certainly didn't bring up a discussion of kernel architecture and code organization beyond make those vague references. Am I to accept that you are a Linux kernel expert or even a programmer? I'm assuming you know something, but you may just be a layman with strong views.

Quoting:I expressed skepticism at your friends dismissal of linux...
My friend didn't dismiss Linux. He made casual comments to me on a couple occasions regarding code organization, the topic of that post.

Quoting:Second, you accuse me of making an "ad hominem attack" on your friend. I don't think so.
One mans self-aggrandized skepticism is another's "ad hominem attack".

Quoting:I know nothing about this friend but I will simply state the obvious, that the statement you attributed to him sounded bigoted and fanboyish.
That was a nicer way to phrase it, but it also applies to most of the regulars here at LXer.
tuxchick

Feb 24, 2008
7:22 PM EDT
Quoting: I mean come on, WTF are they talking about?

Thank you. I really don't know. I made the comment in that post to discuss code organization, not to start a flame war or "degrade" Linux. I was kinda secretly hoping to see a bit more of a technical rather than a religious response.


Well, you brought it up! As often as I see those sorts of comments, I have yet to see any kind of knowledgeable analysis, it's always in the context of a quick snark. Y'all may remember Joel Spolsky's classic essay on hairy code, "Things You Should Never Do, Part I": http://www.joelonsoftware.com/articles/fog0000000069.html

Quoting: There's a subtle reason that programmers always want to throw away the code and start over. The reason is that they think the old code is a mess. And here is the interesting observation: they are probably wrong. The reason that they think the old code is a mess is because of a cardinal, fundamental law of programming: It's harder to read code than to write it.
herzeleid

Feb 24, 2008
7:36 PM EDT
@tuxtom -
Quoting:I was not making a charge. I made a clear disclaimer that I am not familiar with kernel code or it's organization when I made my original comment. I brought it up for the sake of discussion only
Who said you made a charge? We were talking about your unnamed friend who by your account, called the linux kernel "disorganized crap".

Quoting:You certainly didn't bring up a discussion of kernel architecture and code organization beyond make those vague references. Am I to accept that you are a Linux kernel expert or even a programmer?
I'm not the one who claimed the linux kernel is "disorganized crap"; the onus for an explanation is on the one who brought the charge. When I asked what technical justification your unnamed friend might have for such a statement, you did not want to talk tech at all, but instead seemed offended that we didn't immediately accept your unnamed friend's indictment of the linux kernel developers. I ask for some evidence. If you have none, I'm under no obligation to lend the statement any credence.

I've asked more than once for some justification for the statement, without any meaningful response - and yet you chide me for failing to "bring up a discussion of kernel architecture".

I'm sorry that you feel offended for your friend, but I really don't know what you expected.
tuxtom

Feb 24, 2008
7:45 PM EDT
Quoting:Well, you brought it up!
...and immediately everyone became emotionally defensive.

Quoting:As often as I see those sorts of comments, I have yet to see any kind of knowledgeable analysis, it's always in the context of a quick snark.
I have yet to see any kind of knowledgeable response or analysis myself. I never started out to imply that I had any to offer beyond my own projects. I think all of us here are guilty of the quick snark. Tuxchick, you gotta admit that you frequently have to use considerable restraint from typing in all caps, yourself.

Quoting:It's harder to read code than to write it.
Ain't that the truth...which also makes it futile and laughable to defend code that you haven't written yourself. If Torvalds read this thread he'd be chuckling at all of us.
tuxchick

Feb 24, 2008
7:58 PM EDT
tuxtom, the general expectation is when you make an assertion, it's up to you to back it up. I dug out several nice factual nuggets and a pertinent essay without too much effort- if you're not willing to back up what you say, don't be surprised when people call you on it.
tuxtom

Feb 24, 2008
9:19 PM EDT
Quoting:I'm not really a kernel guy (as far as the code goes), but I have a good friend and former colleague that is a 30 year kernel veteran. He says the Linux kernel is an absolute mess of disorganized, crap code compared to the various other unices. I have no reason to doubt his observation.
That is what I said, tuxchick. Please tell me what my assertion was and go point by point and "call me on it".

My assertion is that my only assertion was that I have a friend who has an opinion that he has casually mentioned to me (which is nothing more than hearsay to LXer), and that based on his credentials and experience I had no reason to doubt his observation. That's it. I was not trying to make a point. I was trying to start a dialogue about code organization, particularly in Linux/Unix kernels. While your link to Joel's essay was nice, it was generic, largely rhetorical and did nothing nothing to illuminate the differences between the organization of source code of the systems in question. (I said so much about my own code in my original post.)
herzeleid

Feb 24, 2008
9:25 PM EDT
I think we all need to have some jaegermeister and go karaokeing if you ask me.

Seriously, tuxtom. I'm not sure why you want to make this about me, and my qualifications, but if you insist, I'll try to make a case for my computer literacy. You said I'm most likely an interested layman, and I suppose that's true for certain definitions of layman.

Like a lot of people, I got a computer science degree from good old Cal State U a couple years ago, and did pretty well in that regard. I've also been a sys admin for many years. I'm not a kernel developer, but I did study operating systems in college, and I have one obscure linux kernel patch to my name. I haven't participated in the kernel development process for some years, but I am not a total neophyte on the subject either.

Now, like any normal, curious person with a good tech background, my curiosity is piqued when I hear that the linux kernel is "disorganized crap". As a happy long time linux user, I find the statment baffling.

At work, I admin dozens of linux servers, running infrastructure, most of which have been up for over 550 days, and one which has been up for 1047 days of heavy production use, and I ask myself "if it's disorganized crap, how can it take such a licking and keep on ticking?"

Now, If you want to say that for instance freebsd code is more elegant than linux, feel free, I won't argue that point. If you want to say that e.g. openbsd is more secure, hey I'll buy that too. But to say linux is "disorganized crap" sounds like the statement of someone stuck in 1993. Sure, linux started out as a bit of a mess, but it's evolved over the years into something far beyond its humble origins, and has far surpassed anything Mr Torvalds (or anyone else for that matter) ever imagined.

Bob_Robertson

Feb 25, 2008
4:13 AM EDT
> karaokeing

By Cromm, I'm old enough to recognize language drift as it happens...

kill me.

**edit** removed "not". Put it back where it belongs in "not enough sleep".
tuxtom

Feb 25, 2008
9:34 AM EDT
@herzeleid - I'm not making it about you. I call a truce. I made a controversial comment then scrambled to defend my friend. It was all my doing. I only mentioned your credentials because I don't know you and you were asking for his and questioning what statements I attributed to him...statements which I am not trying to prove myself. I haven't even looked at the kernel code except for a few drivers I've had to tweak here and there...and that was years ago, for the most part. I did some kernel training for embedded development (hardware drivers), but the project fell through and I went back to web development and net/sysadmin, which I'm quite happy with.

If we all here at LXer (and even the friend I mentioned) met in person and sat around with a cup of coffee or tea discussing most of what's discussed here things would be quite different, a lot less defensive and probably more enlightening for all of us. Some of you have probably already done that and know each other more personally.

Quoting:But to say linux is "disorganized crap" sounds like the statement of someone stuck in 1993. Sure, linux started out as a bit of a mess, but it's evolved over the years into something far beyond its humble origins
You are probably quite right about his view being historical. He has been around so long that code experiences of days gone by is certainly etched in his psyche to some degree. Old-timer syndrome.
tuxchick

Feb 25, 2008
10:35 AM EDT
tuxtom, this isn't about personalities, even though you keep trying to make it that way. You've been dodging the issue that you raised, instead sticking to various forms of "geez quit picking on me," and not even trying to discuss the very topic that you started. Are you really surprised that a forum full of Linux fans and advocates doesn't let such an outrageous statement go unchallenged? If we were discussing this in meatspace I would still expect you to back up what you said, and then insist that you buy the coffee when you don't even try. "Because I say so" doesn't work, no matter how credentialed the speaker is.

I say we can evaluate code quality without reading the actual code- I already gave some examples of that. Coverity's studies, real-world uses and performance, the phenomenal rate of successful changes to the kernel, its incredible flexibility and adaptability all refute any baseless claims of "my friend says it's junk". Joel Spolsky's essay is right on target for this discussion- it's all about code quality and maintainability. Programmers like to be all mysterious and lofty, and pretend that such things are beyond the ken of mere mortals, and especially dumb old end lusers. They're not. If the kernel code really is an ugly mess, a lot of us chickens here would like to know more. So far we're not seeing anything that supports that. And now I'm done, because this has to be one of the most unproductive tangents ever! It might even be a LXer record :)
Bob_Robertson

Feb 25, 2008
10:53 AM EDT
> It might even be a LXer record :)

I could post something off-topic, if you think that would help.
dumper4311

Feb 25, 2008
11:53 AM EDT
> "this isn't about personalities"

I disagree, it is interesting to watch a thread like this unfold when you don't have a dog in the race. Whether we're right, wrong, or (as is most often the case) somewhere in between, how we respond to other people (assuming the humanity of everyone involved) says a lot about us individually.

No judgment, no conclusions, just that it's interesting to watch. I've actually learned a fair chunk about myself from interacting with some of the more determined personalities on this forum. In that respect, this has been at least mildly productive to watch.
hkwint

Feb 25, 2008
1:07 PM EDT
Great to see people doing social research at LXer dumper4311. You might want to submit your results when you're done; ODF charts preferred (of course).

Quoting:Which unix design principles were those? Got any citations? And 'reboot'? come on, that's a microsoft innovation if there ever was one.


Microsoft didn't invent the 'reboot' adagium itself (it never invents anything it seems), but like I suggested, 'borrowed' it from another OS, UNIX. Right from the horses mouth:

Quoting:We went to lunch afterward, and I remarked to Dennis that easily half the code I was writing in Multics was error recovery code. He said, "We left all that stuff out. If there's an error, we have this routine called panic, and when it is called, the machine crashes, and you holler down the hall, 'Hey, reboot it.'"


Though it seems you're not really familiar with 'ancient' UNIX history, I assume you know Dennis Ritchie. The quote and far more interesting stuff are from the Multicians site about UNIX:

http://www.multicians.org/unix.html

Which leads me to the following: How to 'measure' code quality.

The first reason the Linux kernel may be perceived as a mess, in my opinion, is because it was written in C. One of the most difficult languages to understand. That it's not necessary - even at the time was UNIX started - to write an OS in a low level language was shown by MULTICS. But there is a reason to keep the code 'messy'.

Again from multicians:

Quoting:The development team spent a lot of effort finding ways to build the system in a disciplined way. The Multics System Programmer's Manual (MSPM) was written before implementation started: it was 3000 or so pages and filled about 4 feet of shelf space in looseleaf binders. (Clingen and Corbató mention that we couldn't have built the system without the invention of the photocopier.) High level language, design and code review, structured programming, modularization and layering were all employed extensively to manage the complexity of the system, which was one of the largest software development efforts of its day.


http://www.multicians.org/general.html , 1.3.9

One of the reasons MULTICS 'lost' from UNIX was because it was more a 'research / university' project trying to do things right, than UNICS, which tried to 'make things work first'. The example above shows 'code of quality' has its drawbacks; if you wanted to join on the MULTICS project, I assume you had to read a lot of those 3000 pages before actually being able to commit some code. Because internet was not available to any developer to download that 3000 pages back then, it must have been a real problem for the ones located at other places.

Which brings up the next question: Does Linux has a 'programming style guide'?
herzeleid

Feb 25, 2008
1:46 PM EDT
@hkwint

> Though it seems you're not really familiar with 'ancient' UNIX history, I assume you know Dennis Ritchie.

Oh, I'm pretty familiar with ancient writings, but I think I came to a completely different interpretation of the anecdote you posted above. AFAIK halting or rebooting on kernel panic is still the standard procedure in commercial unices, since all bets are off anyway. You really don't want an insane kernel scribbling all over the disk while trying to work things out.

But that's a far cry IMHO from saying "if something doesn't work, just reboot"...

> Which brings up the next question: Does Linux has a 'programming style guide'?

The kernel certainly has such a guide, and there's a gnu style guide as well IIRC.
hkwint

Feb 25, 2008
2:06 PM EDT
Quoting:Oh, I'm pretty familiar with ancient writings


Of course, far more than I do, I knew. But I just liked to be arrogant for once, hope you don't mind.

Quoting:"if something doesn't work, just reboot"...


Well, I thought that's what 'kernel panic' was intended for. But I agree in the Windows-era it has a new meaning; where you reboot though the kernel didn't halt. It's based on interpretation and opinion I think; so after all it seems we can give Microsoft credit for the 'reboot' adagio. They should have patent rebooting as a 'business method' looking back at it.
herzeleid

Feb 25, 2008
2:13 PM EDT
> Of course, far more than I do, I knew. But I just liked to be arrogant for once, hope you don't mind.

No, of course not, feel free. I don't assume to know more than you BTW.

> so after all it seems we can give Microsoft credit for the 'reboot' adagio. They should have patent rebooting as a 'business method' looking back at it.

Haha, that's a very plausible scenario!
tuxtom

Feb 25, 2008
2:27 PM EDT
Quoting:tuxtom, this isn't about personalities.
Well, herzeleid's initial remarks were pretty personal about someone I know. There's BIG difference between talking smack about an operating system and talking smack about a human being you haven't even met. If you can't see or tell the difference between the two then I truly feel sorry for you.

Quoting:I would still expect you to back up what you said
I didn't say it, I attributed it to someone else and I did back it up with his resume.

I called a truce on the topic and acquiesced. I also acknowledged that herzeleid was likely correct in that the person's view originated in a dated experience.

May I call a truce on the topic with you?
gus3

Feb 25, 2008
10:13 PM EDT
Quoting:You really don't want an insane kernel scribbling all over the disk while trying to work things out.

But that's a far cry IMHO from saying "if something doesn't work, just reboot"...
Well, in the Redmond world, these two are not mutually exclusive, or even just barely touching. Windows doesn't use industry-standard memory protections very well, and a stray program can corrupt kernel (usually driver) memory. The effect on kernel sanity can vary, so "Reboot" is the safest option, and often the best way to clean out whatever corruption has crept in.
happyfeet

Feb 26, 2008
12:30 PM EDT
@herzeleid:
Quoting:You really don't want an insane kernel scribbling all over the disk while trying to work things out


Thanks - I got a really vivid image from that...

Posting in this forum is limited to members of the group: [ForumMods, SITEADMINS, MEMBERS.]

Becoming a member of LXer is easy and free. Join Us!