Java Web出身,想学python,求指点 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
xiluo
V2EX    Python

Java Web出身,想学python,求指点

  •  
  •   xiluo 2011-04-04 16:07:24 +08:00 8666 次点击
    这是一个创建于 5378 天前的主题,其中的信息可能已经有所发展或是发生改变。
    先从Django着手,如何?
    28 条回复    1970-01-01 08:00:00 +08:00
    fanzeyi
        1
    fanzeyi  
       2011-04-04 16:12:39 +08:00
    还是从最基本的开始吧…………
    xiluo
        2
    xiluo  
    OP
       2011-04-04 16:23:00 +08:00
    @fanzeyi
    Django真的需要很好的Python基础吗?
    roamlog
        3
    roamlog  
       2011-04-04 17:31:14 +08:00 via iPhone
    django 是 python 的框架,当然要先学 python 了,不然就是空中楼阁了
    d_yang
        4
    d_yang  
       2011-04-04 17:32:51 +08:00
    我觉得没问题。
    上来就用(一点点基础),不会就查资料。
    看完基础再看django,看完django再动手写, 胡子都白了。
    fanzeyi
        5
    fanzeyi  
       2011-04-04 17:34:40 +08:00
    @xiluo 这个关系就跟 走路 与 跑步的关系一样
    Mianco
        6
    Mianco  
       2011-04-04 18:17:48 +08:00 via iPad
    个人觉得有经验的程序员会上手很快。
    keakon
        7
    keakon  
       2011-04-04 18:29:17 +08:00
    只想说Python学2个小时就够你实现一般应用了,学Django可远不止20个小时。不知道楼主为何这么浮躁…

    如果Django是个好东西,那可以理解;问题是它确实很一般,你就算很精通它了,对你的Python水平也没有什么提高,或许还比不上学了2个小时Python的初学者。

    这也不是什么走路和跑步的关系,因为2者的目的都不一样。
    keenturbo
        8
    keenturbo  
       2011-04-04 19:22:57 +08:00
    想学就静下心来,其实自己清楚步骤应该怎样别犹豫。
    xiluo
        9
    xiluo  
    OP
       2011-04-04 23:02:24 +08:00
    @keakon,@fanzeyi,@Mianco,@roamlog,@d_yang,@keenturbo
    谢谢大家,说的都有道理。
    今天看了一天的Python,觉得跟Java之类的也区别不是太明显。
    把youtube上的一个Python Programming Tutorial 整个45集都看完了,每集有5,6分钟的样子,收获不小。

    我主要是想开发个应用,数据库是Postgresql,12张表,也不复杂,相信用Django开发起来应该挺快的。

    V2EX果然是新型社区,这里的回帖质量都很高啊。
    Mianco
        10
    Mianco  
       2011-04-04 23:57:36 +08:00
    @xiluo 7楼是python高手。
    darcy
        11
    darcy  
       2011-04-05 00:54:45 +08:00
    @xiluo 看完Python基本语法就直接上实例吧,跟着应用走,加上已有的编程经验,上手很快的。语遇到不懂的地方再查资料。等熟悉一段时间后再回头去看基础书,理解更透彻。
    raptium
        12
    raptium  
       2011-04-05 02:10:54 +08:00 via iPhone
    如果没记错的话 我就是从 Django 开始学 Python 的
    虽不好说最后学成怎样 但是 python 现在已经是我用得最多的语言
    我觉得从什么开始无所谓 有时候自己觉得有趣也很重要 在我看来 Django 的 tutorial 就比一般的 python 教材有趣多了
    wenbinwu
        13
    wenbinwu  
       2011-04-05 02:33:08 +08:00
    先看看语法,然后看看django没问题
    我是想做GAE的应用才学习python的,之前有所了解,但是不精通
    nhxyj111
        14
    nhxyj111  
       2011-04-06 16:26:55 +08:00
    我也是javaweb,想转python
    xiluo
        15
    xiluo  
    OP
       2011-04-06 23:05:30 +08:00
    @nhxyj111
    呵呵,有前途
    jeeson
        16
    jeeson  
       2011-04-07 22:10:40 +08:00
    @wenbinwu
    Google App Engine也支持Java.

    我没写过Python代码, 只是移植Python代码到Java过, 个人觉得对于传统程序员(C/Java), Java更好
    wenbinwu
        17
    wenbinwu  
       2011-04-07 22:26:11 +08:00
    @jeeson GAE刚出来的时候不支持java的,后来好久才支持的
    jeeson
        18
    jeeson  
       2011-04-07 22:33:27 +08:00
    @wenbinwu "GAE刚出来的时候不支持java的,后来好久才支持的" 因此对Java有意见吗? :)

    其实GAE 下 Java的主要问题是 DataStore 接口很差, 效率也较低, 不如Python版本.

    但是现在有第三方的开源组件后, 已经非常方便了

    我不是说学 Python 不好, 只是觉得别总是花时间在学编程语言上, 每门都没吃透 :)
    xiluo
        19
    xiluo  
    OP
       2011-04-07 22:40:52 +08:00
    @jeeson
    我不是说学 Python 不好, 只是觉得别总是花时间在学编程语言上, 每门都没吃透 :)

    你说的一点都对(许三多)

    Android的虚拟机就是一个从JAVA1.1就开始用的一个大牛。所以专心吃透是没错的。
    qichangxing
        20
    qichangxing  
       2011-04-07 22:45:42 +08:00
    "Django lets you write web apps in Django. TurboGears lets you write web apps in TurboGears. Web.py lets you write web apps in Python." http://webpy.org/
    xiluo
        21
    xiluo  
    OP
       2011-04-07 23:44:35 +08:00
    @qichangxing
    really?
    keakon
        22
    keakon  
       2011-04-08 00:11:48 +08:00
    @jeeson Java在GAE上只能算2等公民,很多Python已有的特性,Java要等半年、1年甚至永远不会实现。而且Python的datastore api是最接近实际情况的,Java就算是低级api也只能看到个表象,触摸不到内在的,想要优化都只能捉襟见肘。
    jeeson
        23
    jeeson  
       2011-04-08 00:29:43 +08:00
    @keakon Java 不是我长项, 我选择它只是因为接近C++, 更习惯些. Python更是不了解, 所以没法比较

    但是, 你说的 "Java在GAE上只能算2等公民", 我不同意, 不过我没有特别在意过新特性对比, 所以也不好反驳

    关于 datastore api , 目前为止, 并没有真正权威的比较哪个性能更好, Java底层接口的第三方封装已经极大的改进性能.

    另外, 意外的是, Java更快(执行速度)!
    keakon
        24
    keakon  
       2011-04-08 01:48:33 +08:00
    @jeeson 我想说的是,如果你用Java,你永远不可能知道datastore api真正是怎么样的。Python可以看到所有的细节,包括与服务器打交道时传输的字符串信息;同时它又提供了远强于Java的表达能力,不会像Java定义模型时那么痛苦。

    从一开始进行数据库设计时,你就无法为其做出最佳的设计,因为Java把这些底层的细节封装掉了。并不是说Java就不能提供给你这些细节,而是它的表达能力太差,你得花费我不敢想象的精力去实现,至少Google的员工都没做到。因为你不了解Python,所以我没法给你形象地表达它们之间的差别。如果你肯花费时间,钻得比文档更深(阅读相关的文章和SDK源码,看Google I/O和Google员工的解释),你就会知道它们之间决定性的差异。

    我说Java是2等公民也不是瞎说,从GAE/Java诞生开始,每个版本的变化我都有关注。最明显的一个例子就是最近的SDK 1.4.3,Java新加入的Deferred库是09年时Python SDK就已经包含了的。然后datastore实际上早就有异步API了,去年还增加了一个纤程的实现,然而Java由于不能多线程,我想最多在未来数月以回调函数的方式来实现吧。好吧,我又人为地进行简化了,Java的函数还不好传递,得实现一个类然后扔过去。
    jeeson
        25
    jeeson  
       2011-04-08 11:01:54 +08:00
    @keakon GAE/Java版 datastore API 支持异步, 不是回调, 当然, 可能比Python晚许久支持的

    http://code.google.com/p/objectify-appengine/wiki/IntroductionToObjectify#Asynchronous_Calls

    The GAE's low-level datastore API supports parallel asynchronous operations. GAE's model of asynchrony does not follow Javascript's "pass in a callback function" model; rather, when you make an asynchronous call, you get back a reference to the pending operation. You can create multiple references which will execute in parallel, however, any request to fetch a concrete result will block until the result is available.

    能像你这样深入到核心/源码的毕竟少数, 这对大部分开发人员来说未必是件快乐的事情 :)

    对我来说只是工具而已, 暂停吧.
    keakon
        26
    keakon  
       2011-04-08 11:32:04 +08:00 via iPhone
    这个项目不是google维护的,而是开发者不爽google的实现去自创的,连google自己的员工在论坛里都要开发者去使用这个库,而不是自带的。我只能说这个例子更加证明了java是2等公民,因为google的员工精力真的没怎么放在上面。gae team是在旧金山,人数并不多,写博客的很少,但写出来的基本都是python相关的。

    如果你有关注过sdk的发展,java sdk在某些版本发布时甚至连文档都来不及更新,更别提例子了。

    实现就算不能深入源码,至少也要掌握原理。做数据库设计的如果只知道sql,你能期待他做出什么设计?
    alsotang
        27
    alsotang  
       2011-09-10 23:13:31 +08:00
    @keakon java是gae的二等公民是非常显而易见而且已经经过各种讨论的事情了嘛。。。
    darasion
        28
    darasion  
       2011-09-10 23:22:21 +08:00
    忘记java. 你就学好python了. 反过来也是.
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3534 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 35ms UTC 10:29 PVG 18:29 LAX 02:29 JFK 05:29
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86