什么编程语言很难偷偷摸摸?

时间:2014-02-19 08:37:00

标签: security programming-languages

某些编程语言允许您具有欺骗性,无论好坏。 C is an obvious example当然汇编程序更好。

哪些语言难以欺骗?我想这是一个2部分的问题 - Q1:流行语言(Python,Java等)不容易偷偷摸摸进入,Q2:是否有专门设计用于禁止欺骗行为的语言?

(我在源代码级别询问欺骗,源代码不适合欺骗的语言。)

1 个答案:

答案 0 :(得分:3)

我认为这个问题有点难以明确回答。我使用的大多数编程语言都可能被用来误导开发人员。毕竟它是用代码编写的。

我认为最糟糕的罪犯之一就是JavaScript。 JavaScript可以帮助你解决许多令人困惑的做法。一些例子是使用变量而不声明它,范围由循环/条件定义 - 但是函数,奇怪的方式线程在JS /浏览器中处理,浏览器之间的兼容性,名称冲突,它继续。有很多方法可以挂断电话。

现在,我认为与此类似的是一种强类型语言,具有像C#这样具有攻击性且无处不在的IDE。 IDE /编译器提供了许多警告和“建议”。我可能只是说,因为我理解C#是最好的。在这方面,Java可能与C#非常相似。

衡量偷偷摸摸的另一种方法是如何处理side-effects。在这种情况下,像haskell这样的(mostly)纯函数式语言可能就是一个很好的例子。功能性语言通常可以proven correct with significantly less effort而不是具有不同范例的语言中的类似代码。

因此,具有良好IDE的强类型语言可能是找不到那种语言经验不足的人的最佳方式。我想如果你是一个功能语言的专家,它就不太可能逃脱那里的任何偷偷摸摸。也许完美的平衡是F#!