迷茫了....

现在的原型基本都是python写的,细节基本就不要想去控制了(不过有朝一日如果业务真能运行起来,肯定还是要向C迁移的),不过宏观上却遇到不少可行性的问题。

比如,我现在非常恶心SQL数据库,不是说SQL数据库一定不好,而是目前碰到的查询没有基于数据库的需要,最多是自己用各种方法建立些index也不费劲。不过像那些Indexed的底层框架,基于同样的理由(不引入没必要的依赖)也不太愿意使用。这就有一个做一个成本(工作量、依赖)最低的index工具的具体事情。

(当然,我是很不喜欢SQL的字符式接口的,虽然它的优势非常大:组字串在很大意义上就是元编程。LINQ就好得多了,只可惜集成到哪儿都显得很突兀。)

自己写btree去不是目前的选择,于是很自然的就想到借助文件系统。这样的话,一个非常关键的问题是普通的文件系统对大批量小文件的支持。于是搜索引擎之,果不其然:Linux下ext系列都是依赖于inode数量设定的,一旦定死就很不爽了。NTFS倒是没有这个问题,不过想要跨平台,就不能只考虑它一个了。

(update:这个问题考虑到排序很难(如果不是基本不可能的话)应用文件系统自带的index,恐怕还是得回到Indexed DB方案上去,唉。不行再努把力,看看能不能抽出大把时间自己做个算法,不过还有事务和跨进程的要求,很容易陷入重复造车轮啊)

顺道了解了下Linux下的文件系统,像ReiserFS,这个文件系统看起来还是那么回事,结果不是Linux主线里的。排除其作者杀老婆被抓起来这个不确定性因素,据说此人和Linux核心小组关系也不怎么地。感觉Linux其实现在进步缓慢,很多方面都很保守甚至可以说相对应该达到的水平相去甚远,还有点排斥异己的味道唉。

(这个排斥要辩证地看,排斥android是对的,android不遵守规矩;排斥这哥们就有点没必要,虽然我不清楚具体原因,但很多人都说不是代码风格的问题)

理性的说,现在Linux的用户其实也很多,所以一些东西大改也不太容易。不过仔细思考一下,Linux虽然是日志文件系统,虽然每分钟都有百十号人号称Linux的安全多么棒,可Linux最初的设计考虑居然根本不包括ACL等一系列实用功能。原来geuss和我说Linux的驱动架构也和Windows有差距,我没仔细了解过,现在想来其实都是一回事。

说到底,Linux是一个等着你自己定义的系统,还是不是给用户、无论桌面用户还是企业上层开发用户使用的。为什么这么说呢?

一方面,像Linux这样选择虽多,但是每个选择都有那么点残次的系统,这对上层用户会让他们觉得很窝囊,但对底层用户也不是太形成障碍:说实话,像btree族的这些算法才是恒久不变的核心,掌握之后,自己去操作那块硬盘也难不了多少;而且我们还可以任意从某一个选择开始,删减、重造。虽然我还没干,但对于比操作系统平台目标具体的多的需求,想必也只是些学习量和工作量的问题。

另一方面,比如我自己的这个东东其实也需要ACL一类的概念,不过我真没心思去理解Windows的各种机制、策略,然后在小心翼翼地做集成和映射,即便*nix系统从来没存在过只有Windows也是这样。我不知道那些全面依赖M$的各种模型的上层用户到底怎么做;但我总觉得最终弄这些,还是自己简单设计一下,慢慢进化来的好。

反过来看过去在微软平台,那会儿不觉得M$有多NB,但现在就看出来,在.NET上,面向各具体方面之下通用工具大多数的确实够得上“产品”二字的标准。比如ASP.NET是多线程的,的确,比*nix下经常采用的多进程,它存在一些问题;但是一般项目真正使用的时候,却避免了多进程带来的种种麻烦。我不知道这因为凑巧被IIS的机制给逼的,还是仔细斟酌考虑的,但效果确实如此。

又比如.NET下的种种具体的框架,你说它不好用,它确实有很多这样那样的烦人之处;但是如果看看整个业界,只要是M$认真做了的已经步入成熟期的,(恕我孤陋寡闻)即便有其它组织做了同样的时间,也基本上没有达到M$的质量。可惜这些对于像我这样的开发者,都是无用功,用不上。

为什么说迷茫了呢,看得越多标准越高,现在让我拍着大腿觉得人家设计的好、写的好的东西简直没有了;剩下的只有对工业生产的种种因素的考量。偶像也少了,即便那些在各个领域中非常杰出的程序员还是要比我棒,但是我知道大多不过都是一个普通人可达到的目标。这个真是太烦人了,没有风可跟,没有目标去盲目。

如果当初不发宏愿就好了,也许我就能继续去跟别人讨论什么方法论和各种工具使用的奇技淫巧、继续津津乐道技术八卦和追随偶像,继续看着一个又一个博客转载的作品大声叫好;也许干脆玩够技术跳去搞运作,作为一个有中国特色的带队者大谈满足需求就是硬道理、或者蜕变成商业人士不屑一顾地说技术永远不是最重要的。

现在呢?即便将来多面发展,在技术这一块,却好比一株将要破土而出的小草,隐隐感觉到头顶上广袤的虚空和有限的星光;而谁又知道外面是否寒冬、或者干脆压着一块巨石呢?

P.S. 

我靠,发挥了这么远。

关于文章最初的问题,我基本上决定不考虑,有需要的自己决定去。反正是标准的Provider模式,换成数据库支撑的伪文件系统也未尝不可。目前默认的先依赖在文件系统上;如果真能够把业务先运作起来(但这绝不说明技术不重要!),就像上面说的,直接量体裁衣也不是什么难事。

“P.S.”上面的一段怎么那么文学少女,不改了。直白地说:虚空就是说总体上一个技术人员能碰到的有意义的题目很少,星光呢,则是对每个人来说想必还是能找到一两个值得玩的亮点题目;最后,即便有仰望星空的机会,也只不准时不与我。总而言之,想对IT行业认真点,真TM不容易。

这几年来,我在社区的讨论中和网络上发表的文章中学到过很多东西,对于我的进步来说,估计大多数东西(哪怕我现在已经忘得差不多了的那些),都对我不可或缺。可是到现在为止,我真正有印象的有趣话题只有一个,就是脑袋的那个不动点;真正沉淀成具体的知识的只有一种,就是脑袋督促我深入的编译原理前端。

说实话,我现在的工作用到parsing technology的并不多,如果不懂也未必写不出像样的算法;但是研习这门的经历和结果,却真正改变了一些认知上的、心里的东西,这是我一再强调的。而对编程语言及其它知识组织工具背后模型的理解是我现在的课题,但这方面也许还得再数学化一些,才能变得更加清晰和易于实践。

也许是因为基本没掌握什么数学工具的缘故,这方面在直觉上有所突破之后,到现在也难寸进,最多有一些流于表面化的小范围实践。可又抽不出时间攻坚,这是我迷茫的另一个原因了。

posted on 2010-10-23 02:47  怪怪  阅读(602)  评论(1编辑  收藏  举报

导航