home bbs files messages ]

Forums before death by AOL, social media and spammers... "We can't have nice things"

   comp.lang.c++.moderated      Moderated discussion of C++ superhackery      33,346 messages   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]

   Message 31,953 of 33,346   
   Fernando Cacciola to All   
   Re: A source for continuing C++ educatio   
   22 Feb 12 23:11:47   
   
   From: fernando.cacciola@gmail.com   
      
   > (to /all/ readers, please share your own   
   > experience in having the opportunity to research and experiment with the   
   > company's code base)   
   >   
   I don't think I can properly stretch the importance of this and the extent of   
   the value added to a company when the methods, techniques, architecture,   
   design,   
   code and test environment that makes a software system are being actively   
   mantained up to date.   
      
   When I was an employee, a long time ago, I had the pleasure to work in a   
   company   
   that understood all that. I had the freedom to research, experiment and heavily   
   refactor the codebase.   
      
   To give some random examples, I'm talking about these sort of things:   
      
   * moving away from my own containers and algorithms to the STL when it first   
   came out, circa '98   
      
   * moving from error codes to exceptions when compilers finally implemented it   
   correctly   
      
   * moving from my own very complex automated memory management (with memory   
   pools, complicated contracts and such) to boost::shared_ptr   
      
   * moving from a classic object-oriented code base full of dynamic polimorphism   
   to heavy generic programming (and even meta-programming) full of *much faster*   
   static polymorphism.   
      
   I hope you can imagine the depth of changes, both in codebase and skillset,   
   these examples showcase.   
      
   Now... doing that often took as much as *months*, so the company invested *a   
   lot* of money on it. Not only in the implementation but also learning and   
   experimenting with all the new things coming out. Sometimes we just read a book   
   top to bottom, along a week or two (or even more), then play with the new   
   elements.   
      
   Was it worth it to the company?   
      
   I worked there for 8 years, and I left about 9 years ago, so there is code   
   originally older than 15 years back, but which evolved through all those years.   
      
   They still release a new version of the software every 12 months or so, with   
   new   
   features, bugs fixes, etc... So I would say that, YES, it was woth every penny.   
      
   IME/O, an application can only stay at the top of the game with a codebase that   
   old (and that one is a baby compared to many) when refactoring is seriously   
   integrated into the lifecycle of the application.   
      
   Ever since, now with my own company, I kept pushing for serious refactoring   
   whenever the "technology" evolves far enough.   
   Another example: for our biggest client (a codebase almost 10 years old   
   already), refactoring, which we did several times, involved for instance moving   
   critical subsystems from C# to C++/CLI when it finally came out, and these   
   days,   
   thanks to the GoingNative movement, we are moving even further down (or should   
   I   
   say up??) to C++ !!   
      
   [this company started out rejecting C++ as a development language in favor of   
   C#   
   but we've managed to show them how, why and when C++ was a better alternative,   
   but this is a different topic]   
      
   Best   
      
      
   --   
   Fernando Cacciola   
   SciSoft Consulting, Founder   
   http://www.scisoft-consulting.com   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca