Тут о О'Рейллей интересный (и спорный, вестимо) пост про "сдвиг парадигмы" программирования вообще, символизируемый (но не являющийся прямым результатом) всеми последними "2.0", появлением "человечных фреймворков" и проч. Идея выражается списком, приводимым ниже. Часть его, в общем, понятный hype (типа "медленный — быстрый"). Но остальное лично мне представляется довольно интересным. Перевод, понятное дело, мой.
Итак, "список перемен, символизирующий сдвиг парадигмы в последнее десятилетие"
Бинарный -> Текстовый
Скомпилировать -> Подключить (plug-in)
Написать-Скомпилировать-Запустить-Тестировать -> Написать-Тестировать-Запустить
Периодические Релизы -> Постоянное обновление (real-time updates)
Тестирование конечными ползователями -> Библиотеки, привнесенные пользователями
Управляемый производителем -> Управляемый конечным пользователем
Медленный -> Быстрый ( — З.Х.)
Централизованный/Проприетарный -> Распределенный/Открытый
Акцент на производство -> Акцент на создание
Процедурный -> Объектно-Ориентированный ( — З.Х.)
Персональный (custom) код -> Персонализуемый (customizable) код
Хрупкий -> Гибкий
Синдром "Не Здесь Придумано" -> "С некоторой помощью моих друзей"
Монолитный -> Модульный ( — З.Х.)
Преимущество: Крупный -> Преимущество: Мелкий
Здравствуйте, Зверёк Харьковский, Вы писали:
ЗХ>Написать-Скомпилировать-Запустить-Тестировать -> Написать-Тестировать-Запустить
Медленно скомпилировать -> Быстро, чтобы пользователь этого даже и не заметил.
Вариация твоего ЗХ>Медленный -> Быстрый ( — З.Х.)
Короче, не парадигма сдвинулась, а быстродействие компов увеличилось.
.
Впрочем, здравый смысл я думаю победит ( ) все равно, так что будет и то и другое, где оправдано.
ЗХ>Скомпилировать -> Подключить (plug-in)
+1. Это поддерживаю.
ЗХ>Написать-Скомпилировать-Запустить-Тестировать -> Написать-Тестировать-Запустить
Как можно тестировать перед тем как запустить непонятно. Тест, в общем-то и есть пробный запуск.
ЗХ>Периодические Релизы -> Постоянное обновление (real-time updates)
Тут есть и плюсы и минусы. Плюсы в том, что баги исправляются и новые фичи появляются быстрее, минусы
КМК в том что несколько непонятным становится что же хорошо работает, а что в альфа- или бета- стадии. Получаем вечный недострой, которым отчасти можно пользоваться, но со стабильностью которого порой большие проблемы.
ЗХ>Тестирование конечными ползователями -> Библиотеки, привнесенные пользователями
Это справедливо только тогда когда пользователи — программисты (т.е. программа — некий компонент).
ЗХ>Управляемый производителем -> Управляемый конечным пользователем
ЗХ>Медленный -> Быстрый ( — З.Х.)
Наоборот.
ЗХ>Централизованный/Проприетарный -> Распределенный/Открытый
+1.
ЗХ>Акцент на производство -> Акцент на создание
ЗХ>Процедурный -> Объектно-Ориентированный ( — З.Х.)
... (в будущем) -> Функциональный ?
ЗХ>Персональный (custom) код -> Персонализуемый (customizable) код
С этим все сложно.
ЗХ>Хрупкий -> Гибкий
В смысле хрупкий?
ЗХ>Синдром "Не Здесь Придумано" -> "С некоторой помощью моих друзей"
+1
ЗХ>Монолитный -> Модульный ( — З.Х.)
+1
ЗХ>Преимущество: Крупный -> Преимущество: Мелкий
Да нет, большинство программ все продолжают пухнуть.
Я спорить не буду ни с чем. Только хочу уточнить, что это был (и не мой, к тому же) пост не на тему "как правильно", а на тему "куда вроде бы все в целом движется".
Я на эти темы имею свое мнение, но предпочитаю пока придержать его при себе.
Ну и некоторые пояснения по "темным местам".
ЗХ>>Тестирование конечными ползователями -> Библиотеки, привнесенные пользователями АХ>Это справедливо только тогда когда пользователи — программисты (т.е. программа — некий компонент).
Как выяснилось, не только.
Например, людей, способных слепить простенький css или простенький js — неизмеримо больше, чем "программистов". И когда появилась возможность подключать к браузерам user css/user js — всякие полезные и не очень скрипты расплодились взрывообразно. То же — со всякого рода widgets. Квалификация, для того чтобы их лепить, нужна вполне на уровне "пользователь, могущий написать пару макросов для Ворда".
ЗХ>>Управляемый производителем -> Управляемый конечным пользователем АХ>
Ну, это все на тему user-generated content и проч. Производитель поставляет "пустую оболочку" — а чем ее наполнят конечные пользователи, это еще бабушка надвое.
ЗХ>>Акцент на производство -> Акцент на создание АХ>
Production vs. Creation — написание программ как акт производства (заводского, по заданному режиму, на конвеере, десятками и сотнями "простых труженников") против написания как акта творчества — небольших изящных объектов, результатов творчества одного-двух-трех человек. На которых уже потом нарастает "созданное пользователями".
ЗХ>>Хрупкий -> Гибкий АХ>В смысле хрупкий?
Ну, видимо, имелось в виду — изменились требования, система рассыпалась.
ЗХ>>Преимущество: Крупный -> Преимущество: Мелкий АХ>Да нет, большинство программ все продолжают пухнуть.
Эт смотря что считать "современными программами, демонстрирующими основные тенденции". Люди, работавшие над процитированным списком, к вебу ближе, чем к корпоративному монстростроению.
Здравствуйте, Зверёк Харьковский, Вы писали:
ЗХ>Тут о О'Рейллей интересный (и спорный, вестимо) пост про "сдвиг парадигмы" программирования вообще, символизируемый (но не являющийся прямым результатом) всеми последними "2.0", появлением "человечных фреймворков" и проч. Идея выражается списком, приводимым ниже. Часть его, в общем, понятный hype (типа "медленный — быстрый"). Но остальное лично мне представляется довольно интересным. Перевод, понятное дело, мой.
Сдвиг, но не парадигмы программирования.
Дело в появлении персоналок и увеличении числа пользователей программ.
Сейчас тех, кто подключает, стало намного больше, чем тех, кто компилирует.
Но прежде чем плагинить, все равно нужно компилировать, прежде чем обновить, нужно сделать релиз и тд.
Пользователей больше, и их слова звучат чаще, но программисты с битами никуда не исчезли
Здравствуйте, Зверёк Харьковский, Вы писали:
ЗХ>>>Тестирование конечными ползователями -> Библиотеки, привнесенные пользователями АХ>>Это справедливо только тогда когда пользователи — программисты (т.е. программа — некий компонент).
ЗХ>Как выяснилось, не только. ЗХ>Например, людей, способных слепить простенький css или простенький js — неизмеримо больше, чем "программистов". И когда появилась возможность подключать к браузерам user css/user js — всякие полезные и не очень скрипты расплодились взрывообразно. То же — со всякого рода widgets. Квалификация, для того чтобы их лепить, нужна вполне на уровне "пользователь, могущий написать пару макросов для Ворда".
Да, но это не серьезно. В основном они похожи на друг друга как 2 капли воды. Мне неинтересно рассматривать тривиальную кастомизацию на уровне "хочу зеленый, а не красный фон", поскольку к программированию это имеет мало отношения.
ЗХ>>>Управляемый производителем -> Управляемый конечным пользователем АХ>>
ЗХ>Ну, это все на тему user-generated content и проч. Производитель поставляет "пустую оболочку" — а чем ее наполнят конечные пользователи, это еще бабушка надвое.
Какое отношение имеет user-generated content к программированию?
ЗХ>>>Акцент на производство -> Акцент на создание АХ>>
ЗХ>Production vs. Creation — написание программ как акт производства (заводского, по заданному режиму, на конвеере, десятками и сотнями "простых труженников") против написания как акта творчества — небольших изящных объектов, результатов творчества одного-двух-трех человек. На которых уже потом нарастает "созданное пользователями".
А это всегда так. Архитектор(ы) придумывают идею, разрабатывают концепцию, а "простые труженики" начинают ее дорабатывать и доводить до ума.
ЗХ>>>Преимущество: Крупный -> Преимущество: Мелкий АХ>>Да нет, большинство программ все продолжают пухнуть.
ЗХ>Эт смотря что считать "современными программами, демонстрирующими основные тенденции". Люди, работавшие над процитированным списком, к вебу ближе, чем к корпоративному монстростроению.
Да, но массовый веб — это в основном не программирование, а дизайн (да и то большинство по шаблонам делает). Те, кто работают с вебом пользуются продуктами созданными "монстростроителями".
Здравствуйте, Андрей Хропов, Вы писали:
ЗХ>>Написать-Скомпилировать-Запустить-Тестировать -> Написать-Тестировать-Запустить АХ>Как можно тестировать перед тем как запустить непонятно. Тест, в общем-то и есть пробный запуск.
Андрей Хропов wrote: > ЗХ>Как выяснилось, не только. > ЗХ>Например, людей, способных слепить простенький css или простенький js > — неизмеримо больше, чем "программистов". И когда появилась возможность > подключать к браузерам user css/user js — всякие полезные и не очень > скрипты расплодились взрывообразно. То же — со всякого рода widgets. > Квалификация, для того чтобы их лепить, нужна вполне на уровне > "пользователь, могущий написать пару макросов для Ворда". > > Да, но это не серьезно. В основном они похожи на друг друга как 2 капли > воды. Мне неинтересно рассматривать тривиальную кастомизацию на уровне > "хочу зеленый, а не красный фон", поскольку к программированию это имеет > мало отношения.
'Просто пользователь' может успешно перекидать весь layout сайта с
помощью Platypus, добавить пару ссылок на другие сайты или на этот же
сайт (зависящих от контекста). Также заменить все ссылки по протоколу news:// на ссылку, например, на google news. Полезно, чтобы среди
пользователей были программисты — дабы иногда делать более сложные вещи
— но не надо, чтобы их было большинство.
Здравствуйте, Зверёк Харьковский, Вы писали:
ЗХ>Тут о О'Рейллей интересный (и спорный, вестимо) пост [...]
А ссылку на оригинал можно?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Андрей Хропов, Вы писали:
ЗХ>>Написать-Скомпилировать-Запустить-Тестировать -> Написать-Тестировать-Запустить АХ>Как можно тестировать перед тем как запустить непонятно. Тест, в общем-то и есть пробный запуск.
Очень просто. См. языки с REPL (read-eval-print loop) идеологией.
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Здравствуйте, Зверёк Харьковский, Вы писали:
ЗХ>>Тут о О'Рейллей интересный (и спорный, вестимо) пост [...]
ГВ>А ссылку на оригинал можно?
Здравствуйте, Quintanar, Вы писали:
Q>Здравствуйте, Андрей Хропов, Вы писали:
ЗХ>>>Написать-Скомпилировать-Запустить-Тестировать -> Написать-Тестировать-Запустить АХ>>Как можно тестировать перед тем как запустить непонятно. Тест, в общем-то и есть пробный запуск.
Q>Очень просто. См. языки с REPL (read-eval-print loop) идеологией.
А что такое "Запустить" в таком случае?
Андрей Хропов wrote: > ЗХ>>>Написать-Скомпилировать-Запустить-Тестировать -> > Написать-Тестировать-Запустить > АХ>>Как можно тестировать перед тем как запустить непонятно. Тест, в > общем-то и есть пробный запуск. > > Q>Очень просто. См. языки с REPL (read-eval-print loop) идеологией. > А что такое "Запустить" в таком случае?
Отладить функции в REPL, после чего выгрузить все в файл, сделать одну
из них вызываемой при запуске, и запустить готовый файл.