V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
anxn
V2EX  ›  Java

吐槽 为啥 Java 的一些库起名都这么奇怪?

  •  
  •   anxn · 2022-03-10 01:22:10 +08:00 via Android · 10864 次点击
    这是一个创建于 771 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比如说之前爆漏洞的那个日志库,log4j 英文里边混数字,有的索性,有的不缩写,有的音译成数字(log 没缩写,4 是音译成数字,j 是缩写),感觉起名咋这么另类

    举个其他语言的,像 Python 的 requests 库,scrapy ,bs4 ,pillow 等等 大多数都是一个单词搞定,最多也就是英文加一个数字,记着好记,见词知意,打字也好打,不用来回切输入法,还有 go 语言的一些比如:gjson ,gin ,echo ,gorm ,docker ,k8s ,k3s 等等,要么都是字母,最多也就是像 k3s 这种缩写后的字母和数字混用,不过 k8s 不缩写本来也就是一个词汇,而且 k8s 这种,基本看了一眼就很容易记住

    反而是 Java 的的 log4j 这种起名很另类,缩写比较随意

    108 条回复    2022-03-21 11:44:06 +08:00
    1  2  
    Leviathann
        1
    Leviathann  
       2022-03-10 01:42:35 +08:00   ❤️ 14
    显然还是 k8s i18n 更莫名其妙一点,这种睿智缩写所有人第一次见都要查一遍是什么吊东西
    java 的问题在于喜欢用 j 指代 java ,看起来特别丑
    westoy
        2
    westoy  
       2022-03-10 01:52:27 +08:00   ❤️ 4
    用 J 代指 Java 是因为 Java 是商标,SUN 时期就打击滥用的
    GuuJiang
        3
    GuuJiang  
       2022-03-10 02:12:14 +08:00 via iPhone   ❤️ 26
    4-for
    2-to
    这两个算是缩写届的共识了吧?遵循这个规则的缩写一抓一大把
    boshok
        4
    boshok  
       2022-03-10 02:37:15 +08:00   ❤️ 4
    OP 好像不太懂 E 文。
    Mirage09
        5
    Mirage09  
       2022-03-10 02:49:40 +08:00
    Log4j 我在心里默读都是 logging for j ,突然发现我读的是错的 lol
    yeyang5211
        6
    yeyang5211  
       2022-03-10 03:17:28 +08:00
    log4j 解释了 再列一些你觉得怪的啊..
    abysmalIQ
        7
    abysmalIQ  
       2022-03-10 04:20:42 +08:00
    我不懂英文,但是我就不去学,我就爱对英文指手画脚
    jorneyr
        8
    jorneyr  
       2022-03-10 07:03:33 +08:00   ❤️ 1
    Anxn 这串字母才叫怪呢?
    字典里查不到,拼音不是拼音、英文不是英文、俄语不是俄语,啥玩意?
    chendy
        9
    chendy  
       2022-03-10 07:51:33 +08:00
    4 = for
    j = java
    log4j = log for java
    好像也没啥奇怪的啊
    aaniao002
        10
    aaniao002  
       2022-03-10 08:16:40 +08:00 via Android
    浓浓的咖喱味。
    Goooooos
        11
    Goooooos  
       2022-03-10 08:16:46 +08:00   ❤️ 6
    居然吐槽 log4j 奇怪,k8s,k3s 不奇怪。。。

    https://docs.rancher.cn/docs/k3s/_index/#:~:text=%E4%B8%BA%E4%BB%80%E4%B9%88%E5%8F%ABK3s%3F,%E7%9A%84%E5%8D%95%E8%AF%8D%EF%BC%8C%E7%AE%80%E5%86%99%E4%B8%BAK3s%E3%80%82
    ```
    为什么叫 K3s?
    我们希望安装的 Kubernetes 在内存占用方面只是一半的大小。Kubernetes 是一个 10 个字母的单词,简写为 K8s 。所以,有 Kubernetes 一半大的东西就是一个 5 个字母的单词,简写为 K3s 。K3s 没有全称,也没有官方的发音。
    ```
    VeryZero
        12
    VeryZero  
       2022-03-10 08:38:04 +08:00   ❤️ 8
    充分说明了什么叫偏见。

    你例子里的 bs4 、k8s 、k3s 没问题,搁 Java 这就有问题了。。

    请跟我读,log for j ,是不是舒服多了。

    你想缩写成 l4j ?缩写的意义是单词太多或太长了,log 就 3 个字母有必要缩写吗?而且过度缩写只能让人增加困惑,如果是 l4j 别人怎么知道是 log4j 还是 lol4j ?

    而且这不是 Java 原创的,我记得以前学 C/C++的时候,库里面一堆*2*这种函数。
    Kontinue
        13
    Kontinue  
       2022-03-10 08:38:16 +08:00   ❤️ 5
    作者想取啥名就啥名,这都可以拿出来引战,笑死
    cweijan
        14
    cweijan  
       2022-03-10 08:45:18 +08:00
    @Leviathann i18n 还是没啥问题的, 全称太长了
    comlewin
        15
    comlewin  
       2022-03-10 08:47:43 +08:00
    不明白你这吐槽有什么意义
    k8s ,k3s ,bs4 你能理解
    log4j 你就感觉有问题
    你 Python 用习惯了
    yinzhili
        16
    yinzhili  
       2022-03-10 08:54:59 +08:00
    楼主还是太年轻,00 后?
    没见过 C/C++的一些更不好理解的函数命名?
    hingbong
        17
    hingbong  
       2022-03-10 08:59:03 +08:00 via Android
    抛开我不会英语不讲,他就一点错没有吗
    HardStone
        18
    HardStone  
       2022-03-10 09:01:40 +08:00
    每日一乐
    anxn
        19
    anxn  
    OP
       2022-03-10 09:02:28 +08:00
    @hingbong 我大学时英语过了六级的 够用吗
    banmuyutian
        20
    banmuyutian  
       2022-03-10 09:05:08 +08:00   ❤️ 1
    楼主竟然觉得 4=for 和 2=to 比起 i18n 和 k8s 这种还难理解吗,前者可不是 java 库的命名习惯而是一种英语习惯
    yolee599
        21
    yolee599  
       2022-03-10 09:07:31 +08:00 via Android
    一个名字而已,别那么较真,而且 log4j 也有意义啊,类似的还有 log4cpp ,log4shell……一眼就知道是哪个平台的。
    anxn
        22
    anxn  
    OP
       2022-03-10 09:10:28 +08:00
    @VeryZero k8s 这种看了一眼就能记住啊,还有 i18n ,i18n 我第一次看到时没百度看出来啥意思了;
    反而是 log4j ,第一次见时就感觉很奇怪,还以为 4 是版本号之类的内容( log v4 j ),后来查了才知道啥意思;

    其实我觉得叫 l4j 可行
    Yafun
        23
    Yafun  
       2022-03-10 09:17:02 +08:00
    乌鱼子 log4j 一眼都比你说的 l4j 要看得明白它是干什么的吧..
    darkengine
        24
    darkengine  
       2022-03-10 09:18:23 +08:00
    @anxn k8s 是因为 k 和 s 中间有 8 个字母,i18n 也是因为 i 和 n 中间有 18 个字母,log4j 的 4 是 for 的意思,简写成 l4j 不合理。
    hingbong
        25
    hingbong  
       2022-03-10 09:19:22 +08:00
    @anxn 所以一点英文社区都没上过?
    JamesMackerel
        26
    JamesMackerel  
       2022-03-10 09:26:09 +08:00 via iPhone   ❤️ 9
    v2ex 这个站的名字取得真的是奇怪,v 是音译,2 也是音译,到了 ex 就变成了缩写,简直是另类。再看看人家论坛,nga ,铁血,虎扑,这些名字又好听,又短又好记。
    xsqfjys
        27
    xsqfjys  
       2022-03-10 09:27:56 +08:00
    gjson 用 g 缩写没问题,log4j 用 j 缩写就奇怪
    k8s ,k3s 莫名其妙的命名觉得好记,log4j 另类
    我还能说啥
    marcong95
        28
    marcong95  
       2022-03-10 09:28:51 +08:00
    @anxn #19 这属于幼儿园英语够用,但雅思 9 分都不够用的程度。日常不用英文,看到英文里面插个阿拉伯数字就直接用中文念出来的自然是难以理解的。
    zhaohui318
        29
    zhaohui318  
       2022-03-10 09:29:50 +08:00   ❤️ 3
    I²C 才叫怪呢
    superchijinpeng
        30
    superchijinpeng  
       2022-03-10 09:29:58 +08:00
    @anxn 你是来搞笑的吧
    yazinnnn
        31
    yazinnnn  
       2022-03-10 09:30:23 +08:00
    还有哪些库的名字奇怪?
    b1t
        32
    b1t  
       2022-03-10 09:31:57 +08:00 via iPhone
    楼主多学学英语吧(指非书面用语
    qinxi
        33
    qinxi  
       2022-03-10 09:36:03 +08:00
    @marcong95 #28 填鸭式教育受害者😂
    nba2k9
        34
    nba2k9  
       2022-03-10 09:44:06 +08:00
    多写代码,少思考
    wqhui
        35
    wqhui  
       2022-03-10 09:44:33 +08:00
    log4j 看过它的含义是 log for java ,以后就懂了,跟别的缩写也没什么区别
    4mYHime
        36
    4mYHime  
       2022-03-10 09:45:49 +08:00   ❤️ 1
    那你看到我的昵称可能要挠头了。
    msaionyc
        37
    msaionyc  
       2022-03-10 09:46:31 +08:00 via iPhone
    i18n 第一次遇见不查就能直接理解是啥?

    另外进一个圈子就入乡随俗,整个 java 圈子都能认同的东西到你这就不合理了吗,不要你觉得没遇见过就是奇怪,世界不是围绕你转的,要是所有人都像你这样以自我为中心,那网上天天就互喷呗
    zapper
        38
    zapper  
       2022-03-10 09:50:41 +08:00
    v2ex
    lone1y
        39
    lone1y  
       2022-03-10 09:50:46 +08:00
    借楼问一下 c3p0 命名是怎么来的
    itechnology
        40
    itechnology  
       2022-03-10 09:53:30 +08:00
    感觉你吐槽的很奇怪,一方面说字母+数字组合的 log4j 很奇怪,一方面又说同是字母+数字的 k8s 这种很容易记住。
    反正至少对于我来说,log4j 是更容易理解,我之前第一眼看到 k8s 完全不知道这是啥意思,还得去百度一下
    poplar89
        41
    poplar89  
       2022-03-10 09:56:43 +08:00
    这也值得花金币进来讨论吗?不会吧不会吧
    anxn
        42
    anxn  
    OP
       2022-03-10 09:56:43 +08:00 via Android
    @itechnology 我的意思是 log4j 用了单词+数字+字母,是三种组合,而 k8s 是字母+数字,最多也就两种组合
    ww940521
        43
    ww940521  
       2022-03-10 10:02:19 +08:00
    3=e
    Mirage09
        44
    Mirage09  
       2022-03-10 10:02:41 +08:00
    @poplar89 大部分人进来不都是 troll 的么 lol
    hcven
        45
    hcven  
       2022-03-10 10:05:39 +08:00
    @lone1y 我也想知道 如果有解答请同事 @我下
    noobchen
        46
    noobchen  
       2022-03-10 10:07:34 +08:00
    我第一次看到亚马逊的云储存服务叫 s3 我也是一脸懵的,后来才知道是 Simple Storage Service 的简写,震惊还能这么简写的吗
    ErnestSu
        47
    ErnestSu  
       2022-03-10 10:08:35 +08:00
    I2C 怎么读
    daimubai
        48
    daimubai  
       2022-03-10 10:11:30 +08:00
    建议标题改成 吐槽 为啥 log4j 的起名都这么奇怪?
    PopRain
        49
    PopRain  
       2022-03-10 10:11:47 +08:00
    说好听点是有质疑精神;说不好听点就是我看你不顺眼找茬
    mango88
        50
    mango88  
       2022-03-10 10:11:53 +08:00
    dom4j
    anxn
        51
    anxn  
    OP
       2022-03-10 10:11:58 +08:00 via Android
    @lone1y Connection Pooling 3.0 --> cp30 --> c3p0.
    @hcven
    Oktfolio
        52
    Oktfolio  
       2022-03-10 10:12:03 +08:00
    @lone1y 《星球大战》中的机器人
    anxn
        53
    anxn  
    OP
       2022-03-10 10:17:03 +08:00 via Android
    @daimubai SLF4J 本来也想吐槽来着,看了评论不敢发了

    JJWT 这种就很好,看一次就能记住
    chocotan
        54
    chocotan  
       2022-03-10 10:20:15 +08:00
    别人给你解释了,还在不停的怼人
    总结:楼主就是故意找茬的不讲理的流氓
    darkengine
        55
    darkengine  
       2022-03-10 10:27:20 +08:00
    @ErnestSu 在手机公司的时候,大家都读 埃方西
    anxn
        56
    anxn  
    OP
       2022-03-10 10:29:02 +08:00 via Android
    @chocotan 总结怪?不读题吗 进来直接打字?
    lyuuuu
        57
    lyuuuu  
       2022-03-10 10:31:31 +08:00
    每日一乐
    knightdf
        58
    knightdf  
       2022-03-10 10:38:57 +08:00
    总结:我用的熟的就是正常名字,我不会的就是乱起名
    thinkershare
        59
    thinkershare  
       2022-03-10 10:39:12 +08:00   ❤️ 1
    因为 Java 的很多库起名就是莫名奇妙, 缺乏一致性. 楼主不用理会其它人, 很多人天生喜欢维护自己用的东西, 不管它是好还是坏, 通过肯定自己使用的东西来维护自己的自尊和认同是人的天性!
    deplivesb
        60
    deplivesb  
       2022-03-10 10:43:07 +08:00
    gjson 都知道 g 代表 golang 到 log4j 就不知道 就代表 Java ?看不懂 4 = for ,2 = to ?还看见 i18n 看不懂百度一下就懂了,那你看到 log4j 就不知道百度一下?还神 tm 的 4 是版本号,来搞笑的。
    ttttturf
        61
    ttttturf  
       2022-03-10 10:44:25 +08:00
    log4net log4cxx
    shyling
        62
    shyling  
       2022-03-10 10:48:25 +08:00
    anxn 啥意思
    sinnosong1
        63
    sinnosong1  
       2022-03-10 10:49:26 +08:00
    C#还有一吨的 xxx4(2)n
    BaseException
        64
    BaseException  
       2022-03-10 10:56:57 +08:00
    > 最多也就是英文加一个数字,记着好记,见词知意,打字也好打,不用来回切输入法,还有 go 语言的一些比如:gjson ,gin ,echo ,gorm ,docker ,k8s ,k3s 等等,要么都是字母

    这完全合理好吧。不过很奇怪,字母和数字混用,为什么需要切换输入法?严谨点 ok 么

    2 === to
    4 === for

    其他的很多数字,要么代表代数、版本,要么是首尾字母之间字母的数量。

    个人觉得这些命名没有任何问题,如果我们是当时的先锋者,并不一定比他们命名的更好。
    AccIdent
        65
    AccIdent  
       2022-03-10 11:18:00 +08:00
    @anxn c3p0 是真的诡异,相比较而言 log4j 还是容易理解多了
    nekoneko
        66
    nekoneko  
       2022-03-10 11:25:17 +08:00
    我一直不知道 `graal` 怎么念
    anxn
        67
    anxn  
    OP
       2022-03-10 11:42:21 +08:00 via Android
    @BaseException 电脑不用切,我是指手机键盘,纯字母的话我中文输入法不用切就能打,加个数字我还得切英文或者切数字,中文下输字母->数字键盘->中文下输字母,或者是中文切到英文,再输字母->数字->字母
    coer
        68
    coer  
       2022-03-10 13:04:02 +08:00
    引战专家
    qq1340691923
        69
    qq1340691923  
       2022-03-10 13:13:37 +08:00
    你是不是没用过 log4go 包?
    Konys
        70
    Konys  
       2022-03-10 13:14:02 +08:00   ❤️ 1
    问一下 OP 你觉得 V2EX 别不别扭呢?
    sprite82
        71
    sprite82  
       2022-03-10 13:29:24 +08:00
    真是国际驰名双标了😅
    rulerstorm
        72
    rulerstorm  
       2022-03-10 13:38:38 +08:00 via iPhone
    无法接受,也不愿意尝试去理解跟自己直觉相左的意见。这是另一个蠢人的特征。
    CaptainD
        73
    CaptainD  
       2022-03-10 13:38:50 +08:00
    @nba2k9 #34 我没记错的话,你头像是 dota1 的蝴蝶吧,10 年没玩过了
    Jwyt
        74
    Jwyt  
       2022-03-10 13:40:48 +08:00
    哈哈哈,楼主杠的挺可爱
    tinyuu
        75
    tinyuu  
       2022-03-10 13:47:41 +08:00
    《第一滴血》的第二部应该叫《第二滴血》
    szq8014
        76
    szq8014  
       2022-03-10 13:53:04 +08:00
    @GuuJiang
    @VeryZero
    本站就是 way to explore 呦
    lower
        77
    lower  
       2022-03-10 13:53:07 +08:00
    @Goooooos 还有个 k0s ,把 8 横着切一刀
    lower
        78
    lower  
       2022-03-10 13:58:14 +08:00   ❤️ 1
    我印象最深的库的名字就是:结巴分词……
    很惟妙惟肖的把分词的那种特点体现出来,带点幽默感
    giiiiiithub
        79
    giiiiiithub  
       2022-03-10 14:50:37 +08:00
    419 听过没,双 11 听过没
    cco
        80
    cco  
       2022-03-10 15:53:43 +08:00   ❤️ 2
    楼主不如说直白点,java 就是个垃圾。扯那些有的没的没啥用。
    logforjava logforj log4j 你觉得那个舒服?第一个铁定要和 oracle 律师对线的。第二个更丑,反而第三个算是最佳方案。
    当然,也可以改个名字:logback 。搞不懂作者同一个轮子造三遍。log4j - logback - log4j2
    zzfer
        81
    zzfer  
       2022-03-10 16:01:28 +08:00
    你第一眼看 log4j ,难道不是一下是明白是 log 相关的吗?第一眼 k8s 谁知道是干啥的,从这方面来说,log4j 是好的缩写
    uSy62nMkdH
        82
    uSy62nMkdH  
       2022-03-10 16:13:06 +08:00
    @Goooooos 活久见系列
    Bingchunmoli
        83
    Bingchunmoli  
       2022-03-10 16:16:01 +08:00 via Android
    对我而言 gjson 会比 jjson 更怪,我用 java 知道 j 可能是 java 的缩写,然后玩外敷游戏知道一些譬如 u 指 you 的缩写
    ikas
        84
    ikas  
       2022-03-10 16:26:42 +08:00
    xml4j log4j slf4j openxml4j launch4j neo4j icu4j deeplearning4j test4j dom4j rss4j
    这些,哪个不比什么 k8s 这玩意清晰?
    tcpdump
        85
    tcpdump  
       2022-03-10 16:29:22 +08:00
    xxl-job
    yazinnnn
        86
    yazinnnn  
       2022-03-10 16:36:54 +08:00   ❤️ 1
    回到主楼
    log4xx 是 apache logging 服务的各种实现,啥语言都有,举这个例子说 java 库瞎几把起名不合适

    https://logging.apache.org/
    neptuno
        87
    neptuno  
       2022-03-10 16:55:05 +08:00
    楼主的规范应该是:要么是一个单词。要么是 3 个字以内的英文+字母(不论是否有含义)。
    Bromine0x23
        88
    Bromine0x23  
       2022-03-10 16:59:25 +08:00
    不如先定义一下另类的评判标准
    orangie
        89
    orangie  
       2022-03-10 17:00:45 +08:00
    Log4j 比 pillow 这种名字感觉更直观,不去看说明,谁能想到 pillow 是个图像处理库,更奇怪的是导入的时候叫 PIL 。
    Amayadream
        90
    Amayadream  
       2022-03-10 17:01:10 +08:00
    今日欢乐源泉,还就那个嘴硬 😅
    fredli
        91
    fredli  
       2022-03-10 17:01:16 +08:00
    也就是 logForJava 是好名字,楼主这么认为
    wzcloud
        92
    wzcloud  
       2022-03-10 17:23:38 +08:00   ❤️ 1
    完美诠释了什么叫做双标
    snw
        93
    snw  
       2022-03-10 18:10:04 +08:00 via Android
    .NET 默默看着你们🐶
    jackmod
        94
    jackmod  
       2022-03-10 18:35:38 +08:00   ❤️ 1
    出现 i18n 的地方,它的附近总是有一堆语言资源
    而且这玩意历史悠久,8.3 文件名时代的缩写更疯狂
    compmgmt.msc = computer management
    main.cpl = mouse and input
    lizhian
        95
    lizhian  
       2022-03-10 21:06:22 +08:00
    log4j 奇怪,k8s 不奇怪,你品,你细品
    guyeu
        96
    guyeu  
       2022-03-10 21:16:19 +08:00
    一直 get 不到 x86_64 、aarch 的点。。。
    yolee599
        97
    yolee599  
       2022-03-10 21:31:51 +08:00 via Android
    @ErnestSu 读做挨方西,就是英文字母的 i ,平方的方,英文字母的 c
    interim
        98
    interim  
       2022-03-11 00:59:05 +08:00
    双标嘴硬现场,就差直接说 Java 就是垃圾了。
    pdog18
        99
    pdog18  
       2022-03-11 12:22:49 +08:00
    歪个楼,我觉得 Android 里面的 okhttp 和 retrofit 的命名太酷了
    liaojl
        100
    liaojl  
       2022-03-11 13:06:44 +08:00 via iPhone
    我猜 log4j 在楼主心里应该是念 log [si] 勾...
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1439 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 67ms · UTC 23:55 · PVG 07:55 · LAX 16:55 · JFK 19:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.