Maison  >  Article  >  développement back-end  >  为什么像 Java、C、C++ 这样的静态语言会比 Python、Ruby 这样的动态语言流行得多?

为什么像 Java、C、C++ 这样的静态语言会比 Python、Ruby 这样的动态语言流行得多?

WBOY
WBOYoriginal
2016-06-06 16:23:392075parcourir

个人觉得像 Ruby 这样的动态语言简洁得多。

回复内容:

我觉得不应该看静态还是动态,而要看强类型和弱类型。
强类型比弱类型不容易出错,而弱类型只是省点代码而已。

python与php都是动态语言,但在python类型上比php严谨。举例如下:
<code class="language-python"><span class="n">a</span> <span class="o">=</span> <span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">];</span>
<span class="k">print</span><span class="p">(</span><span class="n">a</span><span class="p">[</span><span class="s">'1'</span><span class="p">]);</span>
<span class="n">b</span> <span class="o">=</span> <span class="p">{</span><span class="mi">0</span><span class="p">:</span><span class="mi">1</span><span class="p">,</span> <span class="s">'a'</span><span class="p">:</span><span class="mi">2</span><span class="p">};</span>
<span class="k">print</span><span class="p">(</span><span class="n">a</span><span class="p">[</span><span class="s">'0'</span><span class="p">]);</span>
</code>
C/C++ 有强烈的学术背景,Java / C# 有强烈的商业背景,这些背景确保了有足够多的人和公司对这些语言有信心,从而促进了这些语言的大规模应用,之后就靠惯性了。
看看 Python 和 Ruby 在 web 开发领域成长速度就知道,在面对一个与人们熟悉的环境有所区别的问题的适合,人们才会重新开始审视自己手里的选择、放弃习惯而做出更合理的选择。 最关键的一点:国内大学没有Python和Ruby的课。 因为静态类型有利于工具做静态分析,有利于性能优化,有利于代码可读性
有些人总是拿完成同样任务所用代码量来做比较,得出python优于java的结论,不得不说这是非常片面的观点。
java是有些啰嗦,不过ide能帮忙减少80%以上的键盘敲击,同时静态分析能帮忙解决80%以上的低级错误,代码提示能帮忙减少80%以上的查文档时间,至于强大的重构能力更是python望尘莫及的,所以只要是稍微大的项目,用java很可能比python开发速度更快 1. 动态语言相对来说速度慢些.
2. 涉及到一些大的工程,Java/C/C++来说可以系统性的更准确高效的解决问题.
3. 当越到低层和硬件关系更近时, C/C++可以更好的完成任务.直接编译成机器语言.
而Python和Ruby需要运行环境.
当然, Python等动态语言用来做一个工具处理一些日常数据还是很好用的,
或者用Python Django做网站.

但一涉及到大型工程就需要用Java/C/C++了
比如嵌入式用C需要高效高性能, 网游用C++需要大量的绘图库及运算,
银行行业用J2EE, 安全性比较高, 并方便Unix上运行.
其实用的都不少, 差不多, 不同的语言工具有不同的特点解决不同的问题.
因为c、c++的历史长,本来出来就早,所以早就有了广泛应用。
而java,刚出来的时候有sun、IBM等等大厂在全力推广,推了十几年了,一直到现在。
ruby、python虽然出来也不算晚,但是没有大厂的商业推广,为大众熟知也是近十年的事情。 工具是用来解决问题的
能比较好的解决问题就可能被用的多
而不是说这个工具有多精致 越是复杂的项目,使用静态语言可以利用编译器更早的发现和避免问题。这并不是说动态语言并不能用于大型项目,但是在超过一定规模之后,动态语言轻便灵活的优势就会被重构时的overhead给抵消掉。

另一个原因是性能上的。同理,也不是动态语言写不出高效的代码,而是你花在优化上的时间会更多,而团队人多了水平难免参差不齐,不如静态语言稳妥。 我觉得动态语言查错比较困难,经常不知道错误在哪里,个人学PHP的亲身体会 这个问题如果放在几年前,估计就要倒过来问了......

哪个工具好,要看解决的问题是什么,最近什么技术流行,只能说明这个技术适用的问题域变成了普遍问题而已。
Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn