2020 年最牛逼的 10 门编程语言_程序语言-程序员宅基地

技术标签: 程序员  Java  编程语言  前端  Java进阶之路  Python  

先看再点赞,给自己一点思考的时间,微信搜索【沉默王二】关注这个有颜值却假装靠才华苟且的程序员。
本文 GitHub github.com/itwanger 已收录,里面还有我精心为你准备的一线大厂面试题。

对于很多初学编程的人来说,尤其是马上要入学的大一新生来说,选择哪门子编程语言实在是个痛苦的事。选择对了,毕业后顺利找到工作,完美走向职场;选择错了,毕业后受伤的才华无处安放,大学算是虚度光阴了。

前一段时间哈,我有个远房的亲戚,她家的小孩非要让我指导一下。然后就带了一本书来见我,看了一下封面,我惊呆了。

《易语言从入门到精通》。这是哪门子编程语言,我第一次见到!不敢怠慢,也担心亲戚说我孤陋寡闻,偷偷地搜了一下。易语言的创始人是吴涛,国内为数不多的推崇中文编程语言的程序员大佬。

郑重其事地说,我是个三观很正的人,绝没有半点虚情假意。但我实在不忍心看我这远房表弟误入歧途,毕竟易语言即便是入门了,甚至是精通了,将来也不一定能找到工作啊!

当做兴趣爱好学编程固然好,值得称赞。我这表弟虽然学习不咋滴,年纪轻轻,初中毕业,但据亲戚反馈,酷爱编程,酷爱计算机(也不确定是不是酷爱打游戏)。易语言这本书也是他自己在网上买的。

我有点担心地问他:“能看懂吗?”

表弟不假思索,信誓旦旦地回答:“能啊!”

我随手翻了翻这边书,发现书签已经夹在第 202 页,我天呐,真的有在看啊,看了将近一半了。

必须得负责任啊,我就对亲戚和表弟说,“你看,要不咱换个编程语言吧,比如说 Java!”

亲戚一脸惊愕,“你说哈?”

我只好无奈地将脸迈向我这表弟,只听他娓娓道来:“J-A-V-A!”

“哎呀,不错啊,真的私底下有研究!”我心中暗暗佩服起来了我这表弟。真看不出来,挺爱学的嘛。

“别看这本易语言了,当做兴趣学编程没问题,可咱学习是为了啥,就是为了以后能找份工作,虽然我说得比较俗气。如果说确实对编程感兴趣的话,买点 Java 方面的书读一读。”我语重心长地建议。

表弟深以为然地点点头。

之所以说这件事,就是想告诉同学们,努力固然重要,但选择必须要对,一旦选择错了,那很多努力都是白费。

那,这篇文章就是来给同学们提个醒,2020 年最牛逼的编程语言是什么?看完后你就知道该如何地去选择了。

先来个简要的概括:

  • Java,服务器端最好的编程语言

  • C++,最通用的编程语言

  • C,迄今为止,最值得信任的编程语言

  • Python,AI(人工智能)、机器学习方向最佳的编程语言

  • JavaScript,客户端最常用的脚本语言

  • C#,微软最强有力的面向对象编程语言

  • Swift,IOS 端最高效的编程语言

  • GO(Golang),可扩展的编程语言,谷歌出品

  • PHP,世界上最好的编程语言,不,最好用的 Web 编程语言

  • Ruby,数据科学方面最可靠的编程语言

为什么我会选择这 10 门编程语言?可不是我收了这些编程语言的钱,故意让它们上榜的,我是有足够多的理由的。

首先来看一下 TIOBE 排行榜,非常非常权威的榜单,下面这 14 个是活得比较久的,可以看得出,除了 SQL 换成了 GO,其他 9 门编程语言都在,并且长期霸榜。

活得比较久,意味着这门编程语言的生命力比较顽强,生态系统比较完备,它们属于丛林的王者——物竞天择,适者生存嘛。它们活得久,并且活得好,那就意味着还能活得更好更久,是这个道理吧?强者更强!

同学们尽管放心,我是负责任的——主要是这些编程语言的作者或者团队是负责任的,尽管开源 PHP 的官方团队已经在 2019 年底彻底解散了,但 PHP 依然很坚挺,很牛逼。

下面让我来详细地说道说道这 10 门编程语言。

01、Java

Java 其实是 C++ 的一个替代品,Sun 公司原本想开发一种比 C++ 更简单的面向对象编程语言,起初叫 Oak。结果没想到,随着时间的流逝,因为 Java 更容易学习,跨平台,就导致 Java 的普及程度远远地超过了 C++。

说句不那么优雅的话,就好像狗血剧里小三上位的桥段一样。

在 Java 虚拟机的帮助下,Java 可以无障碍的在 Linux、Windows、Mac-OS 等多种操作系统下自由地穿梭,这使得它在企业级开发中非常受欢迎。

Java 可以做网站开发、做安卓开发、做桌面级应用开发(Eclipse、NetBeans 等等)、做游戏开发(我的世界)。

来一发 Java 版的 Hello World 吧:

public class HelloWorld {
    
 public static void main(String[] args) {
    
  System.out.println("Hello World");
 }
}

02、C++

C++,从名字上就可以看得出来,它是 C 语言的亲儿子,是对 C 语言的扩展,旨在为 C 语言创造出面向对象的功能。

随着时间的发展,C++ 进一步发展为具有最直接的内存访问和完整硬件控制的通用语言。正因为 C++ 提供了最广泛的通用功能,就导致掌握起来有一定的难度。

C++ 可以在所有的平台上运行,并且可以有效地利用任何类型的硬件,这使得它可以在资源受到限制的平台上发挥最佳性能。

C++ 可以做游戏开发(星际争霸、魔兽争霸),办公软件(微软 Office)、操作系统(Windows)、关系型数据库(MySQL)、3D 引擎(Microsoft DirectX)、嵌入式开发。

来一发 C++ 版的 Hello World 吧:

#include<iostream.h>
using namespace std;
 
void main() {
    cout<<"Hello World";
}

03、C

C 语言诞生于 1960 年,作者团队对它只有一个要求:必须得通用,并且能够有效地利用系统资源。因为在那个年代,每一个字节的内存都是昂贵的。

就像 C++ 那样,C 也可以直接访问内存并且控制硬件。C 和操作系统紧密相关,程序员必须亲自处理内存的分配细节,因此很难掌握。尽管 C 语言诞生的很早,但它仍然是目前最常用的编程语言之一。

C 语言的设计影响了众多后来的编程语言,比如说 C++、Ruby、PHP、Python、Java、C# 等等。

C 语言可以做嵌入式开发(单片机),基于嵌入式操作系统的应用软件、驱动程序,高性能的 Web 服务器(Nginx),常见的缓存数据库(Redis)、智能设备或者物联网设备中的操作系统(路由器、摄像头)等等。据说,反正能想到的,都可以用 C 做,就看会不会做。

来一发 C 版的 Hello World 吧:

#include<iostream.h>
void main()
{
    
    printf("Hello World");
}

04、Python

Python 诞生于 1990 年,作者叫吉多·范罗苏姆(Guido van Rossum,Python 之父)。可以说,所有的编程人员都喜欢 Python,因为它的学习成本很低,但应用的等级很高,比如说当下非常有深度的人工智能、机器学习、数据分析。

Python 的语法简洁而优雅,社区也非常活跃。但有一说一,Python 岗位对学历的要求很高

来一发 Python 版的 Hello World 吧:

print("Hello World")

05、JavaScript

JavaScript 是 Brendan Eich(只用了 10 天时间就设计出来了,牛逼)在第一次浏览器大战时为 Netscape(网景公司)开发的脚本语言。尽管一开始 JavaScript 的设计不够优良(毕竟时间短啊),但随着时间的推移,JavaScript 逐渐发展为一种高级的动态编程语言。

与其说我爱 Javascript,不如说我恨它。它是 C 语言和 Self 语言一夜情的产物。十八世纪英国文学家约翰逊博士说得好:‘它的优秀之处并非原创,它的原创之处并不优秀。’

以上 Brendan Eich 对 JavaScript 的评价,读完是不是感觉好气啊——竟然看不起自己的亲生儿子,哈哈。

有大佬曾说,“JavaScript 是互联网的胶带。”这个称赞非常高。HTML 负责结构, CSS 负责展示, 而 JavaScript 负责逻辑,网页前端编程的三剑客形成了。

ExtJS、prototype、JQuery 这些基于 JavaScript 的框架更是把 JavaScript 推向了巅峰。随着 Node.js 的出现,JavaScript 这种客户端的脚本语言竟然可以在服务器端立足了。

现在非常火热的前端框架,Vue.js 就是用 JavaScript 编写的,可以这说,想从事前端开发工作的话,JavaScript 是必学的!

来一发 JavaScript 版的 Hello World 吧:

<script>
 alert('Hello World');
</script>

06、C#

一看名字,就知道 C# 和 C/C++ 有着亲密的关系,微软把 C# 设计成具有面向对象的,像 C 一样的编程语言。

最初,C# 被看作是 Java 的复制品,它们之间有着惊人的相似之处,比如说继承、接口,以及与 Java 几乎同样的语法,同样需要先编译后运行。随着时间的发展,以及微软为之付出的巨大努力, C# 沉淀了丰富的类库和框架,开发人员可以在此基础上快速地编写各种基于 .NET 平台的应用程序。

随着 Unity3D 的出现,跨平台的 C# 终于可以大展拳脚了,在开发游戏方面的优势巨大,比如说编译速度快、类库充足。除此之外,要知道 C# 背后的大山是谁,微软啊!

来一发 C# 版的 Hello World 吧:

namespace HelloWorld
{
    class Hello
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World");
        }
    }
}

07、Swift

关于 Swift,直接来看苹果官方给出的介绍吧:

Swift 是一种强劲而直观的编程语言,它由 Apple 创造,可用来为 iOS、Mac、Apple TV 和 Apple Watch 开发 app。它旨在为开发者提供充分的自由。Swift 易用并且开源,只要有想法,谁都可以创造非凡。

Swift 是一种快速而高效的语言,能够提供实时反馈,而且可以被无缝集成到现有的 Objective-C 代码中,因此,开发者能够编写安全而可靠的代码,并在节省时间的同时,创造出非常丰富的 app 体验。

来一发 Swift 版的 Hello World 吧:

print("Hello World")

08、Go

Go 的亲爹是 Google,又是一家互联网巨头,可以想象它未来的潜力。

Go 语言的设计非常精致,用起来也非常简单,解决开发扩展方面的能力也比较出众。关键是学习起来也非常容易上手,这些优点促使 Go 语言的增长非常快。

国外如 Google、AWS、Cloudflare、CoreOS 等,国内如七牛、阿里等都已经开始大规模使用 Golang 开发其云计算相关的产品。 可以说前途非常光明。

来一发 Go 版的 Hello World 吧:

package main
import "fmt"
func main() 
{
    
     fmt.Println("Hello World")
}

09、PHP

PHP 用来开发 Web 应用程序的历史已经超过 35 年了,可以说是老资历了。尽管最近流行度在下降,但瘦死的骆驼比马大。

PHP 是最好的编程语言,这个梗是从哪里来的呢?显然不是吐槽大会!而是 PHP 的官方文档!

PHP is the best language for web programming, but what about other languages?

下图是 PHP 是最好的编程语言的确凿证据。

2010 年前后,PHP 在 Web 开发中一直处于王者的地位,尤其是 WordPress 等内容管理平台的流行,再加上“扎男”的 Facebook(PHP 开发的)的烘托,更加巩固了 PHP 在业界的地位。

我在 2013 年 底准备回洛阳的时候,还学习了三个月的 PHP。时隔多年,下面这本书还躺在我家的书架上积灰。

好了,来一发 PHP 版的 Hello World 吧:

<?php
echo "Hello World";
?>

10、Ruby

Ruby 最初是一种面向对象的脚本编程语言,但是随着时间的流逝,它逐渐发展成为一种解释性的高级通用编程语言。它的学习曲线相当平坦,非常有助于提高开发人员的生产力。

Ruby 的作者松本行弘曾说过一段非常经典的话:

“ 人们特别是电脑工程师们,常常从机器着想。他们认为:‘这样做,机器就能运行的更快;这样做,机器运行效率更高;这样做,机器就会怎样怎样怎样。’实际上,我们需要从人的角度考虑问题,人们怎样编写程序或者怎样使用机器上应用程序。我们是主人,他们是仆人。 ”

Ruby 正是基于这种理念产生的。网上有句话是这样说的,学习 Ruby on Rails 能让你看到 Web 框架顶端的景色。听说,GitHub 官网是通过 Ruby on Rails 开发的(不准确,不知道有没有同学可以确认下)。

JavaEye 的创始人范凯曾说:

在我们国内,Ruby 是个小众的编程语言,但在硅谷,Ruby 很火,被誉为云计算时代的 Web 编程语言。

当然了,之所以把 Ruby 放在最后一位,同学们一定懂我的意思。


最后,希望同学们能够从这 10 门编程语言中选择一门自己喜欢的,深入研究,无论是哪门语言,我相信,只要你精通了,就一定能够找到自己心仪的工作,如果你只是浅尝辄止,那就不好意思呵呵了。


我是沉默王二,一枚有颜值却假装靠才华苟且的程序员。关注即可提升学习效率,别忘了三连啊,点赞、收藏、留言,我不挑,奥利给

注:如果文章有任何问题,欢迎毫不留情地指正。

如果你觉得文章对你有些帮助,欢迎微信搜索「沉默王二」第一时间阅读,回复关键字「小白」可以免费获取我肝了 4 万+字的 《Java 小白从入门到放肆》2.0 版;本文 GitHub github.com/itwanger 已收录,欢迎 star。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qing_gee/article/details/108122864

智能推荐

jQuery的原生js实现---on方法_jq on 原生-程序员宅基地

文章浏览阅读6.7k次。国庆节来了,心情不错,但学习还得继续,今天特意对jQuery的on事件绑定做一个笔记。 1 2 3 4 5 6 7 8 //原生js简单实现jQuery---on方法//IE9以下支持_jq on 原生

BMC远程管理服务器-程序员宅基地

文章浏览阅读5.1k次。服务器连接BMC网线目的是为了分配BMC地址设置BMC用户名和密码重装系统时可以看到分配的BMC地址,同时可以设置用户名和密码用BMC地址远程管理在浏览器中输入BMC地址即可进入登录界面主界面如下所示功能可以控制服务器开机、关机、重启可以检测CPU、硬盘、电源、网络等状态可以使用HTML5重定向远程登录服务器可以看到系统日志..._bmc远程

网上申请的流量卡一般都是放哪个卡槽?-程序员宅基地

文章浏览阅读170次。另外,手机默认是卡1,放卡2的话就要设置里设置使用流量优先卡2,这样会比较麻烦,如果忘记的话就会用错卡的流量,所以放卡1比较好!现在的手机基本上都是双卡双待,所以我们在手机的使用都是主卡+副卡的模式,那么网购的流量卡,您是放主卡呢还是放副卡呢?​ 很多朋友都反映流量卡网速比较慢,小编告诉大家,可能就是与你放的卡槽有关系。1、如果你的手机卡是保号套餐+流量卡,那么建议把流量卡放在主卡上面。2、如果您的手机卡是两张流量卡,那么建议把优先使用的流量卡放主卡上面。

冒泡排序、简单选择排序、插入排序和快速排序(附源代码)_分别编写函数进行冒泡排序、简单插入排序、简单选择排序、快速排序;-程序员宅基地

文章浏览阅读1.1k次。1.冒泡排序冒泡排序是逻辑最简单的一种排序方法,通过相邻两个数比较交换来实现。从最后一个数开始,两两比较,将最小的数交换到前面。这样在第一次比较交换后,第一个数就是最小的,第二次就可以不用再比较第一个数。源代码实现如下: void bubble_sort(int *a,int num)//冒泡排序法{ register int i,j,temp; for(i=0;ii;j--)_分别编写函数进行冒泡排序、简单插入排序、简单选择排序、快速排序;

内网渗透(二)必须了解Windows域环境-程序员宅基地

文章浏览阅读720次,点赞22次,收藏19次。内网渗透(二)必须了解的一些概念:Windows域环境的概念、应用场景、相关名词及分类,活动目录和域数据库管理工具,还有Windows域用户与组关系,A-G-DL-P策略。

解决List不能用contains检查某条数据_list contains 失效-程序员宅基地

文章浏览阅读1.7k次。今天又遇到一个问题: List不能用contains()检查是否包含某条数据,在网上看了看java8的内容,发现一个好玩的,这个就是Lambda表达式。lambda表达式:个人理解:优点是可以不用写for循环,节省资源。缺点就是没有可读性,比如在调试的时候,不好进行调试。我想在wxsList中检查是否含有 “吴先生”这个数据:List<WxsEntity> wxsList=new ArratList<>();//wxsList集合,假设里面含有n条数据//WxsEn_list contains 失效

随便推点

【2024美赛】在COMAP比赛中使用大型语言模型和生成式AI工具的政策Use of Large Language ModelGenerative AI Tools in COMAP Contests_美赛使用翻译软件算使用大模型吗-程序员宅基地

文章浏览阅读1.6k次,点赞19次,收藏20次。在模型开发的许多任务中,人类的创造力和团队合作是必不可少的,而依赖AI工具引入风险。如果没有对AI工具的作用进行开放和明确的引用和参考文献,那么可疑的段落和工作更有可能被识别为抄袭并取消资格。这项政策是由于大型语言模型(LLMs)和生成式AI辅助技术的兴起而提出的。如果团队选择使用AI,在报告结束后,添加一个名为AI使用报告的新部分。在你的25页解决方案的参考文献部分使用文中引用,并列出所有使用的AI工具。重要的是要注意,LLMs和生成式AI有其局限性,无法取代人类的创造力和批判性思维。_美赛使用翻译软件算使用大模型吗

HDU 2509 Be the Winner(博弈论入门题)_c语言be the winner-程序员宅基地

文章浏览阅读345次。Be the WinnerTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 3471 Accepted Submission(s): 1940Problem DescriptionLet's consid_c语言be the winner

Vue中axios POST传参问题_post param vue 配置-程序员宅基地

文章浏览阅读1.8w次,点赞10次,收藏53次。最近做了一个后台的管理系统,为了实现回调,不得不进行层层的嵌套(callback hell)。第二版本的时候决定使用es6的新特性Promise对代码进行优化,为了兼容各浏览器环境,引入了一个兼容的promise.js。网上关于Promise的用法很多,就不做过多介绍。为了一次搞清这一新特性,决定研究一下这个promise.js的源码。( promise.js的下载地址)。_post param vue 配置

使用PPMI改进共现矩阵_ppmi (positive point-wise mutual information)-程序员宅基地

文章浏览阅读1k次。使用PPMI改进共现矩阵共现矩阵的元素表示两个单词同时出现的次数,这里的次数并不具备好的性质,举个例子,有短语叫the car,因为the是个常用词,如果以两个单词同时出现的次数为衡量相关性的标准,与drive 相比,the和car的相关性更强,这是不对的。点互信息(Pointwise Mutual Information,PMI):表达式如下,P(x)表示x发生的概率,P(y)表示y发生的概率,P(x,y)表示x和y同时发生的概率。PMI的值越高,表明x与y相关性越强。用共现矩阵重写PMI表达式:_ppmi (positive point-wise mutual information)

形形色色的流量卡,分几种类型?是不是合规?又有什么套路呢?-程序员宅基地

文章浏览阅读289次。随着移动互联网以及短视频的快速发展,人们对流量的需求越来越大,当地运营商营业厅的套餐一般价格比较贵,套餐流量给的也很少,所以性价比很低,以至于在网络上出现了很多大流量低资费的流量卡免费申请,那么问题来了,这些形形色色的流量卡,分几种类型?3,虚拟运营商的卡也可称之为流量卡,这类卡是由虚拟运营商提供,虚拟运营商是在4大基础运营商的基础上,单独像四大运营商申请号码段,单独来运营套餐定价等等,多以很灵活,也会有一些好的号码,但是由于没有基础网络基站,都是借用的基础运营商的设备设施,所以网络信号差些。

别再浪费时间了,在网上办理流量卡时一定要看看是否符合条件!-程序员宅基地

文章浏览阅读120次。2、收货地址/激活地址必须一致,流量卡有着严格的激活流程,部分流量卡是需要运营商工作人员激活验证,如果你的收货地址和激活地址不一致,是无法激活成功的,所以大家在申请时不要心存侥幸。4、申请年龄,每张流量卡都有申请年龄限制,比如16~55周岁、20~60周岁,在申请流量卡时,要看一下你的年龄是否符合申请要求,如果年龄不符合的话就不要申请了。3、禁发地区,每张流量卡都是有禁发地区的,只不过禁发地区不同而已,如果你所在的地区处于流量卡的禁发区,那么就不要申请了,因为申请了也是会审核失败。

推荐文章

热门文章

相关标签