Over the years as a (part-time) programmer I’ve written a huge amount of code.  The specific languages I’ve used have included mainframe assembler, FORTRAN, Pascal, various flavours of BASIC, Visual Basic, Visual C++, C++ native, PHP, Perl, CLISTS, shell scripts of various types, Python, HTML, Java, Javascript and frameworks like Microsoft .NET.  With any of these platforms, getting the environment right was always a big part of setup, including having the right IDE and compiling against the correct libraries.  This was particularly the case with the Microsoft development tools, in order to avoid “DLL Hell”.

So, with all this in mind, the Docker for Windows and Mac announcements had my interest; the reason being the ability to write and debug code in a framework and language that is non-native to the device itself.  As an example, I have multiple VMs that I keep in order to write .NET code.  I can’t directly do that on the various Mac devices I have, so I need to keep Windows VMs around to do that work.  Wouldn’t it be nice to write and debug code on a Mac that directly works with the Microsoft framework?  This is exactly what Docker for Mac offers, now without the need to run a dedicated container VM in Virtual Box.

Mark Russinovich used the Day 2 keynote at DockerCon 2016 to demo the ability to debug an application based on .NET code, running SQL Server on Linux with some of the application sitting in Azure and some on a local Azure Stack deployment onstage.  All of this was edited and managed with Docker for Mac.  The demos we’ve seen of this have been pretty powerful.  The reason it works is that the code is run and tested within a container on your local machine and that container has all the runtimes and dependencies in it.  This should also make it really easy to move between environments.  Imagine the “old days” of using platforms like Visual Studio where you didn’t want to upgrade to the latest/later version because your code was downlevel and you didn’t want to change that.  Now you don’t have to worry as each container can have the application specific requirements in it, not your development machine.

The Architect’s View

I don’t really do a lot of development these days, however I can appreciate the benefit that the new Docker for Windows and Mac offers.  A lot of discussions over the last two days have asked the question of why to move applications to containers.  It’s easy to see that part of the benefit is in the ability to rapidly develop and deploy applications.  Much of the previous thinking with containers focused on how easy to deploy and lightweight they were.  In reality, this is appearing to be a secondary consideration over the ability to create, modify and deploy application code effectively.

Further Reading

Docker for Mac and Windows is now in public beta.  Check out the blog and links below for more information.


Comments are always welcome; please read our Comments Policy first.  If you have any related links of interest, please feel free to add them as a comment for consideration.  

Copyright (c) 2009-2016 – Chris M Evans, first published on https://blog.architecting.it, do not reproduce without permission.

Written by Chris Evans

With 30+ years in IT, Chris has worked on everything from mainframe to open platforms, Windows and more. During that time, he has focused on storage, developed software and even co-founded a music company in the late 1990s. These days it's all about analysis, advice and consultancy.

1 Comment

Comments are closed.