-
Notifications
You must be signed in to change notification settings - Fork 8
新版的argo在进行中。T.T 而且需要程序员和前端和各种运营团体。目前argon已经完成了一部分,代码放在github上面。
然后,我定期地讲一下argon现在的结构和代码,还有以后的设想等等~有兴趣的可以考虑加入我们。
吐糟argo丑陋的帖子太多了,由于我还不是很了解,很残忍地曾经陷入一次这样的讨论。事后被告知其实是月经帖,但讨论的过程我还是很燃的。
argo是1995年开设的的,其历史 之悠久令人称奇。像argo的本身是telnet bbs,我们需要一个模拟终端机,然后telnet到bbs的服务器,然后打键盘看帖子。这种狂野的方式现在argo也在用,而且是目前用户的主流方式之一。如果你有兴趣,可以试试。
当然,适应web,argo也推出了web端。然后我们开一下web端的代码,会惊奇地发现是采用表格布局的。其实也没什么好惊奇的,像POJ其实也是表格布局。功能决定了不需要太多的花俏。
可以想象,argo用的技术不夸张地说是十年前的技术。telnet端是用c写的,web端好像也是。最直接的影响,就是数据是用文件来存储的……没错,就是我们c语言课上说的struct。于是导致我们几乎没有好的办法对文章进行检索和好一点的功能。于是为了和底层的c兼容(新版和旧版数据要通信),我们不得不在开发新版本的时候受到很多限制。像新版本的phpbbs,为了解决数据的问题,把c代码里面的一部分编译成php扩展……
摆在面前的有两条路,一条是同步方案,一条是重写telnet和web端。如果选择后者,容易让人以为我们吃饱了没事就喜欢折腾新版本 = = 而选择前者,我觉得根本就没有解决问题…… telnet没办法走下去了。最后还是鼓起勇气选择了(最后一次)重写。
虽然选择python不会觉得惊讶,其实里面有很多我们的考虑。事实上,起码有如下这些要求:
- 开发速度够快。要在下学期(大概6个月)之前写好并且上线。
- 简单直接,尽量少bug。
- 容易扩展和维护。
- 我们的下任可以很好的接过我们的担子。
其实最重要的是第一点,一定要够快。具体原因就不多解释了。
然后摆在我们面前的选择有:
- python
- Ruby on Rails
- lisp(我真的考虑过)
- node.js
- c/c++(其实没有考虑过)
- 用已经写好的论坛来搭
首先直接排除C++了。我认为我的能力完全不足以用C++来开发,如果真的用C++,而且我有无限战斗力,下任估计也会哭的。
从开发速度和bug的考虑上,基本可以无视C和C++,估计等我们把指针写完,我们已经变成NULL了。用这个的话我估计我要写一辈子都不一定能写完。 另外在扩展性和易于维护上也不会考虑。我估计我没有能力把C语言写的扩展性很好,而写一次编译一次的方式估计也不能用在argo上面。
好吧其实解释这么多只是说明,旧版的telnet和bbs是用C写的,但是其实在现在不是好的选择。
然后就是考虑到node.js了。这个的关键问题是太激进了,argo说不定还要跑几十年的,而node.js刚出,还是保守一点吧。而且下任要学node.js也要另外的成本。
然后就是RoR了。其实老实说,没有选择他的原因是我那时候还不会RoR,也没发现RoR已经侵略硅谷了。那时候感觉RoR差不多跟python一个级别的吧,然后我用python写过一个类似gmbox的东西,写过一个功能简陋的oj,用python成本会比较低。另外,显然python是这几个选择里面最适合新人学习的了。
然后说一下为什么不用写好的论坛。其实我很想的 T_T 但是底层数据太珍贵了,估计没有办法让底层数据迁就写好的论坛。另外从长远来说,自己写 以后开进的空间大的多。
然后python完全可以满足要求。python有成熟的库,说不定我们当一下胶水就可以了。python快速开发的能力有目共賭。python虽然写出不如lisp精简,但优雅的代码和成熟的库无疑在减少我们的bug。扩展性和可维护完全可以满足。
至于lisp…… 太装B了……
于是,python写telnet和web。得益于都是python,在数据库上还可以重用很多的代码。