Please create an account to participate in the Slashdot moderation system

 



Forgot your password?
typodupeerror
Software It's funny.  Laugh.

The Software Inferno 109

Posted by Soulskill
from the abandon-all-hope-ye-who-compile-here dept.
CowboyRobot writes "The Software Inferno is a tale that parallels The Inferno, Part One of The Divine Comedy written by Dante Alighieri in the early 1300s. That literary masterpiece describes the condemnation and punishment faced by a variety of sinners in their hell-spent afterlives as recompense for atrocities committed during their earthly existences. The Software Inferno is a similar account, describing a journey where 'sinners against software' are encountered amidst their torment, within their assigned areas of eternal condemnation, and paying their penance. Quoting: 'CANTO 6 - HERESY: ...The countess explained that these chaotically traveling souls were strongly at variance with well-established beliefs and laws of software engineering developed by experts on the subject. Their unabashed contempt for universally accepted truths spawned decision making that wrought great damage upon software projects in their charge. Some challenged Fred Brooks' sacred counsel in futile attempts to rise above their failings by adding new people with woefully insufficient qualifications to rescue already-late projects. Others flaunted their derision by disregarding software design patterns sanctified by the Gang of Four, instead opting for inelegance of their own in attempts to solve problems whose solutions were already proven, well known, and time-honored.'"
This discussion has been archived. No new comments can be posted.

The Software Inferno

Comments Filter:
  • by Anonymous Coward

    Posting from beta.

    Breaking two lines. Is this being formatted right?

    Thanks,
    AC

  • by Anonymous Coward on Wednesday December 18, 2013 @02:28PM (#45728847)

    Gives me chills when I see people talking about tech like it was a religion.

    • by YrWrstNtmr (564987) on Wednesday December 18, 2013 @02:45PM (#45728967)
      Gives me chills when I see people talking about tech like it was a religion.

      Walk by any Apple store.
      • Apple Fan Boys are the Rajneeshees of the tech world.
      • Walk by any Apple store. ... where you just see people using devices like like because they generally work. You can go in, or not, it's your choice.

        If you keep on walking you get to the Apple Haters. Now there's a religion, meaning they fervently believe in Apple being bad no matter what, and will not let you past until YOU believe it also.

        • by Anonymous Coward

          I've seen far more organized iDiots than the anti group. The anti group is just fed up with the " it just works and is sooo worth the extra money, and if you don't agree you don't know tech" morons constantly worshiping steve jobs. Never have I seen a group of customers accept the blame willfully and defend the products flaws like they are a good thing like sheeple.

    • by Empiric (675968)
      And not even an actual religion at that. Dante's works, though well-known, are extensive fictionalized extrapolations from the religion upon which they are based. It is more like religious "fan fiction" than religion, IMHO.
      • Not only that, they're read today more for the beautiful poetry than for any religious reason. I skimmed TFA and didn't see any sign of verse.
        • by Empiric (675968)
          I'm guessing that the majority here on Slashdot know his verse only from the "Abandon all hope, ye who enter here" line used in the text adventure game "Zork"...
        • by narcc (412956)

          Only if they understand Italian. If you're reading it in English, stick with Pinsky's translation. He captures the triple rhyming surprisingly well.

      • by snookerdoodle (123851) on Wednesday December 18, 2013 @03:10PM (#45729251)

        A possibly interesting tangent:

        It may surprise /. folks to learn that much of what modern Christendom believes about hell is actually from this man and not from Moses, Jesus, Paul, Peter, et al. I.e.: The Bible doesn't really teach the version of hell everyone seems to believe in. Rob Bell has an easy to read book ("Love Wins", to which Francis Chan's "Erasing Hell" is a somewhat non sequitor of a response) and Edward Fudge has some somewhat more in depth treatises on this for people who want to exercise their Google-fu.

        And yes, it's more complicated than "Dante Created Hell", with ideas from philosophers and other religions entering the mix. Dante just gave preachers a nice manipulative tool to scare the ignorant into toeing whatever line they drew. And, perhaps, give us some feeling of justice for truly evil people.

        • by Empiric (675968) on Wednesday December 18, 2013 @03:17PM (#45729323)

          Yes... and there's a similar challenge produced by the influence of Milton's "Paradise Lost".

          These two are a major source of what the general public -thinks- they know about historical Christianity.

        • Ask any Jehovah's Witness and they'll tell you this over, and over, and over.............
    • by jythie (914043)
      Try reading through "The Codeless Code" sometime. Religion from a Java server application development perspective. Spoiler, everyone else dies horrible deaths.
      • Religion from a Java server application development perspective. Spoiler, everyone else dies horrible deaths.

        Well sure, but at least they are collected after.

        Java - Rapture for everyone, eventually!

    • Not really. If you take a step be, you quickly see most people belief's in anything they care about resemble religion.

      People talk about their political beliefs, their love for LRT transit, technology, art, their healthcare career... with all the good and bad of religion.

      I sometimes find when people talk about these things, they're actually more passionate in both the good and bad way, than religious people are.

      I would assume this is because religion is pretty vague and many things are left for the unseen. H

    • Putting it in a form that people are familiar with can make it an easier or more entertaining read. I first read Henry Spencer's 10 commandments for C programmers [cat-v.org] some 30 years ago. It was good then; it is still largely relevant with a few changes, eg: in commandment 10 substitute 'Intel' for 'VAX'; commandment 1: well the 'lint' function is usually available as a high warning level in most compilers.

  • So, which is it? (Score:4, Interesting)

    by VortexCortex (1117377) <VortexCortex@@@project-retrograde...com> on Wednesday December 18, 2013 @02:35PM (#45728903)

    Others flaunted their derision by disregarding software design patterns sanctified by the Gang of Four, instead opting for inelegance of their own in attempts to solve problems whose solutions were already proven, well known, and time-honored.

    Says someone posting via heretical Von Neumann Machine, long live Turing Machines!

    Posted via Android on ARM hosted in Linux on x86-64 running in 32 bit mode!

    Those knowledgeable of Cybernetics, Genetics, or Information Theory emit the most holy evil-grin when confronted with the term "Design Pattern".

  • A bit obtuse (Score:5, Insightful)

    by mugnyte (203225) on Wednesday December 18, 2013 @02:42PM (#45728955) Journal

    It's entertaining, typically weird article from Bell. They're a bit snarky but somewhat long-winded - his penchant to build classifications of things overrides any real deep-dive into what he's talking about. And his daughter appears in every article, I'm surprised there isn't a "17 types of annoying child" article yet.

    His other complaints: UML, XML, Agile misuse/overuse - each with an article, blog post that has invented classifications.
    Where's the one on "taxonomy joke" overuse?

    • Re:A bit obtuse (Score:4, Insightful)

      by phantomfive (622387) on Wednesday December 18, 2013 @03:21PM (#45729357) Journal
      You can tell roughly at what time he became a software engineer. Everything invented before is "universally accepted truth." Everything after is in the 7th circle of hell.

      Now, get off my lawn, if it's not vacuum tubes in accumulators, it's useless! We don't need these newfangled 'registers' and 'assembly languages,' we have patch wires!
    • by unixisc (2429386)
      Speaking of Bell, reading the headline, I first thought that the post was about the FOSS equivalent of Plan 9 from Bell Labs
  • Because I always thought there was a special place for those who could cram 7 GoF patterns into a HelloWorld, whether they needed them, or were ever ever ever going to extend or reuse the HelloWorld or not.
  • Coming up with a completely stupid name for a simple pattern doesn't make you a good programmer. The Group of 4 decided they would look at the "common" patterns used in programming and instead of doing something useful, they would just assign them pointless names. Anyone who quotes the Group of 4 with intention of using the names they came up with, generally, isn't a good programmer. A good programmer is busy writing / testing code and doesn't have the time or the need to read and remember books about ho
    • Re:The Group of 4? (Score:5, Insightful)

      by mugnyte (203225) on Wednesday December 18, 2013 @03:01PM (#45729139) Journal

      While I don't completely disagree with you, "good code" seems to imply a judgement based on some values. In enterprise systems, the transferability, maintainability and self-documenting concepts in code can play as much a role as footprint, security and speed. Not all systems are dancing on the edge of "too big" or "too slow" - they are closer to failure because of "poorly defined", "too fragile" and/or "too esoteric".
      A company may want to keep modules in plainspeak, well-documented and slower .NET componentized form because they burn through developers every 2 years, like the industry avg. If your job stops as "stable and secure" you may not really be contributing to a software system portfolio like a large company needs.

      • by QilessQi (2044624)

        Which is why, in an enterprise development environment with high project turnover, adherence to the names of the GoF patterns can be valuable as well. If you have an objects of class Foo and FooFactory, then everyone familiar with GoF will understand that the FooFactory's purpose is to create new Foo instances. Likewise, many developers will be able to guess what FooDecorator and FooVisitor do.

    • Re:The Group of 4? (Score:5, Insightful)

      by phantomfive (622387) on Wednesday December 18, 2013 @03:27PM (#45729437) Journal
      Those aren't the four things I look for in a program. I look for this:

      1) Does the code work/fill the requirements? (high efficiency might be a requirement, or it might not. Same with cross-platform compatibility).
      2) Is the code readable? If not, it doesn't matter how great your design is, people who come after you will rewrite it.
      3) Is the code flexible? If not, your design is more a hindrance than a help.

      Code that fills all three of those is rare and beautiful.

      A good programmer is busy writing / testing code and doesn't have the time or the need to read and remember books

      A good programmer is always looking to improve his skill in any way available, including reading.

    • by jythie (914043)
      To be fair, their original intent was to help with communication, so they looked at patterns people had been using and tried to put them into a simple taxonomy so that programmers could talk to each other about how they structured things. It was less about 'there is a problem, this factory pattern will solve it' and more 'I used a factory pattern, now you have an idea of what to expect from this code'.
      • by narcc (412956)

        so they looked at patterns people had been using

        Which is precisely what they did NOT do. They didn't uncover them, they just made shit up.

        'there is a problem,

        (Which we have absolutely no reason to believe is common because we did no research what-so-ever.)

        this factory pattern will solve it'

        (Though we have no reason to believe that it's a common solution, or even a good general solution.)

        'I used a factory pattern, now you have an idea of what to expect from this code'.

        That much is true. When I see a "factory pattern", or any other "pattern", I know that the code is very likely to be total garbage.

        • Which is precisely what they did NOT do. They didn't uncover them, they just made shit up.

          [citation needed]

          IOW you're full of it. Common patterns in design, i.e. sensible general designs occur all over the place. The GoF didn't uncover them all but they are certainly common patterns. It's very helpful to be able to refer to them with a widely understood name.

          Or for less experienced people to tell them it's an instance of FooPattern so they can look it up, rather than having to read all of the code not knmow

          • by narcc (412956)

            The GoF didn't uncover them all but they are certainly common patterns.

            So ... Where's the evidence? Where's the research? What do you think about beliefs unsupported by evidence?

            It's very helpful to be able to refer to them with a widely understood name.

            Are you sure about that? Again, where's the evidence? You can tell me personal stories all day, and I can match every one with a tale of pattern abuse. That won't get us anywhere. Let me known when there's some actual research that supports your assertion.

            The unix open(2) system call is a classic factory pattern.

            That's more than a bit of a stretch, don't you think? Connecting this to your earlier quote, how does inexplicably calling it a "factory" bene

            • So ... Where's the evidence? Where's the research?

              oooh I dunno. Try looking at the citations to the 8 page bibliography in the back of the book.

              That's more than a bit of a stretch, don't you think?

              No, not at all. It's classic factory pattern.

              You get a handle to a base class with a bunch of virtual methods (read, write, close, lseek, fcntl, ioctl, select and so on). The kernel chooses the derived class based on the arguments (i.e. filename) passed to the factory. The underlying behaviour of the derived clas

              • by narcc (412956)

                oooh I dunno.

                No surprise there. It's because it doesn't actually exist. You'll find absolutely no research to support your assertions.

                Since you don't care about evidence and obviously like accepting things on blind faith, I have an argument that's very likely to convince you: The ghost of Steve Jobs appeared to me on a piece of toast and told me that design patterns were nonsense.

                Well, by calling a factory, you could deduce something about the way it works.

                In your example, you don't. You gain absolutely no benefit. It's just you desperately trying to force it in to conform to terms with whic

                • No surprise there.

                  Well done for failing to read. Allow me to repeat: try liiking at the citations into the large bibliography. There's the research right there.

                  So either put up or shut up. I've held up my side and provided evidence supporting my case. You have failed to do so.

                  And the "oooh dunno" was sarcasm.

                  your ridiculous example implies

                  So, I take it you've never done any VFS hacking. It's full of virtual functions and derivation, C style. Actually much of the kernel is.

                  But feel free to live in your own

                  • by narcc (412956)

                    try liiking at the citations into the large bibliography. There's the research right there.

                    Look again. What you think is there, simply isn't there. You just really wish it was.

                    I hate to break it to you, but your holy book is nothing more than the mad scribblings of some 90's guys. It has no rational basis.

                    Not that you care. I can't argue with religious zealots.

                    • I can't argue with religious zealots.

                      I'm the one who provided evidence, you're the one spweing nothing but insults and empty rhetoric. And you thinl I'm the zealot??

                    • by narcc (412956)

                      As I pointed out, your evidence isn't. Take a look at it yourself. Your "evidence" completely supports my earlier assertions! Go ahead and actually look at what you're offering as "evidence". You're in for quite a surprise.

                      It's not my fault that reality doesn't support your irrational beliefs.

                    • As I pointed out, your evidence isn't.

                      No, you haven't pointed out, you've asserted it without a shred of evidence.

                      GoF is full of references and citations to large existing software projects. You can see all of these references if you read the book. You're merely asserting that it is not the case. I can see the former, therefore do to anything more than make hollow assertions, you have to give some shred of evidence for the latter.

                      You might not like the evidence or the conclusions they come to, but pretendi

                    • by narcc (412956)

                      Your inability to comprehend the seemingly obvious isn't my problem.

                      You'll find that, upon competent examination, the claims I made are undeniably true.

                      I'm sorry that reality does not conform to your preconceptions.

                      you've asserted it without a shred of evidence.

                      It's all in the book. As I've pointed out, you've already offered substantial evidence in support of my assertions.

                      Hell, just read the introduction, which makes it clear that the nonsense "patterns" are based on personal experience, not actual research. Try reading the book instead of just rea

                    • You'll find that, upon competent examination, the claims I made are undeniably true.

                      Ah, no true scotsman would disagree with you, right?

                      So far our conversation has gone like this:

                      You: The GoF didn't do research.
                      Me: what about all those citations pointing to examples of projects.
                      You: That's not proper resaerch.
                      Me: How?
                      You: No true scotsman would believe it is.

                      I'm sorry that reality does not conform to your preconceptions.

                      And I'm sorry that you are utterly unable to describe your version of reality beyond tel

                    • by narcc (412956)

                      In the intro they mention experience, in the book they actually provide evidence

                      No, they provide a few examples. That's not evidence. See, the examples are there to imply that these alleged "patterns" actually are common solutions to common problems.

                      There is no reason to believe that "patterns", by their definition, exist at all.
                      There is no reason to believe that the "patterns" they present are representative.
                      There is no reason to believe that the problems the "patterns" are intended to solve are common. (How frequently the problems appear)
                      There is no reason to believe that the "patt

                    • No, they provide a few examples. That's not evidence. See, the examples are there to imply that these alleged "patterns" actually are common solutions to common problems

                      A pattern is a recurring thing.

                      If they provide multiple exmaples of where the same thing has spontaneously and independently occured then that is pretty much by definition evidence for a pattern.

                      There is no reason to believe that "patterns", by their definition, exist at all.

                      They occured multiple times independently, ergo they exist.

                      There is

                    • by narcc (412956)

                      Patterns are not intended to do anything. ... Many people (including you according to elements of your reply) seem to believe that patterns are things to be "applied"

                      From Page 1: "These patterns solve specific design problems" "...can apply them [patterns] immediately to design problems" Yes, the very first page.

                      From Page 3: "a pattern has four essential elements [...] The problem describes when to apply the pattern"

                      Have you read the book?

                      A pattern does nothing. It is not intended for anything. It is an observation of how people solve the same problem.

                      Some obvious facts: They didn't examine a large sample of programs (how were they selected?), identify common problems (using what methodology?) and how those problems were solved. They didn't compare their "patterns" to alternative s

                    • From Page 1: "These patterns solve specific design problems" "...can apply them [patterns] immediately to design problems" Yes, the very first page.

                      Yep that's because problems are often similar. Therefore similar solutions will occur. Hence, pattern. If you go "applying" the patterns to all sorts of things then crap results.

                      Why is this so damn difficult for you to accept? According to the book, even the authors don't disagree with me here!

                      So what _are_ all those citations of other projects than? Farie dust

                    • by narcc (412956)

                      [citation needed] ... You love clipping out actual quotes except to suport your main point.

                      If you can't be bothered to read the book you're defending, at least take the few minutes it takes to read the introduction.

                      I've directed you there several times already.

                    • I've directed you there several times already.

                      You've directed me to the entirety of a book hundreds of pages long. Naturally if I fail to find what you want then obviously I'm not looking in the right place. Very convenient.

                      Quote me a page and a line and I can look up the relevant quotes for myself. I'm not going to re-read the entire thing to hunt for a statement to back up a vague accusation from you.

                      So we are back to the beginning and you have still failed to support your point with anything more than ad

                    • by narcc (412956)

                      To the introduction. I've directed you to the introduction several times already. This should be clear from my previous post -- and several other older posts.

                      It's not long, it validates my claims, and (as you've seen) even directly contradicts a few of your points. It shouldn't take you more than a few minutes to read through the introduction.

                      Given some of your claims (like the "apply" bit from earlier), I'm not convinced that you've ever read the book you're defending. Perhaps you should reserve your o

                    • It's not long, it validates my claims, and (as you've seen) even directly contradicts a few of your points.

                      A few of the side points, but not the main one. I don't deny that they mention personal experience in the introduction, but all research is bstarted with personal experience ultimately. The main part of the research, i.e. all the citations is in the main book.

                      You keep on pretending that the rest of the book which invalidates your point does not exist.

                      Given some of your claims (like the "apply" bit from

                    • by narcc (412956)

                      You claim the patterns do not exist in the real world.

                      That's not what I'm claiming.

                      They provide plenty of examples with citations. That's the research you keep hallucinating the nonexistence of.

                      We've been over this. What do you think constitutes research? Put yourself in the authors position. You want to know if there are common solutions to common design problems. What do you do? You'll need a sample of computer programs to examine. How do you select that sample? You want to identify the design problems that appear most frequently, what is your methodology? How do you classify the solutions so that you can identify which solutions are common?

                      What if we go even

                    • I'm not sure what we're arguing about. I think you're right that perhaps we agree more than not.

                      I think we agree that the patterns do exist?

                      We certainly agree that GoF is not a religious text with which one must not argue.

                      As to whether they have done research, I think we're still arguing about that. I think what they did qualifies as research, I think they've backed it up with a decent number of decent citiations. Whether that's good research is another argument.

    • Re:The Group of 4? (Score:5, Insightful)

      by istartedi (132515) on Wednesday December 18, 2013 @03:49PM (#45729697) Journal

      The aspects you look for in code are as follows:

      The list can be reduced to:

      1. Does it serve the users well.

      Note that I have not said, "does it do what the users asked for" or "what the user wants". Users may make requests that fall short of what is possible, or are impossible, or will not be workable in the long run. Part of your organization's job is to let the user know what will work. Part of your job is also to surprise the users in a pleasant way. Pleasant surprises are "oh wow, we can use keyboard shortcuts for that now" as opposed to "we re-arranged the UI and added dancing bears because everybody is doing that now".

      Anyway, I digress. It all reduces to the one rule cited.

      • The list can be reduced to:

        1. Does it serve the users well.

        I think that list badly needs a 2. Is the code maintainable. It doesn't matter how orgasmically beautiful and lightning quick the code is if it can only be changed by Chuck...who just died of a heart attack last week. Uh oh.

        • by istartedi (132515)

          The maintainability requirement ultimately flows from the "one rule" as well. It's not as urgent as "runs without crashing every five minutes" but it's a valid concern. If everything goes well the company grows organically, turns the corner, and Chuck's code is gradually superseded by the process weenies that come in when the company gets large.

          If you hold on to unmaintainable code too long, it will be impossible to add features, maintain performance, port to new systems or do things that customers want a

      • by shoor (33382)

        "Does it serve the users well?" is a question that needs to be asked from time to time when developing code as a way of keeping perspective. But the point of the rules and guidelines is to find ways to achieve that goal. Whether the rules and guidelines actually serve their own users well is another question.

    • Group of 4

      Z4 or Z2xZ2

      How do you get subscripts on this?
  • They clearly had fun writing that for at least the exercise in wordsmithing alone. I imagine it must also be satisfying to banish your tormentors to their judgment. Unfortunately there didn't appear to be a place reserved for trolls.

    Some other Infernos:

    Inferno [amazon.com] - Fun read.
    Disco Inferno [youtube.com] - Which Apple had fun with in this commercial [youtube.com].
    Some people like this: The Towering Inferno Trailer [youtube.com]

  • Larry Niven and Jerry Pournelle did the best take on the classic of European literature; anything else will merely be a pale, insipid imitation that makes the reader wonder why the author bothered.
  • by Slamtilt (17405) on Wednesday December 18, 2013 @03:14PM (#45729297)

    Part of the fun of the Divine Comedy at the time was that specific individuals were shown being tormented, and this doesn't do that.

    It totally should.

    • by chthon (580889)

      Yes, with B. Gates at the centre of Hell, with Steve Ballmer head first beig chewed upon. Nominations for two other persons?

      • by Beige (81376)

        I envisage Bill Gates being perpetually beset by a giant paperclip shaped demon - 'I see you're suffering eternal torment. Would you like more torment? YES/OK'

  • (Burn, baby, burn) Software inferno!
    (Burn, baby, burn) Burn that mother down! [youtube.com]

  • How many people here (a) have read the Divine Comedy and (b) worked as a programmer? I'm sure I'm not the only one, but we've got to be a pretty small audience.

    Who do you think is the analog of Beatrice? Or Francesca da Rimini from Canto V?

  • were strongly at variance with well-established beliefs ...

    Isn't that how most, if not all, scientific discoveries are made?

  • CANTO 6 - HERESY: ...The countess explained that these chaotically traveling souls were strongly at variance with well-established beliefs

    Yeah, you know, I would rather be a heretic than be consumed by groupthink and the cargo-cult engineering it encourages.

    I consider the deadliest sin of engineering unnecessary complexity, which comes in its worst forms from inappropriate and poorly implemented generalization.

    I've seen a lot of this in the form of "frameworks" - especially homegrown ones - but also from faithful and meticulous application of GoF design patterns. Decompile SqlMetal for a canonical example.

A computer lets you make more mistakes faster than any other invention, with the possible exceptions of handguns and Tequilla. -- Mitch Ratcliffe

Working...