why-programmers-love-mac comments


本文内容 精选自为什么国外程序员爱用 Mac?

一个长达15年的问题讨论

comment list


  • 为什么程序员喜欢某个架构的组合?不能理性一点分析一下吗?我想对一个中学生或者大学尚未毕业的同学从长远上说点看法:
    我们看问题,排除干扰因素,才能抓住问题的实质,是吧?那么,答案是不是显然这样的——只有当环境是自由的,你才能用你喜欢的组合。是吧?
    • 为了工作,得看公司目标产品平台的要求决定用哪个软硬件组合。做某种平台指定的产品,或者别人都用某种专属平台及其专属的交换文件格式,你想交换文件,就得迁就,而公司的决策恐怕是市场份额说了算。
    • 为了个人娱乐,看你想跑什么大游戏,然后决定用什么操作系统吧。
    • 为了学习和工作的长期效益,我很赞同那位工程师说的:考虑可编程/积累/继承的平台。
      说到底,是“专利法 + 商业竞争”导致了专属平台的割据,从而导致了平台之争。作为竞争的受益者和受害者,讨论平台之前,不能意识到这个无奈的局面,以及探讨根本的应对之策这样一个定位,讨论就是盲目的。
      既然如此,问题很简单,无非是哪个平台覆盖了你最主要的需求集合,你就更趋向于长期使用哪个平台,或者哪几个平台。在目前这个法律框架下,恐怕,多会两个平台,甚至同时安装几个平台,都是无奈的选择。
      对于没有被先入为主捆绑在某个平台上又不是程序员这样密切关注技术走向的人来说,用什么就是个习惯,不需要讨论,纯粹从不给自己找麻烦的角度来看,当然是随大流了!随大流也要被引导,被鄙视,真是可悲。
      从一个长期的角度来说,如果很在乎自己使用计算机的一贯性,和累计性,甚至关心自己的劳动成果的可继承性,可迁移性,那么就是另外一个问题了,那么,我建议从最难的学起,而不是从最容易的学起,因此,MS Windows的傻瓜化,无疑是影响你深刻理解计算机的,Mac不过是为了抓住唯美、简洁风格的另一个群体而设计的,但是,它仍然是现有法律框架下的产品——具有专属知识产权割据风格的东西,那么答案很明显,真正的FreeBSD,Linux,才能满足你深入学习计算机的要求,你从这里进入这个领域学到的东西才不会过时(比如有人提到的vi,emacs),然后再去接触Mac和Win,就会感到无非就是一些小儿科的东西(不要喷,我没说GUI简单的意思,而说是后台不再神秘),你进入服务器领域(UNIX,Redhat等*NIX不用说了)也没什么难度。否则,你习惯了被某个平台专属的东西代理了你对基础的跟踪,有一天你会发现,你离不开它了,你的知识进步会落后时代一个周期或更多

  • 用VIM两年的感受:
    • 用VIM的人不是装B,而是VIM的确可以提高编程效率。不使用一年以上的人很难体会到这种感觉。学J2EE出身,当初完全依赖Eclipse。参加工作后转向多语言(FLEX,PHP,JAVA,C++),工程依赖于CentOS平台,于是强迫自己用VIM,半年时间对各种常用命令操作如臂使指,头脑中可以形成清晰的类图关系。一年后开始安装各种插件以及自定义vimrc,随着优秀插件的加入,开发速度大幅度提升。前段时间因为使用新语言(Scala)回到eclipse,各种不适应,开发速度明显下降。
    • 用习惯IDE的确很难使用VIM,但是用习惯VIM也很难再使用IDE。对于大家经常提到的VIM的弊端,我的体会是这样的:
      • 自动补全:我使用autocomplete插件,自动匹配buffer中的相似字符串,ctrl+n\p 选择,速度比eclipse快。弊端是没有智能的语法补全支持,只能把常用方法和属性都记忆在脑子里,不熟悉的时候查API文档,但是速度没有想象的那么慢,而且经常会有意外的发现。
      • 错误提示:我最初使用Syntastic插件,但是对静态语言的检查速度太慢,后来干脆不用任何语法检查工具,只依靠编译器。现在很少会有编译错误。
      • 编译运行:IDE提供方便的”one click”编译与打包过程,但是这个优势基本可以忽略,我一般是多开一个shell完成编译以及部署。写一个简单的bash脚本或者alias,”one command”也可以完成编译打包,还可以远程部署到测试服务器上直接查看运行结果,很方便。
      • 重构:IDE的重构速度的确比VIM快,这一点是用VIM很难赶上的,也没有找到优秀的插件能做到IDE那么强大的重构。一般只能依靠查找替换来重构,靠编译器来排查重构错误,但是动态语言的重构非常不给力。
      • 拿VIM单独和IDE相比是不公平的,VIM核心关注的就是编辑。但VIM不是一个人在作战,它依赖于SHELL,VIM+SHELL要远比IDE强大。
    • 附上我常用的插件:
      • CtrlP:模糊查找插件,我主要用来打开文件,速度很快。
      • bufexplorer: buffer之间转换的利器。
      • nerdtree:类似文件树浏览器的插件,我一般只有在忘记文件名的时候才用。
      • autocompletion:自动补全插件。
      • easymotion:基于标签的快速移动插件,我一般用来移动到特定行。然后用f命令移动到具体位置。
      • snipMate:代码片段插件,很少用。
      • Align:格式化代码插件,对于喜欢代码排列整齐的人很有用。
      • bclose:关闭buffer而不退出split窗口。
      • pathogen:插件管理器。
      • solarized:配色方案,个人最爱。

 annunaki - March 27th, 2022 5:40 pm

基于wiki介绍:Linux被打包成供个人计算机和服务器使用的Linux发行版,一些流行的主流Linux发布版,包括Debian(及其衍生版本Ubuntu、Linux Mint)、Fedora(及其相关版本Red Hat Enterprise Linux、CentOS)和openSUSE等.
我们争论的话题主要围绕着Linux的发行版,很少有人讨论Linux内核,感觉讨论的点没有找准定位,现在程序员越来越内卷,几乎很多人渐渐重视往核心原理,而不再只是使用调用API之类的,对于国内互联网发展是一件好事情。


文章作者: rudy
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 rudy !
  目录