title: Using shared libraries vs a single executable
body: <p>My colleague claims that we should dissect our C++ application (C++, Linux) into shared libraries to improve code modularity, testability and reuse.</p>
  
  <p>From my point of view it's a burden since the code we write does not need to be shared between applications on the same machine neither to be dynamically loaded or unloaded and we can simply link a monolithic executable application. </p>
  
  <p>Furthermore, wrapping C++ classes with C-function interfaces IMHO makes it uglier.</p>
  
  <p>I also think single-file application will be much more easy to upgrade remotely at a customer's site.</p>
  
  <p>Should dynamic libraries be used when there is no need to share binary code between applications and no dynamic code loading?</p>