编程语言有哪些?
@作者:润森
我懂一点Python,Java,它来源于我自己的想法,纯属虚构。
状态
2020年3月,新的编程语言排名发布,TIOBE最近发布了3月编程语言排名。
从榜单中我们可以看到,前三名分别是Java、C和Python。与上月相比,Python从1.85%继续上涨至10.11%,以10.11%排名第三。
先来了解一下常见的编程语言,比如Java、Python、JavaScript、C/C++、Go、C#。
"很难与各种编程语言协调一致."面对各种各样的编程语言,每个人都有不同的看法。每一种编程语言都有其存在的意义。编程之战从未停止,“战争”一触即发。
家庭内战
最近,编程语言家族举行了一次“家庭聚会”,讨论他们的排名。
以下是家人之间的对话。
老Py:最近,我很神奇。从2015人工智能开始,大家都向我学习,基本上我成了最无敌的大哥。
老四C++:对,老三,你的爬虫,数据分析,机器学习,深度学习,自然语言处理,还有你的Django,flask等Web开发,连你的PyQT都想占领我的QT图形界面市场。都是你们这些流氓,让我从老三变成老四。
老Py:你写的都太难了。跟我学只需要几分钟。谁告诉你这很难理解?什么是面向对象?我用了十几行代码就做到了。谁会向你学习?很快,我就是老大,你就是我弟弟。
老四C++对老大Java说:大哥,有人要篡权了。
Java老板:现在,真的是第三时代了。现在所有的数据分析师都只知道Python,他们都高呼:人生苦短,我用Python。怪就怪数据分析师编程水平低,写着写着就是py代码,根本学不会别的语言。
老二C不屑地说:就算写Python太厉害了,最多也就是个包指南,什么都不是。第三,你有什么本事当老大,我不敢谋权篡位。
老Py:不如我们对比一下,看看现在开发商更需要我还是老板先?
Java老板:好吧,我们来对比一下。谁怕谁?我看看你能做什么。
老三Py:我的代码简单易懂。例如,如果我打印一个HelloWorld,它只是一个。就这么简单。就问你服气吗?
Boss Java:要打印一个HelloWorld,我真的需要几行代码,声明一个HelloWorld对象。
二胎C:我得定义一个主函数。打印一个HelloWorld确实有点多。
老四C++:我抄袭了老二,比老二多写了一个HelloWorld。
老三Py:看,这就是差距。谁能写出这么多代码?我只是简单粗暴地打印HelloWorld。
Java老板:老三,你不能这样。一切都是物体。如果你写一行代码,我认为你必须声明一个对象。
老三Py:什么对象,能打印出来我就Ok了。
其他:确实老三写的代码很简单,连小学生基本都能学会。我们为自己感到羞耻。老三,需要什么技能吗?
老Py:我比不上我的第三方库。有10000多个库,安装简单。一个可以很容易做到,人们可以看到安装进度条。你说我不好。
Java老板:这个我不同意。去maven仓库看看。
我的jar包各种场景都有,我的生态系统已经完善很久了。为什么还不如你的第三个孩子?
老Py:你在pom.xml里装什么信息告诉别人,而且你的依赖这么长,人家愿意写吗?
老二C和老四C++:我们要编译gcc和cmake添加的第三方库。
老Pi:我的请求,selenium,beautifulsoup,pyquery,lxml,Scrapy,Crawley,Pyspider等一系列爬虫库和框架都很牛逼。几乎所有的爬虫都是我写的,你的爬虫市场早就失去了你的份额。
Java老板:我的WebMagic,Nutch,Heritrix,Jsoup,SeimiCrawler,JLiteSpider写的代码确实比你的多好几倍。以前爬虫市场基本都是我在用,现在被你占领了。可悲的是。
老二C老四C++:爬虫,小心爬进监狱。现在第一条爬虫禁令,禁止爬微信微信官方账号。都是老三样。你的爬虫造成了多少假流量,多少网站崩溃?比如说12306有超过20%的流量是抓取的。多少人抢到票,然后加价去卖,正式发票被他们抢了。你之前让多少人抢票?
老Py:不关我的事。现在百度蜘蛛抓取又有多少网站叫好?都是他们的问题。
其他:你除了爬虫还有什么?
第三Py:我的数据分析三剑客numpy,pandas,matplotlib,再加上Seaborn,Scipy,StatModels,Pyecharts,Bokeh,Blaze,Plotly,NetWorkX,Biopython,SymPy,gwpy等数据科学库,所向披靡。都是喊出来的,从excel学Python。
Java老板:虽然我也有jar做数据分析,但是我让我儿子scala帮我改进。
第二胎C和第四胎C++:这个东西不用SPSS、stata、tableau、powerbi、excel、Echart、FineReport等强大的数据分析工具就能解决。都是我们和老板开发的,为什么还要写代码?
老三Py:我有屠龙者Pycharm,永恒之剑anaconda,一个开发,一个数据分析,双剑合璧,无敌。
Boss Java:相比IDE开发工具,我不怕。我有Eclipse,MyEclipse,IntellijIDEA,NetBeans的功能。
第二胎C和第四胎C++:dev-C++,C-free,CLion,Code::Blocks,CodeLite,C++Builder,我们觉得没问题。
老Py:我的Web开发django社区非常庞大。在江湖上,Python有两条腿,一条腿是我Django,因为2万个包,其中1万多个是我Django,加上我另外两个儿子flask和tornado,我在国内和知乎开发了豆瓣,国外:Instagram,Disqus,NationalGeographic和美国国家航空航天局。
Boss Java:Web开发,你敢比,我随便拿出一个Spring家族,SpringMVC,SpringBoot,SpringCloud,除此之外,我还有自己的Tomcat,Jetty应用服务器,微服务架构,早就深入人心了。如果以前的网站不是用php开发的话,基本都是我以前的Servlet和jsp开发的(虽然落后,但基本都维护好了),现在我的Spring家族是网站开发的首选。
老二C,老四C++:虽然我们在网站开发方面几乎没有市场,但是我们是用于软件开发的,比如QQ,微信,支付宝等早期的软件。
老Py:我有能力对比现在最火的人工智能。我的机器学习sklearn,深度学习keras,Pytorch,tensorflow,Caffe,PaddlePaddle,哪个我不知道,哪个我不用?这就是为什么我是最近的国王。
Java老板:你是不是对王者荣耀想太多了?王者荣耀里的客户端应该是C#(Unity3D)开发的,核心后端服务是C++开发的,但不是你的。人工智能,我怎么可能意识不到?我的深度学习库——DL4J、ND4J和Deeplearning4j,还有深度学习框架只是因为数据分析师只会用Python,这让你现在很生气。
老四C++:CPP-Call-TensorFlow,Caffe2C++API,PyTorch-CPP,我的性能比你好很多倍。对了,说说性能,老三,这个你不太会。
Boss Java打补丁工具:没有数据。第三,你做什么人工智能?看看我的apache社区的大数据框架,ApacheHadoop,ApacheHive,ApacheHbase,ApacheSqoop,ApacheFlume,ApacheBeam,ApacheFlink。我开发了ApacheStorm,SparkStreaming,ApacheOozie和CloudersManager(CDH),我做了所有的大数据平台。没有数据,你在做什么,Ai?你被猴子戏弄了吗?
老Py:游戏方面,我可以有我的Pygame。性能方面,我承认效率低下。不是有我大数据的pyspark吗?
老五C#:你的Pygame是儿童游戏屋。我已经占领了游戏市场。别来了,老三。
Java老板笑了:spark是我儿子scala开发的。spark是为了你们这些不了解我(Java)和我儿子(scala)的数据分析师。在你的压力下,我都不好意思开发pyspark了,pyspark是给Python提供APi的。此外,我们还为R提供Rspark。换句话说,老R从十跌到十一。
老R:是你家老三一直打我,导致现在数据分析师都不学R了,以为学了你就天下无敌了。
老四C++:很清楚,每个人占领一个市场就够了。现在提出“人生苦短,我要学Python”的口号。
老Py:人生苦短,我去学Python。
Java老板:因为你,大家的编程水平只降不升。Java开发者学习Python只需要几分钟。
老二C:别说了,我相信大家在大学里一定要向我学习。
老四C++:有本事就让Python学习者跟我或者老板学。我不相信他能学会。学我的人基本都被我折磨死了。学习你的py只是分分钟的事情,有能力的话我可以继续讲性能。我好像记得知乎不得不推荐用go重写系统,不仅仅是因为你的效率。
老十围棋:今天我难得进前十。什么“人生苦短,我要学Python”明明是“2020年,我们一起学围棋”。
老Py:去你的,你凭什么说话?另外我有cpython和Numba,可以提高运行速度。
Java老板:你家老三有什么资格在我面前说话?连多线程和并发都处理不好。你不妨提出我的口号“OnceWrite,RunAnywhere”,写一次就到处跑。你的第三个孩子有我强大的JVM吗?
三、Py:我可以用Pyinstall打一个exe,到处运行,意思是“写一次,到处运行”。
Java老板:我厉害,你不知道。你最好在mac和liunx上运行你的exe。我还有一个儿子科特林,我占领了应用程序市场。你有APP市场,想当大哥吗?是不是有点早了?
老三Py:我有kivy开发APP。
老二C老四C++:老三,你怎么不说用flutter开发个APP?
老Py:那是Google的开源UI工具包,不关我的事。
第二个孩子C和第四个孩子c++:Flutter底层是基于我们开发的。
老Py:我不管。反正现在大家都在学Py,我的市场也越来越大。我是老板。
老二C:我是1972出生的,可以说是你的长辈。Java在全球30亿台设备上运行,我不确定我是不是老板。你哪来的勇气?
第三Py:我是1991出生的,但是Java是1995出生的,所以我不是老大的长辈。
Java老板:老三说得对。老三想当老板。他很臃肿。他得先超过第二个。
二胎c:什么?老三,他连编译器都没有。一个解释器基于我的编译器,他敢叫嚣要超越我。他用我的编译器把我的代码封装在底层。没有我,你不可能有剧本,动态语言就是动态语言。老大老四和我哪个不是静态语言,哪个没有自己的编译器?信不信由你,我不会用我的编译器让你从前十消失。
老三Py:躺下,爸爸,我错了。别让我从前十消失。
没说一句话,老八php就哭了:php是最好的语言。
我想说的是。
Python这种语言,只适合作为加分项,不适合作为技术支持。因为它不能写复杂的逻辑。只适合写一个爬虫,计算器,记事本,Qt等小程序。Python已经超越了Java和C,这是不可能的。Python从老四超越C++,已经是非常震撼的事件了。
有些人可能不同意这一点。Python为什么写不出复杂的逻辑?豆瓣和知乎不是用Python写的吗?
首先,豆瓣后端抛弃了大部分Python代码,重新编写。Youtube也在被改写。目前基于Python的网站只有知乎,知乎的推荐算法已经用go重写了。
为什么?不是因为Python的性能慢,而是Python的语法太悲剧了。或许Python简洁的语法是初学者的优势。因为新手一般都是练手,所以只写1000行以下的小工具。Python的语法简直牛逼,真的没有缺点。
但如果你真的尝试用Python封装了几十个类,写了一万多行的东西,自然就明白它的语法问题有多严重了。不仅仅是不舒服,而是写不出来,维护成本太高。没有静态类型检查是主要原因。能解决吗?是的,好的模块设计和codereview可以避免一些,但这会抵消Python可以带来的快速开发的一些优势。
江湖上还是那句话。动态凉一会儿,火葬场重建。不适合大项目,Python还是适合原型和早期项目的。
想混好,怎么可能只知道一件事?除非你不想混好,拼的就是综合素质。除非你达到python的巅峰,否则Python五分钟就能入门。Python的语法和英语一模一样。学Python的人真的觉得学Java很难。
如果按难度0-5分,Python无难度指数0,php难度指数1,go难度指数2,Java难度指数3,C++/C难度指数4。静态语言的难度比动态脚本更难。如果你编程零基础,建议先学Python,再深入Java。Python和Java在市场上基本处于顶级水平。
阿里是基于Java的,腾讯上辈子是C/C++诞生的。华为的主营业务是硬件,也需要C/C++的编程基础。百度、Python、go、ruby用于字节反转。
但是,如果想有更长远的发展,光学python肯定是不够的。我个人认为最好能熟练掌握Java和Python两种语言。如果你想成为大神,那就加个C++,你就无敌了。
@作者:润森微信官方账号:润森笔记
这个有很多种,前端、后台、嵌入式开发、全栈、移动开发等等。
比如前端开发语言有:HTML、CSS、JavaScript、HTML5、CSS3、JQuery库、Vue框架、微信小程序等。后端开发语言有:PHP、Java、SpringBoot、Python、C、C++、C#等。移动开发的语言有:Android、IOS等。
太多了,java,C#,C,C++,html,javascript,
服务器端编程语言(Professional Hypertext Preprocessor的缩写)......
现在最火的是python。对于很多程序员新手,或者刚转行IT领域的人来说,选择学习哪种编程语言总是一件很头疼的事情。毕竟大部分初学者还是缺乏相关的IT知识,对编程了解不多。
那么这么多编程语言,学什么比较好呢?
Java 语言(一种计算机语言,尤用于创建网站)
Java具有跨平台、面向对象和泛型编程的特点,非常受企业欢迎,广泛应用于企业级Web应用开发和移动应用开发。
到目前为止,Java按照应用分为三个部分:J2SE、J2ME和J2EE。三块的适用范围不同,但相辅相成。广泛应用于PC、数据中心、游戏机、科学超级计算机、手机和互联网,拥有全球最大的专业开发者社区。
计算机编程语言
Python是一种广泛使用的语言,易于阅读和维护,受到大量用户的欢迎。由于其丰富而强大的库,也被称为胶水语言,Python极其容易使用,主要是因为Python具有极其简单的文档。
Python?其应用领域分为系统编程、用户图形界面、互联网?脚本、组件集成、数据库编程、快速原型、数值计算和科学计算编程、游戏、图像、人工智能、XML?、机器人编程等等。
一种常见的应用情况是用Python快速生成程序的原型(有时甚至是程序的最终接口),然后用更合适的语言重写有特殊要求的部分,比如3D游戏中的图形渲染模块,对性能要求特别高,可以用C/C++重写,然后封装成Python可以调用的扩展类库。Python是做服务器开发和物联网开发的。
信息安全、大数据处理、数据可视化机器学习、物联网开发、各大软件的api、桌面应用都需要python。
服务器端编程语言(Professional Hypertext Preprocessor的缩写)
PHP(HypertextProcessor)是一种免费且功能强大的服务器端脚本语言。它的主要目标是让Web开发人员快速编写动态页面。同时在其他领域也有广泛的应用,比如web开发,HTML中的嵌入,受到web开发者的欢迎。这种语言被Wordpress、Digg和脸书使用。
PHP的语法用C,Java,Perl,简单易学。目前,PHP已经得到了广泛的应用,尤其是在web程序的开发中。一般来说,PHP大多在web服务器上执行,用户浏览的网页都是通过执行PHP代码生成的。PHP可以在大多数服务器和操作系统上执行,使用PHP是完全免费的。
Java Script语言
JavaScript是一种基于对象和事件驱动的客户端脚本语言,具有相对的安全性。听起来好像和java有关系,其实没有。只是一个名字。
同时,JavaScrip也是一种广泛应用于客户端Web开发的脚本语言,经常被用来给HTML页面添加动态功能,比如响应用户的各种操作。JavaScript也可以用在游戏开发中。
js最广泛的应用无疑是在web前端。简单来说,网站给你发一堆各种标签格式的文档,js负责操纵这些文档,实现一些客户端的动态效果。js的领地不仅如此,现在Node.js还可以用于服务器端开发。
GO语言
Go语言主要用于服务器端开发,定位是用于开发“大型软件”,适合众多程序员共同开发大型软件,开发周期长,支持云计算网络服务。Go语言可以让程序员快速发展,可以让程序员在不断成长的过程中更容易维护和修改软件。它结合了传统编译语言的效率和脚本语言的易用性和表现力。
Go作为一种服务器编程语言,非常适合处理日志、数据打包、虚拟机处理、文件系统、分布式系统、数据库代理等。在网络编程方面,Go语言广泛应用于Web应用、API应用、下载应用等。此外,Go语言还可以用于内存数据库和云平台领域。目前国外很多云平台都是Go开发的。
不过总的来说,这只是一个大概的划分,具体到每个人的兴趣特点和编程特点,还有更细致的划分。
按照各大语言排名,目前比较流行的编程语言有Java、C、Python、PHP、C++、C#、JavaScript、R、Go、OC、Swift等。不同语言的排名有一定差异,但总体差异不大。判断一种编程语言是否受欢迎,一方面要看整体的用户数量,另一方面也要结合该语言的使用场景。虽然某些语言的整体用户数量很少,但在具体的应用场景中却有着非常高的比例,比如OC。