前端框架:比较RealWordcomBenchmarks...哪种编程语言对未来编码的影响最大?这取决于你问谁。事情总是在变化。某些语言,如Java和R,仍然处于最前沿。其他流行语言仅在几年前才降温,它们被新兴的替代语言吸引了注意力,这些替代语言更容易解决当今企业编程魔法所面临的各种问题。有些事情已经改变,有些没有。显而易见:自动化工作流程仍然是语言创造者的最大责任。这是我们的顶级编程语言列表,它们将(至少目前)定义编码的未来。1.以太坊很多人认为以太坊和比特币是金钱,是用来买咖啡的东西,或者可能是非法的东西。但是,如果你除去炒作和贪婪,就会发现其中埋藏着一种编程语言,可以定义相当复杂的计算来完成。以太坊语言甚至是图灵完备的,至少如果你接受节点可能对代码运行的时间有时间限制的话。以太坊的创造者认为,每个花费硬币的人可能想要做的不仅仅是将财富从所有者A转移到所有者B。他们认为,各方可能希望构建详细的合同,其中包含关于何时或何时转移财富或转入。不要动,这些都会用计算机语言表达出来。例如,一个30年的抵押贷款可以表示为计算每月还款额的代码,并且只有在360还款后才取消留置权。这些用代码编写的合同是经济和商业的未来,理解语言对于从现在开始进行交易至关重要。要点:与货币体系紧密结合,这需要高度重视正确性和真实性。头痛:与货币体系的紧密结合带来监管和偏执。2.ReactJSXReactweb应用程序在技术上是用JavaScript编写的,但许多模板是用JSX构建的,JSX是JavaScript和HTML的奇怪组合,无疑是由对两者都非常熟悉的人创建的。为了节省时间,省略了一些烦人的标点符号,并简化了其他结构。但是,如果您打算使用React或其同类软件(例如Vue或也使用JSX的下一代Web应用程序之一)进行编程,则需要掌握这种混合技术。这意味着知道何时说JavaScript以及何时输入HTML。它是如此不同,以至于它也可能是另一种语言。亮点:Shorthand可让您制作互连的Web应用程序。头痛:它既不是HTML也不是JavaScript,所以你会经常感到困惑。3.TensorFlow机器学习无处不在,TensorFlow是探索它的主要开源包之一。从技术上讲,TensorFlow是用C++、Python和CUDA语言混合编写的。但是您编写的代码将主要由对TensorFlowAPI的调用组成,并且可以使用大多数主要语言(包括Java和JavaScript)完成。您可以选择自己喜欢的语法和编译器,但困难的部分是教您的代码从数据中学习。您必须了解如何构建模型,代码将反映您对系统的期望。了解API的这种结构是创造天才的第一步。亮点:触手可及的强大功能可以解决AI中的难题。头痛:结果往往是诡异的黑盒子,你可能对它们的作用感到困惑。4.TypeScript它看起来像JavaScript,旨在与浏览器和Node.js应用程序中的JavaScript具有几乎相同的功能。在编译阶段,编译器甚至将其转换为JavaScript。那么为什么要打扰呢?当没有操作导致未定义的行为时,TypeScript提供了令许多程序员满意的类型安全,这种类型使Java代码更清晰,定义更好。开发人员在这里没有对JavaScript做太多改动;他们只是添加了一个层来确保数据类型对齐,这样您就可以在代码运行之前捕获一些最简单的错误。它是流行的Angular框架的基础,并且越来越受欢迎,因为您通常可以将它放在需要JavaScript的任何地方。亮点:转换为JavaScript使其广泛适用。头痛:并不是每个人都能看到创建类型良好的代码所需的额外工作的好处。5.R“大数据”一词可能不会像几年前那样在销售报告中引起轰动,但对统计数据的需求继续主导着许多业务决策。如果有的话,实践现在比以往任何时候都更加集成,使得R这种统计分析语言比以往任何时候都更加重要。R是一种由统计学家和科学家设计的编程语言,旨在简化他们的工作。它具有数据分析中使用的大部分标准功能,并且许多最有用的统计算法已作为可自由分发的库实现。数据科学家完成了数据驱动科学的大部分工作。尽管它是一种用于创建任意函数的编程语言,但许多开发人员在其IDE中将R用作处理数据的高性能暂存器。这使它成为电子表格和图形计算器之间的混合体。RStudio和RCommander是两个流行的前端,允许您加载数据、修改数据并将其输出为图表和表格。他们使它不再是一种编译和运行的语言,而是更像是一个可以在其中工作的交互式世界。重点:用于选择数据子集并对其进行分析的巧妙表达。头痛:主要针对桌面,而不是Hadoop等技术主导的大数据世界。6.Java8几年前,Java团队环顾了Java虚拟机(JVM)的世界,发现许多程序员使用JVM来运行的不仅仅是Java。适应这种趋势的方法之一是在Scala中编写代码,将函数式方法的所有功能、规则和选项结合起来,链接到网络上流动的数十亿个Java档案。现在,Java程序员无需切换到单独的语言即可获得函数式解决方案的所有好处。Java8是很好的旧Java,但Java8又是新的,具有并行化代码的额外功能机制。当然,您不必使用并行性。您可以坚持使用旧的Java,因为它仍然有效。但是,如果您不使用较新的功能,您将失去为JVM提供更多结构以优化代码执行的机会。您失去了从功能上思考和编写更干净、更快、错误更少的代码的机会。重点:Lambda表达式和并发代码。头痛:让开发人员想要举手使用Scala的那种喋喋不休的感觉。7.GoGo针对现代世界进行了调整,其中大部分智能驻留在服务器上,服务器上挤满了成千上万的客户端,进行数百万次API调用。它意味着速度快、重量轻,并且具有足够的功能来完成工作,而不会妨碍其他选择。语言不多,这就是重点。谷歌想要一个基本的解决方案。它抛弃了许多在其他语言中发现的更聪明的想法,并且仍然足够准确,正如一位创作者所说,“让程序员牢牢掌握”。Go中没有复杂的抽象或巧妙的元编程结构——只有用简单语法指定的最重要的函数。这可以使团队中的每个人都更轻松,因为当其他人从语言规范的更深层挖掘出一个巧妙的想法时,无需担心。亮点:只是一种用于处理数据的简洁明了的语言。头痛:有时您需要一个不在这里的聪明功能。8.CUDA最初,显卡只是为游戏玩家生成炫目图像的东西,专门用于处理数百万个三角形的硅芯片,因此可以幻想出数十种精巧的武器来欺骗死亡,面对危险并炸毁死亡和危险。但在某处,一些聪明的程序员在后台观看并看到了通过释放游戏精心设计的计算火力来加速他的代码的机会。如今,许多显卡可以模拟复杂的科学模型或运行复杂的人工智能算法。如果您的计算需求很大,那么CUDA语言是释放图形处理单元(GPU)能力的好方法,可以以杀死僵尸或机器人以外的方式工作。您甚至可以在云中租用它们的机架来解决您的问题。使用CUDA的主要挑战是学习识别算法的并行部分。找到它们后,您可以设置CUDA代码以使用视频卡的所有固有并行性迭代这些部分。一些工作,如开采比特币,是直截了当的,但其他挑战,如分类和分子动力学,可能需要更多的思考。科学家喜欢使用CUDA代码进行大型多维模拟。亮点:非常快的性能,至少对于并行代码而言。头痛:确定最容易并行运行的代码部分并不总是那么容易。9.YAML如果你问大多数程序员,他们会选择一种编程语言。这是一种标记语言,然后是“另一种”。然而,随着越来越多的代码层被这些曾经微不足道的文件中指定的参数控制,您会在更多地方发现YAML配置文件和它们的JSON格式的同类文件。他们可能是编程游戏中的棋子,但任何试图让他们的Node.js堆栈做正确事情的人都会花时间在他们的YAML文件中的密钥上苦苦思索。这部作品可能算不上完整的编程,但这些角色的摆放还是能让你拔出同样多的头发。重要提示:该格式相对没有标点符号,但足够丰富以表示许多图层参数。头痛:除了基本格式之外,结构和约定可能千差万别。10.DSLDSL(首字母缩写词)用于指代电话公司的互联网服务。但对于开发人员来说,它意味着“特定领域的语言”,这是一个普遍的、非特定的术语,随处可见。皱纹是字母表并不是指要学习和掌握的特定语言。DSL代表了一种设计理念,即一种语言应该根据手头的工作量身定制,而不是试图成为一种可以在任何地方使用的通用语言。因此,用于剧院照明控制器的语言可能包含用于打开和关闭灯的关键字,但没有用于将数据保存到文件或连接到LAN的其他功能。为运行钢厂而设计的另一种语言可能与高炉接口,但不与一些将坐标转换为地图的API接口。这些DSL的出现反映了设计人员如何意识到用户需求对于一些菜单、复选框或命令行参数来说过于复杂。DSL用户希望通过在共享特定领域数据的同时将特定领域的关键字串在一起来在多行上指定他们的需求。每个,每个DSL都是不同的,这很重要。共享首字母缩略词不会使DSL逻辑更容易被吸收。你不能泛泛地研究DSL认证,但你应该准备好越来越频繁地看到它们。亮点:为许多应用程序带来真正的力量。头痛:各领域不同。不断关注工作流程以找到翻新商店、医院和汽车中的计算机的巧妙方法的程序员也在尝试重新设计自己的工作。他们通过添加更多的智能层来加速软件的创建,以便工具更快、更智能地发现错误。最新的计算机语言使用起来更快,因为内置的智能允许它们帮助程序员用更少的击键做更多的事情。它们通常也提供更少的错误。较新的方法包括更多的结构和更多的抽象,允许语言的胆量做程序员过去必须自己做的事情。这些自动化功能让开发人员有更多精力专注于更大的问题。在许多情况下,它们还可以产生更好的性能,因为自动化机制能够更好地找到提高效率和并行计算的机会,同时消除一些导致错误的简单错误。其中一些自动化围绕着从实验室出现到通用目的的架构和想法。从事人工智能(AI)工作的程序员过去常常用他们最喜欢的语言编写代码。一些像TensorFlow这样的库现在已经足够稳定可以被广泛部署,它们的API几乎就像一种语言。程序员专注于将这些API调用串联起来,就像将循环或函数串联起来一样。此列表中的某些所谓的语言可能不被视为官方计算机语言。程序员经常区分允许他们表达任意算法的完整计算机语言(通常标记为图灵完备)和允许他们仅拼出几个参数或一些配置细节的较少字符集。然而,这种区别可能是哲学上的,可能只对大学讨论和律师辩论有影响。因为有时唯一阻止你回家的是正确的角色是否在正确的地方。在拼命努力让一切都正确执行的同时,击键是否表达了一些值得称为完整语言的语法并不重要。这10种语言正在改变我们告诉计算机做什么的方式。虽然其中一些语言是新的,但其他语言已经非常流行。不管我们有时怎么想,有些语言根本就不是真正的语言。Domorewithless列表中的项目没有太多共同点,除了程序员可能正在慢慢寻找方法将每个键向这些语言倾斜,并使生成的代码更清晰、更强大。在某些情况下,这些语言充当通往全新选项(例如AI或大规模并行算法)的门户。它不是完全自动化的,但这些语言使程序员更容易在更短的时间内完成更多的工作。
