学习除Python之外的脚本语言

zol*_*i2k 9 python scripting programming-languages

曾经有人告诉我,程序员倾向于正确地学习一种脚本语言而忽视或不喜欢其他脚本语言.你有类似的经历吗?我使用Python作为我的脚本选择已有几年了,但是,我确信有许多现有的和新兴的语言可以给Python主义留下深刻的印象.除了Python之外,你能推荐一些有趣且有用的脚本语言吗?

Jes*_*lon 22

看,Python几乎拥有你需要的(在我看来)应用程序编程.您可以编写从协议栈YouTube,从媒体播放器3D游戏和图形的任何内容,您将获得出色的性能.

它与其他一些语言占据相同的位置:

  • C,您可以访问几乎所有有用的C/C++库.我选择在C语言中用Python编写内容的唯一原因是因为我需要性能提升.即便如此,我可能会先用Python原型化它; 当您的应用程序使用Python编写时,修改设计要容易得多.

  • Ruby,没有充分的理由使用Ruby而不是Python.

  • Perl,它非常适合某些特定类型的任务,但如果你是一致的,可读的和理智的编程风格的粉丝,你会讨厌查看大约95%的现有Perl代码.我不知道这是因为在Perl中编程的人往往是(根据我的经验)系统管理员和程序员第二,或者因为Perl的设计理念允许多种不同的方式来实现相同的效果.

鉴于此,我会说,如果你要学习另一种语言,请确保它能让你有能力做一些新的事情.我建议您学习两种脚本语言:

  • Bash,使用for循环和管道的组合来操作文件系统真是高兴了.Bash编程不会比你已经用Python做的更多,但如果你是*nix用户,你将在日常工作效率方面获得巨大收益.

  • Javascript,能够编写基于浏览器的应用程序是一项有用的技能,几乎肯定是将来大多数应用程序的完成方式.Javascript /浏览器环境将在未来几年内获得一系列功能,从音频处理到OpenGL图形,一些非常快速的引擎要么已经投入使用,要么已经可用(如V8,它支持Chrome浏览器和将Javascript编译为本机字节代码.)您是否看到Quake2移植到WebGL

我的回答基本归结为:首先,学习有用的语言.


med*_*iev 6

我建议学习Haskell和Lisp的方言,如Scheme或Common Lisp,如果你掌握了其中任何一个,你将深入了解如何通过功能范例完成任务,它也将帮助你的Python.

以下是我学习的范例分类的一些语言:

命令/程序语言:

  • C

功能范式语言:

  • 哈斯克尔
  • Common Lisp/Scheme

类似的面向对象语言:

  • 红宝石
  • ECMAScript中

其他:

  • Perl的

我建议你远离PHP,除非你真的需要工作.你可能想要回到Python.


hec*_*ckj 6

  • Ruby - 它使用块启用和执行的功能非常有趣,而且对于基于python的编程来说非常陌生

  • Erlang - 函数式语言有很多有趣的例子,它肯定会让你的头脑以不同的方式工作(以一种好的方式)

  • Javascript - 是的,我很认真.尽管使用这种原型语言需要花费大量的时间,但它与原型设计有一些非常有趣的事情,与Ruby和/或Python略有不同.而且大量的人正在投入大量资金使Javascript成为一种非常快速的脚本语言.


Nor*_*sey 5

脚本语言非常相似,从一种脚本语言转移到另一种脚本语言的边际效益通常很低.因此,人们不会费心去学习不止一个就不足为奇了.尽管如此,在我的职业生涯中,我已经度过了我的主要脚本语言(大致按时间顺序排列)

  • AWK
  • TCL
  • 图标
  • KSH
  • LUA

我也使用过Perl和Python,但从来没有发现它们更适合转换.

如果你想查看另一种脚本语言,我推荐Lua,因为

  • 它功能强大且非常简单,具有此处所有语言的最佳功率重量比.

  • 与Tcl一样,它从一开始就被设计为无缝地合并C代码.该设施工作得非常好,并且极大地扩展了它有用的问题范围(参见Adobe Lightroom,魔​​兽世界,Garry的Mod,CHDK).

  • 该实施具有高度高效和精湛的工程设计.如果您想了解语言如何实现,它将回报仔细研究.

但是,如果您的目标是学习一门新语言以扩展您的思想,那么除了脚本语言之外,还要学习其他内容.例如,学习Haskell并获取一些令人兴奋的想法(许多人从Guido偷走的相同来源窃取),或学习C并真正理解硬件上发生的事情.