Since this original question was asked things have settled down a bit with WSL and I'd like to pass along the information.
I can report it is basically possible to do any normal Linux task in WSL that requires only the CPU. That means you can easily run GUI apps, and even entire desktop environments, but it also means that running neural networks is more of an exercise in wasting electricity. (WSL also lacks CUDA drivers though there are CUDA drivers for Ubuntu that could possibly be used if WSL actually could get GPU access)
GUI apps
You can get GUI apps the following way:
All you have to do is:
- Install a Windows X server. I use VcXsrv
- Add the routing information to bash using the following command:
echo "export DISPLAY=localhost:0.0" >> ~/.bashrc
If you run zsh, just add the export display info to your .zshrc file.
If you run zsh, just add the export display info to your .zshrc file.
I solved the wanting to run neural networks issue by... just installing Linux on my desktop, haha. It's much easier that way.
To answer the question more broadly
The most significant limitation of WSL is that the Linux and Windows filesystems are not really compatible. Linux files use a different permissions scheme than Windows files, and when you edit or save a file in the WSL home folder ~/
you save it with metadata that will make Windows just show an empty file in Notepad. There are also some problems with the difference in line endings (LF on Linux vs CRLF on Windows) but this is much less of an issue, especially since Microsoft has enabled VS Code and Notepad to use either line ending.
The Linux filesystem can technically be accessed from Windows Explorer but it's highly inadvisable and you couldn't really do anything with it if you wanted.