4 ms·
I've been using docker for a couple months but I still learned some new stuff. Awesome tutorial! Docker should be required learning in any CS program. I cannot
by alistproducer2 10y ago
I've been using docker for a couple months but I still learned some new stuff. Awesome tutorial! Docker should be required learning in any CS program. I cannot fathom why anyone would setup environments any other way.
- andrewchambers 10y agoDocker isn't the only way, or always even a good way to do things. A better requirement would be to teach people how to write software that isn't a giant mess of dependencies that can't be recreated without the additional complexity of docker.
- alistproducer2 10y agoI admit my wording was not as good as it could have been. I also agree that good engineering fundamental should be taught; however, Docker is a tool like any other. It can be used for both good and evil.
- pawadu 10y agoDo you think CS programs should teach someframework.js too? Where is the Science in using stuff other people have put together (and then written a detailed instruction on how to use it)?
- eggman 10y agoare there different ways to put boards together so that they all run *nix? or are intel, asus, msi and gigabyte all doing the same thing?
- alistproducer2 10y agoSerious question: have you been through a CS program? In addition to the mathematical and theoretical underpinnings of the discipline, a large part of what is taught is how to engineer software. IMO Docker is a major step forward in software engineering, this is why I believe it should be taught.
- davexunit 10y ago>IMO Docker is a major step forward in software engineering And a lot of people, myself included, disagree. Docker is a huge step backwards because it is covering up the major underlying issues of package management. It's a sledgehammer solution to a problem for which more composable, elegant solutions exist.
- pawadu 10y agoSerious answer: a good CS program does not waste time teaching a particular use of a particular technology that may or may not be in use by the time the student has graduated. Instead, it ensures that the student has the base knowledge and research technique to learn that technology in a weekend when/if he needs it.
- stirner 10y agoDocker is a (useful) compromise to help people deal with unmanageable, sloppy software. If students learn how to write simple, portable software, the need for compromises like Docker is reduced.
- dorfsmay 10y agoDocker is one of the way to bind infrastructure dependencies with a version of software, which means you can be consistent across nodes, run any version of your software without suffering dependency mismatches, and it ensure dev, qa and prod use the same (version of) dependencies. Finally it makes it easy to always run the latest stable versions of your dependencies. Docker is one way to manage deployment better REGARDLESS of the quality of your software.
- davexunit 10y agoFunctional package managers solve the same problems, but do it better and come with additional features like unprivileged package management, transactional upgrades and rollbacks, and bit-reproducible builds.
- dorfsmay 10y agoNotice I said "one way". I wanted to counter the arguments that writing better software remove the need for something like docker. Are talking about something like NIX? How do you handle other type of installs such as python pip?
- alistproducer2 10y agoIn your opinion, how is this superior to just building a container? Also, could such a package manager be used to deploy to clusters? I'm not being facetious, I'm trying to understand your rationale for using a PM over Docker for similar use cases.
- alistproducer2 10y agoOP Here: Wow, people really took my comment the wrong way. Learning how to set up reproducible stacks is a skill that would greatly benefit students. How would it not? I wasn't trying to say that anyone who doesn't use Docker is an idiot; if that's how it came across, I'm sorry.
- tdsamardzhiev 10y agoDocker is nice and all, but a CS program should teach CS, not Docker :)
- alistproducer2 10y agoSoftware engineering was not part of your cs program?
- mpicker0 10y agoMany schools have separate software engineering majors/disciplines. When doing my MS in CompSci, there was only one required class on software engineering. I can imagine that other schools would not have that requirement at all.
- tdsamardzhiev 10y agoI didn't actually intend for my response to sound snarky, even though as I read it now, it probably does. I think CS degrees should teach understanding (not practice) that will be useful to you for at least, say, the next 50 years if you are a computer scientist. Trendy tools and languages we can learn ourselves. What might be useful in a Software Engineering degree IMO is learning to do the thing yourself (e.g. creating a chroot jail for an app you developed the previous semester), together with a short tour of tools that already do that (Docker or whatever is popular at the time can make a good case study.) However, for a CS degree where you have only 1-2 SE-related subjects, I believe such a thing would just get in the way.