一般的PHP框架都可以用来做app后台服务器。因为原理上客户端从你这边拿的都是字符串数据,所以就算你不用框架也没有问题,不过会引发后续的问题。PHP提供API给客户端就好了,API描述方式有很多种:REST、SOAP等等均可。推荐REST。
PHP可以开发客户端?
因为PHP是脚本语言,主要用于服务端的开发,是负责完成B/S架构或C/S架构的S部分,但是PHP可不仅仅只能在互联网站上发展,一个PHPforAndroid(PFA)站点表示他们将可以发布编程模型、工具盒文档让PHP在Android上实现应用。
怎么利用PHP框架语言开发手机APP?
第一:和WEB开发一样,首先需要一些相关的参数,这些参数,都会由客户端传过来,也许是GET也许是POST,这个需要开发团队相互之间约定好,或者制定统一规范。
第二:有了参数,根据应用需求,完成数据处理,例如:任务进度更新、APP内购、一局游戏结束数据提交等等
第三:数据逻辑处理完之后,返回客户端所需要用到的相关数据,例如:任务状态、内购结果、玩家信息等等
PS:数据怎么返给客户端?直接输出的形式,如:JSON、XML、TEXT等等。
第四:客户端获取到你返回的数据后,在客户端本地和用户进行交互!
php不能编写app应用程序,主要用于B/S结构(Browser/Server,浏览器/服务器模式)开发使用。但是php可以作为服务器与app应用交换数据服务端API
学习APP现在流行的有三种手机平台,android、IOS,windows。他们都各有各自的编程语言,具体可以在百度搜索下各自平台制作学习。
移动后台都是PHP、Python,Java都重,更别说C了。看你用什么协议了,>
利用PHP框架开发手机APP需要考虑两种可能:
第一:如果需要即时通讯,也就是需要手机客户端与服务端保持TCP长连接,服务端需要向客户端推送数据的时候可以随时通过这个长连接发送数据给客户端,这样便能做到客户端与服务端及时通讯甚至客户端与客户端及时通讯。做到这需要PHP能维持很多客户端连接,并且需要多进程支持,支持自己的通讯协议。这样的应用传统的nginxphp-fpm传统的php框架是做不到的。如果是长连接即时通讯类的服务器框架推荐一看下workerman,它是就是一个php的socket服务器框架,非常适合做手机后台服务器框架。
第二:如果不需要即时通讯的话,可以考虑直接走>
如果是比较简单的手机APP,例如新闻客户端这样的不会涉及到长连接的服务,那么可以考虑直接使用>先说结论:需要根据你想学什么编程语言来选择编程软件。
看题主的提问应该对编程没有太多的了解,姑且认为从来没有接触过编程吧。
估计题主说的编程软件也就是说集成开发环境(IDE)吧,就是程序员写代码的软件。
如果题主学的C语言或者c++的话,刚开始学习用VC++60(免费),两周后换CodeBlocks(免费),熟悉了之后用一两个用,最后换成VisualStudioIDE。
如果题主学的是Java的话,一开始用eclipse(免费),一两个月后可以换IDEA
如果题主学的是python的话,一开始用python安装包自带的就可以了(免费),一两周后换PyCharm
如果题主学的是web前端(h5,js之类的),一开始可以用sublime(免费)或者hbuilder(免费),熟悉之后换webstorm。这里更新一下,也可以使用vscode搭配插件来使用。
下面我要开始啰嗦了:
首先你自己应该知道自己为什么要学编程,或者说是说了编程之后要干什么,这个很重要,决定着你以后学习的方向。打个比方,你说你想要学做饭,那么你要学的是炒菜、糕点还是其他的什么,还是说要做西餐还是中餐。目标不一样,学习的东西也是不一样的。
假如你觉得电视剧上的黑客特别厉害,d指间黑了别人的网站。你想有这样的技术,这属于网络安全方面的,这个方向又分为 *** 作系统方向、web网站服务安全方向、嵌入式安全方向(这么分只是我个人的理解,还能从其他方面区分)。这个时候你应该全面的了解计算机,包括但不限于计算机组成(各个配件是干什么、配件的工作原理)、计算机网络(就是你怎么能上网的这么一个过程)。这个时候你应该学习 *** 作系统原理、计算机组成原理、计算机网络、C语言之类的。
2 假如你看到某个网站很漂亮,你也想做个这样的网站(页面),你需要学习html、h5、和JavaScript相关的东西。当然了解了这些之后,就要接触一些服务端的东西(就是给你提供网页上展示内容的东西),服务端现在大部分是java、php和python写的,也有的使用nodejs之类的语言写的。当然也有其他的各种各样的编程语言。
3 假如你觉得百度、阿里、腾讯的服务好厉害,那么多人同时访问服务器居然能撑得住,你需要学习服务端的编程语言,比如java、python,学习过程中你会学到数据库。然后学习框架(java的ssh(有人说这个框架过时了,但用的企业也不少,springboot。python的框架:flask、Django之类的))
4 假如你觉得某个手机应用比较好,自己也想做一个,Android手机应用现在大部分是java写的,先学java,然后学Android。苹果手机应用现在大部分是objective-c(oc)来写,还有一部分是swift语言写的。,学习的过程中你会了解到更多的可以开发手机应用的语言以及各种各样的框架(混合开发、vue、RN之类的),以及开发手机应用的各种姿势。
5 假如你看着周围的人对计算机软件特别了解,什么软件都会用、什么软件都会安装、就算不会的也能很快上手,这个就不是编程了,多用用计算机,有了问题网上搜一下,日积月累你也能成为这样的人。
6 假如你觉得周围有的人对计算机硬件很了解,什么cpu超频、性价比、整机组装、显卡评测之类的,这也是平常了解到的,和编程无关,多看看计算机相关的杂志,关注一下各大计算机配件的供应商官网以及论坛之类的都可以。
最关键的还是入门,入了门就好说了,如果朋友有会编程的,可以让他们帮帮你,确定自己想学什么,然后请他们帮你入门,然后就是自己学了。
下面我们来介绍一下最流行的Java的编程软件。
1、JDK Java开发工具集
SUN给Java提供了一个极其丰富的语言和运行环境,同时提供了一个免费的Java开发工具集(JDK)。开发人员和最终用户可以利用这个工具来开发java程序。
JDK简单易学,可以通过任何文本编辑器编写Java源文件,然后在DOS状况下利通过javac命令将Java源程序编译成字节码,通过Java命令来执行编译后的Java文件。
2、IBM的Visual Age for Java
Visual Age for Java是一个非常成熟的开发工具。
它提供对可视化编程的广泛支持,支持利用CICS连接遗传大型机应用,支持EJB的开发应用,支持与Websphere的集成开发,方便的bean创建和良好的快速应用开发(RAD)支持和无文件式的文件处理。
3、JCreator
它是一个Java程序开发工具,也是一个Java集成开发环境(IDE)。
其在功能上与Sun公司所公布的JDK等文字模式开发工具相较之下来得容易,它还允许使用者自订义 *** 作窗口界面及无限Undo/Redo等功能。
4、Microsoft VJ++
Visual J++ 是Microsoft 公司推出的可视化的Java 语言集成开发环境(IDE),为Java 编程人员提供了一个新的开发环境,是一个相当出色的开发工具。其结合了微软的一贯的编程风格,很方便进行Java 的应用开发。
5 NetBeans
NetBeans IDE可以方便的在Windows、Mac、Linux和Solaris中运行。
它包括了开源的开发环境和应用平台,NetBeans IDE可以使开发人员利用Java平台能够快速创建Web、企业、桌面以及移动的应用程序。
6 MyEclipse
MyEclipse是Eclipse的升级版,也是一款功能强大的J2EE集成开发环境,被誉为最好用的Java IDE之一。
利用MyEclipse可以在数据库和JavaEE的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。
去年最受欢迎的语言和往年一样,没有变化,仍然是:Java、C、C、PHP、Basic。前几名的语言要在短短的一两年有变动,是不太可能的。这五个语言哪个不是占据Top5的位置五或十年以上?估计2009年仍然是这样的局面,由这几个语言独占鳌头。
但C#已经在快步进逼BASIC,可能再过两年就可以进入前五名。C#上升,BASIC下降,某种程度上反映出微软的VB程序员正转换到C#语言。C#正在逐渐累积和Java抗衡的能量。
在2009年,最值得重视的编程语言好消息,应该就是C了。C0x的x最终被设定为9,将于2009年推出这个标准。经过十年的经验累积,许多C既有的缺点都将在这个标准中获得改善,值得我们期待。
得益于Google的强力背书下,Python这几年小有斩获,现在已经变成通用型脚本语言的第一选择,Python兴起,导致Perl风华难再,两者消长的态势相当明显。而且在2008年末,大家期待已久的Python30也终于推出了。
现今,我们生活在Web的时代,Web后端或许百家争鸣(Java、PHP、NET、),但Web前端还是JavaScript一枝独秀。尽管JavaScript语言存在许多为人所诟病的地方,但JavaScript的重要性仍会持续上升。
对Delphi来说,我承认我过去看走了眼,认为它会持续触底,但2008年显然是Delphi重新被群众拥抱的一年。Delphi曾经拥有许多高手级的使用者,甚至对VisualBasic造成威胁,但是过去这几年在Java和NET的出现之后,以及Web应用席卷全球后,Delphi明显地被边缘化了。外患加上内忧(Borland公司内部的变动),使得Delphi的形势相当不佳,连原文书都找不到几本。在Borland将开发工具部门切割出CodeGear,接着CodeGear又被Embarcadero买下之后,Delphi好像又渐渐有起色了,但说它拨云见日还太早。
如果说Delphi触底反d,那么遭遇完全相反的就是Ruby了,近期Ruby的招聘大幅降低。对于一个窜升太快的语言,需求稍微有跌落,是正常现象。Ruby长期应该仍会是缓慢上升的格局。
今年是Lua丰收的一年,能见度大增,除了用在游戏软件开发之外,也陆续被一些重要的商业软件商所采用(例如Adobe公司)。我看好Lua,因为在嵌入式语言领域,还没有其他语言可以与之匹敌。
说到Adobe,今年推出AIR之后,好像市场的热度还没起来,所以Adobe的官方语言依然载浮载沉。我希望它能在2009年有更好的表现。
Erlang在2008年的表现不错,持续缓慢上升。Java平台上的两个语言Groovy与Scala也开始受到关注。这些新语言某些程度也相对地呼应了函数式编程(functionalprogramming)与动态语言崛起的现实状况。
根据Net在2009年1月的数据显示,Apple计算机的市场占有率已经达到963%,而且iPhone在过去这一年半的销售数字更是相当抢眼。受其影响,开发MacOS应用软件的官方语言Objective-C也大有斩获,越来越受到重视。要不是Apple的笔记本太贵我买不起,否则我早就开始学Objective-C了。
我注意到过去一年有一个奇怪的语言忽然冒出头,叫做Alice。Alice是一个3D动画的制作环境,适合用来辅助说故事。这个语言之所以叫做Alice,该不会是和“Alice'sAdventuresinWonderland(爱丽斯梦游仙境)”的故事有关?
容我在此有一点私心介绍一下REBOL语言。根据目前的开发进度来看,2009年将会是REBOL30发布的一年。我希望大家多多关注这个语言。你可以到我的REBOLOGY博客(blogspot)上看看它的动态。
分析完重点语言之后,就整体来看,我们会发现动态语言和函数式语言越来越受欢迎。我自己就是从C、C到Java、C#,再到Erlang、REBOL,我使用的语言越来越动态、越来越偏函数式编程。
动态语言受欢迎
由于动态语言越来越受欢迎,NET和Java都注意到这样的现象,试图让动态语言可以更容易地整合到自己的平台上。Java阵营的DaVinciMachine,微软的DLR(DynamicLanguageRunti-me)都是这种趋势下的产物。我们可以预期在不久的未来,动态语言会更加蓬勃发展。
动态语言势力之广,可能远远超出你的想象,下面列出常见的动态语言:D、JavaScript、、Erlang、Groovy、Lisp、Lua、Objective-C、Perl、PHP、Python、Ruby、Scala、Smalltalk、Tcl、VBScript。
究竟动态语言有什么样的魅力?因为动态语言可以用更简单的方式,做到静态语言很难做到的事。我很难用三言两语介绍动态语言的特点,而且动态语言的定义也似乎见仁见智,值得写一篇专文好好地介绍。
函数式语言崭露头角
除了动态语言,函数式语言也是一种趋势,连微软都推出了F#。去年年中我在台湾微软讲过两场F#的讲座,听众不少,显示大家对这类编程技术相当好奇。
函数编程(FP)长期以来没有出现在主流的商业软件世界,真正让FP无法被接受的原因可能是“执行效率”。传统上,函数式编程语言的效率确实比命令式(imperative)编程语言来得差,这在商业系统上是不能忍受的。但是这个原因却有了变化。今天,我们有了新的衡量标准:“简单”、“快速开发”比其他因素都更重要,因为现在软件的复杂度已经到了我们无法忍受的地步,而IT产业的竞争也比以往激烈许多。
想要“简单”、“快速开发”,就要用比较高阶的抽象,因此函数式编程比命令式编程更适合现在的开发环境。这些年来硬件的进步,使得函数式编程的效率不再是大问题;甚至由于编译技术的进步,函数式编程语言的执行速度,现在也已经不再是吴下阿蒙。
近年来硬件的发展,使得局势似乎180度反转成为对FP有利的局面:多CPU、多核心、超线程(HyperThreading)的硬件架构普及,以及分布式运算的流行,这根本就是专为滋养FP繁殖而打造的环境。
但是,大多数的程序员想从OO或者procere式的编程方式,转到FP,难度是不小的。
语言联合国
当一个系统比较大的时候,使用混合语言编程是很常见的,因为:
每个语言都有适合使用的时机,一个大系统可以分成多个次系统或模块,每个次系统都有不同的特质,适合采用不同的语言。
大系统开发时,开发者的人数变多。每个人倾向于使用自己熟悉的语言和工具。
以我自己的例子来说,基于上面的考虑,我规划的系统,同时使用C、C#、REBOL、Lua,未来可能还会加入Erlang。我们用C进行系统编程(处理低阶的,和 *** 作系统相关的部分),使用C#写跨平台的服务器(未来考虑用Erlang取代),使用REBOL写解析器和编译器,使用Lua作内部脚本语言。每个语言各适其所。
使用混合语言的开发方式,另一个好处是程序员擅长什么就用什么。学习一个语言到精通的地步,需要很长的时间。我们无法要求自己团队的程序员都能使用某个我所熟悉的语言,可以退而求其次,让他们用自己最熟悉的语言,只要开发出来的东西符合我们规定即可。
使用混合式语言开发,只要模块切割得当,接口定义清楚,架构设计正确,那么绝对是可行的。这是我的经验之谈。
但是也请注意,混合多语言可能会导致维护难度的提高。当开发某模块的人离职,且当初他所使用的语言没有其它人会,这个时候麻烦就来了。
混合多种语言开发系统,有可能要面对语言之间的阻抗(impedance)问题,就好像不同国家之间会有不同的文化隔阂一样。好的系统设计应该要考虑到这一点,减少模块之间的接触点,设法让语言之间的阻抗降到最低。
我的建议
如果你想培养一个全能的联合国梦幻开发团队,我的建议是要集合下面的语言人才:
C:进行系统开发
C:进行COM与传统的微软技术开发
C#:进行现代的微软技术开发
PHP:进行Web后端开发
JavaScript:进行Web前端开发
Objective-C:进行Mac或iPh-one开发
Java:毕竟许多地方还是会用到Java
Python:进行脚本开发
一场编程语言之战
@Author:Runsen
本人懂一点Python,Java,根据自己想法而来,纯属虚构。
现状
进入2020年3月,新的编程语言排行榜新鲜出炉,TIOBE最新发布了3月编程语言排行榜。
从榜单中我们可以看到,前三名分别为Java、C、Python。相较于上个月,Python继续以185%上升至1011%,以1011%的份额稳居第三。
我们先了解下比较常见的编程语言的,如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,就是一个,就是这么简单。就问你们服不服?
老大Java:打印一个HelloWorld,我确实需要好几行代码,还要声明一个HelloWorld对象。
老二C:我还要定义一个main的主函数,打印一个HelloWorld确实有点多。
老四C++:我是抄老二的,写个HelloWorld比老二还要多。
老三Py:看见没有,这就是差距,谁会写那么多代码,直接简单粗暴我就是一个打印HelloWorld。
老大Java:老三,你这样不行啊,万物都是对象,写一行代码,我觉得都要声明一个对象。
老三Py:什么对象,我能打印出来就Ok了。
其他人:确实老三写的代码太简单了,连小学生基本都能学会,我们自愧不如,老三,你还要什么本事吗?
老三Py:要说我牛逼莫过我的第三方库,超过上万个,安装也简单,一个就轻松搞定,还给人看到安装进度条,你们说我牛不牛逼。
老大Java:这我可不服,你去的maven仓库看看
我的jar包任何一种场景都有,我的生态系早就完善,怎么不如你老三?
老三Py:你在pomxml安装什么任何信息告诉别人,而且你的dependency鬼死那么长,人家愿意写吗?
老二C和老四C++:我们gcc和cmake添加第三方库还要编译才可以。
老三Py:我的requests,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,一个开发,一个数据分析,双剑合并,威力无敌。
老大Java:比IDE开发工具,我可不怕,我有Eclipse,MyEclipse,IntellijIDEA,NetBeans功能厉害到爆。
老二C老四C++:Dev-C++,C-free,CLion,Code::Blocks,CodeLite,C++Builder,我们觉得同样没问题。
老三Py:我的Web开发Django社区非常庞大,江湖上,Python有两条腿跑,一腿就是我的django,因为两万个包,一万以上都是我的Django,再加上了其他儿子flask,tornado,我开发了国内的豆瓣、知乎,国外:Instagram、Disqus、NationalGeographic、NASA
老大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,我的性能比你的好不知道多少倍。对了,说说性能,老三,你这不怎么行。
老大Java补刀:连数据都没有,老三你做什么人工智能,看看得我的apache社区的大数据框架ApacheHadoop,ApacheHive,ApacheHbase,ApacheSqoop,ApacheFlume,ApacheSpark,ApacheBeam,ApacheFlink,ApacheStorm,SparkStreaming,ApacheOozie还有CloudersManager(CDH)都是我开发出来,大数据平台都是我干的,没有了数据,你做什么Ai,你是不是猴子请来的逗逼?
老三Py:游戏方面,我可以有我的Pygame,性能方面,我承认比较低效,大数据不是还有我的pyspark?
老五C#:你的Pygame就是小孩子过家家的,游戏市场我已经占领,老三你可不要来。
老大Java笑道:spark是我的儿子scala开发的,spark就是为了你们这些数据分析的人不会我(Java)和我儿子(scala),你们的压力下,不好意思的开发了pyspark,对Python提供了APi,再说了我们也给R提供了Rspark。话说,老R从前十掉下到了十一。
老R:就是你老三一直打击我,害得现在数据分析的人员不学习R了,都以为学你,就天下无敌了。
老四C++:就是明明每个人占领一种市场就够了,现在提出了”人生苦短,我学Python“口号。
老三Py:就是要”人生苦短,我学Python“。
老大Java:就是因为你,害得所有人的编程水平只降下来。Java开发人员学习Python,就是分分钟的事情。
老二C:不要说,大学我敢保证所有人都必须学习我开始。
老四C++:有本事你让学Python的来学我或者老大,我不信他能学得了。学我的人基本被我折磨死了,学你py就是分分钟的事情,有本事继续聊性能,我好像记得知乎得推荐系统用go重写了,还不是因为你的效率。
老十go:今天我难得上了前十,什么”人生苦短,我学Python“,明明就是”2020年,我们一起学go“。
老三Py:我去你的,你老十有什么资格说话?再说了我有cpython,Numba提高运行速度不就可以了吗?
老大Java:那你老三有什么资格在我面前说话,你连多线程和并发都处理不好,还不如提出我的口号”OnceWrite,RunAnywhere“,一次编写,到处运行,我的强大的JVM,你老三有吗?
老三Py:我可以用Pyinstall打成exe,到处运行,不就是”一次编写,到处运行“,
老大Java:我的强大,你不知道,你还是在mac和liunx运行你的exe吧。我还有一个儿子Kotlin和我占领APP市场,你有APP市场吗,还想当大佬,这日子是不是有点早了。
老三Py:我有kivy开发APP。
老二C老四C++:老三,你怎么不说用flutter开发APP?
老三Py:那是Google开源的UI工具包,关我毛事。
老二C老四C++:flutter的底层是基于我们的开发的。
老三Py:我不管,反正现在人人学Py,我的市场就是慢慢变大,我就是当老大。
老二C:我从1972年诞生,可以说我是老三你的长辈。Java可是运行在全球的三十亿设备上的,我都没有把握当老大,你哪里来的勇气?
老三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还是适合原型,前期项目。
搞it要想混得好,如果哪能只会一样东西呢,除非你不想混好,拼得就是综合素质,除非你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++,你就是无敌的存在。
@Author:Runsen公众号:润森笔记
这个分好多种,比如前段、后台、嵌入式开发、全栈、移动开发等。
如前端开发的语言有:HTML、CSS、JavaScript、HTML5、CSS3、JQuery库、Vue框架、微信小程序等;后端开发的语言有:PHP、Java、SpringBoot、Python、C、C++、C#等;移动开发的语言有:Android、IOS等。
太多了,使用人数较多的有java,C#,C,C++,html,javascript,
php
现在最火热的就是python对于很多初学编程,或者刚刚转行IT领域的程序小猿来讲,究竟该选择哪一门编程语言学习,一直是个很费脑子的事。毕竟,大多数初学者,相关IT知识都还比较欠缺,并不是太了解编程。
那么这么多的编程语言,学习什么比较好呢?
Java
Java拥有跨平台、面向对象、泛型编程的特性,非常受企业的喜欢,广泛应用于企业级Web应用开发和移动应用开发。
Java发展到现在,按应用来分主要分为三大块:J2SE、J2ME、J2EE。三块应用范围不同,但却相互补充。广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
Python
Python是一门易读、易维护,并且被大量用户所欢迎的、用途广泛的语言。由于具有丰富和强大的库,又被称为胶水语言,Python极其容易上手,主要源于Python有极其简单的说明文档。
Python的应用领域分为系统编程,用户图形接口,Internet脚本,组件集成,数据库编程,快速原型,数值计算和科学计算编程,游戏、图像、人工智能、XML、机器人编程等等。
常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,性能要求特别高,就可以用C/C++重写,而后封装为Python可以调用的扩展类库。Python是做服务器开发与物联网开发。
信息安全,大数据处理,数据可视化机器学习,物联网开发,各大软件的api,桌面应用,都需要python。
PHP
PHP(HypertextProcessor)是一种免费的强大的服务器端脚本语言,主要目标是允许网络开发人员快速编写动态页面,同时也被广泛应用于其他领域,如Web开发并可嵌入HTML中去,受到web开发者的欢迎。包括Wordpress、Digg以及Facebook在内均使用了该语言。
PHP的语法利用了C、Java和Perl,易于学习。目前PHP的应用范围已经相当广泛,尤其是在网页程式的开发上。一般来说PHP大多执行在网页服务器上,透过执行PHP程式码来产生使用者浏览的网页。PHP可以在多数的服务器和 *** 作系统上执行,而且使用PHP完全是免费的。
JavaScript
JavaScript是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言。听起来好像和java有些关系,然而却不是的,只不过名字像而已。
同时JavaScrip也是一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功能,比如响应用户的各种 *** 作。JavaScript也可以用在游戏开发等方面。
js最广泛的应用毫无疑问是在web前端。简单的说,网站给你传过来的是一堆用各种标签表示格式的文档,而js负责 *** 纵这些文档实现一些客户端动态效果。js的领地还不仅如此,现在的Nodejs还可以用于服务器端的开发。
GO语言
Go语言主要用作服务器端开发,其定位是用来开发“大型软件”的,适合于很多程序员一起开发大型软件,并且开发周期长,支持云计算的网络服务。Go语言能够让程序员快速开发,并且在软件不断的增长过程中,它能让程序员更容易地进行维护和修改。它融合了传统编译型语言的高效性和脚本语言的易用性和富于表达性。
Go语言作为服务器编程语言,很适合处理日志、数据打包、虚拟机处理、文件系统、分布式系统、数据库代理等;网络编程方面,Go语言广泛应用于Web应用、API应用、下载应用等;除此之外,Go语言还可用于内存数据库和云平台领域,目前国外很多云平台都是采用Go开发。
不过,总的来讲,这只是一个大概方向上的划分,具体到每个人的兴趣特点和编程特点,还有更为细致的划分。
据各大语言类的排行榜,目前比较流行的编程语言包括Java、C、Python、PHP、C++、C#、JavaScript、R、Go、OC、Swift等,不同语言排行榜的顺序有一定的区别,但是整体上的差别并不大。判断一门编程语言是否流行一方面要看用户的整体数量,另一方面也要结合语言的使用场景,有的语言虽然用户整体数量不大,但是在具体的应用场景却有非常高的占比,比如OC。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)