The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Представлен первый общедоступный выпуск языка программирования L

19.04.2016 14:18

Ларри МакВой (Larry McVoy), руководитель компании BitMover, принимавший непосредственное участие в кризисе, который привёл к появлению Git, представил первый общедоступный выпуск языка программирования L (также именуемого Little), который разрабатывался силами компании BitMover в течение примерно девяти лет.

Основной целью проекта является создание альтернативы языку программирования Tcl и его графическому тулкиту Tk, которая была бы совместима с Tcl на уровне байт-кодов интерпретатора (Tcl 8.6), но имела бы более привычный для большинства программистов Си-подобный синтаксис. L доступен для платформ GNU/Linux, OS X и Windows. Исходный код распространяется под пермиссивной BSD-подобной лицензией, аналогичной лицензии на Tcl/Tk. Некоторые части L также доступны под лицензией Apache 2.0.

Основные особенности L:

  • Си-подобный синтаксис с обилием заимствований из Perl.
  • Поддержка списков, массивов, словарей и структур.
  • Используется движок регулярных выражений Perl (PCRE), который заменил реализацию регулярных выражений Tcl. Поддерживаются операторы Perl сопоставления текста с регулярными выражениями:
    
       buf =~ /.*foo/
    
  • Ввод-вывод в стиле Perl:
    
       while (buf = <>)
    
  • Отсутствует управление памятью - используется подсчёт ссылок на объектах.
  • Компилируется в байткод Tcl, так что L может вызывать Tcl и Tcl может вызывать L.
  • Полный доступ к рантайму Tcl и любым внешним модулям для него.
  • Полный доступ к графическому тулкиту Tk. Примеры.


  1. Главная ссылка к новости (https://sourceforge.net/p/tcl/...)
Автор новости: Пользователь Debian
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/44271-lang
Ключевые слова: lang
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (46) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 19:21, 19/04/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    1е апреля вроде прошло.
     
  • 1.2, Roo2AT7d (ok), 19:27, 19/04/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    О, еще один?
     
     
  • 2.35, nc (ok), 21:20, 20/04/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Интересно, когда запиливается например еще одна файловая система, никто не говорит "о еще одна". А языки программирования чем хуже?
     

  • 1.3, Наркоман (?), 19:47, 19/04/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Чем он лучше Го?
     
     
  • 2.9, Пользователь Debian (?), 20:24, 19/04/2016 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Тулкит для GUI из коробки.

    Причём я серьёзно. Я неплохо умею Tcl/Tk, и оч. люблю Go, но отсутствие "goto решения" для создания *десктопного* GUI для него создаёт ситуацию, что на десктопе Go делать пока нечего.

    (Да, я знаю про [[https://github.com/golang/go/wiki/Projects#guis-and-widget-toolkits это]], но до уровня Tk, который работает везде и не имеет особых зависимостей ни на одной из своих платформ, там очень далеко.)

     
     
  • 3.34, qwewewewewep (ok), 19:39, 20/04/2016 [^] [^^] [^^^] [ответить]  
  • +/
    для Go тоже есть Tk: https://github.com/edartuz/go-tk
     
     
  • 4.47, Аноним (-), 15:50, 21/04/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Особеность Tk такова, что идиоматично использовать его можно только из тикиля. Использование же его из других языков напоминает сношентя с JNI.
     
     
  • 5.50, Аноним (-), 10:24, 22/04/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Особенность Tk такова, что он в любой системе выглядит максимально отвратительно, поэтому программы на этом можно писать только от мазохизма и при твердой уверенности что пользователи тебя не найдут.
     
     
  • 6.53, анонимоус7657 (?), 12:47, 24/04/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Современный Тk выглядит очень прилично. Не путайте сегодняшний Tk и Tk десятилетней давности.
     
  • 3.41, XXasd (?), 08:42, 21/04/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > работает везде

    В этом вашем "везде" -- вся проблема дурацких программ!

    Чем более мощное "везде" -- тем отвратительные результат в частности на GNU/Linux.

    В том числе касается GUI

     
     
  • 4.49, Пользователь Debian (?), 19:23, 21/04/2016 [^] [^^] [^^^] [ответить]  
  • +/
    >> работает везде
    > В этом вашем "везде" -- вся проблема дурацких программ!
    > Чем более мощное "везде" -- тем отвратительные результат в частности на GNU/Linux.
    > В том числе касается GUI

    Пожалуйста, опишите -- как можно подробнее -- какие существуют варианты получить портабельное приложение с GUI и избежать подразумеваемых Вами проблем.

     
  • 4.51, Аноним (-), 10:26, 22/04/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Чем более мощное "везде" -- тем отвратительные результат в частности на GNU/Linux.

    Да не скажи, Qt нормально это делает. GTK в этом плане похуже. У явы с гуем по жизни безобразие, в дотнете разброд, веб - вылядит сносно, но медленный...

     
  • 2.17, Аноним (-), 21:17, 19/04/2016 [^] [^^] [^^^] [ответить]  
  • +9 +/
    > Чем он лучше Го?

    Тем, что не умрёт, когда гугл этого захочет.

     
     
  • 3.21, Аноним (-), 22:15, 19/04/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    чушь, Го никогда не зависел от гугла. Изначально это была поделка очень небольшой команды разработчиков (Чейни, Пайк и Ко), которой те занимались в свободное от основной работы время. А сейчас тем более - репозиторий (пусть и не основной) на гитхабе, большая часть коммитеров вообще не относится к гуглу.
     
  • 2.18, Андрей (??), 21:25, 19/04/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Тем, что в его названии не 2, а только 1 буква. Шутка. Я за Go, но как подметили выше у него всё ещё никак с GUI.
     
  • 2.28, opa (?), 11:35, 20/04/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Тем что это второй известный мне язык, в котором регексы имеют хороший, компактный синтаксис, которым _приятно_ пользоваться.
     
     
  • 3.52, Аноним (-), 10:27, 22/04/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Тем что это второй известный мне язык, в котором регексы имеют хороший,
    > компактный синтаксис, которым _приятно_ пользоваться.

    А первый кто?

     

  • 1.4, Мяут (ok), 19:52, 19/04/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Эмблема веселая у них: перо от Tcl, верблюд от Perl и буква C сами догадайтесь от чего.
     
     
  • 2.32, Аноним (-), 16:16, 20/04/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Эмблема веселая у них: перо от Tcl, верблюд от Perl и буква C сами догадайтесь от чего.

    А если убрать верблюда, то C очень неприлично выглядит.

     

  • 1.5, commiethebeastie (ok), 20:04, 19/04/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Плееры и браузеры теперь писать не модно
     
  • 1.6, Аноним (-), 20:07, 19/04/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Это какой-то некромант 80 лвла.
     
  • 1.7, Аноним (-), 20:15, 19/04/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    $ go L
     
  • 1.8, rm___ (?), 20:22, 19/04/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    > принимавший непосредственное участие в кризисе

    Забавная заслуга, да. А если уточнить - это именно он был тем злобным проприетарщиком который по сути отобрал у Линуса права на использование VCS BitKeeper, в связи с чем и понадобилось срочно писать Git.

    Чему-либо от такого человека доверять сложно, тем более если речь о таком фундаментальном продукте как язык программирования.

     
     
  • 2.10, Пользователь Debian (?), 20:27, 19/04/2016 [^] [^^] [^^^] [ответить]  
  • –3 +/
    >> принимавший непосредственное участие в кризисе
    > Забавная заслуга, да. А если уточнить - это именно он был тем
    > злобным проприетарщиком который по сути отобрал у Линуса права на использование
    > VCS BitKeeper, в связи с чем и понадобилось срочно писать Git.

    Как обычно, религиозные фанатики видят только то, что хотят видеть.

    Линус а) очень высоко оценил BitKeeper, и был очень доволен переходом на него; б) основные идеи, положенные в основу Git, были взяты из BitKeeper'а.

    Торвальдс прагматик: на тот момент, когда он начал "зашиваться" работая с голыми патч-файлами, *адекватных задаче* систем управления версиями не существовало, и он взял ту, которая работала, работала хорошо, и была доступна прямо тогда.  Если бы он был религиозным фанатиком, Linux был бы сейчас там же, где Hurd.

     
     
  • 3.13, angra (ok), 20:48, 19/04/2016 [^] [^^] [^^^] [ответить]  
  • +8 +/
    Речь о доверии. Ларри и его компания поступили как наркобарыги- дали первую дозу бесплатно, дождались, когда клиент плотно подсядет, а потом уже начали снимать сливки. В данном случае путем манипуляции с лицензионными условиями и в конечно счете отзыве разрешения в расчете на крупный куш. Так с какого им теперь опять доверять?
     
     
  • 4.30, Пользователь Debian (?), 14:39, 20/04/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Речь о доверии. Ларри и его компания поступили как наркобарыги

    [...]
    > В данном случае путем манипуляции с лицензионными условиями и
    > в конечно счете отзыве разрешения в расчете на крупный куш.

    [...]

    Не было там никаких манипуляций и расчётов на куш (Куш от чего? Разработку Linux никто напрямую не финансирует -- это не организация.), а были условия использования, и Тридж (https://lwn.net/Articles/132938/), который эти условия нарушил, реверснув часть протокола Биткипера и сделав на основе этих данных программу, которая общалась с сервером Биткипера вместо клиента Биткипера.

    Это стандартная ситуация, в которой все правы и все виноваты одновременно.

    С одной стороны, понять Триджа вполне можно (и потом он точно так же реверснул биткипер, как он это делал с CIFS и DCE/RPC, благодаря чему у нас давно есть SAMBA); с другой стороны, он совершенно явно нарушил условия, которые поставил -- и имел полное право поставить -- МакВой.

     
  • 2.14, Аноним (-), 20:56, 19/04/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Забавная заслуга, да. А если уточнить - это именно он был тем
    > злобным проприетарщиком который по сути отобрал у Линуса права на использование
    > VCS BitKeeper, в связи с чем и понадобилось срочно писать Git.

    Чего-чего? BitMover предоставил разработчикам ядра возможность бесплатного использования BitKeeper, но с определёнными условиями, которые сообщество нарушило и упёрлось не желая прекратить попытки создания бесплатного клона BitKeeper. Ларри раз предупредил, что как-то нехорошо нарушать договрённости и пытаться клонировать BitKeeper, второй раз предупредил, а третий разругался со всеми и перестал выдавать бесплатные ключи.

     
     
  • 3.16, Andrey Mitrofanov (?), 21:16, 19/04/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >> злобным проприетарщиком который по сути отобрал у Линуса права на использование
    > что как-то нехорошо нарушать договрённости и пытаться клонировать BitKeeper, второй раз
    > предупредил, а третий разругался со всеми и перестал выдавать бесплатные ключи.

    Прямо судороги берут и Кондратий сводит, как подумаю, ни дай Ларри, Торвальдс отберёт разрешение и перестанет выдавать бесплатные ключи от git-а! Надо срочно учить базаар им.батьки и alpha.gnu.org ^W github.com зеркалить.  >>/>>

     

  • 1.11, Аноним (-), 20:30, 19/04/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    Ждём форки под названием Мелло и Ниа
     
     
  • 2.24, Аноним (-), 06:21, 20/04/2016 [^] [^^] [^^^] [ответить]  
  • +/
    О, любители бурятских мультиков подтянулись. Что там нового на фронте?
     
     
  • 3.25, Аноним (-), 08:28, 20/04/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Кто здесь?
     
  • 3.36, Аноним (-), 21:25, 20/04/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Понятия не имею что нового, тетрадка единственное адекватное ониме без всяких мех и панцушотов
     

  • 1.12, angra (ok), 20:31, 19/04/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Какая-то странная у него мотивация для создания. Они используют 99% С и 1% tcl. У них есть один хороший tcl кодер, но остальным нужно делать code review и им тяжело переключаться с C на tcl для этого. Ситуация понятная. Вот только как ее решает использование еще одного языка, который и не С и не tcl мне решительно непонятно.
     
     
  • 2.38, Annonymous (?), 07:27, 21/04/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Вот этот один хороший tcl кодер и будет использовать 100% возможностей tcl. Потому что интероперабилити с tcl - один из гоулов. Вы точно внимательно про мотивацию прочли?
     
     
  • 3.39, angra (ok), 07:39, 21/04/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Проблема была в code review. Это вынуждало всех знать два языка и переключаться между ними. Как ее решает новый язык? Ведь теперь всем надо знать уже три языка. Он бы ее решал, если бы они выкинули весь свой код на C и tcl и заменили его на L.
     

  • 1.15, Аноним (-), 21:08, 19/04/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Вау. Как сигник и перловик могу только порадоваться.
     
  • 1.19, Аноним (-), 21:36, 19/04/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    LoL
     
  • 1.20, Аноним (-), 21:45, 19/04/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    А язык-то выглядит вполне симпатично. С + Perl без низкоуровневой мороки первого и идиотских @%%{$X} второго.
     
     
  • 2.27, Аноним (-), 11:33, 20/04/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Вообще-то С довольно таки выскоуровневый язык. Единственное в чём заключается морока - ручное управление памятью - палка о двух концах.
     
     
  • 3.29, Пользователь Debian (?), 14:31, 20/04/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Оно не ручное, оно такое же как в Tcl (и в Perl 4-5, кстати (про 6 ничего не могу сказать)), потому что используется интерпретатор Tcl.  Там любая функция, "принявшая" значение (представленное спец. структурой данных на уровне интерпретатора) в свою область видимости, увеличивает счётчик ссылок на объекте перед тем, как позвать другую функцию на этом объекте, а потом уменьшает его.  Как только кол-во ссылок переходит через 0, объект разрушается.  Также используется механизм копирования при записи (CoW), позволяющий иметь в тикле семантику передачи всего по значению, но при этом реально копировать значения только в случае необходимости.

    То есть ручного управления памятью (типа malloc/free) тут нет, но нет и сборщика мусора (как в Go, например).

     
     
  • 4.31, Аноним (-), 15:26, 20/04/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Спасибо за интересный комментарий, но я не это имел ввиду =)
     

  • 1.22, Void (??), 22:54, 19/04/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Ждем ебилдов.
     
  • 1.37, анан (?), 23:55, 20/04/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Я так понял, от синтаксиса Tcl там мало что осталось. Структуру "<имя команды> <арг1> <арг2> … <аргN>" сломали, и получился какой-то недо-Си.
     
  • 1.45, Че (?), 13:04, 21/04/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Не, ну а чо? Когда-то же решили заменить макроассемблер PDP-11 структурным языком, который был бы полностью совместим с байт-кодами интерпретатора команд. То бишь, просто взяли команды процессора PDP-11, взяли его систему адресации, и оформили это дело в виде языка высокого уровня, не забыв поддержку макросов. (не даром "МАКРО-ассемблер", т.е. сборщик макросов)
    Так получился язык программирования "C".
    К стати, весьма машинно-зависимый язык, т.к. его синтаксис полностью повторяет системы команд PDP-11 и не может быть однозначно скомпилирован на многих других процессорах.
     
  • 1.46, aarghm (?), 13:39, 21/04/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Если чесно ИМХО глупо язык называть одной буквой, ведь ньюфагам гуглить непонятно как. Плохое ключевое слово.
     
     
  • 2.48, Пользователь Debian (?), 19:18, 21/04/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Именно по этой причине перед релизом они его "ребренднули" в Little и сделали для него домен little-lang.org.

    Собственно, с Go такой же подход: вообще он Go, но гуглят его по токену golang.
    (Кстати, из-за этого масса ньюфагов его пытается называть Golang, что вызывает выброс кирпичей у ряда аксакалов.)

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру