Ларри МакВой (https://en.wikipedia.org/wiki/Larry_McVoy) (Larry McVoy), руководитель компании BitMover, принимавший непосредственное участие в кризисе (https://lwn.net/Articles/130746/), который привёл к появлению Git (http://git-scm.com), представил (https://sourceforge.net/p/tcl/mailman/tcl-core/thread/201604... первый общедоступный выпуск языка программирования L (http://www.little-lang.org) (также именуемого Little), который разрабатывался силами компании BitMover в течение примерно девяти лет.
Основной целью проекта является создание альтернативы языку программирования Tcl (http://www.tcl.tk) и его графическому тулкиту Tk, которая была бы совместима с Tcl на уровне байт-кодов интерпретатора (Tcl 8.6), но имела бы более привычный для большинства программистов Си-подобный синтаксис. L доступен (http://www.little-lang.org/download.htm) для платформ GNU/Linux, OS X и Windows. Исходный код (https://github.com/bitkeeper-scm/little-lang) распространяется под пермиссивной BSD-подобной лицензии, аналогичной лицензии на Tcl/Tk. Некоторые части L также доступны под лицензией Apache 2.0.Основные особенности L:
- Си-подобный синтаксис с обилием заимствований из Perl.
- Поддержка списков, массивов, словарей и структур.
- Используется движок регулярных выражений Perl (PCRE), который заменил реализацию регулярных выражений Tcl. Поддерживаются операторы Perl сопоставления текста с регулярными выражениями:
<font color="#461b7e">
buf =~ /.*foo/
</font>
- Ввод-вывод в стиле Perl:<font color="#461b7e">
while (buf = ‹›)
</font>- Отсутствует управление памятью - используется подсчёт ссылок на объектах.
- Компилируется в байткод Tcl, так что L может вызывать Tcl и Tcl может вызывать L.
- Полный доступ к рантайму Tcl и любым внешним модулям для него.
- Полный доступ к графическому тулкиту Tk. Примеры (http://www.little-lang.org/gui.html).
URL: https://sourceforge.net/p/tcl/mailman/tcl-core/thread/201604...
Новость: http://www.opennet.ru/opennews/art.shtml?num=44271
1е апреля вроде прошло.
О, еще один?
Интересно, когда запиливается например еще одна файловая система, никто не говорит "о еще одна". А языки программирования чем хуже?
Чем он лучше Го?
Тулкит для GUI из коробки.Причём я серьёзно. Я неплохо умею Tcl/Tk, и оч. люблю Go, но отсутствие "goto решения" для создания *десктопного* GUI для него создаёт ситуацию, что на десктопе Go делать пока нечего.
(Да, я знаю про [[https://github.com/golang/go/wiki/Projects#guis-and-widget-t... это]], но до уровня Tk, который работает везде и не имеет особых зависимостей ни на одной из своих платформ, там очень далеко.)
для Go тоже есть Tk: https://github.com/edartuz/go-tk
Особеность Tk такова, что идиоматично использовать его можно только из тикиля. Использование же его из других языков напоминает сношентя с JNI.
Особенность Tk такова, что он в любой системе выглядит максимально отвратительно, поэтому программы на этом можно писать только от мазохизма и при твердой уверенности что пользователи тебя не найдут.
Современный Тk выглядит очень прилично. Не путайте сегодняшний Tk и Tk десятилетней давности.
> работает вездеВ этом вашем "везде" -- вся проблема дурацких программ!
Чем более мощное "везде" -- тем отвратительные результат в частности на GNU/Linux.
В том числе касается GUI
>> работает везде
> В этом вашем "везде" -- вся проблема дурацких программ!
> Чем более мощное "везде" -- тем отвратительные результат в частности на GNU/Linux.
> В том числе касается GUIПожалуйста, опишите -- как можно подробнее -- какие существуют варианты получить портабельное приложение с GUI и избежать подразумеваемых Вами проблем.
> Чем более мощное "везде" -- тем отвратительные результат в частности на GNU/Linux.Да не скажи, Qt нормально это делает. GTK в этом плане похуже. У явы с гуем по жизни безобразие, в дотнете разброд, веб - вылядит сносно, но медленный...
> Чем он лучше Го?Тем, что не умрёт, когда гугл этого захочет.
чушь, Го никогда не зависел от гугла. Изначально это была поделка очень небольшой команды разработчиков (Чейни, Пайк и Ко), которой те занимались в свободное от основной работы время. А сейчас тем более - репозиторий (пусть и не основной) на гитхабе, большая часть коммитеров вообще не относится к гуглу.
Тем, что в его названии не 2, а только 1 буква. Шутка. Я за Go, но как подметили выше у него всё ещё никак с GUI.
Тем что это второй известный мне язык, в котором регексы имеют хороший, компактный синтаксис, которым _приятно_ пользоваться.
> Тем что это второй известный мне язык, в котором регексы имеют хороший,
> компактный синтаксис, которым _приятно_ пользоваться.А первый кто?
Эмблема веселая у них: перо от Tcl, верблюд от Perl и буква C сами догадайтесь от чего.
> Эмблема веселая у них: перо от Tcl, верблюд от Perl и буква C сами догадайтесь от чего.А если убрать верблюда, то C очень неприлично выглядит.
Плееры и браузеры теперь писать не модно
Это какой-то некромант 80 лвла.
$ go L
> принимавший непосредственное участие в кризисеЗабавная заслуга, да. А если уточнить - это именно он был тем злобным проприетарщиком который по сути отобрал у Линуса права на использование VCS BitKeeper, в связи с чем и понадобилось срочно писать Git.
Чему-либо от такого человека доверять сложно, тем более если речь о таком фундаментальном продукте как язык программирования.
>> принимавший непосредственное участие в кризисе
> Забавная заслуга, да. А если уточнить - это именно он был тем
> злобным проприетарщиком который по сути отобрал у Линуса права на использование
> VCS BitKeeper, в связи с чем и понадобилось срочно писать Git.Как обычно, религиозные фанатики видят только то, что хотят видеть.
Линус а) очень высоко оценил BitKeeper, и был очень доволен переходом на него; б) основные идеи, положенные в основу Git, были взяты из BitKeeper'а.
Торвальдс прагматик: на тот момент, когда он начал "зашиваться" работая с голыми патч-файлами, *адекватных задаче* систем управления версиями не существовало, и он взял ту, которая работала, работала хорошо, и была доступна прямо тогда. Если бы он был религиозным фанатиком, Linux был бы сейчас там же, где Hurd.
Речь о доверии. Ларри и его компания поступили как наркобарыги- дали первую дозу бесплатно, дождались, когда клиент плотно подсядет, а потом уже начали снимать сливки. В данном случае путем манипуляции с лицензионными условиями и в конечно счете отзыве разрешения в расчете на крупный куш. Так с какого им теперь опять доверять?
> Речь о доверии. Ларри и его компания поступили как наркобарыги[...]
> В данном случае путем манипуляции с лицензионными условиями и
> в конечно счете отзыве разрешения в расчете на крупный куш.[...]
Не было там никаких манипуляций и расчётов на куш (Куш от чего? Разработку Linux никто напрямую не финансирует -- это не организация.), а были условия использования, и Тридж (https://lwn.net/Articles/132938/), который эти условия нарушил, реверснув часть протокола Биткипера и сделав на основе этих данных программу, которая общалась с сервером Биткипера вместо клиента Биткипера.
Это стандартная ситуация, в которой все правы и все виноваты одновременно.
С одной стороны, понять Триджа вполне можно (и потом он точно так же реверснул биткипер, как он это делал с CIFS и DCE/RPC, благодаря чему у нас давно есть SAMBA); с другой стороны, он совершенно явно нарушил условия, которые поставил -- и имел полное право поставить -- МакВой.
> Забавная заслуга, да. А если уточнить - это именно он был тем
> злобным проприетарщиком который по сути отобрал у Линуса права на использование
> VCS BitKeeper, в связи с чем и понадобилось срочно писать Git.Чего-чего? BitMover предоставил разработчикам ядра возможность бесплатного использования BitKeeper, но с определёнными условиями, которые сообщество нарушило и упёрлось не желая прекратить попытки создания бесплатного клона BitKeeper. Ларри раз предупредил, что как-то нехорошо нарушать договрённости и пытаться клонировать BitKeeper, второй раз предупредил, а третий разругался со всеми и перестал выдавать бесплатные ключи.
>> злобным проприетарщиком который по сути отобрал у Линуса права на использование
> что как-то нехорошо нарушать договрённости и пытаться клонировать BitKeeper, второй раз
> предупредил, а третий разругался со всеми и перестал выдавать бесплатные ключи.Прямо судороги берут и Кондратий сводит, как подумаю, ни дай Ларри, Торвальдс отберёт разрешение и перестанет выдавать бесплатные ключи от git-а! Надо срочно учить базаар им.батьки и alpha.gnu.org ^W github.com зеркалить. >>/>>
Ждём форки под названием Мелло и Ниа
О, любители бурятских мультиков подтянулись. Что там нового на фронте?
Кто здесь?
Понятия не имею что нового, тетрадка единственное адекватное ониме без всяких мех и панцушотов
Какая-то странная у него мотивация для создания. Они используют 99% С и 1% tcl. У них есть один хороший tcl кодер, но остальным нужно делать code review и им тяжело переключаться с C на tcl для этого. Ситуация понятная. Вот только как ее решает использование еще одного языка, который и не С и не tcl мне решительно непонятно.
Вот этот один хороший tcl кодер и будет использовать 100% возможностей tcl. Потому что интероперабилити с tcl - один из гоулов. Вы точно внимательно про мотивацию прочли?
Проблема была в code review. Это вынуждало всех знать два языка и переключаться между ними. Как ее решает новый язык? Ведь теперь всем надо знать уже три языка. Он бы ее решал, если бы они выкинули весь свой код на C и tcl и заменили его на L.
Вау. Как сигник и перловик могу только порадоваться.
LoL
А язык-то выглядит вполне симпатично. С + Perl без низкоуровневой мороки первого и идиотских @%%{$X} второго.
Вообще-то С довольно таки выскоуровневый язык. Единственное в чём заключается морока - ручное управление памятью - палка о двух концах.
Оно не ручное, оно такое же как в Tcl (и в Perl 4-5, кстати (про 6 ничего не могу сказать)), потому что используется интерпретатор Tcl. Там любая функция, "принявшая" значение (представленное спец. структурой данных на уровне интерпретатора) в свою область видимости, увеличивает счётчик ссылок на объекте перед тем, как позвать другую функцию на этом объекте, а потом уменьшает его. Как только кол-во ссылок переходит через 0, объект разрушается. Также используется механизм копирования при записи (CoW), позволяющий иметь в тикле семантику передачи всего по значению, но при этом реально копировать значения только в случае необходимости.То есть ручного управления памятью (типа malloc/free) тут нет, но нет и сборщика мусора (как в Go, например).
Спасибо за интересный комментарий, но я не это имел ввиду =)
Ждем ебилдов.
Я так понял, от синтаксиса Tcl там мало что осталось. Структуру "<имя команды> <арг1> <арг2> … <аргN>" сломали, и получился какой-то недо-Си.
Не, ну а чо? Когда-то же решили заменить макроассемблер PDP-11 структурным языком, который был бы полностью совместим с байт-кодами интерпретатора команд. То бишь, просто взяли команды процессора PDP-11, взяли его систему адресации, и оформили это дело в виде языка высокого уровня, не забыв поддержку макросов. (не даром "МАКРО-ассемблер", т.е. сборщик макросов)
Так получился язык программирования "C".
К стати, весьма машинно-зависимый язык, т.к. его синтаксис полностью повторяет системы команд PDP-11 и не может быть однозначно скомпилирован на многих других процессорах.
Если чесно ИМХО глупо язык называть одной буквой, ведь ньюфагам гуглить непонятно как. Плохое ключевое слово.
Именно по этой причине перед релизом они его "ребренднули" в Little и сделали для него домен little-lang.org.Собственно, с Go такой же подход: вообще он Go, но гуглят его по токену golang.
(Кстати, из-за этого масса ньюфагов его пытается называть Golang, что вызывает выброс кирпичей у ряда аксакалов.)