LINUX.ORG.RU

Вышла версия 0.92 языка программирования Factor

 , ,


0

0

16 февраля 2010 г. после почти двухлетнего перерыва вышла версия 0.92 языка программирования Factor. Сам язык представляет собой развитие языка Forth, в который добавлены объектно-ориентированные возможности с полиморфизмом, автоматическая сборка мусора и JIT компиляция. Также на язык оказали влияние Lisp и Smalltalk.

Factor 0.92 now available

Официальная страница языка Factor

youtube Авторская презентация языка Factor



Проверено: anonymous_incognito ()
Последнее исправление: anonymous_incognito (всего исправлений: 1)

1. На форте написаны биосы сановских спарковых серверов.

Я знал мужика, который на форте писал ПО для космических аппаратов серии «Вега», летавших к Венере и комете Галлея. То, что можно сделать на форте, нельзя сделать ни на чём другом — штука абсолютно уникальная. Правда, трудоёмкость разработки зашкаливает.

2. Современный фортран начиная со стандарта 90 — это по сути дела Алгол-68, язык, по читаемости превосходящий даже паскаль и аду (и тем более всё остальное). Проблема для написания вспомогательных средств для работы с кодом состоит в том, что компиляторы сохранили совместимость с фортраном-77, и язык по сути дела состоит из двух абсолютно разных языков.

Orlusha ★★★★
()
Ответ на: комментарий от anonymous

> существует очень ограниченный выбор

существуют очень ограниченные и совершенно необучаемые балбесы.

Все остальное по сути есть жидкие каловые массы,

По сути это заявление никто ещё не обосновал.

anonymous
()
Ответ на: комментарий от annulen

задачи сильно разные бывают. Где-то питон достаточен, а где и «производительность плюсов не устраивает».

anonymous
()
Ответ на: комментарий от hobbit

>А Форт был великолепен, да...

Если бы в мейнстриме водились форт-процессоры, то форт был бы востребован. Но увы: вместо этого пишут ПО для МК и даже смарт-карточек на жабе.

Macil ★★★★★
()

Вообще интересно. Думается мне, что у языка мощный потенциал.

Какие перспективы у языка в плане инструментария по верификации? Т.е. меня интересует вопрос применения для ответственных применений.

yantux
()
Ответ на: комментарий от Macil

В Питере делали такие процессоры, т.е. прошивали Xilinx. Получался девайс для кассовых аппаратов. По моему сейчас есть у FreeScale четырёх разрядные микроконтроллеры программируемые на Форте.

yantux
()
Ответ на: комментарий от anonymous

плюсы прозрачно интегрируются с С и асмом

annulen ★★★★★
()

Возвращаясь к теме Фактора

А можно я вернусь к теме?

Во первых в новости не упомянуто что примерно два раза в месяц собирается очередная вполне стабильная «бета» фактора, так что номер 0.92 (а не, скажем 2.5) — это некое свидетельство перфекцонизма Пестова, а не заброшенность языка.

А во вторых это очень интересная альтернатива SBCL — близкие возможности и показатели плюс большой набор готовых к употреблению (на всех поддерживаемых платформах, включая оффтопные на этом сайте) библиотек, включая GUI, веб-сервер и веб-фреймвок.

be_nt_all ★★
()
Ответ на: комментарий от yantux

Какие перспективы у языка в плане инструментария по верификации? Т.е. меня интересует вопрос применения для ответственных применений.

Не очень ясно, про какие ответственные применения идет речь. Если про real-time - то очевидно, что сборка мусора и real-time несовместимы. Кроме всего прочего пока еще не было версии 1.

Следует заметить, что под 64 бита factor компилируется успешно. Прилагаемые демки запускаются. Имеются библиотеки для работы с интерфейсом. Имеется удобный интерактивный интерпретатор с пошаговым отладчиком. Это видно на презентации.

Мне еще понравилось следующее:

Автор поставил задачу добиться независимости от конкретной реализации компилятора C++ и добиться чтобы компиляция работала и под GCC, и под MSVC. Replacing GNU assembler with Factor code

Автор занимается оптимизацией полиморфных вызовов. Factor's implementation of polymorphic inline caching

Автор - наш соотечественник. Если уж у нас нет своих процессоров, то пусть будут хотя бы свои языки программирования.

sign
() автор топика
Ответ на: комментарий от yantux

>В Питере делали такие процессоры, т.е. прошивали Xilinx.

Видел видел. Насколько я помню, SP-Forth тоже имеет питерские корни. Еще натыкался на разработки во Владимирском университете.

Но это все-таки не настоящие форт-процессоры, тем более ни разу не мейнстрим.

По моему сейчас есть у FreeScale


Много чего интересного есть в природе. Но есть много-много случаев когда во всех отношениях лучшие разработки были запилены заведомо худшими, но более привычными, распиаренными и т.п.

Macil ★★★★★
()
Ответ на: Возвращаясь к теме Фактора от be_nt_all

> Во первых в новости не упомянуто что примерно два раза в месяц собирается очередная вполне стабильная «бета» фактора, так что номер 0.92 (а не, скажем 2.5) — это некое свидетельство перфекцонизма Пестова, а не заброшенность языка.

Я про это не знал.

Но по любому видно, что язык не заброшен и активно развивается.

А во вторых это очень интересная альтернатива SBCL — близкие возможности и показатели плюс большой набор готовых к употреблению (на всех поддерживаемых платформах, включая оффтопные на этом сайте) библиотек, включая GUI, веб-сервер и веб-фреймвок.

Да наличие версии под windows для языка программирования - это огромный плюс. Мне кажется, что многие проекты отсутствие порта под windows сильно уменьшало возможности применения. Можно вспомнить хотя бы git и postgresql, у которых нативные порты появились примерно около года назад.

sign
() автор топика

>языка программирования Factor

Реквестирую язык программирования Факт и язык программирования Аргумент.

kklausd
()
Ответ на: комментарий от sign

Если про real-time - то очевидно, что сборка мусора и real-time несовместимы


Совместимы. Доказано www.ajile.com

This differentiates the aJile processor from ARM or Intel cores which require that Java is translated in to an intermediate machine language before running. It can also lead to processing speed and power savings

electronicsweekly.com/Articles/2009/03/04/45590/real-time-java-processor-speeded-up-for-embedded-apps.htm

Karapuz ★★★★★
()
Ответ на: комментарий от Karapuz

>>Если про real-time - то очевидно, что сборка мусора и real-time несовместимы

Совместимы. Доказано www.ajile.com

Что-то у меня этот сайт не открывается

This differentiates the aJile processor from ARM or Intel cores which require that Java is translated in to an intermediate machine language before running. It can also lead to processing speed and power savings

Не понимаю каким это боком относится к сборке мусора. Вроде здесь речь про скорость трансляции-исполнения байт-кода и экономию электроэнергии.

Realtime убивает не скорость выполенния - его убивают недетерминированные задержки/заморозки GC - stop the world.

Кстати почему-то для realtime Java у Sun есть отдельная виртуальная машина Java RTS. В ней добавлены понятия Immortal memory и Scoped memory. И та и другая сборщику мусора неподвластна. Immortal memory - область памяти, из которой можно выделять память по запросу. Scoped memory - что то наподобии стэка, которая автоматически освобождается при закрытии контекста. И еще там введено понятие NoHeapRealtime thread, которым запрещено размещать объекты в куче, которой заведует сборщик мусора, чтобы они могли в любой момент времени прервать сборщика мусора и выполнить нужную работу к нужному сроку.

sign
() автор топика
Ответ на: комментарий от temal

>>Если про real-time - то очевидно, что сборка мусора и real-time несовместимы.

А мужики из Sun-то и не знали. http://java.sun.com/javase/technologies/realtime/index.jsp

Интересно. Читаем одно и то же - а выводы делаем противоположные ;-)

sign
() автор топика
Ответ на: комментарий от sign

> Мне кажется, что многие проекты отсутствие порта под windows сильно уменьшало возможности применения. Можно вспомнить хотя бы git и postgresql, у которых нативные порты появились примерно около года назад.

ЛОЛШТО? Это с чем же я игрался в 2006 году под названием PostgreSQL for Windows?

hobbit ★★★★★
()
Ответ на: комментарий от sign

Об авторе

>Автор - наш соотечественник. Если уж у нас нет своих процессоров, то пусть будут хотя бы свои языки программирования.

Здесь немного разачарую, но автор скорее космополит. Покинул родную Тверь в младшнм школьном возрасте, дество провёл в Новой Зеландии и Австралии, универ закончил в Канаде, живёт в США. Ещё ему сейчас 25, а начал программировать на Java он лет в 10 (тогда же зарегестрировал свой аккаунт на sourceforge).

be_nt_all ★★
()
Ответ на: комментарий от hobbit

Мне кажется, что многие проекты отсутствие порта под windows сильно уменьшало возможности применения. Можно вспомнить хотя бы git и postgresql, у которых нативные порты появились примерно около года назад.

ЛОЛШТО? Это с чем же я игрался в 2006 году под названием PostgreSQL for Windows?

Это мне неизвестно.

Хотя создание нативного порта PostgreSQL for Windows начинается с ветки 8.0. первая сборка под Win на официальном сайте появляется здесь

http://www.postgresql.org/ftp/binary/v8.2.11/

Дата 2008-10-31 10:34:18

Помню, кажется еще была версия 8.2.7 - ее почему-то на сайте сейчас нет.

А проблема такого долгого отсутствия порта заключается в том, что Windows не является POSIX системой и на ней не существует вызова fork. Поэтому всю работу связанную с многозадачностью приходится полностью переделывать.

sign
() автор топика
Ответ на: комментарий от sign

>Хотя создание нативного порта PostgreSQL for Windows начинается с ветки 8.0. первая сборка под Win на официальном сайте появляется здесь

А проблема такого долгого отсутствия порта заключается в том, что Windows не является POSIX системой и на ней не существует вызова fork. Поэтому всю работу связанную с многозадачностью приходится полностью переделывать.

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

Ingwar ★★★★★
()

Фактор — это фортолисп :)

Ещё один момент, слабо освещённый в новости.

Хотя синтаксически Фактор — это Форт, семантически он ближе к CommonLisp (с синтаксисом Форта, т. е. скобочек там куда меньше).

А реализация построено в точности на тех де принципах, что и SBCL. То есть это не сколько JIT, как было объявлено в новости, сколько итеративный нативный (оптимизирующий) компилятор.

be_nt_all ★★
()
Ответ на: Об авторе от be_nt_all

Проправочка:

s/Тверь/Томск/

Но не суть важно. В общем фактор ещё менее русский язык программирования, чем linux — финская OS :)

be_nt_all ★★
()
Ответ на: комментарий от morphine

>Скоро картина будет такой

Почему «будет»? Она такой была всегда :)

KRoN73 ★★★★★
()
Ответ на: комментарий от Orlusha

>Правда, трудоёмкость разработки зашкаливает.

В равных прочих условиях трудоёмкость разработки на Форте на порядок ниже, чем на классических языках. Для этого он и разрабатывался :)

На форте написаны биосы сановских спарковых серверов.


Почему-то люди ещё часто PostScript забывают :)

KRoN73 ★★★★★
()
Ответ на: комментарий от Gleb-ax

>Форт и поныне жив, и используется для программирования встроенных систем. В эту область кодерам на си-буль-буле вход строго запрещён.

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

ЗЫ Все знакомые эмбедщики пишут на плюсах, иногда асм в узких местах/загрузчике.

A-234 ★★★★★
()
Ответ на: комментарий от Orlusha

>Кого сейчас интересует производительность кода?

Тех, кто с ним работает. Пользователей, то есть.

kraw ★★★★
()
Ответ на: комментарий от kraw

>>Кого сейчас интересует производительность кода?

Тех, кто с ним работает. Пользователей, то есть.

Как раз это мало их интересует. Важнее функциональность, чтобы программа выполняла нужные вещи. А медленнее или быстрее в два или три раза - это часто настолько неважно, что заморачиваться программерам по этому поводу не стоит в большинстве случаев :)

dave ★★★★★
()
Ответ на: комментарий от sign

> Если уж у нас нет своих процессоров, то пусть будут хотя бы свои языки программирования.

Спасибонинада. Фокал с Рапирой не забуду.

anonymous
()
Ответ на: комментарий от KRoN73

> Почему-то люди ещё часто PostScript забывают :)

Это, хвала Всевышнему, ни фига не Форт, а приличный язык. В пошкрипе нет immediate words.

anonymous
()
Ответ на: комментарий от anonymous

> ЛОР: скандалы, интриги, расследования

И в этом весь ЛОР :-)))))))))))))))))))))))))))))))))))))))))

rjaan ★★
()
Ответ на: комментарий от dave

> Как раз это мало их интересует. Важнее функциональность, чтобы программа выполняла нужные вещи. А медленнее или быстрее в два или три раза - это часто настолько неважно, что заморачиваться программерам по этому поводу не стоит в большинстве случаев :)

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

rjaan ★★
()
Ответ на: комментарий от Chaser_Andrey

> Для каких задач этот язык планировался и чем он лучше аналогов?

Ну изначально Пестов собирался игру на нём делать :D (это было давно, и лет ему было ещё меньше, чем сейчас)

Сейчас можно использовать, в частности, для Веба и решения нетривиальных задач — собственно примерно тот же domain specific как и для CommonLisp. Кое какие примеры использования можно найти в поставке Factor.

Аналог — Steel Bank Common Lisp (SBCL)

Основное отличие фортовский, а не лисповский синтаксис — кому плюс, кому минус — сами решайте.

А лучше тем, что в отличие от SBCL имеется нормальная реализация под винду и из коробки идёт с готовым к употреблению в Web и на десктопе набором библиотек. В то время как для SBCL сборка их рабочего набора — пока квест, и документированы они в среднем хуже (если я не прав, пусть Archimag меня поправит).

be_nt_all ★★
()
Ответ на: комментарий от dave

А медленнее или быстрее в два или три раза - это часто настолько неважно, что заморачиваться программерам по этому поводу не стоит в большинстве случаев :)


Тебе уже сказали, ты не бывал в россейских конторах, типа налоговой, где от БД ожидают ответа по 2-3 минуты. И не говори, что это «настолько неважно»

Karapuz ★★★★★
()
Ответ на: комментарий от KRoN73

трудоёмкость разработки на Форте на порядок ниже, чем на классических языках


Почему же тогда для бангалорцев Oracle выкладывает JDeveloper, а не ForthDeveloper?

Karapuz ★★★★★
()
Ответ на: Об авторе от be_nt_all

Покинул родную Тверь в младшнм школьном возрасте, дество провёл в Новой Зеландии и Австралии, универ закончил в Канаде, живёт в США. Ещё ему сейчас 25, а начал программировать на Java он лет в 10


«Все правильно сделал»©

А jEdit он тоже в 15 лет напейсал?

Karapuz ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

ЛОРОИГРА:

Игроки: весь ЛОР Цель игры: Получить максимум игноров, самому заигнорив по минимуму. Процесс: Любой срач в комментах. Блеф поошряется.

Gukl ★★★
()
Ответ на: комментарий от Karapuz

>Sourceforge? в 1995? Не было еще

Виноват, в 15 он на sf.net зарегистрировался, в 99-м http://sourceforge.net/users/spestov

А jEdit, соответственно в 14, в 98 начал делать.

А в 10 лет просто начал писать некие java-applet игрушки (кому очень интересно, найдёт).

be_nt_all ★★
()
Ответ на: комментарий от be_nt_all

> Аналог — Steel Bank Common Lisp (SBCL)

Для винды есть Clozure CL. Другая реализация того же самого CL. И не надо никаких квестов. Реализация нормальная.

dave ★★★★★
()
Ответ на: комментарий от dave

Ну что быстрее CCL или Factor? надо будет тестики погонять... А квест — это прикручивание к CommonLisp-у gtk под Windows, или поднятие web-сервера на нём. Возможно я не прав, пусть меня лисп-гуру поправят.

А в factor всё это добро из коробки и с приличным online-хелпом.

be_nt_all ★★
()
Ответ на: комментарий от be_nt_all

Я что-то не понял. Ты похоже говоришь о более низком пороге вхождения для «Фактора». По-моему для лиспа это, вообще, не фактор :) За него итак берутся самые смелые и отважные.

dave ★★★★★
()
Ответ на: комментарий от dave

> Я что-то не понял. Ты похоже говоришь о более низком пороге вхождения для «Фактора».

Да. Это плохо?

По-моему для лиспа это, вообще, не фактор :) За него итак берутся самые смелые и отважные.

:). Я например не настолько отважен. А поскольку форт у меня — второй язык программирования был, то Factor мне в самый раз. Изучаю на досуге.

be_nt_all ★★
()
Ответ на: комментарий от Karapuz

> Тебе уже сказали, ты не бывал в россейских конторах, типа налоговой, где от БД ожидают ответа по 2-3 минуты. И не говори, что это «настолько неважно»

Чудо, а ты не путаешь «россейские конторы» с разработчиками оракла? Если заюзать их БД на питоне, то тоже будет быстро работать.

dave ★★★★★
()
Ответ на: комментарий от be_nt_all

> А поскольку форт у меня — второй язык программирования был, то Factor мне в самый раз. Изучаю на досуге.

Хорошее дело. Когда я был школьником, то форт мне очень нравился. Но тогда и компьютеров таких не было. Бекашка с фокалом была пределом мечтаний.

dave ★★★★★
()
Ответ на: комментарий от dave

> Тебе уже сказали, ты не бывал в россейских конторах, типа налоговой, где от БД ожидают ответа по 2-3 минуты. И не говори, что это «настолько неважно»

Ну если в российских конторах используют 1С (в особенности 7-й версии) с её чудной эффективностью реализации и политикой блокировки БД или нечто аналогичное, то ССЗБ.

be_nt_all ★★
()
Ответ на: комментарий от dave

(прдлж) Поэтому тогда форт был очень актуален. Я даже баловался 83-forth на такой бекашке и фиг-фортом на двк.

dave ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.