为什么同样是后端语言, Java 可以用来开发 Android(客户端), PHP 就不可以用来开发客户端?

2024-07-24 03:00:33 +08:00
 drymonfidelia
突然被刚学编程的人问这个问题,发现我也解释不清楚
5207 次点击
所在节点    程序员
35 条回复
tyzandhr
2024-07-24 03:05:19 +08:00
因为谷歌选择了 jvm 平台而已。
Belmode
2024-07-24 03:41:01 +08:00
因为 Android 上没有对应的 php 运行时和 php 基础库的支持。
你要愿意,可以用 android 的 so 库实现 php 运行时,开发一个能跑 php 的 app ,在 app 内借助 java Bridge ,来渲染 activity ,来套娃开发页面,也是可以的。

类似 autojs 的独立 Ui 模式,它就是用的 js Bridge 。

本质上可以,但是没有意义,花活而已。
pi7m1Dr691wfl95q
2024-07-24 04:19:21 +08:00
小型系统才是 java 的本家好吧。
Wiki 一下就有了:
Java 是一种广泛使用的计算机编程语言,拥有跨平台、面向对象、泛型编程的特性,广泛应用于企业级 Web 应用开发和移动应用开发。

任职于 Sun 微系统的詹姆斯·高斯林等人于 1990 年代初开发 Java 语言的雏形,最初被命名为 Oak ,目标设置在家用电器等小型系统的编程语言,应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun 微系统放弃了该项计划。随着 1990 年代互联网的发展,Sun 微系统看见 Oak 在互联网上应用的前景,于是改造了 Oak ,于 1995 年 5 月以 Java 的名称正式发布。Java 伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
msg7086
2024-07-24 05:05:16 +08:00
songpengf117
2024-07-24 07:25:55 +08:00
所谓的后端语言指的是 web 开发框架中后端 API 的开发语言,开发 Android 客户端的 Java 不再是后端语言,此时的 Java 更多的时候指的是前端 UI 开发
iminto
2024-07-24 07:41:35 +08:00
因为 PHP 社区太差,成天吹牛逼,互相吹捧。看国内这一帮什么某哥,某神,什么开发者大会上一顿输出就知道了。

10 年前,安卓 2.3 年代倒是真有个 php4android 项目,昙花一现。
skuuhui
2024-07-24 08:25:15 +08:00
可以啊,为啥不可以,java 也不是直接运行呀,你自己实现一个把 php 编译成 class 字节码就行了。
yKXSkKoR8I1RcxaS
2024-07-24 08:52:43 +08:00
B/S 语言和 C/S 语言各有各的领域,PHP 就是为了 B/S 而生,为什么要拿去搞 C/S?
yKXSkKoR8I1RcxaS
2024-07-24 08:54:12 +08:00
可以搞,但没必要。在 C/S 领域太多优秀的语言了,PHP 还是老老实实在 B/S 深耕比较好,不然又要招惹很多骂名,说 PHP 不自量力吹牛逼。
sagaxu
2024-07-24 08:54:38 +08:00
告诉他,技术上的选择甚至人生选择,并不是简单的能不能的问题
error451
2024-07-24 09:08:04 +08:00
缺乏完整成熟的解决方案。

PHP 的定位的就是处理 http 的,官网的标题就是:PHP:Hypertext Preprocessor

所以 PHP 围绕 web 相关的成熟解决方案非常多, 但是适合于嵌入式开发的解决方案几乎没有。

当然,理论上 PHP 也可以做嵌入式开发, 但是这种话毫无意义,因为需要有大量的工作去做,没有人会这么自虐。

这就好比,理论上单纯用 0/1 可以编写出世界上任何一个程序, 但是谁脑子坏了会去这么干??
woodfizky
2024-07-24 09:08:48 +08:00
你把语言理解成铁路轨距标准、车厢标准等,每种语言都有不同的特性,适用于不同的场景。

第一,没有最好的标准,只有最适合的;
第二,铺轨道是要代价的,很大的代价;
第三,基于第二点,谁先去铺了轨道,后面的人大概率是不会去改它的,而是反过来去适应它。

谷歌已经花代价把轨道铺好了,那你想再用另一个轨距标准在同一片土地上铺不同的轨道嘛?
除非你的轨道标准提升的生产力/效率能够降维打击前者,就像现在的高铁比普通铁路的优势,否则没必要新铺。
ala2008
2024-07-24 09:35:25 +08:00
php 有啥优势先,java 开发者应该是最多的吧。。
coderzhangsan
2024-07-24 09:42:28 +08:00
楼上都已经说的很清楚了,php 自诞生之日起,就是锚定 web 市场的,你现在让它做除了 web 之外的事,太难为她了,就比如现在有的 php 开发者搞的那些框架和库,要做 tcp/udp 服务器,物联网什么的,我都不知道他们脑子里装的是什么,暂且不说市面上有那么多合适和成熟的语言可以做这些事,一个动态脚本语言做这些事有什么意义呢!

现在有些人的思维是一门语言承担所有业务,那还要其他语言干什么呢?合适的时间用合适的工具做合适的事,做对的事比把事情做对更重要。
meshell
2024-07-24 09:43:01 +08:00
看下这个吧,https://nativephp.com/
shadowyue
2024-07-24 09:43:47 +08:00
语言还分后端、客户端吗?我觉得只是看对应平台支不支持罢了
sujin190
2024-07-24 09:43:56 +08:00
没啥不可以,只不过没现成的 Android GUI 适配基础库呗,你可以去做下适配那不就可以写了,Android 的窗口管理、绘图和消息事件都可以越过 java 写的 framework 直接调 native 库,写个 php c 扩展适配下就可以写 Android 客户端了啊,所以不存在不可以的情况吧,只不过好像用处不大,毕竟越过 framework 毕竟不方便而且 php 也没这生态啊
meshell
2024-07-24 09:45:34 +08:00
@meshell 虽然也是多种工具的组合。
qcbf111
2024-07-24 09:48:07 +08:00
没人做而已,任何语言都可以支持,其实不仅仅是 java ,就算彻底脱离 java ,也有像 flutter 现在有很多 APP 了,c#也有王者荣耀原神这些游戏,通过自己调用图形 api 的方式自己渲染来开发 Android 。
lisxour
2024-07-24 09:48:23 +08:00
不是不可以,而是没人搞

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1059576

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX