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

为什么我那么喜欢 C++??

  •  
  •   WhoCanBeRich · 213 天前 · 8088 次点击
    这是一个创建于 213 天前的主题,其中的信息可能已经有所发展或是发生改变。

    工作好几年了,除了大学写了一年的 C++,工作中基本没写过,

    最近给表弟处理问题写了点 C++代码,发现还是那么好用。。。

    有同感的吗?

    我也想过为啥其它语言没有那么吸引我,可能是因为太高级的原因?

    让我写代码的过程中完全体会不到计算机的美。

    第 1 条附言  ·  212 天前
    啊? 为啥还有那么多老铁在说内存问题呢? 我理解不是用了智能指针后,内存管理完全像写 java 一样丝滑吗?
    96 条回复    2023-11-02 19:58:20 +08:00
    weak
        1
    weak  
       213 天前 via iPhone   ❤️ 11
    要不是编译各种报错 我就信了
    joyhub2140
        2
    joyhub2140  
       213 天前   ❤️ 1
    还是用的少,当爱好成为职业。。。你就会发现坑很多。
    y1y1
        3
    y1y1  
       213 天前
    有同感的吗 没有
    passive
        4
    passive  
       213 天前 via Android
    c++大而全,该有的都有了,挺好的。
    但是坑多、features 滥用严重,template metaprogramming 比 rust 难学。
    jedrek
        5
    jedrek  
       213 天前
    如果我还是学生也许就信了
    agagega
        6
    agagega  
       213 天前   ❤️ 1
    C++就是语法历史负担太重,模板元编程完全可以有更好的语法,再加上静态反射。另外就是 C++工具链倒是不少,就是缺少一个像 cargo/rustup 这样方便的套件。语法方面,我觉得 Cpp2 是个好思路,虽然很多人觉得太极端了,但是要演进又要保持兼容性就必须这样。
    iceheart
        7
    iceheart  
       213 天前 via Android   ❤️ 3
    因为 C++它就是那么强啊!

    极致的性能表现,极低的资源占用,完全的硬件访问能力,各式各样的编程模式,你可以随心所欲的写,没有束缚,只要你能力够。
    这种从心所欲的体验没有其他任何语言能代替。
    duke807
        8
    duke807  
       213 天前 via Android
    我选择用 c
    tyzandhr
        9
    tyzandhr  
       213 天前 via Android   ❤️ 1
    因为 c++是一门民主的语言,c++委员会民主决策。
    反观 rust…………
    allAboutDbmss
        10
    allAboutDbmss  
       213 天前
    @tyzandhr 不民主吗
    allAboutDbmss
        11
    allAboutDbmss  
       213 天前
    @tyzandhr rust 为啥不民主哇?
    agagega
        12
    agagega  
       213 天前   ❤️ 1
    @tyzandhr
    C++不像民主制,倒有点像贵族制,一帮利益相关方派代表相互扯皮
    Jirajine
        13
    Jirajine  
       213 天前 via Android
    @agagega #6 rust 就是事实上的 cpp2 ,不只是语法,概念、范式也都是 cpp 的延续。
    xarthur
        14
    xarthur  
       213 天前 via iPhone   ❤️ 1
    c++要写的小心翼翼,不知道 LZ 觉得哪里爽了……
    keepRun
        15
    keepRun  
       213 天前 via Android   ❤️ 1
    以前我也这么觉得,现在我觉得哪个好用用哪个,甚至无缝使用多门语言。
    回过头来觉得争论语言没啥意义,技术人员应该根据不同场景寻找合适的技术方案而不是根据偏爱
    cnbatch
        16
    cnbatch  
       212 天前   ❤️ 1
    我也更偏向用 C++,尤其是个人项目。

    Windows Only 的项目除外,这时候我会根据实际需求选择 C# 或者 C++,不会定死只用一种。

    个人项目跨平台时,我只能选 C++,因为我跨的平台相对“偏门”。不但有 Windows 和 Linux ,还有整个 BSD 系列——FreeBSD, NetBSD, OpenBSD, DragonflyBSD 这几种。
    毕竟我既想用到方便的语言特性,又想二进制文件尽量小,不要“拖泥带水”挂靠 VM ,还要兼容 DragonflyBSD (尽管没什么人用,但我还是会给它编译出二进制文件)。这样下来可选范围非常窄,对我来说也就 C++最适合了。
    voidmnwzp
        17
    voidmnwzp  
       212 天前 via iPhone
    因为你没写过大项目,我虽然没写过 c++,但之前写 Java 用到 jni c++ lib ,那编译速度,少说也是五分钟起步
    cssk
        18
    cssk  
       212 天前 via iPhone   ❤️ 1
    楼主一看就是自虐型人才
    iintothewind
        19
    iintothewind  
       212 天前   ❤️ 1
    没有一门语言是完美的,只有使用场景合适不合适,毕竟语言只是工具。
    能让人体会到计算机的美的语言有很多,你只是不愿意去了解,scheme,Racket,Haskell,Erlang 这些函数范式语言所体现的思想让很多现代语言比如 C#,JavaScript ,C++,Java 等拿来重新包装,体现所谓的“先进思想”,其实多去了解一下,就会发现这些思想在上世纪七八十年代就已经有了,只不过没有大规模使用。
    mightybruce
        20
    mightybruce  
       212 天前   ❤️ 6
    怎么这么多没写过 C++ 的人在这里乱说,C++ 14 、17 、20 已经让 c++ 上手难度降低了很多,
    要对比,肯定是比 Rust 容易上手的。
    需要用 C++的地方自然会用 C++, 不需要的地方就是接触也只是皮毛。
    现代 C++ 包管理工具也不是唯一,估计这些都是 CRUD 程序员吧,找不到集中式包管理,就觉得 C++ 不好。
    了解一下 CMAKE, Vcpkg, Conan 没多长时间。
    ellermister
        21
    ellermister  
       212 天前 via Android   ❤️ 1
    群里整天在喷 cpp 连个标准 socket 库都没有,全靠手撸
    fox0001
        22
    fox0001  
       212 天前 via Android
    有个大家都知道的黑历史,Linus 一直拒绝使用 C++重构 Linux 内核,但是近年开始接受 Rust 。
    bigha
        23
    bigha  
       212 天前   ❤️ 1
    我选择用汇编 完虐 C++

    让我写代码的过程中完全体会不到计算机的美
    mightybruce
        24
    mightybruce  
       212 天前   ❤️ 3
    Linus 除了 C 、Rust 语言以外,其他语言像 JAVA 都喷了,怎么大家就只记住 C++。

    C++ 一定不要看国内的书会让你误入歧途。

    C++ 的项目可是不断维护的,有的项目比群里这些小辈年龄都大, 这些库的稳定性足够强,而不像什么 JS/ Rust 还没几年就被人抛弃了。

    大多数人喷 C++ 只是因为他学不会而已, 作为高校和信息奥赛指定的语言,学 C++ 的每年可并不少。
    NoAnyLove
        25
    NoAnyLove  
       212 天前
    如果我不是在生产环境中用 C++的话就真信了你的邪了
    stevefan1999
        26
    stevefan1999  
       212 天前 via Android
    我也愛死 C++了 多謝你給這麼多內存溢出和桟攻擊的 CVE 我才能黑了你的程序 Rust 的內存安全機制是壞文明
    tsanie
        27
    tsanie  
       212 天前
    win11 canary 频道前段时间也推了 rust 重写的部分内核
    shellcodecow
        28
    shellcodecow  
       212 天前
    要不是用了 golang 我差点就信了 🤣
    核心用 c++ , 插件用 golang, 爽
    yolee599
        29
    yolee599  
       212 天前 via Android   ❤️ 3
    C++ 的 feature 太多了,我不太喜欢,反而更喜欢 C
    mightybruce
        30
    mightybruce  
       212 天前   ❤️ 2
    写自己代码用合适的语言完事,Rust 这几年高危的 CVE 一个都不少, 比如去年修复了一个编号为 CVE-2022-21658 的高危漏洞
    语言之争都是底层程序员的无畏之争。
    写基础设施和专门系统开发的人, 写 c++ 和 rust 都是随便切换的, 在数据结构和系统编程、网络编程、计算机组织结构都熟练掌握的情况下, 不会特意挑,反而 Rust 黑粉 什么语言都学不会叫嚣的很多。
    ajaxgoldfish
        31
    ajaxgoldfish  
       212 天前
    那是因为你的工作不是 C++
    zzzkkk
        32
    zzzkkk  
       212 天前 via Android
    我只对钱感兴趣 c++做 hft 有 80 万美元一年呢
    iOCZ
        33
    iOCZ  
       212 天前
    只用到一小部分而已,20%的语法完成 90%的工作
    rahuahua
        34
    rahuahua  
       212 天前
    工作中没用过 结论是你喜欢 c++ 不够严谨的
    javak
        35
    javak  
       212 天前
    对我来说,感受完全一样,只不过语言换成了 java
    zzz6519003
        36
    zzz6519003  
       212 天前
    写代码体会到计算机的美?能借几行代码说话吗
    dobelee
        37
    dobelee  
       212 天前 via iPhone
    你先干几年,找几个线上 bug 再说。
    dif
        38
    dif  
       212 天前
    参考 林纳斯的观点。
    guochao
        39
    guochao  
       212 天前
    写的不够多,写的多了语言不是问题,在于怎么样设计架构来更好的满足需求和解决问题,一步步细化以后后面才有语言的选择问题,那个时候不是我们选择语言,而是生态和需求确定语言
    emSaVya
        40
    emSaVya  
       212 天前   ❤️ 2
    很多人对 c++ 的印象还停在 20 年前。实际上现在 c++ 写起来轻松又愉快。
    XIVN1987
        41
    XIVN1987  
       212 天前
    @emSaVya
    这二十年,,又加了好多内容,,spec 又厚了一倍不止
    emSaVya
        42
    emSaVya  
       212 天前
    @XIVN1987 c++ 不搞 deprecated features 就是这样了, 一切为了兼容。挑新特性出来用就好了。modern cpp 上手很快 也没啥难度。
    wanguorui123
        43
    wanguorui123  
       212 天前
    C/C++唯一优势就是资源可控性强,当然业务复杂时也是软肋
    lingeo
        44
    lingeo  
       212 天前   ❤️ 1
    写 C++的时候我是真的有思考变量在内存中是怎么保存的。😓也不怕被笑话,刚转 C 的时候,我 debug 某个字节列表时,Clion 怎么只显示第一个元素,我一度怀疑是不是数据错了挣扎了半天,出去上厕所的时候突然想起指针是内存中的地址,Clion 并不知道具体的长度,所以只会提示第一个元素,这时候我是真的茅塞顿开。这时候可以体会到计算机的美,但是 deadline 的时候也是真要命,C++开发效率太慢了,而且语法也多,每次引入新的 SDK 都有看不懂的语法。
    idblife
        45
    idblife  
       212 天前 via iPhone   ❤️ 1
    要不是我真写过 c++,差点就信了
    InkStone
        46
    InkStone  
       212 天前
    不管什么语言,写到深处都会踩坑的。有些坑是语言本身会让你更容易写错代码,有些坑是语言本身非常难实现一个很普通的需求。
    c2const
        47
    c2const  
       212 天前
    去学习下开源的大型 Asm/C/C++混合项目,体会下:
    一次编写,到处编译,还编译不过 :)
    yuruizhe
        48
    yuruizhe  
       212 天前
    @c2const 可以直接跟内存打交道嘛,大小端都不一样,要编译一下也是理清之中啦
    xiri
        49
    xiri  
       212 天前 via Android
    我现在工作在写 C🤔
    yulon
        50
    yulon  
       212 天前
    C++ 封装好了比写脚本还爽,只要别和别人合作,猪队友和云队友太多了,像写 Java 一样无脑接口,实现到处乱飞,鬼知道是个什么东西,找个实现还要全部代码都搜索一遍,没错我说的就是 Chromium 。
    Nugine0
        51
    Nugine0  
       212 天前   ❤️ 1
    @tyzandhr #9 rust 可太民主了,以至于出现一堆政治正确的破事……
    Nugine0
        52
    Nugine0  
       212 天前
    @mightybruce #30 CVE-2022-21658 这个例子不太好。这玩意在 rust 标准库里算漏洞,在 c++ 标准库里算 UB ,调用者负责。
    bruce0
        53
    bruce0  
       212 天前   ❤️ 2
    我也喜欢 C++, 喜欢那种自己可以掌控一切的感觉, 合理使用 智能指针, 可以极大的减小心智负担和内存出错的问题.
    C++17, 20 的完善, C++ 难度和友好度已经比以前好多了, 以前动不动几百上千行的 编译报错, 随着 C++20 里 模板的 require 支持, 编译报错也友好了.

    C++ 语法繁杂,就是一个大杂烩, 能在 C++里找到几乎所有编程语言的特性. 都是学 C++, 实际使用 C++--

    C++虽然比以前好用了, 但是易用程度还是不如和 go Java 这些, 在合适的敌方用合适的语言, 才是最优解
    bao3
        54
    bao3  
       212 天前
    自从把内存搞崩,我再也不敢用 cpp……
    huangzongzhuan
        55
    huangzongzhuan  
       212 天前
    @weak hhhhhhhhhhhhhhhhhhhh 笑屎
    snylonue
        56
    snylonue  
       212 天前 via iPhone
    写了点 C 以后觉得 C++ 还是挺好用的(
    tairan2006
        57
    tairan2006  
       212 天前 via Android   ❤️ 1
    如果工作中没用过,那就有点叶公好龙的感觉了
    Cu635
        58
    Cu635  
       212 天前
    @cnbatch #16
    有调研过 rust 的 BSD 兼容性么?
    dayeye2006199
        59
    dayeye2006199  
       212 天前
    c++的工具链太复杂。
    make ,cmake ,xmake ,bazel 。debug 工具 gdb ,各种劝退
    tracebundy
        60
    tracebundy  
       212 天前
    不同项目不同环境都能遇到编译问题,很多 Github 项目拉下来无法编译通过,这是 C++最大特点
    LitterGopher
        61
    LitterGopher  
       212 天前
    我喜欢 C 但不喜欢 C++,不过也不讨厌就是。
    Longerrrr
        62
    Longerrrr  
       212 天前
    modern cpp 好用,写起来比较顺滑。
    cnbatch
        63
    cnbatch  
       212 天前
    @Cu635 这里就有:
    https://doc.rust-lang.org/nightly/rustc/platform-support.html
    Tier 3 当中就有提到,RISC-V FreeBSD 并不支持,但 RISC-V Linux 却又是 Tier 2 支持,显然对 BSD 的支持并算不完善。
    而 BSD 系统自己支持的平台比这个列表要多,虽然我个人并不可能每个支持的平台都编译一次二进制文件,但如果有人刚好有 BSD 支持的偏门硬件(而 Rust 不支持)又刚好想拿来编译一下,那么他就没办法做到编译了。

    我并不喜欢给 BSD 使用者设限,因为我自己就是 BSD 使用者,尽管我跟对方所使用的 BSD 未必是同一种类。
    cnbatch
        64
    cnbatch  
       212 天前
    @cnbatch 顺便再补充个我是怎样迁就 BSD 的

    首先,有个很重要的一点,BSD 全系列全部自带 C/C++编译器,我很喜欢这一特点。哪怕是 FreeBSD 的衍生版本,即使是变成了防火墙系统(比如 OPNSense ),依然都自带编译器。
    其次,我发布的二进制文件未必涵盖 BSD 系统自己支持的硬件平台,但我希望其他人在这些平台里,可以顺利用自带编译器编译我的代码。这样就不需要额外安装其它语言的编译器了。
    那么能用的语言就只有两种:要么 C ,要么 C++。
    再结合我先前提到的,“想用到方便的语言特性”,只能选 C++。

    语言选好了,接下来选标准。
    到目前为止,FreeBSD 仍在受支持的最低版本是 12.x ,其中 12.0 自带的编译器是 LLVM 6.0, 最高能支持到 C++17 。直到 2022 年更新的 12.4 才升级到 13.0 ,可以稍微支持 C++20 。
    所以当下这段时间我会继续使用 C++17 。等到 FreeBSD 12.x 停止支持了(今年年末),我再升级语言标准也不迟。
    Daeyn
        65
    Daeyn  
       212 天前 via iPhone
    喜欢 C ,不喜欢 C++,经验是写过 8 年 C++游戏服务器端
    cnbatch
        66
    cnbatch  
       212 天前
    我在公司里会用 C++写命令行工具(哪怕是 Windows Only 的),这时候就可以放飞自我了,因为不用开源,我想怎么写就怎么写,甚至写出一大堆不符合 C++ Core Guidelines 的代码。反正这时候的目标只有一个:能跑不崩就行。
    Yayiliu
        67
    Yayiliu  
       212 天前   ❤️ 4
    写了一段时间 rust,编译器告诉我,“是为你好,听我劝,我不要你觉得,我要我觉得,没有但是,理由都是借口,不是包不好,这么多年了你还不进步是你的问题”,以上换成人话后,你还喜欢 rust 吗?抱歉,有些事情我必须自控不需要你指指点点,你这些鸡汤留给新手就可以了。
    idealhs
        68
    idealhs  
       212 天前
    有没有可能,C++的开发体验完全取决于行业?不同行业用 C++的方式完全不同,相似的只有无尽的内存操作
    Masoud2023
        69
    Masoud2023  
       212 天前
    我也喜欢 c++,但我写不明白 makefile
    Masoud2023
        70
    Masoud2023  
       212 天前
    也写不明白 cmakelist
    yx1989
        71
    yx1989  
       212 天前
    @weak 像 rust 面向编译器编程,C++的编译报错还远远不够(手动狗头)。

    C++ 的门槛和天花板都很高,一不小心就会带入奇怪的问题。
    msg7086
        72
    msg7086  
       212 天前
    @mightybruce 我觉得需要一个 C++14/17/20/23/26 的 Modern C++教程系列。我之前稍微玩过一点 C++,结果连智能指针都没完全搞明白。
    mightybruce
        74
    mightybruce  
       212 天前   ❤️ 1
    书 在 github 上
    《 modern c++ tutorial c++11/14/17/20 on the fly 》
    https://github.com/changkun/modern-cpp-tutorial
    然后看各种现代 c++ 的库的写法
    stl boost envoy
    holy_sin
        75
    holy_sin  
       212 天前
    想要个官方的包管理工具 不知道过不过分
    Kirscheis
        76
    Kirscheis  
       212 天前
    只要不需要和菜鸡合作,不需要处理屎山,那 modern cpp 就是很爽,一切尽在掌握中的这种精准性是别的语言比不了的。。。内存管理啥的,用好智能指针和左右值引用和 rust 也没啥区别,生态还更加丰富,相比之下 rust 在目前根本就写不了任何严肃的 GUI 和 GPU 代码。虽然现在做的东西用 rust 越来越多了,我自己也用 rust 更多一点,但是目前来说肯定还是 cpp 更胜一筹。

    当然了,如果队友多的话,我还是更倾向于用 rust 或者 java 这些强迫每个人都不准写烂代码的。
    buaacss
        77
    buaacss  
       212 天前
    @joyhub2140 笑死,距离产生美嘛
    xiaopanzi
        78
    xiaopanzi  
       212 天前
    @mightybruce Rust 现在进入了 Linux 内核,而 JS 是 Web 的根基。根本不会被人抛弃!
    duke807
        79
    duke807  
       212 天前 via Android
    @xiaopanzi 过不了多久 rust 就会被移出内核,有生之年系列
    cnbatch
        80
    cnbatch  
       212 天前
    @holy_sin C 以及 C++连“官方”编译器都没有,更别说官方包管理器了

    其实很长时间以来,包管理是由操作系统自己的软件包管理器负责的,系统的软件包管理器同时就是 C/C++的包管理器。这原本是很方便的优势。
    只不过 Linux 发行版特别多,无法保证想用的包全都能出现在所有发行版当中。
    再加上 Windows 和 macOS 完全不做这种事,想要管理那就只能靠第三方软件(例如 vcpkg ,尽管也是微软的,但并不是预装在 Windows 当中)。
    于是,优势成了劣势。

    难怪不少语言索性自带包管理工具。

    如果 C 以及 C++背靠大公司,那么或许还能有个集大全的包管理器。可惜现实并不能。当初诞生 C 以及 C++的贝尔电话公司早就被拆散了,ISO 委员会也没资源去干这样的事。
    真想要做,那就必须两个 ISO 委员会( C 语言的 9899 和 C++的 14882 )同时协调着做,难度就更高了(时间会浪费在官僚式扯皮当中)。
    cnbatch
        81
    cnbatch  
       212 天前
    @cnbatch 手误,“贝尔电话公司早就被拆散了”应为“AT&T 公司早就被拆散了”
    bkmi
        82
    bkmi  
       212 天前 via Android
    还是写的少了,我还是觉得限制多的语言写起来舒服,写不出花哨的代码,犯错的机会就少一些
    xiaopanzi
        83
    xiaopanzi  
       211 天前
    @duke807 你给个“过不了多久”的具体期限。我们来个 100 元话费的赌注:)
    leslieranaa
        84
    leslieranaa  
       211 天前
    @duke807 怎么讲?
    mightybruce
        85
    mightybruce  
       211 天前
    @xiaopanzi 你看不懂我说的意思吗? Rust 开源项目大多都是开始有人维护,最后都不了了之的,(没人维护,没人更新)。
    Rust 本身并没有什么明星项目,也没有建立起相关领域。
    上个叫嚣要干死 C++ 的 DLang 坟头草都长了好久了。
    另外 Rust 语言设计开始不想着兼容 C/C++,所以 C++ 项目迁移时很难的,倒不如谷歌 Carbon 语言的设计思路。
    araraloren
        86
    araraloren  
       211 天前
    @mightybruce Obviously rust is the future, Microsoft, Google and Cloudflare all knows that.
    SHF
        87
    SHF  
       211 天前
    @mightybruce 看好 Carbon ,投 Carbon 一票,等编译器出来了一定会第一时间试用一下
    kakki
        88
    kakki  
       211 天前 via Android
    感性认识到理性认识的过程,很明显你没有工程经验,属于感性认识阶段。
    wa007
        89
    wa007  
       211 天前
    我以前也挺喜欢的,只作为爱好使用。
    看了评论区,受益匪浅。
    DinoStray
        90
    DinoStray  
       211 天前
    我也喜欢, 因为我是细节控, 我要非常精准的控制内存和线程
    Tanix2
        91
    Tanix2  
       210 天前
    你自己喜欢你不知道为啥?
    2NUT
        92
    2NUT  
       210 天前
    天赋异禀,天选之人,就该吃 cpp
    tianshilei1992
        93
    tianshilei1992  
       209 天前
    C++ 是我的主力语言,但是我觉得还是有个必要学个 Rust 的,虽然 Rust 现在也差不多是一地鸡毛…
    holy_sin
        94
    holy_sin  
       203 天前
    @cnbatch 所以 c++ 入门体感比较差吧,有大部分时间都在配置环境
    cnbatch
        95
    cnbatch  
       203 天前
    @holy_sin 单纯入门并不至于“大部分时间都在配置环境”的,这得看 OS 的种类

    Windows: 下载安装 Visual Studio ,完事(不是指 VSC ),打开 IDE ,可以开始入门学习了

    Linux:选最新发行版,安装开发工具包( sudo apt install build-essential 或者 sudo dnf groupinstall "Development Tools" "Development Libraries"),再选个 IDE 或编辑器+插件。然后调一调 IDE 、设置编辑器。

    BSD:虽然使用 BSD 来入门的人基本不存在,毕竟能够用 BSD 的人本身就懂许多开发相关的事情。不过用 BSD 入门还真是比 Linux 少一步,只需要选个 IDE 或编辑器+插件,再编辑下设置。


    只要不是一上手就搞“mingw 在 Windows 编译 Linux 程序”、“cygwin 在 Linux 编译 Windows 程序”,老老实实只编译当前平台的二进制(话说回来,“入门”阶段就编译跨平台二进制,这可不是入门者的级别),那么真的不太需要总是配置环境。

    真正需要花费大量时间配置环境的,也就是刚才提到的跨平台编译,除了提到的这两个,还有“Linux x86/x64 环境编译出 ARM 二进制”这种。不过都到这种程度了,已经不能算是“入门”级别。
    xivnaz
        96
    xivnaz  
       177 天前
    楼主有写界面吗?
    我也是觉得 C++很特殊,跟其他高级语言不太一样。
    但是,它真的很难搞。
    我就想给写好的程序加个界面,fltk 就死活编译不通过。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   886 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 20:20 · PVG 04:20 · LAX 13:20 · JFK 16:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.