Complexity hides insecurity
Jul. 25th, 2015 07:56 am![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Похоже, что желание создать нормальное Free Software, в смысле, такое, которое пользователь действительно свободен модифицировать, потому что способен понять, таки начинает у народа возникать.
Вот, например, Tomb, юзер-френдли инструмент для создания криптованных дисков, написанный на shell. Под лозунгом complexity hides insecurity.
Надо, что-ли почитать, и понять, удалось авторам добиться заявленных целей, или insecurity пробралась в проект с другой стороны.
Но в общем и целом подход вполне заслуживает внимания.
Вот, например, Tomb, юзер-френдли инструмент для создания криптованных дисков, написанный на shell. Под лозунгом complexity hides insecurity.
Надо, что-ли почитать, и понять, удалось авторам добиться заявленных целей, или insecurity пробралась в проект с другой стороны.
Но в общем и целом подход вполне заслуживает внимания.
no subject
Date: 2015-07-25 06:41 am (UTC)P.S.: Ну или для sys.* придумать сопоставимый синтаксис.
no subject
Date: 2015-07-25 06:51 am (UTC)Попытки написать высокоуровневые библиотеки для того же Tcl делались, но как-то к успеху не привели.
В то же время существует make - язык с совсем другой парадигмой - логической, а не процедурной, который прекрасно пользуется теми же внешними командами, что и shell.
no subject
Date: 2015-07-25 07:07 am (UTC)В таком стиле можно писать, например, на хаскеле. Или на эрланге. Да хоть на перле.
А шелл ужасен. сколь-либо серьезные преобразования формата данных (чтобы вывод одной утилиты скормить другой) на нем - сущее мучение.
no subject
Date: 2015-07-25 07:40 am (UTC)no subject
Date: 2015-07-25 08:08 am (UTC)Т.е. я понимаю, что на шелле иначе нельзя, но это не достоинство. Ладно еще, что для преобразований колоночных форматов есть awk, и то хлеб. Но если однострочника на оном не хватает, приходится делать то самое (писать программу на нормальном языке)
no subject
Date: 2015-07-25 07:08 am (UTC)При чем здесь переменные, я не понимаю, в функциональном стиле полвека без них пишем, и не всегда получается более высокоуровнево.
no subject
Date: 2015-07-25 07:43 am (UTC)Кстати говоря. многие современные утилиты не являются "привязками к шеллу", поскольку не соблюдают соглашений, например о кодах возврата.
no subject
Date: 2015-07-25 07:55 am (UTC)По поводу второго: ты совершенно прав.
no subject
Date: 2015-07-25 08:57 am (UTC)Потому что использовать для интеграции компонент язык уровня Java - довольно занудно. Недаром для Java понаписали такое количество IDE и прочих инструментов, пытаясь возложить на эти инструменты тот труд по автоматизации работы программиста, который должен выполнять язык.
Кстати, вот в python rundll есть. В смысле ctypes. Ну и в tcl (там оно по-моему ffiddl или как-то так называется).
Но вообще, похоже единственным серьезным кандидатом на роль "шелла для нелинейных (т.е. GUI) сред" является ECMAScript. Если только в нем заменить HTML DOM на что-нибудь более вменяемое...
Одной из попыток так сделать был XUL, но он не вышел за пределы расширений мозиллоидных продуктов.
no subject
Date: 2015-07-25 09:13 am (UTC)При этом я бы очень удивился синтаксису, обеспечивающему такую семантику и сопоставимому по фундаментальной простоте с шеллом. А некоторые моменты с безопасностью в акторной модели, действительно, решались бы (если бы акка не на JVM была реализована).
no subject
Date: 2015-07-25 10:05 pm (UTC)Аргумент от рынка, у тебя? Или я чего-то не понял?
Не выстрелило. Экономщики тактов победили. Тактов этих у нас теперь завались и залейся, а накопившиеся в победившей парадигме проблемы и десятикратным их количеством не решишь. По-моему, Вирт был просто вчистую прав, только и всего.
no subject
Date: 2015-07-26 04:23 am (UTC)