编程语言的二维分类法
想到一种从两个维度对编程语言进行分类的方法。横向的维度是从语言设计的角度,考虑设计思想、语法语义,按照语言特性的先进程度分为原始、过渡、现代三类。纵向的维度则从抽象层次和问题领域的角度分类。
原始 | 过渡 | 现代 | |
---|---|---|---|
函数式 | Lisp | Scheme、OCaml | Haskell |
网页脚本 | JavaScript | CoffeeScript、TypeScript | Dart |
脚本 | Basic | Lua、Python | Ruby |
高级 | Objective-C | Java、C# | Swift |
底层 | C | C++、D | Go |
汇编 | MASM | FASM、Parrot | LLVM |
我这个分类不以囊括绝大多数的编程语言为目的,只针对典型的有代表性的语言,而且选入这个表格的还综合考虑了实现方式、运行效率和流行程度三个方面。
可以看到编程语言在不断进化,让编程语言作为一种工具较少地占用大脑资源,提高可读性和开发效率,做更多的事情。让人们扔掉落后的语言,拥抱先进的语言是需要时间的。
为了提高编程效率,开发工具也取得了巨大的进步,我们有三大利器:集成开发环境(IDE)、包管理系统(PMS)和源代码管理系统(SCM)。
IDE推荐
C# | Visual Studio |
Java | IntelliJ IDEA |
Ruby | RubyMine |
Go | LiteIDE |
Dart | DartEditor |
Swift | Xcode |
包管理系统列表
命令 | 网站 | |
---|---|---|
Ruby | gem | http://rubygems.org/ |
Python | pip | https://pip.pypa.io/ |
JavaScript |
npm |
https://www.npmjs.org/ |
bower |
https://bower.io/ | |
C# | NuGet | http://www.nuget.org/ |
Dart | pub | http://pub.dartlang.org/ |
CentOS | yum | http://yum.baseurl.org/ |
Mac OS | brew | http://brew.sh/ |
Windows | choco | http://chocolatey.org/ |
哈哈,估计很多人还不知道Chocolatey,我也是最近才发现。
构建工具
把源文件组装成可供使用的产品。
C# | MSBuild |
C | make |
Ruby | rake |
JavaScript | jake, grunt, gulp |
Python | Shovel |
Java | Ant |
源代码管理
最推荐的就是Git了,有了这些语言和工具,程序员的幸福指数已大幅提高!
【推荐】2025 HarmonyOS 鸿蒙创新赛正式启动,百万大奖等你挑战
【推荐】博客园的心动:当一群程序员决定开源共建一个真诚相亲平台
【推荐】开源 Linux 服务器运维管理面板 1Panel V2 版本正式发布
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何通过向量化技术比较两段文本是否相似?
· 35+程序员的转型之路:经济寒冬中的希望与策略
· JavaScript中如何遍历对象?
· 领域模型应用
· 记一次 ADL 导致的 C++ 代码编译错误
· 独立项目运营一周年经验分享
· 一款开源免费、通用的 WPF 主题控件包
· .NET 9 + React 开发的企业级后台权限管理系统,文档齐全,轻松上手
· 神解释:为什么程序员怕改需求?
· 【定时任务核心】究竟是谁在负责盯着时间,并在恰当时机触发任务?