1
notedit 2012-05-09 22:25:49 +08:00
如果python是偏门语言的话 那些玩go 玩erlang 的怎么活啊
|
2
join 2012-05-09 22:26:28 +08:00
我了个草,python这么潮的语言居然被你们公司这么冷落了。。。
写python程序是件很爽的事情有木有? 函数式编程编码效率很高的有木有? 你公司的领导不懂技术么? |
3
reus 2012-05-09 22:27:27 +08:00
py不偏门,是他们太落伍了
|
4
bhuztez 2012-05-09 22:29:18 +08:00 2
> 顺便问一个问题,搞UDP编程,能用php或者asp完成么?
能。但是,很显然,可维护性会比用 Twisted 写更糟糕。 > 我还没说erlang呢。 其实,Erlang 最合适。在你上面说的那个场景,Erlang,学起来容易,写起来代码又短,极大降低代码维护成本。 > 当需要处理某个终端的上发http get 请求的时候,就是因为这个请求是 xxx.asp的形式的,就某人写了一个c语言的程序来截取tcp请求,然后转发给apache,然后用php处理。 你们的IT部门很厉害啊。能写出这样的程序的人,就很少了,你还怪他们占CPU高。当然了,Windows上跑个 Apache 当反向代理都可以啊。 |
5
bolome 2012-05-09 22:30:16 +08:00
不能说学校里面不教就不叫流行语言
|
6
myrual OP @bhuztez
c 语言这个程序运行在ubuntu上,而写这个程序的人不会asp,所以自己找一个c语言的tcp服务器例子写了一个accept,然后靠线程处理后续逻辑的程序。 显然这是一个阻塞的方法,一旦并发的客户端多了,意味着线程很多很多,如果客户端没有及时关闭tcp链接,那么意味着大量线程被无法关闭的tcp阻塞住无法推出。 |
7
sophy 2012-05-09 22:48:44 +08:00
我的妈呀。。。。。。
|
8
reus 2012-05-09 22:51:19 +08:00
目测可以用nginx+lua解决此类问题
|
9
virushuo 2012-05-09 22:53:54 +08:00
转发的那个需求为什么不用webserver的redirect来处理呢?
|
10
fanzheng 2012-05-09 22:58:44 +08:00
python不偏门吧,在国内的话确实不流行,国内学校教的office 还是2003,应该是10年前的软件了把。
|
11
luguozmy 2012-05-09 23:04:12 +08:00 1
您能别歧视ruby么?
再说了, 如果你的C基础好, 学什么语言不都是一理通百理明的 |
12
myrual OP @virushuo apache 的rewrite功能他不会。
我也不会,而且真的没时间研究。 其实整个服务器上的需求根本不需要apach php 等等东西。 只要有一个能处理http get 的东西,然后能发出http get的请求,并且能操作数据库就行了。 其实python twisted, 就可以了。只不过我现在没时间弄这个东西,他们也没有足够的勇气来做一个新版本。 |
13
myrual OP @luguozmy 这个不算歧视吧。。。。。。。。。。,用的人少才可以给你带来生产力水平上竞争优势。
另外我真的不觉得c语言基础好,学其他语言就可以的。 这个推论太简单了。 我用函数式语言编过一些代码,这段经历告诉我学一门新的语言绝不是那么简单的。 |
14
darasion 2012-05-09 23:32:00 +08:00 1
难者不会,会者不难。
我感觉,c都会写,python没理由不会写啊。 c 和 python 哪个更难学? |
15
allenm 2012-05-09 23:33:40 +08:00
apache 的 rewrite 功能,最多花半天时间看看文档就能配置出来了吧。这比写那个 c 的程序要快多了吧。当然解决问题的时候,会倾向于选择自己熟悉的技术,这样时间可控。
|
17
iveney 2012-05-10 00:30:18 +08:00
python 算偏門,那brainfuck,P'' 算什麼阿
|
18
ohhe 2012-05-10 01:12:49 +08:00
在什么公司就按公司的习惯走,你还是用.net实现好了。你们领导做的没错至少。
|
19
rexren 2012-05-10 02:21:07 +08:00
@ohhe说的对。 在什么公司最好就按照习惯走。鉴于python算不算偏门,现在我们学校cs新生的cs入门语言就是python,然后java。 C语言是在大三的时候上操作系统的时候再学的。 很多学校都把python作为计算机新生的入门语言, 当然有很多争论,但是好处是写python很有乐趣,可以激发学生兴趣。
|
20
myrual OP @ohhe
假设每个客户端每秒钟发送1个1k 大小的UDP 数据包,峰值的时候有3万个客户端同时联系服务器,峰值时间持续8小时。 这个用.net实现的话,需要注意什么么? 用线程可以么? 可以用阻塞的方式实现么? 如果有数据库操作是不是要放在单独的线程里面处理? |
21
66450146 2012-05-10 07:16:32 +08:00
Python已经火到我们的iOS Team都打算找我学点,怎么能算偏门呢:)
|
22
acgism 2012-05-10 07:34:46 +08:00
Python 哪門子冷門了···
|
23
clowwindy 2012-05-10 13:42:06 +08:00
可能说的有点过分,不过如果一个公司从上到下的所有人都这样害怕学习新东西,宁愿花十几倍的时间用自己会的东西做一个轮子,也不愿学一下配置 apache 的 redirect,这个公司肯定没救了。
|
24
myrual OP @clowwindy 我也觉得确实没救了,但是这样一个公司依然活着,而且活的很好,还是上市公司。产品还能进美国的Apple store。虽然差评很多,苹果发过警告信。
|
25
Alien 2012-05-10 19:49:01 +08:00
360?
|
26
myrual OP no,做硬件产品的,被警告是因为差评和投诉太多
|
27
davidzhang 2012-05-11 14:27:49 +08:00
我认为技术没有偏不偏的问题,只能说什么语言更适合来做什么,我非常注重某种语言能够给我的项目在最短时间内,完成某一部分的工作,这才是关键,我认为没有万能的语言,也许有,但是我认为,让某种语言做他最擅长的事是最好的。
|
28
AntiGameZ 2012-05-11 15:10:36 +08:00
领导的顾虑是对的,毕竟,为了这个小程序,专门招个Python程序员?况且你离职后的某一天,程序出错了,也不大可能立即能找到人来维护代码吧。
这和语言偏门不偏门没什么关系。 |
30
myrual OP @AntiGameZ
专门的python程序员都是写什么应用呢? 另外真心觉得学习python是简单的过程。能有多难? 甚至完全可以把python当作简化的c语言来用。 我写了10年的单片机程序,一直做的都是根据不同情况把数据从一个地方放到另一个地方。python仅仅是会用,但是从没写过正式商用的任何东西,最值得骄傲的成果也只有以前公司的那些人,不到20个在用。 在新公司,依靠twisted,几天可以UDP通信,TCP通信,socket编程。 熟悉了网络编程之后,大部分时间是放在业务逻辑的设计,以及根据实验数据总结经验上。 很难么? |
31
AntiGameZ 2012-05-11 18:30:55 +08:00
@myrual 站在个人立场,你完全没有错。作为team的领导者,他需要一个能够保证的东西,除非说他自己可以沉下心学python,不然估计他什么也保证不了吧?谁能保证一个人能在1天,3天还是10天内学会某一种语言呢?
而且,相比team内的资源也不是非常充裕的(这点在哪都一样吧?),能说给谁N天时间,什么都不干,专心去学某个东西么,人家本人愿意么?(没错,很多时候不想学习的人到处都是)。 |
32
myrual OP @AntiGameZ
我需要的是一个支持同时3万个客户端在线的服务器软件,用UDP通信。 team里面技术分布是这样的,。 5个人。 一个pm, 一个去年9月份入职的objective c程序员,比较有经验。 一个去年9月份刚毕业的学生,objective c时间半年多。 一个今年3月入职的前.net 程序员,业余java程序员。 一个去年入职的前dephi java,主要是android程序员,写了一个c语言程序来转发客户端上发的请求,2000用户在线就会导致进程占用cpu100%。 我,入职一个多月的程序员。 有10年的c语言经验。 基于这个人员配比和技术分布。 我认为python已经是没办法的选择了。 我都没好意思说erlang,go,nodejs。 如果说用c语言来设计的话,我真的很烦恼,虽然理论上讲,人人都可以维护,但是你知道这里面可能出现的bug会有多少。 |
35
AntiGameZ 2012-05-11 21:45:05 +08:00
@myrual 如果python是“唯一”选择,那应该向你的pm证明它的唯一性,进而在团队里推行Python。不过,看你楼顶的说法,pm应该是认为python是“你的选择”,而不是“唯一选择”。是不是应该想法从这点出发,说服他?
|
37
reus 2012-05-11 22:35:33 +08:00
你可以用C写nginx的扩展(虽然可以直接用lua模块,甚至直接用配置文件完成转发这种事情
|