{eval=Array;=+count(Array);}

问答专栏Q & A COLUMN

大型的app都是用什么编程语言编写的?

sanyangsanyang 回答10 收藏1
收藏问题

10条回答

miya

miya

回答于2022-06-22 18:27

你好,我来回答这个问题,我有9年多的IT从业经验,负责过一个大型App的前后端架构设计,以及多个小型App的架构编码工作。

大型App的开发,具体用什么编程语言,这个要分场景来说:


①追求用户体验的C端App:

这类面向普通大众、追求良好体验的App,例如微信、支付宝、今日我们等,则建议使用原生代码来开发。即Android使用Java或Kotlin,iOS使用swift语言。

使用原生语言开发,可以充分发挥出App的所有优势,你可以使用任何API提供的功能,而不像混合开发那样有着种种限制。此外,原生代码开发的App的运行速度也是非常流畅的。对于考虑兼容性广、适配所有机型的App来说,原生开发几乎是唯一的选择。

这类开发的弊端是研发成本较高,因为同样的业务逻辑需要在Android和iOS上分别来实现。



②追求迭代效率的B端App:

一些公司内部使用的大型App,由于使用范围仅限于某一个组织内部,不需要追求极致的用户体验以及广泛的机型适配,而追求的是系统版本的功能开发,问题处理的便捷性,更重要是降低App的研发成本。

对于这类App,适合采用混合开发的模式来做,例如Flutter、Ionic、Cordova等,这类开发的优势是一次开发,处处运行。无需再多带带为Android和iOS分别开发代码,可有效降低企业的研发成本,也提高了App的版本迭代速度。此外,之前需要高薪聘请Android和iOS工程师,现在只需要会Web开发的人员即可。

这类App的弊端是流畅性较低,兼容性弱,无法开发大型游戏等对性能要求较高的场景。


以上就是目前App开发的两大分类,均占有一定的市场。所以你这个问题不能一概而论,需要分上述两个情况来决策,希望可以帮助到你!

评论0 赞同0
  •  加载中...
icattlecoder

icattlecoder

回答于2022-06-22 18:27

哈喽,我是七步的天,有着五年多的编程经验,很高兴为你解答。

现在主流的开发app的编程语言可以分为两类。下面分别对这两类分别介绍。

(一)第一类:针对单一app开发的语言,即开发一套代码只能运行在一个平台上。

(1) 开发Android的:Java和Kotlin

Kotlin 是一种在 Java 虚拟机上运行的静态类型编程语言,被称之为 Android 世界的Swift。Kotlin 可以编译成Java字节码,也可以编译成 JavaScript,方便在没有 JVM 的设备上运行。运行效率提高很多,并且语法更加简洁好用。

如果是与系统底层进行交互则需要使用JNI技术,通过和C或者C++结合实现相应的业务逻辑,比如美颜或者直播类型的app。直播类型的app采用的ffmpeg技术,其中ffmpeg就是用C语言实现的。

(2)开发IOS的:Swift和Object-C

Swift 结合了 C 和 Objective-C 的优点并且不受 C 兼容性的限制。

(二)第二类:可以针对多个app端的编程语言,即只需开发出一套代码,就可以在多少平台上运行

(1)第一种是Flutter技术,基于Dart语言,比如现在闲鱼app就是基于flutter开发的。并且有着多年经验,而且闲鱼免费开源了框架。

Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。 Flutter可以与现有的代码一起工作。在全世界,Flutter正在被越来越多的开发者和组织使用,并且Flutter是完全免费、开源的。

Flutter的热重载可帮助您快速地进行测试、构建UI、添加功能并更快地修复错误。在iOS和Android模拟器或真机上可以在亚秒内重载,并且不会丢失状态。

尤其是在UI上使用Flutter的现代、响应式框架,和一系列基础widget,轻松构建您的用户界面。使用功能强大且灵活的API(针对2D、动画、手势、效果等)解决艰难的UI挑战。

(2)第二种是Uni-app框架,基于Vue.js。俗称一套代码编到8个平台上。

uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、H5、以及各种小程序:微信/支付宝/百度/我们/QQ/钉钉等多个平台。

小结

第二类开发起来更显效率,节约很多时间成本。

我是七步的天,如果觉得对你有帮助,喜欢就关注我吧。

有其他问题和见解的小伙伴,欢迎在评论区留言。辛苦留下你的宝贵意见。

欢迎点赞、关注、收藏。

评论0 赞同0
  •  加载中...
gself

gself

回答于2022-06-22 18:27

Hi,我是科技互联网大叔,有多年的开发经验和架构经验,对题主你的问题还是比较了解的,今天我来回答下这个问题。

一个大型的App包含的内容会很多,比如客户端开发、服务端开发、前端页面开发等等,我会一一道来。

第一、客户端开发

客户端开发,大家应该是感知最明显的,就是你手机里下载的各种App,都是属于客户端开发。那么客户端开发主要用什么编程语言呢,这里又要区分Android和IOS。

Android的常见编程语言是Java,Java语言是一种使用特别广泛的语言,可以用来做很多层面的开发,最早的Android体系大家直接用Java来去开发,Android系统的编译器是可以编译运行的。当然现在越来越流行Kotlin,其实Kotlin是Java语言的一个变种,比Java语法更简练,最终也是运行在JVM上。

IOS常见编程语言是Objective-C,这是早期的编程语言,是基于C语言的一个变种,有很丰富的图形界面开发功能。不过后来苹果公司2014年自己推出了Swift语言,渐渐成为主流。毕竟Swift语言是苹果公司推出的,他们肯定更了解自己的IOS系统内核,所推出的Swift语言对于基于IOS的开发者来说简单易用。

第二、服务端开发

客户端开发主要是做展示,但其实App上有各种各样的数据是从哪里来的呢?比如电商网站的商品介绍,我们App的文章内容等等,这些都是需要服务端提供各种接口,客户端的程序去调用服务端接口,拿到数据后再给用户展示出来,这个做服务接口的就是服务端开发。

服务端开发常见的编程语言也是Java,哈哈,Java确实使用面很广,当然,能用Java的地方就可以用Kotlin。现在服务端开发流行微服务架构,各种各样的支持微服务的Java框架,比如Springboot,Dubbo等等,可以很方便的搭建高并发的服务体系。这些成熟的框架也使得Java进一步的流行起来。

当然现在有一个后起之秀,Go语言。Go语言是Google推出的一个新语言,可以很轻松的兼顾运行性能、开发效率及维护难度,以其独特的设计风格和优势在整个行业有了一席之地。

第三、前端开发

App里面的很多频繁变化的页面不会做成原生页面,而是做成Html5的页面。这种页面方便上下线和做一些修改,特别适合做各种活动的场景。

做前端页面的主要编程语言就是JS了,全称为JavaScript。这种语言是一种脚本语言,具有丰富的控制功能和组件交互功能,不过目前来说用原生JS语言做开发的很少,大部分还是会用比较主流的三大JS框架:VUE,React,Angular。

评论0 赞同0
  •  加载中...
fuchenxuan

fuchenxuan

回答于2022-06-22 18:27

我是做安卓开发的,就拿安卓来举例吧。现在的大型安卓app主要是已原生语言为主,以其他语言为辅,属于混合开发模式。

安卓原生开发以java/kotlin语言为主,下面拿微信举例说明吧

通常大型的APP都会先搭建框架,当然框架并不是搭建好就不用动了,它会随着业务发展不断重构演进。

我们看看微信APP架构,分别使用了组件化和模块化技术,懂APP开发的应该一看就知道。

组件化有什么好处?

组件主要分三层,业务组件,基础业务组件以及基础组件,组件之间只能通过接口耦合,也就是依赖倒置原则,每个组件都提供对外的接口文档以描述该组件提供的功能。

其次,组件化有很多好处:解耦,平台化,职责单一,复用性,编译集成等

由于技术性较强,就不展开说明了,总之组件化会让APP开发非常灵活,比如将推送服务组件化,现在使用的小米推送,如果需要换成ucloud推送呢,很简单,写个ucloud推送组件,替换原来的就可以了,接口定义一致的话,调用方是不用改写任何代码的。

模块化有什么好处?

模块化最大的好处就是多人协同开发,互不影响。

模块化更多的是用在业务层面,分为基础业务模块和业务模块。

基础业务模块就是指一些服务于业务代码开发的功能,抽成一个模块,便于统一开发。比如打log日志,相信很多开发者的方式都不太一样,那么可以将日志功能封装成模块,形成规范便于管理。

业务模块就是每个人开发的具体功能了,比如朋友圈功能开发迭代,直接新建一个模块,独立开发调试,不会与其他人员产生冲突,测试通过后引入到主工程即可。

搭建框架就得用原生语言了,目前安卓第一开发语言是kotlin,而不是java,因为java是甲骨文的,而甲骨文要向谷歌收取java使用费,kotlin的语法糖真的很甜,如果你上手kotlin了,相信你不太想再写java了。

辅助语言也分为两种,C++和JavaScript

安卓也支持C或C++语言,已SO库的形式引入项目。

那C++到底能编写什么样的功能呢?

比如音视频编码/解码功能,C语言是可以直接操作硬件的,如果你用java层面封装的功能,效率必然比不上C语言。

其实还要很多功能,比如图片背景高斯模糊,扫码解析等等,像这种大型的APP将使用体验优化提升哪怕只是1秒,也是非常不容易的。

其次是JavaScript或者说是类似JavaScript的解析引擎,比如小程序,H5页面,都是使用JavaScript引擎解析的,随着技术和网络的发展,现在小程序和H5页面的体验快追上原生了。

总结

现在业务发展飞快,作为大型APP,必然是需要兼容一些其他有利于业务发展的语言,所以不会只使用原生语言。以上我们拿安卓系统微信APP举例,兼容了C/C++,JavaScript。现在谷歌另一个UI框架flutter也很火,可以跨平台,目前咸鱼团队是用的flutter,感兴趣的可以去体验下咸鱼APP(这里绝不是打广告哈)。

我是非著名攻城狮,希望我的回答对您有用,感谢您的关注与支持!

评论0 赞同0
  •  加载中...
kelvinlee

kelvinlee

回答于2022-06-22 18:27

后端老牌语言:Java,C,C++,C#,其中很明显Java的地位无法撼动。

脚本式语言:Python,Perl,PHP,Ruby,他们比较轻量级,语法灵活,易读性和维护性比较差。其中Python在大数据方面的应用优势明显,所以排名靠前,而PHP下滑严重。

后端新锐:Go,虽然现在受众面比较小,但是以后前途是不错的。

前端语言:JavaScript。实际上js的影响力比排行榜上的位置要靠前,统治了前端的语言。

移动端语言:Swift以及没上榜的ObjectC。没啥好说的,iOS专用。

评论0 赞同0
  •  加载中...
xorpay

xorpay

回答于2022-06-22 18:27


APP是Application software的缩写,可以翻译为应用软件,主要是给最终用户使用的。例如,Office全家桶,PS,浏览器,播放器这些都是APP,甚至Linux下的一些没有图形界面的APP。

WEB APP

这些软APP通常使用C#,C++,Java,Python,shell,Perl这些语言编写。当然,最近也有使用Electron这样的平台开发的软件,如著名的VSCode,它使用的是Web语言,也就是HTML,CSS,JavaScript。

移动APP

为移动平台创建的APP,被称为mobile APP(移动APP)。我认为是想问的是这种类型的APP。这种类型现在的开发类型主要分为原生开发和混合开发。

原生开发就是移动平台(iOS和Android)各自推荐的语言。

  • iOS平台主要是Swift和Objective-C。

  • Android平台主要是Java和Kotlin,当然还有用C++写的。

  • 混合开发的话,就是想实现使用同样的代码运行在不同的平台。主要就是有那么几个混合开发平台,如Cordova,React Native,微信小程序,这些平台主要使用web语言,即HTML,CSS,JavaScript。当然还有最近比较火的Flutter,使用的是自家的Dart语言。

评论0 赞同0
  •  加载中...
developerworks

developerworks

回答于2022-06-22 18:27

很高兴能够看到和回答这个有趣的问题!

大型的app都是用什么编程语言编写的,.这个问题需要结合不同的app来进行解释,一般来说,不同的app所用的编程语言也不尽相同。

1、安卓开发是不脱离Java程序的,因为安卓的底层是真实存在的,底层是用编程语言。

Java是一种编程语言,安卓应用用Java开发,C语言编程用另一种语言,也可以用安卓开发,但需要从Java提出请求。Angio应用一般都是用Java语言开发的,Java语言已经流行了20多年,并且已经做了很长时间。如果你想在你的Android APP上工作,对Java语言的了解很重要。Java还将用于开发Android平台内的应用程序,用于消息、广告和特殊的Messenger系统。开发Andreas APP的主要编程语言也是Java,如果您在开发过程中需要切换语言,可以通过JNI进行切换。

Android是基于SDK平台的Java。苹果的操作系统是基于触控的,也就是常说的Object C,语言比Java优越,所以同样硬件的语言比Java快很多。Java最大的优势是兼容Linux平台、Windows等。

2、Java作为设计和开发环境的成熟度是惊人的,这种趋势将在2021年加速发展。

无论你是使用Java进行前端开发、React、Angeular Vue.js应用和框架开发,还是Lan.js桌面应用开发或Node.js模块开发,Java都是关键! 你甚至可以使用TensorFlow.js来开发一台学习机。

3、在计算机硬件领域,C语言是操作系统时代最古老的语言,在计算机硬件领域,C语言的地位已经高于其他任何语言,C语言与C++的差距更小。

中级的应用市场是琐碎的,由于其性能的原因,主要硬件是直接和低级的硬件API,翻译器存在于多个平台上。该网站仍然可以用以下语言访问。 C、C+、PythonC++,也是跨平台APP应用和微软Windows Phone系列智能手机的主要APP开发语言之一。脚本包括可编程脚本和其他脚本语言,所有的开发者都需要时常编写脚本,这对于不熟悉语法的新APP软件开发者来说是很方便和必要的。

开发应用行业生产的主要任务是开发各行业的应用领域,如PaaS,各行业的发展都是基于各种技术平台的应用。在工业互联网时代,工业领域仍然面临着大量的应用开发挑战,随着云计算、人工智能等技术的发展,应用范围将不断扩大。开发人员对应用开发的需求比开发平台的需求要小,大量的学生甚至专家都可以从事相关岗位的工作。

4、Python是一种古老而流行的编程语言,它不会很快消失。

虽然现有的Rust和Type等语言吸引了越来越多的人,分散了Python的注意力,但Python仍然是最流行和最常用的编程语言之一。由于Python与数据采集工具箱关系密切,越来越多的编码训练营在培训Python,这将是未来几年最受欢迎的开发者语言。

自从机器人出现后,美国、日本等国家的机器人创始人都开始学习机器人语言。1973年,世界上第一种机器人语言Wave在斯坦福大学被开发出来。Wave是一种机器人动作语言,其中语言功能主要是描述机器人的运动、受力和接触,并通过视觉传感器对机器人进行手动和视觉控制。

以上便是我的一些见解和回答,可能不能如您所愿,但我真心希望能够对您有所帮助!不清楚的地方您还可以关注我的我们“每日精彩科技”我将竭尽所知帮助您!

码字不易,感觉写的还行的话,还请点个赞哦!

评论0 赞同0
  •  加载中...
entner

entner

回答于2022-06-22 18:27

安卓 app 是java

苹果 app是object C 或swift

当然也有些能同时运行在安卓和苹果上的语言 比如flutter。

上面那些语言对app来说都是前端,前端需要跟服务器交互,用到后端,后端语言有PHP java 等

评论0 赞同0
  •  加载中...
MadPecker

MadPecker

回答于2022-06-22 18:27

app分为hybrid和native两种,即混合式和原生app。Android原生app用Java开发,苹果用Swift或者Objective C开发。目前苹果推出了更加强大的Swift UI,在view方面可以说是极大提升了效率。混合式app在原生框架之下大量嵌入了HTML,前后端分离是最基本的标准。至于App的后台,完全取决于APP的用户体量和定位。架构上可以引入消息队列来解耦,削峰,异构,基于业务需求选取数据库如mysql,mongoDB,应用服务器大到tomcat,小到node.js。反向代理服务器Nginx,第三方消息推送服务等

评论0 赞同0
  •  加载中...
AWang

AWang

回答于2022-06-22 18:27

目前运行在手机端的应用(APP)主要有三个平台,安卓,iOS,WP。

安卓系统APP的开发语言:JAVA php,jsp等;

IOS系统APP的开发语言:使用Objective-C或Swift语言;

WP平台APP的开发语言:使用C#语言开发;

评论0 赞同0
  •  加载中...

最新活动

您已邀请0人回答 查看邀请

我的邀请列表

  • 擅长该话题
  • 回答过该话题
  • 我关注的人
向帮助了您的网友说句感谢的话吧!
付费偷看金额在0.1-10元之间
<