尝试让编程语言做一些不应该做的事情是不是一个好主意?

时间:2009-03-14 00:39:48

标签: programming-languages

例如,仅仅为了踢,我正在考虑使用我的所有JavaScript文件都可以通过的PHP脚本;现在,这与正常表达的可爱的小虫子相结合,带来了整个世界的可能性(无论好坏)。目前,我只是在构造中使JavaScript成为Pythonic,如下所示:

一个简单的函数,它接受一个参数并显示数字,如果它是2和/或3的倍数:

<script>
function show_mults_23(k):
    for (x = 0; x < k; x++):
        if (x % 2 == 0):
            document.body.innerHTML += x;
            document.body.innerHTML += ' is a multiple of 2.<br/ >';
        if (x % 3 == 0):
            document.body.innerHTML += x;
            document.body.innerHTML += ' is a multiple of 3.<br />';
</script>
这是真的,是吧? ; P

但是,说实话,我很好奇这个概念是否曾在开发环境中实现过。显然速度有很大的下降,但除此之外,这样的想法是否有任何理由?

4 个答案:

答案 0 :(得分:16)

对维护程序员表示怜悯,他们必须关注您并且不要这样做。为了修复bug,他们不仅需要知道Javascript和PHP,还需要知道你创建的这个不圣洁的东西。

答案 1 :(得分:5)

总的来说,我认为这是一个非常好的主意,也是一个非常糟糕的主意。

这样做有趣的技巧有助于更好地理解这两种语言及其工作方式。它既有趣又有很好的学习经验。

另一方面,为生产中的任何事情做这件事我都会大大避免。你写的代码除了你之外对任何人都没有意义,并且可能会很慢,容易出错等等。

然而,曾经有一段时间我不得不将一些可怕的东西归为“真正的”工作,并且玩这样的游戏帮助我弄清楚如何在我的环境/语言/中解决一些所谓的相当严格的限制库/等

答案 2 :(得分:1)

GWT类似。它将Java代码编译成javascript,虽然它功能更强大,并且有更多的细节,如IDE支持,背后的大型社区等......

编写自己的语言编译成javascript听起来像一个有趣的项目。但就个人而言,我不想用一个人开发和维护的语言来发展,除了语法糖之外没有其他任何理由。

答案 3 :(得分:1)

也许这个问题的标题应该是“你是否应该假装用不同于你实际编码的语言编写代码”,我的回答是“肯定不会。”

在您的示例中,您正在发明一种与javascript具有相同功能的新语言,除了您是唯一知道它的人。它服务的唯一目的是告诉读者你更喜欢Python的结构和Javascript的结构。我不想学习一门新语言,因此你可以表达这种观点。

Using macros to make C look like Pascal是另一个例子,并因同样的原因而受到嘲笑。

一种较温和的形式(以及我的一个宠物讨厌)使用空格来歪曲语法,通常在C中,如:

int* p;

(假装*int的约束比p更接近,与解析器看到的方式相反。)