The OpenNET Project / Index page

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



"Apple опубликовал Pkl, язык программирования для определения конфигурации"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Apple опубликовал Pkl, язык программирования для определения конфигурации"  +/
Сообщение от opennews (??), 04-Фев-24, 15:33 
Компания Apple открыла реализацию языка программирования Pkl, предназначенного для определения конфигурации и продвигающего модель "конфигурация как код". Связанный с Pkl инструментарий написан на Kotlin и опубликован под лицензией Apache. Плагины для работы с кодом на языке Pkl подготовлены для сред разработки  IntelliJ, Visual Studio Code и Neovim. В ближайшее время ожидается публикация обработчика LSP (Language Server Protocol)...

Подробнее: https://www.opennet.ru/opennews/art.shtml?num=60549

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по ответам | RSS]

1. Сообщение от Аноним (1), 04-Фев-24, 15:33   +18 +/
Что-то я вообще не понял зачем это нужно.

Купертино совсем перестало делать инновации.
- Инженер ВАЗ

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #2

2. Сообщение от _hide_ (ok), 04-Фев-24, 15:41   +2 +/
LUA
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #103

4. Сообщение от Аноним (103), 04-Фев-24, 15:44   +4 +/
Вряд ли взлетит. Ниша уже занята CUEм, который вполне всех устраивает, и разрабатывается сообществом, а не корпорастами (историю экосистемы HashiCorp все хорошо помнят).
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #36, #81

6. Сообщение от Аноним (6), 04-Фев-24, 15:57   +3 +/
Язык для сериализации не должен быть полным по Тьюрингу. Если нужен Тьюринг-полный язык, то писать надо либо прямо на основном ЯП, либо на скриптовом, легко встраиваемом в основной. Ещё один NIH-язык лишь плодит фрагментацию.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #8

7. Сообщение от Аноним (-), 04-Фев-24, 16:00   +1 +/
> вычислительные выражения, условия и циклы.

У вас дедлок в конфиге, сэр! А дебагер и профайлер конфигов - есть? И вообще, вот уж от эппла не ожидал что им придет в бошку мешать логику и конфигурацию.

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #19, #37, #148

8. Сообщение от Аноним (103), 04-Фев-24, 16:01   +1 +/
Это не язык для сериализации. Это язык для описания и валидации структур сериализуемых данных.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #6 Ответы: #9

9. Сообщение от Аноним (103), 04-Фев-24, 16:04   +/
И для генерации, да.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #8 Ответы: #27

10. Сообщение от Sw00p aka Jerom (?), 04-Фев-24, 16:04   +/
вспоминаю золотые слова И. Сысоева - "не программируйте в конфигах" (ц) :)
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #12, #23, #86, #123

12. Сообщение от Вы забыли заполнить поле Name (?), 04-Фев-24, 16:30   +3 +/
> вспоминаю золотые слова И. Сысоева - "не программируйте в конфигах" (ц) :)

Но njs все же встроили

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #10 Ответы: #16

13. Сообщение от Вы забыли заполнить поле Name (?), 04-Фев-24, 16:31   +/
Яблочники пишут на котлине? А как же Свифт?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #20, #78, #90

15. Сообщение от YetAnotherOnanym (ok), 04-Фев-24, 16:37   +/
Эта "инновация" поставила рекорд по нелепости.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #21, #40

16. Сообщение от Sw00p aka Jerom (?), 04-Фев-24, 16:40   +/
> Но njs все же встроили

а перл там изначально был :)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12

17. Сообщение от Quad Romb (ok), 04-Фев-24, 16:55   +/
Лавры XML с его схемами и сегодня не дают кому-то покоя.
Учитывая валидацию значений и возможность иметь единый протоконфиг для ПО разных производителей - может в этом и есть какой-то смысл.
Во всяком случае, по документации стоит пробежаться.
Ответить | Правка | Наверх | Cообщить модератору

19. Сообщение от Аноним (103), 04-Фев-24, 16:58   +1 +/
Это не конфиг. Это код для валидации и генерации конфигов.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7 Ответы: #30, #67, #70

20. Сообщение от Аноним (103), 04-Фев-24, 16:59   +1 +/
На свифте пишут любители яблок (а кто сказал, что такие работают в Apple?)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #13 Ответы: #109

21. Сообщение от Аноним (103), 04-Фев-24, 17:01   +2 +/
Подозреваю, что людям, далёким от IT, действительно сложно понять, зачем вообще нужны всякие DSL.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #15 Ответы: #31, #111

23. Сообщение от Аноним (103), 04-Фев-24, 17:04   +/
> вспоминаю золотые слова И. Сысоева - "не программируйте в конфигах" (ц) :)

Получается, это он одной фразой послал лесом существенную долю пользователей nginx. Не говоря уже про OpenResty.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #10 Ответы: #49, #74

24. Сообщение от Аноним (24), 04-Фев-24, 17:18   –1 +/
Может быть пора уже перестать плодить лишние сущности? Инновация ради инновации
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #25

25. Сообщение от Аноним (25), 04-Фев-24, 17:24   +1 +/
Эксперты всегда забывают, что "лишнесть" сущности необходимо доказать, а не просто постулировать.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #24 Ответы: #32

27. Сообщение от Аноним (27), 04-Фев-24, 17:33   +1 +/
То есть очередной недопитон, недоjavascript, недоrust, недоjava, недоgo и недоc++.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9 Ответы: #50

29. Сообщение от Вован (??), 04-Фев-24, 18:10   +3 +/
Либо мы доверяем в программе конфигам, либо мы дублируем логику валидации ещё и в самих конфигах.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #33

30. Сообщение от Витюшка (?), 04-Фев-24, 18:13   +/
Чем отличается от любой библиотеки любого ЯП для того же самого?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #19 Ответы: #53

31. Сообщение от Витюшка (?), 04-Фев-24, 18:16   +1 +/
Это обычный NIH синдром. Их было сотни и тысячи, будут сотни и тысячи.

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

Думаю ответ - ничем, никакие.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #21 Ответы: #38, #41, #57, #77

32. Сообщение от Витюшка (?), 04-Фев-24, 18:17   –1 +/
Доказывать нужно нужность сущности, а не наоборот.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #25 Ответы: #54, #72, #144

33. Сообщение от Quad Romb (ok), 04-Фев-24, 18:47   –3 +/
Чего так?
Пресечь ошибки в конфиге без затрат на разворачивание приложения нам кто-то запрещает?
Тем более, что не всё что допустимо в конфиге для самого приложения - допустимо для пользователей этого приложения в конкретном окружении.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #29

35. Сообщение от Аноним (35), 04-Фев-24, 18:53   +/
>Java, Kotlin, Go и Swift

Видимо для каких-то систем где используются как мобильные приложения на iOS и Android, так и есть часть на сервере, в которых используются разные платформы/языки. Об этом же косвенно говорит и публикация под кучу IDE и LSP. Если платформа/язык один, то зачем лезть в какую-то новую технологию, чтобы универсально (т.е. одинаково плохо) DSL-ить. В Kotlin, например, это практически встроено.
Значит это для изначально не мелких систем, когда уже заранее известно что будет долго, много и значит дорого в поддержке, чтобы стало чуть дешевле.
Если бы спросили как упростить у самих разрабов, то они бы так или иначе выдали бы то в чем сильны или то с чего начинали. А ля конвертация кода в "нелюбимую" платформу, кросс-компиляция из любимого ЯП и т.д.
Тут похоже над командами разработки есть еще крупные отделы, которые разрабатывают как разрабатывать, но сами отделены от этих разработчиков.
Значит для крупных контор, у которых наверняка и своих подобных разработок куча.
Получается большинству это не надо (либо еще недоросли, либо переделывать уже не будут), а у FAANG такого и своего хватает.

Ответить | Правка | Наверх | Cообщить модератору

36. Сообщение от Аноним (36), 04-Фев-24, 18:53   –5 +/
> Ниша уже занята CUEм

В твоих фантазиях если только.

> историю экосистемы HashiCorp все хорошо помнят

Как и то, что на Терраформе никто не перестал писать.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4 Ответы: #52

37. Сообщение от oficsu (ok), 04-Фев-24, 18:54   +4 +/
> придет в бошку мешать логику и конфигурацию

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7 Ответы: #56

38. Сообщение от oficsu (ok), 04-Фев-24, 19:01   +3 +/
> Их было сотни и тысячи, будут сотни и тысячи

Я вот попытался подобрать под себя среди тех, что уже есть. И среди сотен и тысяч, единственный, прошедший по минимальным критериям — jsonnet. Но даже он несамостоятелен и требует костылей, если частью конфига должны быть какие-то внешние данные. Ещё хуже, если эти внешние данные сами зависимы от конфига

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #31

40. Сообщение от Бывалый смузихлёб (?), 04-Фев-24, 20:32   +/
До уровня кроссплатформенного серверного свифта дно ещё не пробито, но уже кое-как выдерживает натиск яблока
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #15

41. Сообщение от Бывалый смузихлёб (?), 04-Фев-24, 20:41   +/
Ну вот сидит целый жирнющий яблочный отдел во главе с небинарными руководителями и голову ломает, что бы эдакого придумать чтобы смотрелось с виду очень полезно( в рамках яблока ввиду отсутствия внятных аналогов ) и можно было ещё годами изображать активную работу
Не на мороз же по собственной воле выкидываться

Ну не что-то реально интересное и полезное придумывать, для этого ведь нужен талант а не токсичность и ГЗТ.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #31

42. Сообщение от Tron is Whistling (?), 04-Фев-24, 20:42   +/
env:DATABASE_PASSWORD - это мило.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #51, #55, #69

49. Сообщение от Sw00p aka Jerom (?), 04-Фев-24, 22:26   +/
> Получается,

Конфигурирую на Пкл :)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #23

50. Сообщение от Аноним (103), 04-Фев-24, 22:27   +2 +/
Вы прослушали миниатюру "человек, далёкий от разработки, открывает для себя понятие domain specific language".
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #27 Ответы: #62, #108

51. Сообщение от Sw00p aka Jerom (?), 04-Фев-24, 22:28   +/
> env:DATABASE_PASSWORD - это мило.

пустая строка :)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #42

52. Сообщение от Аноним (103), 04-Фев-24, 22:29   +/
> В твоих фантазиях если только.

Ну и в современном IT (с которым, вы, очевидно, незнакомы).

> Как и то, что на Терраформе никто не перестал писать.

Добро пожаловать в 2018! А у нас в 2024 есть Crossplane.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #36 Ответы: #64

53. Сообщение от Аноним (103), 04-Фев-24, 22:31   +/
Тем, что это не библиотека, а язык. Вы бы ещё спросили "чем отличается от vim", примерно тот же уровень осмысленности.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #30

54. Сообщение от Аноним (103), 04-Фев-24, 22:34   +/
Те, кто работает со структурированными (JSON/YAML) данными, и так понимает нужность подобных решение (CUE, Jsonnet).
А далёким от программирования надо что-то доказывать... но зачем? Они же всё равно не поймут, зачем вообще эти канплюхтеры нужны.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #32 Ответы: #112

55. Сообщение от Аноним (103), 04-Фев-24, 22:36   +3 +/
> env:DATABASE_PASSWORD - это мило.

Настоящие мужики вписывают пароль в код и коммитят в гит.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #42

56. Сообщение от Аноним (103), 04-Фев-24, 22:38   +/
Ну, вообще не редкость, если формат данных должен поддерживаться несколькими программами на разных ЯП. Тут уже простой копипастой валидатора не обойтись.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #37

57. Сообщение от Аноним (103), 04-Фев-24, 22:39   +/
> Нет даже анализа и сравнения, а чем этот язык конфигурации лучше десятка альтернатив? Какие проблемы он решает, что не могут другие?

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #31 Ответы: #92

60. Сообщение от Ivan_83 (ok), 04-Фев-24, 22:51   +/
LUA есть для гибкости там где надо.
Ответить | Правка | Наверх | Cообщить модератору

62. Сообщение от Аноним (62), 04-Фев-24, 23:31   +/
А теперь истина: я создал один DSL и участвовал в содании другого популярного DSL :) Я с языками сериализации я знаком довольно тесно, и есть не пренебрижимо малая вероятность, что кто-то из опеннетчиков использует код, написанный мною.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #50 Ответы: #68, #156

64. Сообщение от Аноним (64), 05-Фев-24, 01:43   –5 +/
>Crossplane

Подохло не успев родиться. Оно и не удивительно так как все уже устали от ямла. А тут чтоб создать ресурсы в клауде еще купердинос настроить надо для начала.

2024 это как раз CDK а не наркоманство на ямле

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #52 Ответы: #65

65. Сообщение от Аноним (103), 05-Фев-24, 01:59   +/
> Подохло не успев родиться.

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

> Оно и не удивительно так как все уже устали от ямла.

Устали от ямла — идите улицы мести, кто ж вас держит?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #64 Ответы: #71, #91

67. Сообщение от Аноним (-), 05-Фев-24, 02:02   +/
> Это не конфиг. Это код для валидации и генерации конфигов.

Окей, а кто будет валидировать валидатора?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #19 Ответы: #99

68. Сообщение от Аноним (103), 05-Фев-24, 02:03   +/
И при всех эти заслугах вы, конечно же, считаете subj языком сериализации?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #62

69. Сообщение от OpenEcho (?), 05-Фев-24, 02:03   +/
> env:DATABASE_PASSWORD - это мило.

А можно поинтересоваться, - в чем "милость" то?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #42 Ответы: #83, #98, #107, #160

70. Сообщение от Аноним (-), 05-Фев-24, 02:07   –1 +/
> Это не конфиг. Это код для валидации и генерации конфигов.

И это лучше уже существоваших вариантов - потому что что?!

Ну вот например нежно любимыми местными баш портянками можно сделать все то же самое в два счета. И будет примерно такая же мешанина кода с конфигурацией. И это лучше чем то что было до этого - как и почему? Потому что эппла NIH синдром очередной раз прошиб и вендорлокнуть захотелось? Или есть более рациональное объяснение? Я его пока не вижу.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #19 Ответы: #142

71. Сообщение от Ahohim (?), 05-Фев-24, 02:21   –3 +/
А еще сын Шамиля с соседнего дома на хмурый перешел. Как будто кому то есть дело до того, что там в сбере творится. Мы говорим про нормальные компании и организации.
А они в свою очередь будут держаться от этого фу подальше.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #65 Ответы: #94

72. Сообщение от Sw00p aka Jerom (?), 05-Фев-24, 02:25   +/
>нужность сущности

необходимость и достаточность

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #32

73. Сообщение от Sw00p aka Jerom (?), 05-Фев-24, 02:38   +/
опять из функций (шаблоны, генерация, конфиги, макросы) IDE пытаются сделать ЯП (фейспалм)
Ответить | Правка | Наверх | Cообщить модератору

74. Сообщение от Sw00p aka Jerom (?), 05-Фев-24, 02:41   +/
Теперь можно будет легко генерить кучу локейшенов для нджинкс и без nginx -t валидировать :)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #23

76. Сообщение от Вы забыли заполнить поле Name (?), 05-Фев-24, 04:19   +/
Им в качестве реализации надо было на С++ писать и потом уже биндинги генерить. В текущей реализации не взлетит, скриньте.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #100

77. Сообщение от Аноним (-), 05-Фев-24, 06:10   +/
> чем этот язык конфигурации лучше десятка альтернатив?

Среди альтернатив нет ничего пристойного. json больше всех похож на правду... Во всяком случае, если его дополнить схемами. Но у json'а есть свои недостатки, типа ненужных кавычек вокруг имён переменных. Они нужны json'у, но того, кто конфиг на нём пишет они лишь раздражают. json -- хорош как формат сериализации, но не конфигов.

Что ещё бывает? xml? В XML есть всё, что нужно, но он, как и json, не создавался как язык для конфигов, поэтому там есть много лишнего. Кавычек вокруг имён атрибутов ставить не надо, что приятно, но угловые скобки вокруг тегов приходится. Да ещё и закрывающие теги писать, повторяя их имя и опять же угловые скобки. XML -- это попытка создать универсальный HTML, которым можно было бы не только гипертекст размечать, но нахрена в конфиге размечать гипертекст? Вся эта функциональность там лишняя абсолютно, которая приводит, например к тому, что одни и те же идеи часто можно выразить как тегом, так и атрибутом. При этом они (с точки зрения конфигурации) семантически похожи, а синтаксически совершенно разные. XML поэтому и хайповал так недолго, и ушёл в небытие после хайпа, что он к вопросам конфигурации как непришей бизде рукав.

Есть TOML, но у него со вложенностью проблема. Как правило это не мешает, но всегда напрягает. Есть YAML, но он отстой абсолютнейший. Он в сравнении с каким-нибудь там TOML напоминает мне org-mode в сравнении с markdown: казалось бы границы возможного распространены за горизонт, но если TOML и markdown имеют вполне формализуемый синтаксис с прозрачной семантикой, то YAML и org-mode... у org-mode нет спецификации, он сделан в стиле GNU: так чтобы никто не смог бы вменяемо его воспроизвести, чтобы можно было бы десятилетиями пинать балду, вместо разработки, и никаких конкурентных реализаций бы не появилось. YAML имеет спецификацию, но попробуй её вкури. Но самое интересное сходство между org-mode и YAML в том, что они оба могут удивлять своей семантикой, что вообще никуда не годится. Сюрпризов быть не должно, семантика должна быть зубодробительно скучной.

Все языки конфигурации отстой (и не все они языки конфигурации, большинство -- языки сериализации), и не надо быть Apple'ом, для того, чтобы сегодня запилить что-то лучшее любого из них в отдельности и всех их вместе взятых. Но я не поручусь за этот Pkl, поскольку про него знаю лишь то, что в новости написано.

> Нет даже анализа и сравнения

Где ж их взять, если Apple только опубликовала?  Чтобы понять, что он из себя представляет, надо попробовать его на практике, а для этого нужен Kotlin, а для этого нужна jvm, и ануего... Может если ему приделают реализацию на C/C++/Rust/Go, тогда я посмотрю на него попристальнее. Но можно надеяться, что сейчас найдутся энтузиасты, которые начнут внедрять pkl куда-нибудь, и может через год-два они выдадут нам основанные на опыте сравнения с другими. А пока, если тебе так невтерпёж, открывай документацию и читай там, сравнивай самостоятельно.

> Это обычный NIH синдром. Их было сотни и тысячи, будут сотни и тысячи.

Я б не сказал. Сколь-нибудь заметных языков конфигурации, даже если включать в этот список читабельные языки сериализации, не так много, пальцев одной руки, чтобы их пересчитать может и не хватит, но с двух рук должно набраться достаточное количество пальцев. Написание языков конфигурации не очень популярный спорт. Написание ядер ОС и лиспов гораздо более популярно. Большинство языков конфигурации заточено под конкретное приложение, и только там работает и никому не нужно за пределами этого приложения.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #31 Ответы: #80, #117

78. Сообщение от Аноним (78), 05-Фев-24, 08:33   +/
https://developer.apple.com/xcode/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #13 Ответы: #131

79. Сообщение от Аноним (79), 05-Фев-24, 09:17   +/
есть же Lisp зачем опять что-то придумывать
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #84, #105

80. Сообщение от Бывалый смузихлёб (?), 05-Фев-24, 09:42   +/
конфиги и на жс можно писать( некоторые так и делают если в проекте используется жс )
И поля можно сделать и вычисляемыми и с асинхронщиной и кучей всего ещё.
И комменты норм писать. Жысон, например, не поддерживал комменты.
Другой вопрос, насколько оно вообще необходимо

> Где ж их взять, если Apple только опубликовала?

Обычно началу активной разработки предшествует многоэатпный анализ вплоть до опросов, построение собирательных образов типичных потребителей и на основе этого уже набирается конкретная пачка требований к продукту от более важных к менее таковым
Очевидно, что яблоко это сделало не просто так и не вдруг
Но вот почему, для кого и чем оно лучше остального - рассказывать не спешит
А может оно и не собиралось ничего публиковать - просто получилось почти как с ВебКитом

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #77 Ответы: #97

81. Сообщение от Пряник (?), 05-Фев-24, 10:15   +5 +/
О, спс, не знал про CUE.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4

83. Сообщение от Tron is Whistling (?), 05-Фев-24, 10:32   +/
Да ни в чём, всё нормально, продолжайте.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #69 Ответы: #114

84. Сообщение от Аноним (84), 05-Фев-24, 11:00   +/
Или Scheme. Как пример реального использования - Guix.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #79 Ответы: #119

85. Сообщение от Tron is Whistling (?), 05-Фев-24, 11:01   +1 +/
Сразу видно, что не хватает ещё одного языка программирования для определения собственно содержимого Pkl.
Ответить | Правка | Наверх | Cообщить модератору

86. Сообщение от Golangdev (?), 05-Фев-24, 11:05   +/
Слова-то может и золотые, и программист, сказавший их талантлив, но вот авторам Gradle и Webpack было пофиг и они сделали эту возможность, на Groovy/Kotlin и JavaScript соответственно.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #10 Ответы: #125

87. Сообщение от Golangdev (?), 05-Фев-24, 11:07   +/
> языка программирования Pkl, предназначенного для определения конфигурации и продвигающего модель "конфигурация как код".

Если проект реально окажется жизнеспособным и сможет предоставить заявленную функциональность, то может стать вместо yaml для Kubernetes (k8s)

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #101, #127

88. Сообщение от vitalif (ok), 05-Фев-24, 11:33   +/
Фуфуфу

Сразу вспоминается Vagrant с его Ruby конфигами. Адский треш

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #153

90. Сообщение от Всем Анонимам Аноним (?), 05-Фев-24, 12:16   –1 +/
А в гугле все сидят на Маках вместо Хромбуков. Обмен :)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #13 Ответы: #110

91. Сообщение от _oleg_ (ok), 05-Фев-24, 12:53   +/
Не-не, бро. Чел прав. Ямл реально кошмарная переоценённая хрень.
И то, что люди вынуждены им пользоваться не значит, что они от него в восторге.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #65 Ответы: #96

92. Сообщение от GrNa (?), 05-Фев-24, 13:43   +/
Ну вот тут, например, списочек можете глянуть https://kcl-lang.io/docs/user_docs/getting-started/intro#how...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #57

94. Сообщение от Аноним (103), 05-Фев-24, 13:55   +/
> Мы говорим про нормальные компании и организации.
> А они в свою очередь будут держаться от этого фу подальше.

Абсолютно неважно, как они будут относиться к "этому фу", лишь бы улицы и дворы своевременно убирали.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #71

96. Сообщение от Аноним (103), 05-Фев-24, 13:58   +/
Я и не говорю, что ямл — хорошо. Но пока лучше него ничего не придумали.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #91 Ответы: #102, #118

97. Сообщение от Аноним (-), 05-Фев-24, 14:00   +/
> Обычно началу активной разработки предшествует многоэатпный анализ вплоть до опросов,

О, знаток начал активной разработки, спешу сообщить тебе, что это внутренний инструмент эппла, который они решили выкатить наружу. Что там у них предшествовало началам мы не знаем, и вероятно никогда не узнаем, так что ты зря тут потрясаешь своими познаниями, пытаясь поймать эппл на незнании того, каким же на самом деле многоэтапным анализом, вплоть до опросов собирательных образов, нужно готовится к началам активной разработки. Если тебе хочется выглядеть умным, то своими обширными знаниями надо трясти не так. Более того, последнее время критика всего и вся не выглядит "умной", поколения в интернете меняются, меняются эвристики для оценки интеллекта собеседников. Следи за трендами, дед, а то скоро тебя все за идиота держать будут.

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

А это не задача Apple, если по-хорошему. Толку мне с того, какой там Apple будет маркетинг гнать? Слушать надо тех, кто пользуется этим. И, кстати, на HN в топ вылез топик про pkl, и там в комментах есть отзывы от сотрудников Apple, которые делятся опытом использования pkl, полученным ещё до публикации. Если, конечно, для тебя эти мнения убедительны.

> Другой вопрос, насколько оно вообще необходимо

Там же в треде на HN можно почитать зачем. Там этот вопрос подняли, причём подняли в стиле очень напоминающем опеннет, но, на удивление, получили не 100500 минусов, а вменяемые ответы.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #80

98. Сообщение от Аноним (103), 05-Фев-24, 14:01   +/
> А можно поинтересоваться, - в чем "милость" то?

В том, что пароль вынесен за пределы конфига в какое-то "безопасное хранилище".

Не может быть ничего безопаснее пароля в сорцах!

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #69 Ответы: #115

99. Сообщение от Аноним (103), 05-Фев-24, 14:02   +/
Парсер.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #67

100. Сообщение от Аноним (103), 05-Фев-24, 14:03   –3 +/
Чтобы сразу с переполнениями буфера?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #76 Ответы: #130

101. Сообщение от Аноним (103), 05-Фев-24, 14:06   +/
Неа. В кубике старательно избегают вендорлоков на одну корпорацию. Показательно, какой объем работ стоил им уход от завязок на гугл.

Тем более, что в мире кубика уже давно есть CUE, который ничем не уступает.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #87

102. Сообщение от Аноним (102), 05-Фев-24, 14:09   +/
sh и awk, например
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #96 Ответы: #104

103. Сообщение от Аноним (103), 05-Фев-24, 14:09   +/
В Lua неизвестное поле метатаблицы считается равным nil. Это автоматически отсекает любые возможности нормально использовать Lua для конфигов, так как валидации там не будет.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #128

104. Сообщение от Аноним (103), 05-Фев-24, 14:11   +/
И куличики из песка, как альтернатива еде!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #102 Ответы: #106

105. Сообщение от Аноним (102), 05-Фев-24, 14:11   +/
>зачем опять что-то придумывать

Затем, чтобы завязывать на себя, просить зарплату/гранты и десятилетиями обещать выпилить GIL.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #79

106. Сообщение от Аноним (102), 05-Фев-24, 14:14   +/
Так shell и awk и есть еда. А yaml - это пародия на еду, его даже интерпретировать нельзя или применять ко всему и везде.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #104 Ответы: #146

107. Сообщение от x3who (?), 05-Фев-24, 14:17   +/
strings /proc/2146/environ
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #69 Ответы: #116

108. Сообщение от Аноним (102), 05-Фев-24, 14:22   +/
JavaScript был DSL.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #50

109. Сообщение от Аноним (102), 05-Фев-24, 14:23   +/
>а кто сказал, что такие работают в Apple?

А это мысль.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #20

110. Сообщение от Аноним (102), 05-Фев-24, 14:23   +/
>А в гугле

Как же редхат и пони?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #90 Ответы: #151

111. Сообщение от Аноним (102), 05-Фев-24, 14:25   +/
Ещё сложнее понять, зачем их писать на Kotlin, когда у одного языка для описания DSL-ей (tinyscheme) 2 тысячи строк кода на Си в исходниках.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #21 Ответы: #140

112. Сообщение от Аноним (102), 05-Фев-24, 14:26   –1 +/
>Те, кто работает со структурированными (JSON/YAML) данными, и так понимает
>А далёким от программирования

YAML-программирования, то есть.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #54

113. Сообщение от Аноним (102), 05-Фев-24, 14:27   +2 +/
Пока что лучшим языком программирования в конфигах остаётся m4.
Ответить | Правка | Наверх | Cообщить модератору

114. Сообщение от OpenEcho (?), 05-Фев-24, 14:47   +/
> Да ни в чём, всё нормально, продолжайте.

Если у вас любой дятел может соваться в /proc и читать все что пожелает, то с вашим "мило" все понятно

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #83

115. Сообщение от OpenEcho (?), 05-Фев-24, 14:50   +/
> В том, что пароль вынесен за пределы конфига в какое-то "безопасное хранилище".
> Не может быть ничего безопаснее пароля в сорцах!

Разговот был про environment, в которой при правильно настроенной системе имеет доступ только овнер

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #98

116. Сообщение от OpenEcho (?), 05-Фев-24, 14:58   +/
> strings /proc/2146/environ

Access denied. Как здесь любят говорить - "что не так?"

Я вам очень настоятельно советую почитать про

proc  /proc  proc  defaults,nosuid,nodev,noexec,relatime,hidepid=2  0  0

в /etc/fstab

и ознакомится с `unshare(1)`

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #107 Ответы: #121

117. Сообщение от YetAnotherOnanym (ok), 05-Фев-24, 15:17   +/
> там есть много лишнего

Это весомый повод отказаться, да.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #77

118. Сообщение от _oleg_ (ok), 05-Фев-24, 15:36   +/
> Я и не говорю, что ямл — хорошо. Но пока лучше него
> ничего не придумали.

Здрасьте. Для сериализации данных есть json. Для конфигов есть человеческие конфиги. YAML пытаясь быть хорошим и там и там стал неудобным везде. Вообще, это загадка как IT-сообщество на yaml купилось. Видимо, всё дело в психологии - любовь ко всему новенькому.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #96 Ответы: #135

119. Сообщение от но5им (?), 05-Фев-24, 16:42   +/
А пример реального использования guix есть?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #84 Ответы: #120

120. Сообщение от Аноним (102), 05-Фев-24, 16:45   +1 +/
Берёшь и пользуешься.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #119

121. Сообщение от x3who (?), 05-Фев-24, 17:15   +/
Прошу прощения, должно быть `strings /proc/$$/environ', но шелл развернул, а я не заметил.
Но оно даже лучше, что так вышло, потому что мы наглядно видим, что

> hidepid=2

Нам ничего нового не даёт (другие юзеры и так прочитать не смогут, а sudoerы - всё равно прочтут)


> и ознакомится с `unshare(1)`

Как именно вы предлагаете его использовать?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #116 Ответы: #122, #143

122. Сообщение от OpenEcho (?), 05-Фев-24, 17:21   +/
> а sudoerы - всё равно прочтут)

А разве руты не на то чтоб видеть, знать и менять все?

>> и ознакомится с `unshare(1)`
> Как именно вы предлагаете его использовать?

Загонять в отдельные namespace


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #121 Ответы: #126

123. Сообщение от Аноним (125), 05-Фев-24, 17:43   +/
Золотые слова! Сколько уже ДЫР поналеплено из-за того, что какой-то u@uот думает, что "упростил себе работу" исполнением внешнего, абсолютно непредсказуемого кода!
А потом бегают "ой, вордовый вирус, всё пропало!".

Да чё там кода... даже "специально оформленный пакет" может ронять TCP, JPEG и ещё кучу библиотек, где прогер даже не задумывался, что могут прийти "специально оформленные данные"!

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #10 Ответы: #129, #139

124. Сообщение от crypt (ok), 05-Фев-24, 17:46   –1 +/
а мне нравится
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #155

125. Сообщение от Аноним (125), 05-Фев-24, 17:47   –1 +/
Это просто отложенная таймбомба. Конфиг - это конфиг, декларация. Максимум, что можно усложнить - какой-то простенький шаблон, из которого ГЕНЕРИРУЕТСЯ статичный конфиг. Тогда всё будет хорошо.
Видимо, эпплорасты не особо понимают в ИТ, им бы "дизайн покрасивше" - поэтому такой маразм.

Вспоминается эпический фэйл, когда ребёнок зажал пробел, набрал ниврот большую строку и.... ВОШЁЛ В iOS!! За такое сразу с волчьим билетом на%%%%й из компании!

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #86 Ответы: #133

126. Сообщение от x3who (?), 05-Фев-24, 18:05   +/
> А разве руты не на то чтоб видеть, знать и менять все?

А разве рут имеет возможность увидеть пароль пользователе в системе? И зачем бы ему? :)

> Загонять в отдельные namespace

Это понятно из `man unshare(1)` - для чего он. Непонятно как конкретно вы предлагаете его использовать в данном случае.


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #122 Ответы: #168

127. Сообщение от Аноним (64), 05-Фев-24, 18:16   +/
А так же для плейбуков в Ansible (мечты)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #87 Ответы: #134

128. Сообщение от _hide_ (ok), 05-Фев-24, 18:36   +/
> В Lua неизвестное поле метатаблицы считается равным nil. Это автоматически отсекает любые
> возможности нормально использовать Lua для конфигов, так как валидации там не
> будет.

Очень странный вывод.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #103 Ответы: #141

129. Сообщение от Sw00p aka Jerom (?), 05-Фев-24, 19:20   +/
> исполнением внешнего

https://owasp.org/www-community/vulnerabilities/XML_External...)_Processing

это смех :)

пс: промолчу про "исполнение" js в браузере ибо не по теме.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #123

130. Сообщение от Вы забыли заполнить поле Name (?), 05-Фев-24, 19:23   +1 +/
> Чтобы сразу с переполнениями буфера?

Ну твой уже, вижу, переполнился. Пишешь за границы. Смотри, словишь принудительное завершение.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #100

131. Сообщение от Вы забыли заполнить поле Name (?), 05-Фев-24, 19:24   +/
> https://developer.apple.com/xcode/

Что сказать то хотел?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #78

132. Сообщение от Аноним (132), 05-Фев-24, 19:25   +/
Чего только не придумают, лишь бы впихнуть ненужный kotlin или java.
Ответить | Правка | Наверх | Cообщить модератору

133. Сообщение от Golangdev (?), 05-Фев-24, 20:49   +/
Как вообще связан ребёнок, вошедший по пробелам в iOS!! и дизайн конфига ?

Ваши аргументы притянуты за уши.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #125 Ответы: #138

134. Сообщение от Golangdev (?), 05-Фев-24, 20:50   +/
там же питон
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #127 Ответы: #145

135. Сообщение от User (??), 05-Фев-24, 21:46   +/
А "человеческие конфиги" это, извиняюсь, что?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #118 Ответы: #137, #163

137. Сообщение от Аноним (103), 05-Фев-24, 23:08   +/
Выше же сказали — shell и awk (фиг знает, как бинарники могут быть конфигами, но труЪ юниксоидам, конечно, виднее).
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #135 Ответы: #147

138. Сообщение от Аноним (103), 05-Фев-24, 23:13   +/
Разве кто-то позиционировал это как аргументы?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #133 Ответы: #154

139. Сообщение от Аноним (103), 05-Фев-24, 23:14   +/
> Да чё там кода... даже "специально оформленный пакет" может ронять TCP, JPEG и ещё кучу библиотек, где прогер даже не задумывался, что могут прийти "специально оформленные данные"!

Так вроде subj реализован не на сишке, а на котлине.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #123 Ответы: #150

140. Сообщение от Аноним (103), 05-Фев-24, 23:16   +/
Кстати, сколько там тысяч переполнений буфера?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #111

141. Сообщение от Аноним (103), 05-Фев-24, 23:17   +/
Попробуйте хотя бы разок написать парсер-валидатор конфига, поймёте.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #128

142. Сообщение от Аноним (103), 05-Фев-24, 23:19   +/
> Ну вот например нежно любимыми местными баш портянками можно сделать все то же самое в два счета.

Тогда почему никто этого до сих пор не сделал?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #70

143. Сообщение от Аноним (103), 05-Фев-24, 23:22   –1 +/
> Нам ничего нового не даёт (другие юзеры и так прочитать не смогут, а sudoerы - всё равно прочтут)

О ужас, у пользователя root обнаружены повышенные привилегии! Все обратно на винду!

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #121

144. Сообщение от Аноним (-), 05-Фев-24, 23:22   +1 +/
Нужность сущности доказывается практикой: ненужные вещи не взлетают. Это "неконструктивное" доказательство, потому что оно, само по себе, не объясняет зачем они нужные. Но с другой стороны:

1. изучая кому оно нужно, где и как используется, можно выстроить конструктивное доказательство.
2. такое доказательство осмыслено только в тех случаях, если ты ищешь применения своим талантам и хочешь создать новую востребованную сущность, остальные же люди делятся на две группы: те кому сущность может быть полезна и те кому она бесполезна. Второй группе нет никакого смысла что-либо объяснять, а первая группа мотивирована, чтобы самостоятельно искать то, что им нужно и находить это. С доказательством или без него.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #32

145. Сообщение от Аноним (103), 05-Фев-24, 23:23   +/
Ещё скажите, что там anaconda.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #134 Ответы: #152

146. Сообщение от Аноним (146), 05-Фев-24, 23:52   +/
Ну теперь давай до Ансибла гутарить.

У Ансибла очень Ок: пишешь свои модули в виде программ на гораздо более полноценном, чем шелл, языке и указывешь потом секцию в виде ямля.

Важно, что позади ямля. А не сам ямль. И тогда даже INI зайдёт... Если за ним нормально сделано.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #106

147. Сообщение от Аноним (146), 05-Фев-24, 23:54   +/
Дебажить замумукаешся. Синтаксис трудно читаемый через годик. А потому не годно.

А вот когда можно свой модуль на нормальном развитом языке и потом коротко использовать в toml/yaml, то гораздо удобнее и проще. Как у Ансибла, например.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #137 Ответы: #162

148. Сообщение от Аноним (146), 05-Фев-24, 23:58   +/
> И вообще, вот уж от эппла не ожидал что им придет в бошку мешать логику и конфигурацию.

Видимо у них недостатки в сегменте управления корпо компами... Тогда. Нормальный сборочный агент под Огрызков - то ещё перевращение. Может потому.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7

150. Сообщение от Аноним (146), 06-Фев-24, 00:01   +/
Это не так уж важно, когда не проверяешь, что тебе прилетает из помойки мира.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #139

151. Сообщение от Аноним (146), 06-Фев-24, 00:02   +/
Это не те вопросы, которые интересны тем людям. На чём удобно, на том и рабочая станция. Это такая специфика корпо такого высокого уровня.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #110

152. Сообщение от Аноним (146), 06-Фев-24, 00:06   +/
Важен способ: у тебя на нормальном языке возможность написать программу и коротко, декларативно указывать написанный модуль в конфиге.

И декларативность есть и возможность накодить (или код написать).

Одно из сочетаний: Ансибл с Питоном. Видимо, другие тоже могут?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #145

153. Сообщение от Аноним (146), 06-Фев-24, 00:08   +/
Адский трешь и на C++ и на Ржавом и на Яве и на Питоне у Каноникла.

А бывало - на шелл элегантно и просто могут.

Смотря кто код пишет. Плохому танцору трико жмёт...

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #88

154. Сообщение от Golangdev (?), 06-Фев-24, 00:11   +/
И то верно =)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #138

155. Сообщение от Аноним (146), 06-Фев-24, 00:44   +/
Пруфы на Гит! :)

Станет виден стиль, будет понятно что к кому.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #124

156. Сообщение от Аноним (156), 06-Фев-24, 01:33   +/
давай ссылку на репу, трепло
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #62

160. Сообщение от ptr (??), 06-Фев-24, 04:13   +1 +/
Пароль вообще не должен храниться. Нигде. Даже на сервере. Или в оперативной памяти. Хранится может лишь результат криптографической функции от него.

А keytab это будет или какой-то токен - уже не столь важно.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #69 Ответы: #169

161. Сообщение от ptr (??), 06-Фев-24, 04:57   +/
Код в конфиге - не лучшая идея. Так как, в общем случае, на любой язык его задолбаешься переводить. То есть, при применении такого конфига для Kotlin, C# или даже plpgsql, код уж слишком разный получается.

Может я, конечно, что-то не понимаю. Но для меня подобный язык имеет ценность только тогда, когда на его основании можно сгенерировать не только конфигурационные файлы, но и код для Java, C#, C/C++, Rust, Python, T-SQL, plpgsql и т.п. Включая контракты на XML, JSON, ProtoBuf и т.п.

А тут даже мэппинг не учитывает то, что где-то нужен SnakeCase, где-то CamelCase или lowerCamelCase, а где-то вообще LispCase. Это не считая того, что то, что в PosrgreSQL может быть массивом или композитным типом, в MS SQL уже должно быть разложено по записям/таблицам или сериализовано.

Ответить | Правка | Наверх | Cообщить модератору

162. Сообщение от User (??), 06-Фев-24, 07:32   +/
> Дебажить замумукаешся. Синтаксис трудно читаемый через годик. А потому не годно.
> А вот когда можно свой модуль на нормальном развитом языке и потом
> коротко использовать в toml/yaml, то гораздо удобнее и проще. Как у
> Ансибла, например.

Не-не, sed-awk-perl\jinja\jsonnet\что-там-еще - не "конфиг", а средства его генерации - я же именно про "выходной формат" спрашиваю.
Json очевидно не подходит - банально по причине отсутствия комментариев, что для конфигурации кмк убийственно, опять же - скобочки считать и запятушки ставить - ну, такоэ себе.
Yaml в этом плане сильно лучше - визуально читабельней, интероперабелен с json, - но, с-ссабака женского полу, хрупкий. Читать норм, генерировать - норм, править руками, тудой-сюдой таскать кусками - не-а, не норм.
XML мы по причине запрета пропаганды разных букав решительно осуждаем и для применения в целях описания конфигурации - не рассматриваем.
Классический ini? Нууууэээ... Таки да, читать\писать руками легко, но вот отсутствие в большинстве реализаций поддержки иерархии (ЕМНИП, только у MS и есть) и каких-либо структур данных - ограничивает. Таки если заняться проектированием конфигурации - извернуться, разумеется, можно - ннно... именно что "извернуться". Опять же - ini per se не типизированный, что создает проблемы как при парсинге, так и при генерации.
toml да, примерно всем хорош с т.з. чтения\рукописания - но отсутствие интеропа с json\yaml и не ахти как развитые средства генерёжки - удручают. Общее впечатление - опоздал родиться, что ли...
В общем - нет в жизни щастя.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #147

163. Сообщение от _oleg_ (ok), 06-Фев-24, 09:59   +/
> А "человеческие конфиги" это, извиняюсь, что?

Не стоит стесняться любопытства. А вообще, не думал я, что настанет время, когда что такое человеческие конфиги придётся объяснять. Человеческие конфиги это человеческие конфиги. Примеры можно глянуть у samba, nginx, bird, apache, vsftpd и т.п.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #135 Ответы: #164

164. Сообщение от User (??), 06-Фев-24, 10:42   +/
>> А "человеческие конфиги" это, извиняюсь, что?
> Не стоит стесняться любопытства. А вообще, не думал я, что настанет время,
> когда что такое человеческие конфиги придётся объяснять. Человеческие конфиги это человеческие
> конфиги. Примеры можно глянуть у samba, nginx, bird, apache, vsftpd и
> т.п.

Воу. Апач в качестве примера "человеческого конфига" - НАСТОЛЬКО упорото, что я прям замолкаю, да и nginx, мягко говоря, не блещет.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #163 Ответы: #166

166. Сообщение от _oleg_ (ok), 06-Фев-24, 11:44   +/
> Воу. Апач в качестве примера "человеческого конфига" - НАСТОЛЬКО упорото, что я
> прям замолкаю, да и nginx, мягко говоря, не блещет.

Да, nginx получше apache будет. Но так-то YAML хуже и того и другого в любом случае. Стоит попробовать переписать конфиг nginx на YAML и ужаснуться "удобству".

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #164 Ответы: #167

167. Сообщение от User (??), 06-Фев-24, 13:30   +/
>> Воу. Апач в качестве примера "человеческого конфига" - НАСТОЛЬКО упорото, что я
>> прям замолкаю, да и nginx, мягко говоря, не блещет.
> Да, nginx получше apache будет.

Ну, пацаны прям старались - но ниасилили, да. Но старались прям хорошо. Куча способов выстрелить себе в ногу - при этом для чего-нибудь полезного сплошь и рядом надо lua тащить, куча неочевидностей в конфигурации (Вот что должно быть в директиве directio? Число или "off", это же очевидно! Или число - или строка, но при этом не всякая, а вот такая из трех букАв. Легко парсить, удобно генерировать, замечательно читать и править! А в     keepalive_disable что? Тоже наверное on\off\value? Авотхрен, или none или имя браузера!) - и такого там примерно всё, m и M идентичны в контексте размера (Кто знает наизусть, где применяется суффикс G\g, а где в контекте размера он недопустим - тот знатный жинксовод), но различны в контексте времени - при этом M-месяц это 30 дней, приколоченных гвоздями, а чтобы стало еще веселее - оно "1M 1m" понимает, а "1m 1M" нет. В общем, можно конечно придумать что-то хуже - но трудно.  
> Но так-то YAML хуже и того и
> другого в любом случае. Стоит попробовать переписать конфиг nginx на YAML
> и ужаснуться "удобству".

И виноват тут разумеется?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #166 Ответы: #170

168. Сообщение от OpenEcho (?), 06-Фев-24, 13:38   +/
>> А разве руты не на то чтоб видеть, знать и менять все?
> А разве рут имеет возможность увидеть пароль пользователе в системе?

Я напомню, что разговор о паролях в среде для сервисов, а не о /etc/shadow

> И зачем бы ему? :)

А кому еще? Разговор то о пароле, который берется из переменной среды, для того чтобы изпользовать его с каким-то сервисом.  Разве кто-то запускает демонов от имени реального юзера, у которого есть логин (который для сервисов должен(!!!) быть /usr/sbin/nologin) ?

>> Загонять в отдельные namespace
> Это понятно из `man unshare(1)` - для чего он. Непонятно как конкретно вы предлагаете его использовать в данном случае.

Наоборот, - не давать использовать, загнать апликуху в свой нэймспэйс в котором ограничены системные вызовы (включая unshare calls) с seccomp filters  чтоб отвадить от фэйк рутов подглядывающих в /proc

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #126 Ответы: #174

169. Сообщение от OpenEcho (?), 06-Фев-24, 14:29   +/
> Пароль вообще не должен храниться. Нигде. Даже на сервере. Или в оперативной памяти. Хранится может лишь результат криптографической функции от него.

Сурово. Правильно. Но... Главное ведь результат и имея доступ к keytab, любознательный с успехом может попросить Керберос авторизацию и получить ее, что есть то же самое что и иметь в наличии пароль.

> А keytab это будет или какой-то токен - уже не столь важно.

Для того, чтобы контролировать пермишины, ОСЬ сервера сервирующая что либо, должна хранить где-то флажок, "можно/не можно" и как он взведется - пофиг, напрямую паролем или обмазыванием в керберос - не важно. Тоже самое и с сервисами нуждающимися в авторизации. Керберос (или что то другое) просто защищает содержимое оригинального пароля от запущеного сервиса, не более, но сервис то получил в итоге то, что ему нужно - разрешение. С токенами/керберосом удобно управлять кластерами, базара нет, централизованно, - можно/нельзя, но если взять на рассмотрение одинокий сервак, а не всю ферму, то все сводится к секьюрности ОСи т.к. что пароль, что авторизация от стороннего сервиса - ничего не меняет, пофиг что стащить, hash из keytab-a или hashicorp vault доступ или банальный пароль, главное то результат - "можно", поэтому:

> А keytab это будет или какой-то токен ИЛИ ПАРОЛЬ - уже не столь важно.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #160

170. Сообщение от _oleg_ (ok), 06-Фев-24, 15:13   +/
> Ну, пацаны прям старались - но ниасилили, да. Но старались прям хорошо.
> Куча способов выстрелить себе в ногу - при этом для чего-нибудь
> полезного сплошь и рядом надо lua тащить

Ну зачем придумывать, пишите как есть - не для "чего-нибудь полезного", а для наворотов и излишеств. А так и без lua всё прекрасно работает. Но тем не менее, спасибо разрабам что и
это учли и дали такую возможность.

> куча неочевидностей в конфигурации

Ну а это всё что ниже по тексту, вообще, не по делу. Это вкусовщина уже пошла. У каждого индивидуальное понятие неочевидностей. Конфиг настраивается либо по памяти, либо по открытым докам (где пояснено что означает каждый key и какой формат value - и если там проглядывается логика, то уже хорошо; но и это не обязательно). А в чём-нибудь вроде squid умолчальный конфиг содержит комментарии в себе и можно без доков обойтись. Ожидать, что различное ПО будет одинаково соответствовать именно вашему понятию очевидного, нелепо. Если в рамках одного конфига конструкции не нарушают единый стиль, то уже спасибо.

>> Но так-то YAML хуже и того и
>> другого в любом случае. Стоит попробовать переписать конфиг nginx на YAML
>> и ужаснуться "удобству".
> И виноват тут разумеется?

Не понял этот пассаж.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #167 Ответы: #171

171. Сообщение от User (??), 06-Фев-24, 15:43   +1 +/
> Ну зачем придумывать, пишите как есть - не для "чего-нибудь полезного", а
> для наворотов и излишеств. А так и без lua всё прекрасно
> работает. Но тем не менее, спасибо разрабам что и
> это учли и дали такую возможность.

Если любовно на...глаживать единственный сервер методом рукоблудия - то таки да, "Нинужна!!!"

>> куча неочевидностей в конфигурации
> Ну а это всё что ниже по тексту, вообще, не по делу.
> Это вкусовщина уже пошла. У каждого индивидуальное понятие неочевидностей. Конфиг настраивается
> либо по памяти, либо по открытым докам (где пояснено что означает
> каждый key и какой формат value - и если там проглядывается
> логика, то уже хорошо; но и это не обязательно). А в
> чём-нибудь вроде squid умолчальный конфиг содержит комментарии в себе и можно
> без доков обойтись. Ожидать, что различное ПО будет одинаково соответствовать именно
> вашему понятию очевидного, нелепо. Если в рамках одного конфига конструкции не
> нарушают единый стиль, то уже спасибо.

Угу, угу. Чего тут думать? Зубрить 100500 заклинаний надо, ЗУБРИТЬ!!! Для каждой системы - свои.
А автогенерацию конфигов лентяи с плохой памятью придумали, да. Что делать, когда серверов станет - ну вот хотя бы ДВА - эксперт опеннет подумает после, эдак глядишь - да и не придется думать-то...

> Не понял этот пассаж.

Ну, я не удивлен, да.


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #170 Ответы: #172

172. Сообщение от _oleg_ (ok), 06-Фев-24, 16:00   +/
> Если любовно на...глаживать единственный сервер методом рукоблудия - то таки да, "Нинужна!!!"

А какое отношение lua в конфиге или его отсутствие имеет к тому один сервер или нет?

> Угу, угу. Чего тут думать? Зубрить 100500 заклинаний надо, ЗУБРИТЬ!!! Для каждой
> системы - свои.

Именно так. Хочешь зубри, не хочешь - держи открытой доку. Какие проблемы? То, что чаще используется, само по себе запомнится.

> А автогенерацию конфигов лентяи с плохой памятью придумали, да. Что делать, когда
> серверов станет - ну вот хотя бы ДВА - эксперт опеннет
> подумает после, эдак глядишь - да и не придется думать-то...

Ну а при чём тут автогенерация конфигов? Речь, вроде, про yaml в качестве конфига шла. А если нужна автогенерация, то бери да генерируй. Только для генерилки тоже конфиг нужен :-). Зациклились.

>> Не понял этот пассаж.
> Ну, я не удивлен, да.

А я, вот, немного.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #171 Ответы: #173

173. Сообщение от User (??), 06-Фев-24, 20:08   +/
> А какое отношение lua в конфиге или его отсутствие имеет к тому
> один сервер или нет?

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

> Именно так. Хочешь зубри, не хочешь - держи открытой доку. Какие проблемы?
> То, что чаще используется, само по себе запомнится.

Ну вот идея стандартизированного интероперабельного формата конфигурации - в голову не влезла, вместо этого зубрим по мульёну заклинаний на каждую систему.

> Ну а при чём тут автогенерация конфигов? Речь, вроде, про yaml в
> качестве конфига шла. А если нужна автогенерация, то бери да генерируй.
> Только для генерилки тоже конфиг нужен :-). Зациклились.

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

> А я, вот, немного.

Ну поработаете немного - поймете, что в ямлепредставлении конфига нжинкса нифига не yaml виноват. Ну, или не поймете...


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #172 Ответы: #175

174. Сообщение от x3who (?), 06-Фев-24, 22:36   +/
> Разве кто-то запускает демонов от имени реального юзера, у которого есть логин (который для сервисов должен(!!!) быть /usr/sbin/nologin) ?

Да, примерно как раз мой случай - админы sudo-ятся в юзера приложения и там работают с его привилегиями. Чего они там шалят - на то аудит есть. Если скриптам какие-то пароли нужны - используются зашифрованные из БД, они вроде даже в core не попадают случись что,  чего-то мудрили с зашифрованной памятью. Да и, вообще говоря, данные из /proc нужны для поддержки, особенно этот environ.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #168

175. Сообщение от _oleg_ (ok), 07-Фев-24, 11:13   +/
>> А какое отношение lua в конфиге или его отсутствие имеет к тому
>> один сервер или нет?
> Если сервер один и админ один - задач по автоматизации конфигурирования не
> возникает - и сопутствующих проблем логичным образом тоже. Берешь и пердолишься,
> как дiды завещали - делов-то...

Да и если не один, то тоже. При чём здесь автоматизация конфигурирования и lua в конфиге?

>> Именно так. Хочешь зубри, не хочешь - держи открытой доку. Какие проблемы?
>> То, что чаще используется, само по себе запомнится.
> Ну вот идея стандартизированного интероперабельного формата конфигурации - в голову не
> влезла, вместо этого зубрим по мульёну заклинаний на каждую систему.

Хм :-). Вы уж определитесь :-). Выше про lua писали. А ведь lua сам по себе ничего не значит, как любой встраиваемый ЯП. Вместе с ним надо ботать для каждого приложения _отдельно_ какие там функции оно добавляет в ЯП, что бы с можно было с помощью ЯП потрогать кишки программы и как-то с ней взаимодействовать. И так-то без разницы - что ботать констукции конфига, что развесистое api для lua под конкретное ПО.

А про стандартизированный межпрограммный конфиг - бред :-). Не будет такого и быть не может. Разные программы - разные задачи - разная логика того что и как настраивать - разные подходы к конфигу и как эти настройки удобней в нём выразить.

>> Ну а при чём тут автогенерация конфигов? Речь, вроде, про yaml в
>> качестве конфига шла. А если нужна автогенерация, то бери да генерируй.
>> Только для генерилки тоже конфиг нужен :-). Зациклились.
> При том, что yaml для этой цели подходит - а конфиг нжинкса
> весьма и весьма условно.

Конфиг nginx не подходит для автогенерации конфига? Ну да. Он не для автогенерации, а для передачи настроек в сам nginx :-). Очевидно же. Для автогенерации нужна какая-то сторонняя утилита, а что она там будет использовать для уже хранения своих настроек - дело десятое. Но это уже скорее всего будет больше похоже на БД, а не на конфиг. И там выбор огромен. Смысл для этого брать yaml? Нравится иллюзия, что оно человеко-читаемо-редактируемо? Ну так о том и речь, что нет. Не удобно человекам в нём ковыряться. А для машин проще json тот же взять.

> Ну поработаете немного - поймете, что в ямлепредставлении конфига нжинкса нифига не
> yaml виноват. Ну, или не поймете...

Нет. Не понимаю что-то. Простите.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #173


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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