How do appropriate DLLs make life easy for Users and Developers?
Assembling a fresh system is a tough and gruelling task. From deciding your build, to negotiating for the perfect price, assembling your system to the first time you boot it up. Every step is an intense and gritty process. While of course the Central Processing Unit (CPU) is the brain of the computer, your Operating System (OS) is the actual foundational interface and the medium through the end user i.e. the reader, connects with all this complicated hardware. However, setting up an Operating System from scratch is hard, you may have to download msvcr100.dll and similar prerequisites, dependencies and co-dependencies that a modern piece of software needs to function properly at a brisk pace, while being able to show off its bells and whistles while executing any workload given to it at a breakneck pace. Writing programs and compiling code is one of the hardest jobs in the world. One may imagine that everything is done from scratch in every iteration of every piece of software that has been created. For example, when Windows Vista was released, Microsoft engineers threw out all the codebase, material, and research done for Windows XP. However, that is not the case, legacy software and code exists in the latest iteration of all types of software as well. Many times for ensuring legacy compatibility. For example, Word 2007 and before versions use .doc file extension while newer ones use .docx. But the latest version of MS Office still maintains compatibility with the older files by having the means and knowledge to be able to execute, open and edit these older files. While one may think that this instance means that engineers have to re-write all parts and permutations in a program at the start of every turn. In reality, this occurs with the help of software libraries, that are co-dependencies coded at various phases in development. The basic tenet of a library is to provide a ready-to-go solution for computational tasks that will be required to be undertaken in quick succession in every operation cycle, by a huge number of programs in any given operating system and by any user. For example, the graphics rendering pipeline, often referred to the DirectX API in Windows, is a quick library, that offers an easy method to translate rendering commands from any end program thats being used by the end user at any given moment into easy to execute code to the Central Processing Unit and the Graphics Processing Unit so that it may be rendered onto your display. In Windows, the most popular way the concepts of library manifest are Dynamic Link Library, or DLL files. They are prerequisites and vary depending on the software and purpose. For Example, if you download msvcr100.dll, that is a DLL from the Visual Studio C++ Library. C++ in itself is one of the foundational languages for writing, compiling, executing and testing code on the Windows platform, as C++ was and is the bedrock for the kernel level programming for all types of Windows. As a result of this close interconnectedness of the Dynamic Link Library files and almost every command thats executed on a copy of Modern Windows, its important that these files are setup and located in a manner in which the system, and any application that may wish to access it, be easily able to do so. Hence, say one attempts to download msvcr100.dll, then this files would be located either in the Windows primary folders (System32 and the like), or directly with the primary executable of any application that may wish to run it.