吐槽,绕了一大圈,究竟我们要什么样的工具

中山野鬼 发布于 2013/08/05 20:10
阅读 2K+
收藏 4

最近写书,上一章郁闷坏了,书的思路改,代码就得改,一章花了2个星期,代码上传update到了58个版本。效率太低,书在mac下搞,代码在ubuntu下搞,正好我自己的基础库都在里面。p4来回submit ,get revision,头都晕。

一直想把开发环境迁移到mac下,一直没时间,后来想想,干脆写书停下来,在mac下构建个远程开发和本地开发环境。远程得好说,大体思路就是代码编辑完,脚本就scp到linux,然后在linux下编译运行。本地开发原本不打算立刻启动,但发现自己的工具链全扯淡的(都是linux的),需要我把自己的代码重新在mac下重编译。

netbeans太扯淡了。丢弃不用,于是sublime txt + make +gcc成了标准组合。llvm就不碰了,毕竟 gcc的优势是平台跨的多,针对c的效率已经不错,再想提高,编译器自动化优化已经不靠谱了。有空学习llvm还不如研究intel的编译器。

gcc找了1个小时的资料,总算找到了个for mac的tgz 文件,直接解压到/下,则对应/usr下就ok了。make 就没这么顺利,让自己扯淡了半天。因为想,我为make 这个玩意,也只要make这个玩意,下个xcode不是脑袋通了?最终发现还是脑袋通了。

先看了macport。权衡了一下,学习了flnk,国外的一个大学网站说明还是比较详细的。fink用于诸如 通过 apt-get install的方式直接安装带依赖检测的公开库。呵呵,有小朋友说我不学习?自认为学习起来不比谁差,无非有些垃圾的玩意一眼往穿,何必去学。

fink折腾完,出个状况,要x11,山狮不支持x11了,改另一个,名字不贴了,下载安装也没什么,总算fink 的 apt-get update  dist-upgrade能正常工作了,等 fink -b install make时,提示这个是虚拟包,需要由apple的command-line tools提供。

顿时发现自己真脑袋通了。。。。于是apple 的应用商店免费的xcode下载下来,1.5个G左右,装了一会,折腾完,进了xcode 没别的事情,直接安装 command-line tools大约180m。

折腾完,一看,/usr/bin有make了,可以工作了,立刻卸载掉xcode。就这么绕了一大圈。估计有人问了,xcode这么好,为什么我立刻卸掉,因为养成习惯了。不用的东西就扔掉,当然要确保不用。xcode确实我不用。我并不会在mac下开发东西。无非是一套代码,在没有linux环境下,用mac的近似unix环境run run。

说说另一个问题,我们究竟要什么样的工具。前提,别拿工具当玩具。意思是,如果你把工具当智力玩具消磨时间另谈,不在我说的范围内。扯开编程就说微波炉吧,面板n多按钮的,基本我当无视,实在没时间学习这么多的按钮组合究竟能做什么。哦,原来可以蒸鱼,就是原先你需要选择大火,再确定个具体时间的事情,现在方便了,你只要记忆一套按钮组合,就可以自动帮你搞定,而不需要很费力的旋转时间转盘。要说就我一个人有这样的思维吗?

我师兄,做硬件板卡的,就不介绍了,业内他和另一家公司垄断整个细分行业60%以上的占有率,业内第一个把sdram做到系统里的,第一个把千兆网做到系统里的,都是他自己设计的。硬件逻辑设计属于牛到基本不需要技术说明问题了,产品质量说明问题。对他的车,皇冠,和我基本一样态度,有次电路故障,车over了。他初步判断是保护电路有问题,要换保险丝,对我说的大意是,如果保护电路把后面烧坏,这品牌的技术质量就不值得信任了。他也无非是猜测了一下,当然专家总能猜对。他绝对没有去分析这个电路。

什么意思呢?工具就是工具,就是完成特定目的。工具服务于人,而不是人服务于工具。天天折腾工具的学习,说好听的,是“上进”说难听点,是没出息的。因为你的任务和面对的问题域不可能天天变,现有工具能解决的,没有必要去用换了个名词的新工具。而现有工具解决不了的问题,其实等工具真出现时,会很快应用,因为工具和你都面对相同的问题,由此更本犯不着天天折腾工具的学习。为什么说总学”新知识”是没出息的,注意我是加了引号的,意思是,有些东西,看似知识,本质只是手册。真正学到的本事,是用法,熟练应用解决问题,而不是手册中的新名词,新配方,新架构等。

虽然我不用vim,emac,但说客观的讲,他们两真的算编辑器的终极工具了。扯一堆插件说他们不足,这就扯淡了。问插件可以干什么,可以说千千万万的理由。包括那些手册级的”知识点“。实际上呢,这些插件能想到的,专业的团队早就用专业的方法去解决了。犯不着让忙业务的团队,天天围着新插件,新功能在乱折腾。

简单总结一下,语言也是工具,别一天一个想法,今天想学这个,明天想学那个。无论是汇编,还是网页设计,都是工具,学好了,就去用,做不成绩的,才整天琢磨是不是可以学习个更好的工具。除非基于原有的工具的工作已经不再被需要了,或者工具不再被支持了。例如vfp ,jbuild。

核心是自己打算做什么。做这个需要面对哪些问题,有哪些需求,现有的处理手段有哪些,是否成熟,然后才会考虑到用什么工具,而且要么不用,要用就专心用好。

最后吐槽一下netbeans。把远程开发吹的神乎其神。自动创建的目录又臭又长。至于那些什么带模版的源码文本生成,哪一样都犯不着一定用它的。包括debug。那些菜单里的额外功能,真有用的,我的工具链里都有,而且都配的成套了,没用的,至于多看一眼吗?结果呢,发现还是自己ssh配置好,几个脚本就搞定。

或许有人说,让你学ide你会死啊?哈,我暂时死不了。但我学的东西,确实死的比我早。vc6,自认为用的很熟练了,包括后面的配置,结果呢?现在用吗?不用了,学的那些都没用,反倒是以前学习vc6时,对编译方法的学习,一直到现在还有用,简单说就是makefile + 编译器。我估计netbeans死的会比我早。反倒 ssh 这个我认为会和ftp一样持续存在下去。

以前真的很崇拜那些用 winapi32做桌面的人,别说效率低,你能做的桌面效果,他能做,他能做的桌面效果,可能实现原理你想都想不到。结果呢?哎,平台升级变迁的骨灰啊。。。


补充个问题,是否有不安装xcode 和 command-lines tools就直接可以搞定make的方法?莫非我把现在的make备份是唯一的出路?


以下是话题补充:

@中山野鬼:难怪那帮哥们喜欢用mac,和linux下面区别非常小。工具链的几个执行文件重编译,用我自己在linux下的流程文档,照着配,连/etc/profile的操作都一样,真爽。。。。 (2013/08/05 23:18)
加载中
1
mallon
mallon
卤煮有洁癖
1
mallon
mallon

引用来自“中山野鬼”的答案

引用来自“Mallon”的答案

卤煮有洁癖
没洁癖不行啊。专门研究美女大腿的,如果发现一茬茬的腿毛怎么办?刮掉啊。。。不犹豫。
越刮越浓
0
幸运的兔脚
幸运的兔脚

呃,新手一个,写代码基本没脱离过Eclipse,要是自己用个文本编辑器,怕写出的代码错误太多……

同意“新知识”的观点,独孤求败就是拿树枝也能独步武林,过度纠结工具是把劲使错了方向

0
中山野鬼
中山野鬼

引用来自“Mallon”的答案

卤煮有洁癖
没洁癖不行啊。专门研究美女大腿的,如果发现一茬茬的腿毛怎么办?刮掉啊。。。不犹豫。
有个二逼领导的程序员
有个二逼领导的程序员
刮不能斩草除根,得用烧
0
中山野鬼
中山野鬼

引用来自“幸运的兔脚”的答案

呃,新手一个,写代码基本没脱离过Eclipse,要是自己用个文本编辑器,怕写出的代码错误太多……

同意“新知识”的观点,独孤求败就是拿树枝也能独步武林,过度纠结工具是把劲使错了方向

代码书写错误,编译器会给出提示。我现在一样编译时一堆书写错误,慢慢清。靠工具只能帮你检测出部分错误,不能带你写出正确的代码。我的一个习惯是写一点点就编译,这样就好多了。
JollyRoger
JollyRoger
良心作者啊
0
yifanes
yifanes

引用来自“Mallon”的答案

引用来自“中山野鬼”的答案

引用来自“Mallon”的答案

卤煮有洁癖
没洁癖不行啊。专门研究美女大腿的,如果发现一茬茬的腿毛怎么办?刮掉啊。。。不犹豫。
越刮越浓
0
中山野鬼
中山野鬼

引用来自“Mallon”的答案

引用来自“中山野鬼”的答案

引用来自“Mallon”的答案

卤煮有洁癖
没洁癖不行啊。专门研究美女大腿的,如果发现一茬茬的腿毛怎么办?刮掉啊。。。不犹豫。
越刮越浓
两种方式,不停的刮,用更快的刀加上更好的剃须膏。另一种方式,一开始直接丢掉,好不犹豫,不要有任何怀恋,哈。如同我丢掉netbeans
徐庆-neo
徐庆-neo
貌似拔毛可以缓解浓密的问题
0
一号男嘉宾
一号男嘉宾
这是病,得治。
0
宏哥
宏哥

引用来自“梅公子”的答案

这是病,得治。

连宏哥都要骂了

两个凡是的精神不能丢

0
宏哥
宏哥

终端是适应性最强的环境, 键盘是最高效的操作

宏哥再给大家演示一个 "云" VIM

我一再强调,两个凡是, 不是随便说说的.

sxgkwei
sxgkwei
白眼。。。
返回顶部
顶部