I'm a Mac-only web developer. How do you Windows?
August 23, 2018 6:54 AM Subscribe
It might be the case that my new job won't get me a non-Windows machine. I'm trying to imagine how to recreate my very familiar OSX web development workflow on Windows, especially for command line tools, by thinking through the process of getting a simple script into a sensible toolchain.
My thought experiment script runs currently on OSX in a python virtual environment and uses a dozen python packages that are managed through pip. I also do javascript development and need a solution that encompasses node and npm. I'll want the basic bash shell toolchain that I'm used to, and I'll be forever annoyed at dumb windows shell changes or compromises. I'll want some command line tools like git and image magick-what is the homebrew package manager equivalent for Windows?
Notes:
I use visual tools like Tower and VSCode that are available on Windows-in general, I'm not concerned about non-command line tools and feel like I can replace them, it's just leaving the command line behind that I'm nervous about.
I'm open to the idea of a Linux virtual machine if that is easier or better than doing this stuff in Windows natively. I did a whole college CS degree on Linux 15 years ago and haven't touched it since, but obviously some of the important tooling is going to be better/easier.
I am currently the only webdev at my institution and there is no other tech person around with command line opinions either. So there is no institutional knowledge-indeed, one of my responsibilities is defining and developing technical policies and procedures.
I am assuming that LAMP stack stuff that I'm used to accomplishing easily on OSX will be difficult, is that correct?
My thought experiment script runs currently on OSX in a python virtual environment and uses a dozen python packages that are managed through pip. I also do javascript development and need a solution that encompasses node and npm. I'll want the basic bash shell toolchain that I'm used to, and I'll be forever annoyed at dumb windows shell changes or compromises. I'll want some command line tools like git and image magick-what is the homebrew package manager equivalent for Windows?
Notes:
I use visual tools like Tower and VSCode that are available on Windows-in general, I'm not concerned about non-command line tools and feel like I can replace them, it's just leaving the command line behind that I'm nervous about.
I'm open to the idea of a Linux virtual machine if that is easier or better than doing this stuff in Windows natively. I did a whole college CS degree on Linux 15 years ago and haven't touched it since, but obviously some of the important tooling is going to be better/easier.
I am currently the only webdev at my institution and there is no other tech person around with command line opinions either. So there is no institutional knowledge-indeed, one of my responsibilities is defining and developing technical policies and procedures.
I am assuming that LAMP stack stuff that I'm used to accomplishing easily on OSX will be difficult, is that correct?
Best answer: Have you heard about Windows Subsystem for Linux? Also, while git is integrated into Visual Studio, you can separately install a full git client with a shell.
posted by fedward at 7:10 AM on August 23, 2018 [5 favorites]
posted by fedward at 7:10 AM on August 23, 2018 [5 favorites]
You'll probably want to look into WSL (Windows Subsystem for Linux
) which gives you a bash prompt and an Ubuntu Linux environment. You'll use apt-get to install packages. As long as you don't have any GUI apps, it should be pretty familiar.
posted by RobotVoodooPower at 7:10 AM on August 23, 2018 [2 favorites]
) which gives you a bash prompt and an Ubuntu Linux environment. You'll use apt-get to install packages. As long as you don't have any GUI apps, it should be pretty familiar.
posted by RobotVoodooPower at 7:10 AM on August 23, 2018 [2 favorites]
I use cygwin for all of my Unix command line on Windows needs. Works great.
posted by whatnotever at 7:13 AM on August 23, 2018 [2 favorites]
posted by whatnotever at 7:13 AM on August 23, 2018 [2 favorites]
Yes, use WSL, it essentially solves your problem. (If you had told someone in 2000 that Microsoft would put a Linux compatibility layer into Windows...)
If you are prevented from doing that for some reason, at least give PowerShell a look, it is far better than the 1980s-era cmd.exe shell you might be used to.
posted by vogon_poet at 7:13 AM on August 23, 2018
If you are prevented from doing that for some reason, at least give PowerShell a look, it is far better than the 1980s-era cmd.exe shell you might be used to.
posted by vogon_poet at 7:13 AM on August 23, 2018
Best answer: To answer your question about LAMP development, that can be easily accomplished on Windows with XAMPP.
posted by mustardayonnaise at 7:29 AM on August 23, 2018
posted by mustardayonnaise at 7:29 AM on August 23, 2018
I use git-bash and Git Extensions. My coworker uses gitk.
posted by matildaben at 7:31 AM on August 23, 2018
posted by matildaben at 7:31 AM on August 23, 2018
Seconding Cygwin - it’s what everyone I know who’s stuck on Windows uses for *nixy environment. It’s nice.
posted by SaltySalticid at 7:40 AM on August 23, 2018
posted by SaltySalticid at 7:40 AM on August 23, 2018
Best answer: WSL is working very nicely now and is generally playing nicely with Windows VSCode for me, which it didn't when it first came out. You have to do some config to get it to use that as the VSCode terminal but that works. It's come a very long way from the first release and everything feels just like an Ubuntu command line and I wouldn't recommend looking at anything else unless you somehow not only can't get a Mac, you can't get a Windows 10 machine either.
posted by Sequence at 7:54 AM on August 23, 2018
posted by Sequence at 7:54 AM on August 23, 2018
Response by poster: I do have a Windows 10 machine, and WSL seems like the best solution here. Thanks all.
posted by Kwine at 8:18 AM on August 23, 2018
posted by Kwine at 8:18 AM on August 23, 2018
WSL is much better for compatibility than Cygwin would be.
LAMP stuff is pretty well-supported in Windows. There's XAMPP and MAMP for running a local dev server. If you want to go the command-line route, there's always Vagrant.
NodeJS used to be a pain to use in Windows due to the path size limitation, but NPM is more behaved nowadays about creating huge paths and the limitation has been removed in Windows 10, so you should be good there.
posted by neckro23 at 8:23 AM on August 23, 2018 [1 favorite]
LAMP stuff is pretty well-supported in Windows. There's XAMPP and MAMP for running a local dev server. If you want to go the command-line route, there's always Vagrant.
NodeJS used to be a pain to use in Windows due to the path size limitation, but NPM is more behaved nowadays about creating huge paths and the limitation has been removed in Windows 10, so you should be good there.
posted by neckro23 at 8:23 AM on August 23, 2018 [1 favorite]
Just to throw another option in the mix, you could always look at Docker as well. It might not 100% translate, but it will give you your full linux everything and and an easy, repeatable way to rebuild your environment from scratch whenever you want. And containers are fun.
posted by cgg at 9:31 AM on August 23, 2018
posted by cgg at 9:31 AM on August 23, 2018
Vagrant! I use it often, even though I was issued a Mac and work almost entirely with things that have been or things that will be put into Docker containers. It makes it super simple to configure and manage a virtual machine with your preferred *nix operating system (I usually go with the latest Ubuntu, for what it's worth). You can configure a "synced folder" to map your code directory from the Windows host to a path on the virtual machine to make things work pretty seamlessly.
posted by supahswank at 2:00 PM on August 23, 2018
posted by supahswank at 2:00 PM on August 23, 2018
Best answer: I use WSL all the time for fully command line-based tasks, but it doesn't work well for me for local front-end development. When I need to see pretty pictures as I work, I use VirtualBox w/ Debian 9. Works beautifully. Wish I could run Linux as my main OS.
posted by nosila at 9:07 AM on August 24, 2018
posted by nosila at 9:07 AM on August 24, 2018
Best answer: Your question led me to set up X on Windows 10 with WSL. I found this guide and it worked perfectly:
https://solarianprogrammer.com/2017/04/16/windows-susbsystem-for-linux-xfce-4/
Now I can use GUI Emacs on Windows, and M-x shell gives me Bash so I can use the machine for something besides running my favorite video editing program (the only reason I installed Windows in the first place).
posted by alpheus at 2:32 PM on August 24, 2018
https://solarianprogrammer.com/2017/04/16/windows-susbsystem-for-linux-xfce-4/
Now I can use GUI Emacs on Windows, and M-x shell gives me Bash so I can use the machine for something besides running my favorite video editing program (the only reason I installed Windows in the first place).
posted by alpheus at 2:32 PM on August 24, 2018
Response by poster: I use WSL all the time for fully command line-based tasks, but it doesn't work well for me for local front-end development. When I need to see pretty pictures as I work, I use VirtualBox w/ Debian 9. Works beautifully. Wish I could run Linux as my main OS.
My suspicion, after poking around with this a bit, is that this is exactly correct and running Linux in a container is going to be better for a local front end dev environment. I *think* that I'm not going to have to do that too often in my role, so I'm not going to poke at it further at the moment.
posted by Kwine at 4:48 PM on August 24, 2018
My suspicion, after poking around with this a bit, is that this is exactly correct and running Linux in a container is going to be better for a local front end dev environment. I *think* that I'm not going to have to do that too often in my role, so I'm not going to poke at it further at the moment.
posted by Kwine at 4:48 PM on August 24, 2018
This thread is closed to new comments.
posted by dmo at 7:07 AM on August 23, 2018