For investors
股价:
5.36 美元 %For investors
股价:
5.36 美元 %认真做教育 专心促就业
随着互联网的不断发展,越来越多的编程开发语言被程序员掌握,今天我们就通过案例分析来简单了解一下,程序员掌握多种编程语言都有哪些好处。
计算管道建模:Haskell、Scala、Clojure、F#
面向对象的数据建模和面向数组的数据处理主要关注静态的数据,无论是以命名的属性形成集合的形式,还是以结构化数据形成数组的形式。
相比之下,函数式编程语言强调以计算流的形式对动态数据进行建模。即便只学习函数式编程的基本知识,也能极大地改进数据转换操作的结构,即使在其它过程式、面向对象或面向数组的程序中也是如此。
Haskell是一种函数式编程语言,对Python的设计产生了重大影响,显著的是在Python2.0中引入的列表推导式。
Scala是一种(存疑的)JVM函数式编程语言,加上Java、Python和R,它们是ApacheSpark数据分析平台的四种主要编程语言。尽管Scala的设计偏重于函数式编程,但它的语法、数据模型和执行模型的设计也大限度地降低Java程序员使用的门槛(因此所谓“存疑的”——其实是因为,Scala好被归类为一门具有强函数式编程支持的面向对象编程语言)。
Clojure是另一种基于JVM的函数式编程语言,是Lisp的一种方言。它之所以出现在这份清单里,因为它是Python的toolz函数式编程工具包的灵感来源。
F#不是我自己特别熟悉的语言,但它作为.netCLR(公共语言运行时)推荐的函数式编程语言,所以还是值得关注。
学习这些语言,你可以深入了解Python自己的计算管道建模工具,包括容器推导式、生成器、生成器表达式、functools和itertools标准库,以及三方的Python函数工具包,比如toolz。
事件驱动编程:JavaScript、Go、Erlang、Elixir
计算管道是处理数据转换和分析问题的一种极佳的方法,但许多问题需要程序作为持久性服务运行,等待事件发生,然后处理那些事件。在这类服务中,为了能够同时容纳多个用户(或多个操作),通常必须要并发地处理多个事件。
JavaScript初是作为Web浏览器的事件处理语言而开发的,允许网站开发者在本地响应客户端操作(如鼠标点击和按键敲击)和事件(如网页完成了渲染)。所有现代浏览器都支持它,它与HTML5领域对象模型(DOM)一起,已经成为一种定义用户界面外观和行为的事实上的标准。
Go是谷歌设计的一种用于创建高度可伸缩的Web服务的专用语言,并且已经被证明是一种非常适合开发命令行应用程序的语言。从编程语言设计的角度来看,Go有趣的方面是在其核心并发模型中使用了通信顺序进程(CommunicatingSequentialProcesses)概念。
Erlang是由爱立信设计的专用语言,用于创建高度可靠的电话交换机以及类似的设备。它被用于开发出了流行的RabbitMQ消息代理中间件。Erlang使用Actor模型作为核心的并发原语,在执行线程之间传递消息,而不是让它们直接共享数据。虽然我从未用过Erlang编程,但我的一份全职工作涉及一个基于Actor的C++并发框架,而该框架由一名前爱立信工程师开发,另外,我自己也开发了一个这样的框架,基于德州仪器(TexasInstrument)的轻量级DSP/BIOS运行时(现在的TI-RTOS)里面的TSK(Task)和MBX(Mailbox)原语。
Elixir出现在这份清单里,因为它被设计运行在ErlangVM上,提供了与Erlang相同的并发语义,同时还提供了一系列在语言层面上的特性,打造出一个更加全面的环境,更有可能吸引其它语言例如Python、Java或Ruby的开发者。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!请读者仅作参考。更多内容请加抖音太原达内IT培训学习了解。