找回密码
 立即注册
搜索
查看: 15230|回复: 107

[软件] python好方便,如果C++像python这么友好就好了

[复制链接]
     
发表于 2024-8-7 20:20 | 显示全部楼层 |阅读模式
本帖最后由 闪雷可达鸭 于 2024-8-7 20:22 编辑

项目里第一次使用python
除了一开始不喜欢python的换行决定作用域,越写越舒服,一切皆对象,函数也是一等公民,比C++友好的多。
如果C++像python这么友好就好了
回复

使用道具 举报

     
发表于 2024-8-7 20:25 | 显示全部楼层
又不是没有成本
回复

使用道具 举报

     
发表于 2024-8-7 20:27 | 显示全部楼层
写些一次性的东西还好,没有类型提示真写不了工程

—— 来自 S1Fun
回复

使用道具 举报

     
发表于 2024-8-7 20:27 | 显示全部楼层
动态类型一把梭就是爽,后人有后人的智慧
回复

使用道具 举报

     
发表于 2024-8-7 20:28 来自手机 | 显示全部楼层
有得必有失啊
回复

使用道具 举报

     
发表于 2024-8-7 20:29 | 显示全部楼层
胶水语言
排查问题的时候有得烦的
回复

使用道具 举报

     
发表于 2024-8-7 20:32 来自手机 | 显示全部楼层
本帖最后由 我是蓝石头 于 2024-8-7 20:33 编辑

因为非科班出身的MLer太多,python已经快大一统ML领域了,Java落泪,明明是我先来的。jpg

—— 来自 鹅球 v3.1.88.3-alpha
回复

使用道具 举报

发表于 2024-8-7 20:36 | 显示全部楼层
有啥成本....主楼说的也就到编译器parser的部分.

根本还没到底层那些关系性能的部分.

至于编码规范排查问题啥的,这都是可以靠人为定纪律的.
哪怕是用C的公司也要求一大堆.
回复

使用道具 举报

头像被屏蔽
     
发表于 2024-8-7 20:39 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2024-8-7 20:42 | 显示全部楼层
百姫 发表于 2024-8-7 20:36
有啥成本....主楼说的也就到编译器parser的部分.

根本还没到底层那些关系性能的部分.

成本应该主要还是指人力成本和管理成本

水平次一些的人写的python代码是真的不能看。静态类型的会好一些,毕竟条条框框多一些,基本都是在固定范式内堆屎。

管理成本就是你提到的人为定纪律了,能做好code review等等条条框框流程的组织并不多,因为也是有成本的。
回复

使用道具 举报

     
发表于 2024-8-7 20:46 | 显示全部楼层
pyjq 发表于 2024-8-7 20:27
写些一次性的东西还好,没有类型提示真写不了工程

—— 来自 S1Fun

从3.5版本就开始有type hints了 您这有点火星救援了
回复

使用道具 举报

     
发表于 2024-8-7 20:58 来自手机 | 显示全部楼层
动态类型拓宽了可读性的上下限
回复

使用道具 举报

     
发表于 2024-8-7 20:59 | 显示全部楼层
现在编程语言最大问题是写给电脑看的,同时还想让人看得懂
这两者就是冲突的需求

以后的编程语言 完全可以分别向这两个方向进行特化发展
回复

使用道具 举报

     
发表于 2024-8-7 21:00 | 显示全部楼层
python像是高人气预组魔法包大全,买几个来直接乱丢火球掌握雷电,C++是一大堆说明书能看睡着的散件,可以极限魔改,但瞎改容易把自己炸死
另外,有些python代码理解难度比底层C/C++黑魔法代码都离谱多了
回复

使用道具 举报

     
发表于 2024-8-7 21:02 来自手机 | 显示全部楼层
今天还用py写了点脚本搬💩

—— 来自 OnePlus KB2005, Android 14上的 S1Next-鹅版 v3.0.0.81-alpha
回复

使用道具 举报

发表于 2024-8-7 21:05 来自手机 | 显示全部楼层
所有魔法都是有代价的

—— 来自 Xiaomi 23049RAD8C, Android 14上的 S1Next-鹅版 v2.5.2-play
回复

使用道具 举报

     
发表于 2024-8-7 21:26 | 显示全部楼层
ts能工程化
py当然也能工程化
回复

使用道具 举报

     
发表于 2024-8-7 21:32 来自手机 | 显示全部楼层
python输出的json格式的文本要专门设置一下,不然那个格式不标准,放到其他语言不能直接解析,我这儿的ml仔经常给我们整这类的

—— 来自 鹅球 v3.1.88.3-alpha
回复

使用道具 举报

     
发表于 2024-8-7 21:38 来自手机 | 显示全部楼层
程序员两大爱好,让静态类型更动态,和让动态类型更静态

—— 来自 鹅球 v3.0.0.82-alpha
回复

使用道具 举报

     
发表于 2024-8-7 21:42 | 显示全部楼层
为何不用nodejs
回复

使用道具 举报

     
发表于 2024-8-7 22:48 | 显示全部楼层
osborn 发表于 2024-8-7 21:32
python输出的json格式的文本要专门设置一下,不然那个格式不标准,放到其他语言不能直接解析,我这儿的ml仔 ...

我构造的一个数据集,主要是几百万的C代码、汇编代码,放到json里
写读json的代码极其简单,就是json.dump和load,按理说不可能写错,而且json.dump应该也是自动转义的……结果这数据集里有3%左右的的json解析会报错不出来
不知道到底是我傻了还是拿python解析json真的可能弹出来个计算器
回复

使用道具 举报

     
发表于 2024-8-7 23:03 | 显示全部楼层
Gazzz 发表于 2024-8-7 20:46
从3.5版本就开始有type hints了 您这有点火星救援了

如果不是严格模式,type hint跟实际类型不一致那能爽到死
回复

使用道具 举报

头像被屏蔽
     
发表于 2024-8-8 00:47 来自手机 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2024-8-8 05:50 来自手机 | 显示全部楼层
C++岁月静好,是因为有GCC/LLVM/MSVC帮你负重前行不开玩笑的说,楼主可以试试rust

—— 来自 鹅球 v3.0.86-alpha
回复

使用道具 举报

     
发表于 2024-8-8 05:54 | 显示全部楼层
非常舒服,拿来做点小工具比我想的还好用,甚至简单写个小小的gui的方便程度都快比autohotkey那边写gui还方便了,这是我没想到的
回复

使用道具 举报

     
发表于 2024-8-8 07:58 来自手机 | 显示全部楼层
有没有带类型的python,js那边有ts,普及率还挺高的

—— 来自 鹅球 v3.1.88.3
回复

使用道具 举报

头像被屏蔽
发表于 2024-8-8 08:10 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2024-8-8 08:17 | 显示全部楼层
你口中好用的python是完全用C实现的,写点脚本别觉得自己就掌握了编程的本质了。学吧,学海无涯。
回复

使用道具 举报

     
发表于 2024-8-8 08:25 来自手机 | 显示全部楼层
牢大别肘我了 发表于 2024-8-8 08:17
你口中好用的python是完全用C实现的,写点脚本别觉得自己就掌握了编程的本质了。学吧,学海无涯。 ...

感觉不如石器

—— 来自 鹅球 v3.1.88.3
回复

使用道具 举报

     
发表于 2024-8-8 08:47 | 显示全部楼层
黎恩.奥斯本 发表于 2024-8-8 08:10
前面有提到3.5就开始有type hints

hint的类型、传入的类型、实际运行时的类型三个可能根本不一样,不像TS那样强制起来Python的type也就这样了
回复

使用道具 举报

     
发表于 2024-8-8 10:32 | 显示全部楼层
type hints?哈哈哈哈
回复

使用道具 举报

     
发表于 2024-8-8 10:32 来自手机 | 显示全部楼层
写的时候一时爽,后续部署和维护有的折腾.
回复

使用道具 举报

     
发表于 2024-8-8 12:27 | 显示全部楼层
Python非常方便,基本是个瑞士军刀一样的工具,很多场景下都有现成的库可以用。C++虽然以性能著称,但是处理一些日常鸡零狗碎的任务就太费劲了,在真正使用前都得和各种编译器,平台库摔跤几个回合才能算热身,更重要的是C++的标准库也有很多暗坑,尤其是各家编译器平台的不同实现,由于历史和设计原因它暴露了太多底层的细节,而且现在里面塞的东西太多,要真正用好实在不容易。
回复

使用道具 举报

     
发表于 2024-8-8 12:45 | 显示全部楼层
天气姐姐 发表于 2024-8-8 07:58
有没有带类型的python,js那边有ts,普及率还挺高的

—— 来自 鹅球 v3.1.88.3

要手动写

foo(x: str)
ide就会知道x 是个字符串
回复

使用道具 举报

     
发表于 2024-8-8 13:11 | 显示全部楼层
痴货 发表于 2024-8-8 12:27
Python非常方便,基本是个瑞士军刀一样的工具,很多场景下都有现成的库可以用。C++虽然以性能著称,但是处 ...

C/C++官方不支持构建易用的包管理工具,由于历史遗留问题,处理其错综复杂的依赖关系太难了,工开始就交付一套基础工具箱,内含扳手与螺丝刀,用户需从底层构建起,亲手组装所需功能

Python类似模块化的工具,pip包管理器提供了丰富库,用户仅需选取合适的“拼图”(各种库),将它们组合拼接,便能迅速搭建出高效实用的应用工具

模块化组装,小学生都会……

C/C++有哪些专注于共享、构建、操作方便的包管理器?个人用conan的
回复

使用道具 举报

发表于 2024-8-8 13:18 | 显示全部楼层
所以PyPy怎么样了,这么多年还是继续CPython的老路么?

回复

使用道具 举报

     
发表于 2024-8-8 13:28 来自手机 | 显示全部楼层
你写过大一点的py web项目就知道维护起来有多屎了。
ML项目更加屎,调试地狱。
当然小工具用py是很爽的,不需要性能出活也快,快乐的一比。

— from S1 Next Goose v3.1.88.3
回复

使用道具 举报

     
发表于 2024-8-8 13:38 | 显示全部楼层
普通论坛用户 发表于 2024-8-8 13:11
C/C++官方不支持构建易用的包管理工具,由于历史遗留问题,处理其错综复杂的依赖关系太难了,工开始就交 ...

除了那个应该也没听过其他了,最常用的还是直接源代码构建,贴近硬件平台就很难保证二进制兼容,只能从源代码根据平台编译
回复

使用道具 举报

     
发表于 2024-8-8 13:39 | 显示全部楼层
普通论坛用户 发表于 2024-8-8 13:11
C/C++官方不支持构建易用的包管理工具,由于历史遗留问题,处理其错综复杂的依赖关系太难了,工开始就交 ...

vcpkg,conan 和xrepo

和py比不大好用。最后还是需要手动控制项目需要的各种包
回复

使用道具 举报

发表于 2024-8-8 14:07 | 显示全部楼层
不能既要有要

要动态类型和垃圾回收,那就没速度
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|上海互联网违法和不良信息举报中心|网上有害信息举报专区|962110 反电信诈骗|举报电话 021-62035905|Stage1st ( 沪ICP备13020230号-1|沪公网安备 31010702007642号 )

GMT+8, 2024-9-21 02:44 , Processed in 0.125321 second(s), 6 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表