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. Dumbing down code so it can be maintained by junior devs

Dumbing down code so it can be maintained by junior devs

Scheduled Pinned Locked Moved The Lounge
csharpjavascriptpythonlinqcom
107 Posts 50 Posters 2 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 Marc Clifton

    Maximilien wrote:

    Is it more a question of using the latest language tricks versus making the code more readable ?

    I agree, though I have no problem reading those examples. But I didn't know (and nothing comes up in google) that a ^ is what you use to index from the end of the array. If that's actually the case, I wish they'd just done what Ruby and Python do -- use negative numbers. But really, I'm not talking "tricky" code -- I'm talking about simple things like knowing how to use reflection, or how extension methods work and guidelines on when to use them, or basic things like threading -- async/await, Task, TPL, even Thread.

    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

    Richard DeemingR Offline
    Richard DeemingR Offline
    Richard Deeming
    wrote on last edited by
    #90

    Marc Clifton wrote:

    But I didn't know (and nothing comes up in google) that a ^ is what you use to index from the end of the array.

    The future of C# : Build 2018 - YouTube[^] - coverage of "ranges" starts at 55 minutes. Apparently, using negative numbers was ruled out in a language design meeting:

    Champion "slicing" / Range · Issue #185 · dotnet/csharplang · GitHub[^]:

    If we use negative numbers, we could make it work for ranges in cases like a[1..-1]. However, we would not be able to make a[-1] work since it already has a meaning in the language. In fact, it would be a pretty a scary breaking change to try and introduce that since it would no longer throw a runtime exception and would instead start returning unexpected values.


    "These people looked deep within my soul and assigned me a number based on the order in which I joined." - Homer

    "These people looked deep within my soul and assigned me a number based on the order in which I joined" - Homer

    1 Reply Last reply
    0
    • M Marc Clifton

      Ever been asked to do this? I seem to be encountering this more and more -- the last company I worked for, I left because that was stated explicitly by the CTO as the new policy. What would you do if you were told to do that? And by dumbing down, I mean doing things like avoiding LINQ (except for basic things), metadata, reflection, extension methods, and any of the C# 7.0 language features. It seems that long gone are the days when companies actually invest in keeping developer skills up to par with the technologies the company uses. Or even more amusingly (not) keeping those technologies up to date.

      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

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

      People have been asked to dumb down their answers around here on occassion ... so "everyone" will understand. As if "more questions" are to be discouraged on a particular topic. My first supervisor said I asked "too many questions". I stopped asking.

      "(I) am amazed to see myself here rather than there ... now rather than then". ― Blaise Pascal

      1 Reply Last reply
      0
      • M Marc Clifton

        Ever been asked to do this? I seem to be encountering this more and more -- the last company I worked for, I left because that was stated explicitly by the CTO as the new policy. What would you do if you were told to do that? And by dumbing down, I mean doing things like avoiding LINQ (except for basic things), metadata, reflection, extension methods, and any of the C# 7.0 language features. It seems that long gone are the days when companies actually invest in keeping developer skills up to par with the technologies the company uses. Or even more amusingly (not) keeping those technologies up to date.

        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

        G Offline
        G Offline
        Greg Lovekamp
        wrote on last edited by
        #92

        I don't recall being specifically asked to do this; however, that has always been my goal: to take the complex and make it simpler. As a senior developer, my primary job is to create code that can be maintained by others; not code that is the most efficient, nor the flashiest, nor bleeding edge. While those may occasionally be side effects, the PRIMARY goal is to generate maintainable code. Maintainable by people paid less than me, junior programmers who keep the simple systems running and modify as needed. If every system must be maintained by senior developers, the business will go bankrupt pretty quickly. To your last point about "keeping developer skills up to par with the technologies the company uses", it appears the company has simply chosen to use technologies requiring less skills. I don't see a problem with that though usage of such technologies may make you prefer to find a different employer.

        1 Reply Last reply
        0
        • M Marc Clifton

          GKP1992 wrote:

          I would suggest educating the newer members of your team at least the "features" that are commonly used in the project.

          Two things I've been noticing. There also seems to be a lack of motivation to learn from the senior people, and management is clueless so any "motivation" from that direction doesn't happen either. It seems that the young people nowadays have a different focus. The days of the "computer club" where people got together to learn things are long gone. Maybe in places like Google or Microsoft that kind of culture still exists, but I don't often see it in the "meat and potatoes" companies.

          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

          G Offline
          G Offline
          GKP1992
          wrote on last edited by
          #93

          Marc Clifton wrote:

          The days of the "computer club" where people got together to learn things are long gone.

          Ahh the truth. It's usually unpleasant. But that's what CP is for, isn't it? :)

          I am not the one who knocks. I never knock. In fact, I hate knocking.

          1 Reply Last reply
          0
          • R R Giskard Reventlov

            Munchies_Matt wrote:

            Why does the latest C++ 7 features make for a better product?

            I never said that it did.

            Munchies_Matt wrote:

            I asked you to define robust, in reference to a robust product. Do so before making assumptions.

            There was no assumption - just an inference based on your patronizing. The point here is to encourage engineers to write the best, most robust possible code. That does not necessarily mean using the very latest but most engineers will make it their business to both know about the latest developments and how they might fit it into their programming. You are welcome not to do that or to scoff at the idea of writing code that may cause junior devs to actually have to think and learn but they will not improve unless they challenge themselves. Writing dumbed-down code is dumb.

            Keep your friends close. Keep Kill your enemies closer. The End

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

            R. Giskard Reventlov wrote:

            I never said that it did.

            But that is what this thread is about.

            R. Giskard Reventlov wrote:

            Writing dumbed-down code is dumb

            Try working in the Kernel.... I write the simplest code I can. Laid out in the clearest fashion possible. Writing dumbed down code is clever. KISS, every heard of that? Throwing the latest 'must have' in the code, and making it unmaintainable by anyone without knowledge of that 'must have' is dumb. And it isnt just junior devs who fall foul of this stupidity, it is ANY dev who hasnt used that particular 'must have'. Like so many devs you evidently fall into the trap of believing the code is the product. It isnt. It is a representation of machine code. That is all. All languages produce machine code. Of course to remind you that at the end of the day VB achieves just the same as your precious wont be welcome, but that's a fact.

            R 1 Reply Last reply
            0
            • L Leng Vang

              You're not going to carve that table legs by hand with a rusty blade and charge customers 40 hours for each leg, are you? Hey it's made by hand and antique so the cost would be expensive. Most customers wouldn't pay for it. :)

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

              Is C++3 a rusty blade?

              1 Reply Last reply
              0
              • M Marc Clifton

                Munchies_Matt wrote:

                Is a carpenters job to make furniture, or to use the latest saw, plane, and screwdriver?

                To make furniture. But...when the hand-me-down tools are worn out, or there's a more efficient tool, or a specialized tool for just that particular requirement, then one should not try to "get away" with using "the wrong" tool. :) [edit]And often, a new tool requires training. And new safety protocols! :laugh: [/edit]

                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

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

                Marc Clifton wrote:

                worn out,

                C++ 3 is worn out is it?

                Marc Clifton wrote:

                specialized tool for just that particular requirement

                How does a customer requirement dictate that C++7 should be used in preference to C++3?

                1 Reply Last reply
                0
                • M Marc Clifton

                  Ever been asked to do this? I seem to be encountering this more and more -- the last company I worked for, I left because that was stated explicitly by the CTO as the new policy. What would you do if you were told to do that? And by dumbing down, I mean doing things like avoiding LINQ (except for basic things), metadata, reflection, extension methods, and any of the C# 7.0 language features. It seems that long gone are the days when companies actually invest in keeping developer skills up to par with the technologies the company uses. Or even more amusingly (not) keeping those technologies up to date.

                  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

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

                  KISS Sure you know what that means, and it applies to everything.

                  1 Reply Last reply
                  0
                  • M Munchies_Matt

                    R. Giskard Reventlov wrote:

                    I never said that it did.

                    But that is what this thread is about.

                    R. Giskard Reventlov wrote:

                    Writing dumbed-down code is dumb

                    Try working in the Kernel.... I write the simplest code I can. Laid out in the clearest fashion possible. Writing dumbed down code is clever. KISS, every heard of that? Throwing the latest 'must have' in the code, and making it unmaintainable by anyone without knowledge of that 'must have' is dumb. And it isnt just junior devs who fall foul of this stupidity, it is ANY dev who hasnt used that particular 'must have'. Like so many devs you evidently fall into the trap of believing the code is the product. It isnt. It is a representation of machine code. That is all. All languages produce machine code. Of course to remind you that at the end of the day VB achieves just the same as your precious wont be welcome, but that's a fact.

                    R Offline
                    R Offline
                    R Giskard Reventlov
                    wrote on last edited by
                    #98

                    Munchies_Matt wrote:

                    Like so many devs you evidently fall into the trap of believing the code is the product

                    I've been at this far too long to believe that. But I do believe I have a duty to write the best possible code to get the job done. If the latest incarnation visual widgets 35 help me do that, then I'll use it.

                    Munchies_Matt wrote:

                    Of course to remind you that at the end of the day VB achieves just the same as your precious <insert your cherished tool here> wont be welcome, but that's a fact.

                    The vast majority of our current code base is VB.Net and whilst what you say might be true, working with it feels like using a screwdriver as a hammer.

                    Keep your friends close. Keep Kill your enemies closer. The End

                    M 1 Reply Last reply
                    0
                    • R R Giskard Reventlov

                      Munchies_Matt wrote:

                      Like so many devs you evidently fall into the trap of believing the code is the product

                      I've been at this far too long to believe that. But I do believe I have a duty to write the best possible code to get the job done. If the latest incarnation visual widgets 35 help me do that, then I'll use it.

                      Munchies_Matt wrote:

                      Of course to remind you that at the end of the day VB achieves just the same as your precious <insert your cherished tool here> wont be welcome, but that's a fact.

                      The vast majority of our current code base is VB.Net and whilst what you say might be true, working with it feels like using a screwdriver as a hammer.

                      Keep your friends close. Keep Kill your enemies closer. The End

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

                      I think we agree, in principle, so do you also agree that using weird and esoteric features of a language is stupid? For example, and I forget the name, the ## stuff in C++.

                      R 1 Reply Last reply
                      0
                      • M Munchies_Matt

                        I think we agree, in principle, so do you also agree that using weird and esoteric features of a language is stupid? For example, and I forget the name, the ## stuff in C++.

                        R Offline
                        R Offline
                        R Giskard Reventlov
                        wrote on last edited by
                        #100

                        Munchies_Matt wrote:

                        do you also agree that using weird and esoteric features of a language is stupid?

                        Unless it is the best way to accomplish a task. But probably not unless I can see a benefit.

                        Keep your friends close. Keep Kill your enemies closer. The End

                        M 1 Reply Last reply
                        0
                        • R R Giskard Reventlov

                          Munchies_Matt wrote:

                          do you also agree that using weird and esoteric features of a language is stupid?

                          Unless it is the best way to accomplish a task. But probably not unless I can see a benefit.

                          Keep your friends close. Keep Kill your enemies closer. The End

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

                          So, does C++7 allow you to implement a requirement any better than C++3?

                          R 1 Reply Last reply
                          0
                          • M Munchies_Matt

                            So, does C++7 allow you to implement a requirement any better than C++3?

                            R Offline
                            R Offline
                            R Giskard Reventlov
                            wrote on last edited by
                            #102

                            I have not used c++ in over 15 years!

                            Keep your friends close. Keep Kill your enemies closer. The End

                            M 1 Reply Last reply
                            0
                            • R R Giskard Reventlov

                              I have not used c++ in over 15 years!

                              Keep your friends close. Keep Kill your enemies closer. The End

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

                              C# eh? :laugh: :laugh: :laugh: (Sorry, couldnt help it. Snigger snigger...) Because a change to the language is to make life *easier* for the programmer. So smart pointers, well, thats because they are too lazy to put deletes in the exception handlers. Garbage collection? Thats because they are too lazy to put deletes anywhere. Not that these are bad features, but they dont improve the product. (In fact some make it worse, like garbage collection. Ever wondered why code these days is so big, and uses so much memory?) The manager in the OP was absolutely right. If you dont control your nerdy devs they will fuck the product up with complexity and shite features, ,just because they like playing with new toys. (This is why so many devs are NOT engineers). And that explains why 'oldversion.com' exists, because devs fucked it up. The manager is right to put a tight rein on them.

                              R 1 Reply Last reply
                              0
                              • M Munchies_Matt

                                C# eh? :laugh: :laugh: :laugh: (Sorry, couldnt help it. Snigger snigger...) Because a change to the language is to make life *easier* for the programmer. So smart pointers, well, thats because they are too lazy to put deletes in the exception handlers. Garbage collection? Thats because they are too lazy to put deletes anywhere. Not that these are bad features, but they dont improve the product. (In fact some make it worse, like garbage collection. Ever wondered why code these days is so big, and uses so much memory?) The manager in the OP was absolutely right. If you dont control your nerdy devs they will fuck the product up with complexity and shite features, ,just because they like playing with new toys. (This is why so many devs are NOT engineers). And that explains why 'oldversion.com' exists, because devs fucked it up. The manager is right to put a tight rein on them.

                                R Offline
                                R Offline
                                R Giskard Reventlov
                                wrote on last edited by
                                #104

                                Munchies_Matt wrote:

                                C# eh?

                                Yes, c++ was too simple - needed more of a challenge. ;P

                                Keep your friends close. Keep Kill your enemies closer. The End

                                M 1 Reply Last reply
                                0
                                • R R Giskard Reventlov

                                  Munchies_Matt wrote:

                                  C# eh?

                                  Yes, c++ was too simple - needed more of a challenge. ;P

                                  Keep your friends close. Keep Kill your enemies closer. The End

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

                                  R. Giskard Reventlov wrote:

                                  Yes, c++ I was too simple - needed more too much of a challenge.

                                  FIFY. I take your lack of response as implicit agreement about the rest of my post. ;P

                                  R 1 Reply Last reply
                                  0
                                  • M Munchies_Matt

                                    R. Giskard Reventlov wrote:

                                    Yes, c++ I was too simple - needed more too much of a challenge.

                                    FIFY. I take your lack of response as implicit agreement about the rest of my post. ;P

                                    R Offline
                                    R Offline
                                    R Giskard Reventlov
                                    wrote on last edited by
                                    #106

                                    Munchies_Matt wrote:

                                    I take your lack of response as implicit agreement about the rest of my post

                                    If that makes you feel better...

                                    Keep your friends close. Keep Kill your enemies closer. The End

                                    1 Reply Last reply
                                    0
                                    • J Jalapeno Bob

                                      You sound like the type of boss I would like to work for!

                                      If your company is in central Texas and you are hiring, please tell me! I would be delighted to apply!

                                      __________________ Lord, grant me the serenity to accept that there are some things I just can’t keep up with, the determination to keep up with the things I must keep up with, and the wisdom to find a good RSS feed from someone who keeps up with what I’d like to, but just don’t have the damn bandwidth to handle right now. © 2009, Rex Hammock

                                      A Offline
                                      A Offline
                                      Ashman786
                                      wrote on last edited by
                                      #107

                                      Well, you sound like the type of employee a boss wants heheheh If you plan on moving to Melbourne, Australia... let me know :)

                                      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