Чи достатньо повна або стабільна IronScheme, щоб її варто вивчити?


17

IronScheme згадується у Вікіпедії як спадкоємець невдалого проекту під назвою IronLisp, що приносить Lisp до CLR та .NET, як Clojure робить для JVM. Хтось має досвід роботи з цією мовою? Це виглядає досить повно (99%), але я не впевнений, як оцінити, чи варто мій час поспішати з налаштуванням чи ні. Під стабільним або повним, я маю на увазі використання його для реальних проектів, а не просто знайомство з інструментами та проблемами стилю Project Euler.

Відповіді:


26

Я автор IronScheme. Я не дуже впевнений, як відповісти на ваше запитання, але спробую :)

IronScheme спочатку намагається реалізувати схему (конкретно R6RS), другою метою є сумісність CLR.

У порівнянні з Clojure (орієнтуючись на їхні погані моменти), IronScheme не буде:

  • давати вам винятки з виконання CLR; IronScheme використовує обробку виключень Scheme
  • дають вам «нескінченні» стеки; IronScheme належним чином рецидивує
  • бути важким для налаштування; просто витягніть в каталог і перейдіть
  • довго запускати; IronScheme (коли ngen'd) потребує лише 0,1 секунди, щоб запустити REPL
  • бути неоднозначним; IronScheme реалізує стандартизовану специфікацію

На жаль, де перемагає Clojure:

  • Документація
  • Каркаси та бібліотеки
  • Спільнота користувачів

Це хвилює для IronScheme, оскільки останні 3 згаданих - це дуже великий варіант курячого яйця. Особисто я схильний створювати бібліотеки лише тоді, коли вони мені потрібні, і з дуже крихітною спільнотою користувачів, окрім звітів про помилки, користувачів не так багато. Я хотів би більшу спільноту користувачів.

Що стосується підтримки, я зазвичай допомагаю користувачам якомога швидше. Це свідчення можна побачити з моїх часів відповідей на дошках обговорень IronScheme. Крім того, помилки, як правило, виправляються, як тільки вони були ідентифіковані.

Щодо стабільності, то база даних коду досить зріла, і наразі лише виправлення помилок та оптимізації - єдині доповнення коду.

Що стосується зручності використання, якщо ви знайомі з .NET рамкою, ви можете зробити майже все, що можна з IronScheme, як і будь-яку іншу мову .NET; це може бути складніше або простіше залежно від того, наскільки ви готові абстрагуватися до більшої схематичної ідіоми. У IronScheme речі дуже легко написати; наприклад, вся моя структура MVC ледь складає 400 рядків коду схеми, завдяки натисканню на ASP.NET (я, звичайно, не люблю переосмислювати колесо).

Сміливо запитайте роз'яснення, якщо відповіді недостатньо. Деміан теж робить хороші моменти з точки зору ремонту.

З повагою

леппі


1
Як IronScheme + Net порівнюється з, скажімо, ракеткою, рамками wrt та бібліотеками?
Joe Internet

Я не усвідомлював, що є доступна структура MVC. Це частина завантаження IronScheme?
Роберт Харві

1
@Robert Harvey: Так, деякий зразок коду знаходиться в каталозі веб-зразків. Зараз також працює на ironscheme.net/doc та eval.ironscheme.net
leppie

@Joe Internet: Рамок насправді немає, але IronScheme включає багато SRFI. Більшість бібліотек, які я написав, призначені для взаємодії CLR.
леппі

2

Примітка. У мене немає досвіду роботи з IronScheme, тому подумайте про зерно солі (хоча це більше спрямовано на використання технології крайового кровотоку).

У той час як я буду грати з новою технологією з тривіальними проблемами (особисті інструменти, Project Euler тощо), я дуже обережно використовую цю технологію у повномасштабних проектах. Чому?

  • Підтримка громади: від кого ви отримаєте допомогу, коли потрапили в стіну?
  • Непередбачені проблеми: Якщо я не ретельно перевіряв технологію, чи справді я хочу зануритися в код бібліотеки, щоб спробувати вирішити проблему, яка, можливо, не зустрічалася? Якщо я хотів би бути членом команди, то, можливо, але 99% часу я просто хочу виконати свій проект і не потрібно турбуватися про сантехніку.
  • Прихильність команди: Що станеться, якщо той, хто очолює проект, витягне штекер? Мої проекти потім осиротіли, якщо я не хочу взяти на себе проект, щодо якого у мене є ті ж самі питання, що і в попередньому пункті.

Таким чином, в той час як вивчення нових технологій є завжди гарна річ (найгірше , що може трапитися, що ви дізнаєтеся , як хто - то інший буде здійснювати що - то - що це добре), це може дійсно вкусив тебе в дупу , якщо прийняти його в початку для повних проектів .


3
Хоча у вас є суть, мені цікаво, як ви очікуєте, що нові технології стануть випробуваними на битві, якщо ваша порада не покладатися на них у бою? ;)
back2dos

1
Ви маєте рацію, це дещо спіймана ситуація. Я просто кажу з власного досвіду та уподобань. Я б скоріше зосередився на завершенні справи, а не на потенційній роботі з сантехнікою чи припиненими бібліотеками. Очевидно, що хтось повинен це робити .. Я б просто скоріше не робив цього на своїх проектах :)
Demian Brecht
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.