未来比较有前景的8种编程语言,看看有没有你已经掌握的?

未来比较有前景的8种编程语言,看看有没有你已经掌握的?,第1张

目前,软件开发人员正在使用大量不同的编程语言,大多数工作需要熟悉很多技能,如Java、Java、PHP和C#。然而,随着软件需求的发展,新的和尚未被普遍接受的编程语言越来越突出,为程序员提供了针对某些工作的正确工具。

预测哪些语言最终会上升到编程语言排行榜的顶部是困难的,很多语言的受欢迎指数都呈上升趋势,以下是八种目前还没有大火的编程语言竞争力分析,看起来未来几年将在在企业中发挥巨大作用。(排名按照开源社区受欢迎程度,swift最受欢迎)

在2014年的苹果WWDC大会上首次亮相,旨在替代OSX和iOS开发的Objective-C语言。苹果于2015年12月,根据Apache许可证开源了该语言,这意味着所有源代码都可以编辑,程序可以在不归属于苹果的情况下运枣蚂行。

RedMonk分析师Stephen O'Grady表示,Swift与迅兄Ruby和Python这些更现代的语言相似,自发布以来一直享受着高速增长。苹果公司表示: Swift采用安全的编程模式,并添加了现代功能,使编程更容易、更灵活、更有趣。

Github上Star:39.8K

这种开源语言被视为比较成熟的语言(如Java和C)更快速、更易于使用。它已被许多企业使用:BBC、SoundCloud,Facebook以及英国政府获奖的GOV.UK网站。

Type在年初开始普及,上半年保持着强劲的增长势头。这反映在其技术出版商RedMonk的排名中,在第一季度Github的排名中位列17位,其中Erlang和Rust并列。

被描述为“Java的超集”,Type最大的优点就是程序员可以利用Angular,这是一个用于创建以Type编写Web应用程序的框架。

Github上Star:24.6K

由Mozilla创建,Rust 1.0于2014年发布,已经开发了多年。

与C和C ++在某些方面类似,Mozilla将其描述为一种专注于性能、并行化和内存安全的新型编程语言。通过从零开始构建语言并结合现代编程语言设计的元素,Rust的创建者避免了传统语言必须处理大量”baggage“(向后兼容性要求)。经过一段时间的发展,该语言正在引起程序员的兴趣。

Github上Star:22.9K

快速编译并与Java一起运行,Kotlin是一种静态类型的编程语言,可在Java虚拟机上运行,可编译为Java源代码。

由俄罗斯软件开发公司JetBrains创建凳昌埋,Kotlin正在Pinterest,Evernote,Uber和Coursera上使用。

Github上Star:16.6k

Clojure于2009年推出,是Lisp编程语言的一种方言。它是一种强调函数式编程的通用语言。它将代码视为数据,并具有宏系统,如其他“Lisps”。

它被成功应用到沃尔玛、Puppet实验室和各大软件公司。

Github上Star:6.5k

Haskell将自己称为“高级纯函数式编程语言”,1990年发布了第一个版本。它具有类型推理系统,主要在学术界内使用,但有一些行业应用案例,例如AT&T,BAE Systems,Facebook甚至Google的项目。

2016年,开始编制2020版本。

Github上Star:681

R提供用于统计计算的开源软件环境。

首先出现在1993年,R在数据驱动的职业之中,例如数据挖掘、统计学家甚至学者,受到了越来越多的欢迎。它提供了一个简单有效的方式来分析数据,尽管它不能与像Hadoop这样的大型架构相竞争。

普通程序员目前对R语言的接受程度一般,随着大数据以及人工智能的发展,R语言未来的发展前景还是很不错的。

Github上Star:240

在C语言入门了之后,我体会到了编程的乐趣,那是人生型厅姿最快乐的一件事情。当用创造世界的工具(编程语言和IDE),设计出虚拟世界的运行规则(程序),然后虚拟的世界就按照自己设计的法则运转时(程序将严格按照程序员的意愿去运行),那种乐趣是常人难以想象的!

程序员、用户、程序: 程序就是一个系统,类似于《信号与系统》中的系统,用户的输入类似于激励源,用户需要的就是系统的输出。这个系统的设计就是程序员的事情了,这个系统是否合理、平衡也是程序员的事情。还有一个原则,同样的输入只能得到的输出,不可能也不应该让程序帮助用户完成所有的功能。比如:搜索一个文件等,用户一定要告诉程序到底想要搜索什么样的东西,而不应该全部交由程序去分析用户的意图,那样的结果只会是徒劳。

一想到C#、VS、Windows就怒,在用户、程序 、 程序员、编程语言、集成开发环境、 *** 作系统之间,每个角色的职责和功能和权利,全部被Microsoft给颠覆了。

用户的需求是获得最安全的产品、最可靠的产品(无内存泄漏、内存写越界等问题)、运行速度高的产品(也就是程序)。但MS不这样做,MS觉得自己有必要绑定在一起销售的东西,就全部强加给用户,不管用户需不需要。比如Windows里的那么多后台服务、那么多的系统自带程序,用户想不要都不行,即使想删除也不行,因为删除起来不那么方便。可怜的用户,花了那么钱买一个商品,但最后即使是自己不想要的东西、可能给自己带来祸害的东西(比如没有必要的后台程序和服务),也没办法拒绝。"顾客就是上帝", 在IT行业,变成了"Microsoft就是上帝"。

同样,编程语言本来就是一个工具,为程序员更快速地设计规则(程序的运行规则)服务的。编程语言和IDE本来是给程序员服务的,程序员希望编程语言和IDE应该提供什么方便快捷的功能,那就是语言和IDE的发展趋势。题外话:但程序员自己应该完成的职责,不应该由编程语言去完成。比如,整个程序有没有内存泄漏问题,整个程序的效率高低问题,程序设计合不合理,这些应该由程序员去完成,而语言和IDE只应该提供一些辅助的分析工具和预防措施,而不能替代程序员的职责。

自然世界遵循的是对称的原则,程序也是如此,编程语言语言也是如此。有constructor,就有destructor;有malloc,就有free;有new就应该有delete;函数的设计也是如此,有QueryPlugin,就有ReleasePlugin;if else 分支里面的内容应该完全对称;

break,continue,return破坏了程序的顺序执行,伏镇破坏了函数的前后对称,所以很大一部分内存泄漏问题都是发生在这些地方。程序设计美观、对称,不太可能发生内存泄漏问题。

但Java把delete关键字去掉之后,世界全部变味了。对称破坏掉了,在Java里,当代码写的不是很好时,某块内存同样可能成为死内存。即使这块内存没人用,但Java的垃圾回收机制根本无法收集。谁申请的资源,谁负责释放。担心内存泄漏、因为内存管理太复杂,所以把内存 *** 作全部去掉,交由语言和IDE和内存回收工具去做,有点像中国古代的因噎废食。程序员的水平不够,应该靠培训、靠学习来解决,而不应该靠语言和工具来解决。

C#不往给程序员提供方便的卜绝自然规则描述语言入手,而把Java的破坏对称的招数直接照搬过来,看来也不见得很高明。

编程语言的本质就是描述自然,描述自然界运行的规律。面向对象语言的成功,就是因为她能更自然、直观、方便、快捷地描述自然界以及规律。比如,一个物体或生命本身的属性就是一个对象的数据,一个物体或生命的动作,就可以看成是一个对象的成员函数。自然界的生命体有生、有死,对应编程语言中的构造和析构函数。 如果仅仅是一个很简单的属性,对应语言中的基本数据类型;一个物体很多的数据类型,对应struct;如果此物体仅仅只有数据特性,那么struct完全足够(struct对应设计模式中的Compsite设计模式)。我们可以复制它。如果还有相关的 *** 作,那么就是一个类,类应该是一个比struct更高级的东西。 虚函数(也就是多态)的特性,表示自然界是可以进化的。由后来者(派生类)取代前人(祖先类)。正因为有了多态的特性,程序才可以更好的描述自然世界,更完美、更自然地模拟自然规则。程序里各个模块、各个类的功能对应自然界的各个物体和生命的功能和职责。互相之间和谐地工作,就组成一个平衡的世界。

所有的面向对象语言都可以用C语言改写。用C语言和汇编语言的年代,就像刀耕火种的年代,一人种1分地(程序的性能当然好啦),但耕种的速度慢。用面向对象语言的本质就是,用更符合事物本质的语言来描述事物,会牺牲一点点性能,但提高了耕种的速度(用面向对象的方式去设计整个系统,之后的扩充和移植都很方便,效率也会高一些。所以大型软件肯定不适合用C语言),结构上也清晰很多,维护和扩充肯定也方便的多。

在一切都变是MS说了算的年代,没有人关注编程语言发展的方向。语言只是给程序员使用的工具,但程序员自己根本不知道这是自己的基本权利,因为他们从来没有过这个权利,因为就连Stanley Lippman都没有这个权利。所有的程序员都在等着MS给大家设计好的语言,而这门语言是不是大家需要的已经没有人去关心了。所有的程序员都相信伟大的Microsoft可以带领他们往着美好的方向走去。前面是天堂,是地狱,没有人知道,所有人只知道,那是微软设计的蓝图.........

作为微软 NET框架的标志性语言 C#在微软的开发战略中扮演了一个非常关键的角色 随着该语言呈现出动态和功能编程语言的特性 其角色也将不断向前发展

在 年 月份 微软发布了C# 并引入了功能编程的概念 例如它支持以前在微软F#语言和语言集成查询(LINQ)中的lambda表达式 而目前正在开发的C# 将增加对动态类型的支持 微软最初发布C#的目的是响应Java语言 现在这个命令式 静态类型和面向对象编程语言正在呈现出更全面的趋势

微软技术专家 C#之父Anders Hejl *** erg最近花费了不少时间来谈论C#编程语言的未来发展方向 因为许多开发者对于C#这个他们非常喜爱的编程语言正在遵循的发展路线感到担忧

Hejl *** erg表示 从某种意义上说 C#正在变为一个混合编程语言 或者说是一个多维编程语言 它是面向对象的 它又支持功能编程 现在其 版还将是动态的 我认为 从其它不同的领域借鉴最好的编程思想是非常自然的事情 没有人规定一个编程语言必须是静态类型或者动态类型的 我认为它们都具有自己的长处

开发者无需担忧C#迷失方向

 余扰 在 年 月微软开发者大会上 当Hejl *** erg讨论动态类型如何能够简化接口处理和其它复杂的交互时 某些开发者们深表赞同 不过 也有一些程序员担忧C#会向新的方向分化

来自Euronav公司的技术主管Brian Morris博士表示 C#的一个令人失望之处是其复杂性不断增渗毁枯加 日渐增加的复杂性提高了其入门门槛 更糟糕的是 理解和维护其代码变得非常困难 开发人员盲目的去使用新功能 但实际上更好的解决方案是使用该语言一个更简单的功能 Lambda表达式就是这样一个功能

Ronald Jones是一个具有 年编程经验的老程序员 他目前已经熟练掌握了C# 他建议微软停止已经在进行的语言功能改变 Jones写到 微软每一次对C#进行修改 都会影响其普及范围 影响其稳定性 让人们不再希望将其作为未来开发时所选择的平台 编程语言不需每年都修改或增加其功能 企业难以接受一个像C#这样经常变化的语言

Hejl *** erg表示他知道经常修改语言功能所带来的危险 不过他表示 你不能对语言的底层经常进行修改 对于C#来说 它的核心设计是一个命令式的面向对象编程语言 你可以对其增加从功能编程语言和动态编程语言所借鉴来的功能 但是其核心设计并非发生改变

Hejl *** erg表示 他的团队一直比较注意为C#增加太多功能所带来的危险 他表明了其开发团队工作的连续性 该团队自 年以来每周举行三次交流会 一直到今天 我们依然在通过这种会议来进行交流 而且一直是在同一个会议室中

微软不会重C#轻VB

对于Visual Basic和C#之间的关系 很多开发者提出了质疑 Hejl *** erg表示这两个编程语言的相同之处将继续存在

Hejl *** erg表示 我们经常说某一个语言适合某一个团队 不过这种说法实际上未必丛洞就十分准确 看一下围绕这两个编程语言的开发者社区 你会发现两者之间实际没有太多不同 它们可以创建相同的应用 它们希望使用相同类型的功能 选择使用哪一个语言往往和其所处周围的环境和时期有关

来自纳什维尔的软件开发者Ron McCullough至今一直在使用VB 并且没有放弃它的打算 他通过电子邮件表示 使用VB进行了多年开发后 我发现C#非常难用 开发速度也非常慢 而且缺少我在VB中所看到的许多不错的功能

来自奥罗拉的加拿大程序员Rick Piovesan对此表示赞同 他表示 作为一个软件承包者 我更喜欢首先选用VB 只在具有某些需要的时候才选用C# 不过 现在客户项目越来越多的要求使用C# 不过令我吃惊的是 与VB相比 微软Visual Studio对C#的支持非常难用和简陋 我一直在不断查找我需要的功能到底在哪儿

无论是Piovesan还是McCullough都认为 微软倾向于推广C#的使用 不过Hejl *** erg表示 微软对这两门语言并不会厚此薄彼 一个功能如果被增加到C#中 那么也会被加入到VB中

lishixinzhi/Article/program/net/201311/15210


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12436573.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存