1
16
不幸的是,没有关于失败语言的度量标准或故事。只是成功的语言。显然,失败的次数超过成功的次数。 这是基于什么?两个共同的经历。
只有我一个顾问。 事实上,一个特别令人遗憾的情况是,一家公司的整个IT软件组合都是由一个聪明人用一种私人语言和工具编写的。他没有离开,但他已经意识到他的语言和工具已经落后于时代了——艺术的发展,他没有离开。 当然,这是一个意想不到的方向。他的语言和工具还可以,但世界已经开始采用关系数据库,而且他完全没有办法升级他的垃圾文件以摆脱平面文件。这是他没有预见到的。事实上,这是他不可能预见到的。[你不会掉进这个陷阱的,是吗?] 所以,我们谈过了。他用普通的旧vax fortran重新编写了很多应用程序(是的,这是很久以前的事了),并重新编写它以使用普通的旧关系SQL(当时是Ingres)。 经过一年的编码,他们的性能出现了问题。他们打电话给我,让我回顾一下他们在替换自制语言方面所做的一切。不幸的是,他们做了最糟糕的关系数据库设计。最坏的可能。他们把文件复制、合并、排序等等,然后使用SQL实现每个低级文件系统操作,复制左侧、右侧和中间的数据库行。 他陷入了对完美语言的个人幻想之中,以至于无法适应一种相对普遍、普遍的新技术。 |
2
5
我说去吧。
但有几点需要注意:
好运:D |
3
5
当我在90年代初开始我的职业生涯时,似乎每个人都在开发自己的内部语言。我的第一个 三 这些工作都是在做这件事的公司中完成的。一家公司甚至开发了自己的操作系统! 根据经验,我认为这是个坏主意,原因如下:
1)除了基于语言本身的代码之外,您还将花时间调试语言本身。
我离开这三个职位的主要原因是因为他们有专有的语言,你会注意到没有多少公司会走这条路。 另一个我会提出的论点是,大多数语言都有整个团队,他们的全职工作就是开发语言。也许你会是一个例外,但是如果你能通过兼职的语言工作来达到这种发展水平,我会非常惊讶的。 |
4
5
我看你的文章两年多前就写好了。 我建议你今天试试尼默尔语。 编译器是稳定的。今天没有阻止程序错误。 vs集成有很多改进,也有夏普开发集成。 如果你给它一个机会,你不会失望的。 |
5
4
永远不要发展自己的语言。 开发自己的语言是一个愚蠢的陷阱,更糟糕的是,它会限制你的想象力所能提供的东西,同时要求你同时制定出自己的开发环境和正在编写的实际程序。 如果你是拉里·沃尔(Larry Wall)、awk的人,或者是致力于测试编程边界的大量人员的一部分,那么这种情况就不太适用了。如果你属于这些类别中的任何一个,你不需要我的建议,但我强烈怀疑你的目标是一个没有适合任务的编程语言和完成任务的人的特点的利基。 |
6
4
如果你和你看起来一样聪明(很可能),我的建议是先做语言的设计,在上面重复几次,问一些你信任的智能编程语言相关社区的聪明人关于你提出的具体设计,然后做出决定。 例如,在创建设计的过程中,您可能会意识到,只要对Nemerle进行一次快速的黑客攻击,就可以满足您的所有需求。很多事情都可以在认真考虑一个问题时发生,最终的解决方案可能不是您在开始项目时真正想到的。 最坏的情况是,你会坚持实际实现设计,但到那时,你会让它经过验证、阅读和成熟,并且你会非常确定这是一条很好的道路。 一条相关的建议,从小处入手,只需定义您绝对需要的特性,然后在它们的基础上进行构建,以获得其余的特性。 |
7
2
写你自己的语言不是一个容易的项目。尤其是在任何一种“专业环境”中使用。 这是一个 巨大的 大量的工作,我怀疑你是否能写出你自己的语言,是否还能写出任何使用它的大项目——你将花费很长时间来添加你需要的功能,修复错误,以及通用语言设计。 我愿意 强烈地 建议您选择一种最接近您想要的语言,并扩展它以满足您的需要。这永远不会是你想要的,但是与你花在写自己的语言上的时间相比,我认为这是一个小小的妥协。 |
8
2
scala有一个.NET编译器。但我不知道这件事的情况。它是scala世界中的二等公民(更关注于JVM)。但是,采用.NET编译器而不是从头开始创建一种新语言可能是一个很好的交易。 scala在元编程部门atm中有点弱。元编程的需求可能会因为其他语言特性而有所减少。在任何情况下,我不认为任何人会难过,如果你要实现它的元编程特性。此外,还有一个编译器插件基础设施正在开发中。 |
10
0
听到一些你觉得用现有语言做不到的事情会很有趣。你在做什么样的项目不能在C中完成? 我只是古玩! |