学完 Java 和 rust 再学 cangjie 有种割裂感。。。。 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
lsk569937453
V2EX    程序员

学完 Java 和 rust 再学 cangjie 有种割裂感。。。。

  •  
  •   lsk569937453 2024 年 7 月 2 日 4931 次点击
    这是一个创建于 580 天前的主题,其中的信息可能已经有所发展或是发生改变。

    cangjie 的第三方 redis-sdk 已经发布:https://gitcode.com/Cangjie-TPC/redis-sdk/overview 很多语法看起来很蛋疼,比如:

    from std import collection.ArrayList private static let transactiOnCommandsBuilder= TransactionCommandsBuilderImpl() public class HostAndPort <: Equatable<HostAndPort> & Hashable & Comparable<HostAndPort> & ToString {} public operator override func <=(other: HostAndPort): Bool {} public enum ProtocolVersion <: Hashable & Equatable<ProtocolVersion> {} public static func unwrapToNillableAnySimpleType(redisMessage: RedisMessage): ?Any {} 
    21 条回复    2024-07-04 19:27:10 +08:00
    akin520
        1
    akin520  
       2024 年 7 月 2 日
    一眼看去,像 py 又像 JAVA
    kile
        2
    kile  
       2024 年 7 月 2 日
    更像 kotlin
    所有新语言以及老语言的新版本都天下一大缝

    习惯就好
    seanzxx
        3
    seanzxx  
       2024 年 7 月 2 日 via iPhone
    那个&符号看着眼熟,上一个这么写的应该是 typescript
    kennylam777
        4
    kennylam777  
       2024 年 7 月 2 日
    Cangjie 我就是入法....
    Leviathann
        5
    Leviathann  
       2024 年 7 月 2 日
    Scala 用 <: 表示类型约束里的 upper bound ,比如 class Home[P <: Person]

    不过声明类的时候还是用的 java 那套 plain old notation ,extends A, B, C 那种

    看起来在声明 class 的时候也用 <: 确实比老气的 extends 好看些

    另外 scala3 也有 intersection type ,其实声明 class 的 intersection type 没什么特别的,就是 plain old 的多继承/实现换了个皮,看起来一致性更好些
    whileFalse
        6
    whileFalse  
       2024 年 7 月 2 日 via Android
    @akin520 py 没有这么多屁话。真的很烦 java 代码,一大片过去了啥功能没实现
    weijancc
        7
    weijancc  
       2024 年 7 月 2 日   1
    为了跟其他语言区分还把 from 和 import 给颠倒了, 这点就很 low 了, 显得 from 的包才是主角, 如果包名很长都注意不到 import 了什么东西
    baozijun
        8
    baozijun  
       2024 年 7 月 2 日
    @whileFalse #6 那你可能会更讨厌 TS 体操。。
    AV1
        9
    AV1  
       2024 年 7 月 2 日   1
    @weijancc
    我觉得先写包名才符合逻辑。像 JS 那样,得先写
    import { 留空 } from 'package'
    再把光标移到留空位置才有自动提示。

    不过我也不喜欢 python 的方式,
    from package import xxx
    import xxx
    如果两种导入方式同时出现,一个以 import 开头,一个以 from 开头,不统一。

    我觉得最好的是 dart ,
    import 'package'
    import 'package' show xxx
    import 'package' hide xxx
    import 'package' as xxx
    都是以 import 开头,都先写包名。
    FightPig
        10
    FightPig  
       2024 年 7 月 2 日
    @weijancc 你意思 python 很 low ?
    FlashEcho
        11
    FlashEcho  
       2024 年 7 月 2 日
    @DOLLOR from xxx import yyy 对传统 ide 比较友好,但是有 copilot ,import yyy 很多时候也能直接自动补全,都无所谓了
    yemoluo
        12
    yemoluo  
       2024 年 7 月 3 日
    缝合啊,不然人家会说从哪个语言抄来的
    weijancc
        13
    weijancc  
       2024 年 7 月 3 日
    @FightPig python 我确实觉得很 low, 以前用过一段时间用来写脚本, 现在已经全面转向 NodeJS 了
    vacants
        14
    vacants  
       2024 年 7 月 3 日 via iPhone
    @weijancc 补全也不方便,TypeScript 写完 import xxx 一个 tab IDE 自动推导并补全从哪个包倒入,这个还得先写完前面的,效率就低了
    ryanking8215
        15
    ryanking8215  
       2024 年 7 月 3 日
    为什么是割裂感,不应该是老乡感么?
    exiledkingcc
        16
    exiledkingcc  
       2024 年 7 月 3 日
    编译器要注册才能下载的编程语言,不会有什么前途的。
    whileFalse
        17
    whileFalse  
       2024 年 7 月 3 日 via Android
    @baozijun 是的。其实我对 ts 最不满的地方在于,它不提高性能。
    python 的类型支持也不提高性能,但是 python 类型是可选的。
    wsseo
        18
    wsseo  
       2024 年 7 月 3 日
    @exiledkingcc 主要是还没完善,有 bug ,放出来怕啪啪打脸。
    exiledkingcc
        19
    exiledkingcc  
       2024 年 7 月 3 日   2
    @wsseo 这种心态能搞得好?现在新的编程语言哪个不是社区建设?像这种藏着掖着的,何必在它上面浪费时间?另外,想一想几年前的吹得牛逼轰轰方舟编译器,现在在哪里?
    dif
        20
    dif  
       2024 年 7 月 4 日
    pyva / jathon
    ychost
        21
    ychost  
       2024 年 7 月 4 日
    这语法一言难尽
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     949 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 21:16 PVG 05:16 LAX 13:16 JFK 16:16
    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