在升级到 go1.21 与兼容 Win7 之间,你会如何选择?

查看 431|回复 37
作者:LonnyWong   
背景

  • tssh 新增 --udp 功能 https://github.com/trzsz/tsshd ,可以像 mosh 那样工作,基于 QUIC 和 KCP 协议,支持 ssh 端口转发、agent 转发和 X11 转发。这两个协议都升级到 go1.21 了,tssh 也被迫跟着升级。

  • go1.21 不再支持 Win7 https://github.com/golang/go/issues/57003 ,而 Win7 在国内的用户量还高达 22% https://gs.statcounter.com/windows-version-market-share/desktop/china ,也就是每 5 个 Windows 用户中,就有一个 Win7 用户。

    决策

  • tssh 升级到 go1.21 是迟早的事,不能因为部分不升级的用户,而影响了其他愿意升级的用户。后来想到,可以在 release 时,通过 github action 将 QUIC 和 KCP 协议降到支持 go1.20 的版本,然后编译出能在 Win7 运行的专用版本,详见 https://github.com/trzsz/trzsz-ssh/blob/main/.github/workflows/publish.yml

  • Win7 用户可以在 https://github.com/trzsz/trzsz-ssh/releases 下载带 win7 关键字的版本,在 Cygwin 、MSYS2 或 Git Bash 内使用。个人建议,别再用 Win7 了,尽早升级吧,新版本 Windows 更香和更安全。

    讨论

  • 你开发软件时,会紧跟当前最新的编译器版本吗?如 Go 。

  • 你开发的软件,会支持市场已放弃的旧系统吗?如 Win7 。

  • baozhibo   
    选择 go1.21 ,现在很多网站都不支持 IE 了,一样的道理。
    ixixi   
    我没有需要伺候的这么好的客户 😭
    afxcn   
    为什么一定要升 go1.21,有什么好处?
    我还在用 go 1.18
    dfkjgklfdjg   
    1. 不会,一般会使用 LTS 版本,
    2. 不会,默认不考虑已经结束维护周期的兼容,除非确定有关键用户在使用旧版本。
    从 10 年前开始新的 win 设备默认就是安装的 win10 。这两年开始默认 win11 了。
    所以看你的客户群体是什么。其实取舍的问题,投入的精力是否会带回来足够的回报。
    beginor   
    是否升级,取决于有多少付费用户还在使用 win7 ,能带来多少收入。
    如果有,旧版本又不是不能用,如果没有,为啥不升级呢?
    zmaplex   
    1. 不会即时跟上,起码半年后再更新。
    2. 旧系统用户给钱了吗?不给不更新,愿意给钱的用户大概率有钱换新电脑了,剩下用不被支持的系统的愿意给钱的用户,那几个钱需要考虑是否值得有精力去维护?
    对待那些始终使用旧系统的群体,最好的办法就是出一个公告,上游 xxx 不再支持 xx 系统,然后说没有那么精力维护 xx 系统,但是考虑部分用户的需求,xx 系统版本的软件将以收费的形式提供,建议用户升级系统继续免费使用。巴拉巴拉吧
    LonnyWong
    OP
      
    @afxcn #3 新版本往往会带来新特性,有些代码写起来会优雅很多。KCP 协议是用了 go1.21 的 clear 方法,避免了原来要 copy 内存的写法。QUIC 协议是只支持 go 最新的两个版本,当前也就是 go1.21 和 go1.22 ,用 go1.20 是编译不过的了,具体我没细看。
    BeautifulSoap   
    仔细一看,这帖子应该发到推广节点吧。看是讨论问题实际上是在宣传自己项目。。。
    非收费项目的话,留下最后一个 win7 支持的版本,然后出的版本不再支持 win7 ,想要用新版本新功能就让他升级系统呗
    vocaloid   
    这俩问题都取决于你公司和客户的要求,如果没有其他要求那肯定是哪个方便哪个来
    不过我个人开发软件有奇怪的 xp ,会尽可能兼容旧系统
    您需要登录后才可以回帖 登录 | 立即注册

    返回顶部