首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python 学习手册
Python Cookbook
Python 基础教程
Python Sites
PyPI - Python Package Index
http://www.simple-is-better.com/
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
V2EX  ›  Python

calibre(电子书管理工具)作者说:老子自己维护 Python 2 doge

  •  2
     
  •   est · 4 天前 · 8485 次点击
    67 回复  |  直到 2018-04-17 14:21:23 +08:00
        1
    jasonyang9   4 天前
    >I sincerely hope this is a joke.
        2
    aristotll   4 天前
    > Waaaaay too much work -- calibre has half a MILLION lines of python and python extension code


    迁移成本太大了 https://bugs.launchpad.net/calibre/+bug/1456642

    作者肯定不想改的
        3
    shansing   4 天前
    好奇标题里是怎么加的 doge 头。
        4
    SuperMild   4 天前
    所谓维护,并不是维护整个 python2 的全部代码,等有涉及 calibre 的 bug 爆出来他再处理一下,的确比迁移省事。
        5
    fork   4 天前
    好想给 kovid 按个赞,可惜 lauchpad 不支持这种围观。。。。。
        6
    wizardforcel   4 天前 via Android
    mdzz
        7
    sobigfish   4 天前   ♥ 1
    @shansing #3 使用 :doge:
        8
    locktionc   4 天前
    如果他是认真的,那么这种人就是抵制时代的守旧老人,是会被订在历史的耻辱柱上的人。
        9
    XIVN1987   4 天前   ♥ 6
    @locktionc

    站着说话不腰疼,,要不你帮作者把近百万行的代码给移植一下,,或者你支付作者 100 万美金让作者把代码移植一下
        10
    hxndg   4 天前
    @locktionc
    那你就是二战之后美国五角大楼养的那批夸夸其谈,觉得数学能解决一切的理论家了?
        11
    xuboying   4 天前   ♥ 2
    听着就不怎么靠谱
    要么作者 python 用法不对,要么 python 基金会的 2-3 过渡做的不好,要么就是 python 的这种桌面软件的开发框架的问题
    就 python 的使用量来看
    八成是作者自己的问题
        12
    kmahyyg   4 天前 via iPad
    那为什么那么多库都迁移到了 py3 @XIVN1987
        13
    xpresslink   4 天前
    @locktionc 你的思维和价值观才有问题。人家又没有阻碍 python3 发展。
    你要是有大量实际运维经验,就不会说这种屁话了。
        14
    wizardforcel   4 天前 via Android
    @hxndg 数学的确能拟合一切,但不是理论数学。
        15
    hxndg   4 天前
    @wizardforcel
    冷战那批更确切的叫做运筹学等一大堆理论数学了,ps 拟合的代价你来出?
        16
    noNOno   4 天前
    跨年度笑话?-v-
        17
    noNOno   4 天前   ♥ 14
    为什么不迁移到 python3 ?
    迁移是不可能迁移的,这辈子不可能迁移的。重构代码又不会做,只有自己维护 python2,才能维持得了生活这样子.
        18
    fork3rt   4 天前
    :doge Python3 谁用谁知道,真爽~
        19
    timonwong   4 天前
    作者题外话就是「你行你上啊,要么打我钱」
        20
    murmur   4 天前
    @locktionc 这个话要放嵌入式领域会被打死的
    也就是互联网软件随便推倒重来或者直接倒闭才敢这么玩
        21
    dorentus   4 天前
    @xuboying 我觉得还是 2-3 过渡得不好


    @kmahyyg 库和完整的程序还是不一样的。

    作者在上面给出链接里面也说了,代码量太大,而且他觉得 python3 也没有提供切实的好处,反而会有性能损耗,于是不愿意改。

    作为最终用户,为什么要**那么**关心别人的程序是用什么语言写的呢?
        22
    msg7086   4 天前
    @noNOno 此处应有 gif。
        24
    bojackhorseman   4 天前   ♥ 6
    突然发现作者给的介绍视频里有一本奇怪的书![图片]( )
        25
    x7395759   4 天前   ♥ 5
    @locktionc
    @xuboying
    @kmahyyg
    @noNOno

    1) Waaaaay too much work -- calibre has half a MILLION lines of python and python extension code

    2) calibre has lots and lots of code that deals with bytes -- network protocols, binary file formats, etc. Python 3 is simply worse than python 2 for this use case. It has a crippled bytes type among other unfelicities.

    3) calibre has lots and lots of native code that interfaces with external native code. On windows, all this code uses UTF-16 encoded strings. All that interface code would need to be re-written and would also become less efficient since in python 2 string are stored internall in UTF-16 whereas in python 3 they would need to be cross-converted.

    4) There is absolutely nothing in python 3 that makes it worth the effort. If python 3 ever grows something that makes it worth the effort, I will simply backport it to python 2. I already maintain my own python 2 fork for windows (see my github repos).

    The only case in which I will accept patches for python 3 is if they have:

    a) negligible runtime cost
    b) minimal code complexity/maintainability cost
    c) Low probability of breakage -- either the patches are dead simply or they come with lots of tests
        26
    x7395759   4 天前   ♥ 1
    有理有据,你们看过?
        27
    blaxmirror   4 天前
    @bojackhorseman 哈哈哈哈,没毛病
        28
    youxiachai   4 天前
    说那么多干嘛...
    看不惯作者的..

    打钱..或者帮忙移植啊...
        29
    wizardforcel   4 天前 via Android
    @hxndg 运筹学是理论数学???

    让我再笑一会儿。
        30
    est   4 天前
    @bojackhorseman 亮了。。。
        31
    xuboying   4 天前
    @x7395759 #25 打嘴跑没意义,谁让作者用 utf16 的,留下了如此麻烦的后遗症。py 党自己去争吧。看不惯的大牛自己用 py3 写一个好了。编码问题肯定是没了。
    其实最终用户也不关心是什么版本,或者是不是 python
        32
    YvesX   4 天前
    我的想法就是别人作者爱用啥用啥,能维护好就 WOW 一下,不是很懂有啥“抵制时代”和“耻辱”的。且不说 Python2 顶多是不值得再去新学,没有什么特别古旧的缺点,就算是上古代码,别人能维护得 works well 不比拿新技术对着文档写 hello world 厉害多了?
        33
    zhicheng   4 天前
    Python 官方实现太守旧了,用的竟然是 C,而且还是 C99 不是 C11,天呐这个标准都快 20 年了,一群守旧的老顽固。他们应该用 Go 或者 Rust 重写一遍 Python 官方实现,哪怕不用 Go/Rust 也应该用 C++/Java 重写。

    而 Linus 应该被烧死,因为 Linux 还在用 C89。
        34
    est   4 天前
    @xuboying JVM 现在也是 ucs2。。。。
        35
    goodryb   4 天前
    calibre 收费吗,如果不收费,凭什么 BB
        36
    cnbobolee   3 天前
    2 到 3 迁移成本太大,况且代码那么多,而且 2->3 过渡本来就做的不好,3 几乎不兼容 2。
        37
    zyqf   3 天前 via Android
    🐶🐷🐮🐟🐻👻🐱🐯📖🌳🐀🐔🐍
        38
    Antidictator   3 天前
    @shansing #3 V2EX plus 插件
        39
    noNOno   3 天前
    @x7395759 哈哈,看是看了,不过要放松点嘛,反正我们帮不上忙
        40
    sunzhenyucn   3 天前 via Android
    @zhicheng 高级黑 23333
        41
    Shura   3 天前
    作者自己选择编程语言的权利还是有的吧?看不下去的欢迎 fork 然后转成 python3: https://github.com/kovidgoyal/calibre
        42
    hxndg   3 天前 via Android
    @wizardforcel
    嗯,我记错了,回去又翻了一下战略一部历史,发现是管理学
        43
    monsterxx03   3 天前 via iPhone
    说 2 到 3 好迁的,都没维护过多大的 codebase
        44
    lihongjie0209   3 天前
    @locktionc #8 图样图森破
        45
    mephistophilis   3 天前 via iPhone
    @zhicheng 用新版本也能用出优越感?
        46
    msg7086   3 天前
    @mephistophilis 连讽刺都看不出来?
        47
    dalieba   3 天前 via Android
    这样的话应该开个 git 分支,专门在那做 Py3 移植。
        48
    VYSE   3 天前 via Android
    @est 上次自己编译 PY2 发现 Ubuntu maintainer 强制了 ucs4....
        49
    billlee   3 天前
    主要还是 C 扩展不好迁吧
        50
    Gandum   3 天前   ♥ 4
    我倒是觉得 calibre 实在是太臃肿了,所以有些积重难返。

    应该设计成核心功能+外围功能的模式,核心功能就两个,ebook-convert 和 calibredb,别的一律不要。

    外围功能里面才应该有 rss,smtp,calibre-server,ebook-viewer,ebook-edit 等等等等这些,现在你又要当服务器,又要当编辑器,又要当浏览器,又要能智能分析,又要能发邮件,又要能抓 rss,又要能添加各种插件,还要适配各种屏幕各种设备。一般人根本玩不懂的,而且说实话,用力太过分散导致很多组件质量确实不太理想。我用 calibre 就只用 ebook-convert 这一个功能,而且从来不打开它那个很慢而且操作很麻烦的 GUI,其他的排版之类的功能比 calibre 好用的软件很多,平心而论,calibre 自带的编辑器我想用过的人都知道,很难用的。

    很多开源软件都是这种设计思路嘛,比如视频播放器 mpv,功能很简单,就是解码播放视频,至于衍生功能就交给其他软件,围绕 mpv 的衍生软件多到有专门的 wiki 表单,几十种可以让你自由选择。再比如说 vim,原本功能也是很单纯也很专业,但是衍生功能多的不得了,都是类似的思路。
        51
    ooToo   3 天前 via iPhone
    @Gandum calibre 就是技术牛逼,产品烂的典型。不过是开源的,不能要求太高…
        52
    xiaket   3 天前
    完全同意 @Gandum 的意见,calibre 一开始从设计上就不合理,一味堆功能,到头来代码难以维护,也没有新鲜血液进入社区贡献代码。从功能的角度而言,calibre 也许是成功的,但从社区成熟度的角度来看,calibre 是不太成功的。
        53
    fffonion   3 天前

    这😂
        54
    Forbidden   3 天前
    想起一个事
    基于 COBOL 的系统,不要说迁移了,就连维护都成问题
    现在主要靠银行、证券、保险公司支撑……
        55
    doubleflower   3 天前
    这么多代码迁移肯定是不现实的

    2 转到 3 太不容易了,相当于 30%重写量
        56
    cedoo   3 天前
    去年的新闻了
        57
    timonwong   3 天前
    @est JVM 曾经 ucs2,早已是 utf16
        58
    clino   3 天前
    @Gandum #50 +1
    应该抽取出关键库做 py2/3 兼容
        59
    Battle   3 天前
    双击 666
        60
    glasslion   3 天前
    作者的理由:
    1. 迁移工作量太大, 好处又没多少
    2. 作者本身不反对其他人提交 Python3 的 patch(要同时兼容 Python2/3)
    3. Python3 在处理二进制是, 比 Python2 还难用
    没什么大问题啊
        61
    orangeade   3 天前 via Android
    @Gandum 有什么支持格式和排版和 calibre 的 eBook viewer 相似的电子书阅读器么,calibre 阅读电子书功能和排版都还好,就是太慢了
        62
    tempdban   3 天前 via Android
    楼上的说不合理的不要打嘴炮帮忙改啊
        63
    ech0x   3 天前 via iPhone
    @Forbidden 所以大型机现在还活的好好的😂
        64
    DT27   3 天前
    围观伸手党
        65
    shijingshijing   3 天前 via iPhone
    @locktionc 米蒂的劾武裤里还有一堆电脑跑 windows 3.x, windows 95 呢,还有一堆用软盘加载的呢。就这种玩意儿还得撑十年二十年才能逐步 phase out 呢

    有本事你给人家去部署一把 win 10,去把当时开发编译用的 TI 的整套 IDE 工具链都给升级一把,还有底层驱动和 firnware 也重写一把,忘记说了,好多控制器都是 8 位的,你也给升级一下到 64 位处理器。

    话说高可靠性领域,还没有哪家出来吹牛逼说转移到全套 64 位方案上面去的吧。位处理器都用的好好的。现在天上刚上去的都在用 386 处理器呢
        66
    est   3 天前
    @timonwong utf16 应该就是 ucs2 + surrogate 的补丁吧。
        67
    fish267   3 天前
    😎😎😎
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   鸣谢   ·   2869 人在线   最高记录 3541   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.0 · 23ms · UTC 08:35 · PVG 16:35 · LAX 01:35 · JFK 04:35
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1