metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2009-12-31 10:52 am

Индустрия "катится в сраное говно" (с)

Jasper - кусок говна, написанный криворукими дегенератами. Крайне не советую.
Это жабий генератор отчетов, который мне тут недавно привели в качестве ответа на пост про Postscript. Мне там правда, кроме него еще насоветовали html, word, pdf и уже-не-помню-что.

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

Но на самом это означает, что софтверная индустрия, по какой-то неясной причине превращается в тыкву, когда у человека пишущего интернет-магазины, к примеру, вообще нет ни одной точки соприкосновения с человеком, пищущим промышленную автоматизацию или там бухгалтерию. Т.е. просто разные миры, разные категории мышления.
И так дробится вообще все, т.е. на любую задачу можно получить 10-20 вариантов решений разной степени уебищности и недоделанности и "поддержки сообществом". "Пипл хавает". Это все вместо 1-2-3 нормальных доделанных решений.

Хороший пример в этом плане: винда vs линукс. Винда, условно говоря, одна - соответственно все усилия вкладываются в допиливание одного продукта. А линуксов - over 9000. И усилия сообщества превращаются в труху, размываются по всем дистрибутивам, в итоге получается ад и жопа.

То же самое касается всяких фреймворков и выбора между "взять готовое vs написать свое". Взять готовое - будь готов что придется ебаться стоя в гамаке, потому что "авторы так видят". Или что авторы никогда не рассматривали твой use case, выдуманный в белорусском минстате. А написать свое - будет очередной +1 адский фреймворк.

Короче, что-то мне подсказывает, что начиная с определенного порога адекватности, можно делать что угодно, как угодно и на чем угодно. Хоть сервер на эрланге и клиент на хаскеле, всем похер, трудоемкость по сравнению с какой нибудь жабой на сервере и qt на клиенте будет отличаться на незначительную величину.
Это в малых проектах, в крупных там очевидно надо брать распространенные вещи, чтобы быдлокодеров пачками скупать.

[identity profile] demon-gloom.livejournal.com 2009-12-31 01:02 pm (UTC)(link)
Последние пару постов metaclass'а просто читают мои мысли. Все один в один совпадает с моим мнением обо софте, фреймворках и т.д.

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

[identity profile] vp.livejournal.com 2009-12-31 01:40 pm (UTC)(link)
Классика жанра - это в переписке с разработчиками фреймворка/продукта получить ответ "вы знаете, ваш юскейс нам никто из других 1001 пользователей не говорил, потому у нас рабочее предположение, что это вы - идиоты и то что вы хотите - так не бывает".

[identity profile] sergiej.livejournal.com 2009-12-31 02:39 pm (UTC)(link)
Намного чаще бывает ответ другой: в документации такой-то на такой-то странице скзано что надо делать вот-так вот, сделайте как положено.
90% кодеров, которые ноют на глючность фреймфорка не читали документации вообще, вернее они считают Ctrl+Space и есть документация.

[identity profile] demon-gloom.livejournal.com 2010-01-01 09:16 am (UTC)(link)
Самое обидное, что часто сказывается недальновидность разработчиков. Они не могут смотреть на один-два уровней выше конкретной задачи. А если смотрят выше, то делают сверх-абстрактный велосипед, который невозможно использовать. Очень редко когда уровень обзора средний, не абстрактно что ум сворачивает, типа API для транзакций данных на 6237 листов с очень подромным и детализированным описанием процедуры как программист должен курить на улице пока сервер отправляет запрос, но и позволяет вывернуться без ебания стоя в гамаке.

Недавний мой пример недальновидности разработчиков. Скажем есть такой опенсорс прокси - сквид называется. Основное предназначение - кеш и прокси. А что на деле? Инструмент контроля хттп-траффика для админа мелко-средней фирмы. Если вы попробуете использовать сквид на уровне ISP в качестве прозрачного кеширующего прокси (основное предназначение сквида - кеш) то дико обломаетесь, т.к. в сквиде напрочь отсуствует понятие что на один уникальный url может приходиться несколько ip адресов и что запрос это не только адрес в браузерной строке адреса. Все запросы которые приходят от клиентов в сквид, при обработке не используют данные ресолвинга клиента (прощай кастомный /etc/hosts, прощай клиентский кастомный dns), а проходят через внутренний днс сквида. И при попытке поменять это flow на другое, начинаеться цирк. Отключаем внутренний днс, патчим самостоятельно сурсы на использование клиентских данных, ведь клиент посылает свой результат ресолвинга, то ускорился сквид (много ресурсов тратилось на ресолвинг на стороне сквида), но получаем возможность фишинга, т.к. сквид не хранит отдельно данные по адрес/ip. Вся архитектура проги пронизана логикой что уникален только url а не сочетание адреса, айпи, состояний аутентификации и т.д. Это значит что я пропишу у себя в хосте картинки.лента.ру на свой кастомный айпи, а затем первым похожу по картинками, то в кеш пойдут мои картинки, а не оригинальные с лента.ру. Те кто потом зайдут на ленту, получат уже из кеша не оригинальные с лента.ру картинки. Патчим против фишинга, получаем проблемы с кешем, типа писать может, но не находит потом данные, т.к. разработчики придумали аж 3 функции генерации кеш ключа, одна другой гаже, при этом данные запроса получает лишь одна, остальные чистый адрес запроса. Фиксим кеш - летит синхронизация с другими сквидами, а также летит удаление данных из сквида, т.е. в кеш вносится, а если ручками захочешь запись удалить - то не хочет. Ах, да, один из майнтейнеров сквида, который очень любит общаться с общественность и мелькает в каждом втором посте на форумах на вас уже забил хуй и не отвечает на почту, еще с того этапа как вы попросили помочь разобраться с конфигурацией tproxy. А вот зато систем аутентификации через этот сквид - жопой ешь.

[identity profile] vp.livejournal.com 2010-01-01 09:38 am (UTC)(link)
Дык это ж классика жанра. Приложение начиналось писаться под какой-то весьма конкретный случай, потом обощилось насколько это было возможно в выбранной парадигме, и все. Дальше обощать - это уже совсем полностью все переделывать, нецелесообразно и не хочется. Так всегда и у всех.