avva: (moose)
[personal profile] avva
Lua: Good, bad, and ugly parts (есть также обсуждение на HN)

Отличный обзор языка Lua, с подробными списками хорошего/плохого в нем, с которыми я согласен процентов на 80. Рекомендуется всем, кто хоть немного знает этот язык хотя бы на уровне простейших программ; те, кто не знают совсем, тоже, конечно, могут прочитать, но все-таки адекватное впечатление о языке из этих списков не составить.

Я люблю Lua за его элегантность, концептуальную простоту, синтаксис, который легко запомнить и, как бы это сказать, easy on the eyes. Lua примерно соответствует по возможностям и устройству языка Джаваскрипту, и при этом лучше его почти во всем. Гипотетический мир, в котором языком веба вместо JS является Lua, очень хорош; увы, это нереальные мечты.

В последнее время я пробовал писать небольшие скрипты для всяких мелких нужд, или очень простые прототипы, на Lua (вместо Питона). Не всегда это хорошо получается. Три главных вещи, которых мне не хватало в таких случаях в Lua, были: 1) поддержка Юникода; 2) удобная поддержка регулярных выражений; 3) list comprehension.

Эти проблемы решаются при желании, но я не углублялся в Lua (или Metalua) настолько далеко, чтобы их решать. Кроме того, я не могу рекомендовать Lua для больших проектов, скажем, больше 5000 строк (может, он и хорошо подходит для них; не знаю, сомневаюсь, и в любом случае нет своего опыта такого рода). Но ознакомиться с ним в любом случае дело полезное, по-моему.

Date: 2013-03-18 02:54 pm (UTC)
From: [identity profile] huzhepidarasa.livejournal.com
The Unicode Consortium постоянно что-то там обновляет и добавляет, но какая-то версия стандарта грепом поддерживается полностью, плюс-минус баги, как всегда. Я в этом почти уверен.

Я не против, чтобы библиотека для поддержки юникода была внешней, но пусть она будет стандартной, и желательно прозрачной. Когда она нужна (и имеется в доступном месте на диске) — подгружаем, нет — ну так и нет. И вашим, и нашим, и овцы, и волки.

Date: 2013-03-18 08:53 pm (UTC)
From: [identity profile] ltwood.livejournal.com
Какой-то вариант поддерживает. Но на самом деле юникод неявно подразумевает настолько сложную логику, что любая нетривиальная обработка строк становится занятием весьма страшным (см., например раздел Case Mappings в документации к библиотеке ICU). Т.е. иметь всю эту магию в простом скриптовом языке совсем бы не хотелось. К счастью большинству приложений хватает возможности хранить 8-битные utf-строки as-is и нетривиально обрабатывать в них только символы из ASCII-7.

Библиотеки есть, есть de facto стандартные. Зачем разработчику lua заниматься разработкой стандартной либы для юникода, мне совершенно непонятно. Они хорошо делают то, что умеют хорошо делать.

Date: 2013-03-19 08:12 am (UTC)
From: [identity profile] huzhepidarasa.livejournal.com
Полная поддержка, со всеми свистульками, может, и не нужна, но хотя бы не резать utf8 строки по живому можно? ;)

Date: 2013-03-19 01:32 pm (UTC)
From: [identity profile] ltwood.livejournal.com
Проблема только в том, что границы этого "хотя бы" у каждого свои и при любом решении почти все будут недовольны. А так есть байндинг к ICU, который де-факто стандарт и всем хорошо, в том числе и мне, которому весь этот юникод вообще ни разу в жизни не пригодился.

January 2026

S M T W T F S
    1 2 3
4 5678910
11121314151617
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 6th, 2026 07:08 am
Powered by Dreamwidth Studios