切换到新语言始终是一大步,尤其是当您的团队成员只有一个时有该语言的先前经验.现在,Stream 的主要编程语言从 Python 切换到了 Go.这篇文章将解释stream决定放弃 Python 并转向 Go 的一些原因.
看看我如何开始 Go 教程中的一小段 Go 代码.(这是一个很棒的教程,也是学习 Go 的一个很好的起点.)
如果您是 Go 新手,那么在阅读那个小代码片段时不会有太多让您感到惊讶的事情.它展示了多个赋值、数据结构、指针、格式和一个内置的 HTTP 库.当我第一次开始编程时,我一直喜欢使用 Python 更高级的功能.Python 允许您在编写代码时获得相当的创意.例如,您可以:
这些功能玩起来很有趣,但是,正如大多数程序员会同意的那样,在阅读别人的作品时,它们通常会使代码更难理解.Go 迫使你坚持基础.这使得阅读任何人的代码并立即了解发生了什么变得非常容易. 注意:当然,它实际上有多"容易"取决于您的用例.如果你想创建一个基本的 CRUD API,我仍然推荐 Django + DRF或 Rails.
Go 的并发方法很容易使用.与 Node 相比,这是一种有趣的方法,开发人员必须密切关注异步代码的处理方式.Go 中并发的另一个重要方面是竞争检测器.这样可以很容易地确定异步代码中是否存在任何竞争条件.
Go 没有像 Rails 用于 Ruby、Django 用于 Python 或 Laravel 用于 PHP 那样的单一主导框架.这是 Go 社区内激烈争论的话题,因为许多人主张你不应该一开始就使用框架.我完全同意这对于某些用例是正确的.但是,如果有人想构建一个简单的 CRUD API,他们将更容易使用 Django/DJRF、Rails Laravel 或Phoenix.对于 Stream 的用例,我们更喜欢不使用框架.然而,对于许多希望提供简单 CRUD API 的新项目来说,缺乏主导框架将是一个严重的劣势.
Go 通过简单地从函数返回错误并期望调用代码来处理错误(或将其返回到调用堆栈)来处理错误.虽然这种方法有效,但很容易失去问题的范围,以确保您可以向用户提供有意义的错误.错误包通过允许您向错误添加上下文和堆栈跟踪来解决此问题.另一个问题是很容易忘记处理错误.像 errcheck 和 megacheck 这样的静态分析工具可以方便地避免犯这些错误.虽然这些变通办法效果很好,但感觉不太对劲.您希望该语言支持正确的错误处理.
Go 的包管理绝不是完美的.默认情况下,它无法指定特定版本的依赖项,也无法创建可重现的构建.Python、Node 和 Ruby 都有更好的包管理系统.但是,使用正确的工具,Go 的包管理工作得很好.您可以使用Dep来管理您的依赖项,以允许指定和固定版本.除此之外,我们还贡献了一个名为的开源工具VirtualGo,它可以更轻松地处理用 Go 编写的多个项目.
我们进行的一个有趣的实验是在 Python 中使用我们的排名提要功能并在 Go 中重写它.看看这个排名方法的例子:
Python 和 Go 代码都需要执行以下操作来支持这种排名方法:
与 Python 相比,我们系统的其他一些组件在 Go 中构建所需的时间要多得多.作为一个总体趋势,我们看到 开发 Go 代码需要更多的努力.但是,我们花更少的时间 优化 代码以提高性能.
我们评估的另一种语言是Elixir..Elixir 建立在 Erlang 虚拟机之上.这是一种迷人的语言,我们之所以考虑它,是因为我们的一名团队成员在 Erlang 方面拥有丰富的经验.对于我们的用例,我们注意到 Go 的原始性能要好得多.Go 和 Elixir 都可以很好地服务数千个并发请求.但是,如果您查看单个请求的性能,Go 对于我们的用例来说要快得多.我们选择 Go 而不是 Elixir 的另一个原因是生态系统.对于我们需要的组件,Go 有更成熟的库,而在许多情况下,Elixir 库还没有准备好用于生产环境.培训/寻找开发人员使用 Elixir 也更加困难.这些原因使天平向 Go 倾斜.Elixir 的 Phoenix 框架看起来很棒,绝对值得一看.
参考tiobe编程语言统计网站, 有以下编程语言:
(Visual) FoxPro: FoxPro, Fox Pro, VFP
ABAP
ABC: ABC (exceptions: -tv -channel)
Ada
Agilent VEE
Algol
Angelscript
Apex
APL
Applescript
Arc
AspectJ
Assembly
ATLAS
AutoIt
AutoLISP
Automator
Avenue
Awk: Awk, Mawk, Gawk, Nawk
Bash
Basic: Basic (confidence: 0%)
bc
BCPL
BETA: BETA (confidence: 10%)
BlitzMax: BlitzMax, BlitzBasic, Blitz Basic
Boo
Bourne shell: Bourne shell, sh
C#: C#, C-Sharp, C Sharp, CSharp, CSharp.NET, C#.NET
C++
C++/CLI
C-Omega
C: C (exceptions: -"Objective-C")
Caml
Ceylon
CFML: CFML, ColdFusion
Ch: Ch (exceptions: +ChScite)
CHILL
CIL
Clarion
Clipper
Clojure
CLU
COBOL
Cobra
CoffeeScript
COMAL
Common Lisp
cT
Curl
Dart
DCL
Delphi/Object Pascal: Delphi, Delphi.NET, DwScript, Object Pascal, Pascal (confidence: 11%)
DiBOL: DBL, Synergy/DE, DIBOL
Dylan
E: E (exceptions: +specman)
ECMAScript
EGL
Eiffel
Elixir
Emacs Lisp: Emacs Lisp, Elips
Erlang
Etoys
Euphoria
EXEC
F#: F#, F-Sharp, FSharp, F Sharp
Factor
Falcon
Fantom
Forth
Fortran
Fortress
Gambas
GNU Octave
Go: Go (exceptions: +Google), Golang
Gosu
Groovy: Groovy, GPATH, GSQL, Groovy++
Hack
Haskell
Haxe
Heron
HPL
HyperTalk
IDL: IDL (exceptions: -corba -interface)
Inform
INTERCAL
Io
Ioke
J#
JADE
Java
JavaFX Script
JavaScript: JavaScript, JS, SSJS
JScript
JScript.NET
Julia
Korn shell: Korn shell, ksh
LabVIEW
Ladder Logic
Lasso
Limbo
Lingo
Lisp
LiveCode: Revolution, LiveCode
LotusScript
LPC
Lua
Lustre
Magik
Malbolge
MANTIS
Maple
Mathematica: Mathematica, Wolfram
MATLAB
Max/MSP
MAXScript
MDX
MEL
Mercury
Miva
ML
Monkey
MOO
Moto
MS-DOS batch
MUMPS
NATURAL
Nemerle
NQC
NSIS
NXT-G
Oberon
Object Rexx
Objective-C: Objective-C, objc, obj-c
OCaml: Objective Caml, OCaml
Occam
OpenCL
OPL
Oxygene
Oz
Paradox
Perl
PHP
Pike
PL/I: PL/1, PL/I
PL/SQL
Pliant
PostScript: PostScript, PS
POV-Ray
PowerBasic
PowerScript
PowerShell
Processing: Processing (exceptions: +"sketchbook")
Programming Without Coding Technology: Programming Without Coding Technology, PWCT
Prolog
Pure Data: Pure Data, PD
Python
Q
Racket
REBOL
REXX
Ruby
Rust
S-PLUS: S-PLUS (exceptions: +statistical)
S: S (exceptions: +statistical)
SAS
Sather
Scala
Scheme: Scheme (exceptions: -tv -channel)
Scratch
sed
SIGNAL: SIGNAL (confidence: 10%)
Simula
Simulink
Smalltalk
Smarty
SPARK
SPSS
SQR
Squeak
Squirrel
Standard ML: Standard ML, SML
Stata
Suneido
Swift
TACL
Tcl: Tcl/Tk, Tcl
Tex
thinBasic
Transact-SQL: T-SQL, Transact-SQL, TSQL
TypeScript
Vala/Genie: Vala, Genie
VBScript
Verilog
VHDL
WebDNA
Whitespace
X10
xBase
XBase++
Xen
Xojo: REALbasic, Xojo
XPL
XSLT
Xtend
yacc
Yorick
Z shell: Z shell, zsh
函数式语言
Elixir 比 Erlang 更容易编写,具有 Haskell 等语言的函数式编程概念.Elixir是基于Erlang 虚拟机的,其广为人知的特点是运行低延时、分布式、可容错的系统,并成功用于Web开发与嵌入式软件领域.
Elm
Elm是一种用于构建 Web 应用程序的函数式语言.业内一般认为,它适用于创建高可交互应用,例如复杂的用户界面,开发人员可以通过 Elm 快速编写富有表现力的系统.Elm 也以没有运行时异常而闻名.
PureScript
PureScript是一种可编译为 JavaScript 的纯函数式编程语言.与 Haskell 最相似的是,PureScript 最适合用于开发 Web 应用程序和服务器端应用程序.
PureScript 支持类型推断,与其他语言相比,需要明显类型注释要少得多.
Swift是一种由苹果公司开发的通用编译编程语言,最早的设想是替代上一代编程语言Objective-C ,过程中结合了Objective-C、Rust、Ruby 和 Python等语言的编程思想.目前Swift用于开发苹果自己的手机、服务器、台式机上的应用软件.
程序语言
Go
Go语言是由谷歌公司创造的类似C风格的语言.Go 比 C++ 或 Java 更简洁,比 Ruby 或 Python 更安全.
一些缺点: 编码要求严格.比如,不能混用符号和无符号整数.还有一个明显的遗漏,Go语言没有泛型和继承.
但Go语言的优势同样明显,简单且易于使用.Go语言擅长于网络和多线程方面的编程.
面向对象语言
DART
Dart同样来自谷歌公司具有C语言风格.Dart可以轻松编写JavaScript、Java for Android、本地机器代码或独立的 Dart 虚拟机.它还可以运行后端代码.
Pony
Pony是一种基于无数据竞争类型和垃圾收集的语言,并使用 actor 模型以及称为引用功能的东西.
你可以把 Pony 想象成某种"Rust 遇上 Erlang"的复合体,没有锁,高并发是其主要优点.
Pony 的缺点是 API 稳定性低、很少有高质量的第三方库和有限的本地工具.
复合编程语言
Julia是一种高级通用编程语言,用于计算科学和数值分析.Julia 以动态类型和可重现的高性能特性而闻名.
Julia 在数据可视化和机器学习等方面都有大量用途.事实上,它被英国保险公司 Aviva 用于风险计算,纽约联邦储备银行用于金融建模,甚至气候建模联盟用于气候变化建模.它拥有Fortran、C++、R、Java、C 、Python等的接口,这使其成为最受追捧的新语言之一.
Kotlin
Kotlin是运行在 Java 虚拟机中的更快、更流畅的 Java 版本.它现在是Android 开发的首选语言.根据 Android 开发者网站显示,程序员正转而采用 Kotlin,因为该语言的样板代码更少,空指针异常更少,并且与 Java 有互操作性.
Kotlin 可用于在 iOS 和 Android 上运行的应用程序、不使用额外运行时或虚拟机.
Nim
Nim是一种优先考虑可读性的静态类型语言.通过结合多种语言的特性,Nim 为程序员提供了速度和易用性.
它带有 JavaScript 后端、分散的包管理、自动内存管理、C 和 C++ 库的绑定以及用于调试的回溯.作为一种语言,Nim 是有限的,但它包含一组元编程功能,如泛型、模板和宏,所以呢开发人员可以在避免冗长代码的同时以不同的风格工作.
OCaml作为此列表中较旧的语言,OCaml是一种多范式语言——既有函数式、命令式和类型安全,也具有面向对象功能.
OCaml 的一些优势:定义数据类型很容易.默认情况下,所有变量都是不可变的.API 稳定,具有良好的库向后兼容性.该语言还为独立应用程序提供自动内存管理和单独编译.
Reason
如果比JavaScript 更快、更简单且类型安全会怎样?
这就是创建Reason的 Facebook 开发者想要回答的问题.不过,他并没有从头开始构建一种新语言,而是采用了 OCaml,并将其调整为类似于 JavaScript.
Red
该语言可用于开发从高级 GUI 到低级操作系统的所有方面.Red 拥有人性化的语法、低内存占用和垃圾收集等优点.
Rust解决了一些与 Go 相同的问题,如系统级别的线程和进程安全,,但Rust 更像 C 风格的语法
但Rust语言的缺点:静态类型和缺乏垃圾收集
Rust可直接访问内存意味着程序员可以编写低级代码,如操作系统内核.Rust 也非常适合嵌入式设备、网络服务和命令行编写.
那么,在众多编程语言中,哪一门更受程序员们欢迎呢?如果让你选一门编程语言进行学习,你又会选择哪一个呢?
第一段:Java
第二段:JavaScript
第三段:Python
第四段:Go
第五段:Elixir
第六段:Ruby
第七段:Kotlin
第八段:TypeScrip
第九段:Scala
十、Clojure
编程世界每年都在变化,特别是Java以及JavaScript,在这类榜单内几乎占据不可撼动的优势地位.而Kotlin等后起之秀也没有气馁,它们以惊人的速度崛起,并成为当前最受欢迎的编程语言之一.
对于各位而言,这就是目前市场上最为热门的十大编程语言,小伙伴们不妨择其一而习之.
这十大编程语言,代表着计算机与编程之美,最重要的是,大家在学习当中付出的一切,都将在企业里得到良好的认可与回报.
当然不管是学习哪门编程语言,小伙伴在自学的过程中,总是会遇到各种各样的问题.
非计算机专业转编程的大有人在,如果你花时间去追踪技术圈内绝大多数的大牛、大神的背景,你会惊愕地发现,他们绝大多数不是计算机背景出身.
兴趣是最好的老师.大家都知道,坚持不懈地学习任何东西都需要兴趣去支撑;如果没有兴趣,则很难长久.
所以对于想跨专业转行的同学,可以先问问自己是不是真的对这个行业感兴趣,如果答案是肯定的,我就觉得这种尝试是没有问题.对于那些兴趣不是那么大,但是由于各种原因需要跨专业的朋友,试试也未尝不可.
目前热门的语言有:C、C++、JAVA、VB、VC、FoxPro、Delphi、SQL、PHP、ASP、JSP等等.
专门有机构为编程语言进行排名,如下图:
以上就是土嘎嘎小编为大家整理的关于macos系统安装ps的信息相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!