Icon编程语言的优缺点是什么?

Nat*_*pos 6 programming-languages icon-language

最近我在寻找图标(图形),但我看到一个非常有趣的链接,是一种名为Icon的语言,然后我想知道:

  • 这里有人试图用Icon开发吗?
  • 它是一种编译或解释语言?
  • 这种语言的优点和缺点是什么?
  • 在哪个区域它比其他一些语言(垃圾收集......)更好?

小智 8

我知道这是一个非常迟到的回复,但我不得不发言.

这是一种华丽的语言.这是你尝试过的那种语言之一,如果你/得到它,你就会被包裹起来.我已经将它用于公司非常严肃和关键的内部产品,并且令人钦佩.我称之为我最喜欢的语言; 当用于正确的任务时,使用它真的很有趣.

我的第一个好奇心/可能有用的工作项目是从F77到C的翻译.我的第一次剪辑是垃圾和慢,我的第二次尝试后来更甜更快 - 那时我真的开始了正确利用字符串扫描.我从来没有完成这个长期失败的项目,因为它变得无关紧要; 我不再和一些工程师一起工作,他们一直试图让我相信FORTRAN很好.

显然,像Larry Wall和Guido van Rossum这样的人都知道Icon和Unicon.他们知道的程度如何,我不能说,但我打赌相当不错,因为他们似乎是语言坚果.感受到了影响.Icon和Unicon有点像音乐世界的Velvet Underground或Captain Beefheart; 它远远不是主流,但知情人士知道并受到强烈影响.

顺便说一下,与VU或Beefheart不同,(Un)Icon不会因为过于光滑而无法让普通人处理,所以这个类比在这方面严重崩溃......事实上,语法及其所有功能很干净,很悦目.与Pascal的任何相似之处都是肤浅的.对于未经训练的眼睛来说,语法肯定看起来像帕斯卡尔,但在行为方面,它的两极分开.

它适合哪里?它不会与C竞争硬核高性能编码,但这就像大多数语言一样,只有CPU性能才是唯一的解决方案.它无法击败Perl在CPAN中的大量库,但这可能是Perl中唯一抽取它的东西!好吧,如果你想要CPAN提供的东西,请重写并捐赠给Unicon存储库.它没有Java的安全模型,但就像大多数其他语言一样.你现在可能已经明白了.

我开始使用Icon,然后几年后转移到Unicon,这是主要的活动.图标保持"稳定,干净和完整"的现状.Unicon汇集了大量扩展,并将其转变为一个有凝聚力的项目.最重要的是更好地覆盖标准O/S呼叫,以及完整的鸭子型OO系统.

Unicon的OO甚至支持循环继承,更不用说MI了!这主要是为了大脑f**k,但也因为它被证明是可行的.当然,任何明智的程序员通常不应该那么愚蠢,除非他们真的在数学中实现某些东西(例如Polar <Cartesian <Polar <Cartesian <...)或量子力学(例如Wave <Particle <Wave <Particle <.. .)这是显示循环继承的罕见优点的典型例子.

首先回答这个简单的问题,是的,它是编译的,但是是一种PCODE,然后由虚拟机执行.构造的可执行文件具有hash-bang标头,因此可以直接执行它们.在Windows上,它们有一个.EXE标题(或者它是.COM?),因此它们也可以直接执行.毋庸置疑,这些在Unix和Windows之间不可移植,尽管Powershell可能能够做一些事情来允许Unix可执行文件直接在Windows上运行.在实践中,编译步骤非常快,并且由普通的makefile处理.Unicon还有一个快速的n-dirty编译运行步骤,但是任何超出总体规模的项目都可以通过make阶段得到更好的服务.

网络功能是Unicon的一部分.Icon可以使用便携式图形库很长一段时间,也是Unicon的一部分.垃圾收集是一个给定的,因为它是一种非常高级的语言.

两个最重要的独特功能是它的发生器和它的字符串扫描.我不会进入这些 - 你最好下载并通过教程播放直到它沉入其中.一旦语言生成器,字符串扫描工作得非常好.我不认为字符串扫描可以在没有它的情况下如此巧妙地工作.再一次,玩,直到它有意义.这是使用正则表达式的一个非常有趣和强大的替代方案,它是我工作的关键部分.

生成器是那些乞求用任何新语言的东西之一.事实上它不在雷达上是一个悲剧恕我直言.如果我要认真坐下来梦想制作下一个流行的开源语言,那么这将成为核心的一部分.但是谁有时间?我有账单需要支付.

2012年以后的最新版本现在具有真正的多线程,并且在我写这篇文章时可能很稳定.

如今,Windows构建在Unicon中基本上是最新的.Windows构建已经整理好了,我已经成功地将我的主要项目放到了Windows上,除了显而易见的使用Windows之外的悲痛之外没有什么悲伤.


Abe*_*bel 7

这是一种非常古老的编程语言(1977),有趣地看到它再次出现.我记不起曾经看过任何写在其中的东西,除了实验或教育脚本.维基百科为您提供了一些信息.

它的一个后代,Unicon(也见维基百科上的Unicon),已被我的上一个雇主用于构建内部应用程序.他们将它用于3D设计(另见本文).所以我知道它被使用了,但我不能说我自己主动使用它.

编辑:你用更多的问题编辑了你的问题,这里有一些更多的答案:

  • 这里有人试图用Icon开发吗?
    可能,但它主要是大学使用的教育语言

  • 它是一种编译或解释语言?
    它是编译的

  • 这种语言的优点和缺点是什么?
    它是一种非常高级的编程语言,据说非常适合字符串和更高的结构,但是Icon的许多新颖的东西已经出现在其他语言中.你不能真正把语言看作科学的东西,尽管它擅长做图形和字符串

  • 在哪个区域它比其他一些语言(垃圾收集......)更好?
    Icon很难用另一种语言取代,因为它非常独特.垃圾收集不是你需要担心的事情,但如果你今天用Java,C#,Rebol或Ruby编程,那么Icon可能是一个很好的中断,但可能不会取代你当前流行的语言

换句话说:享受骑行,下载,尝试,惊讶,然后再次离开.把它放在你的简历下"其他语言",但不要指望它会给人留下太多的印象;-)

PS:这是一种你很容易在现实生活中遇到它的场景中容易掌握的语言(虽然它可能是Unicon).