Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. Joel does it again

Joel does it again

Scheduled Pinned Locked Moved The Lounge
csharpc++htmlcomdesign
62 Posts 26 Posters 3 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M Member 96

    So you're against the premise that simplicity is better or you just don't like his writing style?


    "Creating your own blog is about as easy as creating your own urine, and you're about as likely to find someone else interested in it." -- Lore Sjöberg

    A Offline
    A Offline
    akidan
    wrote on last edited by
    #52

    I am staunchly against the premise that simplicity is better. I am also staunchly against the premise that complexity is better. If you don't take the problem at hand into account, choosing either simplicity or complexity is an uninformed decision.

    M 1 Reply Last reply
    0
    • A akidan

      I am staunchly against the premise that simplicity is better. I am also staunchly against the premise that complexity is better. If you don't take the problem at hand into account, choosing either simplicity or complexity is an uninformed decision.

      M Offline
      M Offline
      Member 96
      wrote on last edited by
      #53

      If this is a problem of communication or perspective forgive my rant that's about to come, but it sounds to me like you are saying there are often legitimate reasons to choose a complex solution *over* a simple solution to the same problem. I've been developing for over 30 years and professionally with my own company not in a cubicle somewhere for over 15 and there has *never* in all that time been any real world situation where simplicity was not better. All the best solutions are both simple and elegant. Any developer who doesn't get that in their bones is not ready to take a lead on anything. Simplicity is the tao of programming, always has been, always will. Sure some solutions are required to be more complex than others due to the nature of the problem being addressed, that's just reality. But when given multiple ways to solve a problem the simplest choice is hands down always the best choice. Sometimes, rarely, there is only one solution and it is a complex solution. Rarely as in 1% of the time there are no other options. A complex solution to a problem is more often though a sign of lack of planning, thinking or just plain talent to see outside the box. I understand that many developers are cogs in a big machine, they sit in a cubicle somewhere and have the luxury of being self indulgent and playing with their employers time and money and the good will of the end users, I get that and the posts here in this thread pretty much reveal who is who in that department. In my line of work there is only one test that any technology or solution needs to pass: Is it better for the end user. And high on the list of "better" is getting it into their hands in a timely fashion so they can actually get their job done with it. It has to be good enough, not perfect, not cool, not flashy necessarily, just good enough for the end user to accomplish their tasks with it. If I worked for a big corporation and was making some kind of in-house app and given free reign and few constraints I'm sure I'd be dabbling with all the latest buzzword technology as well, it's human nature and I don't blame people for it, but in these tough economic times I think it's encumbent on all of us to focus more on the end result.


      "Creating your own blog is about as easy as creating your own urine, and you're about as likely to find someone else interested in it." -- Lore Sjöberg

      A 1 Reply Last reply
      0
      • J Joe Woodbury

        You're changing Joel's argument. Simplicity is very laudable and, frankly, a whole lot of code is way too complicated. But I found what Joel was praising went a little too far. Sometimes using a "complicated" technology not only gives you a better solution, but IS easier once you understand it. Some years ago, I rewrote a serial class to use IO completion ports. It took a little bit to wrap my brain around it, but the resulting class made it MUCH easier to deal with serial ports than the old method. It also greatly increased performance and scalability, so even if it hadn't made life easier, it still would have still been justified.

        M Offline
        M Offline
        Member 96
        wrote on last edited by
        #54

        Um...sounds to me like you're describing a simpler solution in the end there right? :) Simpler as in you said it made it MUCH easier to deal with serial ports.


        "Creating your own blog is about as easy as creating your own urine, and you're about as likely to find someone else interested in it." -- Lore Sjöberg

        J 1 Reply Last reply
        0
        • M Member 96

          Um...sounds to me like you're describing a simpler solution in the end there right? :) Simpler as in you said it made it MUCH easier to deal with serial ports.


          "Creating your own blog is about as easy as creating your own urine, and you're about as likely to find someone else interested in it." -- Lore Sjöberg

          J Offline
          J Offline
          Joe Woodbury
          wrote on last edited by
          #55

          No, the algorithm was more complicated. It required advanced coding techniques that Joel and the "Duct-Tape" model sneered at. The upfront cost was quite high, a model which Joel and buddy blatantly eschewed--they sneered at the notion of writing complicated, unit tested, well designed core library code. Don't say that's not what they meant, since I can only interpret what Joel actual wrote and what the fellow he referred to said: they were contemptuous of complex solutions, even at the unit level.

          M 1 Reply Last reply
          0
          • J Joe Woodbury

            No, the algorithm was more complicated. It required advanced coding techniques that Joel and the "Duct-Tape" model sneered at. The upfront cost was quite high, a model which Joel and buddy blatantly eschewed--they sneered at the notion of writing complicated, unit tested, well designed core library code. Don't say that's not what they meant, since I can only interpret what Joel actual wrote and what the fellow he referred to said: they were contemptuous of complex solutions, even at the unit level.

            M Offline
            M Offline
            Member 96
            wrote on last edited by
            #56

            I took his article as a cautionary tale against unnecessary complexity, gratuitous complexity. What you described sounds like entirely necessary complexity and in the long run is the simplest solution for all future serial port development needs.


            "Creating your own blog is about as easy as creating your own urine, and you're about as likely to find someone else interested in it." -- Lore Sjöberg

            J 1 Reply Last reply
            0
            • M Member 96

              I took his article as a cautionary tale against unnecessary complexity, gratuitous complexity. What you described sounds like entirely necessary complexity and in the long run is the simplest solution for all future serial port development needs.


              "Creating your own blog is about as easy as creating your own urine, and you're about as likely to find someone else interested in it." -- Lore Sjöberg

              J Offline
              J Offline
              Joe Woodbury
              wrote on last edited by
              #57

              Must be fun to read articles and just make up what they are about. :)

              M 1 Reply Last reply
              0
              • J Joe Woodbury

                Must be fun to read articles and just make up what they are about. :)

                M Offline
                M Offline
                Member 96
                wrote on last edited by
                #58

                Indeed. ;)


                "Creating your own blog is about as easy as creating your own urine, and you're about as likely to find someone else interested in it." -- Lore Sjöberg

                1 Reply Last reply
                0
                • M Member 96

                  If this is a problem of communication or perspective forgive my rant that's about to come, but it sounds to me like you are saying there are often legitimate reasons to choose a complex solution *over* a simple solution to the same problem. I've been developing for over 30 years and professionally with my own company not in a cubicle somewhere for over 15 and there has *never* in all that time been any real world situation where simplicity was not better. All the best solutions are both simple and elegant. Any developer who doesn't get that in their bones is not ready to take a lead on anything. Simplicity is the tao of programming, always has been, always will. Sure some solutions are required to be more complex than others due to the nature of the problem being addressed, that's just reality. But when given multiple ways to solve a problem the simplest choice is hands down always the best choice. Sometimes, rarely, there is only one solution and it is a complex solution. Rarely as in 1% of the time there are no other options. A complex solution to a problem is more often though a sign of lack of planning, thinking or just plain talent to see outside the box. I understand that many developers are cogs in a big machine, they sit in a cubicle somewhere and have the luxury of being self indulgent and playing with their employers time and money and the good will of the end users, I get that and the posts here in this thread pretty much reveal who is who in that department. In my line of work there is only one test that any technology or solution needs to pass: Is it better for the end user. And high on the list of "better" is getting it into their hands in a timely fashion so they can actually get their job done with it. It has to be good enough, not perfect, not cool, not flashy necessarily, just good enough for the end user to accomplish their tasks with it. If I worked for a big corporation and was making some kind of in-house app and given free reign and few constraints I'm sure I'd be dabbling with all the latest buzzword technology as well, it's human nature and I don't blame people for it, but in these tough economic times I think it's encumbent on all of us to focus more on the end result.


                  "Creating your own blog is about as easy as creating your own urine, and you're about as likely to find someone else interested in it." -- Lore Sjöberg

                  A Offline
                  A Offline
                  akidan
                  wrote on last edited by
                  #59

                  Let me attempt to rephrase. I am not saying that choosing a complex solution over a simple solution to the same problem is legitimate. What I am trying (perhaps failing) to state is that choosing either a complex or a simple solution to ANY problem without first truly understanding the problem at hand is uninformed. For example, the quicksort or mergesort algorithm is very complicated when compared to the bubblesort algorithm. You can elegantly express a bubblesort in most programming languages in three or four lines of code. However, for the vast majority of sorting problems, it is better to go with the more complex quicksort or mergesort versus the simpler bubblesort.

                  B 1 Reply Last reply
                  0
                  • A akidan

                    Let me attempt to rephrase. I am not saying that choosing a complex solution over a simple solution to the same problem is legitimate. What I am trying (perhaps failing) to state is that choosing either a complex or a simple solution to ANY problem without first truly understanding the problem at hand is uninformed. For example, the quicksort or mergesort algorithm is very complicated when compared to the bubblesort algorithm. You can elegantly express a bubblesort in most programming languages in three or four lines of code. However, for the vast majority of sorting problems, it is better to go with the more complex quicksort or mergesort versus the simpler bubblesort.

                    B Offline
                    B Offline
                    Brady Kelly
                    wrote on last edited by
                    #60

                    Far better to use the LINQ OrderBy method. :laugh:

                    A 1 Reply Last reply
                    0
                    • J JimmyRopes

                      I agree. "Let's ship the proof of concept and we will go back to refactor it later" is the third biggest lie. Lie #1 - I love you. Lie # 2 - maybe we shouldn't go into it here in the lounge. Lie # 3 - Let's ship the proof of concept and we will go back to refactor it later

                      Simply Elegant Designs JimmyRopes Designs
                      Think inside the box! ProActive Secure Systems
                      I'm on-line therefore I am. JimmyRopes

                      B Offline
                      B Offline
                      Brady Kelly
                      wrote on last edited by
                      #61

                      Never deliver a p.o.c. Just demo it.

                      1 Reply Last reply
                      0
                      • B Brady Kelly

                        Far better to use the LINQ OrderBy method. :laugh:

                        A Offline
                        A Offline
                        akidan
                        wrote on last edited by
                        #62

                        That's quicksort. :) Actually, I guess it depends on whether you're using IEnumerable or IQueryable...

                        1 Reply Last reply
                        0
                        Reply
                        • Reply as topic
                        Log in to reply
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes


                        • Login

                        • Don't have an account? Register

                        • Login or register to search.
                        • First post
                          Last post
                        0
                        • Categories
                        • Recent
                        • Tags
                        • Popular
                        • World
                        • Users
                        • Groups