首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >这门语言有它的利基未来吗?

这门语言有它的利基未来吗?
EN

Stack Overflow用户
提问于 2010-09-07 14:13:12
回答 10查看 700关注 0票数 8

我正在开发一种新的语言,目标是web开发、嵌入应用程序、分布式应用程序、高可靠性软件(但这是为了遥远的未来)。

同时,它的目标是从长远来看减少开发费用--更多的时间来编写更安全的代码,更少的支持。最后,它强制了许多真正的团队必须执行的东西--比如一个跨平台IDE,一个代码,一个web框架。

简而言之,关键的语法/语言特性是:

  1. 开放源码,非限制性许可。当然是跨平台了。
  2. 尝起来像C++,但更简单,具有严格和静态类型检查的Pythonic语法。更容易学习,没有多重继承和其他没人知道的东西:-)
  3. LLVM字节码/编译后端提供了接近-C的速度。
  4. Is同时具有垃圾收集和显式对象销毁。
  5. 真正的OS线程,本机支持多核计算机。多线程是语言的一部分,而不是图书馆。
  6. 类型在任何平台上都具有相同的宽度。int(32)、long(64) e.c
  7. 内置后和先决条件,断言,微小的单元测试。你写一个方法-你可以把所有这些东西写在一个地方,所以你有相关的东西在一个地方。如果您担心类源代码会因此而膨胀,那么hide就需要隐藏您现在不需要的内容。
  8. 类似Java的异常处理(即必须处理所有异常)

我想我现在要离开web和集群功能了..。

你怎么想的?有没有我错过的任何类似的语言?

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2010-09-07 23:28:49

分别回答你的几点(我忽略了我认为不重要或好的部分):

针对web开发

大多数人使用php。这不是因为这是最好的语言,这是肯定的。

嵌入应用程序

Lua

分布式应用,高可靠性软件(但这是为了遥远的未来)。

您仔细研究过二郎的设计和参考实现吗?

它强制了许多真正的团队必须执行的东西--比如一个跨平台IDE,一个代码,一个web框架。

如果你的语言成功了,人们会制作其他的IDE,其他的代码样式,其他的网络框架。

多线程是语言的一部分,而不是图书馆。

非常好的多线程语言,禁止线程内部的副作用。是的,在实践中,这只意味着Erlang。

类型在任何平台上都具有相同的宽度。int(32)、long(64) e.c

叹息..。对于机器级语言之外的整数,只有一个合理的宽度,如C:无穷大。

设计自己的语言无疑会教你一些东西。但是,设计一种好的语言就像设计一个好的密码系统:很多业余爱好者都尝试过,但要做到这一点需要一位专家。

我建议您阅读一些关于编程语言设计的诺曼·拉姆齐的答案,从这条线开始。

考虑到您对分布式应用程序的兴趣,了解Erlang是必须的。至于顺序编程,最低限度是一种命令式语言和一种函数式语言(理想情况下,Lisp/Scheme和Haskell都是,但F#是一个很好的开端)。我还建议至少了解一种没有对象的高级语言,这样您就可以理解没有对象常常会使程序员的生活变得更容易(因为对象是复杂的)。

至于什么能驱使别人学你的语言..。好的工具/库/框架不会伤害(FORTRAN,php),而一家大公司树立榜样也不会伤害(Java,C#)。好的设计似乎不是一个重要的因素(一个只有ha的严肃笑话说,语言成功的原因是使用{大括号}来分隔块: C、C++、Java、C#、php).

票数 5
EN

Stack Overflow用户

发布于 2010-09-07 15:20:06

总结一下:你的语言没有真正的卖点。它只是做了十几种其他语言已经做过的事情,语法和语义略有不同,这取决于程序员来自哪里。这可能是一件好事,因为它使语言更容易适应,但你也必须说服人们麻烦,以切换。所有这些东西必须建立,调试和记录再次,工具必须编程,人们必须学习它,说服他们尖头发的老板使用它,等等。“所以它是X语言,它有一些Y的特性和更好的语法?但是它不会使我的应用程序的代码变得更短、更简洁,也不会使我从样板X中解放出来,等等--它也不能与我的IDE一起工作。”最后一个很重要。工具很重要。如果没有好的语言工具,很少有人会回避,这是理所当然的。

最后,它强制了许多真正的团队必须执行的东西--比如一个跨平台IDE,一个代码,一个web框架。

听起来是个坏处!语言“执行一个X”是如何实现的?如何让程序员相信编码风格才是真正的风格呢?为什么不应该有人去替换狗缓慢,几乎没有维护,严格限制的IDE你“强制”用更好的东西?一个web框架怎么可能适用于所有的应用程序?程序员很少喜欢被强迫进入X,而且他们有时是对的。

此外,你的语言将不得不与其他人交谈。那么,您有现成的多线程和web开发的标准解决方案吗?也许你应该从FFI开始。Python可以使用用C或C++编写的扩展,通过ctypes使用动态库,对于Cython,用Python接口包装任何给定的C库非常简单。你知道有多少重要的库是用C语言编写的吗?除非你的语言能使用这些语言,否则人们很难用它完成(现实世界的)事情。想想GUI吧。大多数市长GUI工具包都是C或C++。而且Java有数百个库(其他JVM语言从Java互操作中获益良多),有很多用途。

最后,在性能方面: LLVM可以为您提供本机代码生成,这是一个巨大的好处(性能方面,但也因为结果是独立的),但LLVM优化器也是有限的。不要指望它能击败C,特别是在英特尔CPU上通过icc编译的手工调优C ;)

票数 10
EN

Stack Overflow用户

发布于 2010-09-07 15:22:04

“有没有我错过的现有的类似语言?”

D?与你的特征相比:

  1. 编译器有一个双重许可- GPL和艺术
  2. 参见示例代码这里
  3. 最不发达国家的目标是LLVM。对D版本2的支持正在开发中。
  4. 内置垃圾收集或显式内存管理。
  5. core.thread
  6. 类型
  7. 单元测试 / 前后合同
  8. 尝试/捕捉/最后异常处理加上范围保证
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3659432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档