V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
eyp82
V2EX  ›  程序员

看到很多人说 Python 好学, 简单, 脚本语言, 如何如何几个小时就能撸代码, 我的问题是......

  •  
  •   eyp82 · 2017-06-27 15:33:57 +08:00 · 10333 次点击
    这是一个创建于 2739 天前的主题,其中的信息可能已经有所发展或是发生改变。

    你们是认真的吗?

    本人熟悉(不敢说精通) C/C++, Java, Python, Go, 了解一些 Ruby. 以我的感觉, 越是像 Python 这种动态语言, 其实越难以驾驭, 各种在静态语言看来类似黑魔法的东西层出不穷(Ruby 元编程之类更甚), 一不小心就掉坑里. 我可以放心的让学了很短时间的工程师动手写 Java, 却不太敢让他们马上就写 Python. 至少静态语言编译器可以阻止大部分低级错误.

    感觉 Python 对开发人员的要求比静态语言要高, 更加适合牛人单打独斗, 或者组成三两个人的敏捷小项目组, 每个人都是独当一面可以控制全局那种, 一般的水一点的程序员用 Python 很容易就掉坑里爬不出来.

    所以, 我心里有个大大的问号, 那些说 Python 如何简单如何脚本语言一两天就能学会的, 你们是真的用它开发过严肃的项目, 还是只是自己没事写了个 shell script 就能搞定的小脚本?

    没有喷谁的意思, 只是好奇.

    第 1 条附言  ·  2017-07-06 01:06:44 +08:00
    额, 验证成功, 果然发这类帖子是最容易得到铜币的, 就此收手.
    46 条回复    2017-06-28 13:31:33 +08:00
    airqj
        1
    airqj  
       2017-06-27 15:38:14 +08:00 via Android
    python 要是不容易上手易用
    现在数据挖掘,神经网络之类的都不会用 python 了
    regicide
        2
    regicide  
       2017-06-27 15:39:03 +08:00 via iPhone   ❤️ 3
    上手快易理解和开发项目是两码事啊哥们
    大部分人拿 python 也就做个脚本
    eyp82
        3
    eyp82  
    OP
       2017-06-27 15:46:04 +08:00 via iPhone
    @airqj 开发那些库的人更多是看中它的抽象能力更高,不用跟语法细节搏斗,而不是容易入门吧,都是些 CS 的博士科学家之类,他们会觉得哪个语言他们不好上手吗
    lovedebug
        4
    lovedebug  
       2017-06-27 15:47:41 +08:00
    上手容易一般也就精通困难,之前看过 Python 的学习曲线,后期陡升。
    halfcoder
        5
    halfcoder  
       2017-06-27 15:49:25 +08:00
    动态语言一时爽,______________。
    cashew
        6
    cashew  
       2017-06-27 15:51:53 +08:00   ❤️ 3
    和 JavaScript 比,Python 好多了。不黑。
    ipwx
        7
    ipwx  
       2017-06-27 15:55:12 +08:00
    喜欢 Python 的人,应用场景和 Java 派系完全不一样好吧…… 无论是 Data Scientist,还是一对开源小项目,哪个符合软件工程的流程了?
    jmc891205
        8
    jmc891205  
       2017-06-27 15:55:31 +08:00   ❤️ 1
    你刚学会 C++、Java 语法的时候就能开发严肃的项目了吗?
    哦对了 Java 应该可以哈哈
    vicalloy
        9
    vicalloy  
       2017-06-27 15:56:23 +08:00
    初级程序员依葫芦画瓢就可以了,那些黑魔法他们不知道也写不出来。
    缺少类型检查是各类动态语言普遍存在的问题,这点确实“不方便”。
    Python 3.4 之后开始加入类型注解了。
    lightening
        10
    lightening  
       2017-06-27 15:58:50 +08:00 via iPhone
    主用 Ruby。静态类型检查确实可以防止一些低级错误,但也仅仅是一些低级错误而已了。C++的黑魔法才真是黑……
    levn
        11
    levn  
       2017-06-27 15:59:06 +08:00
    项目是有多严肃啊
    SuperMild
        12
    SuperMild  
       2017-06-27 15:59:07 +08:00
    大概意思是容易使用别人写好的库,py 和 js 一样,一知半解也可以用各种库完成一些任务
    mengzhuo
        13
    mengzhuo  
       2017-06-27 16:00:41 +08:00
    1. 游戏、web 正式项目都用 Python 写过(十分严肃,有 UT,回归,冒烟)。后来离职后有人想用 Java 重写一遍,结果代码量实在是太大(叫你们不用元编程哈哈哈)放弃了。
    2. 脚本趁手的也可以

    利益不相关,现在在写 Go
    xiaxiaocao
        14
    xiaxiaocao  
       2017-06-27 16:03:09 +08:00
    @vicalloy Python 3.0 加了 function annotation, 3.5 增加了 type hints, 3.6 增加了 variable annotations,都跟 3.4 没关系
    SuperMild
        15
    SuperMild  
       2017-06-27 16:07:26 +08:00   ❤️ 1
    事实上 Python 是一个非常“庞大”的语言,语言特性非常多,而且还不断做加法,加入各种新特性,把 Python 本身的全部特性学一遍都要花很多时间。

    相对来说,Golang 反而是难得一见做减法的语言,Golang 本身非常小,特性少,语言本身更容易学,但是用起来就需要一定编程经验了,比如对一个字符串进行 sort 操作(例如把“ dbca ”排列成“ abcd ”)都没有现成函数,要自己想办法解决。
    airqj
        16
    airqj  
       2017-06-27 16:07:53 +08:00 via Android
    @eyp82 你认为搞数据挖掘神经网络的都是科学家吗……
    还有不少非 cs 出身的
    BingoXuan
        17
    BingoXuan  
       2017-06-27 16:09:50 +08:00 via Android
    开发项目和掌握语言是两回事。Python 当脚本确实蛮好用,真正做项目其实和其他语言没差别。
    kanchi240
        18
    kanchi240  
       2017-06-27 16:10:19 +08:00
    管他是 script 还是严肃的项目,撸了给我钱就行。。纠结个毛线
    vicalloy
        19
    vicalloy  
       2017-06-27 16:26:25 +08:00
    @xiaxiaocao 不好意思,记错了。 把 Type Hints 记成 3.4 了。
    zjsxwc
        20
    zjsxwc  
       2017-06-27 16:27:59 +08:00
    编码一时爽,重构火葬场。。。233333
    Cooky
        21
    Cooky  
       2017-06-27 16:30:20 +08:00 via Android
    啥都不懂的人学 C / C++ 直接就劝退了吧……
    v2pro
        22
    v2pro  
       2017-06-27 16:39:55 +08:00
    每种语言都有最适合自己生存的场景,也都有独一无二的诞生背景。
    Python 目前在数据科学领域确实是拥有统治地位的,科学计算方便,不需要过多考虑线上性能,多适合离线算法实验或者是统计分析 demo。
    至于你说的严肃开发,Python Web 上手也不是很难吧,现成的框架虽说不是尽善尽美,各有各的瓶颈,但在你的场景下合理使用应该并不比其他语言更难。
    satura
        23
    satura  
       2017-06-27 16:50:36 +08:00
    易于上手,难于精通。
    Thoxvi
        24
    Thoxvi  
       2017-06-27 16:53:31 +08:00 via Android
    看你怎么定义

    Python 入门容易没话说
    真的要掌握一些类似于 Ruby 的幽灵方法或者元编程之类的复杂的特性,没基础几天也搞不下来

    不过大部分说容易的使用场景是入门吧,Python 作为一种入门语言还是挺好的


    个人感觉说 Python 容易的是为了给编程入门提供路径

    (事实上也挺容易的)
    gesse
        25
    gesse  
       2017-06-27 16:54:15 +08:00   ❤️ 2
    这种讨论我基本不发表意见,用语言用出优越感的人一般大家都不在一个频道。
    viator42
        26
    viator42  
       2017-06-27 17:12:23 +08:00
    Python 写个脚本干活还是很方便的.做个大点的项目就有点困难了,脚本语言结构太散了不容易组织
    em70
        27
    em70  
       2017-06-27 17:26:22 +08:00 via Android
    比如下载一个网页,python 一句话就够了,java 要写 20 行,还不够简单吗
    WangYanjie
        28
    WangYanjie  
       2017-06-27 17:30:40 +08:00
    非常赞同,Python 对人的要求其实比 Java 高,或者说 Java 在工程上的便利性远高与 Python。
    说两三天就能学会 Python,是指怎么写个 Demo。
    jiangzhuo
        29
    jiangzhuo  
       2017-06-27 17:33:52 +08:00
    Python 写个脚本干点小活还是很方便的,最近两天用 js 比这 scrapy 造爬虫的轮子,发现 js 要啥啥都没有,都得自己从头撸。
    loryyang
        30
    loryyang  
       2017-06-27 17:38:13 +08:00
    python 上手容易其实就是指的大家做一些比较简单的项目,比如机器学习啊,数据处理,小网站啊这种,而不是说做一个比较大型的合作项目
    这种情况下,大部分人都不会使用到非常复杂和高深的特性
    另外,现在 Java 的新特性也存在 lz 提到的一些不容易看懂和维护的情况
    xvx
        31
    xvx  
       2017-06-27 17:46:16 +08:00 via iPhone
    Python 写个 hello world 还是超快的。
    写单文件脚本,也很方便。
    问题是,开搞正式的项目,就掉进坑里面爬不起来了。
    我现在就是爬不出来了。
    liprais
        32
    liprais  
       2017-06-27 17:51:56 +08:00
    用 python 干的活大部分难点不在写代码上
    ioriwong
        33
    ioriwong  
       2017-06-27 18:02:46 +08:00 via iPhone
    python 比较难写出足够严谨的大型项目

    譬如 odoo,挺大了,说实话问题比较多。当然,到了这么大还能支撑业务,很厉害了
    allinwonder
        34
    allinwonder  
       2017-06-27 18:10:19 +08:00 via iPhone
    现在绝大多数编程的人都不是码农了。码农眼里语言的优点其他人根本不 care。
    phrack
        35
    phrack  
       2017-06-27 18:26:43 +08:00 via Android
    几十行几百行的脚本,能出多大的问题。

    大项目用 python 的,一般是有那么几个特别牛逼又特别熟悉这个项目的撑着的。
    pepesii
        36
    pepesii  
       2017-06-27 18:31:39 +08:00 via iPhone
    我觉得挺好的呀,萝卜青菜各有所爱吧
    mingyun
        37
    mingyun  
       2017-06-27 23:23:00 +08:00
    人生苦短,_________
    NoAnyLove
        38
    NoAnyLove  
       2017-06-28 00:08:26 +08:00
    Python 适合新手入门,但是要真正学精通真心的不容易。。。。。。

    我学 Python 这么多年了,到现在都不敢说自己学精通了。。。。。。
    zhuangzhuang1988
        39
    zhuangzhuang1988  
       2017-06-28 00:58:44 +08:00
    超过 100 行的代码还是乖乖用静态语言,
    动态语言===作死。
    sagaxu
        40
    sagaxu  
       2017-06-28 09:39:04 +08:00 via Android
    那些高级特性可以不用的,Java 新手也都要学会运行时合成字节码的魔法才能做项目吗?
    jianghu52
        41
    jianghu52  
       2017-06-28 09:47:22 +08:00
    楼主你说的有道理。其实最根本的原因在于,java 因为足够的繁琐,导致了他的编码风格可以被强制的一致。因此新人照葫芦画瓢也能避免踩很多坑。反之 python 很自由,加之轮子足够多,同一个问题怎么实现都可以。因此新人没办法决定参照那个代码是正确的。
    ivechan
        42
    ivechan  
       2017-06-28 10:17:30 +08:00
    说再多,这不过只是个鄙视链而已。
    x7395759
        43
    x7395759  
       2017-06-28 10:44:42 +08:00
    23333,多看几本书,英文书。
    msg7086
        44
    msg7086  
       2017-06-28 11:45:49 +08:00
    Python 这么死板的语言你还不敢放手?
    那让他们写 Ruby 这不得○车漂移了啊……
    recovery0394
        45
    recovery0394  
       2017-06-28 12:20:36 +08:00
    python is very usefull and powerfull, i love it .
    carlonelong
        46
    carlonelong  
       2017-06-28 13:31:33 +08:00
    @msg7086 python 死板? 第一次听说
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3541 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 04:41 · PVG 12:41 · LAX 20:41 · JFK 23:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.