Каковы плюсы и минусы языка программирования Icon? [закрытый]

недавно я искал значки (графику), но я вижу ссылку, которая была очень интересной, был язык под названием значок, то я хочу знать:

  • здесь есть кто-то, кто уже пытался развиваться в Icon?
  • Это компилируемый или интерпретируемый язык?
  • каковы плюсы и минусы этого языка?
  • в каком районе это лучше, чем некоторые другие языки(сбор мусора...)?

6 ответов


Это очень старый язык программирования (1977), интригующе видеть, как он появляется снова. Я не помню, чтобы когда-либо видел что-либо написанное в нем, кроме экспериментальных или образовательных сценариев. Википедия имеет некоторую информацию для вас.

один из его потомков, Unicon (см. Также Unicon в Википедии), был использован на моем последнем работодателе для создания внутренних приложений. Они использовали его для 3D-дизайна (см. также этот бумага!--2-->). Так что я точно знаю, что это было используется, но я не могу сказать, что я активно использовал его сам.

EDIT: вы отредактировали свой вопрос с еще несколькими вопросами, вот еще несколько ответов:

  • здесь есть кто-то, кто уже пытался развиваться в Icon?
    возможно, но это в первую очередь обучающая язык, используемый в университетах

  • Это скомпилированный или интерпретированный язык?
    оно компилируется

  • каковы плюсы и минусы этого языка?
    это язык программирования очень высокого уровня и, предположительно, очень хорош со строками и более высокими структурами, но многие новые вещи значка с тех пор появились на других языках. Вы не можете действительно видеть язык как что-то более научное, хотя он хорошо делает графику и струны

  • в каком районе это лучше, чем некоторые другие языки(сбор мусора...)?
    значок трудно заменить другим языком, потому что он довольно уникален. Сбор мусора-это не то, о чем вам нужно беспокоиться, но если вы программируете сегодня на Java, C#, Rebol или Ruby, то Icon может быть приятным прерыванием, но, вероятно, не заменит ваши текущие популярные langauges

другими словами: наслаждаться ездить, скачать его, попробовать его, быть поражены, а затем оставить его снова. Поместите его в свое резюме в разделе "другие языки", но не ожидайте, что он произведет слишком большое впечатление ;-)

PS: это язык, который вы легко освоите в редких случаях, когда вы столкнетесь с ним в реальных проектах (скорее всего, это будет Unicon).


Я знаю, что это действительно поздний ответ,но я просто должен был сказать.

Это великолепный язык. Это один из тех языков, которые вы пытаетесь, и если вы /получите/ это, вы будете завернуты. Я использовал его для очень серьезного и ключевого внутреннего продукта в компании, и он отлично служил. Я называю это своим любимым языком; это просто весело использовать и действительно продуктивно, когда используется для правильных задач.

мой первый проект curiosity / could-be-useful-if-it-works был переводчиком из F77 мой первый разрез был дерьмовым и медленным, а вторая попытка спустя некоторое время была слаще и быстрее - именно тогда я действительно начал использовать сканирование строк должным образом. Я так и не завершил этот давно потерянный проект, потому что он стал неуместным; я перестал работать с инженерами, которые продолжали убеждать меня, что Фортран хорош.

ясно, что такие люди, как Ларри Уолл и Гвидо ван Россум, знают Icon и Unicon. Не могу сказать, насколько хорошо они это знают, но держу пари, что довольно хорошо. так они вроде бы орешки языка. Влияние ощущается. Icon и Unicon похожи на Velvet Underground или Captain Beefheart of the music world; это не мейнстрим, но люди в курсе знают их и сильно влияют.

кстати, в отличие от VU или Beefheart, значок (Un)не получает своей заслуги от того, что слишком раздражает обычных людей, поэтому аналогия плохо ломается в этом отношении... На самом деле, синтаксис и все его функции очень чистый и приятный для глаз. Любое сходство с Паскалем поверхностно. Синтаксис, конечно, выглядит как Паскаль для нетренированного глаза, но поведенчески это поляки друг от друга.

где он подходит? Он не будет конкурировать с C для жесткого высокопроизводительного кодирования, но это так же, как и большинство языков, которые не могут превзойти C, когда производительность процессора является единственным решением. Он не может превзойти массивную коллекцию библиотек Perl в CPAN, но это, вероятно, единственная вещь в Perl, которая курит это! Черт, если вы хотите что-то, что предлагает CPAN, перепишите и пожертвуйте его в репозиторий Unicon. Он не имеет ничего похожего на модель безопасности Java, но это так же, как и большинство других языков. Теперь ты, наверное,понял.

Я начал с значка, а затем несколько лет спустя перешел на Unicon, где основная деятельность в эти дни. Значок сохраняется "стабильным, чистым и полным", как он стоит. Unicon собрал кучу расширений и превратил его в сплоченный проект. Наиболее важным является гораздо лучшее покрытие стандартных вызовов O / S и полная система OO для ввода утки.

Unicon's OO даже поддерживает круговое наследование, не говоря уже о MI! Это в основном для мозга-f * * k, но также и потому, что он оказался работоспособным. Конечно, любой разумный программист обычно не должен быть таким глупым, если они действительно не реализуют что-то в математике (например, Polar

чтобы сначала ответить на простой вопрос, Да, он скомпилирован, но в виде PCODE, который затем выполняется виртуальной машиной. Построенные исполняемые файлы имеют заголовок хэш-взрыва, поэтому они могут быть выполнены напрямую. На окнах у них есть .Заголовок EXE (или это .COM?) таким образом, они также могут быть выполнены непосредственно. Излишне говорить, что они не переносятся между Unix и Windows, хотя Powershell может сделать что-то, чтобы исполняемые файлы Unix запускались непосредственно в Windows. На практике шаг компиляции очень быстрый и обрабатывается обычными makefiles. Unicon также имеет быстрый-N-грязный шаг компиляции-N-запуска для возни, но любой проект за пределами total roughie лучше обслуживается с фазой make.

сетевые функции являются частью Unicon. Портативная графическая библиотека была доступна Icon в течение длительного времени, а также является частью Unicon. Мусор коллекция-это данность, так как это язык очень высокого уровня.

две наиболее важные уникальные функции-это генераторы и сканирование строк. Я не буду вдаваться в это - лучше вам скачать и играть через учебники, пока он не утонет. Как только генераторы доступны для языка, сканирование строк работает красиво. Я не думаю, что сканирование строк может работать так аккуратно без него. Еще раз, играйте, пока это не имеет смысла. Это очень интересно и мощно альтернатива использованию регулярных выражений, и это была важнейшая часть моей работы.

генераторы-одна из тех вещей, которые умоляют поставить на любом новом языке. То, что его нет на радаре, - это трагедия ИМХО. Если бы я серьезно сел и мечтал о создании следующего популярного языка с открытым исходным кодом, это было бы частью ядра. Но у кого есть время? Мне нужно оплатить счета.

самые последние версии Вокруг 2012 + теперь имеют истинную многопоточность и являются вероятно, стабильна, когда я пишу это.

сборки Windows в основном актуальны в эти дни в Unicon. Сборка Windows была отсортирована, и я успешно поставил свои основные проекты на Windows с очень небольшим горем, кроме очевидного горя от необходимости использовать Windows.


Да, я использовал значок и нашел его интересным языком. В частности, он имеет yield оператор, который позволяет подпрограмме возвращать возможный ответ, но сохранять свое состояние в случае, если требуется другой ответ. Среди прочего, это делает coroutines и другие интересные вещи, которые можно реализовать чисто.


Я использовал значок для того, что кажется навсегда, и все еще использую его сегодня. Он является преемником "Снобол" и преемник Снобол, в Spitbol ("скорейшего осуществления Снобол"). Он имеет синтаксис Algol (как и C и множество других вариантов) и отличается построением в "волшебной памяти" (хэш-таблицы), которые поддерживаются их собственным отличительным синтаксисом. Многое из того, что вы могли видеть в Icon в прошлом, теперь появляется в другом месте. Например, в Icon abc ["xyz"] является хэшированным индексом в хэш-таблицу (в значке, "таблица"), здесь abc, с ключом, xyz. JavaScript имеет такое же syntaxed ссылка на объект недвижимости. Он также имеет встроенные списки, подпрограммы, рекурсию (каждый приличный язык имеет рекурсию), целые числа произвольного размера и синтаксический анализ строк с резервным копированием через альтернативы - вероятно, самая мощная и полезная часть языка. Я использую его сегодня, чтобы заменить сценарии оболочки, которые нуждаются в интенсивной обработке строки / хэша. В прошлой жизни много лет назад я написал надстройку C-language для Icon это связано с Oracle. Ему не хватает множества функций, встроенных, скажем, в PHP или Python или стандартную библиотеку C. Но, я бы предположил, для подавляющего большинства кодирования, которое я когда-либо делал с ним, они все равно не были нужны. Он быстро кодируется и читается. Как и в любом другом языке, вы выбираете его, когда подходит программная обувь. Еще одна интересная программа в Icon, которую я помню, была простым переводчиком из styel SQL Ingress в Oracle. Вы даже можете использовать его для CGI программирование. Когда есть соответствие потребностей возможностям, он быстро программируется, прост в использовании и, верьте или нет, весело использовать. Он не был продлен в течение многих лет (за исключением Unicon), но и ksh (или его внешний вид похож на bash).


это обсуждается здесь -http://lambda-the-ultimate.org/node/136

unicon-более популярная, расширенная реализация (это вилка значка, которая лучше поддерживается и имеет объекты) -http://unicon.sourceforge.net/index.html

Я не использовал его, но я знаю, что он имеет довольно долгую историю - он никогда не стал очень популярным, но его использование генераторов повлияло на языки, такие как python.

посмотреть также

unicon включает интерпретатор и компилятор для обоих языков icon и unicon -http://unicon.org/utr/utr11.html

кроме того, он должен быть особенно хорош в обработке строк.


Он напоминает Паскаль. Вы должны скомпилировать его.