弱和强打字的优点和缺点

时间:2011-04-09 19:40:55

标签: language-agnostic typing strong-typing weak-typing

我正在从Java转换到PHP / Javascript,并发现使用弱类型语言的所有实际方面。

由于我能够完全比较两者,我想知道每种方法的优缺点。此外,还有其他形式的打字吗?

4 个答案:

答案 0 :(得分:5)

弱动态类型编程语言(如PHP)使程序员的错误发生为非连贯行为(例如,程序将显示愚蠢的信息)。

使用强动态类型语言(如python),编程错误会导致错误消息。它使错误更易于发现和诊断,但一般情况下,程序在显示消息后变得不可用。

最后,使用强静态类型语言(如Java,Ada,OCaml,Haskell等),可以在编译时发现一些错误,从而降低提供错误程序的风险。 (但发布时间稍晚)

答案 1 :(得分:1)

是。 Python使用Dynamic Typing

通常,这取决于个人偏好以及给定语言的建筑师的预期角色。

例如,PHP(一种脚本语言)对于弱类型是有意义的,因为它通常执行的任务要复杂得多,并且需要较少的约束,然后说编译语言。

答案 2 :(得分:1)

关于你的最后一个问题,Mathematica is said to be "typeless."

  

高级无类型动态语言,在所有数据,函数和接口上具有一致的符号语法和语义

答案 3 :(得分:-3)

PHP / javascript可用于开发比Java更好看的UI。与java相比,PHP将具有更少的约束,易于学习和执行。