re: A Linux Dev Environment on Windows with WSL, Docker, tmux and VSCode VIEW POST

FULL DISCUSSION
 

Over the last 6 years I professionally develop using:

  • Linux
  • Windows
  • MacOS
  • WSL
  • Linux in a VM (local and on AWS with VNC)
  • C9 IDE

I can say that WSL is not ready for professional use and all developer technologies will be limited on Windows because the lack of adoption.

Everything else than Linux and maybe Mac are just a shadow, trying to mimic a Linux env, and this choice will byte your as* in the future, and you will spend many days trying to fix a dependency, a missing feature, an issue that the library developers will not fix because they do not use Windows/WSL.

Just my 1 cent.

 

I suppose it depends on what you're working with.

For me WSL has been fantastic for developing web apps with the following tools:

Rails, Flask, Django, Node, Phoenix, Jekyll and Webpack.

Everything is fast, and the development loop isn't riddled with weird bugs or edge cases. I didn't come across any issues.

Besides those apps things like SSH, GPG keys and various other Linux tools are working great.

 

How about node? Is it really fast? Few months ago,when I tried WSL, npm install in a fresh laravel scaffolding took atleast 10 minutes. Disk performance was very very poor.
Since then, I left WSL. Is it really fast? When comparted to dual booted Linux?

Node is listed there as well as Webpack.

I use Webpack in nearly all of my web apps and in a typical Webpack set up using ES6 JS + PostCSS + SCSS + Bootstrap + Font Awesome 5 + custom SCSS, it's really fast. Webpack takes around 500-600ms to pickup the changes if I make a SCSS change and JS is even less time.

It updates faster than I can move my cursor to my browser and hit CTRL + R to reload.

Laravel is another story. The initial composer install takes a while, a lot longer than Rails or any of the other set ups, but... once everything is installed, the disk performance is fine. If I make a change to an asset, it picks it up in less than 1 second and code changes to the Laravel app itself is nearly instant.

But to be fair, I don't work with Laravel on a regular basis. 99% of my client work is one of the tools listed in my other reply. It just so happens I was working with a Laravel app yesterday tho, so this is still fresh in my mind.

Dual booting isn't an option for me. I used to do it, and it's a horrible context switch, even if it only takes a minute with an SSD. It's the fact that you lose everything between each dual boot.

Plus for me, it's not an option because I need to be able to record my development environment with video editing tools and nothing exists on Linux that's usable IMO.

Convincing enough about performance.
How about tooling support ? VSCode can provide linting via eslint and tslint packages. It can provide Autocomplete for Php using PHP interpreter. For such functionalities, VSCode requires PHP Interpreter. In case of WSL, everything lies in side it. VSCode installed to windows can't access the linux tooling inside WSL?

You have a few choices with tooling support.

For example I have VSCode running on Windows, but I have the shellcheck (Bash) linter installed directly in WSL and it works great because shellcheck has an option to make it work in WSL, so it really comes down to what tools you use.

But, if you want a sure fire way to get full support for everything, you can go down the route of installing VSCode directly inside of WSL instead of Windows.

That is mentioned in one of the blog posts I linked at nickjanetakis.com/blog/using-wsl-a.... Do a search for "Setting Up MobaXterm to Run Graphical Linux Apps".

WSL supports interoperability. I'm using it successfully with Sublimetext Sublimelinter and Vscode linters. Just check it out docs.microsoft.com/en-us/windows/w...

 

All my issues were with Node and packages dependencies.

I would not call anything Windows related fast.

Maybe it was an older version of WSL that you were using. Yarn install is pretty speedy for me with Windows 18.09's WSL.

You might want to try disabling Windows Defender for WSL or even all together. I know a lot of people said WSL was slow for them when you run that tool. It was one of the first things I disabled after installing Windows before I even used WSL.

code of conduct - report abuse