Win10 的 WSLg 能否完美替代 Linux 下日常开发?

2021-06-17 13:31:11 +08:00
 einsdisp

我之前一直是在 linux 下开发( go/node/python/java 都有,但不涉及机器学习这种需要显卡的开发),积累了大量的 shell 脚本、工具链、程序、配置等,日常使用 vs code 或者 jetbrains 开发。

这么多年了,linux 的图形界面的稳定性一直挺烂的,但考虑到其生态系统与命令行的强大,一直忍了下来,偶尔桌面崩溃,或者图形界面的 bug 啥的,倒也可以忍受。

直到最近几个月常常需要远程桌面办公,linux 下就没一个好用的远程桌面,效果比微软自带的 RDP 差远了,这件事促使我决定迁移到 win10 。

虽说很多软件与编程语言的工具链,有 windows 原生版本,但我基本不考虑,只考虑 wsl,一来,我原先在 linux 下积累的大量的脚本、程序、配置,不想再重新搞一遍,二来,原生 win 下,win 的路径分隔、win 系统对 utf8 的支持烂,这些对编程并不友好。

想问问,目前阶段,WSLg 能否完美替代 Linux 下日常开发?运行 vs code 或者 jetbrains 的图形界面,运行各种编程语言的工具链,性能跟原生 linux 比,能差多少?

12133 次点击
所在节点    程序员
81 条回复
dingwen07
2021-06-17 18:44:51 +08:00
目前还不支持大多数程序的高分辨率,正式版比较推荐

踩 WSL2 吹 WSL1 的,你们不知道这俩可以同时开启使用的吗?需要 WSL1 就进 WSL1,需要 2 就进 2 。文件 I/O,WSL1 和 2 分别是 Windows 文件系统更快和 Linux 文件系统更快,那就把需要大量 Windows 文件系统操作的任务放到 WSL1,把需要大量 Linux 文件系统操作的任务放到 WSL2 进行不就得了。
raynor2011
2021-06-17 18:46:06 +08:00
wsl2 + emacs 图形化界面 , 用了很久了, 没什么问题
flyhaozi
2021-06-17 18:53:55 +08:00
无图形界面的 wsl2 就可以胜任很多开发工作了,毕竟 wslg 需要 windows 10 预览版,目前还是先用稳定版比较好,另外稳定版的 wsl2 当前只能手动一步步安装: https://docs.microsoft.com/en-us/windows/wsl/install-win10#manual-installation-steps
编辑器支持方面,vscode 和 jetbrains 都可以用 windows 版来连接到 wsl2,
vscode: https://code.visualstudio.com/blogs/2019/09/03/wsl2 ,
jetbrains: https://www.jetbrains.com/help/idea/how-to-use-wsl-development-environment-in-product.html,
vscode 远程连接 wsl2 的体验目前已经很完美了,可以直接在 wsl2 目录输入 code .在 vscode windows 版中打开项目,也可以使用 wsl2 中的 git ; jetbrains 没有用过,目测体验可能没有那么好。

性能方面,由于 wsl2 本质上还是虚拟机,所以项目文件一定要放在 wsl2 中性能才不会受影响,在 wsl2 中读取 windows 文件性能并不太好。根据微软的文档 nodejs 在 wsl2 里的性能是要比 windows 版好的。

语言和工具链支持方面,nodejs 和 python web 在 wsl2 下的开发都有微软官方的入门文档:
https://docs.microsoft.com/zh-cn/windows/dev-environment/javascript/nodejs-on-wsl,
https://docs.microsoft.com/zh-cn/windows/python/web-frameworks,
就个人的体验来看,前端的开发工具链在 wsl2 下是完全没有问题的。

wsl2 目前很大的一个问题是没有 systemd,wsl2 也不会随 windows 启动而启动,如果有需要长期运行的服务 wsl2 并不适合,wsl2 更合适用来开发调试,不能拿来当作生产环境。
tsaohai
2021-06-17 19:08:40 +08:00
弄个 hyperv 的 vm 就完事了
SenLief
2021-06-17 19:14:46 +08:00
@flyhaozi 有两个替代的工具,不过都需要在 win 下的终端执行的。开机自启可以利用计划任务吧。
flyhaozi
2021-06-17 20:00:19 +08:00
@SenLief 是可以,想解决的话 wsl2 下大部分问题都有 workaround,最好还是能自身支持
akira
2021-06-17 20:03:29 +08:00
在 win 下跑有 ui 的
在 linux server 下面跑没 ui 的
Dragonphy
2021-06-17 20:17:50 +08:00
wsl2 用 docker 就好了,systemctl 不好用
kksco
2021-06-17 22:24:42 +08:00
我觉得 ubuntu 也还好,非要说缺点就是 jetbrains 家的 ide 总是莫名其妙的内存泄露把内存吃满。。
her999
2021-06-18 00:27:38 +08:00
ubuntu 的桌面很稳定。输入法可以用 搜狗 和 rime
hei1000
2021-06-18 05:13:59 +08:00
"这么多年了,linux 的图形界面的稳定性一直挺烂的"????不知道你用的什么发行版和桌面环境,我用的 Manjaro+XFCE/KDE 很稳定啊,很少出问题,我的 Win10 都只安装在虚拟机里面,日常就 Linux 桌面环境
zxCoder
2021-06-18 08:47:03 +08:00
还是稍微有一点别扭
DonaldY
2021-06-18 09:46:45 +08:00
ubuntu 也不稳定哈。浏览器老是崩溃。gnome-shell 飙高
join
2021-06-18 10:07:35 +08:00
linux 的 gui 本身就这么烂,指望非原生 wslg 会好? 幼稚。
FakNoCNName
2021-06-18 10:10:50 +08:00
@DonaldY 16\18 确实有这个问题,20.04 用到现在还没出现过 gnome 把机器跑死的情况。
FakNoCNName
2021-06-18 10:13:46 +08:00
Linux 确实没有太好用的远程工具,向日葵、toDesk 也不那么好使。

不过可以考虑 ssh 过去 vim 开发,但如果能 ssh 过去就说明你的机器可以暴露到公网上,这样的话在 linux 上装个 RDP 服务器,用 RDP 客户端远程连过来开发更爽。
EIJAM
2021-06-18 10:26:45 +08:00
wsl 就是个杂合怪胎,换个名字叫“狮虎兽”。想要替代 Linux 是不可能的
thtznet
2021-06-18 11:32:26 +08:00
想太多,不要为了技术而技术,直接虚拟机,不想装第三方的就用自带的 Hyper-V,所有问题都不是问题,只是不够酷罢了。
richardwong
2021-06-18 12:36:29 +08:00
@raynor2011 怎么配的,我中文没法输入,也没法显示
HankAviator
2021-06-18 12:39:31 +08:00
@no1xsyzy wsl2,IP 变化的问题,我之前也遇到过。后来为了修复罗技鼠标驱动,打开页面空白的问题,把 wsl2 导出之后导入,结果就可以识别出来真正的 IP 地址。
写到这儿才想到是不是被导入成 wsl1 了……

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/783953

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX