Текстовый юникс-вей vs запросы к БД.
Когда
vitus_wagner в очередной раз толкает у себя в ЖЖ глобальные идеи на тему "как нам обустроить IT" там всегда всплывает ключевым аспектом unix-way в его аспекте "используем множество мелких программ, увязывая их через текстовый ввод-вывод".
Я же постоянно там на это отвечаю, что счетаю нужным увязывание сделать строго типизированным, чтобы быть уверенным, что это дело не поломается, когда в какой-нибудь мелкой утилите поменяют формат ввода или вывода.
И там же у
vitus_wagner как-то было обсуждение, как этот подход скрестить с GUI-программами, потому что у них другая модель, не текстовый ввод-вывод, а ожидание событий от пользователя.
Вот сейчас сижу смотрю на свою почту в Mozilla Thunderbird и понимаю, что мне не хватает там возможности сделать запрос типа "все непрочитанные письма из всех ящиков с сортировкой по дате и отметками к какому из проектов оно относится".
Т.е. если по хорошему, то в любой гуманной проге работающей со большими объемами структурированных данных, подобно реляционной(не обязательно, главное наличие схемы/типов/структуры) БД, должна быть вкручена некая консоль с REPL, где можно было бы на ходу пилить запросы, сохранять их для будущего использования, итд.
Я в самодельном фреймворке, на котором основано несколько штук наших оперденей, сделал похожую вещь - она уже 5 лет используется на полную катушку, вплоть до того, что можно разрабатывать новый функционал вообще не открывая средства разработки - прямо в рабочей проге. (про одну из возможностей Firebird на которой это построено, будет отдельный пост).
Сейчас в бзодотнетовском варианте хотелось бы сделать то же самое, только еще более навороченное, с запоминанием промежуточных результатов, итд (похоже на натуральный REPL, типа GHCi или F# консоли), но это надо мозг расшевеливать будет сильно.
Т.е. основная идея: текстовый unix-way это конечно очень хорошо, но хочется статической типизации.
![[livejournal.com profile]](https://www.dreamwidth.org/img/external/lj-userinfo.gif)
Я же постоянно там на это отвечаю, что счетаю нужным увязывание сделать строго типизированным, чтобы быть уверенным, что это дело не поломается, когда в какой-нибудь мелкой утилите поменяют формат ввода или вывода.
И там же у
![[livejournal.com profile]](https://www.dreamwidth.org/img/external/lj-userinfo.gif)
Вот сейчас сижу смотрю на свою почту в Mozilla Thunderbird и понимаю, что мне не хватает там возможности сделать запрос типа "все непрочитанные письма из всех ящиков с сортировкой по дате и отметками к какому из проектов оно относится".
Т.е. если по хорошему, то в любой гуманной проге работающей со большими объемами структурированных данных, подобно реляционной(не обязательно, главное наличие схемы/типов/структуры) БД, должна быть вкручена некая консоль с REPL, где можно было бы на ходу пилить запросы, сохранять их для будущего использования, итд.
Я в самодельном фреймворке, на котором основано несколько штук наших оперденей, сделал похожую вещь - она уже 5 лет используется на полную катушку, вплоть до того, что можно разрабатывать новый функционал вообще не открывая средства разработки - прямо в рабочей проге. (про одну из возможностей Firebird на которой это построено, будет отдельный пост).
Сейчас в бзодотнетовском варианте хотелось бы сделать то же самое, только еще более навороченное, с запоминанием промежуточных результатов, итд (похоже на натуральный REPL, типа GHCi или F# консоли), но это надо мозг расшевеливать будет сильно.
Т.е. основная идея: текстовый unix-way это конечно очень хорошо, но хочется статической типизации.
no subject
В PowerShell MS так и сделала.
no subject
Правда примеры там скорее игрушечные...
mail
no subject
аналогично.
во многих прогах очень чешется не тыкать много раз мышкой в разные места, а просто натайпать сделай мне то и то.
недавний типичный пример: мр3-плеер на базе мозиллы, довольно интересный, но сильно не хватает в нём клавиатурной навигации и вызов комманд из консольки.
no subject
Что делать при текстовом увязывании более-менее понятно, если "мелкой утилите поменяли формат ввода или вывода" (с чего бы, кстати?)
Что делать в строго типизированном случае, если поменяли строгие типы, понятно тоже - ничего не делать. Потому что бестолку.
http://plumqqz.livejournal.com/11502.html
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
no subject
-================<;>~
(Anonymous) 2010-03-18 08:35 pm (UTC)(link)Текстовый блок предваряется MIME-заголовком.
Точно так-же сложные объекты путешествуют из приложения в приложение в OS Plan9.
Сканер /dev/scanner -> image/png -> OCR -> multipart MIME (image/png+ text/plain) -> Text processor
Всё через пайпы которые юзер зацепляет не в командной строке, а милой менюшке, стандартной для любого приложения.
no subject
Господи, мы-то столько времени отрывали все эти бэкдор-консольки, а тут их опять возрождают.
(no subject)
(no subject)
(no subject)
(no subject)