“伙计们,让我们坦诚一点。 Sturgeon定律说90%的东西都是垃圾,他太理想化了。代码中垃圾的比例远远不止90%。” – Al viro(Linux内核的核心贡献者之一)
“有两种构建软件设计的方式:一种是把它做得特别简单,明显看不出来有什么缺陷;另一种是把它做得特别复杂,看不出来有什么明显的缺陷。” – C.A.R. Hoare, 1980年 图灵奖获奖感言
“生产效率最高的一种方法是去掉1000行代码。” – Ken Thompson (Unix 和 Go 语言 作者)
“在我们行业里有个奇怪的现象:我们不但不从错误中学习,也不从成功中学习。” – Keith Braithwaite
这项统计工作还在进行中,很多有害技术还没能列入:
有害的技术 | 害处较少一些的替代技术 |
---|---|
SGML, XML, YAML. | JSON, CSV, ndb(6), plain(UTF-8) text. |
NFS, SMB, AFS, WebDAV. | 9p. |
C++, Java, Vala, D, Python, Ruby. | C, Go, Limbo. |
pthreads (PoSix threads). | CSP-style concurrency: Go, libthread, libtask, Limbo, Erlang, ... |
Perl, Ruby. | rc, awk. |
PCRE | Structural Regular Expressions or plain classic/extended regexps (类似于 awk, sed, grep 中的用法). |
Bash, tcsh, zsh. | rc, OpenBSD's pdksh, ash/dash. |
GNU Coreutils. | Plan 9 from User Space. |
GNU Screen. | tmux. |
GNU info. | Man pages. |
GCC. | 8c, tcc. |
glibc. | ucLibc, DietLibc. |
GNU autoconf/automake, CMake, imake, scons, waf. | mk, or plain old portable makefiles. |
Glib. | libc (see above), p9p's C libraries. |
GTK, Qt, VxWindows. | Tk, textual interfaces. |
Vim, Emacs, nano, Eclipse, ... | Acme, Sam, ed. |
UTF-16, UTF-32, Latin-1, other encodings. | UTF-8. |
iSCSI, FCoE. | AoE (ATA over Ethernet). |
PAM (Pluggable Authentication Modules). | Factotum. |
Jabber and XMPP. | IRC (用于 IM), STOMP (用于一般的分布式消息). |
IMAP. | SMAP(Simple Mail Access Protocol). |
SQL databases. | Tutorial D, pq, BigTable, 老的层级文件系统 |
Subversion, 即 svn. | Git, Mercurial (即 hg); hell, 即使是 CVS 或老的 tarballs 也都比 svn 好. |
FreeBSD, NetBSD, Solaris. | OpenBSD. |
Apache, lighttpd. | thttpd, OpenBSD's fork of apache 1.3, nginx, 或最佳方案: 不要用 HTTP. |
SVG | PS(PostScript) |
PS(PostScript), DjVu. | |
EPUB | DjVu. |
ALSA | OSS4 |
GPL, LGPL, Apache Software License, MPL, CC. | ISC, MIT/X, BSD, CC0, public domain. |
head | sed 11q |