为什么 Java 和 js 这么机车呢? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
phrack
V2EX    程序员

为什么 Java 和 js 这么机车呢?

  •  
  •   phrack 2017-04-12 15:19:01 +08:00 5572 次点击
    这是一个创建于 3124 天前的主题,其中的信息可能已经有所发展或是发生改变。

    楼主玩过不少语言,目前主力 python 。

    经常因为项目需要会要写 java 和 js ,但是为什么我一直觉得 java 和 js 非常机车啊!

    java 脱离 IDE 根本没法写,有 IDE 也是一大坨一大坨,看的人眼睛疼, js 我尝试了三次去熟悉这个语言,每次都是玩到想哭,真的,就是想哭,为什么到处都是回调,我根本不明白整个程序的流程到底是怎么走的?

    谁能帮我脱离苦海?!

    31 条回复    2017-04-19 11:11:16 +08:00
    nicevar
        1
    nicevar  
       2017-04-12 15:27:30 +08:00   1
    你是玩不是用当然会有这种问题了,如果 python 你也不经常写,脱离了 ide 也照样没法写, 10 多年前没有什么可用 ide 的时候,还不是一直用普通的文本编辑器写 java 代码,一种语言还没熟悉没啥好评价的
    fy
        2
    fy  
       2017-04-12 15:35:36 +08:00
    机车是什么形容词?

    Java 有个 ide 写的飞起,不怎么用思考,就是废话多些,内存占的大些,除此之外难道不是还挺好用?

    另外 JS 你初学哪来的回调啊, callback hell 是特殊场景下的情况,并不是人人都会碰到的。而且现在已经有了比较好的解决方案( await/async )

    也是主力 Python ,但我没觉得这俩语言有什么障碍。新 es 标准很好用, Java 也还不错。
    fds
        3
    fds  
       2017-04-12 15:37:48 +08:00
    js 解决回调陷阱可以看看库 http://caolan.github.io/async/
    不过 js 新版已经支持 async/await 了,写起来也很开心。
    enenaaa
        4
    enenaaa  
       2017-04-12 15:43:41 +08:00
    回调哪个脚本语言没有, js 槽点不是 var , this, undefined 和 类实现吗。每次都想吐
    DT27
        5
    DT27  
       2017-04-12 15:45:55 +08:00
    机车好像是台湾骂人的话。。。
    Wangxf
        6
    Wangxf  
       2017-04-12 15:48:32 +08:00
    都 2017 年了还黑回调真的是不知道说啥了。。。
    phrack
        7
    phrack  
    OP
       2017-04-12 15:48:44 +08:00
    就比如这个脚本,我要在他基础上要改一个爬虫出来。

    https://gist.github.com/antivanov/3848638

    逻辑也不复杂,但是就已经一堆回调了。
    ryanzyy
        8
    ryanzyy  
       2017-04-12 16:30:10 +08:00
    因为你的主力是 Python
    lightening
        9
    lightening  
       2017-04-12 16:34:46 +08:00
    机车好像就是台湾“墨迹”的意思。

    因为 Java 设计的目标是很多程序员可以在不熟悉对方代码的情况下协同工作,所以需要很嗦的语法来限定程序员能做的事情,以避免沟通上的模糊不清。

    我平时写 Ruby 。偶尔使用不那么熟悉的 Python 时,也会感觉 Python 挺机车的。习惯问题而已。
    nullcc
        10
    nullcc  
       2017-04-12 16:37:32 +08:00
    js 属于乍一看很简单的,其实深似海
    qiayue
        11
    qiayue  
    PRO
       2017-04-12 16:43:59 +08:00
    话说我最近直接 Sublime 写 JAVA
    morethansean
        12
    morethansean  
       2017-04-12 16:50:12 +08:00 via Android
    @phrack 你贴的这段代码,到处是回调?
    murmur
        13
    murmur  
       2017-04-12 16:53:00 +08:00
    java 有个很牛逼的 ide 恰恰说明 java 的牛逼之处

    等你写大型工程的时候就知道没 ide 是多痛苦了 尤其是做代码重构的时候
    miniwade514
        14
    miniwade514  
       2017-04-12 16:53:41 +08:00
    “为什么到处都是回调” 对于这个问题你有没有尝试进一步了解?你这样上来就黑,还怎么愉快地讨论啊。。
    你举的那个例子(#7 )并不能代表现在的主流写法,那代码是 2012 年写的。
    rocksolid
        15
    rocksolid  
       2017-04-12 16:54:09 +08:00
    java 还好 js 写起来真是不习惯
    sagaxu
        16
    sagaxu  
       2017-04-12 16:55:42 +08:00
    Java 确实太过罗嗦了,试试 Kotlin 吧,一种完全兼容 Java 的不罗嗦的 Java 方言
    wc951
        17
    wc951  
       2017-04-12 16:57:46 +08:00 via Android
    这是 java 被工业界广泛应用的原因之一
    AltairT
        18
    AltairT  
       2017-04-12 18:42:51 +08:00 via iPhone
    java 这么多类库和 api ,没有提示根本没法写
    。又不是写算法或者 hello world 这样的程序。
    springmarker
        19
    springmarker  
       2017-04-12 18:45:38 +08:00
    不知道你们说的 Java 嗦具体指什么
    mazyi
        20
    mazyi  
    PRO
       2017-04-12 18:50:06 +08:00 via iPhone
    多读书,这种理由我打 python 可以有一万个 先说一个,缩进。
    silencefent
        21
    silencefent  
       2017-04-12 18:59:20 +08:00
    因为你用的是 xxx.min.js 啊,去掉了空格当然看不了
    Tyanboot
       22
    Tyanboot  
    PRO
       2017-04-12 19:00:27 +08:00
    @morethansean 粗略数了一下,这贴的 gist 里面有至少 8 个回调- -
    Nitromethane
        23
    Nitromethane  
       2017-04-12 19:27:02 +08:00
    然而我好像最喜欢这两个语言~
    linnn2
        24
    linnn2  
       2017-04-12 19:47:20 +08:00
    你需要多了解一些语言的特性,简单来说,你对 Javascript 的问题在于,你对这门语言不够了解。
    Javascript 的独特的地方就是它单线程异步的特性,这个不了解的话,不能说 Javascript 入门了吧
    LioMore
        25
    LioMore  
       2017-04-12 19:51:05 +08:00
    @linnn2 说的对
    楼主你压根还没入门
    nashxk
        26
    nashxk  
       2017-04-12 20:19:17 +08:00
    特意去查了一下机车是什么意思。。。
    Gantz
        27
    Gantz  
       2017-04-12 21:55:45 +08:00 via iPhone
    感觉 Python 就是胶水语言,后端不如 java, 只能调 c++ 库,前端只能用 js 啊
    isCyan
        28
    isCyan  
       2017-04-12 22:18:26 +08:00 via Android
    @fy 异步感觉几乎是用 JS 必然遇到的
    beginor
        29
    beginor  
       2017-04-12 22:40:17 +08:00 via Android
    不如试试 typescript 吧
    vcfvct
        30
    vcfvct  
       2017-04-12 22:47:36 +08:00 via Android
    无 callback 不 js 。这个是必须的了,不然人家单线程, server side ( nodejs )怎么可以那么高的吞吐, client side ( browser )怎么可以处理那么多的 event ( timeout , xhr , click , hover , scroll etc...)
    Java 嘛,没什么好说的,用惯了 intellij 效率是非常高的,尤其大项目!
    Balthild
        31
    Balthild  
       2017-04-19 11:11:16 +08:00 via Android
    @sagaxu 官方说法: Kotlin is not "a better Java"....
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1554 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 90ms UTC 16:28 PVG 00:28 LAX 09:28 JFK 12:28
    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