python算偏门的语言么?

2012-05-09 22:20:42 +08:00
 myrual
只是抱怨一下而已。
用twisted实现了一个UDP网络通信的服务器程序,目前看暂时工作稳定,而且代码逻辑相对不复杂。
但是部门领导担心项目结束后无人维护,因为目前团队里面没人会python。希望能写一个php版本的,或者c语言版本的,或者asp版本的。
顺便问一个问题,搞UDP编程,能用php或者asp完成么?




以下是简单的抱怨:
话说python确实不是非常流行的语言,毕竟学校里面没人教,但是至少比ruby go nodejs 要普及的多吧。我还没说erlang呢。
现在的公司水平确实不行,网站服务器是amazon的large windows主机,因为IT部门只会.net
当需要处理某个终端的上发http get 请求的时候,就是因为这个请求是 xxx.asp的形式的,就某人写了一个c语言的程序来截取tcp请求,然后转发给apache,然后用php处理。
但是和网页无关,只是做一些逻辑处理和http get 以及数据库操作。
这个小程序在用的人数多的时候cpu占用率直奔99% , 后来我用crontab做了定时重启,算是暂时解决了占用率高的问题。但是似乎解决根本问题的时间根本没有排进日程。
6100 次点击
所在节点    Python
38 条回复
notedit
2012-05-09 22:25:49 +08:00
如果python是偏门语言的话 那些玩go 玩erlang 的怎么活啊
join
2012-05-09 22:26:28 +08:00
我了个草,python这么潮的语言居然被你们公司这么冷落了。。。
写python程序是件很爽的事情有木有?
函数式编程编码效率很高的有木有?
你公司的领导不懂技术么?
reus
2012-05-09 22:27:27 +08:00
py不偏门,是他们太落伍了
bhuztez
2012-05-09 22:29:18 +08:00
> 顺便问一个问题,搞UDP编程,能用php或者asp完成么?

能。但是,很显然,可维护性会比用 Twisted 写更糟糕。


> 我还没说erlang呢。

其实,Erlang 最合适。在你上面说的那个场景,Erlang,学起来容易,写起来代码又短,极大降低代码维护成本。


> 当需要处理某个终端的上发http get 请求的时候,就是因为这个请求是 xxx.asp的形式的,就某人写了一个c语言的程序来截取tcp请求,然后转发给apache,然后用php处理。

你们的IT部门很厉害啊。能写出这样的程序的人,就很少了,你还怪他们占CPU高。当然了,Windows上跑个 Apache 当反向代理都可以啊。
bolome
2012-05-09 22:30:16 +08:00
不能说学校里面不教就不叫流行语言
myrual
2012-05-09 22:48:21 +08:00
@bhuztez
c 语言这个程序运行在ubuntu上,而写这个程序的人不会asp,所以自己找一个c语言的tcp服务器例子写了一个accept,然后靠线程处理后续逻辑的程序。
显然这是一个阻塞的方法,一旦并发的客户端多了,意味着线程很多很多,如果客户端没有及时关闭tcp链接,那么意味着大量线程被无法关闭的tcp阻塞住无法推出。
sophy
2012-05-09 22:48:44 +08:00
我的妈呀。。。。。。
reus
2012-05-09 22:51:19 +08:00
目测可以用nginx+lua解决此类问题
virushuo
2012-05-09 22:53:54 +08:00
转发的那个需求为什么不用webserver的redirect来处理呢?
fanzheng
2012-05-09 22:58:44 +08:00
python不偏门吧,在国内的话确实不流行,国内学校教的office 还是2003,应该是10年前的软件了把。
luguozmy
2012-05-09 23:04:12 +08:00
您能别歧视ruby么?
再说了, 如果你的C基础好, 学什么语言不都是一理通百理明的
myrual
2012-05-09 23:07:12 +08:00
@virushuo apache 的rewrite功能他不会。
我也不会,而且真的没时间研究。
其实整个服务器上的需求根本不需要apach php 等等东西。
只要有一个能处理http get 的东西,然后能发出http get的请求,并且能操作数据库就行了。
其实python twisted, 就可以了。只不过我现在没时间弄这个东西,他们也没有足够的勇气来做一个新版本。
myrual
2012-05-09 23:16:23 +08:00
@luguozmy 这个不算歧视吧。。。。。。。。。。,用的人少才可以给你带来生产力水平上竞争优势。

另外我真的不觉得c语言基础好,学其他语言就可以的。 这个推论太简单了。
我用函数式语言编过一些代码,这段经历告诉我学一门新的语言绝不是那么简单的。
darasion
2012-05-09 23:32:00 +08:00
难者不会,会者不难。

我感觉,c都会写,python没理由不会写啊。

c 和 python 哪个更难学?
allenm
2012-05-09 23:33:40 +08:00
apache 的 rewrite 功能,最多花半天时间看看文档就能配置出来了吧。这比写那个 c 的程序要快多了吧。当然解决问题的时候,会倾向于选择自己熟悉的技术,这样时间可控。
quake0day
2012-05-10 00:06:47 +08:00
@myrual 其实这个像怪物似的程序有个优点,就是可以让黑客摸不着头脑。
iveney
2012-05-10 00:30:18 +08:00
python 算偏門,那brainfuck,P'' 算什麼阿
ohhe
2012-05-10 01:12:49 +08:00
在什么公司就按公司的习惯走,你还是用.net实现好了。你们领导做的没错至少。
rexren
2012-05-10 02:21:07 +08:00
@ohhe说的对。 在什么公司最好就按照习惯走。鉴于python算不算偏门,现在我们学校cs新生的cs入门语言就是python,然后java。 C语言是在大三的时候上操作系统的时候再学的。 很多学校都把python作为计算机新生的入门语言, 当然有很多争论,但是好处是写python很有乐趣,可以激发学生兴趣。
myrual
2012-05-10 07:05:41 +08:00
@ohhe
假设每个客户端每秒钟发送1个1k 大小的UDP 数据包,峰值的时候有3万个客户端同时联系服务器,峰值时间持续8小时。
这个用.net实现的话,需要注意什么么?
用线程可以么?
可以用阻塞的方式实现么?
如果有数据库操作是不是要放在单独的线程里面处理?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/35279

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX