0

0

个人充电,想学一门替代python的语言?

php中文网

php中文网

发布时间:2016-06-06 16:22:56

|

1512人浏览过

|

来源于php中文网

原创

本身非程序猿,不过工作和学习中用电脑非常多,以前一直用Python,而python也让我很满意,样样都能做,从管理系统到自动化执行程序,再到网上抓资料,真的是很棒,关键是写东西非常快,但最近突然觉得有点腻味了,尤其是想真正写个正经程序的时候,发现那性能简直让人吐血。
当然,这多半是我战斗力太差的缘故,毕竟不是专业搞计算机的。而性能高用得广的语言,Java和C#我都是一窍不通,那个C++我懂个皮毛,基本上就是属于最简单的小程序能写,写个稍复杂的程序就会各种崩的层次,最关键的是这玩意写东西实在是太慢了啊啊啊啊。
最近闲的蛋疼,想学一门性能强一点,程序对资源的占用不要那么夸张的语言,具体来说就是最好是静态语言,最好能带上能用的GC,最好是新一点的,满足我折腾的欲望。
噢,这语言开发效率不能太低了啊,毕竟是个人用的,实在无力去搞一门像C++那样可以造歼星舰,不过在开工之前还得自己提炼矿石的语言。
请各位高手推荐,谢谢。

迅易年度企业管理系统开源完整版
迅易年度企业管理系统开源完整版

系统功能强大、操作便捷并具有高度延续开发的内容与知识管理系统,并可集合系统强大的新闻、产品、下载、人才、留言、搜索引擎优化、等功能模块,为企业部门提供一个简单、易用、开放、可扩展的企业信息门户平台或电子商务运行平台。开发人员为脆弱页面专门设计了防刷新系统,自动阻止恶意访问和攻击;安全检查应用于每一处代码中,每个提交到系统查询语句中的变量都经过过滤,可自动屏蔽恶意攻击代码,从而全面防止SQL注入攻击

下载

回复内容:

A Pythonista's irresistible attraction to Rust
除了 GC 之外其它都满足,因为 GC 对程序效率的影响太大啦。当然,也不用你手动管理内存的申请和释放的。 个人充电,想学一门替代python的语言?
好吧,不抖机灵,题主你可以感受一下这个 golang.org/ (可能要翻墙,グレート・ファイアウォール罪大恶极!) Scala可以一战。

在一年多以前,我还是Python的死忠,而现在,我已经彻底投奔Scala了。

原因非常简单,Python的大部分优点Scala都有,并且做得更好。

  • Scala的Collection库相比于Python简直不知道高到哪里去了(就体系来说,恐怕也就Haskell可以与之一战。然而,Scala的Collection库要实用的多)。以前一直觉得Python的list comprehension非常好用,然而Scala有更好的(源于Monad)。
  • Scala代码非常简洁,拥有基于流的类型推导。简单来说,就是动态语言的手感。
  • Scala提供了编译期的类型安全。这是静态语言相比动态语言的优势,而且和类型推导配合,几乎没有增加书写成本
  • 良好的生态系统。其实是JVM的生态系统,来自Java的福利。
  • 运行效率足够。Scala的运行效率和Java在一个量级上,很大程度上取决于你代码的写法(类似于C++之于C),你总是有办法写出和Java代码一样高效的模块(如果真的需要的话)。
  • 良好的编程效率。我个人体验来说,Scala的编程效率肯定是超过Python的,虽然这种体验是建立在自己有足够FP编程经验之上的。实际上Scala的学习同样有助于更好的编写Python代码

- - -

当然,Scala也有一些缺点

  • 学起来有那么一点难。如果之前没有接触过FP可能一开始会误入歧途。我总是看到Java程序员用Scala写的难以直视的Java代码,每次看到这种情况我就感觉到非常可惜,他们无法享受到Scala带来的福利
  • 编译慢。最直观的感受就是MacBook的续航受到了严重的挑战(编译CPU消耗大,持续时间长)
  • JVM的生态圈还是不如Python全面的。科学计算方面,JVM上并没有成熟的社区。

- - -

更新:

评论里面有人建议上代码,当然,我是反对的。我觉得对于Scala的评判完全无法基于第一感觉而来(比如语法),我个人最初接触scala的时候完全感受不到这语言的优雅,因为很多feature你一开始是不能理解的(有一些甚至于到现在都还不能驾驭)。

说起来,我个人转向Scala完全是非常偶然的因素——使用Spark的需要。只不过在使用的过程中Scala给了我意外的惊喜。要不然,我是断然不会轻易往只有JVM支持的语言上投入这么多精力的。

如今,我可以以一个过来人的身份告诉大家,在Scala上的投入是值得的,它确实非常优秀)。

- - -

对于其它一些推荐的语言,我也简单比较一下:

  • Rust。如果我现在想再学一门语言,那毫无疑问,那肯定是Rust。因为我觉得它能cover掉Scala的大部分feature,也具有独特的优点。
  • Go。相比之下,这是一门比较简单的语言,我觉得如果不是有特定的项目驱动,并没有刻意学习的必要。要知道,Go是不支持泛型的。如果你当初写python的时候是list-comprehension到处用的话,断然是不能接受的。
Go语言带 GC,各方面都符合你要求。不过我更喜欢 Rust语言,不过 Rust 不带 GC。 Erlang不算新,性能不赖,功能丰富,速度(特别并发能力)超群。同理Haskell啥的类似,可造歼星舰武器合发动机,不太能造壳儿。

Lisp/Clojure 萌萌哒语言。可以做的事情很多,模块啥的也很多。Lisp家族方言特别多,其中最容易见到的是elisp(重型歼星舰Emacs的插件系统)和Clojure(JVM解释版,轻松勾搭Java)


ECMAScript(javascript是其“方言”)解释执行,执行层有V8有JIT所以速度可观,啥都能造,只是变种啥的太多了,版本一变新特性也层出不穷。

Lua 轻量级解释型,解释器就一c库,随时挂靠C/C++,自带GC。

Rust 新得很,版本间变化较大,轮子不算多但是覆盖面不错。用作用域控制内存而没有使用GC,但仍能很好地自动管理内存使用。被视作C++的接班人之一。 仔细地看了若干遍你的需求,我决定给你推荐Haskell。下面详细分析:

想学一门性能强一点
Haskell在使用GHC编译的情况下性能普遍很赞,这里有一个大概的benchmark: wiki.haskell.org/Benchm

最好是静态语言,最好能带上能用的GC,最好是新一点的
Haskell是静态强类型,Haskell有GC,Haskell上世纪90年代才出现,这么多年一直在加入新的东西

满足我折腾的欲望
毫无压力,Haskell以耐折腾闻名世界,再能折腾的人在Haskell上也能得到满足。有那么一大群精力过剩的人甚至折腾了它十多年

这语言开发效率不能太低
熟练Haskell以后,Haskell的高抽象带来非常高的开发效率。以我为例,写一个简单的lambda calculus interpreter,用Haskell大概只需要100行多一点代码,C++的话至少三百以上,用Haskell的耗时是C++的一半以下。这还是用C++时使用了简单写法的情况,如果用和Haskell一样麻烦的做法搞的话C++代码量和时间至少翻倍。(其实这个例子举得比较无赖-_-)(补充一下,这里的实现里是手撸了一套Parser Combinator的。。。调库的话就超级短了)

毕竟是个人用的,实在无力去搞一门像C++那样可以造歼星舰,不过在开工之前还得自己提炼矿石的语言
恰恰相反,在使用Haskell造歼星舰之前,你需要担心的不是得自己提炼矿石,而是Haskell帮你准备好的零件太多了你得自己好好挑选决定用哪个。

额外说一点学Haskell的好处。学过Haskell以后,学其他语言普遍有非常非常非常大的速度加成,而且Haskell学的越深入,这个加成就越惊人。。。 Crystal
满足你所有需求了. 静态, GC, 新, ruby的语法, 开发起来会很爽. 关键的是, 学习成本还很低. (跟rust比的)
当然, 如果你想要学完了之后能用来干活, 可以考虑kotlin.
同样满足你的这些需求. 人活着不学lisp 那和咸鱼有什么区别? Nim Programming Language
。。。。。 非常好奇楼主你到底写了什么东西?能够让Python都慢到让人吐血的程度。
我靠Python混饭吃这些年,还真没遇到语言的性能门槛。也可能是我做的项目都太low了。
先要确定不是你本身的写法有问题,否则不论你是换Java, C#,C++甚至C乃至汇编,也还是一样会慢到让你吐血的。写法不对,这不是换语言能解决的啦。

如果排除了写法和数据结构设计问题,楼主有木有考虑换个性能好点的机器来跑呢?这可比换语言代价小哦。

相关文章

python速学教程(入门到精通)
python速学教程(入门到精通)

python怎么学习?python怎么入门?python在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Java 桌面应用开发(JavaFX 实战)
Java 桌面应用开发(JavaFX 实战)

本专题系统讲解 Java 在桌面应用开发领域的实战应用,重点围绕 JavaFX 框架,涵盖界面布局、控件使用、事件处理、FXML、样式美化(CSS)、多线程与UI响应优化,以及桌面应用的打包与发布。通过完整示例项目,帮助学习者掌握 使用 Java 构建现代化、跨平台桌面应用程序的核心能力。

37

2026.01.14

php与html混编教程大全
php与html混编教程大全

本专题整合了php和html混编相关教程,阅读专题下面的文章了解更多详细内容。

19

2026.01.13

PHP 高性能
PHP 高性能

本专题整合了PHP高性能相关教程大全,阅读专题下面的文章了解更多详细内容。

37

2026.01.13

MySQL数据库报错常见问题及解决方法大全
MySQL数据库报错常见问题及解决方法大全

本专题整合了MySQL数据库报错常见问题及解决方法,阅读专题下面的文章了解更多详细内容。

19

2026.01.13

PHP 文件上传
PHP 文件上传

本专题整合了PHP实现文件上传相关教程,阅读专题下面的文章了解更多详细内容。

16

2026.01.13

PHP缓存策略教程大全
PHP缓存策略教程大全

本专题整合了PHP缓存相关教程,阅读专题下面的文章了解更多详细内容。

6

2026.01.13

jQuery 正则表达式相关教程
jQuery 正则表达式相关教程

本专题整合了jQuery正则表达式相关教程大全,阅读专题下面的文章了解更多详细内容。

3

2026.01.13

交互式图表和动态图表教程汇总
交互式图表和动态图表教程汇总

本专题整合了交互式图表和动态图表的相关内容,阅读专题下面的文章了解更多详细内容。

45

2026.01.13

nginx配置文件详细教程
nginx配置文件详细教程

本专题整合了nginx配置文件相关教程详细汇总,阅读专题下面的文章了解更多详细内容。

9

2026.01.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
最新Python教程 从入门到精通
最新Python教程 从入门到精通

共4课时 | 0.6万人学习

Django 教程
Django 教程

共28课时 | 3.1万人学习

SciPy 教程
SciPy 教程

共10课时 | 1.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号