1
James369 OP 我总感觉 python 只是个玩具一样的语言
|
2
Patrick95 2021-02-22 15:00:48 +08:00
只能说是相似的,Python 也是有虚拟机来跑字节码的吧。
|
3
echo1937 2021-02-22 15:02:29 +08:00
Java 是编译型语言还是解释型语言? - RednaxelaFX 的回答 - 知乎
https://www.zhihu.com/question/19608553/answer/18628779 |
4
misaka19000 2021-02-22 15:03:00 +08:00
是一样的,都是虚拟机
|
5
1490213 2021-02-22 15:06:01 +08:00 via Android
建议先看下基础知识,比如浏览一下 engineering a compiler 2ed (编译器设计第二版)的第一章。
|
6
RockShake 2021-02-22 16:50:49 +08:00 1
楼主说的没问题,只不过 Java 把这个过程显示出来,Python 隐藏起来了而已,看起来 Python 像是解释型语言
|
7
amimo 2021-02-22 20:13:24 +08:00 1
一样。
一般语言不区分编译或解释。比如你可以用 llvm 把 c 编译成字节码(.bc),然后使用 llvm 解释器执行,也可以直接编译成二执行(.exe),直接运行。 |
9
fiveelementgid 2021-02-22 20:43:00 +08:00 via Android
|
10
lpts007 2021-02-22 20:49:25 +08:00 via Android 1
@fiveelementgid 但是 python 不是弱类型啊
|
11
mayx 2021-02-22 20:51:48 +08:00 via Android
@fiveelementgid 好家伙,js 都成玩具了?
|
12
Lemeng 2021-02-22 20:55:02 +08:00
嗯,差不多
|
13
DoctorCat 2021-02-22 21:44:45 +08:00
|
14
009694 2021-02-22 23:59:08 +08:00 via iPhone 1
@James369 语言都是为了解决特定的问题而生,不要因为某个语言解决不了自己的问题就说它玩具,没意义
|
15
009694 2021-02-23 00:01:08 +08:00 via iPhone 1
@DoctorCat 你被他带坑里去了。py 是强类型语言。 显然他连强弱类型动态静态都分不清只听说了就来谈论好不好
|
16
Mohanson 2021-02-23 00:20:06 +08:00 via Android 1
关于 py 是虚拟机还是解释器看这篇
http://accu.cc/content/gameboy/history/runtime/ |
18
ipwx 2021-02-23 01:25:16 +08:00
java 比 python 牛逼的地方在于 jit 。楼主可以去了解一下
|
19
ipwx 2021-02-23 01:28:42 +08:00
@James369
@fiveelementgid 哦,玩具语言支持了最近十年深度学习的发展,催生了几千亿的产业(你去看看凭啥蚂蚁金服能让银行出 98% 的钱和它搞联合贷款,结果利润大头还给蚂蚁金服)。支持了大型虚拟化云的运维。就这两点就不能是玩具。 结果到你俩这里就是玩具咯 |
20
felixcode 2021-02-23 01:38:15 +08:00 via Android 5
要是有人把 js python C Go PHP C++ rust 统统说成玩具了,你们会不会觉得他特别特别强大?
或者仅仅是无知而自大? |
21
lraining 2021-02-23 01:55:04 +08:00 via Android
Java 的虚拟机有多种,每种都是不同的解释器实现,Python 也有多种解释器实现,理论上你可以生成 Python 字节码让 Python 运行在 Java 虚拟机上
|
22
LeeReamond 2021-02-23 04:02:45 +08:00
@fiveelementgid 先问是不是,再问为什么,首先 python 是强类型语言不是弱类型语言,你连动态类型和强弱类型都分不清楚就来喷人了,这。。
|
23
Osk 2021-02-23 08:22:16 +08:00 via Android 1
python 是动态强类型
C 语言是弱类型,原来是玩具 /狗头 / python 在执行前一般会生成 __pycache__ 文件夹,里面是 pyc 。有了对应的 pyc,你把 py 源文件删了也能跑。 发布时可以用 compileall 模块编译出 pyc, 只发布 pyc,但注意:印象中 pyc 和解释器版本绑定了,另外有些商业软件会魔改解释器,这样它生成的 pyc 一般工具难以反编译一些。 |
24
catsoul 2021-02-23 09:06:01 +08:00
能说出 python 是弱类型这种话的就没必要继续讨论了吧
这种就是郭德纲说的那个“火箭该用精煤”的情况 |
25
vipppppp 2021-02-23 09:17:32 +08:00
@fiveelementgid 啊这
阴阳怪气的时候要先调查清楚,不然就很多人看笑话 |
26
XIVN1987 2021-02-23 09:48:14 +08:00
差远了,,Java 有 JIT,,
|
27
zone10 2021-02-23 09:57:18 +08:00
@fiveelementgid 不好意思 Python 是强类型, C 语言才是弱类型, 玩具罢了, 隔壁 JS 表示躺着也中枪
|
29
acmore 2021-02-23 10:18:25 +08:00
是不是玩具,是不是生产工具都是**无聊且无用**的争论。
不过 Python 是强类型 & 动态类型语言。即 “不能隐式转换类型,且类型在运行时推定”。 1 + '1' = Error => 强类型; 1 + '1' = '11' => 弱类型; |
31
XIVN1987 2021-02-23 10:38:27 +08:00
|
32
Actrace 2021-02-23 10:43:55 +08:00
没有高不高的问题,只有好不好用的问题.
其实无论何种编程语言,最终的目标都是要把自然语言代码转化为机器代码. 由于历史原因,先后出现的编程语言需要解决的侧重点都不太一样. 在计算机科学发展的早起,最先出现的汇编,主要是要解决从 0 到 1 的问题.我们一般把它定位为低级编程语言. 随后出现的各种编程语言都是要解决之前一种语言的某些不太顺手的特性.比如 C 语言,是为了解决汇编语言欠缺直观的逻辑性的能力. 而在之后出现的很多高级编程语言,基本都是在 C 的基础上继承或者扩展的(python,java,go,php),主要也是因为 C 不太好用. 在业界,大部分事件的本质,就是站在巨人的肩膀上去做事情,我们会为了更好的效率(性能仅是第二需要考虑的问题)持续不断的改进现有的工具和方法,以满足对效率的需求. 这也是为什么大家都喜欢不断造轮子的一个主要原因. 我想起在《程序员修炼之道 : 通向务实的最高境界》中一句印象深刻的话: “在某些方面,编程就像绘画。你从一张空白的画布开始,只有一些非常基础的原料。你糅合了科学、艺术、工艺手段来决定用这些原料做点什么。你勾勒出一个整体的形状,绘制出潜在的基调,然后再装点细节。你不断地带着批判的眼光回顾自己已完成的部分。你会时不时地扔掉一张画布,然后重新开始。” |
33
XIVN1987 2021-02-23 10:44:13 +08:00 1
“Python 可以被多种语言实现,比如 c 语言实现的 cpython,java 实现的 jython,c#实现的 IronPython 。
--- 就好比一把锁可以被多把钥匙打开,说明这把锁坏了。。” 这是什么奇葩脑回路?? 按照楼主的说法,,Visual C++可以编译 C++,GCC 可以编译 C++,CLang 也可以编译 C++ 就好比一把锁可以被多把钥匙打开,说明 C++这把锁坏了 ~~~^_^~~~ |
35
chenqh 2021-02-23 11:58:51 +08:00
py 最主要的问题的是速度慢,一开始没钱,如果一开始 python 就是 pypy 那种速度,python 其实相当不错,可惜
|
36
felixcode 2021-02-23 12:43:55 +08:00
技术问题一旦用上类比,思路开始奔放,逻辑开始崩塌,散发出浓浓的民科味道。
|
37
fiveelementgid 2021-02-23 13:11:43 +08:00 via Android
|
38
LeeReamond 2021-02-23 23:21:58 +08:00
|