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. What the elephant happened to OO design?

What the elephant happened to OO design?

Scheduled Pinned Locked Moved The Lounge
oopc++designhelpquestion
40 Posts 25 Posters 0 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.
  • C charlieg

    I know the 4 pillars of OOD - but my love is for abstraction and encapsulation. Polymorphism is useful, but I've found it confuses many developers. Inheritance results in hemorrhoids and other digestive issues, so unless I have a very, very generic object, I tend to avoid it. That said, it baffles me to the point of wanting to cut myself why encapsulation is ignored. I'm living in a static global world where we hack away every day... I have a file that contains data. Why would you not write a class to handle it? Every damn tool we have is a C++ compiler. :doh: I'm thinking that to advance software development to the next level, control c / control v must be banned.

    Charlie Gilley <italic>Stuck in a dysfunctional matrix from which I must escape... "Where liberty dwells, there is my country." B. Franklin, 1783 “They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759

    D Offline
    D Offline
    den2k88
    wrote on last edited by
    #14

    charlieg wrote:

    Inheritance results in hemorrhoids and other digestive issues

    Only if applied cluelessly (which I have done in several occasions and hopefully I learned from them though I wouldn't bet on it).

    charlieg wrote:

    I have a file that contains data.

    I have several of them.

    charlieg wrote:

    I'm thinking that to advance software development to the next level, control c / control v must be banned.

    You'd have fixed 90% of the bugs in our codebase and driven to the mental hospital one of my less favourite coworkers. Motion approved! When I begin a new project I encapsulate everything, and I do the same when I'm tasked to modify something that exists. The only problem in my environment is that we don't have a single product but about five hundreds of them and growing, all with more or less the same code at different points in time over 20 years but no shared file. Each version has its own copy and the source control is a plain .zip file. This means that I may have to fix the same thing over a dozen of times before it becomes the new baseline for the future - the existing products are still to be maintained with the old code and architecture.

    GCS d-- s-/++ a- C++++ U+++ P- L+@ E-- W++ N+ o+ K- w+++ O? M-- V? PS+ PE- Y+ PGP t+ 5? X R+++ tv-- b+(+++) DI+++ D++ G e++ h--- ++>+++ y+++*      Weapons extension: ma- k++ F+2 X

    1 Reply Last reply
    0
    • C charlieg

      I know the 4 pillars of OOD - but my love is for abstraction and encapsulation. Polymorphism is useful, but I've found it confuses many developers. Inheritance results in hemorrhoids and other digestive issues, so unless I have a very, very generic object, I tend to avoid it. That said, it baffles me to the point of wanting to cut myself why encapsulation is ignored. I'm living in a static global world where we hack away every day... I have a file that contains data. Why would you not write a class to handle it? Every damn tool we have is a C++ compiler. :doh: I'm thinking that to advance software development to the next level, control c / control v must be banned.

      Charlie Gilley <italic>Stuck in a dysfunctional matrix from which I must escape... "Where liberty dwells, there is my country." B. Franklin, 1783 “They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759

      R Offline
      R Offline
      Rage
      wrote on last edited by
      #15

      I would have agreed with you even still 2 years ago. Now I am really facing the market reality, and I am less evangelistic about holy code. Actually, getting things done faster and cheaper has superseded the need of quality - alas - and people do not care about quality anymore. Security issues in Facebook due to poor coding ? After a bit of show from Zuckerberg, everybody has already forgotten. Thousands and thousands of bugs in Microsoft products ? People earn money by blogging and youtubing about workarounds. So if the demand is "please get me this done for yesterday and for no money", then copy & paste code is plain OK. In my current position, which gets a bit above the boundaries of SW development, management made the choice to get products done and tested in low-cost locations, with a ratio of 3 people designing for 2 people fixing the design mistakes as they pop up in series production. Altogether, these 5 people are still 1/3 the cost of one solid and experienced engineer here and they are processing about 2 to 3 times as much projects, so ... The trend in the industry is to get low-cost locations do rapid-prototyping as product design and rapid-fixing on a case to case demand, since - unless very bis issues - nobody cares about quality. The experience of the designers in low -cost locations grow faster than their cost, so in about 2 to 3 years, we can expect an equivalent design skill as in high-cost locations, but for still half of the price, and the 2 fixing guys can probably be reduced to 1. The only sacrificed element in all this is a bit of quality, but foremost innovation - future will tell if the business model can survive.

      Do not escape reality : improve reality !

      N 1 Reply Last reply
      0
      • C charlieg

        I know the 4 pillars of OOD - but my love is for abstraction and encapsulation. Polymorphism is useful, but I've found it confuses many developers. Inheritance results in hemorrhoids and other digestive issues, so unless I have a very, very generic object, I tend to avoid it. That said, it baffles me to the point of wanting to cut myself why encapsulation is ignored. I'm living in a static global world where we hack away every day... I have a file that contains data. Why would you not write a class to handle it? Every damn tool we have is a C++ compiler. :doh: I'm thinking that to advance software development to the next level, control c / control v must be banned.

        Charlie Gilley <italic>Stuck in a dysfunctional matrix from which I must escape... "Where liberty dwells, there is my country." B. Franklin, 1783 “They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759

        M Offline
        M Offline
        Munchies_Matt
        wrote on last edited by
        #16

        charlieg wrote:

        control c / control v

        Hey, isnt cloning mans answer to evolution? :)

        1 Reply Last reply
        0
        • D dan sh

          charlieg wrote:

          I'm living in a static global world

          My World is pretty dynamic.

          charlieg wrote:

          control c / control v must be banned

          No! I don't want to type that same basic template for model classes again and again. This and other goodies are there in my repository of common things I need in almost every project I work on. And I will copy and paste them. Wow, I am gansta!

          "It is easy to decipher extraterrestrial signals after deciphering Javascript and VB6 themselves.", ISanti[^]

          C Offline
          C Offline
          charlieg
          wrote on last edited by
          #17

          the control c / control v comment was mostly in jest... mostly. ;)

          Charlie Gilley <italic>Stuck in a dysfunctional matrix from which I must escape... "Where liberty dwells, there is my country." B. Franklin, 1783 “They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759

          1 Reply Last reply
          0
          • C charlieg

            I know the 4 pillars of OOD - but my love is for abstraction and encapsulation. Polymorphism is useful, but I've found it confuses many developers. Inheritance results in hemorrhoids and other digestive issues, so unless I have a very, very generic object, I tend to avoid it. That said, it baffles me to the point of wanting to cut myself why encapsulation is ignored. I'm living in a static global world where we hack away every day... I have a file that contains data. Why would you not write a class to handle it? Every damn tool we have is a C++ compiler. :doh: I'm thinking that to advance software development to the next level, control c / control v must be banned.

            Charlie Gilley <italic>Stuck in a dysfunctional matrix from which I must escape... "Where liberty dwells, there is my country." B. Franklin, 1783 “They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759

            C Offline
            C Offline
            Chris C B
            wrote on last edited by
            #18

            charlieg wrote:

            I'm thinking that to advance software development to the next level, control c / control v must be banned.

            I wouldn't dream of using control c / control v... ...now that I've coded them into a couple of redundant gaming keys. :-\

            1 Reply Last reply
            0
            • R Rage

              I would have agreed with you even still 2 years ago. Now I am really facing the market reality, and I am less evangelistic about holy code. Actually, getting things done faster and cheaper has superseded the need of quality - alas - and people do not care about quality anymore. Security issues in Facebook due to poor coding ? After a bit of show from Zuckerberg, everybody has already forgotten. Thousands and thousands of bugs in Microsoft products ? People earn money by blogging and youtubing about workarounds. So if the demand is "please get me this done for yesterday and for no money", then copy & paste code is plain OK. In my current position, which gets a bit above the boundaries of SW development, management made the choice to get products done and tested in low-cost locations, with a ratio of 3 people designing for 2 people fixing the design mistakes as they pop up in series production. Altogether, these 5 people are still 1/3 the cost of one solid and experienced engineer here and they are processing about 2 to 3 times as much projects, so ... The trend in the industry is to get low-cost locations do rapid-prototyping as product design and rapid-fixing on a case to case demand, since - unless very bis issues - nobody cares about quality. The experience of the designers in low -cost locations grow faster than their cost, so in about 2 to 3 years, we can expect an equivalent design skill as in high-cost locations, but for still half of the price, and the 2 fixing guys can probably be reduced to 1. The only sacrificed element in all this is a bit of quality, but foremost innovation - future will tell if the business model can survive.

              Do not escape reality : improve reality !

              N Offline
              N Offline
              Nathan Minier
              wrote on last edited by
              #19

              As a guy that wears a cybersecurity hat, I thank you for ensuring my future employment ;P

              "There are three kinds of lies: lies, damned lies and statistics." - Benjamin Disraeli

              1 Reply Last reply
              0
              • C charlieg

                I know the 4 pillars of OOD - but my love is for abstraction and encapsulation. Polymorphism is useful, but I've found it confuses many developers. Inheritance results in hemorrhoids and other digestive issues, so unless I have a very, very generic object, I tend to avoid it. That said, it baffles me to the point of wanting to cut myself why encapsulation is ignored. I'm living in a static global world where we hack away every day... I have a file that contains data. Why would you not write a class to handle it? Every damn tool we have is a C++ compiler. :doh: I'm thinking that to advance software development to the next level, control c / control v must be banned.

                Charlie Gilley <italic>Stuck in a dysfunctional matrix from which I must escape... "Where liberty dwells, there is my country." B. Franklin, 1783 “They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759

                realJSOPR Offline
                realJSOPR Offline
                realJSOP
                wrote on last edited by
                #20

                Polymorphism is DAMN useful. MS broke inheritance in .net when they coded themselves into a corner resulting in the seemingly arbitrary restriction that a programmer could only inherit from a single class, but multiple interfaces. What a crock. None of these OOP constructs would be confusing if instructors actually knew how to, oh, I don't know - INSTRUCT.

                ".45 ACP - because shooting twice is just silly" - JSOP, 2010
                -----
                You can never have too much ammo - unless you're swimming, or on fire. - JSOP, 2010
                -----
                When you pry the gun from my cold dead hands, be careful - the barrel will be very hot. - JSOP, 2013

                N 1 Reply Last reply
                0
                • realJSOPR realJSOP

                  Polymorphism is DAMN useful. MS broke inheritance in .net when they coded themselves into a corner resulting in the seemingly arbitrary restriction that a programmer could only inherit from a single class, but multiple interfaces. What a crock. None of these OOP constructs would be confusing if instructors actually knew how to, oh, I don't know - INSTRUCT.

                  ".45 ACP - because shooting twice is just silly" - JSOP, 2010
                  -----
                  You can never have too much ammo - unless you're swimming, or on fire. - JSOP, 2010
                  -----
                  When you pry the gun from my cold dead hands, be careful - the barrel will be very hot. - JSOP, 2013

                  N Offline
                  N Offline
                  Nish Nishant
                  wrote on last edited by
                  #21

                  Well, it as not something Microsoft came up with. Languages like Java had that way before C# did. People moving from C++ usually find it an annoying restriction but after a few years of coding in C# or Java, most people usually find it to not be much of a limiting factor at all. And compiler authors don't have to deal with the diamond problem and all the complexities it adds to the compiler definitions.

                  Nish Nishant Consultant Software Architect Ganymede Software Solutions LLC www.ganymedesoftwaresolutions.com

                  realJSOPR 1 Reply Last reply
                  0
                  • D Daniel Pfeffer

                    Nothing has happened to OOD; it is still a very powerful design tool. The problem is the severe shortage (and consequent high salaries) of good software engineers. In lieu of decent software engineers, companies hire programmers who are a lot cheaper, are much easier to find, but could not use proper design to save their lives. Make no mistake; within their limitations, some of them are very good coders. If they were to be exposed to proper design principles (and some decent mentoring), some of them could become decent software engineers. The problem with the more capable ones is that they have no idea that OOD and other design tools even exist!

                    Freedom is the freedom to say that two plus two make four. If that is granted, all else follows. -- 6079 Smith W.

                    M Offline
                    M Offline
                    Marc Clifton
                    wrote on last edited by
                    #22

                    Daniel Pfeffer wrote:

                    The problem is the severe shortage (and consequent high salaries) of good software engineers. In lieu of decent software engineers, companies hire programmers who are a lot cheaper, are much easier to find, but could not use proper design to save their lives.

                    And then said companies tell the remaining few senior devs to dumb down their code so the juniors can understand it, because the code reflects a well thought out design that befuddles those that don't have good design skills! :laugh:

                    Latest Article - Building a Prototype Web-Based Diagramming Tool with SVG and Javascript Learning to code with python is like learning to swim with those little arm floaties. It gives you undeserved confidence and will eventually drown you. - DangerBunny Artificial intelligence is the only remedy for natural stupidity. - CDP1802

                    D 1 Reply Last reply
                    0
                    • C charlieg

                      I know the 4 pillars of OOD - but my love is for abstraction and encapsulation. Polymorphism is useful, but I've found it confuses many developers. Inheritance results in hemorrhoids and other digestive issues, so unless I have a very, very generic object, I tend to avoid it. That said, it baffles me to the point of wanting to cut myself why encapsulation is ignored. I'm living in a static global world where we hack away every day... I have a file that contains data. Why would you not write a class to handle it? Every damn tool we have is a C++ compiler. :doh: I'm thinking that to advance software development to the next level, control c / control v must be banned.

                      Charlie Gilley <italic>Stuck in a dysfunctional matrix from which I must escape... "Where liberty dwells, there is my country." B. Franklin, 1783 “They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759

                      M Offline
                      M Offline
                      Marc Clifton
                      wrote on last edited by
                      #23

                      charlieg wrote:

                      Why would you not write a class to handle it?

                      It's called "dumbing down." ;P

                      Latest Article - Building a Prototype Web-Based Diagramming Tool with SVG and Javascript Learning to code with python is like learning to swim with those little arm floaties. It gives you undeserved confidence and will eventually drown you. - DangerBunny Artificial intelligence is the only remedy for natural stupidity. - CDP1802

                      1 Reply Last reply
                      0
                      • N Nish Nishant

                        Well, it as not something Microsoft came up with. Languages like Java had that way before C# did. People moving from C++ usually find it an annoying restriction but after a few years of coding in C# or Java, most people usually find it to not be much of a limiting factor at all. And compiler authors don't have to deal with the diamond problem and all the complexities it adds to the compiler definitions.

                        Nish Nishant Consultant Software Architect Ganymede Software Solutions LLC www.ganymedesoftwaresolutions.com

                        realJSOPR Offline
                        realJSOPR Offline
                        realJSOP
                        wrote on last edited by
                        #24

                        Nish Nishant wrote:

                        People moving from C++ usually find it an annoying restriction

                        That's me - in spades...

                        Nish Nishant wrote:

                        but after a few years of coding in C# or Java, most people usually find it to not be much of a limiting factor at all

                        Nope. Still annoying, even after 11 years of coding in C#. I'm honestly not interested or concerned with the burdens experienced by compiler authors. The only reason C# even exists is because Microslop was bitch-slapped for trying to take over the java domain. It's okay, though. I'm old, and soon I'll be dead, allowing Microsoft to continue on unmolested, because soy-boys willingly accept their assault on programming languages, and all the real programmers that raged against their absurdities will have passed away. Eventually, you'll be able to write complete programs with a series of words like "flopgloop" and "pardultary". No matter what order you place them in, the app will still compile, but the functionality will change. EDIT ============== Microslop has proven once again they don't have any original thoughts left, by purchasing GitHub.

                        ".45 ACP - because shooting twice is just silly" - JSOP, 2010
                        -----
                        You can never have too much ammo - unless you're swimming, or on fire. - JSOP, 2010
                        -----
                        When you pry the gun from my cold dead hands, be careful - the barrel will be very hot. - JSOP, 2013

                        1 Reply Last reply
                        0
                        • C charlieg

                          I know the 4 pillars of OOD - but my love is for abstraction and encapsulation. Polymorphism is useful, but I've found it confuses many developers. Inheritance results in hemorrhoids and other digestive issues, so unless I have a very, very generic object, I tend to avoid it. That said, it baffles me to the point of wanting to cut myself why encapsulation is ignored. I'm living in a static global world where we hack away every day... I have a file that contains data. Why would you not write a class to handle it? Every damn tool we have is a C++ compiler. :doh: I'm thinking that to advance software development to the next level, control c / control v must be banned.

                          Charlie Gilley <italic>Stuck in a dysfunctional matrix from which I must escape... "Where liberty dwells, there is my country." B. Franklin, 1783 “They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759

                          L Offline
                          L Offline
                          Lost User
                          wrote on last edited by
                          #25

                          Some people think that they are programming, simply by blindly copying/pasting working blocks of code and "search" the internet for other snippets to copy. Ask for a minor change, and they'll replace the entire block by another that has been "found".

                          Bastard Programmer from Hell :suss: If you can't read my code, try converting it here[^] "If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.

                          1 Reply Last reply
                          0
                          • C charlieg

                            I know the 4 pillars of OOD - but my love is for abstraction and encapsulation. Polymorphism is useful, but I've found it confuses many developers. Inheritance results in hemorrhoids and other digestive issues, so unless I have a very, very generic object, I tend to avoid it. That said, it baffles me to the point of wanting to cut myself why encapsulation is ignored. I'm living in a static global world where we hack away every day... I have a file that contains data. Why would you not write a class to handle it? Every damn tool we have is a C++ compiler. :doh: I'm thinking that to advance software development to the next level, control c / control v must be banned.

                            Charlie Gilley <italic>Stuck in a dysfunctional matrix from which I must escape... "Where liberty dwells, there is my country." B. Franklin, 1783 “They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759

                            P Offline
                            P Offline
                            patbob
                            wrote on last edited by
                            #26

                            charlieg wrote:

                            why encapsulation is ignored

                            Because history repeats.

                            I live in Oregon, and I'm an engineer.

                            1 Reply Last reply
                            0
                            • M Marc Clifton

                              Daniel Pfeffer wrote:

                              The problem is the severe shortage (and consequent high salaries) of good software engineers. In lieu of decent software engineers, companies hire programmers who are a lot cheaper, are much easier to find, but could not use proper design to save their lives.

                              And then said companies tell the remaining few senior devs to dumb down their code so the juniors can understand it, because the code reflects a well thought out design that befuddles those that don't have good design skills! :laugh:

                              Latest Article - Building a Prototype Web-Based Diagramming Tool with SVG and Javascript Learning to code with python is like learning to swim with those little arm floaties. It gives you undeserved confidence and will eventually drown you. - DangerBunny Artificial intelligence is the only remedy for natural stupidity. - CDP1802

                              D Offline
                              D Offline
                              Daniel Pfeffer
                              wrote on last edited by
                              #27

                              :sigh:

                              Freedom is the freedom to say that two plus two make four. If that is granted, all else follows. -- 6079 Smith W.

                              1 Reply Last reply
                              0
                              • Sander RosselS Sander Rossel

                                charlieg wrote:

                                control c / control v must be banned

                                Couldn't agree more. I once worked with a guy who copy/pasted everything and had no idea what it actually was he did. He used someCollection.Where(x => x.MeetsCriteria()); every day for over a year. Then I noticed he used bool any = c.Where(...).Count() > 0; I told him to use someCollection.Any(...) instead because it's a lot cheaper and more readable. However, he did not understand the types of the input parameters to Any(Expression> predicate) or the even simpler Any(Func predicate). Spoiler: Where and Any have the exact same input parameter. He literally told me "I know I type 'Where' and then some letter, whatever that is, and then '=>' and then I can magically use properties on the objects of a collection. I didn't know it was the same for Any, I never knew the parameter type." :omg: :wtf: :~ X| Since then I've told that guy NEVER to copy/paste again, it's a right that needs to be deserved and he clearly didn't deserve it X| Of course he kept on copy/pasting because that was all he could... A useful code monkey, he had his place, but he needed a lot of guidance.

                                Best, Sander Continuous Integration, Delivery, and Deployment arrgh.js - Bringing LINQ to JavaScript Object-Oriented Programming in C# Succinctly

                                T Offline
                                T Offline
                                theokr
                                wrote on last edited by
                                #28

                                You can't be serious? That's both hilarious and infuriating.

                                Sander RosselS 1 Reply Last reply
                                0
                                • C charlieg

                                  I know the 4 pillars of OOD - but my love is for abstraction and encapsulation. Polymorphism is useful, but I've found it confuses many developers. Inheritance results in hemorrhoids and other digestive issues, so unless I have a very, very generic object, I tend to avoid it. That said, it baffles me to the point of wanting to cut myself why encapsulation is ignored. I'm living in a static global world where we hack away every day... I have a file that contains data. Why would you not write a class to handle it? Every damn tool we have is a C++ compiler. :doh: I'm thinking that to advance software development to the next level, control c / control v must be banned.

                                  Charlie Gilley <italic>Stuck in a dysfunctional matrix from which I must escape... "Where liberty dwells, there is my country." B. Franklin, 1783 “They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759

                                  K Offline
                                  K Offline
                                  KBZX5000
                                  wrote on last edited by
                                  #29

                                  In my experience (~= 15 years of research about minimalistic design approaches) OOD is a flawed concept. In theory, there's nothing wrong with it and it should lead to a better than average design, consistently. In practice, abstraction is horrible, because people are really awful at defining, sharing and accepting the initial purpose of abstracted objects. In part, this is because making the abstraction is rewarding in and of itself, while accepting an existing one is horrendously tedious. The only form of OOD that seems to work consistently, is when you severely limit it to communication interfaces, DBO's and DTO's and drop polymorphism and inheritance all together. Anything else, and people will misinterpret the abstracts made and muck it up beyond comprehension. Also, reusability at object level is a maintenance nightmare. Reusability at API level is where it's at.

                                  1 Reply Last reply
                                  0
                                  • C charlieg

                                    I know the 4 pillars of OOD - but my love is for abstraction and encapsulation. Polymorphism is useful, but I've found it confuses many developers. Inheritance results in hemorrhoids and other digestive issues, so unless I have a very, very generic object, I tend to avoid it. That said, it baffles me to the point of wanting to cut myself why encapsulation is ignored. I'm living in a static global world where we hack away every day... I have a file that contains data. Why would you not write a class to handle it? Every damn tool we have is a C++ compiler. :doh: I'm thinking that to advance software development to the next level, control c / control v must be banned.

                                    Charlie Gilley <italic>Stuck in a dysfunctional matrix from which I must escape... "Where liberty dwells, there is my country." B. Franklin, 1783 “They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759

                                    D Offline
                                    D Offline
                                    DerekT P
                                    wrote on last edited by
                                    #30

                                    charlieg wrote:

                                    control c / control v must be banned

                                    No problem with that. I use shift-delete / shift-insert. :-D

                                    E 1 Reply Last reply
                                    0
                                    • D DerekT P

                                      charlieg wrote:

                                      control c / control v must be banned

                                      No problem with that. I use shift-delete / shift-insert. :-D

                                      E Offline
                                      E Offline
                                      englebart
                                      wrote on last edited by
                                      #31

                                      I think you mean control+insert / shift+insert shift+delete is the same as control+X as further evidence about MS lack of originality per a previous post. Control + C, V, X were copied from Apple's Macintosh.

                                      D 1 Reply Last reply
                                      0
                                      • C charlieg

                                        I know the 4 pillars of OOD - but my love is for abstraction and encapsulation. Polymorphism is useful, but I've found it confuses many developers. Inheritance results in hemorrhoids and other digestive issues, so unless I have a very, very generic object, I tend to avoid it. That said, it baffles me to the point of wanting to cut myself why encapsulation is ignored. I'm living in a static global world where we hack away every day... I have a file that contains data. Why would you not write a class to handle it? Every damn tool we have is a C++ compiler. :doh: I'm thinking that to advance software development to the next level, control c / control v must be banned.

                                        Charlie Gilley <italic>Stuck in a dysfunctional matrix from which I must escape... "Where liberty dwells, there is my country." B. Franklin, 1783 “They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759

                                        S Offline
                                        S Offline
                                        Steve Naidamast
                                        wrote on last edited by
                                        #32

                                        Everything I develop is centered around OOD/OOP as I use objects for the organizational constructs of my projects. However, with very rare exception I do not use inheritance due to the many problems that senior software engineering analysts have found with it over the years. This is not to say that inheritance is a bad concept but that it has to be used sparingly and carefully. Unfortunately, many developers rush into using it thinking that it is the real meaning of OOD. When I was learning OOD many years ago I actually studied the history of its invention in Sweden (Simula-67). My conclusion was that it was created so that developers could better organize their development endeavors, not for the primary constructs that people promote. In business applications, in general, there is little actual need for the use of inheritance and polymorphism, though there are applications that certainly could make good use of these attributes. However, here I am speaking generally. As OOD emerged in popularity within the development community a small book was produced by a computer scientist back in the 1980s. This book went through all of the types of applications that could truly benefit from the use of OOD. None of the applications related to business development as all were from the scientific and internals communities. In addition, the use of generic modules and the concepts of reuse were completely disproven many years ago simply from the statistical studies that were made against so many such projects. Generic modules are nearly impossible to create as regular implementations into most applications since such modules must be relatively static in nature (ie: date validation module). The rise of popularity of generically designed modules was a direct result of incompetent technical managers who tried to foresee every possibility for any module developed. The result was terrible frustrations on the part of developers and projects that did not succeed very well if at all. This was because, in reality, very few modules can be designed to be generic just like not every type of design can be shoe-horned into being an "Expert System" when that too was a craze in the late 1980s and early 1990s. Object re-use failed as a direct result of organizations not setting up working repositories for re-usable modules that were designed to be used in such a manner (ie: data access layer). The result here, and which was eventually written about in our technical journals was that development teams\developers si

                                        1 Reply Last reply
                                        0
                                        • E englebart

                                          I think you mean control+insert / shift+insert shift+delete is the same as control+X as further evidence about MS lack of originality per a previous post. Control + C, V, X were copied from Apple's Macintosh.

                                          D Offline
                                          D Offline
                                          DerekT P
                                          wrote on last edited by
                                          #33

                                          Actually no, I do mean shift-delete + shift-insert. (I find it easier to cut and immediately paste, then paste the copy). No need to move the right hand then. ) Also means that VS marks the "copied from" line as changed, which is a useful reminder when scrolling back to copy other code from the same area.

                                          E 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