1
ch_linghu 2012-11-22 15:35:45 +08:00 1
普通的推荐理由:简单,好用,轮子多。
最重要的推荐理由:我自己比较熟。 |
2
fastzhong 2012-11-22 16:07:51 +08:00 1
python & ruby 都不错,就像少林和武当,没有最高,只有更高,学习这玩意我觉得和练武一样,就像每一门武功,不是每个人都适合练,但不等于说这门功夫就不行,或者人有问题。初尝则止,python和ruby没有什么太大的区别,学好则要有缘分。
|
3
zealot 2012-11-22 20:17:26 +08:00 1
我推荐学门脚本语言,不一定是Python,ruby、perl都可以。
程序员会门脚本语言的好处就不解释了 |
4
lightening 2012-11-22 20:35:58 +08:00 1
花两个小时看一下最简单的《简明Python教程》,就能略知一二了。
|
5
blacktulip 2012-11-22 21:08:40 +08:00 2
楼主还是学js吧,js已经一桶浆糊了
|
6
alsotang 2012-11-22 21:35:58 +08:00 4
Python 没有 Ruby 和 JS 好用,Ruby 没有 JS 好用。但越好用的越灵活越不容易掌握。JS 的话,从CoffeeScript学起,然后等待 ECMAScript 6 吧。
就速度来说,JS > Ruby > Python;不过就资料的可理解性以及入门的简易度来说,Python > Ruby > JS,Python 的官方文档十分优秀。就包管理来说,npm > gem > pip(or easy_install)。 如果说要推荐一门脚本语言的话,我也会推荐学 Python,推荐 2.7 或 2.6 版本。无理由噢亲.. 个人喜欢用 Ruby,因为标准库功能强大。不过我在尽量向 V8 based 的语言靠。 |
7
leohxj 2012-11-22 21:37:22 +08:00 1
推荐js,未来会是html和js的世界。
|
8
ltzliwe 2012-11-22 22:05:17 +08:00 1
@alsotang 速度 Ruby > Python ?怎么来的。。 把JS拿来和Ruby、Python比有点不靠谱吧 。。
|
9
sophy 2012-11-22 22:15:17 +08:00 2
美
|
10
reus 2012-11-22 22:18:37 +08:00 1
又不是只能使用一门语言,全都学了就是了。马上学,不要再问这类问题了
|
11
dreamer 2012-11-23 00:06:22 +08:00 1
我觉得喜欢什么编程语言可以稍微反映出一点个人性格,如果你喜欢 _why 和 DHH 那样的家伙,肯定也会喜欢用 Ruby.
个人推荐 Ruby. 如果做 Web 开发的话就更推荐了,不仅因为有 Rails ,更因为 Rails 社区的人一般会把「做得好看」当作份内的事情,这点还是挺重要的。 |
12
Ricepig 2012-11-23 00:13:47 +08:00 1
其实很重要的一个因素是livid用python开发的本站吧
|
13
PrideChung 2012-11-23 00:29:38 +08:00 1
求你们了,讨论脚本语言的时候能不能带上PHP这个倒霉孩纸……
|
15
laskuma OP |
18
judezhan 2012-11-23 11:25:09 +08:00 1
程序员学一门新语言竟然需要理由?
|
20
holmesabc 2012-11-23 11:40:14 +08:00 1
@alsotang 感觉python的doc文字条理很有问题,跟java doc没的比, 虽然默认的java doc很丑。
两点很不爽的 一,不能简单明确的反应类的继承关系。 二,不能简单明确的知道函数返回值的类型。 了解一个类,还是直接用help看,比看官方doc来的直接的多。 |
21
meta 2012-11-23 12:35:03 +08:00 1
主要python还是简单吧,像perl我都用了十几年了,还是有好多东西不明白,看别人的源代码都像是天书。
|
22
heroicYang 2012-11-23 12:39:35 +08:00 1
@blacktulip 哈哈,5楼这个比喻,一桶浆糊。。。不过我感觉现在全身心做js的感觉真不错!为前后端大统一努力!
|
24
binux 2012-11-23 13:15:14 +08:00 1
@holmesabc 那是因为
一,python的类和继承一般并不重要。一般并不关心一个类的怎么继承的,只关心它的接口是怎么样的。“如果它看起来像鸭子,叫起来像鸭子,走路像鸭子,那么它就是鸭子” 二,python是弱类型的,一般使用不关心类型,只要返回值看起来像“鸭子”就可以了。一个函数返回,要么抛异常,要么能bool,要么是内置类型,要么能遍历,然后就够了。如果不是,文档一定会写的。 |
26
holmesabc 2012-11-23 13:54:28 +08:00 1
@binux 当我写这些的时候,就想到有人要这么回答
一、什么叫不关心继承。 我连一个接口有什么方法有什么方法都还不知道,你就说他是这个接口的实现。有个蛋用。 鸭子,前提你要知道鸭子是看起来像什么,怎么叫的,怎么走路的。 你都没有这个前提,我捣蛋指个鸡,说鸭子是这个样子,是这么叫的,是这么走路的。 你就是说这是鸭子了。 二、我管你是不是弱类型。 这个问题不是说是不是弱类型,而是有没有类型的问题。 不是说鸭子就有鸡的方法,你不告诉我你返的鸭子还是鸡,不然怎么知道他是应该像鸭子还是鸡。 |
27
binux 2012-11-23 14:13:12 +08:00 1
@holmesabc
一、 它有什么接口和它是从什么继承的多大关系,或者说身份就那么重要?文档里面一定写了这个类都有哪些API,但是你非得知道哪些是从父类继承的吗?何况大部分python类都是从object继承的,只是长得像鸭子罢了。 二、 类型有那么重要吗?告诉你返回值是一个长得像dict的东西,那它就肯定可以[key],但是非得继承自dict吗?告诉你返回值是可以遍历的东西,那它就非得像list能[index]吗?包括参数也是,接受list的函数大部分都可以接受可遍历对象,具体类型没有那么重要。至于返回的是鸡还是鸭,大部分时候,只要它长了两条腿,能下单那就够了,至于会不会游泳,要用到的时候再说。 |
28
reus 2012-11-23 14:19:50 +08:00 1
@holmesabc 用dir()就可以看到全部方法了。而且如果你像写java一样写个几层的继承结构,那是你自寻烦恼。复用代码请多用组合少用继承
查看返回值的类型,用print type(exp)就可以,也不需要查文档 |
29
holmesabc 2012-11-23 15:04:02 +08:00 1
@binux 好吧,我承认我说的接口是带点java的意思,但我这里的意思是按python里面来的,不是说实现一个接口,就继承一个类,最终的效果,只要有这个方法就行了,我不管你继不继承类。
别老拿list说。哪有那么多东西反回的都是list。返回一个对像,你都不知道他有什么方法,难道只靠猜。返回了一个动物,我觉得他是鸭,因为他可以游泳,我就认为他真是鸭,可以跑了,结果最后发现TM的只是个鱼,一跑就挂掉了。 @reus 我不是在说java和python语言的问题,只是在说文档的问题。别跑偏,免得搞的别人以为我像是在批评python这个语言。还有我刚上面就说了的,看文档,还不如help,当然dir也算。 我说文档烂,也不是乱说的,当然英文烂也有一方像。 昨天看xml.dom这个,随便小看一下,里面的结构了解了一下。什么xml.dom里的Document对像什么Node对像。之后又看了xml.dom.minidom,因为就在xml.dom的下一个嘛,肯定要看。 结果里面有例子,好吧,跟着写一下呗。 里面有这个方法 xml.dom.minidom.parse(),下面的解释是Return a Document from the given。。。 Ok,你返回一个Document是吧,xml.dom里面也有Document,潜意识的就认为这是同一个。 之后我要输出xml,然后在xml.dom里面看各个对象的方法,一时没看见输出的方法。 好像google,有的例子是dom.writexml(...), 我去啊,还有这方法,又去xml.dom里面找,fuck,还是没有。。。。 让人蛋疼啦,最后还是help看了一下,里面有明确的结构,这才发现Document居然是xml.dom.mimidom里面的Document。然后再去看文档,果然有。 你说你要是xml.dom.minidom.parse()里面说明是返回的xml.dom.minidom.里面的Document,哪还有这么多屁事,要不你给个链接也行。 要是在java doc里面,返回的东西,肯定有链接指向这个类,我点过去,我就知道自己的理解是不是错了。 最后再说一下,我是在说文档,不是在说语言。 如果您想继续喷,别跑偏了。 |
30
reus 2012-11-23 15:35:03 +08:00 1
@holmesabc 我没有在说语言问题。如果你在使用xml.dom.minidom.parse()后用dir看一下,那你根本不需要google就会知道怎么输出xml,因为很容易就能看到toxml和writexml这些方法
你认为要知道一个对象支持什么方法,需要先知道它的类型,然后根据这个类型去查文档。所以你关心继承树和变量的类型。但其实你不需要,因为直接就可以知道一个对象的方法,所以说类型就不重要了 遇到不熟悉的类请这样: xml.dom.minidom.parseString('<p />').__class__ dir(xml.dom.minidom.parseString('<p />').__class__) |
32
holmesabc 2012-11-23 15:46:00 +08:00 1
@reus 好吧,你都说了
遇到不熟悉的类请这样: xml.dom.minidom.parseString('<p />').__class__ dir(xml.dom.minidom.parseString('<p />').__class__) 这不是说dir和help好用么, 还不是间接说明我想表达的问题,python的文档太烂。 我不是说什么学习方法,因为毕竟没有系统去学过python,只是用它偶尔写写脚本,你也知道用java写日常用的是有多蛋疼。 你们的学习方法,先学习了。 我现在只想表示一个观点就是python的doc太烂,更java doc没的比。 |
33
chloerei 2012-11-23 15:47:47 +08:00 2
楼主再也不敢发语言贴了~
|
34
reus 2012-11-23 16:04:54 +08:00 1
@holmesabc 你认为python的文档烂,只是因为它不符合你的使用习惯,改变下使用习惯就不会这样认为的了。何况,python是动态语言,返回值的类型是不确定的,毕竟不能像java一样直接从源码里就能解析出来,所以这类信息没有也不奇怪
|
35
yetone 2012-11-23 16:07:43 +08:00 1
哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈,我可以说 javascript 丑的一逼吗?我可以说 Ruby 美得不像话吗?想要速度就别用脚本语言了。好吧,我还是乖乖地去学 LISP 吧(幸亏我不是程序员,为了求生不得不学那些丑爆了的语言)
|
36
holmesabc 2012-11-23 16:14:50 +08:00 1
@reus 你认为python的文档烂,只是因为它不符合你的使用习惯,改变下使用习惯就不会这样认为的了。 不知道可不可以这么理解,如果没看过比它好的文档,就接受了烂文档。
一个您都不愿意去看的文档,难道是好文档。 唉, 返回值类型和动态语言有毛系。 难道您见过一个方法有时返回int有时候返回str有时候Document。 |
37
timonwong 2012-11-23 16:49:24 +08:00 1
|
38
laskuma OP @livid 不知道是不是有bug 每次感谢完一个回复者后必须刷新才能感谢下一个 不然即使显示了感谢已发送还是无效的。。
或者说这是为了防止散钱。。? 还是我这里网络问题。? |
39
blacktulip 2012-11-23 18:08:36 +08:00
不是跟楼主开玩笑啦,真的去学JS吧,反正都动态语言,先学JS有以下好处:
1. 前面说过 JS 一桶浆糊了,学会了前后端通杀; 2. JS 的语法最别扭,所以呢楼主要是先啃会了 JS ,以后无论学 Python 还是 Ruby 都小菜一碟,而且学的时候还会经常出现「哇居然能这样写好爽啊」之类的感觉,学习顺序要是反过来的话不免会觉得「靠怎么要这样写太别扭了」; 3. 会了 JS 才能去学 CoffeeScript . |
40
reus 2012-11-23 18:33:00 +08:00
@holmesabc 我可没有表达过不愿意看文档这个意思。我知道什么样的信息,应该用什么工具得到。比如类型信息,python是在运行时才能得到的,所以我会用运行时的工具。文档也有文档所擅长提供的信息。比如example和其他细节
python确实没有限定返回值只能是同一个类型,比如这个: http://gist.github.com/4134931 foo的返回值的类型就是不确定的,只能在运行时得到 python允许这样,所以一个方法会返回不同类型的值也是常见的 当然对python代码进行静态类型分析也是可以的,但没有必要这样做,如果需要静态类型安全,可以用其他语言或者python的变种(cython, rpython之类 |
42
reus 2012-11-23 19:55:44 +08:00
@binux 类型系统的动态/静态,和强类型/弱类型,是两个概念。参考:http://www.artima.com/weblogs/viewpost.jsp?thread=7590
|