anxn
V2EX  ›  Java

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

  •  
  •   anxn · Mar 10, 2022 via Android · 14462 views
    This topic created in 1699 days ago, the information mentioned may be changed or developed.

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

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

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

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

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

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

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

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

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

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

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

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

    2 === to
    4 === for

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

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

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