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

最近感觉,不管写什么语言都像在写 Python ...好事还是坏事?

  •  
  •   black11black · 2020-12-20 04:32:59 +08:00 via Android · 2337 次点击
    这是一个创建于 1437 天前的主题,其中的信息可能已经有所发展或是发生改变。
    如题。我自己技术栈不丰富也不深入,但应该不算小白,算是老白。做过生产级项目的有 node/py/java 。c 只在学校写过,cpp 基本上是用来给 py 写插件,写起来反正也是 c with stl 那味儿。。。最近一年在多个项目间切换,最近渐渐总结出一些规律,发现自己写什么东西都像在写 Python

    无论是 node 还是 cpp 还是 java,基本用到的数据结构也就是各式各样的 array 和 map,可能还有 set,而换到 java 里则是 hashmap 。可能因为没有使用一些高级特性吧,比如 cpp 的元编程之类的,真的是感觉几种语言写起来都一样(数据结构方面是这样,算法方面则是根本不局限在语言)。像 node 这种 es6 之后甚至都不需要考虑闭包的,感觉写起来除了慢以外完全没区别。

    以前说写 c 的时候最大的优势是不管写什么大概写的时候就知道编译出来的汇编是个什么样子,在学校写编译器的时候倒是确实有过这种感觉,但是进开发岗以后就再没写过需要自己回收垃圾的语言了,这种感觉也是模糊了。

    非引战,今天知乎给我推了个帖子,说适合新手入门的语言是什么,我不知怎么的就被吸引进去看看。里面回答痛批 python,大捧 C 语言,说一切没有类型的语言给新手学就是屎,我现在确实是不理解写这个回答的人的心情。我倒是感觉除了 c 以外,剩下的基本上都是简单学学就能可上九天揽月可下五洋捉鳖,我现在写了这么长时间 cpp 插件,你要是真叫我从头做一个纯 cpp 的项目我还真不知道能写啥,毕竟咱们就是一个开发,底层基本不写,对于 cpp 的 tcpip 框架也不熟,cv 啥的也不会,真叫我上手做点啥肯定是两眼一抹黑
    msg7086
        1
    msg7086  
       2020-12-20 04:46:02 +08:00
    我最近涂 Java 的时候涂出了 Ruby 味,结果被同事喷了一把,默默滚回 Java 风了。
    autoxbc
        2
    autoxbc  
       2020-12-20 05:27:48 +08:00 via iPhone
    闭包是个语言特性,很多语言都有,看描述当成了负担?而且 es6 和闭包也没关系
    black11black
        3
    black11black  
    OP
       2020-12-20 07:44:32 +08:00 via Android   ❤️ 1
    @autoxbc 建议提高阅读理解能力
    x1155665
        4
    x1155665  
       2020-12-20 08:00:03 +08:00 via Android
    如你所说的,取决于项目需求吧。我写小程序有时也有这个感觉。。不过项目大了, 对 OOP 要求高了 就不一样了
    20015jjw
        5
    20015jjw  
       2020-12-20 09:05:25 +08:00
    屎就屎吧
    毕竟我野鸡大学 Berkeley 上新手入门就用的 python
    没毛病
    yzbythesea
        6
    yzbythesea  
       2020-12-20 09:21:44 +08:00
    可能是你做的东西太简单了。Java,Cpp 写分布式还是挺不错的。Python 一般就只能写个脚本。
    black11black
        7
    black11black  
    OP
       2020-12-20 09:22:41 +08:00 via Android
    @20015jjw 另外关于类型这个事吧,我个人现在感觉,其实 python 也只是把声明和赋值简化到同一个语法,才让人产生弱类型错觉。实际上写程序时类型方面的考量基本上与 c\c++无异,差异基本只在方便性,还有工程化时候的一些问题上。类型方面我倒觉得这几个语言里面,node 做的稍差一些。
    black11black
        8
    black11black  
    OP
       2020-12-20 09:27:26 +08:00 via Android
    @yzbythesea 确实,不过这个主要还是 py 网络 io 效率的问题吧,而不是写程序逻辑的层面。我只在 py 进行过 tcpip 层面的编程,剩下的语言都是更高抽象层级的开发了。不过现在 py 把 io 复用做完以后其实还可以,单核心节点类型的应用大概没啥问题。多核心拉胯则又是 gil,跟写也没啥关系
    zhuangzhuang1988
        9
    zhuangzhuang1988  
       2020-12-20 09:33:47 +08:00
    能搞定问题的就好了.
    TypeError
        10
    TypeError  
       2020-12-20 09:46:21 +08:00 via Android
    Python 强类型,c 才是弱类型

    我现在 go 都是当 Python 写,怎么写得舒服怎么来
    早写完早下班
    7S5cVx
        11
    7S5cVx  
       2020-12-20 09:46:30 +08:00 via Android   ❤️ 1
    写点 haskell 就 感觉可能没那么像了
    aneostart173
        12
    aneostart173  
       2020-12-20 10:07:02 +08:00
    python 什么时候不是强类型了。。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1185 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 23:11 · PVG 07:11 · LAX 15:11 · JFK 18:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.