程序员思维

其实我也算是 Linux 十年老用户了。但我之前装系统的时候还是言辞激烈地喷了一顿 Linux 如何如何。

后来发觉其实是程序员思维的问题。

最近在看 Linux 相关的书,里面有个例子,要读者去编译一下。然后我下载了,就出错了。我也看了作者写的文档了,也安装了对应的包了,就是出错……然后一搜,几万个人都在爆栈上边问怎么编译云云。后来有人给出了答案,我也终于成功编译了。但为什么不写在书里呢?真当读者人均 Linux 高手?我也装过好几次 Arch Linux 了,也不算什么 Linux 菜鸟了,但写出来恐怕也不需要浪费多少时间吧?

后来我去看 Windows API 开发相关的书了。一看,惊了,Windows API 从 Win 1.0 到 98 几乎没变过,而这本书是当年 98 刚出来的时候写的,然后我在 XP SP3 上编译里面的例子,直接通过了。当时我就高呼 Windows 永远滴神了。反观 Linux 桌面,对,Xlib 当然没变过了,但是现在几乎没有人会用 Xlib/XCB 写东西了。因为那些东西不仅难写,而且写出来的也是丑出天际的(内部实现没有改变,还是原汁原味的 X11 原始风格)。然后 GTK2 出来没过几年,又出来一个 GTK3 了。最让我不能理解的就是 GTK3 的 VTE 模块把终端透明度给砍了。以前是有的,后来就砍掉了。然后导致以前用 GTK2 的 LXTerminal 换成 GTK3 之后,透明功能没了……我只是觉得这么改来改去简直是在玩弄程序员。

没错,程序员思维有一个很严重的问题就是:以为用户都懂了,要用户来学习他们的软件。我装过好几次 Arch Linux 了,这个系统第一次安装不对着 Arch wiki 装,基本上都装不上去,要 chroot 什么的,特别复杂。反观 Debian 还好点,一直下一步就可以了。但是 Linux 本身就充满了程序员思维。2200 年了,要正常用 Linux 还是必须要用命令行。如果装了 fish Shell 还好点,如果是默认的 Bash, 什么命令行选项提示都不会有。而且各种命令行的选项是不一样的,对,通用的当然是 –help, 但是具体命令这个就风格不一了,就比如解压:tar -xf <文件名>, 7z x <文件名>。导致每用一个新的命令行软件,就必须得投入时间去学习。要是简单的命令还好,如果是 parted 这样的命令,我至今没搞懂,装 Arch Linux 都是用那个带有 curses 图形界面的分区工具分区的。什么叫做对系统的无边斗争?这不就是了。每一个命令行软件都自带门槛,这不是刁难用户是什么?像 Syncthing 就挺好的,直接打开,出来一个 Web 页面。根本不需要更多的命令选项。

不谈 Linux 这一系统,就谈点实际的玩意。我前段时间用过不少开源画图软件,最终得出结论:Krita 是唯一勉强能用的。其他的要么键位过于奇特(一看就是没真正学过 CG 绘画),要么笔刷系统根本让人摸不着头脑(就连 Krita 要指定笔刷的最小浓度和最大浓度,也是要用一条像曲线一样的玩意来调整的);还有,有个缴费系统,公众号上写着要填身份证号,但里面却显示着“客户编号”,还能输入 40 位……然后不出所料,一堆人都输错了。这实在是太高估用户了,不是每个人都有能力去正确理解你们的软件是如何运行的。

这算不算是“技术者的暴政”呢?“我做了这个程序,你不能学会使用,你就别用了。”然后故意做得无比刁难用户,或者由于各种各样的“原则”,不实现特定功能,不去做 GUI. 这种软件能有人愿意用才有鬼了。所以,我今时今日装 Debian, 我都觉得无比痛苦……跟系统做无边的斗争,配置来配置去,敲命令来敲命令去,一天就过去了。你说任何一个 Linux 发行版能不能做一个“交换空间管理工具”?明显是能的。但我一搜,还真没有人做这种工具,明摆着要所有人去敲命令,浪费无数地球人的时间。2001 年的 Win XP 都有这种功能了(指页面文件,还是默认开启,自动调整的)。

当然,人与人之间是理解个屁的。特别是放在当下这种充满了算法推送内容的网络环境下,人与人之间越来越难达成理解,所有人都只想听到自己所听到的。所以一言不合就相互斗争(用我的话来说就是“お互いに理解せず、だから殺し合い。”)。但是,如果我们能够放下成见,倾听别人的想法,去争取相互理解,起码会让这个操蛋的世界好那么一些。

3 thoughts on “程序员思维

  1. Pingback: 废人 | 沙子小房間

  2. arch难装属于arch哲学的一部分,本来就是给深度爱好者用的,这倒是没啥问题。但对于普通用户来说,linux还真是比不过win。

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s