Суть разработки программного обеспечения
— Нужно проделать 500 отверстий в стене, так что я сконструировал автоматическую дрель. В ней используются элегантные точные шестерни для непрерывной регулировки скорости и крутящего момента по мере необходимости.
— Отлично, у неё идеальный вес. Загрузим 500 таких дрелей в пушку, которые мы сделали, и выстрелим в стену.
Я занимаюсь программированием уже 15 лет. Но в последнее время при разработке не принято думать об эффективности, простоте и совершенстве: вплоть до того, что мне становится грустно за свою карьеру и за IT-отрасль в целом.
Для примера, современные автомобили работают, скажем, на 98% от того, что физически позволяет нынешняя конструкция двигателя. Современная архитектура использует точно рассчитанное количество материала, чтобы выполнять свою функцию и оставаться в безопасности в данных условиях. Все самолёты сошлись к оптимальному размеру/форме/нагрузке и в основном выглядят одинаково.
Только в программном обеспечении считается нормальным, если программа работает на уровне 1% или даже 0,01% от возможной производительности. Ни у кого вроде нет возражений. Люди даже гордятся, насколько неэффективно работает программа, типа «зачем беспокоиться, компьютеры достаточно быстрые»:
@tveastman: Я каждый день запускаю программу на Python, она выполняется за 1,5 секунды. Я потратил шесть часов и переписал её на Rust, теперь она выполняется за 0,06 секунды. Это ускорение означает, что моё время окупится через 41 год, 24 дня :-)
Наверное, вы слышали такую мантру: «Время программиста дороже времени компьютера». Это означает, что мы тратим компьютерное время в беспрецедентных масштабах. Вы бы купили машину с расходом 100 литров на 100 километров? Как насчёт 1000 литров? С компьютерами такое происходит постоянно.
Всё невыносимо медленно
Оглянитесь вокруг: портативные компьютеры в тысячи раз мощнее тех, что привели человека на Луну. Тем не менее, каждый второй сайт не может обеспечить плавную прокрутку страницы на 60 FPS на последнем топовом MacBook Pro. Я могу комфортно играть в игры, смотреть видео 4K, но не прокручивать веб-страницы! Это нормально?
Почтовому приложению Google Inbox в браузере Chrome от той же Google, требуется 13 секунд, чтобы открыть письмо среднего размера:
Он ещё анимирует пустые белые формы вместо того, чтобы показать их содержимое, потому что это единственный способ анимировать что-то на веб-странице с приличной производительностью. Нет, не 60 FPS, а скорее «настолько быстро, насколько возможно на этой странице». С нетерпением жду, что же веб-сообщество предложит, когда дисплеи 120 Гц станут мейнстримом. Они еле справляются с 60 Гц.
Обновление Windows 10 занимает 30 минут. Что можно делать так долго? Этого времени достаточно, чтобы полностью отформатировать мой SSD-накопитель, загрузить свежий билд и установить его примерно 5 раз подряд.
Павел Фатин: Набор текста в редакторе — относительно простой процесс, поэтому даже 286 могли обеспечить довольно плавный процесс набора.
В современных текстовых редакторах задержка при наборе больше, чем в 42-летнем Emacs. Текстовые редакторы! Что может быть проще? На каждое нажатие клавиши, нужно всего лишь обновить крошечную прямоугольную область на экране, а современные текстовые редакторы не могут сделать это за 16 мс. А это много времени. МНОГО. 3D-игра заполняет экран сотнями тысяч (!!!) полигонов за те же 16 мс, а также обрабатывает ввод, пересчитывает мир и динамически загружает/выгружает ресурсы. Как так?
Тенденция такова, что софт вовсе не становится быстрее и функциональнее. Мы получаем более быстрое оборудование, на котором софт с теми же функциями ворочается медленнее, чем раньше. Всё работает намного медленнее максимальной скорости. Никогда не задумывались, почему ваш телефон загружается от 30 до 60 секунд? Почему он не может загрузиться, скажем, за одну секунду? Здесь нет никаких физических ограничений. Лично мне бы такое понравилось. Хочется, чтобы разработчики достигли предела, используя каждый бит для производительности.
Всё ОГРОМНОЕ
И ещё это раздутие. Веб-приложения могут открываться в десять раз быстрее, если просто заблокировать рекламу. Google умоляет всех прекратить тормоза с помощью инициативы AMP — технического решения, для которого не нужны какие-либо технологии, просто немного здравого смысла. Если удалить раздувание, интернет станет работать на сумасшедшей скорости. Неужели это сложно понять?
Система Android без приложений занимает почти 6 ГБ. Просто задумайтесь на секунду, насколько неприлично огромное это число. Что там, фильмы в HD-качестве? Думаю, в основном код: ядро, драйверы. Ещё какие-то ресурсы, конечно, но они не могут быть такими большими. Сколько же драйверов вам нужно для телефона?
Windows 95 занимала 30 МБ. Сегодня у нас есть веб-страницы тяжелее, чем эта ОС! Windows 10 уже 4 ГБ, то есть в 133 раза больше. Но разве она в 133 раза лучше? Я имею в виду, функционально они практически одинаковы. Да, у нас появилась Кортана, но я сомневаюсь, что она весит 3970 МБ. Но это Windows 10, неужели Android должен быть ещё в полтора раза больше?
Приложение клавиатуры Google как ни в чём не бывало съедает 150 МБ. Эта программа рисует 30 клавиш на экране — она правда в пять раз сложнее, чем вся Windows 95? Приложение Google app, в основном, просто пакет для Google Web Search, занимает 350 МБ! Сервисы Google Play, которыми я не пользуюсь (я не покупаю там книги, музыку или видео) — 300 МБ, которые просто сидят здесь и которые нельзя удалить.
После установки всех необходимых приложений (социальные сети, чаты, карты, такси, банки и т. д.) на телефоне остался всего 1 гигабайт для фотографий. И это вообще без игр и музыки! Помните времена, когда ОС, приложения и все ваши данные помещались на дискету?
Ваша программа для заметок наверняка написана в Electron и, таким образом, поставляется с драйвером для контроллера Xbox 360, умеет показывать 3D-графику, воспроизводить аудио и фотографировать с помощью веб-камеры.
Простой текстовый чат всегда славился скоростью и малым потреблением памяти. Так что Slack — это пример очень ресурсоёмкого приложения. Я имею в виду, что чат и текстовый редактор — это самые базовые вещи, они должны потреблять меньше всего ресурсов. Добро пожаловать в 2018 год.
Вы можете сказать, что они хотя бы работают. Но увеличение размера — не значит улучшение. Это значит, что кто-то потерял контроль. Мы больше не знаем, что происходит. Увеличение размера — это повышение сложности, снижение производительности и надёжности. Это ненормально и не должно считаться нормой. На раздутый размер нужно сразу обращать внимание — и держаться от них подальше.
Всё гниёт
Android-телефон на 16 ГБ был прекрасен три года назад. Сегодня под Android 8.1 он еле работает, потому что каждое приложение увеличилось минимум вдвое без видимых причин. Дополнительных функций нет. Они не стали быстрее и внешний вид не изменился. Они просто… раздулись?
iPhone 4s вышел с iOS 5, но едва может работать под управлением iOS 9. И это не потому, что iOS 9 намного лучше — в основном, система не изменилась. Но новое оборудование быстрее, поэтому они сделали программное обеспечение медленнее. Не волнуйтесь — вы получили захватывающие новые возможности, например… работа тех же приложений с той же скоростью! Не знаю.
iOS 11 прекратила поддержку 32-разрядных приложений. Это значит, что если разработчик не готов вернуться и обновить приложение, скорее всего, вы не увидите снова эту отличную программу.
@jckarter: Программу DOS можно заставить работать без изменений практически на любом компьютере, сделанном после 80-х годов. Приложение JavaScript может прекратить работу из-за завтрашнего обновления Chrome.
Сегодняшние веб-страницы не будут работать в любом браузере через 10 лет (а может и раньше).
«Нужно бежать со всех ног, чтобы только остаться на том же месте». Но смысл? Я могу постоянно покупать новые телефоны и ноутбуки, как все, но делать это лишь ради того, чтобы иметь возможность запускать все те же приложения, которые стали только медленнее?
Думаю, что мы можем и должны исправить ситуацию. Сейчас все разрабатывают программы для сегодняшнего дня, изредка для завтрашнего. Но будет неплохо делать вещи, которые работают немного дольше.
Хуже — значит лучше
Сейчас никто ничего не понимает. И не хочет понимать. Мы просто выпускаем полусырую ерунду, надеемся на лучшее и называем это «здравым смыслом для стартапа».
Веб-страницы просят обновиться, если что-то пошло не так. У кого есть время, чтобы найти причину неполадки?
Любое веб-приложение выдаёт постоянный поток «случайных» ошибок JS, даже на совместимых браузерах.
Вся архитектура баз данных веб/SQL построена на предпосылке (даже надежде), что никто не изменит данные, пока вы смотрите на открытую веб-страницу.
Большинство приложений для совместной работы сделали «как смогли», там масса типичных сценариев, когда они теряют данные. Видели диалог «Какую версию сохранить?» Сегодня планка так низка, что пользователи рады даже этому вопросу.
И нет, в моём мире не является нормальным приложение, которое говорит: «Я уничтожу часть твоей работы, только выбери какую».
Linux намеренно убивает случайные процессы. И всё же это самая популярная серверная ОС.
У меня каждое устройство регулярно выходит из строя так или иначе. Время от времени монитор Dell нужно аппаратно перезагружать, потому что в нём есть софт. AirDrop? Вам повезёт, если он обнаружит устройство, иначе что делать? Bluetooth? Спецификации настолько сложны, что устройства не будут устанавливать связь друг с другом, а периодические перезагрузки — оптимальный вариант.
И я даже не упоминаю об Интернете вещей. Это настолько за гранью разумного, что даже нечего добавить.
Я хочу гордиться своей работой. Я хочу делать рабочие, стабильные вещи. Для этого нужно понять, что конкретно мы разрабатываем, внутри и снаружи, а это невозможно сделать в раздутых, чрезмерно усложнённых системах.
В программировании такой же хаос
Кажется, что никто больше не заинтересован в качественных, быстрых, эффективных, долговечных, основательных решениях. Даже если давно известны эффективные решения, мы по-прежнему боремся с теми же проблемами: управление пакетами, системы сборки, компиляторы, конструкция языка, IDE.
Системы сборки по своей сути ненадёжны и периодически требуют полной очистки, хотя у них есть вся информация для инвалидации. Ничто не мешает сделать процесс сборки надёжным, предсказуемым и на 100% воспроизводимым. Просто никто не думает, что это важно. NPM уже много лет находится в состоянии «иногда работает».
@przemyslawdabek: Кажется, что rm-rf node_modules
является неотъемлемой частью рабочего процесса в проектах Node.js/JavaScript.
А время сборки? Никто не считает проблемой, что компилятор работает минуты или даже часы. А как же «время программиста дороже»? Почти все компиляторы, пре- и постпроцессоры значительно, иногда катастрофически увеличивают время сборки, не обеспечивая пропорционально существенных преимуществ.
Вы ожидаете, что программисты будут принимать в основном рациональные решения, но иногда они делают прямо противоположное. Например, выбирая Hadoop даже если он медленнее, чем выполнение той же задачи на одном десктопном компьютере.
Машинное обучение и ИИ отбросили программное обеспечение к гаданию на кофейной гуще во времена, когда большинство компьютеров даже не были достаточно надёжными.
@rakhim: Когда приложение или сервис говорит «под управлением ИИ» или «на основе машинного обучения», я читаю это как «ненадёжное, непредсказуемое поведение, которое не поддаётся объяснению». Я держусь подальше от «ИИ», потому что хочу от компьютеров противоположного: надёжности, предсказуемости и логики.
Мы засунули виртуальные машины в Linux, а затем засунули Docker в виртуальные машины, просто потому что никто не смог разобраться с бардаком, который производят большинство программ, языков и их окружений. Мы накрываем дерьмо одеялами, чтобы не убирать его. Например, «единый бинарник» остаётся ОГРОМНЫМ преимуществом Go. Нет бардака == успех.
Окружающая среда Python настолько загрязнилась, что мой ноутбук объявили зоной экологической катастрофы.
Примечание. Агентство по защите окружающей среды Python хотело залить его цементом и захоронить с картинкой на входе — предупреждением для будущих цивилизаций об опасности использовать sudo для установки случайных пакетов
А зависимости? Люди бездумно ставят переусложнённые «полные пакеты» для простейших проблем, не думая о последствиях. Из этих зависимостей растут новые. В конечном итоге вы получаете дерево, которое является чем-то средним между фильмом ужасов (огромное и полное конфликтов) и комедией (нет причин, по которым мы добавили сюда эти пакеты, но вот они):
Программы не могут работать несколько лет без перезагрузки. Иногда даже несколько дней — это слишком. Происходят случайные глюки, и никто не знает почему.
Что ещё хуже, ни у кого нет времени остановиться и выяснить, что произошло. Зачем беспокоиться, если всегда есть другой выход. Поднять новый инстанс AWS. Перезапустить процесс. Удалить и восстановить базу данных. Написать скрипт, который будет перезапускать ваше сломанное приложение каждые 20 минут. Включить одни и те же ресурсы несколько раз: тяп-ляп — и в продакшн. Двигайся быстро, не трать время на исправление ошибок.
Это не инженерная работа. Это просто ленивое программирование. Инженерная работа предполагает глубокое понимание производительности, структуры и ограничений того, что вы создаёте. Лепить халтуру из некачественного материала — совершенно противоположное занятие. Чтобы развиваться, мы должны понимать, что и зачем мы делаем.
Мы застряли
Таким образом, всё это просто куча едва работающего кода, добавленного поверх ранее написанного едва работающего кода. Он продолжает расти в размерах и сложности, уменьшая шансы на изменения.
Чтобы иметь здоровую экосистему, необходимо вернуться. Необходимо иногда выбрасывать хлам и заменять его лучшими альтернативами.
Но у кого есть на это время? Новые ядра ОС не выходили сколько, 25 лет? Это сейчас стало слишком сложным, чтобы просто взять и переписать. В браузерах накопилось столько пограничных ситуаций и исторических прецедентов, что никто не осмелится писать движок с нуля.
Сегодняшнее определение прогресса — или подбросить топлива:
@sahrizv: 2014 — нужно внедрить микросервисы для решения проблем с монолитами.
2016 — нужно внедрить Docker, чтобы решить проблемы с микросервисами.
2018 — нужно внедрить Kubernetes, чтобы решить проблемы с Docker.
или изобретать велосипед:
@dr_c0d3: 2000: напишите 100 строк XML, чтобы «декларативно» настроить сервлеты и EJB.
2018: напишите 100 строк YAML, чтобы «декларативно» настроить микросервисы.
В XML были хотя бы схемы…
Мы застряли, и никто нас не спасёт.
Бизнесу всё равно
Пользователям тоже. Они выучились принимать то, что мы делаем. Мы (инженеры) говорим, что каждое приложение для Android занимает 350 МБ? Хорошо, они будут с этим жить. Мы говорим, что не можем обеспечить плавную прокрутку? Окей, они свыкнутся с телефоном, который подтормаживает. Мы говорим: «Если не работает, перезагрузитесь»? Они перезагрузятся. Ведь у них нет выбора.
Конкуренции тоже нет. Все строят одни и те же медленные, раздутые, ненадёжные продукты. Случайный скачок вперёд по качеству даёт конкурентное преимущество (iPhone/iOS против других смартфонов, Chrome против других браузеров) и заставляет всех перегруппироваться, но ненадолго.
Наша миссия как инженеров — показать миру потрясающие возможности современных компьютеров с точки зрения производительности, надёжности, качества и удобства использования. Если нам не всё равно, люди потянутся. И никто кроме нас не покажет им, что такое возможно. Если только нам не наплевать.
Не всё так плохо
Иногда на пасмурном небосводе просвечивают лучики надежды.
Работа Мартина Томпсона (LMAX Disruptor, SBE, Aeron) впечатляет, она освежающе проста и эффективна.
Редактор Xi Рафа Левиена, кажется, построен на правильных принципах.
Джонатан Блоу для своей игры разработал язык компилирования, который компилирует 500 000 строк в секунду на ноутбуке. Это холодная компиляция, никакого промежуточного кэширования, никаких инкрементальных билдов.
Не нужно быть гением, чтобы писать быстрые программы. Здесь нет какой-то магии. Единственное, что требуется, — это не строить софт на базе огромной кучи дерьма, которую поставляют современные инструменты.
Манифест лучшего мира
Я хочу видеть прогресс. Я хочу перемен. Чтобы современное программное обеспечение совершенствовалось, а не стояло на месте. Я не желаю заново изобретать одно и то же, каждый раз выпуская всё более медленный и раздутый продукт. Я хочу во что-то верить — в достойную цель, в будущее, которое лучше, чем то, что мы имеем сегодня, и чтобы появилось сообщество инженеров, которые разделяют это видение.
Что мы имеем сегодня — это не прогресс. Мы едва достигаем бизнес-целей с этими плохими инструментами. Мы застряли в локальном оптимуме, и никто не хочет двигаться. Это даже не хорошее место, оно раздутое и неэффективное. Мы просто как-то привыкли к нему.
Поэтому я хочу заявить: нынешняя ситуация — полное дерьмо. Как инженеры, мы можем и должны, и сделаем лучше. У нас могут быть лучшие инструменты, мы можем создавать лучшие приложения, более быстрые, предсказуемые, более надёжные, использующие меньше ресурсов (на порядки меньше!). Мы должны глубоко понять, что мы делаем и почему. Мы должны выпускать продукты надёжно, предсказуемо, с самым высоким качеством. Мы можем и должны гордиться нашей работой. Не просто «учитывая то, что у нас было...» — никаких оговорок!
Надеюсь, я не одинок. Надеюсь, что есть люди, которые хотят того же. Я буду рад, если мы хотя бы начнём говорить о том, насколько абсурдно нелепа нынешняя ситуация в индустрии программного обеспечения. А потом, возможно, придумаем, как выбраться из неё.
vlreshet
Это всё, конечно, правильно, но, мне интересно, готов ли автор (да, я вижу что это перевод) платить вместо условной тысячи долларов за новый телефон — платить 50 000? И тогда действительно расширят штат разработчиков, чтобы у них было время писать ядро системы отдельно под каждый телефон. А ещё придётся платить за каждый веб-сайт, потому что разрабатывать каждый раз всё с нуля, без использования библиотек и фреймворков — будет очень и очень дорого. Вот поэтому, там где оно надо (космос, например, или военка) — там и оптимизируют. А в реальном мире пользователю важнее получить приложение за 1$ которое будет работать и на его телефоне, и на планшете, и даже на телевизоре…
DrZlodberg
Всё хорошо в меру. Только что попробовали открыть XML файл в пару сотен метров (не спрашивайте зачем) в 17 VisualStudio под десяткой. На относительно свежем компе с 4 пнём (хз какой именно) и 16ГБ оперативки. Через 15 минут грохнули не дождавшись его выхода из медитации.
sopov
А в FARе за сколько откроет?
lieff
Мгновенно, он умеет обрабатывать кусочками из произвольного места. Только colorer плагин будет в фоне с начала расцветку считать.
QtRoS
'кусочками' научно называется memory mapped files :)
crozzle
К словам придираетесь
QtRoS
Я не придираюсь — даю детали для потенциально заинтересовавшихся реализацией.
sasha1024
Мне кажется, memory mapped files тут мало при чём. Речь о том, что некоторые редакторы способны отображать файл, лишь распарсив его целиком, а некоторым достаточно распарсивания некоторых определённых частей (в т.ч. той, которая должна быть отображена в данный момент, т.к. находится в видимой на экране части документа). Memory mapped files тут в принципе можно применить, но, по-моему, не обязательно, обычных lseek/read вполне достаточно, разница скорее в алгоритмах, а не в lseek+read vs. mmap.
IRainman
Memory mapped files тут не просто можно, а обязательно ибо иначе будет больше вероятность лагов ;)
popov654
Мне кажется, или в случае, если весь файл влезает в RAM (точнее даже не так, если все данные, необходимые парсеру/просмотрщику влезают в RAM), то это совершенно лишнее? Исходя из определения
IRainman
Не лишнее, memory mapped files позволяют убрать лишнюю прослойку и сразу использовать данные из файлового кэша системы. При использовании обычного подхода получится, что система в любом случае откроет файл и он в любом случае будет в кеше, но в память приложения данные придётся копировать. и для sasha1024 тоже.
sasha1024
Я так понимаю, в кэше будет не обязательно весь файл, а может быть часть файла (если он большой).
А что значит «но в память приложения данные придётся копировать»?
Upd.: А, всё, я кажется, понял. При read происходит перенос данных в уже выделенную пользователем память. При этом эта память уже контроллируется приложением, т.е. оптимизировать это каким-то ре'map'ингом страниц (или как там ОС это делать может) не выйдет.
IRainman
Агу, именно так. Кроме того остаётся пусть и небольшой но оверхед на работу самих API файловой системой, а тут для приложения сразу доступен уже очищенный от всего связанного с ФС кусок памяти содержащий данные файла.
sasha1024
Ну, оверхед на работу с файловой системой будет в любом случае — разве нет?
IRainman
Этот оверхед конечно останется, но вся эта работа и так производится. Просто тут очень удобно получается, что данные уже лежат в памяти и воспринимать их как файл нет никакой необходимости.
sasha1024
Ну, на скорости это практически не сказывается.
IRainman
Более того благодаря этому можно делать очень полезные вещи для многопроцессной обработки чего либо.
sasha1024
По сути, благодаря mmap мы избегаем лишнего копирования данных из одного участка оперативной памяти в другой. Что достаточно быстрая операция. А основной затык тут не в mmap vs. lseek+read, а именно в алгоритмах, которые либо довольствуются малыми кусочками файла, либо заставляют вычитать с диска (нагрузка на диск) и распарсить (нагрузка на процессор и опять же таки оперативную память) значительный кусок файла или вообще весь файл.
sasha1024
Обосновать как-то сможете?
gearbox
редактор/ide отображает (при подсветке синтаксиса и прочих плюшках) не plain text (где да, memory mapping помог бы) а по сути AST дерево, которое надо где то хранить. И вот это AST во первых весит больше исходника, во вторых его еще создать надо — то есть распарсить весь исходник. vim худо бедно справляется потому что у него подсветка на регулярках, и она регулярно ломается.
vikarti
Похожий функционал был еще в некоторых DOS-приложениях (для просмотра БОЛЬШИХ изображений вроде растровых карт) а в DOS memory-mapped files не бывает. Руками можно все сделать. Сложно но можно.
aamonster
Memory mapped files — это просто немного удобства для программиста. Под CP/M-80 (в которой ещё не было не то что mmf — банальных file handles) текстовый редактор wordstar спокойно правил файл больше размера оперативки.
DrZlodberg
Не знаю, как фар, а блокнот++ открывает за <1сек.
Вообще по опыту там дико тормозит подсветка кода, и такая беда не только там.
AlexMt
Ну конечно, ведь в этом случае надо разбить текст на токены, и хорошо если разработчик предусмотрел токенизацию ± экран, но ведь в сложных больших структурах где, к примеру, есть один корень и много ветвей (тот же xml), это может быть нереально, соответственно нельзя определить где находится начало, откуда можно стартовать синтаксический разбор, и соответственно корректную подсветку создать просто не выйдет.
DrZlodberg
Как раз в xml это проще простого. Токенов там мало и они все достаточно легко распознаются. Там не требуется делать разметку с корня, достаточно чуть отойти назад и найти начало любого токена. Проблема будет только с CDATA, но на него пофиг.
AlexMt
Возможно, но опять же имхо зависит от структуры xml, на моём текущем проекте xml, смёрженный из 5-10 xml может быть от 100-150 MiB и выше, как повезёт. В этом случае открытие файла в np++ становится мучением, как и работа с ним.
DrZlodberg
Раньше использовал EditPlus2 (не помню, почему отказался частично), до 50Мб он переваривал не морщась, больше не пробовал.
Ezhyg
При открытии большой пачки файлов, пусть даже мелких, на сотню байт-пару килобайт, зависает на иногда до 5-10 секунд, на так и не посчитал каком по счёту файле, что-то после 120, но не всегда на одинаковом количестве. (вот сейчас проверил — завис, правда только на пару секунд, на 127-ом)
Я тоже отказался от него в больше части предыдущих операций и перешёл на AkelPad. Он оказался лучше Notepad++.
DrZlodberg
Если не секрет, зачем нужно открывать 100+ файлов одновременно? А если какое-то однотипное массовое редактирование, то уж проще скриптами. Ну и пару сек — это не катастрофа. Многие редакторы один файл открывают дольше.
Ezhyg
Пара секунд только сейчас, при открытии же «обычной пачки» из ~200-300 файлов — зависает на заметное время.
Для перевода делаю копию файлов. А им нужно иногда конвертирование между форматами (из Unix в Win) и изменение кодировки (последнее можно автоматизировать).
После покупки автором оригинала — огрызкобука, часть файлов он стал сохранять в формате Unix. Изредка он заменяет много файлов, бывают сбои синхронизации и резервного копирования. На самом деле такое редко нужно, но всё же бывало, такое приходилось делать массово.
Да, можно написать конвертер и я писал один (но только для смены кодировки), но он тоже не универсален, тем более учитывая, что иногда файлы для работы нельзя выделить из всей пачки :(.
khim
Осталось понять чем вам perl-скрипт на 20 строк не угодил и зачем для конвертации вообще привлекать редактор.
Ezhyg
«Осталось понять, чем...» вы читали предыдущий комментарий :(. В котором я достаточно полно описал, зачем мне нужен редактор, да, помимо двух «конвертаций»!
А ещё, помимо самого скрипта, мне внезапно(!) понадобится интерпретатор — сам perl. Офигенный «скрипт», угу.
А ещё, он делает только одно, довольно редко нужное действие, но не делает второе, самое важное конвертирование — смену кодировки.
khim
На любой современной Unix-системе он есть. А откуда у вас возьмутся файлы в Unix-кодировке если у вас нету Unix'а — для меня загадка.
В любом случае если такое происходит не один раз в жизни, то проще поставить CygWin, чем забивать гвозди микроскопом, если один раз — можно и потерпеть пока редактор эти файлы откроет…
Druu
Забивание гвоздей микроскопом — это как раз куча мусора в системе в виде cygwin'ов, перлов и прочей ненужной гадости для решения одной задачи.
vitaliy2
Notepad++ не очень, т.?к. не предназначен даже для самого базового редактирования кода (не поддерживает Tab indent space align). Зато зачем-то поддерживает подсветку кода. Бред.
DrZlodberg
Подсветка кода сильно нужнее. Хотя выравнивание не помешало бы, есть такое.
vitaliy2
Но и подсветку значительно сложнее сделать. На несколько порядков.
Vlad_IT
Если отключить из редактора intellisence, подсветку синтаксиса, то вероятнее он откроется быстрее. Тот же sublime, если автоматом не поставит подсветку синтаксиса, то может открывать файлы в разы больше чем с подсветкой. Хотя Vim например и с подсветкой открывает достаточно шустро.
DrZlodberg
Блокнот++ открывает быстрее секунды с подсветкой. На самом деле там 2 проблемы
1. подсветка. У многих она тормозит. У некоторых — безбожно.
2. Весь файл в одну строку. Такая подстава многие редакторы ставит на колени. Как пример: PSPad с подсветкой справляется, а вот с однострочниками нет. Более того, там даже прокрутка будет безбожно тормозить (если вкл автоматический перенос)
domix32
Помнится перестал использовать PSPad после того как надоели постоянные падение при попытке открыть хотя бы метровый файл
Azan
Та же самая ситуация, сам по себе PSPad был отличным продуктом, но если бы не эти мелочи. Но зато я открыл для себя существование Notepad++ и Sublime Text
vitaliy2
Если бы ещё в Notepad++ можно было бы редактировать программный код. Туда зачем-то впихнули подсветку синтаксиса, а какой в этом толк, если всё-равно не поддерживает tab indent space alignment.
sumanai
И это всё?
IRainman
Подсветка синтаксиса в Notepad++ полезна тем чтобы глаза не вытекали и чтобы можно было, например, скрипт для cmd отредактировать. А для редактирования кода и разработки есть IDE, её и необходимо использовать.
DrZlodberg
Странно. Сам активно им пользовался и падений особо не припомню. Отказался как раз из-за невозможности работы с большими однострочными файлами (дичайше тормозил). Но если файл порубить предварительно на строки — вполне норм. Для нарезки использовал EditPlus2, он без проблем пережевывал 50+метров (больше просто не пробовал)
domix32
Я в читерскую бытность частенько открывал непотребные файлы текстовыми редакторами. Переживали такое немногие. Это было году в 2004 в расцвет WinXP и тогда много чего под винды отваливалось по разным причинам.
Goodkat
Ну сделай ты подсветку синтаксиса отдельными потоком, чтобы не мешать пользователю пользоваться твоей программой.
Сперва разработчики для iOS догадались (ОК, их заставили) переносить тяжёлые и долгие операции в фоновые потоки.
За ними подтянулись разработчики для Android.
А на десктопах всё так же по старинке всё одним потоком, последовательно — если у пользователя комп тормозит, то пусть купит себе новый, ага.
sasha1024
Интересно, за что Вас заминусовали…
VolCh
Ну у джетбрейнс парсинг отдельным потоком или процессом
Goodkat
За это мы их и любим.
Но очень многие разработчики ожидают, что их творения будут работать в идеальных условиях, на быстрых процессорах, с достаточным количеством памяти, с быстрой и всегда доступной сетью и т.п.
freuser
… с правами админа (десктоп), с доступом ко всем возможным действиям, нужным и ненужным, но пусть будут (мобайл)…
Первое еще можно понять — сисадмин по своей лени выдал разработчику полные права для изменения либ и прочего, вот последний так же ленится релогаться туда-обратно и пишет под админом. Ваше право, возьмите да укажите в требованиях к установке полные права. Нееет, мы умолчим о том, что разработка у нас через одно место, а юзер пусть грешит на себя — то ли комп глючит, то ли ОС криво встала… Из последнего — надстройка Overwolf для TeamSpeak3: под юзером запускалась, все рисовала, но не коннектилась к ей же запущенному TS3.
Порой доходит до абсурда — пользовался плагином EveryHTTPS, и на одном из сайтов сертификат был выдан на айпишник локалхоста, то есть у админа всё работало…
aamonster
Чтобы делать что-то в отдельном потоке — нужны на порядок более квалифицированные разработчики. Без этого ловим глюки и тормоза (потоки ждут друг друга — не раз наблюдал, как в несколько потоков оказывается медленннее, чем в 1).
kalininmr
да. vim почти всегда шустро.
любопытно за счет чего
OlegMax
XML хороший пример, но в другом смысле. Среди читающих это есть некоторая доля программистов, некоторым из них приходилось парсить XML. Сколько из них пользовались XML DOM парсером, который по определению жрет память, а сколько гораздо более экономным XML SAX парсером? Вот то-то же, DOM настолько удобен для программиста, что в 99% процентов случаев ему прощали его цену. А из десятков таких нюансов и складывается общий оверхед.
DrZlodberg
На самом деле sax\dom — это фигня (хотя да, скорость там очень отличается). Недавно столкнулся с кодом, который на больших объёмах почему-то (только у клиента) дико тормозил. Практически экспоненциально! Т.е. для файлов в 100 кб вывод занимает секунд 10, а метр — уже к часу дело идёт. Начал разбираться. Оказалось файл формируется по шаблону, а шаблон тупо нарезается на блоки, из которых собирается файл. String.replace-ом. В итоге у разраба на машине с 16Гб оперативки всё работает, а вот у клиента с 2..4Гб моментально выжирается вся оперативка и дальше становится всё очень печально…
aamonster
Напомнило, как я в своё время всадил фееричную багу.
После нескольких часов работы программа начинала тормозить. Причина: в ней было отладочное окошко с текстбоксом лога, в который я при обработке очередного блока данных добавлял точку (что-то тип dbgForm.textboxLog.Text.Append(".") — дело было на дельфях). Что с каждой точкой оказывалось всё медленней...
evocatus
В драйверах Qualcomm как-то нашли кусочек кода, где для того, чтобы найти максимум в массиве, его сортировали по неубыванию. Пузырьком.
Это драйвер, т.е. критичный к производительности код. Для мобильных устройств. От Qualcomm.
multiprogramm
Абсолютно точно.
То ли в 2014, то ли в 2015 у нас налоговая приняла законы, по которым XML-ины электронной отчётности по размеру стали допустимы до 10гб (вроде бы с изначального «копеечного» лимита 10-100мб), так все решения на DOM'ах очень красиво посыпались, когда пошли клиенты с громадными «контролируемыми сделками» и «книгами для ндс». Потому что DOM одной только памяти жрёт х10 от размера файла, и если раньше (100мб-1гб) на это закрывались глаза, то на 100гб глаза уже не закроешь, не говоря уже о платформе х86.
Делал в те времена в системе электронной отчётности проект по уходу с DOM (легаси было крепко на него завязано, XPath и прочие плюшки активно использовались) на SAX в один пробег, с «эмуляцией» плюшек или обоснованным отказом от них — веселья было много. Теперь в резюме указываю тег XML, а на собеседованиях периодически посмеиваются, мол, что там знать-то, древовидная структура, теги/атрибуты и всё. Так-то оно да, но, как и в физическом мире, когда масса объекта пересекает определённые границы, проявляется много интересных эффектов, о которых даже не думаешь, щупая маленькие объекты.
DrZlodberg
Мы с этой проблемой лет на 10 раньше столкнулись. Объёмы тогда были не такие, но 50..100 метров на тех машинах тоже было не подарком.
0xd34df00d
Однопроходный алгоритм в ленивом DOM-парсере вполне может быть O(1) по памяти.
Да, я такое писал с одним из хаскелевских DOM-парсеров. Было очень удобно, приятно, естественно и эффективно.
OlegMax
Но это уже не DOM.
0xd34df00d
Почему?
Надо разделять стратегию вычисления и API, тем более, что сайд-эффекты остаются все те же. Ну, да, если там невалидный документ, то я получу ошибку чуть позже, возможно, потратив ресурсы процессора на обработку валидного куска DOM-дерева. Ну так с SAX бы то же было бы.
DrZlodberg
Это сильно зависит от структуры документа. Бывают форматы, где есть ссылки из начала в конец, т.е. для обработки самого начала уже надо иметь доступ ко всему файлу. И загружать его всё равно придётся полностью. Так что никакое О(1) не отменит того, что грузиться оно будет медленнее и памяти занимать сильно больше. Причём второе — бессмысленно, т.к. программы обычно всё-таки не работают с самим деревом, а просто загружают его в свою структуру просто дублируя данные.
0xd34df00d
Ну, в этом случае можно просто сохранить ссылку на кусок в конце.
А вот если вам нужно посчитать, скажем, 0.95-персентиль по некоторым нодам в документе, это уже может быть болезненно, да.
DrZlodberg
В смысле? Чтобы сохранить ссылку нужно сначала распарсить весь файл и найти, куда ссылаться, т.е. нужна доп логика над парсером. Проще sax-ом обработать в один проход. А ещё ссылки бывают не только вперёд, но и назад. DOM для того и нужен, чтобы работать с рандомным доступом, без этого смысла в нём нет.
0xd34df00d
Ну это уже от конкретной задачи зависит, так сферически в вакууме трудно обсуждать конструктивно, но смысл в том, что встретили ссылку вперёд — сохранили в список соответствующий предикат. Тогда вы будете O(n) по числу предикатов/ссылок, а не по всему объёму документа.
А иногда оказывается выгоднее тупо распарсить документ два-три раза, зато каждый раз в один проход.
DrZlodberg
Вот только вы, похоже, не учли один нюанс. В этом случае парсер(!) должен знать структуру конкретного файла, чтобы понимать, что является ссылкой, а что якорем. Что слегка убивает идею универсального псевдо-dom. Imho на этом этапе проще перейти к нормальному sax, это будет проще, чем морочиться со всей лишней логикой чтобы вкорячить сюда то, что тут не требуется. (троллейбус.jpg)
0xd34df00d
Зачем это парсеру знать? Парсер просто выдаёт ленивое дерево нод, знать это нужно вам, когда вы по этому дереву проходите.
Druu
А как парсер сможет выдать дерево нод (не важно лениво или нет), не зная структуры документа?
Вообще по такой логике можно любую задачу решить за О(1) — объявить что ф-я, которая делает то, что нужно, ленивая, и не запускается, т.к. оказывается не нужна.
В итоге можно мгновенно решать np-задачи.
OlegMax
Как был реализован IXMLDOMNode::parentNode?
InterceptorTSK
Может быть и никак.
С чего вы взяли что оно ему надо было?
Он же не полную реализацию стандарта заваял. Полная реализация вообще никому не нужна, никогда.
OlegMax
Но это уже не DOM.
InterceptorTSK
Еще раз?) Давайте отвечу по-другому. Ему не нужная реализация полного дома. И вам не нужна) Она никому не нужна.
Человек отбросил лишнее, и алгоритмически оно у него полетело. При этом совместимость осталась.
В чем собственно проблема?
А проблема в том, что стремятся создать универсальную библиотеку, а это полная чушь. Потому что даже математически это невозможно. Если вы разгоняете что-то, то что-то просядет в другом месте.
В идеале же одна универсальная библиотека пусть будет, я не против, собрать проект не вдаваясь в подробности нужно быстро. Но для случаев кода дом не нужен полностью, должны быть другие реализации. И их должно быть много. Выбираете под себя вам нужную, т.е. ту которая максимально заточена под вашу конкретную задачу, а не ворох, а остальное там вообще не должно быть реализовано, ну потому что не нужно оно.
И кто так делает?) Никто. Потому что мозгов нет совершенно.
И поможет ли оно? Нет) Потому что нужно понимать из вороха узкозаточенных реализаций что они могут. А значит нужно все равно глубоко знать реализации. Так таких людей опять нет)
В итоге — вменяемых реализаций нет. Людей понимающих реализации тоже нет.
Что остается в сухом остатке, впрочем на самом деле в жидком? Правильно: только гавно.
Druu
Так а почему вы их еще не написали? Идите и пишите, вместо того чтобы в комментах говно обсуждать.
0xd34df00d
Да чтоб я помнил, какой я библиотекой пользовался из тучи.
Мог быть просто завязанный узел, могло вообще не быть и делегировано на уровень выше (ну как в дереве тут).
OlegMax
Хм, библиотеку не помните, но уверены, что она обеспечивала O(1) по памяти? Звучит правдоподобно.
0xd34df00d
А вы помните все применённые вами библиотеки, языковые возможности и тому подобное в каждом нетривиальном случае 5-7 лет назад?
Достаточно помнить своё удивление, в конце концов, что ты просто написал код с DOM-стилем беготни по дереву, а он просто за счёт ленивости скомпилировался в O(1).
Berkof
Нелюблю аппл, но помню как хлопал в ладоши при подключении к клиенту пирса (файлообменник в Новосибе) с маковского Леонардо (или как-там) клиента, который сначала подключался, показывал чатик и позволял уже формировать запросы на поиск файлов, а в фоне отрисовывал всю чепуху с 30к пользователей онлайн… На старом компе под виндовым DC++ это занимало минуту, на новом — секунд 15… Даже оптимизировать ничего не надо, просто ненужную задачу выбросили в фон и нехай там хоть по 5 минут думает.
trublast
Или снимаешь галочку отображения списка клиентов в виндовом DC клиенте и получаешь тот же результат. При количестве пользователей в десятки тысяч этот список все равно смысла не имеет. Это не местечковый хаб с чатиком из начала 2000х, не нужен там этот список, там большая часть не люди, а приставки к ТВ.
Я ещё и чат отключал. Запуск приложения и подключение к хабу — секунда, ну может две.
serf
А в vscode как на этом же файле? Это ведь vscode сейчас как раз модно и молодежно.
EvilFox
Лучше чем Sublime (возможно от версии зависит). У меня саблим долго грузил и падал на файле 131МБ, а vscode свободно открыл (предупредил о возможных тормозах и предложил отключить подсветку, я не стал этого делать и так норм работает, только памяти выжирает не мало) и в отличие от n++ сворачивал и разворачивал огромные ветки/узды без особых тормозов (в n++ они были минутами).
muove
нет не 1$, а блин 1$ + стоимость нового телефона за XYZKRE фантиков, потому что на старом это не работает.
algotrader2013
Именно так. Лично мне пришлось пару лет назад купить новый телефон, потому, что полностью устраивающий меня galaxy s2 открывал сообщение в скайпе за 30 секунд. К слову, прямо сейчас при наборе этого сообщения и пришедший ему на смену s6 подтормаживает. Неужто разрабы хабра тоже вирусом поражены?
VolCh
Редкие посты получают 1000+ комментариев.
burzooom
1000 комментов, каждый в среднем по 300 символов. Сколько это? 300 килобайт?
VolCh
Килобайты особо непричём, скорее дело в количестве Dom нод и т. п.
evocatus
600. UTF-8 же.
masv
У хабра вроде есть приложение, где (наверное) можно хорошо оптимизировать отображение только нужной информации, для плавности.
novice2001
А кто сказал, что сделать хорошее, быстрое и надежное приложение обязательно очень долго и очень дорого?
Вот тот же Web. Да, если каждый раз с нуля переписывать все эти библиотеки и фреймворки, то конечно. Только нужны ли они на 99% сайтов? Веб — это информация, текст, таблицы, картинки. Для этого всего вообще не нужен ни js, ни всякие библиотеки/фреймворки. уберите бессмысленное и бесполезное украшательство — и веб начнет летать на самых убогих компьютерах.
А там, где они нужны, как правило, хватило бы ресурсов и для написания «с нуля». Но незачем, ибо пипл и так хавает.
Beyondtheclouds
обычно люди которые так говорят, не занимались веб разработкой. Такие иллюзии достаточно быстро ломаются об реальность на больших проектах.
geisha
Реальность состоит в том, что никто не хочет и не будет переделывать всё с нуля на больших проектах даже если это спасёт планету от метеорита. Ещё реальность состоит в том, что с первого раза может получиться только случайно, а в большом проекте — никогда.
Aingis
Ну, почему. Иногда переделывают. Это занимает от нескольких месяцев до нескольких лет, в зависимости от сложности и количества разработчиков. Скажем, потому что поддерживать сайт на XSLT и других древних технологиях уже нет смысла — проще переписать. Естественно, не обходится без багов (никто не совершенен), а к моменту что-то неизбежно уже устареет.
w0den
Недавний пример: Github.com отказывается от использования jQuery и переходит на чистый JavaScript.
w0den
Я никогда не работал в больших корпорациях, поэтому хотелось бы узнать, почему, например, когда я открываю Facebook.com как неавторизованный пользователь, страница занимает 6.16 MB и браузер отправляет 65 запросов? Наверное, дело в том, что форма регистрации использует AJAX-запросы и там всё «очень сложно»?! Ну, достаточно открыть страницу авторизации с «обычной» формой и полюбоваться «оптимизацией» — 3.75 MB и 37 запросов. Также, например, «оптимизирована» и главная страница Twitter.com — никаких форм с AJAX-запросами, однако размеры страницы составляет 2.41 MB, и браузер отправляет 18 запросов.
Забавно, что даже при редактировании файла на Github.com страница весит
лишь 1.63 MB (а там ведь подсветка кода, AJAX-запросы, живой поиск, предпросмотр, и другие полезные функции).
yarric
«Вы ничего не понимаете, веб-программирование — это крайне очень супер сложно и вообще сперва добейся (закончи месячные курсы фулл-стека на пайтоне)».
SirEdvin
Представьте сколько аналитики, поведенческих метрик и рекламы с вас собирают facebook и twitter.
Ну и конкретно на facebook большинство запросов это статика. Как прикажите картинки то грузить?
w0den
На странице авторизации Facebook загружаются 6 картинок: два спрайта и 4 однопиксельных изображений. Общий размер картинок: 33.76 килобайт, когда страница занимает 3.75 мегабайт и это только для того чтобы отображать форму с двумя полями и одной кнопкой.
Насчёт аналитики — даже Google Analytics и Яндекс.Метрика с Вебвизором вместе взятых не занимают больше 250 KB. Тут проблема не в аналитике, а в том, что разработчики банально не используют условные загрузки. По моему мнению, незачем загружать стили/скрипты комментариев, чата, списка друзей, редактирование профиля и других функций недоступны неавторизованных пользователей. Но, возможно это лишь мои иллюзии, ведь я не работал в крупных корпорациях.
Yakud
Ну как же зачем?! Прогреть кэши перед входом пользователя на основной сайт, а не форму авторизации. Да, на одну страницу это слишком жирно, но зато после авторизации пользователь уже не будет ждать пока все скрипты загрузятся, особенно с медленным инетом, а сразу начнет поглощать контент.
w0den
А Вы точно веб-разработчик? Даже если Вы правы насчёт этой теории, это, мягко говоря, неправильно. Не говоря уже о том, что после авторизации, страница «нагревается» до 42 MB.
esc
Почему это неправильно? Если для ФБ ценны в первую очередь те, кто пойдет авторизироваться или регистрироваться, то логично сделать удобнее именно им.
А то, что там после загрузки еще больше, ни о чем не говорит. Вполне вероятно, что на странице логика грузятся только те библиотеки, которые делают изначальное отображение интерфейса и общие для всех пользователей. А после авторизации уже происходит фактические наполнение данными, но пользователь сразу видит уже какой-то каркас интерфейса.
Alexeyslav
Если пользователь РЕШИЛ зарегестрироваться, то его не остановят мегабайты первой странички. Может, в первый раз отпугнёт и он передумает но через день-два-неделю он обязательно вернётся и зарегистрируется.
К сожалению, сам на мобильном интернете очень многих постов и картинок просто не увидел — тупо не дождался их загрузки, дольше 10 секунд загрузки — это уже бесполезная трата времени и вещь уходит куда-то далеко в бесконечную ленту событий, возврат к которой в будущем маловероятен.
w0den
Неправильно, по крайней мере потому, что нужно уважать пользователей и помнить, что не у всех топовые устройства и высокоскоростной + безлимитный интернет. Правильно, когда нужное загружается «при необходимости», а не по принципу «а вдруг пользователь захочет каждую минуту загрузить новый аватар, редактировать профиль, отправить сотни эмодзи в чате, сделать селфи, и многое другое, причём всё сразу».
Вы предполагаете, что разработчики заранее кэшируют данные, а я не думаю, что они отличаются от тех, кто подключают jQuery на всех страницах сайтах, когда данная библиотека будет использована только на странице контактов, и то, чтобы анимировать одну кнопку, если пользователь открыл страницу 29 февраля в полночь. Во-первых, если бы они заботились об активных пользователях, они бы использовали условные загрузки по крайне мере после авторизации. Во-вторых, они подключают мегабайтные скрипты на всех страницах. В-третьих, пару мегабайт до авторизации лишь «цветочки» по сравнению, с тем, что происходит после. Если бы Вы проверили Вашу «теорию» о кэшировании, то заметили бы, что после авторизации сайт совсем «не летает», даже если все скрипты загружаются из кэша. Он и не будет, ведь это не SPA, и мегабайтные скрипты выполняются каждый раз, когда пользователь переходит на другую страницу.
Facebook и Twitter лишь примеры, но они далеко не единственные кто не допускают, что пользователь не будет использовать даже 10% функционала. Посмотрите, сколько ненужных стилей, скриптов и медиа файлов загружаются на веб-сайтах; какие права требуют простые приложения; какие спецэффекты используются, дабы рассказать какие «мы современные»; сколько шрифтов подключаются лишь, чтобы «показать красивое название сайта». Практически все с каждым днём «улучшают» свои программы и сайты, но, к сожалению, это происходит только в пресс-релизах.
Напоследок, хотелось бы напомнить, что даже js-файл размером в 1 MB это довольно много для сайта, где пользователи пишут и читают обычные посты. И, тем не менее, Вы хотите оправдать разработчиков, которые подключают десятки мегабайт JavaScript. Боюсь, я не могу согласиться с Вами, поэтому, прошу Вас, не вздумайте переходить на сторону зла!
esc
Я напомню, что Фейсбук непосредственно заинтересован, чтобы им пользовалось как можно больше людей и не будет специально делать так, чтобы ухудшить динамику регистраций или логинов.
Еще напомню, что эта компания стоит сотни миллиардов и каждый день ее сервисом пользуется больше миллиарда человек и этого бы не было, если бы они разгильдяйски относились к таким важным элементам, как главная страница сайта.
С вашей стороны очень самонадеянно считать что вы знаете лучше, как надо делать и что решение сделать именно такой механизм работы страницы авторизации у Фейсбука продиктован ленью или некомпетентностью разработчиков.
У них есть огромное количество данных о том, что происходит на сервисе на каждом этапе его работы, данные о сотнях миллионах пользователей (если говорить о веб версии). Равно как и есть возможность протестировать и сравнить множество альтернативных вариантов.
Догрузить пару мегабайт библиотек в фоновом режиме, пока юзер вводит логин и пароль, чтобы после авторизации интерфейс с базовом виде прорисовался как можно быстрее — вполне здравое решение.
Единственный сценарий, при котором такой подход может навредить, это если посетитель не будет авторизироваться, а просто зайдет на страницу. В этом случае загрузятся лишние мегабайты.
Но сервис вполне логично ставит интересы таких посетителей ниже тех, кто авторизацию пройдет.
popov654
Наивное утверждение. Сервис настолько огромен и популярен, что у существующих пользователей просто-напросто нет выбора (нет аналогов, куда перейти, ведь все друзья в сидят в фейсбуке). А с новыми пользователями то же самое — в мелкую соцсеть типа MySpace идти нет смысла, так как там почти никого нет.
А если вы почитаете, что люди пишут про скорость работы (что веб версии, что мобильного приложения в том же Google Play), то вы увидите, что негативных отзывов гораздо больше, чем позитивных (я правда читал только русскоязычные комментарии, но можно начать хотя бы с России как частного случая). Вы только вспомните: мобильное приложение фейсбука стало настолько тяжёлым, что из него выпилили мессенджер и выпустили отдельным приложением! А потом ещё выпустили Facebook Lite, к слову…
w0den
Хотелось бы добавить, что лично я не считаю, что огромное количество денег и пользователей это показатель профессионализма. Скорее это говорит о том, что они хорошие бизнесмены и маркетологи.
Действительно, сверхпопулярные компании могут позволить себе очень многое. И если они изначально работают над привлечением новых пользователей, то став популярными, чаще всего в первую очередь они думают, как извлечь максимальную прибыль. Как монополисты они уверены, что пользователи никуда не убегут, а значит, они могут творить любую дичь. Правда, некоторые из них (например, IE, ICQ, MySpace, Yahoo) поплатились за это.
xakep2011
Крупные корпорации это всегда бюрократия. Не исключено, что какие-нибудь маркетологи решили, что именно страница логина должна принять на себя удар по перфомансу и сразу подгрузить всё, что нужно юзеру, чтобы после логина он на доли секунды быстрее увидел свою вожделенную ленту новостей.
YemSalat
Че-то вы загнули… 1.1МБ на странице авторизации ФБ
w0den
Chrome показывает размер сжатых данных. Активируйте «Use large request rows», чтобы увидеть реальный размер.
YemSalat
А зачем оценивать «разжатые» данные?
Это подмена понятий, ваш изначальный комментарий негодовал о:
Вам эти данные приходят в сжатом виде и весят никак не 6 с лишним мегов.
1МБ нa страничку, учитывая шрифты/иконки/картинки — это более менее.
Нa мобильной версии приходит около 300кб нa всю страницу.
Так что не сгущайте краски.
Ogra
Ну так «занимает» же, а не «качается». И эти мегабайты яваскрипта еще надо распарсить и выполнить.
justboris
Вот именно, HTML/JS/CSS еще парсится и интерпретируется. Результат займет в памяти еще больше места.
Цифра в 6 мегабайт не характеризует ничего, в отличие от сжатого размера, который реально передавался по каналу пользователю.
w0den
Вы думаете, что все пользователи получают данные в сжатом виде? Или, что сжатие даётся пользователям даром и мегабайты хлама никак не влияют на производительность?
YemSalat
У 99% браузеры поддерживают сжатие.
Да, почти даром.
Вот это ужe под вопросом. Возможно, как написали выше, они грузят что-то заранее, чтобы потом нe «лагало» и нe погружало ничего.
popov654
Даже если разжатие не сильно нагружает процессор (скорее всего, это так), память всё-таки критична. Например, у меня в телефоне браузер крашится, если веб-страница пытается съесть больше 12-13 мегабайт (с учётом графики, шрифтов и всего-всего). А тут в мобильной версии сколько, говорите, после разжатия будет? Уже мегабайта 2-3, а это ещё без фотографий и текстов. А когда пользователь залогинится — тогда самый трэш и начнётся. Там ещё и доп. стили и скрипты прилетят, и реклама с логикой её показа.
YemSalat
Он крашится если вкладка загружает больше 13 мегабайт? Чего? Диска или памяти?
Одни фотки сейчас весят по 2-3, если не больше. Может вам надо обновить телефон?
esc
FB скорее всего так делает, чтобы заранее прогрузить в кэш или даже запустить выполнение тех скриптов, которые потребуются после авторизации.
Видимо, посчитали что лучше пусть у тех, кто просто открыл и не авторизировался, делались лишние запросы, чем заставлять дополнительно ждать загрузки тех, кто таки авторизировался с этой страницы.
serf
Полагаю потому что строчить блог посты и хайпиться другими способами, и решать реальные задачи это разные вещи.
DarthVictor
Я много имел дело с реалиями вебразработки, но все же пикрелейтед — это дно.
На пике первая загрузка гмейла в последней лисе.
dartraiden
Возможно, потому что в лисе нет поддержки ShadowDOM.
DarthVictor
Вполне возможно, в Хроме 6MiB.
То есть полифил на 20MiB(!).
dartraiden
Но ведь это не вина гугла, что в Firefox не реализовали ShadowDOM v0 (точнее, пытались, но он пока страшно далёк от завершения, а пока реализовывали, сама спецификация v0 стала deprecated, так что силы брошены на ShadowDOM v1).
Ogra
Embrace, Extend, Extinguish нового поколения.
DarthVictor
Это либо вина либо менеджмента гугла в плохой поддержке браузеров с 10% рынка суммарно, либо разрабов которые пишут код на плохо полифилящихся технологиях, которые только один браузер поддерживает, либо и тех, и других.
А разгадка проста — из-за сильной интеграции с другими сервисами гугла, в первую очередь с андроидом, гмейлом пользуются все и писать они могут практически любой говнокод. Сравните даже хотя бы с яндексовой почтой.
srhbdv
Так в том-то и дело, что это не плохие менеджеры и разрабы, это специально выбранная стратегия.
Во-первых. Кто вам сказал, что война браузеров закончена или с чего вы взяли, что производитель одного браузера, должен заботиться о своем конкуренте?
Во-вторых, гугл тем самым форсирует более быструю имплементацию стандартов у всех. И делает он это не впервые. Так было всегда. И если, словом говоря, не гугл, веб бы таки стоял на месте, как это было 10 лет назад, до появления хромиума. Казалось бы и конкуренты у IE были, и много и разных, а что-то ничего не двигалось. А как вдруг гугл показал, что и js можно и нужно джитить, и стандарты реализовывать можно быстро и развивать их тоже необходимо, так все засуетились.
Именно такой политикой хром и выбился в лидеры.
Именно такой политикой он и продолжает руководствоваться, и руководствоваться иной не обязан. Более того, совершенно не должен.
sumanai
Используя устаревшую версию стандарта? Согласен с первым утверждением, но второе не верно.
popov654
Да не стояло там ничего на месте. Во-первых, была прекрасная и весьма шустрая Опера (2004-2008 если берём). Во-вторых, Firefox был не так уж плох (хотя и медленней, но не медленней, чем IE, а ещё намного безопаснее и функциональнее). Так что конкуренты не просто были, они развивались. И IE тоже развивался. Вспомните 5.5 в Win2k, и сравните с 7.0 и 8.0. Совсем разные вещи
srhbdv
Что вы говорите? Я-то прекрасно помню те времена и тот почти 12ти летний застой в развитии стандартов, на ряду с полным мессивом в поддержке существующих. Мне приходилось все это поддерживать. А вот откуда вв можете все это помнить, если в те времена вам не было и 10 лет?
Рассказать вам сколько прошло между ES3 и ES5? А где ES4 делся не знаете случаем? А я знаю. А по спекам css, dom, и webapi, не хотите узнать когда они начали развиваться дальше тега marquee и blink? Напомнить вам с чьей инициативы популиризовали иистандиртизовали технологии позволяющие пилить ajax? Почему это был не его изобретатель державший на тот момент большую часть рынка браузеров, и успешно профукав свою позицию по причине того самого стояния на месте?
popov654
Изобретатель чего, AJAX?
Расскажите, это всё очень интересно. Мне тогда и в самом деле было 10-15 лет, и разработкой я тогда ещё не занимался, только читал книжки (года так с 2005-2006).
Имхо, не было там особого месива. У меня до сих пор стоит учебник по JavaScript 2004 года издания на полке. Так вот, 60-70 процентов вещей, которые там описаны — кроссбраузерны на сто процентов (да-да, тот самый ES3). Остальное — в двух вариантах, для IE и для Firefox. Opera же, заняв очень мудрую позицию, часто поддерживала оба варианта (окей, не оба, почти всегда вариант IE; но начиная с момента, когда появился Хром, а в Хроме и Firefox подходы были более близки к друг другу и к стандарту — ситуация поменялась, и Opera стала делать как Chrome и Firefox, а синтаксис IE иногда поддерживался в придачу, «для совместимости» — как пример, свойство document.all, которого кроме IE нигде больше не было, а в Opera до версии 11.50 оно всё ещё работало).
Source
Месиво всё-таки было и именно благодаря ему обрели популярность Prototype, MooTools и jQuery. Они брали на себя большую часть боли по поддержке особенностей браузеров. Отдельной историей было ещё и месиво с реализациями CSS.
srhbdv
AJAX — это подход, а я говорил о технологии.
Вы сильно заблуждаетесь.В стандарте в конечном счете она реализована посредством XHR, а первый прототип XHR появился в IE (Microsoft.XMLHTTP).
Goodkat
В лидеры Хром выбился благодаря монопольному положению Гугла на рынке поиска и агрессивному маркетингу.
srhbdv
У IE было монопольное положение на рынке ОС (такое же, как у хрома на рынке поиска) и не менее агрессивный маркетинг. Дело не в этом. Хром на момент появления и в последствии действительно превосходил все, что было. Не смотря на то, что построен он был из уже существующих на тот момент компонентов. За исключением v8.
sumanai
Не во всём и не для всех. У него как был дубовый, не настраиваемый интерфейс, так и остался.
ganqqwerty
значит они вовремя поняли, что интерфейс должен быть не настраиваемым, пошли так сказать по пути Эппла
sumanai
Просто большинству плевать, а на меньшинство плевать большинству.
domix32
Так его уже объявили deprecated
popov654
Вопрос — а нафига он вообще нужен? Без него интерфейс просмотра писем не сделать?
novice2001
Для того, чтобы судить о вкусе блюд, необязательно быть поваром.
И не надо про эти ваши «большие проекты». Реальность в том, что именно «большие проекты» в большинстве случаев нафиг не нужны, их лепят вместо простых сайтов с текстом и картинками потому что это «стильно, модно, молодежно», а не потому что необходимо.
Druu
Если бы это не было необходимым, то простые сайты с текстом и картинками выигрывали бы в конкурентной борьбе, но мы наблюдаем обратную ситуацию — выигрывают те самые "большие проекты".
Так уж вышло, что в 2018 разница между десктопным приложением и сайтом в интернете стала бесконечна мала, можно сколько угодно по этому поводу плакаться, но фарш провернуть назад не удастся.
Можете себе свой гипертекстовый фидонет замутить и там делать свои страницы с простым текстом и картинками. В вебе поезд ушел.
novice2001
Если бы были сайты с равноценным контентом, но в вариантах с рюшечками и без — то так бы и было. Но в погоне за модой сайты с хорошим контентом превратились в монстров. А одной скорости для выигрыша в борьбе мало.
И нет, разница между сайтами и приложениями никуда не делась.
Druu
Так этих сайтов нет, потому что они проиграли конкурентную борьбу.
Ну вот видите, вы сами ответили. Производительность должна быть достаточной, прирост производительности выше чем нужно — уже не дает никакой пользы. И если клиента устраивает производительность на уровне 1% от возможной, то ПО работающее на уровне этого 1% будет иметь конкурентное преимущество над тем, что работает на уровне 90%. Потому что пользователю на эту разницу плевать, а вот затраты на разработку — возрастут.
novice2001
Нет, они проиграли борьбу не потому что на них не было рюшечек, а потому что современные монстры раньше были нормальными легкими и быстрыми сайтами, их аудитория в значительной степени сформирована за много лет, а поведенческие факторы позволяют и сейчас удерживаться в топе поисковиков.
Нет, просто вы меня поняли так, как хотели понять.
Дело не в том, что если сайт грузится за 10 секунд, то это нормально и быстрее не надо. Дело в том, что между сайтом за 10 секунд с хорошим контентом и сайтом за 1 секунду с плохим любой нормальный человек выберет первое. Зато между сайтами с хорошим контентом но загрузкой в 10 и 1 секунду — второе. Это не та разница, на которую можно наплевать.
И дело, кстати, не только в загрузке, но и в последующем скроллинге и т.п.
Druu
Если бы это было так — мы бы видели в топе сайты с хорошим контентом и загрузкой в секунду. Но это не так.
Но их потом взяли и специально сделали ненормальными, тяжелыми и медленными? Зачем? Заговор рептилоидов?
Я серьезно спрашиваю. Как вы объясняете этот парадокс?
popov654
Я бы объяснил чрезмерным переусложнением логики с одной стороны (но усложнение нужно и порой неизбежно), тем, что мониторы стали больше и графика потяжелела, плюс стало больше видеоконтента и анимаций — с другой (в этом тоже есть плюс, ибо красиво и людям нравится), и с третьей стороны — большой ленью разработчиков, которые часто вместо того, чтобы закодить что-то самостоятельно, тянут сторонний фреймворк, половина возможностей которого им вообще не понадобится (может быть понадобится в перспективе, но не сегодня и даже не завтра). А во фреймворке ещё куча своих подкомпонентов. А фреймворков на крупных сайтах часто 2-3. Плюс на больших сайтах бэкенд тоже обычно отвечает далеко не молниеносно (взять тот же Twitch). Плюс объём пересылаемых на сервер и обратно данных, который растёт как минимум линейно вместе с усложнением логики.
Избежать всего этого можно — если делать простые и не очень красивые сервисы с небольшим количеством функций. «Дёшево и сердито». Но на такое меньше спрос, людям это уже приелось, им чего-то нового хочется. А за новое порой приходится платить тормозами, увеличившимся трафиком, необходимостью обновлять браузер и даже ОС…
novice2001
Тем, что модно и тем, что можно (в смысле «гляди, как мы могЁм»). Туда же и регулярные редизайны.
И не надо говорить, что «компании все просчитывают перед тем как сделать». Ярчайший пример эпик фейла — Кинопоиск 2.0. Просто если изменения не такие резкие, то пользователи просто потихоньку привыкают, но это вовсе не значит, что они в восторге от всего этого.
Druu
Модно и можно кому? Вы же понимаете, что решение принимается не программистами? Зачем бизнес в это деньги вкладывает, если это ничего не дает?
novice2001
Потому что бизнесу кажется (ключевой момент), что так будет лучше («патамушта какнкуренты так сделали, давай и мы сделаем»). Но «кажется» и «будет» — разные вещи.
Druu
Почему-то успешным оказывается именно тот бизнес, которому так кажется. А которому не кажется — успешным не оказывается.
Видимо, "кажется" обоснованно, в итоге.
Am0ralist
попытка ошибкой выжившего оправдать неверную логику?
ValdikSS
0xd34df00d
Потому что нет бизнеса как принимающей решения сущности, есть конкретные люди, и чем компания больше, тем больше этот разрыв.
Конкретный манагер просто хочет выслужиться и иметь красивые слова для написания в отчётах, манагер этого манагера — 50-летний чувак, которому вообще уже на всё плевать, дайте до пенсии доработать, ну и так далее.
popov654
Имхо, никто не мешает публиковать хороший контент и быстрым сайтам без рюшечек (такие есть, и это не только старенькие форумы в классическом дизайне)… Другое же дело, что таких сайтов очень мало.
sumanai
Толку то. Поисковики жалуют оригинальный контент, и по возможности определяют его и показывают выше. А до второй страницы гугла всё равно никто не доходит.
popov654
Так не поиском единым. В том-то и дело, что даже очень хороших и красивых сайтов с рюшечками — больше чем на одну страницу выдачи, и на первую страницу все попасть не смогут. Кто-то всё равно проиграет в этой борьбе.
А те, кто без рюшечек — должны искать посетителей иначе. Своё ядро преданных пользователей, сарафанное радио. Я вот вспоминаю, многие паблики в вк вроде «Подслушано» в начале своего пути так развивались. А вовсе не через поиск, рекламу или оплаченные посты в других сообществах.
0xd34df00d
Выигрывали бы при прочих равных.
Фейсбук выиграл не потому, что у него пердящая форма авторизации. Гмейл выиграл не потому, что он свистит на компьютере пользователя. Ну и так далее.
А всякие сайтики поменьше, типа какого-нибудь производителя телефонов или, не знаю, рюкзаков, тоже выигрывают не за счёт спецэффектов.
А как же, господи, как же я ненавижу блоги с этими модными новыми адаптивными вёрстками, которые сделаны так, что на планшете половину экрана занимает неубирающийся, нескроллящийся, неинформативный блок с контактами, разделами и мордой автора.
khim
Конечно в современных реалиях быстрого интернета и многомегабайтных страниц GMail'а разница невелика — но тогда GMail был меньше, а «обычная почта» — тормознее.
0xd34df00d
Я не пользовался им в 2004-м, но вот в 2006-м у меня уже был там инвайт, и я отчётливо помню, как именно и вокруг чего именно формировался хайп.
AJAX того уровня у меня на моих машинах того времени (а тогда я был школьником, едва начавшим получать свой доход в несколько тысяч рублей месяц, и комплюктеры у меня были не очень) почему-то не тормозил. Сегодняшнее гмыло у меня тормозит на сегодняшних околотоповых машинах, при этом из каких-то
нетривиальныхновых фич фронтенда — instant actions (или как оно там), и всё.И оно не свистело. Оно было удобно и по делу.
khim
Во многом и Chrome был рождён из-за того, чтобы GMail-подобные сайты можно было писать не опасаясь добавить пару строк JavaScript'а… ну а потом, как и везде — оптмизаторы V8 упёрлись в возможности железа, а астронавты продолжили решать несуществующие проблемы…
popov654
Так оптимизаторы упёрлись в попытках оптимизации. Вопрос, зачем было пихать столько фич и свистелок, чтобы это в итоге начало тормозить? Причём это вопрос не только к Хрому. А также к авторам всё новых и новых стандартов (которые часто сначала добавляли, потом выпиливали, потом снова добавляли спустя год уже в другой версии).
Только вспомнить, сколько всего редко используемого (и в целом опционального) было напихано: Flex, CSS Grid, WebSQL (на страницах MDN как-то осторожно пишут, что лучше этим не пользоваться, поскольку разработка стандарта была приостановлена на стадии драфта), SPDY/HTTP2, WebRTC, WebAudio с кучей фильтров, больше подходящих для работы со звуком в проф. аудиоредакторе типа Nuendo/Cubase, чем для применения на сайтах или в JS игрушках (который сначала добавили, потом убрали, потом снова добавили в сокращённом варианте, но только в Chrome, в Firefox не стали).
sumanai
Пара из перечисленных вами вещей таки нужна. Flex позволяет наконец нормально верстать, HTTP2 ускоряет загрузку, несмотря на оверхед шифрования. CSS Grid был бы полезным, но он лишь немногим лучше Flex и с более худшей поддержкой, позднее внедрён, поэтому да, сейчас не нужен.
VolCh
Флекс и грид для разных вещей, они отлично дополняют друг друга.
Sychuan
Грид совсем для других вещей. И он не с худшей поддержкой. Как раз грид, внедрился во все новые версии браузеров очень даже хорошо, в отличие от флексбоксов, которые внедряли долго и криво. Вообще грид и флекс — это наконец-то возможность нормально верстать сайты.
Druu
Возможно, но мы же наблюдаем четкую корреляцию. Если пердящие формы и свистящие гмейлы сами по себе не являются причиной победы, то этой причиной является, по крайней мере, нечто с ними связанное.
Если "простые и легкие" сайты заменяются на свистящие и пердящие — значит в этом есть какой-то смысл, ведь это все требует каких-то дополнительных телодвижений, согласитесь.
0xd34df00d
Примеры старого реддита, википедии, арХива, SO и прочего уже приводили. Корреляция там не очень очевидна на мо
ей выборкей взгляд.Druu
Так эти примеры как раз и демонстрируют то, о чем я говорю.
Зачем бы кому-то делать новый дизайн реддита, если для этого нет причин? Значит, причины были.
0xd34df00d
Не, для демонстрации того, о чём вы говорите, придётся продемонстрировать появившегося потенциального убийцу реддита с более лучшим дизайном.
masv
Переключил GMail почту на упрощённое HTML отображение. Грузится мгновенно. В отличии от стандартного интерфейса, для которого даже прогресс-бар загрузки в виде логотипа сделали.
khim
Это всегда так было. Даже в 2004м. Но раньше основной интерфейс, после загрузки, «летал». А теперь… увы…
popov654
Не скажите. Тот же ВК, например, если брать клиентскую часть — практически оригинальный продукт (до редизайна точно, да и после процентов на 70-80).
michael_vostrikov
Эм, нет. Веб — это добавление информации, текста, таблиц, картинок… А для этого нужен и js, и фреймворки, и на фронтенде, и на бэкенде. Предпросмотр нового коммента все-таки удобнее, чем перезагружать страницу отправкой формы и проверять как оно выглядит, не так ли?)
Nimo_tsi
Согласитесь, глупо подтягивать всю библиотеку jQuery, чтобы добавить анимацию меню или прокрутки.
OlegMax
Нет.
popov654
Аргументируйте. Если вам так нужна анимация или прокрутка, и вы не хотите реализовывать это каждый раз заново — сделайте свою библиотеку. Это будет как минимум компактнее и проще для работы лично для вас. А ещё полезно в целом как разминка для мозга :)
P.S. Никогда не люблю юзать сторонние решение, особенно если они явно избыточны.
PsyHaSTe
Потому что вы обрекаете пользователей на баги, которые давно починены в библиотеках.
Откройте любую статью, посвещенную опенсорсу. Как там хорошо, что много глаз код просматривают и все такое… (заметите под ковер heartbleed). А потом разверните аргументы на 180* и получите перечень проблем, которые возникают от «всего своего». Начиная от качества этого «своего» и заканчивая временем нового разработчика для понимания.
Нет ничего «крутого» в том, чтобы сделать медленну, кривую, работающую только в пачке браузеров реализацию, вместо того, чтоб взять нормальную.
popov654
При чём тут вообще крутость?
Надо просто писать без багов.
Зависит от того, кто и как реализует (и насколько ему интересно/приятно этим заниматься).
Опять же, если код аккуратный, с комментариями (а ещё лучше, self-docemented, не нуждающийся в комментариях) — порог вхождения нового разработчика будет не очень высоким.
В том-то и дело, что как правило, это будет в 2-3 раза быстрее, чем на каком-то фреймворке/движке, как минимум из-за отсутствия лишней логики.
Так надо писать так, чтобы работало во всех, а не в пачке! Где я за «пачку» агитировал?
Единственные плюсы фреймворков — это обход особенностей и багов старых браузеров, о которых разработчик банально может не знать, и большая компактность получающегося кода.
Но с другой стороны, для старых браузеров можно использовать условно подключаемые полифилы, и результат будет надёжнее и предсказуемее, так как фреймворк неизвестно насколько большой совместимостью в сторону старых версий обладает, особенно если брать динозавров вроде IE 6-8 и новые версии JQuery. Причём даже если фреймворк обладает такой совместимостью, то вот плагины к нему (на примере того же JQuery) с вероятностью 99,9% — нет, и всё равно в старом браузере сайт сломается и будет нерабочим. Кроме того, в случае 90% проектов на совсем старые браузеры вроде IE до версии 9 можно вообще забить, поставив заглушку с просьбой обновиться.
Что до компактности, то из-за неё сложность исполнения кода браузером увеличивается если не на порядок, то в разы, также растёт и количество потребляемой памяти: например, известный факт что движки обычно работают с синтетическими объектами событий (заворачивая внутрь них обычные как одно из полей), оборачивают HTML элементы в специальные объекты, возвращая результаты из функций-селекторов, и так далее).
sumanai
Как у вас всё просто. А чтобы быть здоровым и богатым, нужно зарабатывать много и не болеть?
VolCh
Насчёт совместимости: браузеры постоянно обновляются, языки тоже. Написав свою библиотеку один раз вы всё время должны будете её поддерживать.
ScreamPassion
Иногда глупо не добавлять jQuery для подобных вещей, только потому, что jQuery порой более стабилен большинства известных браузеров.
SerafimArts
Вот из-за подобных мыслей сайты и тормозят. Опытные разработчики возьмут и просто напишут нужный transition на css и добавят will-change для фонового пререндера и выноса этой анимации в отдельный слой, чтобы не перерисоывавать всё, когда что-то будет меняться. Это всё будет работать на GPU и не тратить процессорного времени и работать будет моментально, и не будет жрать лишнего, т.к. браузер знает что будет анимироваться, а что нет.
А другой человек подумает, возьму я JQuery (который, к слову, давно уже пора закопать) и буду анимировать всё на нём. И конечно же будем вычислять каждый кадр каждого свойства каждой анимации на CPU, и каждый раз будем сбрасывать кеш всей страницы. Это ведь на порядок, как вы говорите, стабильнее. А на пользователей нам плевать.
Верно я понял вашу мысль на тему «JQuery для анимаций»?
PsyHaSTe
Да я до сих пор помню свой проект, где я сделал на css необольшой аккордеон (я бекенд разработчик, которого на фронт сунули, не судите строго :) ). Потратил около недели, чтобы все красиво было, принес на ревью, мне сказали «шо эта, сложный цсс, я не понимаю. Мы пишем не write-only код, а цсс который занимается вычислениями это нонсенс! (там были calc-и для заголовков элементов в аккордеоне). Жду от тебя через 2 дня все переписанным на понятный js…
Долго я там не проработал, но осадок остался…
SerafimArts
Ну css тоже надо уметь писать, иногда он действительно нечитаемым становится от избытка стилей. Для таких случаев и были придуманы препроцессоры с миксинами, функциями, инклудами и прочими штуками, сохраняющими DRY. С другой стороны может опыта у ревьювера было маловато, вот его и понесло чуть-чуть.
В любом случае визуализация должна быть на стороне css — это точно, а на JS уже бизнес-логика. Если ваш calc только для позиционирования элементов, то не вижу ничего страшного в этом, сам с недавнего времени начал активно его использовать и не понимаю теперь как жил без него.
verbaux
"… препроцессоры с миксинами, функциями, инклудами и прочими штуками" превращают понятный CSS в нечитаемай без дополнительных телодвижений код.
Barafu_Albino_Cheetah
Ну да. Их назначение — брать код, нечитаемый даже с телодвижениями и сделать его кодом, читаемым с дополнительными телодвижениями.
ScreamPassion
Не забывайте jQuery — это в первую очередь более-менее удобные селекторы, ну а во вторых, если следовать вашей логике, то сперва надо написать свою ОС, потом свой браузер, а уже потом если все таки жизни хватит, писать нормальную анимацию)
SerafimArts
А что по этому поводу говорит автор в статье? Тоже предлагает ОС свою написать?
Я привёл в пример всего лишь один из случаев, когда кто-то, не зная одного инструмента, но зная другой ненамеренно всё усложняет. По-этому весь софт и становится медленнее.
Конечно, есть и другие критерии. Например, дополнительные абстракции ради снижения сложности поддержки ПО. Как раз тот из вариантов, когда JQ можно использовать для селекторов. Хотя, лично я в этом вижу не слишком много смысла, благо 2018год на дворе и давно есть querySelector, но мнение имеет право на существование.
ScreamPassion
Я бекенд программист, по этому лично для меня, написание нативных решений js, в любом случае подразумевает дополнительные затраты по времени. Автор предлагает улучшать все, где мы имеем счастье(и/или несчастье) работать, так почему бы (следуя этой логике) не начать с главного (ос), а потом уже про jquery поговорим отдельно…
SerafimArts
Тут есть такая тонкая грань, где использование JQ обосновано, а где нет. Часто пишут велосипеды, вместо того, что бы использовать готовое, часто наоборот. Решать где нужно что-то писать с нуля, а где нет — опыт и зачастую чисто субъективное.
popov654
Вы полагаете, изучить и научиться применять на практике такую большую библиотеку, как jQuery (пусть и не самую сложную из тех что есть), будет быстрее? Тут смотреть надо
0xd34df00d
Автора в статье поведение OOM-киллера в линуксах удивило, так что я уже боюсь представить, что он там про ОС думает.
popov654
Но ведь удобные селекторы теперь есть из коробки с приходом querySelector и querySelectorAll в HTML5… Или jQuery умеет что-то ещё в этом плане?
MrDaedra
Тот же GitHub заменил jQuery на querySelectorAll и fetch с полифиллом.
michael_vostrikov
Ее обычно добавляют не для анимации, а для удобства работы с DOM. Действия с информацией предполагают работу с элементами интерфейса. Кто-то jQuery использует, кто-то Angular, совсем без js сложно обойтись.
Wesha
То есть в эпоху стамегабитного интернета Вам западло лишний раз "перезагрузить страницу отправкой формы"? Если уж Вам тяжело перещагружать страницу со 100500 комментариями — загрузите окно предварительного просмотра в iframe, наконец!
sumanai
Который по сути отдельная страница, с кучей накладных расходов на её создание и поддержку.
Ranwise
на мобилках уже есть 100 Мбит?
sumanai
По WiFi у себя дома.
saege5b
С 10-50 соседями на каждом канале.
Или, едва добиваещемуся 5 ГГц в соседнюю комнату.
sumanai
Я не говорил в квартире. Частный дом с участком в 6 соток позволяет вольготно использовать 2,4 ГГц.
Asaelko
В Москве и Петербурге до 139Мб/с выжимал на 4G+ с Йотой. В среднем 50-70 где-то в центре города.
michael_vostrikov
Ну у меня 400 КБ/c. Попробовал открыть страницу с этой статьей в приватном режиме, в первый раз 16 секунд, во второй 10. В этих условиях мне удобнее предпросмотр на js.
Если на каждой странице будет по iframe со своей разметкой на каждое действие, то мне кажется ресурсов это будет занимать еще больше. Вместо 20 вкладок в памяти браузера будет 60-100. А если и нет, все равно это менее удобно, почему и стали делать на js.
novice2001
А может не надо пихать на каждую страницу комменты и т.п.? Не?
Тот же Хабр в данном случае исключение, здесь комменты могут быть даже интереснее статей. Но в подавляющем большинстве случаев комменты прямо на странице нафиг не нужны, а вот малый вес и быстрая работа еще никому не вредили. Хотите пообсуждать — вот вам ссылка на форум. Легко и просто, но не модно, это да.
michael_vostrikov
А причем здесь именно комменты? Создание информации не только из комментов состоит. Валидация форм, подгрузка элементов списка по фильтру при вводе, скрытие/показ элементов по условию. А еще есть бэкенд, который все это обрабатывает. И это все надо написать и потом поддерживать.
Критикуешь — предлагай. Если это легко и просто, покажите, что сделали лично вы и сколько времени на это потратили, без js и библиотек/фреймворков. Причина идет из создания кода, а не из моды. Я этим занимаюсь, и утверждаю, что не легко и не просто.
novice2001
Я говорю о конкретной и при этом самой распространенной категории сайтов. Таких сайтов, которые были практически единственными на заре веба. Сайтов информационных, на которых контент генерирует только автор сайта. Где пользователь только просматривает его. Поэтому там не нужно ни форм с валидацией, ни прочего. Но где все это навешивается, потому что у 100500 других сайтов такое есть.
В конце концов есть простое и абсолютно элементарное решение — кнопка или ссылка, по которой пользователь переходит на страницу, где вы можете хоть гигабайт жабаскрипта навешать. Хочет какой-то пользователь пострадать — пусть страдает. Не надо делать тормозные страницы, только из-за того, что кто-то захочет что-то прокомментировать.
И даже на более интерактивных сайтах можно что-то такое придумать, чтобы страницы, где 99,99% пользователей только читают, не загружали весь мусор, необходимый для интерактивного взаимодействия.
Sychuan
Такие сайты никуда не делись. Вот пожалуйста, www.kurims.kyoto-u.ac.jp/~motizuki/top-english.html
Или возьмите arxiv там все так как и было. Но фейсбук и хабр не могут быть как в 90-ых.
novice2001
Перестаньте уже сравнивать все подряд с фейсбуком и хабром (а также ютубом, гмейлом, твиттером и т.п.).
Сайты на которых интерактивное взаимодействие — основная, критическая часть функционала — это одно. Где совершенно необязательная — совсем другое. Но вторые почему-то маниакально изображают из себя гибрид фейсбука с твиттером.
michael_vostrikov
Таких сайтов сейчас практически нет. Интернет-магазины, соц-сети, веб-интерфейсы к сервисам типа почты — это самые распространенные категории, и везде есть функционал, который требует действий от пользователя. Даже на сайте газеты NY Times есть кнопки подписки, поиска, и подгрузка картинок при прокрутке. И как раз на популярных ресурсах перенос части обработки на клиент дает пользу.
Ну вот это они и есть. Не хотите, не переходите) Вы предлагаете тратить в 2 раза больше денег и поддерживать 2 версии. Мало кто на это пойдет.
Мне тоже не нравится тормознутость, но надо понимать, что у нее есть причины, и нельзя просто взять и убрать ее, ничего не потеряв.
novice2001
Таких сайтов сейчас есть сколько угодно.
Модная подгрузка страницы при прокрутке — на самом деле одно из вреднейших извращений. Если раньше при использовании pagination я мог сразу перейти на 10-ю, 100-ю, да хоть на миллионную страницу, то теперь чтобы попасть на 100-ю мне нужно перелистать все 99 предыдущих. Мало того раньше первая и последняя страницы работали одинаково быстро, то теперь быстро (и то относительно) работает только первая, поскольку при подгрузке постепенно растет объем пожираемой памяти и тормоза.
А зачем ее отдельно поддерживать? Если вы не будете лезть с ненужными никому кроме вас «улучшениями», то она может работать десятилетиями. В конце концов верстку вы можете иметь идентичной с интерактивной страницей.
У нее гораздо меньше рациональных причин, чем вам хочется думать.
michael_vostrikov
Примеры?
Я не писал "подгрузка страницы", я написал "подгрузка картинок". Это совсем не то, о чем вы говорите.
У вас какое-то неправильное представление о том, как делаются веб-приложения. Если мы переименовали поле в базе данных с
body
наtext
, то и в обычном коде, и в коде "без скриптов" надо поменять условныйoutput($news['body'])
наoutput($news['text'])
. Если мы поменяли верстку шаблона интерактивной страницы для новости, то и верстку шаблона для страницы "без скриптов" надо менять, чтобы они были идентичные. Просто отключить скрипты не выйдет, вы можете в этом убедиться, отключив скрипты в браузере. Нужно предпринимать отдельные усилия, чтобы работало и так и так. Один и тот же шаблон использовать нельзя, потому что в одном шаблоне есть условная кнопка "Подписаться", а в другом нет. Либо каждый блок, требующий скриптов, оборачивать в проверку выводить или нет, и проверять, что при добавлении очередной кнопки в версии без кнопок ничего не поехало. И т.д. и т.п.Так я причины из практики знаю. То, о чем вы говорите, требует дополнительных ресурсов при разработке.
novice2001
Вики. Которая как раз прекрасно работает на отображение вовсе без js, а редактируется на отдельной странице.
Это только при условии, что js служит не только для взаимодействия, но и для отрисовки. И да, вы меня тоже изначально неправильно поняли. Совсем необязательно иметь 2 визуально идентичных версии страницы, на одной из которых комментировать нельзя, а на другой можно. Есть смысл разделить функционал. Очевидно, что подавляющее большинство только читает, скажем, новости. Они получают легкую и быструю страницу без лишних скриптов с кнопкой/ссылкой «обсудить». И вот на этой странице делайте что хотите. Я не вижу смысла делать ее визуально похожей на первую страницу.
Так это потому что вы и те, кто дает вам задание, мыслите именно в такой парадигме.
Вообще было бы гораздо проще обсуждать все на конкретных примерах.
michael_vostrikov
Мы говорили о сайтах, которые "Поэтому там не нужно ни форм с валидацией, ни прочего. Но где все это навешивается, потому что у 100500 других сайтов такое есть.".
В вики информация статичная, действия пользователей не требуются, потому там и скриптов нет. А там где есть, там навешивается не потому что "у других сайтов есть", а потому что надо для определенных целей. Даже анимацию добавляют не потому что на других сайтах есть, а потому что там из-за этого новых пользователей больше.
Так какие есть распространенные сайты, где все это есть, но можно убрать без проблем?
Ну вот у нас и появилось 2 страницы вместо одной, да еще и с разной версткой. И почему вы все время про комменты говорите? Это был пример конкретно про Хабр, на других сайтах свои применения скриптов. Та же кнопка "Подписаться". Сделают так, как вы предлагаете, а потом будут жалобы от пользователей "почему у вас кнопку Подписаться не найти, вот сайте X она рядом со статьей, нажал и все".
Если на фреймворке прототип делается за час, а без него за неделю, тут не надо никаких парадигм.
novice2001
Я так понимаю, что для вас «распространенные сайты» — это сайты, которые вы разрабатываете.
Потому что если судить с позиции количества пользователей, то вики — это куда более «распространенный» сайт, чем все сайты, в разработке которых вы хоть как-то принимали участие за всю жизнь. Если судить с точки зрения количества самих сайтов, то как раз сайтов со статической информацией вася-пупкин.рф опять же на порядки больше ваших сайтов, в которых действительно нужны тонны скриптов.
Это как? Откуда появляются при этом новые пользователи?
Я свои примеры привел. Давайте наоборот — приведите хотя бы один пример сайта где тонны js прямо необходимы.
По-видимому вы так и не поняли. Оставьте все необходимые кнопки, только сделайте их просто ссылками на соответствующие страницы — и все! Даже не на много, а на одну страницу.
И не говорите, это просто ужас. Ведь на второй странице нужно обязательно делать какой-нибудь крутой дизайн, а это сложно, дорого и бла-бла-бла.
Правда я сделал бы там дизайн в духе ya.ru (ага!), который стоит 3 копейки и не нуждается в поддержке. Но да, это же сейчас не модно…
Дак кто ж вам запрещает делать на фреймворке прототип? Сколько угодно. Но вот в продакшн — не надо…
PsyHaSTe
Пользователям тоже будете сами объяснять, какой это крутой дизайн?
novice2001
Ах вон оно как, т.е. это пользователи требуют от вас какого-то особого дизайна на сугубо функциональных страницах, а не вы сами хотите выпендриться с мегатоннами украшений и жабаскрипта…
Это очень странно, поскольку google.com миллиардам пользователей по-видимому вполне нравится. А там как раз дизайн вроде того, что предлагаю я.
PsyHaSTe
Конечно пользователи. Я-то реализовываю то, что сказал продукт, а продукт анализирует как раз требования пользователей и «вон те чуваки прикрутили Х, и у них конверсия увеличилась, айда так же сделаем».
michael_vostrikov
Из чего вы сделали такой вывод? Вы говорили про "распространенные сайты, где все это навешивается". Я попросил примеры. В Википедии это навешивается? Нет. Так какое отношение она имеет к разговору?
Я бы даже сказал, она подтверждает мои слова. Там не нужны скрипты, вот и не добавляют. А где добавляют, значит там они зачем-то нужны.
А какая вам разница, что на личном статическом сайте Васи Пупкина используется JS? Там все равно ничего не тормозит, потому что функциональности мало, да и вряд ли вы столько личных сайтов посещаете.
Ну вот так. Нужен человеку некий функционал, есть 2 сайта с таким функционалом, на одном есть анимации, приятные глазу, на другом нет. Поэтому он зарегистрировался на первом сайте.
На втором сайте заметили, что пользователей что-то мало, а в интернете все первый сайт обсуждают, запустили рекламу с a/b тестированием, и оказалось, что если интерфейс без анимаций, то меньше пользователей регистрируется.
А третий сайт не стал проводить тестирование, а сразу добавил анимации.
Нет, не привели. Только про одну Википедию написали, которая ни при чем.
И давайте без демагогий. Я не говорил, что необходимы именно тонны js, я говорил, что в целом js и всякие библиотеки/фреймворки нужны. Но вообще https://docs.google.com неплохой пример.
"Я нажимаю кнопку Подписаться, а страница просто перезагружается. С остальными кнопками то же самое. Почините немедленно!". Ну и да, одна страница все равно требует меньше ресурсов (для разработки), чем две похожие. И зачастую разница гораздо больше, чем в 2 раза.
Вы неправильно представляете, как делаются веб-приложения. Не требует поддержки только страница, которая сверстана полностью в блокноте и лежит на диске в виде отдельного файла. В любом блоге на Вордпрессе, в любом новостном сайте, информация сохраняется в базу данных и выводится кодом. Все это требует поддержки и проверки при изменениях.
Ну и да, большинству пользователей неохота смотреть на ужасный дешевый дизайн.
Вы думаете, для продакшена математика другая и там по волшебству дополнительные недели появляются?)
popov654
Про сложность согласен, это важный фактор. Хотелось бы однако отметить, что есть техники, позволяющие обойтись всего одной страницей, и при этом обеспечить её полиморфное поведение. То есть она будет одинаково хорошо работать и при отключенном, и при включенном JS. Вы наверное об этом знаете. Ну да, в разработке это сложнее, и даже не в 2 раза. Зато у нас одна страница, работающая везде и у всех (даже в каких-нибудь мобильных Операх Мини), все правки централизованы в одном месте, разработчики заняты делом и получают повышенную зарплату за возросшую сложность. Классно же.
sumanai
michael_vostrikov
Ну вот этот
come_block
надо добавлять в каждый блок, и желательно в обертку, чтобы собственным классам не мешало. Суть же не в том, что сделать нельзя, а в том, что поддерживать надо. А еще оно все равно на клиент поедет.popov654
В обёртку — это как?
come_block
— Это и есть собственный класс в примере выше)michael_vostrikov
Ну если вы вот так сделаете, то верстка может поехать, там же display другой задан.
popov654
А, не понял вас. Да, поехать теоретически может. Добавление/удаление каждой кнопки по-хорошему надо будет тестировать на обеих версиях. Я просто имел в виду, что класс самой кнопки останется без изменений, и правила для неё тоже.
sumanai
Мой код там только в качестве примера, притом не самого лучшего. Можно сделать наоборот
И удалять класс no_js яваскриптом.
VolCh
На сайтах может и не нужны, но сейчас веб это не только, а может и не столько сайты, сколько распределённые приложения, а браузеры — среда исполнения толстых клиентов.
Kodath
Но автор же предлагает не переписать абсолютно все с нуля или начинать писать не используя чужие библиотеки и фреймворки, а хотя бы не городить по верх и так уже раздутого кода еще и свою халабуду из такой же «эпоксидной смолы» и палок. А на счет расширения штата разработчиков — тут вообще не понятная ситуация, когда команды/компании набирают сначала овер дохера менеджеров, чтоб продать продукт на который код еще и писать то не начали, а потом еще и выясняется, что на разработчиков ничего уже не осталось из заложенного бюджета.
springimport
Недавно как раз одна компания отчиталась о превышении некоего лимита впервые в истории.
Думаете не хватает на разработчиков?
Massacre
А причём тут ядро, система может быть одна, просто вместо интерпретируемых языков для прикладных приложений будут снова использовать компилируемые. И делать сайты без тонны JS и с серверным рендером тоже можно. Всего-то должна пройти мода на одностраничники.
lubezniy
У серверного рендера есть свои недостатки на перспективу. Если проект имеет в будущем шансы на интеграцию со сторонними приложениями, нужно будет проектировать и писать API. На старте проекта можно сделать единый механизм для веб-фронтенда и приложений, а рендерить на клиенте, и таким образом не делать двойную работу.
solver
Только вот большинство сайтиков никогда ни с кем не интегриуются…
Но страдать пользователей от тормозов теоретической будущей интеграции заставляют уже сейчас.
lubezniy
Ну так совсем не обязательно реализовывать на клиентской стороне функции, не нужные браузерному приложению.
DrPass
Так дело же не в том, что для получения хорошего софта надо платить в сто раз больше. Надо платить, условно говоря, на 20% больше, чтобы решить 80% проблем. Этого достаточно.
Мы пользовались софтом, который работал на компьютерах в сто раз медленнее нынешних смартфонов, при этом он был значительно более функциональный, отнюдь не стоил космических денег для пользователя, а разработавшие его программисты были ничуть не менее богатыми, чем современные. Так что проблема отнюдь не в том, что для разработки более качественного ПО нужно намного больше денег.
yefrem
это каким же?
DrPass
Да что угодно возьмите. Сравните функционал почтового клиента конца 1990-х годов и того, что в вашем телефоне. Сравните ваш просмотрщик электронных таблиц и Excel, который весил меньше, чем калькулятор у вас на телефоне.
lorc
Кстати да, Слак никогда не будет уметь того, что умеет kvirc, например.
Мобильный софт — это вообще издевательство. Там количество фич только уменьшается. Старые гугл.карты (еще на Андроиде 2) умели трекать остановки транспорта. В новых появилась прекрасная фича «потряси телефон, если нашел ошибку», зато они перестали показывать таймлайн с остановками маршрутки. Хотя, вроде в этом году вернули эту фичу обратно…
Атом (который редактор) в принципе не умеет того, что умеет мой emacs.
Про новый скайп уже говорили.
Даже в новом MSPaint потеряли какую-то фичу, которой многие пользовались в оригинальном приложении. Извините, не помню деталей.
При желании, этот список можно продолжать еще долго.
yefrem
Сравнение с мобильными некорректно, так как у них совсем другая ниша, потому и софт такой, каков он есть.
В том-то и дело, что при соответствующем желании можно вывести любой тренд, какой душе угодно.
В приведенных примерах, имхо, сравниваются не совсем аналоги. Но даже в них, скорее всего (т.к. не в курсе про Атом), можно найти обратные примеры, навроде «kvirc не умеет в звонки и скрин-шеринг». Только вы ответите «это не нужно» и будете правы. И аналогично можно найту кучу фич современного софта, о которых раньше вообще не шло и речи.
VolCh
Так речь в том числе и о мобильных приложениях, некоторым из которых с десяток лет, но развиваются они странно с точки зрения пользователя и программиста — фичи выпиливаются, а добавляются рюшечки.
AlexPancho
Вот пример одинакового: функционально Ексель97 и Ескель2016 если и отличаются, то как раз не существенно для 80% пользователей. Но скорость и качество работы… Про размер дистрибутива я вообще скромно умолчу.
Simplevolk
В новом скайпе я физически ощущал его сопротивление моей попытке напечатать сообщение…
ashalaenko
Я в этом плане грешу на интернет и распространение софта по сети. Раньше пользователь покупал физическую копию и если там обнаружиывался баг, то быстро доставить фикс было проблематично, что стимулировало больше времени тратить на тестирование, тестирование на различных архитектурах, стабилизацию и тд. Ведь бажный софт мог повлиять на репутацию компании. Это же касается игр. Сейчас, когда патч можно доставить за считанные минуты практически всем клиентам, наступила эра сырого софта (и игр в том числе). Принцип «лучшие qa — это наши пользователи» вышел на новый уровень. Репутационные проблемы решают пиарщики (вот вам фтболка и скидка на следующую версию). И вправду, зачем тратить время на глубокое тестирование и отшлифовку, если через 10 минут после релиза пользователи все сами напишут, и если, вдруг, у кого-то будут проблемы — мы сможем сразу им выкатить фикс. Это же позволяет выкатывать недоделанные фичи, доделаем следующим минорным релизом, а пока и mvp сойдет.
Druu
Будто раньше в предел забагованных игор не выходило.
Druu
Только вы почему-то не упомянули что емакс тормозит ;)
DarthVictor
Современные смартфоны существенно мощнее суперкомпьютера НАСА конца 60-х годов. Но тогда производительности компьютеров хватало, чтобы запускать человека на луну, а сейчас только чтобы запускать птиц в свиней.
yefrem
вы платите оверхедом не за возможность запускать птиц, а, грубо говоря, за возможность играть в новую игру хоть каждый день, при этом устанавливая ее и удаляя старую в течение минуты, причем бесплатно (относительно)
yarric
А можно поподробнее, что в этом инновационного по сравнению с, к примеру, приставками из 90-х?
shpaker
Графен, не более. Механики мобильных игр крайне тупы. Плюс с тех пор как там продоминировал фри2плей так и вообще все маркеты сгнили.
VolCh
идти и покупать/арендовать/менять картриджи надо было, переставлять их, фактически меняя аппаратную конфигурацию компьютера.
yarric
На PlayStation уже шли игры на CD.
khim
И тем не менее, это можно было желать «хоть каждый день». Картриджи арендовались за небольшую сумму и киосков с ними было… достаточно.
VolCh
По сути каждый день происходил апгрейд аппаратной части.
DrPass
Возможность играть в новую игру каждый день мы получили благодаря современным средствам доставки софта от производителя до клиента, когда любой может сделать игру и продать её вам без участия издателя. Средства быстрой разработки не слишком продвинулись с того времени, когда в конце 1990-х появились независимые игровые движки. А в сфере прикладного софта и того хуже, переход приложений в веб отбросил инструменты разработки (и продуктивность программистов) лет на десять-пятнадцать назад, потеряв почти все преимущества, которые приобрели десктопные IDE.
SHadDim
А AppStore и GoogleStore это не «издательство», это «средство доставки софта, которые имею приличную долю в финальноё стоимости софта» <_<
DrPass
В том-то и дело, что это всего лишь удобные магазины. Они не имеют вообще никакой доли в финальной стоимости софта и не претендуют на неё. Отличия от издательств тут колоссальные.
1. Вам не нужно убеждать магазин в том, чтобы он начал распространять ваш продукт. Зарегистрировались, выложили. А дальше уже покупатель голосует рублём/долларом/юанем.
2. Магазин не имеет никаких прав на ваш продукт, ни даже эксклюзивного права на распространение. Как вам больше нравится — так и распространяйте. Издательство же вас сожрёт с потрохами.
3. Магазин у вас не требует никакой финансовой доли в бизнесе. Он продал ваш софт — он взял свою комиссию, не продал, он ничего не потребовал. Насчет того, что комиссия большая, вопрос спорный. Сколько вам не жалко отдать денег посреднику за продажу вашего товара, которой без него вообще бы не было? Особенно если учесть, что тиражирование этого товара не стоит вообще ничего.
0xd34df00d
И они даже не берут некоторый процент с продаж?
А зачем аппстору юридические эксклюзивные права, если 99.9% пользователей iOS не имеют других источников?
DrPass
Ну, на ваши расходы на создание продукта это уж точно никак не влияет. Согласитесь, факт, что магазин берёт свою наценку при продаже вашего товара, абсолютно естественен и логичен.
Зато пользователи Андроида тоже с удовольствием поиграют в те же Растения против Зомби, что и на аппсторе. А вот издатели иногда трясут ананайкой перед студиями, дескать, «хочу, чтобы в ЛастОфАс играли только на нашей любимой плейстейшен, и нигде более».
0xd34df00d
Я склонен считать, что при отсутствии этого процента продукты в среднем стоили бы ниже.
VolCh
Скорее приносили бы больше прибыли. Процент не такой большой, чтобы снизив цену на него получить аналогичный процент роста продаж. Стоит сейчас приложение 0.99 или 9.99 — снижать цену на 10% смысла очень мало.
0xd34df00d
Так там вроде не 10% берут, а 30. И для уникальных нетривиальных приложений смысла действительно нет, а для какой-нибудь ерунды по 2.99 продавать её по 1.99 вместо этого — почему бы и нет?
DrPass
При отсутствии этого процента разработчику надо было бы самому тратиться на дистрибьюцию игр. Поэтому вряд ли. Чудес и аттракционов невиданной щедрости не бывает. До появления маркетов игры обычно продавались непосредственно правообладателями и стоили намного дороже.
Sychuan
Суперкомпьютер НАСА в 60-ые был именно, что только в НАСА. У обычных людей ничего такого не было и в помине. И вы бы не захотели платить ту цену за компьютеры и программы, которые были в 60-ые годы. И я почему-то уверен, что в ужасном «тяжелом» вебе сегодняшнего дня вы смотрите кино, качаете игры со стима, ориентируетесь по гуглокартам и так далее. Ну а если вам нужны супервозможности 60-ых годов, то никто от вас ничего не закрывает. Браузер Lynx, какая-нибудь Windows Xp и можно спокойно считать траетории полета на Луну
Am0ralist
Windows 98 в эпоху, когда сжатие инфы больно дорогим накладным расходом занимал 245 метров после выкидывания всяких справок. Офис 97, хм… 100 мб установщик? И по сколько там каждое приложение в отдельности занимало из всего пакета?
Давайте, расскажите мне, что какая-нибудь приблуда на телефон, типа читалки сложнее этих программ при соизмеримом размере?
Да даже программа эмуляции командной строки под винфон, которая умеет только в пару комманд — 16 мб. Эмулятор нескольких команд доса, блин, который занимал сколько килобайт на дискетке?
srhbdv
Не напомните, какой размер указателя в байтах был на windows 98, и каков он в «современных приблудах на телефоне», раз уж взялись мерить?
Просто вот у меня размер установщика веб-браузера, занимает примерно столько, сколько там занимал установщик вашего офиса. При этом с помощью этого браузера я могу решить в тысячи раз больше задач, чем с помощью вашего 97го офиса, 98 винды, и каждого по отдельности приложения для нее.
khim
Замётано. Не расскажите — как именно с помощью вашего браузера создать табличку с формулами и посчитать что-нибудь в ней. Сделать каталог с книгами и найти там чего-нибудь? Ну или, на худой конец, подготовить и распечатать книжку с картинками? Это всё Офис делал в 97й версии без каких-либо дополнительных аддонов или чего-либо ещё…
srhbdv
Это наглая ложь.
khim
Если это «наглая ложь», то вы, я думаю, сможете привести десяток популярных приложений без поддержки armeabi-v7a.
Я про существование таких знаю, могу даж пример привести. Целое одно приложение, вы не поверите.
Все остальные — либо ABI-agnostic (то есть там может быть любой поинтер), либо с поддержкой armeabi-v7a.
P.S. Да, я знаю, что в мире iOS всё не так — ну так это, опять-таки, чисто и исключительно хотелки чьи-то. То ли Тима Кука, то ли духа Стива Джобса, я не знаю. Никакой объективной необходимости в таком «форсированном» переходе на 64-бита нет и не было.
0xd34df00d
Я тут одну игру вспомнил, которая 16-20 гигабайт памяти жрёт только так. Интересно, как ей бы было с 32-битными указателями.
Хотя это десктопное всё, конечно.
Massacre
Конкретно для винды — вполне правда, это под линукс всё собирается, как правило, под битность дистрибутива, а так 64-bit only это, в основном, новые игры.
khim
Речь шла про «современные приблуды на телефоне». Процент винды на телефонах — где-то под микроскопом нужно рассматривать.
YemSalat
Гуглодокс и прочие веб приложухи.
И не говорите мне что 97ой офис не тормозил нa компах того времени. Еще как тормозил. Ворд частенько падал при сохранении/загрузки нетривиальных документов, все они нe показывали контент при скролле и т.п.
Попробуйте собрать себе старый комп с 98ой виндой и поработать под ним. Очень быстро захочется обратно в «тормозное будушее»
Neznauy
А причем здесь «гуглодокс и прочие веб приложухи»? Это совершенно отдельные вещи, живущие на далеких гугловских серверах.
А бразуер, грубо говоря, парсит и генерирует http, и может открыть некоторые файлы для чтения.
srhbdv
Браузер уже давным-давно не то, о чем вы говорите. В нем сотни API десятков подсистем, а сам он является средой для исполнения изолированных приложений. И веб — это уже давным-давно не гипертекстовые странички, а веб-приложения.
И если вы тоже хотите в демагогию, в браузере есть целая IDE. Открываете about:blank и верстаете себе любого вида форматированный документ\интерактивную таблицу для подсчета чего угодно\каталог книг, не сложнее чем это делается в офисе, да даже хоть видеоплеер или фоторедактор. Сохраняете, пересылаете, печатаете, что хотите, то и делаете.
popov654
Полная глупость. Ну да, API много, систем много, но всё то, что умел офис старых версий, вы не просто не сделаете с той же лёгкостью, вы вообще этого не сделаете. Через веб-приложение — да, но при чём тут браузер?
Как верно заметили выше, браузер только парсит HTML, применяет CSS и исполняет скрипты; в довесок он умеет определять геопозицию юзера, показывать картинки и сохранять их на диск, проигрывать аудио и видео (уже лет 7-8 как), выводить и подсвечивать в консоли JS код, а также исполнять пользовательский код прямо там же. Но это обстоятельство не позволит вам сделать электронную таблицу, сверстать книгу или статью, или сделать слайд-шоу. Для всего этого нужно облачное приложение — браузер же может его только исполнить. Некорректно говорить, что функционал, предоставленный этим приложением, предоставлен непосредственно браузером. С таким же успехом можно сказать, что мы обязаны всему JVM или компилятору (браузер по сути такой же JIT-компилятор/интерпретатор).
InterceptorTSK
Еще большая глупость заключается в том, что то что может быть исполнено на юзерской тачьке в 100 раз быстрее — зачем-то сваливают на сервак. Это вообще верх идиотии.
А может и в 1000-100000 раз быстрее. Смотря что…
Neikist
Вот ни разу. Откуда вы мощность машинки пользователя знаете? Может там i7, а может целерон. Или вообще какой нибудь андроид тысяч за 7-8.
YemSalat
Ээ… А браузер без веба зачем нужен то вообще?
khim
Дык в этом и дело! MS Office — является весьма функциональным приложением, которым можно пользоваться самим по себе, без ничего, браузер же, по сути — «современный тонкий клиент»… и при этом мне безапелляционно заявляют, что он умеет больше чем офис…
P.S. Это если забыть про то, что начиная с MS Office 2000 в офис и «настоящий» браузер входит. Кокретно в MS Office 2000 — MS IE 5.0
srhbdv
swelf
exсel и эта табличка? ну это что-то вроде
«Зачем тебе телевизор мультки смотреть, давай я тебе картинку нарисую»
Ты попытался сымитировать эксель и считаешь что браузер из-за этого не уступает по функционалу? Надо было на бумаге все посчитать и изображение вставить.
srhbdv
Я следовал поставленному ТЗ. Если мне понадобится больше возможностей, я это реализую с такой же легкостью.
Это у вас в голове. Лечитесь. У меня не было задачи написать эксель. У меня была задача создать таблицу с формулами.Продолжайте передергивать, мы с вами свяжемся.
swelf
но ты же его провалил, ни одного пункта не реализовано, кроме простой части первого пункта, я ж говорю на листе мог бы посчитать и скинуть фото.
1)Таблицы с формулами нет, только предзаданные вычисления
2)Каталога с книгами нет
3)Книги с картинками нет.
Если под этими словами ты имел ввиду
«Я буду кодить новую таблицу под каждую задачу», то да можно в тыщу раз больше чем может эксель. Хотя очевидно у нас разные понятия под функционалом, когда 1 программа имеет функционал, а в другой необходимо руками реализовывать каждый конкретный случай, то спорно все же
Даю новый челендж, писать программы при помощи рисунков, рисунок может в тыщу раз чем браузер и эксель. Рисунком можно при должно терпении создать и браузер и эксель и любую программу. Ну знаешь такой метод, тыкаешь определенными цветами в пиксели, сохранешь БМПшку, переименовываешь в exe, вуаля у нас программа. Все, языки программирования/компиляторы/интерпретаоры сакс, рисунком можно че угодно закодить.
srhbdv
А вы мне что за это? Может мне вам еще вашей маме что-нибудь сверстать? Только конченный идиот может полагать, что подобное нельзя создать с помощью браузера. Особо забавно наблюдать, как в одних ветках люди уповают, что браузеры перегружены возможностями, а в других, эти самые возможности отрицают.
Я бы с удовольствием посмотрел, как вы реализуете каждый конкретный случай, с помощью офиса, без помощи рук. Ногами может, или силой мысли? А если для вас открытие, что верстка документов — это не мышевозюканье, то откройте для себя такие вещи, как, например, TeX. И строго говоря, ничто не мешает в браузере и мышевозюкать, если вам так это необходимо. Инструменты разработчика очень богаты функционалом.
popov654
Видимо, речь шла о лёгкости реализации каждой такой задачи. Человек уверен, что в Экселе это делается проще и быстрее (наверное, и правда быстрее, но здесь многое уже индивидуально).
У меня вопрос по существу вашего примера имеется. Код простой, но у меня он, однако же, не работает. Ошибка очень забавна: "
document.querySelectorAll(...).forEach is not a function
". Перед этим я заменил стрелочную функцию на обычную, так как моя версия Хрома стрелочные ещё не поддерживает. Но тем не менее подсчёт итоговой суммы не работает. Я так понимаю,querySelectorAll
возвращает в моей версии не массив, а NodeList или что-то вроде того, и у этой сущности отстутствуют методы массивов. То есть надо делатьArray.prototype.forEach.call(...)
. Вопрос, почему у Вас работает без этого?P.S. Не знал про темплейты, спасибо, теперь где-нибудь применю при случае :)
mayorovp
querySelectorAll всегда возвращает NodeList, но в новых версиях у NodeList тоже есть метод forEach
srhbdv
Потому что вы сидите на устаревших версиях браузеров.
developer.mozilla.org/en-US/docs/Web/API/NodeList/forEach
Kwisatz
Коллега, поверьте, вы практически носитель сакрального знания. Функции для манипулирования DOM сейчас практически забыты. А чтобы создать подобную страничку современному разработчику нужно подключить jquery, react, less, настроить сброку итд итп
ЗЫ foreach работает не везде
srhbdv
Смогу.
А глупость пишете вы, полную противоречий.
Меня сильно поражает, сколько тут людей, пытается меня(или себя?) убедить, что я в программе для работы со сверстанными динамическими документами — не смогу сверстать динамический документ.
Ну да. Какие еще статьи и слайд-шоу в браузерах. Где же это видано. Фантастика не меньше.
0xd34df00d
Да и программа такая для этого не нужна, открываете командную строку, и
copy con чётотам
, и фигачите прям в машинных кодах.DrPass
На новом компе 1997-го (а это был бы Pentum 133+ с 16 Мб памяти и выше) года он работал адекватно, не тормозил. На компе 1999-го уже бы летал. Сложно сравнивать производительность тех лет с современной, т.к. тогда за год-полтора производительность вырастала в разы, а сейчас лет за пять процентов на сорок.
YemSalat
О, ну на «новом компе 1997-го» любой дурак может…
У меня на новом компе 2018-го последний офис тожe не тормозит.
khim
Поставьте себе MS Office 2000 (он на Archive.org доступен), поиграйтесь пару дней — и, внезапно, MS Office 2016 начнёт тормозить.
Мы просто забыли что бывают программы, которые не тормозят.
И я даже могу сказать когда это произошло: 1984й год, вот тот самый роликс молотком, являение GUI народу.
Потому что до этого времени всем было известно сколько времени занимает реакция компьютера на действия пользователя: 16.6ms, вот как клавишу нажали, так в следующем кадре — видим результат. Интерфейс весь под этот подгонялся: не можем перерисовать весь экран — думаем что можем за 16.6ms изменить, так и работаем.
А вот появление GUI сделало «патоку» нормальной… но это, в общем, ощущалось как нечто временное: да, оно тормозит пока, но потом машинки станут мощнее, и будет как в рекламе — красивые окошки и реакция за 16.6ms…
Однако прошло 30 с лишним лет, а «патока» — по прежнему на экране. Только разработчики игр знают, что может быть по-другому…
PsyHaSTe
Ох уж эти свидетели ДОСа...
DrPass
Вы знаете, я на последний офис в этом плане тоже не жалуюсь, видимо, там ещё достаточно кодовой базы с тех лет осталось. Зато у меня на новом компе 2018-го года заметно глазу подтормаживает последний вайбер и скайп, просто при наборе сообщений. Вдумайтесь, клиент чатика, который со всем шифрованием и эмодзи по функционалу представляет несопоставимые крохи в сравнении с офисом, притормаживает на восьмиядерном процессоре и NVMe диске.
Am0ralist
Например, вы сможете запустить компьютер и без ОС… ах да.
Ок, тогда выйти через него в интернет… Черт, я забыл.
Обратится к прибору через ком-порт… да что ж такое-то.
Вывести страничку на печать на принтер… блин, опять ОС требуется.
То есть вы надстройкой над ОС сможете сделать больше задач, чем может ОС. Ну-ну.
srhbdv
Во-первых. Где вы взяли список, перечисленных вами, задач в моем посте? Сами придумали?
Во-вторых перечисленное вами не может сделать ни одна ОС, без наличия соответсвующих драйверов на оборудование. Так при чем же тут ОС? «Ну-ну»
Am0ralist
Во-первых, вы так и не доказали, что те тысячи задач, которые вы можете выполнить в браузере — больше задач, которые может сделать винда.
А я вам лишь указал, что все свои задачи браузеры выполняют исключительно через ОС, а значит по умолчанию браузер в этом — второй.
Более того, а что может сделать ваш браузер БЕЗ сайтов, ну раз вы ОС отказываете в дровах, которые без нее работать и не могут? Ну или хотя бы без интернета? Что, оказывается, что бы гуглить код и смотреть ютубчики нужны не только браузер, а наличие сайта и интернета? То есть по факту, специально для этого написанные вещи? А сам по себе он что умеет? Ах, считай — ничего.
После чего ваше высказывание про демагогию ниже — начинает играть новыми гранями. Вы б вначале думали, прежде чем в позу мушкетера вставать.
srhbdv
И без интернета, он может очень много. Как минимум то, что может офис — он может и без интернета. И даже больше.
Проигрывать видео, музыку. Работать с графикой. Отображать pdf.
Отображать документы. В том числе интерактивные (как тот пример с таблицами). Предоставляет инструменты для их верстки.
Печатать документы.
Предоставлять инструменты для создания и запускать интерактивные приложения написанные на тьюринг-полном языке, никаких проблем, чтобы создать тот самый каталог книг, для личных нужд, нет. И делается это движением мизинца правой ноги.
Работать с файловой системой. Сетью.
С помощью браузера и написанного на коленке скрипта, я могу p2p позвонить знакомому по webrtc, без всяких скайпов.
Я могу производить расчеты и писать скрипты для автоматизации рутины.
Я могу решать тысячи прикладных задач, с помощью браузера.
Если вы не умеете пользоваться браузером. Это же не значит, что все не умеют, верно?
novice2001
Т.е. Microsoft много лет занимается мошенничеством и получает миллиарды долларов за приложение, функции которого выполняет любой бесплатный браузер???
srhbdv
У вас какое-то в корне неверное представление о мошенничестве.
Am0ralist
srhbdv
Может. Сколько платите?
Am0ralist
«Повышение ставок», недопустимый прием в споре. Что вы там говорили про демагогию и про тысячу вещей, которые можете делать в явно пустом браузере и не смогли бы в ОС без драйверов?
srhbdv
Тут нет никаких повышенных ставок. Я не должен вас бесплатно обучать и показывать вам наглядно то, в чем вы некомпетентны.
Будь то сверстанная таблица в браузере, или аналогичная таблица в чем-либо еще.
А вы крайне некомпетентны.
Am0ralist
да здесь все не согласные с вами крайне некомпетентны. один вы, товарищ мушкетер.
novice2001
У нас и доказательства есть, но они секретные, мы их не покажем
InterceptorTSK
А причем тут плата?))
Договоритесь со знакомым Васей, он вам сделает Ворд, а вы ему Эксель) Можете обсудить стоимость. Только она не важна) Вы можете сделать друг-другу куски офиса скажем за мильярд долларов. Хватит? Но взаимозачет же. Он вам. Вы ему.
Только фишка же получается не в деньгах вовсе) Ни он ни вы абсолютно ничего не сделаете.
Выводы.
Причем тут фишка еще и в том, что тут совсем деньги ни при чом. Потому что вы и так знаете, что Вася вам ничего в итоге не сделает) А значит и вы не захотите. Смысла же нет.
Если вы ваш скил обратите в экономические бумашки — эти бумашки вообще ничего не будут стоить. Потому что вы ничего не можете вовсе) Потому что есть другие, которые могут. Которые сделают круче, быстрее и дешевле, а скорее всего вообще задаром.
И да, браузер тут вообще не нужен.
fukkit
Идея богатая и в некоторых кругах весьма уважаемая. У каждого фигуранта в этом случае остается компания с миллиардным оборотом.
Остается отрастить бороду, подвернуть штаны — и на ICO, а того краше — на IPO.
popov654
Только если стоит плагин от Adobe, либо, опять же, через JS расширение, написанное сторонним разработчиком (да, его иногда включают в поставку, но у меня даже нет уверенности, что его пишут те же люди, что сам браузер).
Да, но это верно только для HTML, в какой-то другой формат экспорт сделать будет вряд ли возможно)
Окей, что-то такое анонсировали, как минимум в Mozilla. И как это сделать? Что для этого нужно знать, куда нажать и что куда ввести?
Вы сильно утрируете. Хотя в целом такое и правда возможно, для создания веб-приложения не нужен сервер, можно работать и локально, и даже делать импорт/экспорт в файлы, и использовать прикольные штуки вроде Indexed DB, WebSQL и Local Storage.
srhbdv
Любое более-мене крупное ПО состоит из компонентов написанное разными людьми. Вы снова скатываетесь в демагогию. Я пользуясь вашими аргументами расщеплю вам любую программу на составные части и скажу, что вы не можете сделать ничего с помощью этой программы, потому что компоненты написаны не разработчиками конкретного софта.
По всем остальным пунктам ответ аналогичен выше — я не обязан вас учить пользоваться ПО, чтобы доказать, что в нем можно решить определенные задачи. Поэтому все эти ваши (и прочих персонажей) — покажи, а как — пожалуйста, любой каприз, за ваши деньги.
Am0ralist
Вы только что на глазах у изумленной публики расщепили программу на составные части и заявили, что она ничего не может. После чего обвиняете других в демагогии и некомпетентности?
srhbdv
Конечно, именно это я и сделал, в ответ на ваш изначальный выпад и выдумывание задач, которые я должен решить с помощью браузера. Вы начали демагогию тогда, когда начали мне рассказывать, какие именно задачи я должен суметь решить. Я ответил вам так, как вы того заслуживали.
Am0ralist
То, как вы стойко отстаиваете и несете чушь, каждый раз все больше повышая ставки в споре, что очень хорошо характеризует вас. Вы написали про тысячи задач, но перечислили десяток, слившись даже на попытке сделать лично рыками эксель (ибо нифига у вас и близко не получилось).
А приводить приложения, которые кто-то написал под браузер — это еще больше нести чушь, потому что задачи будет решать не браузер, а он будет прослойкой. Еще более тонкой, чем ОС.
srhbdv
Я сильно сомневаюсь, что ваш офис может сделать экспорт документа в psd, например. А мой браузер ваш документ прекрасно экспортирует в pdf.
Вы по всей видимости пропустили такой веселый челлендж - что-угодно в 30 строк на js — на хабре?
Ну вот вам как пример habr.com/post/202304
srhbdv
Ну и если вам угодно в демагогию, то пожалуйста, уже давно существуют ОС — boot2browser. В которых с помощью веб-браузера, можно решить все перечисленное вами. Удачи.
bykvaadm
и чем эта урезанная ОС, в которой есть только браузер отличается от концепции ос + браузер? сам браузер без ОС этого ничего не сможет
Alexeyslav
Надо сказать что специализированное приложение без ОС тоже ничего не сможет сделать, даже запустится.
VolCh
Не помню у какого вендора, но уже встречал браузер без ОС, только БИОС.
IRainman
Хромбуки от гуглы наверное?
VolCh
Нет, имеется в виду обычные материнки какого-то вендора, с которыми можно серфить из биоса, без ОС на диске и вообще диска.
Gordon01
Все что было для windows mobile было гораздо функциональнее. SoftMaker Office — повторял функционал НАСТОЛЬНОЙ версии ms office на КПК. Почтовые клиенты тоже были такого уровня. Программы от Resco — тоже образцы невероятного функционала.
При этом все это очень быстро работало на мобильных процессорах того времени (200-500 МГц), 64-128 МБ памяти.
Но глючновато, винмобайл часто любил зависать наглухо.
Alexeyslav
Потребности людей с тех пор сильно уменьшились. Зачем на мобильном клиенте выбор кодировки письма? настройка mime-типов? способы кодирования вложений? Оно просто должно работать… причем без лишних заморочек — на мобильных девайсах возможность ввода и взаимодействия с приложением ограничена, а значит и многие функции становятся невостребованными.
Кстати, а почтовые клиенты прошлого умели передавать файлы больше 100мб? а 10Гб? Сейчас это на уровне средних потребностей.
DrPass
Ну не перегибайте, ни раньше, ни сейчас почтовые клиенты для передачи подобных файлов не используются. И проблема тут не столько в клиенте (дайте ему достаточно памяти и времени, он вполне себе сжуёт такой файл), сколько в ограничениях на размер вложений у почтовых сервисов. Что касается самой возможности обмена крупными файлами, то она не слишком-то и изменилась, единственное, сейчас у вас будет файлообменник с веб-мордой, а двадцать лет назад у вас был бы файлообменник с FTP-клиентом. И дисковая квота, конечно, с поправкой на размеры файлов тех лет :)
Alexeyslav
Почему же? вот совсем недавно отправлял фото для печати в онлайн-сервис, почта… 5Гб. Приложил вложение вжууух и письмо ушло. Всё абсолютно прозрачно, никаких плясок с какими-то там файлообменниками, настройками FTP-клиента и т.п. всё делается автоматически сервисом. И, кстати, надо заметить никаких оверсайзов на 140% из-за BASE-64 кодирования вложения.
Технологии вроде бы как не изменились, но пользовательский опыт — очень сильно.
Почему, кстати, досихпор не видно отдельных нативных почтовых программ способных автоматически передавать большие файлы вложений через файлообменники?
DrPass
Ну а я так ни на одном из своих ящиков не смогу. И никто из тех пользователей, у кого нет специального корпоративного ящика с отсутствием лимита на вложения, так не сможет. Gmail сейчас имеет лимит на вложения 25 мегабайт. Mail.ru — 20 мегабайт. И подобные лимиты практически везде. У вас это редкое исключение, связанное с профессиональной деятельностью.
Кстати, идея очень даже неплохая :)
Alexeyslav
Нет, обычный GMAIL, и даже маилрушечка так умеет. Про яндекс не знаю, но наверняка и его уже научили. Конечно, они не гоняют письма по почтовым серверам — они для этого используют промежуточное хранилище и делают это совершенно прозрачно обходя ограничения почтовых серверов. Будь там даже 1Мб ограничение.
popov654
Так это делается совсем не так. Просто файл заливается на их собственный сервер, а к письму прикрепляется ссылка. Технически, будь такие компании с такими объёмами для хранения в 90-ые — это технически было бы возможно и в 90-ые. Тут нет какого-то особенного «ноу-хау» :)
Alexeyslav
Так ведь фишка в том что это делается прозрачно для пользователя. У — удобство.
khim
Вот только прозрачность эта — мнимая. Как вам уже ненавязчиво указали.
Да, если все вокруг пользуются GMail'ом и GDisk'ом — то это работает. Но шаг вправо, шаг влево… и нет больше прозрачности…
SUA
вот совсем недавно тоже отправлял сканы в обыкновенную корпоративную почту (банки — не «совсем безнадежные» должны быть по используемым технологиям)…
один робот мне ответил что их предел 25Мб,
второй — что 20,
один человек — «шлите все только в pdf, картинки не открою»
и двое — «приложенные ссылки гуглдиска не открываются, шлите только вложением»
и это при том что мобильный клиент гугла умеет напрямую с интернет-диска гугла же только ссылки шарить (хорошо что наоборот еще отключить не догадались — с приложения гуглдиска можно отправить письмо с вложением)
так что «вжжух и ушло» — это несмотря на 2018 ситуация до сих пор из серии «любой каприз за ваши деньги»
staticlab
ИБ — информационная безопасность
Скорее всего регламент.
Google Drive запрещён как файлообменник.
Am0ralist
Alexeyslav
Вот. Вы говорите именно о почтовом приложении, которое кроме POP3 и IMAP протоколов не знает ничего, но работает быстро. Собственно это ограничения не интернета а протокола и сети почтовых серверов.
khim
Но если потребности людей уменьшились, то почему потребности приложений увеличились?
Alexeyslav
Потребности в стороннем, вспомогательном функционале. Нынешние пользователи пугаются даже слов сервер, порт и необходимость куда-то вводить эти данные в приложении вводят их в ступор. Как впрочем и большие перечни настраиваемых параметров приложения.
Вспомните, какой прорыв в голосовой связи через интернет произвёл скайп. Который не надо настраивать, не надо вручную прокидывать какие-то там порты в NAT(ещё одно страшное слово для пользователей) и куда-то вводить адрес прокси-сервера. Он просто работает. Запустил и работает. В этом плане потребности пользователей уменьшились, они хотят и получили заветную кнопку «сделать всё хорошо».
sumanai
Как будто список настроек оправдывает рост объёма приложений на сотни мегабайт.
popov654
Но разве так жить интересно? Это же деградация в чистом виде какая-то…
То есть пользователь, конечно, не обязан становиться разработчиком и даже админом. Но всё-таки… Хоть для себя-то какой-то кайф получить от того, что сделал, настроил, и оно заработало в итоге
SirEdvin
Столько много всего можно настроить, что чем меньше, тем лучше, на наш век все равно хватит.
Alexeyslav
Это не деградация, это специфика мобильного девайса. У него ограниченые возможности по вводу, особо не разгонишься. И ведь это прекрасно когда программа просто работает и не нуждается в низкоуровневой настройке — все варианты опробованы, найдена оптимальная конфигурация и зафиксирована.
VolCh
Не все от этого тащатся вообще, а некоторые раньше тащились, а теперь перестали. Я, например.
DrPass
Кайф можно получить один раз — когда вы решаете новую для себя задачу. Когда вы настраиваете софт на своём десятом компе, эта задача вызывает у вас уже не кайф, а раздражение и скуку.
darthmaul
Не надо многотысячных КБ для разработки софта, достаточно выкинуть «свистелки и перделки» из имеющегося. Замечательный пример — современный вэб. Что нужно для сайта? Ответ прост — HTML, CSS, PHP/Python, SQL — совместимая БД. Можно еще написать на JS несколько простейших функций для подтягивания контента без перезагрузки (тех же комментов). А все остальные мегабайты «нод джс», «джкверри», другие фреймворки и прочие кучи дерьма работают лишь ради «красивеньких» анимаций и прочих перделок.
khim
Люди, которые думают иначе либо не читали пресловутого секрета айберга, либо не до конца осознали его.
Прицитирую самую важную часть:
Сейчас мы наблюдаем простое и естественное следствие из этого закона: если люди озабочены только и ислючительно пискелями на экране — то только на оптимизацию этого параметна и будет обращено внимание.
И, кстати, зря он програмисстов отделил. Они точно также считают. Я это понял, когда увидел фразу Есть еще Gerrit, который там как-то с этим борется, но интерфейс из 90х убивает все желание пользоваться этим. Речь шла об управлении VCS для программных проектов. Уж гиковей задачи быть не может. И… всё равно: пиксели — важнее.
Кстати разработчики Gerrit'а отреагировали адекватно: последняя версия выкинула нафиг «устраевший» интерйес, который позволял мне с клавиатуры сделать то, что мне нужно за секунды. Теперь это «чудо природы» грузится многие секунды (иногда десятки секунд), глючит, но… зато у него теперь современный интерфейс! Победа!
Автор статьи вообще не понимает, где причина, а где следствие: машину с потребелением топлива 1000 листров на 100 киломестров — никто не купит. А сайт, который теряет данные, будет пользоваться большей популярностью, чем сайт «с интерфейсом из 90х». Вот и всё. Вот и вся «тайна».
Люди — вы получаете ровно то, за что вы платите (деньгами или времегнем — неважно), почему вы недовольны? Пока куча дерьма в красивой обёртке пользуется большей популярностью, чем маленькая, быстрая, но «негламурная» программа — люди будут порождать эвересты дерьма.
Почему автор вообще к разработчикам обращается? Не в них ведь дело!
engine9
Тут, батенька, вот еще какое дело. Капитализм выращивает (нытик-фильм на 3 часа!) невежд, так как фрустрированному тревожному дураку проще все это барахло и скармливать.
Тому кто не может планировать — кредиты с конскими процентами. Тому, кто озабочен статусом — оверпрайснутые цацки. Тем, кому промыли мозги и насадили чувство неполноценности — уколы силикона в губы и амулеты на успех.
Дурака растят под рынок и рынок под дурака, конвергенция-с. Но это только часть вопроса, ибо цифровая техника и все эти айтишные абстракции крайне тяжелая и не очевидная для человеческого мозга вещь! Так как не имеет привычных аналогий в реальном мире. Если, например, файл на диске можно сравнить с вещью, то жесткую ссылку уже намного сложнее.
Т.е. требовать от большинства людей хотя бы базового понимания как это все устроено нерационально. И сопоставимо с требованием от всех понимания физиологии человека или электродинамики. Это в мире где большинство верит в ящериков и думает, что Солнце вращается вокруг
плоскойЗемли.Neuromantix
Во всем всегда виноват капитализм. Вот в других странах нет ничего, кроме ядерных ракет и медведей, зато у всех мозги — так мозги, кредитов нет, цацок дорогих нет, дешевых — тоже нет, ничего нет, кроме ЧСВ раздутого «зато не капитализм».
Причем тут капитализм? Просто производство хламья очень просто, дешево и удобно — думать не надо в первую очередь разработчикам и производителям.
Сейчас зачастую даже имея неограниченные деньги, некоторых нормальных вещей не купить — разве что в виде завода, и потом дрючить его до тех пор, пока руки переместятся с места ниже поясницы на свое нормальное.
engine9
Окей, я могу плавать в терминах или же вообще ошибаться. На мой взгляд корни у всей этой байды в том, что экономику «разгоняют» через стимуляцию спроса. А именно путем агрессивного маркетинга, инфляции и запланированного устаревания. В т.ч. софтового.
Еще вмешательством в образование, которое (мало того, что само превращается в модную услугу, впариваемую родичам через тревогу за детей) не позволяет сформировать у человека целостную картину мира. Производя «радостных олигофренов» чья уверенность следствие эффекта Даннинга-Крюгера.
Neuromantix
Не экономику разгоняют, а разгоняют цифирь показателей (рост экономики в процентах, число обновлений софта за год, количество моделей за сезон и тд). Плюс маркетинг — это такая религия, которая верит в силу самой себя. Маркетологи, а за ними программисты твердят: «Нужно больше обновлений, потому что людям нужно новое бла-бла». Только вот я с сотню людей спрашивал — все они ненавидят обновления лютой ненавистью, и зачастую не ставят их. Т.е. получается, что религиозники-маркетологи придумали миф, и подгоняют все под этот миф, а то. что реальность с ним не соотносится — тем хуже для реальности.
Ничто не мешает писать не кривой софт, и сократить число обновлений до одного в год-два вместо бешеного клепания бесконечных обнов, которые делают только хуже. И это будет даже дешевле, чем сейчас, но никто это не делает, потому что производители живут в своем вымышленном мире и пытаются следовать его законам, которые в реальном мире не работают или работают не так.
khim
Вы забываете что задача маркетолога заключается не в том, чтобы сделать людей счастливее, а в том, чтобы увеличить доход и, в идеале, прибыль.
И тут получается парадокс: те пользователи, которые у вас уже есть — они обновления ненавидят… но они у вас уже есть, и, в среднем, никуда не деваются… а вот новых выпуск обновлений с новими фишками привлечёт с большей вероятностью, чем исправление багов.
Tantacula
Как минимум мешает невозможность учесть все nullday эксплоиты, повышенные затраты времени и денег на усиленное тестирование (которое опять же не гарантирует 100% отсутствие багов, а лишь увеличивает вероятность их обнаружения) и тот факт, что значительная часть софта — это не изолированная вещь в себе, а программа, общающаяся со сторонними компонентами, которые часто меняются. Вы выпустили клиент для инстаграмма, а завтра фб объявил об изменении api или вовсе закрыл доступ к нему. Вы выпустили графический редактор с поддержкой всех существующих камер, а через неделю олимпус объявил о выходе 5 новых фотоаппаратов с новым форматом рав, либо конкурент встроил функцию новую, без которой ваш продукт стал неинтересен аудитории. Вы уже отчаялись и написали простой блокнот для айфона, а тут эппл решил отказаться от поддержки 32-битных приложений в новых версиях ios.
muon
И не говорите, что это невозможно. Сколько дырок нашли в AS/400? В системах крутятся бухгалтерии космических масштабов, наверняка есть желающие их расковырять. И не расковыряли почему-то.
А разгадка проста: AS/400 делается для людей, которые умеют зарабатывать и считать большие деньги. А условный айфон — для закомплексованных потребителей, которые считают, что за новый телефон их сильнее будут уважать коллеги по опенспейсу. И новые сайты с 10-мегабайтными страницами — для них же, и будут посещать, потому что конформное поведение.
Tantacula
Разгадка проще — вы либо не слышали об этих nullday уязвимостях (вы слышали о stuxnet, heartbleed или meltdown до их появления? насколько публично IBM вообще объявляет о своих уязвимостях? Или они всегда пишут идеальный код?), либо система представляет собой неуловимого Джо (экономически целесообразнее ломать конкурентов, либо другие компоненты системы, особенно если атака точечная).
Ну не может единоразовое тестирование системы никак закрыть все баги и уязвимости. Не с нынешними технологиями. В таких компаниях как google, facebook, microsoft тестирование включает в себя регулярно работающую bug bounty не потому, что они наняли идиотов разработчиков. Сколько лет прошло с момента запуска интелом уязвимой архитектуры и до момента обнаружения spectre/meltdown? Тоже скажете, что в интел дураки сидят?
Alexeyslav
Сократить количество обновлений просто нельзя — банальные ошибки в софте и уязвимости будут оставаться незакрытыми годами… Посмотрите на нынешние обновления. Что-то кардинально меняется в интерфейсе? Ну, может быть… раз в год. А в остальном обновления касаются исключительно внутренней скрытой части софта, что не видно глазами но сильно влияет на его функционирование в современном мире. Перестанешь обновлять софт — через год он окажется дырявым как сито и никому не нужным т.к. конкуренты залатали дырки и распространили с очередным недельным обновлением.
vin2809
Так может нужно сразу выпускать РАБОТАЮЩИЕ приложения, прошедшие тестирование. А не обновлять (читайте исправлять) «внутренние».
Alexeyslav
Предлагаю попробовать прикинуть сколько надо ресурсов чтобы проверить простейшую программу которая складывает два 32-битных числа, а именно полный её тест. А потом приступить к надёжному тестированию более сложных программ. Без полного теста всех вариантов состояний программы и переходов между ними никакой гарантии отсутствия ошибок в программе быть не может.
А пока такие программы выходят в свет лишь в надежде что АЛУ процессора нас не подведёт, и как правило так и бывает. Но есть ньюанс…
0xd34df00d
Звонили ненужные для всего этого JS-буйства красок академики, просили передать про системы автоматического доказательства.
Хотя...
А, так вы на каждой целевой машине тестировать будете? Ну ладно.
Alexeyslav
А как ещё можно доказать что программа действительно правильно складывает ЛЮБЫЕ числа? Целевые машины непричём — мы проверяем программу. Программа — черный ящик, она складывает числа. На входе два 32-битных числа, на выходе — результат. Нам надо убедится что программа работоспособна и правильно работает для любых чисел на входе. Сейчас мы просто предполагаем что такие простейшие операции не нуждаются в проверке и заранее считаем их валидными, но если такой уверенности нет? Механизм сложения, допустим, нетрадиционный и в нём проверяется множество условий. Каждая такая проверка увеличивает количество вариантов состояний которые надо проверить, и с ростом сложности программы оно растёт очень быстро. Даже для современного варианта «хелло-ворлда» количество состояний стремится к неприличной величине, и даже в такой программе может возникнуть сбой по вине операционки или скажем драйвера видеокарты.
0xd34df00d
Ну если у вас нетрадиционный вариант сложения, скажем,
myplus
, то вы берёте и пишете другую функцию, например,myPlusEqualsPlus
с типом(a, b : Int32) -> (myplus a b = a + b)
(как говорит Карри-Говард, этот тип эквивалентен утверждению, что для любых a и b значение myplus a b равно значению a + b), пишете её реализацию (как говорит Карри-Говард пополам с теорией типов, реализация является доказательством соответствующего утверждения) и радуетесь жизни.Правда, при написании доказательства от чёрноящиковости придётся доказаться.
Или не отказаться и использовать внутреннюю верификацию, тогда на внутренность
myplus
смотреть не нужно, но её сигнатура изменяется сmyplus : (a, b : Int32) -> (c ** a + b = c)
. Зависимый тип-сумма, это всё.Как, по-вашему, математики теоремы доказывают? Проверяют все возможные значения переменных?
Alexeyslav
Масло масляное, в этом примере альтернативного сложения мы используем тот же АЛУ что и оригинальный вариант. Но вот допустим программа использует свою реализацию двоичного сложения чисел. Та что используетс в АЛУ проверена вдоль и поперёк и даёт гарантию что работает корректно(хотя вообще это утверждение нуждается в проверке, вдруг для какой-то пары чисел возникает сайд-эффект приводящий к неверному результату?) но мы должны проверить свой алгоритм. Эта задача в некоторой степени очевидна, но уже приводит к определённым трудностям и сложностям доказательства. Что будет с более сложными программами?
Ошибки в арифметике процессора в истории были, так что даже алгоритмы которые мы считаем надёжными на самом деле таковыми не являются и по большому счету даже такие элементарные вещи нуждаются в проверке и доказательствах.
Что касается доказательства корректности алгоритма, даже математически точное доказательство не даёт гарантии отсутствий ошибок в самом алгоритме. Ну да, алгоритм делает то что должен делать. Но то ли он делает что НАМ нужно?
0xd34df00d
Почему? Вы вольны использовать что угодно внутри
myplus
, главное — доказать, что оно ведёт себя как обычное сложение.А это вопрос совсем другого уровня. Даёт ли вам теорема то, что нужно в данной конкретной прикладной задаче?
PsyHaSTe
На википедии есть неплохая статья, советую ознакомиться: en.wikipedia.org/wiki/Formal_verification
И это не абстрактная хрень, так баги в реальном софте находят:
Более подробно можно почитать в блоге парня, который это нашел.
0xd34df00d
К слову о, я буквально сегодня набрёл на такое. Это, наверное, первый случай, когда я вижу самое что ни на есть прикладное применение гомотопической теории типов.
И, что особенно метаиронично, учитывая контекст поста, программы на языках с завтипами компилируются просто адово долго, С++ с трехэтажными темплейтами покажется вам резким как понос.
gearbox
О, гомотопию приспособили таки к жизни :)
Druu
А как доказать, что ваша система, проверяющая корректность доказательства, сама корректна?
0xd34df00d
А как доказать, что ваше доказательство теоремы ручкой на бумажке корректно?
А если чуть серьёзнее, вроде были всякие критерии, позволяющие в известном смысле извне верифицировать систему верификации. Но я эту тему пока особо не ковырял.
Ну и в правильных языках с тактиками кривая тактика не приведёт к приёму кривого порождённого ей доказательства, по идее.
Druu
Как? :)
С чего вы взяли что в компиляторе вашего языка с тактиками багов нет? :)
0xd34df00d
А я вот хз, как. Папиры публиковать, разве что, чтоб их другие читали.
Ни с чего, но я сужаю поверхность кода, который нужно внимательно читать и/или обмазывать глупыми тестами.
gearbox
Druu — оставьте этот детский сад. Абсолютного доказательства не бывает, Гедель постарался. Но формальная верификация — она не про абсолютное доказательство. Начну издалека. Возьмем например криптографию — это наука о чем? Это наука о том как большой секрет сделать маленьким. Но избавиться от секрета полностью не получается. Вернемся теперь к верификации. Это наука о том как большую веру сделать маленькой. Если вы формально верифицировали код, то на выходе вам не надо ВЕРИТЬ в его корректность, достаточно ВЕРИТЬ в то что корректны аксиомы, на базе которых строилось доказательство И верны методы доказательства. Но доказать все и вся — не будет :)
Druu
Ну если уж говорить о вере, то мы вообще сразу попадаем в область субъективного. Кто-то 100% покрытие тестами выдрочил и верит теперь, что все работает идеально.
gonzazoid
Что есть аксиома если не вера?
Druu
Аксиома — это просто гипотеза. Математика занимается поиском ответов на вопросы вида: "что, если Х?", при этом истинность Х (аксиомы) где-то за пределами исследования.
Так что верить в аксиомы не требуется, можно даже быть уверенным в том, что они все ложны. С математической точки зрения это ничего не меняет.
0xd34df00d
Где-то тут потенциал для треда о философии математики и доказательства в математике чую я.
bano-notit
Почему все к разрабам цепляются? Я вот как разраб могу сказать, что это моя работа делать сайт соэзмиримый моему ганарару. Если мне интересно что-то делать или мне это тупо выгодно, то я сделаю хорошо. Если мне заплатили 5 рублей за функционал «как у фейсбука» и «ну к завтрашнему ведь готово будет», то и сделано это будет на таком говне, которое я сочту достаточно вонючим.
Если же это мой проект и мне реально дороги пользователи, то я сделаю нормально за минимальные затраты для пользователя. Но это вложение души. Почему я должен вкладывать душу в какое-то левое предприятие или дело. Почему я должен тратить свою душу на каждую вебвизитку?
Cipper
Во первых, зачем тратить свое, чужое время и душу на то, к чему душа не лежит? Дайте возможность работать тем, кто хочет заниматься визитками хотя бы для образования. И вы не будете лишнее время тратить и клиент не будет недоволен. А вы это время можете потратить на то, что вам нравится, и результат, вполне возможно, принесет вам большую прибыль. Во вторых, правильно пишется соизмеримый и гонорар, реально сложно читать просто
VolCh
Не путайте прибыль с зарплатой/гонараром. Прибыль не гарантирована, это риски. А кушать хочется.
bano-notit
Вот тут есть некоторая проблема. Я бы рад перейти на то, что мне больше нравится, и большую часть времени я этим и занимаюсь. Но критике последнее время подвергаются сайты-производители конктента, а это, к счастью или сожалению, не глобальные игроки, вроде вк или яндекс.новостей. Контент создают микробложики и микрофорумы. И именно они пытаются из рекламы выжать максимум, вложив при этом минимум денег. И тут появляюсь я и ещё 1000 фрилансеров, которые готовы взяться за работу под нормальные деньги и нормальное тз. Конечно сразу появляются правки в тз после его заявки и иногда даже сдвиг сроков в меньшую сторону, при этом денег за это не добавляют. И что мне и ещё 1000 фрилансеров делать? Конечно говнокодить настолько, на сколько нам позволяет совесть, чтобы уложиться в сроки и бюджет.
А потом заказчик хочет прикрутить ещё пару фич, через месяц, нанимает ещё людей на сдельную, они могут заметить говнокод и комментарий «не связывайтесь» и наговнокодить ещё больше, или вообще новые фичи навернуть поверх всей старой архитектуры (что очень часто и происходит).
Новички же делают ещё больше гавнокода, даже если хотят сделать хорошо. Уровень их «нормальной работы» и моего говнокода различаются. Если бы всё, что делается сейчас «нами» делалось бы новичками…
Раз уж начали придираться к символам, то числительные пишутся через дефис.
Cipper
Вы меня извините, но не это ли следствие капитализма, где основной принцип — потрать меньше, продай дороже, в том числе и усилия и время и рабочие руки, ведь руки ниже поясницы ценятся дешевле, чем руки из плеч? А что касается «других стран» так и там ситуация ровно такая же. А касаемо всё же не капитализма — там ведь принцип был иной, делалось многое для удобства «пользователя», а не «разработчика и производителя» а почему? А потому что пользовались все одним и тем же продуктом, и косо глядели на того кто халтурил, даже зарабатывая много, а сейчас — деньги есть (продал родину ли, другой товар не важно какого качества, или родители обеспечили) и смотреть то косо боятся, и уважения масса, — «Надо же, с деньгами», и это вплоть до судебной системы, которая вообще исходя из простейшей логики независима в суждениях должна быть… Ну результат налицо, как говорится…
Neuromantix
Похоже, основы капитализма многие изучали по журналу «Крокодил». При этом распрекрасные не-капиталистические страны вначале строились на крови и костях, а потом вообще передохли. Видимо рептилоиды помогли.
senglory
Все страны на костях строились. У капиталистических этих костей на порядки больше за сотни лет истории было, считая хотя бы со времен огораживания в Англии.
Sychuan
Какие ваши доказательства?
Ну и одно дело 15 век и 20-ый. Во времена огораживания вроде как процветал феодализм с лордами, королями и рыцарями
senglory
1. Вот из того, что находится на раз-два:
На вскидку, раз
На вскидку, два
В обоих случаях виновником была страна с капиталистическим укладом экономики.
2. Первая мировая. Напомню, что развязали ее страны с капиталистическим укладом экономики.
PsyHaSTe
Исследование показало, что все дыщащие воздухом люди умирали.
khim
Ваш сарказм был бы уместен, если бы никаких других стран, кроме капиталистических, в природе не было. Но они были. Были даже «чистые» эксперименты (Вьетнам, Корея). По ним видно, что корелляции зверств со строем — не так много, но… массовое уничтожение людей в других странах в сочетании с благополучием в метрополии — это как раз характерная черта капитализма.
И не надо про то, что «это были далёкие колоннии, о том, что там происходит никто не знал». Ирландия рядом с Англией всегда была, никуда не отплывала…
Druu
Погодите, сколько всего существовало стран за последние 200 лет и сколько из них не были капиталистическими?
То есть если в своей — то это ок?
Sychuan
Меня интересовало утверждение
А не ссылка на голод в Бенгалии. И потом сравнить в относительных цифрах, чтобы было ясно видно. Коммунистические режимы убили 5% человек от общего числа проживавших на их территориях и территориях их сателитов, капиталистические страны убили 35% от от общего числа проживавших на их территориях и территориях их сателитов. Тогда все будет замечательно. Ну и опять таки хотелось бы рассматривать 20-ый век, когда уже можно точно определить, какие страны капиталистические, а какие нет. И посторонние факторы вроде феодальных завоеваний отсутствуют.
Fracta1L
Што, простите? Это в СССР многое делалось для удобства пользователя? А примеры можно увидеть? А то я сколько ни встречал советских изделий, начиная от мелких штучек типа посуды, и заканчивая заводами и жилыми домами — всё сделано через ЖОПЕНЬ, за очень редким исключением.
Cipper
Вы как то не учитываете что вы судите мерой человека видевшего гораздо больше чем обыденный рабочий в СССР, жившего в свое время и в изолированной стране, но даже сейчас многие наработки используются в других странах и очень успешно, я уж промолчу что последние лет 30-35 страна не развивается вообще, если не больше. Смотрите шире и всё увидите
Fracta1L
Т.е. создаваемое в СССР кажется удобством только тому, кто ничего лучше не видел из-за железного занавеса? Интересное определение удобства, очень такое своеобразное XD
Если вы под развитием подразумеваете шагание строем в ногу в сторону очередной «великой цели», то да, не развивается, и нафиг бы оно упало, такое «развитие».
Mabusius
Посмотрите советский сериал «Фитиль». Там был сюжет как раз по этой теме. Инженер предложил начать выпускать новую модель пылесоса(показывают типичный современный «капиталиститческий» пелесос), но чиновники начинают доказывать инженеру, что они умнее него и вносят кучу правок в проект. И в конце концов получается у них типичный советский пылесос больше похожий на трактор.
Sychuan
А как же самое вкусное мороженное! (сарказм)
vin2809
Кстати, действительно самое вкусное. И колбаса была из мяса… (Это не сарказм).
PsyHaSTe
Но не для всех.
А еще есть подозрение, что вкуса придавал факт стояния в многочасовой очереди, известно ведь, что чем труднее достается что-то, тем больше ценится. В «Контрольной Закупке» помню чуть ли не на МРТ проверили, как человек пьющий одно и то же вино но из дешевой бутылки и из дорогой по разному его описывал. И не потому, что он понтовался, а на МРТ было видно, что при испитии напитка про котороый была априорная информация, что он дороже, просто тупо больше отделов мозга активировалось.
Simplevolk
Ясное дело, что в утопиях Стругацких или Ефремова, производители бы думали об улучшении качества вещей, о том чтобы производить вещи развивающие человека и тд.
Neuromantix
Скорость получения прибыли важна не для капиталистов, а для местного бизнеса, Пелевиным описанного в Генерэйшн Пи. Отсюда же и все разговоры вокруг «убыточности» предприятий Маска, Безоса и тп. Это только в воспаленном мозгу российского псевдо-бизнеса может быть идея «хапать, пока не замели, не развалилось и водка не кончилась».
vs_starosta
А прекрасному эльфу капиталисту нужна прибыль не здесь и сейчас? Или биржевые рОботы создаются с целью эстетического удовольствия? Или после каждой презентации родстеров в космосе не меняется цена акций?
Neuromantix
Разница в том, что в нормальных условиях капиталист может себе позволить вложить больше денег в производство, создание инфраструктуры и тп, и в долгосроке получить прибыли намного больше, чем он получит, «нахапав» здесь и сейчас, пока очередной политик не спятил, пока валюта не рухнула, пока еще что-то в «стабильности» не произошло.
senglory
Вот что пишут люди из самого сердца мира наживы и чистогана
Это как, «нормальные условия»? Или капитализм какой-то неправильный, цветов радужных?
Sychuan
Какой-то чувак в ЖЖ, написал про каких-то неизвестных чуваков где-то неизвестно где. О да. После такого могучего аргумента пора всем обратится в коммунизм. Ну а в реальном мире, лекарство от гепатита C было наконец изобретено пару лет назад. Хотя казалось бы, ситуация до этого фармкомпании отлично устраивала. Я уж не говорю о генетических лекарствах, которые сейчас горячая тема. Вот уж где можно было бы собирать деньги за тритмент десятки лет
senglory
«Какой-то чувак в ЖЖ» уже 22 года живет и работает в Университете Нью-Йорка биохимиком и профессором. Зовут его Виталий Эпштейн.
Про коммунизм никто и не говорил, кроме Вас. Приписывать мне то, чего нет в моих словах точно не стоит. А вот что стоило бы (мечты, мечты) — так это иметь инструмент давления на всех этих «инвесторов» чтобы, например, разработке новых антибиотиков они бы уделили финансирование в таком же объеме, что они тратят на цитостатики. Пока же большинство крупных фармацевтических компаний забросили свои программы разработки антибиотиков к 1995 годую
Не спорю, что находятся и среди руководителей фармы вменяемые люди, понимающие, что HCV безразличен твой размер счета. Но большинство напоминает азартных игроков, которым главное отчетность перед акционерами показать хорошую, да бонус свой годовой получить за продажи.
… и с эффективностью работы которых пока что как с УТС — вроде движемся, но сильно медленнее, чем нужно. А вот пиара и понтов — выше Эвереста.
0xd34df00d
Больше регулирования богу регулирования. Вот бы ещё отрегулировать, чтобы лекарства сами на деревьях росли, тогда заживём.
Поразительное желание залезать в чужой карман. Давайте я в ваш залезу, но глазиком, не ручечкой: сколько денег вы лично задонейтили или хотя бы инвестировали в исследования разработки новых антибиотиков?
0xd34df00d
Если знать английский немножко за пределами ландан из зе кэпитал оф грейт британ, то становятся ясны некоторые коннотации. Cure — это полное исцеление, treatment — в том числе, достаточное поддержание качества жизни. Ничего о стоимости тут нет. Более того, стоимость этого cure может быть 100500 денег за раз, а treatment — 100 за 1000 необходимых доз. И не очень понятно, почему второе безусловно хуже первого. А, не безусловно? Ну, значит, додумывание, как всегда.
Придумывают все эти лекарства в основном почему-то кляты капиталисты.
senglory
Что тут непонятного? Вылечивание — это точка в истории болезни, а tretament — это деньги, вытягиваемые зачастую пожизненно. При таком раскладе тот, кто поставляет препараты, становится просто на сторону заболевания, а не пациента. Что неясно-то?
0xd34df00d
Я привёл пример, когда исцеление — это, конечно, точка, но нереализуемая.
Если у меня будет выбор, платить за лечение пипецомы 100 денег в месяц или 100500 единоразово, я скорее выберу первое, потому что 100500 единоразово у меня нет, а кредит людям на смертельные пипецомы выдавать — довольно рисковано.
И, кстати, жить я буду вряд ли больше 83 лет, так что это даже финансово выгодно.
Если он неоправданно затягивает лечение, то появляется другой фармацевт с более эффективным лечением и выталкивает первого с рынка.
Tantacula
Глупо списывать на капитализм все проблемы общества. То, что вы перечислили — лишь отражение самого процесса эволюции. Желание человека стать более успешным (более конкурентным в сравнении с другими представителями своего вида) было задолго до капитализма (еще когда он был обезьяной), только раньше вам пришлось бы постоянно драться с альфой и бетами за ресурсы и возможность оставить потомство, а теперь можно ограничиться хорошо оплачиваемой работой.
Am0ralist
Как человек, который по семейным, дружеским и жизненным причинам был долгое время связан с оным.
Xandrmoro
Вот только рисовать красивые пиксели можно без того, чтобы это всё безбожно тормозило и заставляло мой восемнадцатого года ноутбук изображать из себя вертолёт.
khim
Можно — но тогда вы этих красивых пикселей нарисуете меньше и, соотвественно, заработаете меньше денег.
yarric
Игры с рисованием красивых пикселей нормально справлялись ещё в 90х — на компах, которые сейчас даже свежую винду не потянут (интерфейс которой выглядит примитивнее, чем у старой винды). Фейл по всем фронтам: даже красивые пиксели рисовать ниасилили, на четырёхядерных процах на 2 ГГц.
khim
Те игры, о которых вы говорите разрабатывались месяцами, иногда — годами. А современные тяп-ляп сайты создаются на дни, иногда за часы…
И если люди отказываются пользоваться интерфейсом 90х, а требуют продуктов в стиле Windows 10 (или в «материальном дизайне»), то, стало быть, цель достигнута.
Что там сказал бы Роден на тему этих интерфейсов — неважно…
SerafimArts
Начнём с того, что использовать Windows 10 пользователей просто вынуждают. Лично я на свой компьютер 7ку или более ранние версии просто физически не могу поставить. Начиная с того, что там не работает Docker, заканчивая тем, что то ли процессор (i7 7600k), то ли оперативка (DDR4) несовместима и из-за этого вылетает синий экран при установке. Интерфейс у 10ки неприятный и отталкивающий, а в более ранних версиях вообще отвратный. Глаза кровоточили, когда видел иконки не по гайдлаинам (в свой время занимался вёрсткой и получал люлей от дизайнера, если где-то какой-то пиксель вылезал).
Neikist
Хм, а мне десятка нравится. Управление окнами удобное, иконки (да и вообще дизайн), по моим ощущениям поживее шевелится на удивление.
popov654
Чем оно хуже в семёрке?)
А по моим дико тормозит. По крайней мере в виртуальной машине. Версия 1609 ещё кое-как ворочалась, после апдейта до 1803 — это просто слайдшоу с загрузкой по 7-8 минут.
Am0ralist
PsyHaSTe
Один из крупнейших плюсов — если приложение вдруг сдохло (такое бывает), игра например, затащив с собой весь UI, то в семерке была старая проблема, что даже если открыть диспетчер устройств, то игра рисуется поверх и её не прибить. Раньше приходилось через ctrl+alt+delete попадать на страницу прользователя и делать logout. Хоть не полная перезагрузка, так сказать. В десятке сдохшее приложение можно перенести на другой виртуальный рабоий стол, спокойно открыть диспетчер и прибивать надоедливую фигню. Очень удобно и не раз пригождалось.
vis_inet
Кажется, что это достаточно нечастая потребность
PsyHaSTe
Ну раз в месяц где-то стабильно появляется.
vis_inet
Нечасто…
А в целом насколько удобнее чем Win7?
PsyHaSTe
Не лично мне по мелочам кажется удобнее. Пуск тот же сильно удобнее, перед глазами спокойно может поместиться 10х10 иконок, то есть 100 программ в доступности одного клика. 100 же элементов выпадающего меню в семерке выглядят не очень.
Больше софта ставится из коробки. Сюда же можно отнести, что после установки винда сразу готова. Не надо ставить 350 обновлений, которые вышли за все эти годы. Да, есть репаки, но я им не доверяю.
Ну а в целом это та же семерка, только с небольшими бонусами вроде перечисленных + напирмер красивый слайд-шоу скринсейвера. То есть все ровно то же самое, глобально внешне ничего не поменяли.
sumanai
Что может быть и минусом. Куча неиспользуемого мусора, который не удаляется стандартными средствами.
PsyHaSTe
Под софтом я имею ввиду драйверы. Всякие принтеры/вайфаи/мышки/… определяются намного бодрее. WSL опять же.
sumanai
Нестандартная трактовка. Так то да, я не против драйверов. Хотя как по мне, лучше иметь варинат их загрузки из сети.
Но всё таки именно ненужных программ в десятке вагон.
Kwisatz
А вы видели как на ходу винда вытягивает обновления для драйверов видеокарты и в процессе меняет два монитора местами? Один раз я выцарапывал уи с телевизора, вторая раз эта гадина вообще не смогла отрисовать уи изза частоты в 120гц (о как это весело было).
А как вам невозможность уменьшить громкость не дефолтного звукового устройства?
Или в процессе очень важной работы вам понадобилось перезагрузить машину, а винда задумалась на час.
PsyHaSTe
Не видел. На двух разных компах пользуюсь 2 мониторами (в одном случае — вообще ноут, где родной монитор выключен). Всё, что замечал — после установки через пару минут винда может мигнуть экраном, доустанавливая драйвер. Хотя верю, что такое может произойти.
Хм, не знаю, я обычно уменьшаю громкость текущего. То есть включил наушники — регулирую наушники, зачем мне что-то другое? Через 2 устройства одновременно слушать как-то странно, мне кажется.
Видел много сешных роликов в интернете на эту тему, но у меня почему-то ни разу не было. Ставлю себе активные часы с 10 до 20 и всё, в это время точно ничего не перезагрузится.
Kwisatz
У меня телек вторым.
А я и не говорю что само, но будто вам никогда не требуется)
PsyHaSTe
Говорю, на видео с конференций где у докладчика винда решила обновы поставить я видел, действительно бред. Но меня бог миловал. Мне трудно сказать, надуманная ли проблема или просто мне повезло.
Ogra
Телевизор для одного члена семьи, наушники с монитором для другого. У нас дома каждый вечер так.
Mingun
В таких случаях (если игра закрывает весь экран и диспетчер задач не виден) помогает его открытие не по комбинации Ctrl+Shift+Esc, а Ctrl+Alt+Delete -> «Запустить диспетчер задач». Это если у него в параметрах не стоит «Поверх всех окон». Если же стоит, проблем обычно не бывает.
PsyHaSTe
Все равно игра рисуется поверх. После ctrl+alt+delete действительно появляется окно логина с выбором вариантов, но после тыка на «диспетчер задач» он открывается под игрой. Это если галка не стоит. Если стоит — то проблем нет, но она в 99 случаях из 100 просто бесит.
sumanai
Теоретически должно помочь Alt > v Enter.
Mingun
А Alt-Табом после этого переключиться можно? Просто иногда он может открываться ниже игры, но он открывается и на него можно переключиться, в отличие от варианта с простым Ctrl+Shift+Esc, когда комбинация (судя по всему) даже до системы не доходит.
sumanai
ctrl+alt+delete ничем нельзя перехватить, в отличии от других комбинаций.
Am0ralist
san-smith
Справедливости ради — некоторое давление всё же присутствует. Например, отказ от поддержки старых версий windows, по сути, вынуждает переходить на ту же десятку. Понятно дело, нельзя во всём винить мелкомягких — у них свои резоны, но мне, как пользователю, такая политика не очень нравится.
Am0ralist
И вообще, давайте раскритикуем, что они 98 не поддерживают до сих пор? Ну всё же, границы поддержки должны же быть, причем вменяемые? Или разок деньги получили — теперь сто лет поддерживайте?
san-smith
Я специально уточнил, что нельзя во всём винить MS/Google/%company_name%. Естественно, нельзя требовать «столетней поддержки». Тем более, что, как я уже сказал, у них свои резоны — никто и не обещал этой поддержки, да и рынок требует.
И всё ж таки, как пользователь, я имею право возмущаться, что в новой версии windows/android/skype/etc всё не так хорошо, как в моей любимой.
DrPass
Сам по себе «отказ от поддержки» ничего плохого не несёт. Ну не поддерживают, и фиг с ним. Никто же не возмущается, что у чайника гарантия три года, а не сто лет?
Плохо здесь то, что во многих случаях новое программное обеспечение перестаёт быть совместимым со старыми версиями ОС, без технической необходимости в этом. Просто ради маркетинга. Т.е. не потому, что разработчики там какой-то новый API заюзали, а просто потому, что вставили строчку if (OSVersion < LowestSupported) { SayByeBye(); }
Alexeyslav
В основном это происходит не по этой причине, а по причине развития технологий и накопления отрицательного опыта. Сейчас смотришь на 98-ю винду… какой бы она хорошей тогда не была и слава богу что её похоронили. Слишком много практических недостатков, она ещё тогда достигла своего потолка и запуск нескольких приложений уже мог приводить к нехватке внутренних ресурсов(вспомните ресурсы USR и GDI), ограниченность которых жестко прошита в архитектуре операционки. Тут уже хочешь развиваться — надо ломать совместимость.
DrPass
Win 98 — это слишком маржинальный пример. Там архитектурная пропасть между линейкой NT и 9х. Но какие, например, есть технические, а не маркетинговые причины не выпускать сейчас виндовый софт, совместимый вниз до WinXP, а не до Win7 (по крайней мере, для 99% такого софта?).
0xd34df00d
Чувак, делавший виндовый платформенный слой получения событий о питании в одном моём опенсорс-проекте, говорит, что нужные API появились только в 7, что ли.
Ну, как конкретный пример.
Alexeyslav
А до этого, нужное событие в принципе можно было бы получить но написав уже собственную обертку которая активировалась бы при запуске приложения под соответствующей операционкой. Это лишь дополнительная работа, дополнительный довесок кода в приложение вместо использования готового API.
0xd34df00d
Ну оно там всё равно отдельным плагином, так что плагин просто не грузится, и всё.
Но это усложняет систему сборки (потому что теперь надо собирать всё с одними флагами, а этот конкретный модуль — с другими, и проверить, что это ничего не ломает), усложняет распространение, усложняет логику загрузчика модулей, и так далее. И ради чего?
Коммерческие приложения при этом на этот вопрос ответить могут в терминах соотношения между долей пользователей WinXP среди потенциальной аудитории и зарплаты программистов и тестировщиков, а если я делаю некоммерческий опенсорс, то получается «это технически не очень интересная задача, так что чо-т лень».
Alexeyslav
Так именно в этом проблема. Отбросили какашку наплевав на совместимость.
Полагаю, что обширный перечень накопившихся костылей препятствует желанию поддерживать софт в старых операционках вроде XP. Во первых, это поддержка старых интерфейсов API, которые могут нести с собой нехилые уязвимости для системы — вспомните SMB v1, v2 и нынешнее v3… некоторые концепции были переосмыслены и некоторый функционал закрыт для прямого доступа в новых операционках, только через новый API другим способом и т.д. ради обеспечения безопасности операционной системы и т.п. вернуть прежний доступ будет означать открыть давно залатаную уязвимость системы. Конечно, часть подобного API эмулируется через различные ухищрения но не в полной мере и с дырами в абстракциях — всякие там режимы совместимости, прозрачное перенаправление доступа в системную папку на пользовательский профиль и т.д. всё это вроде бы работает, но не так хорошо как хотелось бы.
VolCh
Банально как проверить эту совместимость, если легально приобрести XP мягко говоря не просто.
khim
Для проверки вам не нужна полноценная XP. Достаточно запустить образ XP в Hyper-V
sumanai
Вряд ли кто так делает. А вот версия подсистемы в PE заголовке часто мешает просто взять и запустить софт на старой ОС, хотя по API полная совместимость. Или линковка со системной msvcrt вместо версии конкретной студии, лишь бы не ставить пакет Visual C++ для Visual Studio 20хх.
hermes-jr
sumanai
А, ну извиняюсь, не имел дела с продукцией этой компании, кроме разве что одного доисторического айфона.
SuperNovaWS
Точно так же делает Microsoft
support.microsoft.com/en-us/help/4012982/the-processor-is-not-supported-together-with-the-windows-version-that
8-ка на 7+ поколении процессоров Интел не получает поддержку из-за наличии буквально такой функции. Если пропатчить пару функций в памяти — все начинает опять работать.
SuperNovaWS
Внезапный, не волнуйтесь. Вы знаете, например, что с определенного момента на 8-ке нельзя получить обновлений, если она стоит на машине с Intel 7-го поколения? Просто нельзя — и всё.
support.microsoft.com/en-us/help/4012982/the-processor-is-not-supported-together-with-the-windows-version-that
Ставьте 10ку — и не волнует.
Правда… Есть один маленький патчик. Он подменяет пару вызовов библиотечных функций. После чего пропадает голубое окошко и апдейты становятся без дальнейших танцев с бубнами!
И это называется «вменяемые границы поддержки»? По моему это просто — наипалово типичное.
PsyHaSTe
Они таким образом просто не поддерживают старые ОС. Эти патчики в 99 случаев из 100 будут работать, а в одном будут ломаться. Если бы они официально поддерживали восьмерку, их саппорт бы завалили жалобами. А так, сам пропатчил — сам и разбирайся, юникс вей так сказать. Не скажу, хорошо это или плохо, но вполне логично.
sumanai
Интересно, с чего бы им ломаться? Ограничение исключительно искусственное.
PsyHaSTe
Если вы майкрософт, и у вас есть баг один на миллион, то у вас сотни недовольных клиентов, у которых всё сломалось. Ломаться им с того, что их никто не тестировал на этих ОСях, и никто не знает, достаточно ли разницы между 7 8 и 10 чтобы разломать этот патч.
sumanai
Ну да, пусть будут недовольны 999900 клиентов из-за отсутствия обновлений и требований поставить новую ОС.
Druu
Им же, как выше указали, никто не мешает обновление поставить, пусть и с костылем. Просто никто не гарантирует что все будет хорошо.
sumanai
Этот костыль нарушает лицензионное соглашение, если что. И да, всё будет нормально работать, несовместимость с новыми процессорами — это блажь.
PsyHaSTe
Каким образом он что-то нарушает?
sumanai
Патчингом файлов? Я в упор не знаю, что именно там делается, но уверен, что это нарушает лицензионное соглашение.
PsyHaSTe
Майкрософт не может нарушать свое лицензионное соглашение, потому что там наверняка написанно «можем делать что угодно, и вообще вы не купили, а арендовали на бессрочной основе».
sumanai
Вы меня не поняли. Нарушают те, кто ставит патч, обходящий запрет на установку обновлений.
PsyHaSTe
Это да, поэтому если у кого-то что-то ломается, майкрософт вместо «ой, чего у вас случилось, сию секунду исправим» говорит «а чей-та вы соглашение нарушаете?». И им не надо это чинить.
Druu
Ну все правильно, что не так-то? Костыль же не поддерживается.
SuperNovaWS
Так пусть бы и не ставили именно те апдейты, которые ломают систему. Но полностью отключать часть пользователей от апдейтов из-за того, что они купили новые компы — это жлобство высшей пробы! При том — это в системе, которая официально поддерживается и для которой не наступил EoL!
Типа, в микрософте такие — «А нам лень писать патчи для новых ядер — идите нахрен! И пофиг.»
Я даже не знаю, что делать, когда восьмёрку перестанут поддерживать. Видимо — прийдётся жевать кактус линукса, ибо 10ка — это за гранью приемлемого для меня.
PsyHaSTe
Ну ваш выбор, голосуйте рублем. Так и надо.
Fracta1L
Оперативка несовместима с ОС? Вот уж не думал, что на хабре можно встретить людей аля герои бородатых анекдотов «ваш коврик для мыши не подходит к системному блоку»
Впрочем, дизайн у десятки действительно не очень, и не с точки зрения оформления, а с точки зрения эргономики. Проводник это вообще какая-то свалка.
Alexeyslav
До этого недалеко. Уже есть процессор не совместимый со старыми ОС…
SuperNovaWS
Несколько ПОКОЛЕНИЙ от РАЗНЫХ вендоров, вообще-то
support.microsoft.com/en-us/help/4012982/the-processor-is-not-supported-together-with-the-windows-version-that
popov654
Не требуют, а навязали. И даже многих обновляли принудительно. И XP заранее объявили end of life, хотя могли поддерживать ещё года 2-3 как минимум, не было там особых проблем. Новые протоколы шифрования бы завезли, aac и h264 кодеки, DirectWrite, и IE9 с ним вместе — и была бы сказка. Вы вот спросите пользователей честно, многие ли довольны новым интерфейсом десятки. Мне кажется, результаты вас удивят.
А куда спешить-то? Чем круче проект, тем больше времени можно потратить на разработку. Но даже сайт-визитку чтобы сделать прилично, нужно потратить 2-3 дня в идеале. И это не так уж и много. В веб-студии, кстати, если несколько человек будут работать параллельно, получится быстрее.
DMGarikk
Навязали… я отлично помню разговоры в 01-04 годах что MS навязывает тормознутую и обвешенную рюшечками XP, в то время как под 98 реально все работало быстрее, и w2k без лишних рюшечек стабильнее… и только в SP2 и с подешевевшей памятью стало реально в ней жить
==
все идет все изменяется, а придирки старые
khim
SuperNovaWS
Навязывание установки Windows 10 — уже забыли?
khim
Сейчас, впрочем, запилили моднючий интерфейс c «материальным стилем», так что всё стало жутко тормозить… но может теперь этим начнут пользоваться?
YemSalat
У игр из 90х был полный или почти полный доступ к ресурсам компа (той же видюхе) Браузеры же — это «песочницы», тут у вас банально не получится все так жe оптимизировать.
И че все так прицепились к «красивым» пикселям?
Гуглокарты со стритвью — это красивые пиксели? Запусите на свой любимой 98ой винде тогда в 3ем фаерфоксе.
srhbdv
А вы готовы платить в разы больше за более качественный софт, чем сейчас (если вы вообще за него сейчас платите)?
lokkiuni
0*500=0, так что конечно готов))))
staticlab
Если следовать Секрету айсберга, то какой-нибудь арабский шейх всё-таки может купить автомобиль, потребляющий условные 1000 л / 100 км, если увидит, как этот автомобиль разгоняется до сотни за 2 секунды, услышит, как он при этом рычит, и при этом в нём опять же видна вся эта мощь ;)
khim
Ну дык. Вы изобрели концепцию суперкара, да.
Teemon
Про это в статье и пишется, что автомобили это могут сделать хотя бы на уровне суперкаров. А программы как-то не особо. Покажите ворд для арабских шейхов, работающий в 100 раз быстрее майкрософтовского?))
Другой вопрос почему такого софта нет?
khim
И да — он вполне работает:
Собственно это основная беда софта: суперкар выпускать выгодно, так как в нём может не быть хитрых подставок для кофе — но скорость окупит всё и его купят.
А быстрый софт выпускать невыгодно: разработка быстрого софта со всеми-всеми-всеми фичами, которые есть в той куче… добра, которое сейчас стоит на полках — невозможна (пока вы будете его разрабатывать выйдут ещё версии с ещё большим количеством фич), а с ограниченным — не нужно, так как старые-то версии не протухают!
Есть довольно большое количество софта, маленького и шустрого (тот же FAR) — но это всё некоммерческие проекты. Ибо заработать на этом нельзя!
SuperNovaWS
И что вы в нём будете открывать, кроме вашего институтского диплома?
khim
Вы не поверите, но, в общем, всё, что угодно. Поставьте Compatibility Pack — и вперёд.
Да, накладки возможны — ну так они и в рамках одной версии возможны и указывают, скоре на то, что OOXML — плохой стандарт. Но да, это стандарт и да — он поддерживается.
gohan
Сайт, который теряет данные? Хаха. Сайт, который пойман на воровстве данных и передаче их левым людям, до сих пор наверное топ1 по популярности в мире, если не брать поисковые сайты.
Люди — идиоты, вот и вся тайна. Есть только очень малый процент людей, которые не совсем идиоты, но и то зачастую лишь в какой-то ограниченной очень маленькой области своей компетенции.
Fracta1L
Идиоты это те, что не разделяют ваших ценностей? XDD
muon
SUA
а кроссовер за 2 тонны вместо городского компакта для покатушек на работу вполне. Разница не настолько впечатляет (всего лишь в 3 раза), смысл тот же
sumanai
В России это вынужденная необходимость, особенно зимой, когда дороги превращаются в направления. И да, не все живут в Москве.
SUA
Таки нет. Даже с учетом «не Москвы» (просто в ней нагляднее проявляется из-за избытка денег у части жителей).
И написал я именно
поскольку в случае когда вместо дорог уже направления — нужен полноценный внедорожник а не кроссовер
sumanai
Проблемы обычно зимой, и только со снегом, где полный привод, пусть и подключаемый только при пробуксовке, спасает, а владельцы переднеприводных машин бегают с лопатой и откапываются вручную.
novice2001
Смысл не совсем тот же. Кроме повышенной проходимости 2-тонный кроссовер еще и сильно безопаснее городского компакта. Учитывая количество идиотов на дорогах и мягкость наказания даже за смертельные ДТП — это совершенно нелишнее.
И полноценный внедорожник нужен в основном только для тех, кто по направлениям вместо дорог ездит постоянно. Для периодической езды по засыпанным снегом улицам — очень годный компромисс.
darthmaul
Я так понимаю, минусующих полностью устраивает наше время, в котором веб страницы весят по 50 мб, вся электроника требует замены раз в пятилетку просто ради поддержания функционала, когда автомобили разваливаются сразу после гарантии, а дома делают из прессованой бумаги? Увы, рынок хочет лишь мусора, поярче да подешевле, это научно доказаный факт. Оригинал публикации
VolCh
nodejs имеет полное право быть добавлена к PHP/Python. Ничем принципиально от них не отличается.
walti
А придется.
Физика круче психологии.
В этом можно убедиться,
убедив себя, что человек может летать и шагнув за балконпосмотрев на технологии литографии.Предел кремния где-то 3нм и 5-6ГГц для десктопа.
Но раньше все упрется в тепло — навскидку, 200 Ватт для десктопа и ватт 5 для смартфона.
Больше —
ожоги конечностейБоженька не велел.demon416nds
исключительно если делать чипы двумерными
технологии уже сейчас (на примере МЭМС) позволяют делать трехмерные микросхемы с принудительным распределением тепла жидким теплоносителем.
у смартфонов же ограничение не столько по теплу сколько по автономности
банально батарея не тянет более мощные процессоры. Рассеять же несколько десятков ватт не настолько большая проблема.
Да и частоты больше зависят от топологии чем от техпроцесса
sumanai
Уже сейчас телефоны под полной нагрузкой не комфортно держать. А несколько десятков ватт для своего рассеивания потребуют рифления задней крышки как минимум, а то и активное охлаждение.
demon416nds
естественно активное охлаждение нужно
но его уже батарея не потянет как я писал
а рифление не поможет тем более большинство пользуется чехлами которые это рифление закроют целиком
sumanai
Я не хочу телефон с вентилятором.
tvr
У вас будет выбор между
вентиляторомвоздушным инасосомжидкостным охлаждением.«Вот видите — мы предлагаем вам выбор из двух неприемлемых для вас вариантов, а это значит — мы заботимся о вас!» ©
ValdikSS
Теплотрубки уже начали вставлять, в Sony Xperia Z2 2014 года, например.
tvr
Да много уже куда на самом деле.
Всякие околофлагманские игровые Asus, Xiaomi. Скоро и в бюджетный сегмент лепить начнут.
sumanai
Систему ЖО тоже нужно охлаждать, объёмы рассеиваетелей и вентиляторы там зачастую больше башенных кулеров.
Irgen
А они уже выпускаются
demon416nds
Чушь.
Стоимость разработки в пересчёте на устройво копеечная.
Веб-сайты по моему личному опыту прекрасно пишутся вообще без фреймворков. И таки да написанные мной spa летают даже на древних нетбуках. Чего не скажешь о любом сайте на современных фреймворках
Tantacula
Такого рода высказывания хорошо бы подкреплять примерами проектов, чтобы можно было оценить сложность проекта.
demon416nds
проекты в основном закрытые
ну вот вам скриншот написанной с нуля админки
ibb.co/bVTANK
96кб не минифицированного javascripta
148кб общий вес с серверной частью
YemSalat
На вид конечно не дизайнерская работа, но оценить качество вашего кода по скриншоту — увольте.
demon416nds
зачем админке «дизайн»???
как нынче говорят юзабилити нужно,
функционал нужен
а любоваться дизайном это не к админке
примеры того как дизайн убивает удобство в админке большинства современных роутеров.
по качеству же размеры кода я написал, функционал по скриншоту прикинуть +- лапоть можно, а пускать вас в закрытую часть сайта чтобы вы убедились что это летает или открывать исходники естественно никто не будет
YemSalat
Ну у вас типичный случай разработчика одиночки.
Когда вы пишите код для своего проекта в 1-2 файлах и вы все помните — где что лежит, что как работает и т.д.
Но попробуйте разобраться в чужом таком 'pet' проекте — сразу поймете в чем проблема. К тому же качество кода из примера ниже явно хромает.
ПС
Дизайн не обязательно должен быть «крутым», достаточно быть нe вырвиглазным, а для этого хватает простейшего цсс.
popov654
Я думаю, нет особой проблемы разобраться в чужом проекте, если можешь разобраться в своём — по крайней мере если вы и автор того проекта мыслите не сильно по-разному.
YemSalat
В реальных проектах под нагрузкой у вас банально не будет времени долго врубаться в чужой код и проверять что ваш ничего не сломал.
srhbdv
Так вот же https://radiokot.ru
https://radiokot.ru/templates/radiokot_classic/scr1.js
YemSalat
Если это правда так, то тут гордится «96кб не минифицированного javascriptа» думаю особо не стоит :)
Вот этот момент порадовал:
demon416nds
этот скрипт написали до меня как и большую часть сайта к слову))
хотя пару незначительных правок в нем таки делал.
сейчас точно не скажешь
но человек семь до меня точно в коде отметились
PsyHaSTe
То «сайты прекрасно пишутся», то «Да там до меня 7 человек было, вот эту грязь вообще не я писал». Вы уж определитесь :)
demon416nds
вроде понятно все писал
но всегда найдутся желающие придраться
на данном сайте на данный момент с нуля мной написана только админка ибо старая безбожно тормозила. Все остальное планируется к замене но еще не заменено. Есть и другие сайты написанные полностью мной но они «для внутреннего пользования» и посторонние дальше запроса пароля ничего не увидят
PsyHaSTe
Если на пример "сайта без современных фреймворков" не взглянуть без слез, то это очко в пользу этих самых современных фреймворков, вы же понимаете?
demon416nds
бедняжко контуженный материальным дизайном
вот тебе пример современных фреймворков
вот где глаза кровоточить начинают и шаринган пробуждается
ibb.co/hSwOsK
popov654
Просто у человека нет знакомого дизайнера, который сделал бы красивый и аккуратный UI. Это можно простить. Из меня тоже дизайнер не очень (хотя мне тоже дизайн со скриншота выше кажется уж слишком аляповатым).
В целом я согласен, при наличии хорошего дизайна, прямых рук, и понимания, что ты делаешь и зачем — реально написать хороший, быстрый и надёжный код без использования фреймворков вообще. Мой скромный опыт в 2-3 проектах это подтверждает :)
PsyHaSTe
Не пользоваться фреймворкаи это как не пользоваться IDE, не пользоваться средствами ОС, не пользоваться драйверами, а пытаться всё-всё-всё запихнуть в одно приложение. Есть хорошие принцицы SRP и DRY, которые дико нарушаются таким подходом.
Grox
Так вопросы дизайна и решаются дополнительными библиотеками шаблонов. Bootstrap или целые модули админок. Но да, они часто тащат jquery. Но его можно не использовать.
fukkit
Крысы весело разбегаются за границы экрана, появляется горизонтальный скролл.
Неудачно человек выступил)
DelphiCowboy
Только вот при устройстве на работу в требованиях для Веба, по причине КАРГО-культа, маячат требования знать очередной новомодный фреймворк.
GrigoryPerepechko
По причине нежелания полностью завязаться на одного человека. Фреймворки хоть и дают безумный оверход, но позволяют в коде оставить по большей части только доменную логику. А в ней новым людям проще разобраться чем в тонких архитектурных абстракциях
popov654
Поэтому гораздо проще фриланс)
yarric
В 90-х что-то не приходилось платить 50к за Windows 95, хотя зоопарк устройств был тот ещё: и дискеты, и сидюки, и диски увеличенной ёмкости разных форматов, далее — пяток производителей «графических ускорителей», пара производителей звуковых карт (что это?) и тд
Frankenstine
Однако, 95-я винда стоила таки заметно дороже «десятки»: 210 баксов за коробку, против примерно 100 (и ещё можно учесть инфляцию).
SergeyMax
Но ведь Pro версия десятки как раз стоит около 200 долларов.
Frankenstine
95-я не тянят на прошку ;) На хоум лишь.
DrPass
В 1995-м очень даже тянула :) В офисах найти Windows NT было ещё нереально, у всех 95 или 3.11 FWG
Frankenstine
Вообще-то, в 95-м Windows NT 3.1 (первая с поддержкой NTFS) уже была 2 года в продаже и даже получила к этому времени третий сервис-пак. Хотя, конечно, расцвет линейки начался с Windows NT 4.0 в 1996-м. Но поскольку 95-я вышла через два года после NT 3.1, ваше утверждение что в офисах была 95-я в 95-м, а NT 3.1/3.5 не было, выглядит голословно и подозрительно нелепо. Более того, википедия фактически говорит что вы не правы:
И это несмотря на высокие аппаратные требования на тот момент (recommended system requirements of a 486 processor with 16 megabytes of memory), неподдержку офисных пакетов (и малое число программ вообще) и высокую цену: the workstation version for $495, and the server version for $1,495. Заметьте, что сейчас Windows Server 2016 Standard стоит немного дешевле в числовом значении (без учёта инфляции), а Windows 10 Pro for Workstations дешевле Windows NT 3.1 for Workstations почти в два раза. Причём вначале Майкрософт заявлял что цена на сервер будет такой лишь пол года, а потом повысится до $2,995, но так и не была повышена (разработка, проведённая силами 250 программеров, стоила 150 мегабаксов, т.е. окупилась лишь через год, когда подоспела NT 3.5).
Конечно, в мелких оффисах до выхода NT 4.0 (и соответствующего железа) в 1996-м было вероятнее встретить 95-ю, но в крупных — очень сомнительно из-за низкой устойчивости. В сети с хотя бы сотней компов 95-я падала наверное на одном из компов каждые пять минут :)
При этом надо признать, 95-я имела отличный коммерческий успех, продавшись миллионом экземпляров в первые 4 дня после релиза.
Жаль, в вики нет данных по продажам NT 4.0.
khim
Или на другую статью посмотрите о Windows 95:
Действительно некоторое время после выхода Windows 95 она оставала от Windows NT 3.1. Примерно неделю. К концу года количество установок и сравнивать было нельзя.
В 1995м можно было чаще встретить Windows 3.1, но никак не Windows NT 3.1
Ну так Windows 3.11 была ещё глюкавее, а Windows NT была экзотикой, которую никто не видел. Так что приходилось мириться, да…
Frankenstine
Если вы говорите таки не про персоналочки, а про офисы, то не забывайте, что до появления на рынке линейки Windows NT, этот рынок был на 90% «под пятой» Novell NetWare, к 95-му году уже пару лет как имевшей в активе NetWare 4 с NetWare Directory Services, аналог которого у Майкрософта (Active Directory) появился лишь через ещё пять лет. Так что если уж про офисы, причём крупные, то в 95-м можно было таки скорее увидеть эту самую нетварь, чем мастдай.
Вы просто молоды видимо, а я 95-й помню, потому что как раз школу заканчивал.
DrPass
Это абсолютно верно, в офисах *крупных компаний* тех лет сетевой ОС была чаще всего как раз нетварь, реже всякие *никсы. И не только до появления линейки Windows NT, а ещё долгое время после её появления. Перелом был где-то в 1997-м году. Но есть момент, который вы упустили — хороший и очень популярный клиент нетвари как раз был встроен в Windows 95 ;)
Frankenstine
Microsoft Client for NetWare предоставлял лишь доступ к файлам и к принтерам (без авторизации в NDS) в сети нетвари. Ничего другого, например авторизации в NDS и доступ к другим сервисам, он не предоставлял. Так что с «про» ролью мастдай не справлялся, как минимум до покупки пакета «плюс» (содержавшего интернет эксплорер 1.0 и планировщик задач) и новеловского Client 32. Таким образом, сравнение 95-й винды с 10-й хоум эдишн полностью оправданно.
mkshma
Не придется. Действительно технически сложных сайтов можно пересчитать по пальцам пары рук. Бэкенд если не элементарнейший, то довольно прост. Фронтенд вообще отдельная история. Его представители уже не первый год всеми правдами и неправдами раздувают стек технологий, лишь бы им платили хотя бы примерно сопоставимые деньги с работниками бэкенда. На бэкенде та же фигня: понапридумывали всякого мусора вроде микросервисов, а потом генерируют еще больше мусора вроде Докера и Кубернитис, чтобы героически решать самими же созданные проблемы. И даже не понятно с какой стороны к этой проблеме подступаться.
Можете даже смеха ради почитать вот этот увлекательнейший тред news.ycombinator.com/item?id=17915560 — половина отметившихся искренне недоумевает как это такой простейший сайт, да без фреймворков и прочего мусора запилили. Ведь должно быть все по гайдлайнам, а у них, чертей эдаких, все в одном JS файле лежит. Это все, что нужно знать про современный фронтенд.
staticlab
Насчёт простейшего согласен. А что делать в случае более сложных проектов?
YemSalat
Вы взяли сайт где люди под статьями оставляют коменты. Там думаю действительно можно ограничится одним js файликом. (Причем в первом же комменте там приводится пример того почему это не масштабируется)
Напишите фронт к какому-нибудь гмэйлу в одном файле, еще и командой из 20ти человек, раз у вас так от фронтов бомбит.
muon
YemSalat
Ээ… Да?
SuperNovaWS
Э… Чем?!
novice2001
Зато вы берете уникальные сверхпопулярные и высоконагруженные проекты.
Только вот 99,999% остальных сайтов в аналогичном стеке не нуждаются, но используют, зачастую еще и очень криво. В результате все безбожно тормозит.
mkshma
Это же невообразимо сложно подгрузить json'ку с заголовками с сервака и отобразить их построчно, припорошить кучей иконок, а по нажатию на заголовок уже подгрузить само письмо. Это элементарнейший веб-интерфейс, в котором ничего не может работать медленно. У Яндекса работает быстро, у Мыла, прости господи, работает быстро, навороченный и кастомизируемый интерфейс ProtonMail работает быстро. И вот ирония, у гугла есть HTML версия, которая, ну вы поняли — работает быстро. Так как же вот эта элементарщина в основной версии у них умудряется лагать сильнее, чем их же убогие карты? А все просто: огромная команда разработчиков гугла просто оправдывает свое существование. Сначала им, видите ли, не понравился простой и функциональный дизайн, поэтому напрягли команду дармоедов испортить интерфейс, потом напрягли пару сотен дармоедов испортить фронт, потратили на это год, а может два и теперь примерно столько же будут героически превозмогать. А потом новый фреймворк, над
дармоедамидизайнерами снова нависнет угроза увольнения и цикл повторится.Та же фигня у них с картами. Наступил коммунизм и мы теперь можем рендерить страницы на RTX2080 с рейтрейсингом, поэтому почему бы нам не воткнуть кучу 3D в КАРТЫ! А, нет, коммунизм не наступил и люди пытаются пользоваться этим на Intel HD4000 с 4 гигами оперативы и, о неожиданность, оно лагает.
Веб стал слишком переусложнен. Где достаточно открыть новую вкладку — мы начнем рендерить в той же. Динамическая подгрузка вместо пагинации, раздутый дизайн, куча анимаций, хотя они нафиг не упали — зачем все это? Это не имеет никакой полезной нагрузки, так зачем все это запихивать на страницу? А потому что иначе мы уже завтра увидим сокращение штата в каждой крупной конторе процентов эдак на 30. Но работа есть работа, свое существование надо оправдывать.
Whuthering
Микросервисы все-таки задумывались как вполне рабочее и надежное решение пары вполне конкретных проблем. И без них было бы гораздо хуже. А называть «ненужным мусором» все, что вы не понимаете, звучит немного глупо:)
VolCh
Скорее как средство замены одной проблемы на другую и в целом с понижением формальной надежности, но повышением в некоторых случаях практической, когда падение маловажной или просто ненужной сейчас части системы приводит лишь к деградации, но не полному отказу.
Alexmaru
а тут вы неправы. И у эппла, и у гугла доходность унеслась в стратосферу, но штат людей от это и качественно, и количественно меняется слабо.
Berkof
Почитайте труды доктора Демминга… Это такой американский учёный, который пытался всем вокруг схожие идеи толкать, что мол хватит лепить абы как, давайте всё посчитаем аккуратно и выйдет, что можно сделать лучше и даже ещё и сэкономить…
Я занимаюсь разработкой ПО уже много лет и вижу (на живых примерах, т.к. сменил с десяток компаний уже), что может оказаться дешевле писать качественные программы, чем некачественные… и конечно никто не хочет делать себе плохо (ну может эмо, но мы не про них), просто люди где-то поленились (+1 контринтуитивный интерфейс), где-то поторопились (+1 порядок тормознутости программы, где человек не разобрался как в том кривом интерфейсе обновить данные и просто переполучил заново всю пачку), недальновидность (следующий разраб не стал пытаться улучшить что есть, а просто разделил это на воркеров в микросервисах и развесил на кластер, чтобы выдержать возросшую нагрузку)… Но страшно даже не это, страшно то, что работая с хорошей программой хороший программист сразу понимает что и почему тут там сделано и куда именно ему нужно внести правки, чтобы добавить нужный функционал. А с плохой так не прокатывает и ты либо тратишь гору времени на изучение всех хитросплетений костылей, либо просто втыкаешь ещё парочку (первый — чтобы сделать функционал, второй — чтобы подпереть то, что отвалилось из-за первого, который не на месте)… В итоге ты тратишь на задачу много времени, начальство недовольно и ты решаешь, что можно и без тестов нормальных, абы как, вроде работает… А в следующий раз тебе уже и страшно выдёргивать какие-то костыли, даже если время есть, потому что тестов то нету и вдруг ты не все хитрости понял и что-то сломаешь?
Ну а у Демминга ещё ПО не было, он обсуждал, что дешевле заказать более дорогую доставку, но чтобы товар доставили ровно в 9:05 к воротам цеха, чтобы рабочие занесли материал и сразу пошли его обрабатывать, без склада, кладовщика и перетаскиваний между помещениями. А дальше он писал и вовсе чудестные вещи, что произвести качественный товар даже дешевле — если покупатель видит, что у вас товар лучше, то он и брать будет у вас, т.е. в долгосрочной перспективе реклама почти не нужна; если рабочий будет видеть, что его товары лучше всех — он будет испытывать гордость за свою работу, а не стыд — это мотивация не увольняться; если будет меньше брака — будет меньше затрат на доделку на выходном контроле и меньше возвратов от клиента и т.д.
PsyHaSTe
У меня на прошлой работе так было. Только там было еще веселее — выдернутые костыли требовали вернуть обратно, ибо "вдруг что сломается", а в качестве верного решения предлагалось закостылить вот этот конкретный кейс из джиры.
Мой любимый случай был когда мне упала задача на дыры в API, я нашел больше сотни дыр, которые позволяли одним пользователям управлять аккаунтами/данными/… других. Подумал немного, сделал один аутентифицирующий фильтр, который закрывал разом все возможные дыры, и отправил на ревью. Ревью оно не прошло — "слишком много изменений, ты же всю платформу затронул, кто это тстировать будет?!?!". Итоге — решение не принято, все эти дыры так и висят до сих пор, насколько я могу судить.
VolCh
«Кто это тестировать будет» ещё нормально по сравнению с «я не знаю как это тестировать»
senglory
Что, в общем, правильно. Т.к. с автора изменений и надо в первую очередь спрашивать план тестирования.
Druu
Это с чего бы это вдруг?
Здесь же речь не о новом функционале, а о том, что не должно сломаться то, что и так работало — с-но, уже должны иметься тесты, которые проходит текущая реализация. И добавлять к ним ничего не надо.
PsyHaSTe
Нужно проверить каждую АПИ по двум сценариям — правильный запрос (200 ответ) и неправильный запрос (должен зарубиться фильтром). Проверили — запушили, дыры закрылись, профит.
VolCh
Тесты, показывающие ожидаемые изменения предоставлены были. Реплика констатировала, что никто не знает как провести регресс-тест, что изменения не сломали где-то что-то в сильно связанной архитектуре. Автор небольших изменений должен полный план регресса писать?
LLarean
Задавался тем же вопросом, что и автор, но мне кажется, что производительность технологий значительно обгоняет скорость разработки софта.
Мне проще работать на unity, которая даст доступ к необходимым инструментам и позволит реализовать идеи заказчика, чем конструировать инструмент или подбирать что-то, что будет реализовывать аппаратный потенциал.
denisromanenko
Дело не в том, чтобы писать для каждого куска железа чистый код с нуля.
Тем более что это невозможно.
Дело в том, чтобы не добавлять немного своего дерьма на каждом шаге разработки (компилятор-среда-ядро-система-окружение-фреймворк-ПО) к общей куче дерьма, которое выльется на пользователя.
FadeToBlack
Почему-то вы вместо решения проблемы пытаетесь ее раздуть. Не нужно писать 100500 фреймворков, делающих одно и то же, нужно один раз сделать один нормальный. Так везде. Но люди настолько заплодили все сущностями, что и не хватает времени как следует с ними разобраться. Первый текстовый редактор был написан десятки лет назад, наверняка, он не был быстр. Но проблема осталась — я все еще жду свой компьютер, пока он что-то там сделает, хотя я просто набираю текст.
VolCh
Нельзя сделать один нормальный фреймворк, а если можно было бы, то его сделать частью языка надо было бы. А ещё сделать один нормальный язык и никто не уйдёт обиженным.
FadeToBlack
Очевидно же, что проблема не в том, что нельзя, а в том, что люди не умеют договариваться. А на обиженных воду возят. Я имею ввиду, что нельзя просто так взять и обидеться на хороший язык программирования.
popov654
Кому, посетителю? Заказчик и так платит.
progmal
Можно написать более оптимизированный софт и меньшем количеством разработчиков. «А в реальном мире пользователю важнее получить приложение за 1$ которое будет работать». но будет работать а не вырубать от перезгрузки и нехватки оперативки телевизор или телефон, в котором всего памяти 16г = занято 1г + свободно 300мб.
holy_desman
Вот построим ИИ — программиста, он нам быстренько всё оптимизирует.
dukei
Не, не быстренько, он же будет плохо написан. Сначала ему придется себя оптимизировать. И это займет бесконечное время, так что на ПО у него времени уже не останется.
Akon32
За бесконечное время и (особенно!) бесконечные деньги мы и сами сможем всё оптимизировать.
AstarothAst
Позволю себе процитировать классика:
Hardcoin
Разумеется. Ведь машина на десять литров требует большой штат инженеров для её поддержки, к тому же ценник на неё в десятеро выше.
Alexey2005
Идея для бизнес-модели производителей авто: продавать машину в 100 раз ниже себестоимости, но сделать так, чтобы она могла ездить только на фирменном бензине, который стоит в 100 раз больше обычного.
aknew
Что-то ваша машина сильно некоторые принтеры напоминает по такому описанию
engine9
Сейчас уже и в аккумуляторы фотокамер чипы встраивают.
nikolayv81
springimport
Оглянитесь на рынок консолей.
UrbanRider
+++Выпускают типо эксклюзив. Хотя архитектура сейчас на обеих топ консолях x86 и ничего не мешает порту на PC. Но нет, купите нашу не очень дорогую консоль и заплатите овердофига денег за игру, которую ты пройдешь за 2 дня.
Tsimur_S
если ничего не мешает то почему провалился порт batman arkham city(на самом деле я думаю он не единственный но самый известный)? фризы, падение фпс, тысячи рефандов в стиме что аж пришлось заморозить продажи в стиме по причине проблем с перфомансом. Может это все же не самая простая операция?
UrbanRider
Ну не самая сложная, т.к. архитектура не меняется. Консоли сейчас не мощнее среднестатистического компа. Где-то на уровне среднего игрового ПК.
То что оно там все тормозило опять же отсылает нас к прочтению статьи и тотальному негодованию.
mayorovp
Если код нормальный — то довольно простая. А если у NaN брать младшие 16 бит и что-то с ними делать...
DrPass
Эта аналогия не верна ни в отношении автомобилей, ни в отношении софта.
VBKesha
Как инженеры то да, можем, должны, сделаем. Но решения принимают не инженеры, новые «красивые и удобные» дизайны придумывают и одобряют тоже не инженеры, и сверху спускают планы за сколько что нужно выполнить тоже не инженеры. ИМХО инженеры уже давно исполнительное звено, и просто делают то что от них требуют. Время инженеров осталось в начале 2000х, теперь время менеджеров…
muove
Кто как, по моему опыту большинство раздолбайства в проектах было допущено нами самими а не ВЕЛИКИМИ и УЖАСНЫМИ менеджерами. И время у нас было, и деньги, но мы такие.
ЗЫ совсем не обобщаю, все только про меня самого
Mabusius
Так менеджеры для того и приставлены, чтоб контроливать халтуру. А они не контролируют. Так что все равно менеджеры…
kreatr
кажется местами похоже на стиль Линуса :)
arthi7471
Линус как раз сейчас в отпуске.
dartraiden
Линус, в какой-то мере ответственен за описанное в статье. Ведь в основе Android лежит ядро Linux, а в ядро в каждом релизе включается всё больше и больше всякого. По сути, в ядро готовы принять что угодно, если это не ломает существующие механизмы и есть люди, которые готовые это поддерживать.
khim
А что включается «без вопросов» — так это драйвера… но тут всё просто: если у вас нет соотвествующей железяки — то и от наличия драйвера вам не горячо и не холодно…
Am0ralist
Знаете, я помню, читал вроде как в ядро включили поддержку модульного смартфона от гугла… сразу после того, как проект этого смарфтона был приостановлен.
Был немного удивлен, так сказать.
khim
А я — нет. Там и поддержка каких-то монстров от SGI, которых выпущено было 100 штук была. И всяких исторических компьютеров от IBM и много чего ещё.
Ваша поддержка сколько занимала в памяти в случае отсутствия такого телефона? 100 мегабайт? Или «нисколько»?
Am0ralist
Да я даже не знаю, что в нее включалось, просто вспомнилось к словам «любая фича, которую добавляют в ядро, в первую очередь оценивается на тему: а мы точно получим от этого существенный выигрыш, стоящий усложнения ядра?» и то, что фича по сути как раз вроде никому стала не нужна…
mayorovp
Так и ядро не усложнилось же.
Fracta1L
Вы ещё скажите, что в тормозах Андроида ядро виновато XDD
0xd34df00d
Только там ненужные вещи можно, ну, выключать при сборке.
Laney1
помню, как-то попытался собрать проект на node.js, который последний раз обновлялся года за 3 до этого. Получил огромную кучу нетривиальных ошибок, даже со старой версией ноды, и быстро расстался с этой глупой идеей.
Еще недавно читал про адок с USB Audio в новых смартфонах. Ни черта ни с чем не совместимо, зато отказались от "устаревшего" джека.
Авторам Go все эти годы приходится иметь иметь дело с обиженными экспертами, которым не хватает в языке дженериков, концептов и прочей мути. О том, что введение всего этого раздует спецификацию и сложность языка в несколько раз, эксперты естественно не задумываются. Как и о том, зачем оно вообще нужно.
Автор статьи возможно даже не осознает, насколько он прав.
Suvitruf
Вот у меня наоборот, проекты на ноде многолетней давности собрались на самой последней версии nodejs без единой ошибки.
mkshma
Потому что без этого мутью становится сам код. Либо пиши версию функции под нужный тип каждый раз, либо прокидывай через интерфейс и кастуй… Ну бред же.
Xandrmoro
Даёшь копипасту, ага.
PsyHaSTe
(с)
sand14
Дженериков действительно не хватает (если их в консервативную джаву добавили...), и вроде обсуждается, чтобы добавить их в Go
А вот с остальным вопросы — наверное, действительно не нужно, т.к. идеи и реализации спорные, и будут противоречить основной идее Go как "простого" языка.
DarthVictor
Дженерики и нормальная система типов скорее и продукт ускоряют и код упрощают. Единственное что они увеличивают — порог входа.
PsyHaSTe
Если посмотреть то, как они их сделали — такое ощущение, что лучше бы вообще не делали. Раньше у го была хотя бы ниша «пишу не читая, и оно работает из коробки», а теперь вообще что-то непонятное.
Bonart
Наверное, именно поэтому во второй версии го есть генерики и обработка ошибок.
JekaMas
Судя по draft фич golang, то "раздует" — это 4 новых слова в спеке языка. Вы о чем-то не том...
Laney1
задумывались о том, что последует за этими 4-мя словами?
Дальше продолжать? Кто будет все это делать, Тейлор с Пайком? А как насчет тулинга и прочих популярных библиотек — они что, сами себя перепишут? Или вы хотите повторения истории с переходом на Python 3?
А нафига вообще все это в Go, если есть Java? Как тут правильно сказали, уже давно с дженериками и полным фаршем. Или Rust — вернуть туда указатель Gc, и все дела. Или D — кстати, где он? Или куча других языков со всеми "современными" фичами.
JekaMas
Ваше утверждение было об «экспоненциальном» увеличении спеки. И мой комментарий именно об этом.
Зачем вы переподите дискуссию в область поддержки и развития кода? Я эту тему не затрагивал.
Laney1
затем, что любая спецификация бессмысленна без кода, который ее реализует. А что произойдет с кодом, я кратко пояснил. И именно это я и имел ввиду.
И да, слова "экспоненциальный" я нигде не употреблял, это вы что-то выдумали
JekaMas
поэтому в кавычках.
вы использовали «в несколько раз» — хорошо бы показать, что добавление 4х слов в спеку сделает это «несколько раз». ну или это ваши фантазии.
p.s. еще полезное упражнение попробовать официальный путь generics через генераторы и пожить с поддержкой этого… годик. мнение резко меняется.
0xd34df00d
В С++ не дженерики, в С++ темплейты, тайпчекающиеся после мономорфизации, а не до (и концепты пытаются чинить это). Тайпчекайте до мономорфизации как тайпклассы в хаскеле или трейты в расте, и будет всё хорошо.
VolCh
У экосистем джавы и гоу очень разные подходы. Можно сказать несовместимые.
solver
В целом правильно всё. Но автор передергивает конечно)
А как же Firefox? Они не просто написали движок с нуля. Но даже рахзработали новый более безопасный язык для этого…
tangro
А помните была такая компания Опера, пилила свой движок, гордилась этим. А потом тихо сдалась, призналась, что не тянет. И того всех мощностей человечества на сегодняшний день хватает на 3±1 движка браузера (и то же самое и с ОС, движками БД и т.д.)
Alexeyslav
Не мощностей а денежных средств.
Проблема не в количестве погромистов, а в их качестве. И в качестве архитекторов, которые этим заправляют…
Lexicon
Особая ирония — современные методологии управления.
Начальника нет, ответственность общая, все равны, все компетентны, все архитектора.
Тимлидами становятся номинально, не неся за собой никаких реальных навыков руководства.
Блоги компаний "как мы управляем проектами/как мы делаем собеседования" множатся в геометрической прогрессии, но, похоже и до единства и до здравого смысла еще далеко.
На собеседованиях все такое же ощущение, будто основная обязанность тимлида — владеть Jira, а никак не умирающее желание пихать(порой совершенно бесполезные) задачки превращает собеседования в игру на случайность, в которой не выигрывает никто.
Конечно мир, где все люди равны одинаковы может выглядеть интересно, но ведь это не реальный мир. Задумываешься — "может мне кажется", но когда, скажем, на мобильном хабре(без обиды, хабр, ты исправляешься) неприлично долго висит кнопка "проголосовать", бесполезная для ~95% аудитории сайта, а прокрутка комментариев политических статей позволяет сгибать пальцем металлические пруты, это ощущение резко пропадает.
VolCh
Так кнопка-то не работает: «что-то пошло не так»
ImKremen
А вы хотя бы спецификации W3C возьмите.
Это огромное, сложное и недоработаное ТЗ с большущими легаси проблемами в архитектуре. Самое интересное что в его разработке активно участвует не так и много людей, ибо порог вхождения также огромен.
Полностью переписать с нуля, согласовать и оптимизировать такую систему невероятно сложно.
Kant8
Только сдалась она не потому, что не тянет, а потому что корпорация добра изо всех сил убивала ее по юзерагенту.
nikolayv81
Так причина то на поверхности, другая компания получив некоторую долю начала добавлять расширения на любой чих, без которых ломалось отображение в Opera, а т.к. ресурсы были несопоставимы(причём не только финансовые) то результат очевиден.
Massacre
Заодно убив поддержку нормальных аддонов, ну и раздув использование памяти до «высот» Хрома за счёт той же мультипроцессности.
Crandel
Хватит писать этот бред про память. Сколько я бы вкладок не открывал, никогда больше 3-4 гиг не сжирало( при 32 гигах на моем ноуте) Единственное исключение — вкладки с юдубом, которые постоянно выжирают память. В хроме же за час использования — 6-8 минимум, без юдуба
srhbdv
Хватит писать этот бред. Сколько бы я не пользовался Хромом, никогда памяти больше 2х гигов не сжирается.
VolCh
на 32-bit винде? )
khim
На рабочем компе я YouTube не открываю…
fukkit
Вот это меня удивляет. У себя не могу насчитать более, ну максимум, 20.
Что вы делаете с таким количеством одновременно открытых вкладок? Читать их все одновременно, да и попеременно, вы едва ли способны. Держите на случай веерных отключений Интернета? Связь нестабильная? Закладками не пользуетесь?
Не первый раз вижу такие комментарии от людей, бывает еще пишут 500 вкладок. Теряюсь в догадках.
Просветите? (интересно)
khim
Тематические окна браузера с 5-10 вкладками в каждой. В этом окне я смотрю какой корпус для Raspberry PI купить — тут 5 вкладок. В этом — комментирую статью Хабре, там открытые странички из неё и ссылки, которые ответы на неё пойдут. И так далее.
Когда «работа» закончена — окно закрывается. Arena Allocator. Но некоторые вещи могутделаться неделю или месяц.
fukkit
Мне кажется, что они Вам действительно не нужны все одновременно, но некоторые обстоятельства делают неудобной их загрузку из ссылок по мере необходимости:
1) Неудобный интерфейс закладок
2) Проблема, как раз описанная в статье: сайты стали слишком жирными, ждать их загрузки из Интернета — никаких нервов не хватает.
VolCh
Конечно не нужны, но закладки, хистори и всякие плагины ридитлэте неудобны, плагины навигации по вкладками куда продвинутей. А главное к интерфейсу закладок я и требований чисто для себя не могу сформулировать, чтобы они не превращались во вкладки.
PsyHaSTe
Я лично в процессе написания какой-то фичи. Это могут быть вкладки с поисковыми запросами в гугл, докумкентация, ответы с SO, примера на медиуме, обсуждение подводных камней на реддите… Всё это мне нужно в течение работы, т.к. я могу переключаться между ними, если во время реализации я понял, что мне нужно Х, а я это видел в статье/ответе/… в одном из табов.
popov654
Я так со статьями в Википедии часто делаю :)
Но это жрёт дофига оперативки. Я в этом случае банально пользуюсь историей просмотра, благо, ссылки не успевают спуститься далеко вниз (у меня 3,75 Гб RAM всего доступно, а браузер — хром, и потребляет он немало).
PsyHaSTe
Обойтись можно, но неудобно.
Поэтому я еще в 2014 году купил себе 16 гигов памяти и с тех пор не знаю бед. И SSD тоже. Вложился один раз, теперь серфинг не доставляет мучительных ощущений :)
popov654
Тоже скоро планирую апгрейд) Вообще привычка — сильная штука. Я когда работаю на Win7 x64, у меня гораздо больше лимит (на самом деле, мне не удавалось выбрать больше 75-78 процентов даже на очень ресурсоёмкой операции анализа здорового бинарника в IDA Pro). Стоит, правда, всего 8 гигабайт. Но даже на этой ОС я всё так же открываю не больше 6-7 вкладок. Привык уже, ничего не могу с собой поделать)
С ностальгией теперь вспоминается 2012-ый год, когда я в Opera 11.64 на WinXP мог открыть 50-60 вкладок вк, и оно даже не тормозило. И вылетало только на 70-75 вкладке. С Хромом и обновлённым вк так уж не получается… Хотя хром потенциально может выдержать больше, но с моим объёмом памяти своппинг начинается уже на 30-35 вкладке, а дальше — ужасные тормоза при смене вкладок, листании фотографий и страх, что браузер вот-вот вылетит.
PsyHaSTe
Ну вот с той картиной что я выше показал хром у меня ест 1700 мегабайт.
Что касается 75% памяти — то винда всегда старается всю свободную память занять, ибо пользователю пофиг, 5% или 50% свободно, а вот если что-то будет запрефетчено и открыто на пару секунд быстрее, то ему будет счастье. Поэтому чем больше свободной памяти, тем больше всяких кэшей, и тем быстрее и комфортнее работа.
16 гигов занять сложно, а вот 12 у меня периодически получалось.
Например на прошлой работе мне дали убогий ноут с 8 гигами памяти, где мне приходилось постоянно запускать тяжелые докер-образы и несколько студий (дебажить 2-3 проекта параллельно, микросервисы, чтоб их). Так вот — скрин в студию
У меня бло занято 21 гигабайта(!!) из восьми, остальное лежало в свопе и постоянно шерстило диск, всё дико лагало и не вызывало желания что-то оптимизировать (всё равно не пройдет ревью, и меня спросят за зря списанное время), а вот желание кого-то убить появлялось…
popov654
Ну, если запустить несколько виртуалок (Docker — это же виртуальные машины, если я правильно вас понял), то конечно можно очень быстро выбрать всю память. И IDE довольно много жрут, да.
Кстати, если запустить виртуалку в VMware, и в её настройках указать лимит памяти, превышающий мой размер RAM, и при этом гостевой ОС удастся достичь лимита по физической памяти хостовой ОС, то Win XP просто зависает намертво. Помогает только ребут :)
VolCh
Докер в этом плане не виртуальная машина, а запускатель обычных процессов ОС с особыми флагами. Есть небольшой оверхед на управление, но сами процессы жрут ровно столько же памяти как с дефолтными опциями, а отдельное ядро не запускается.
Massacre
Это, конечно, зависит и от вкладок, и от битности хрома и FF (у 64-битного, почему-то, процесс GPU в разы больше весит), но вот у меня Pale Moon если выжирает гиг, то что-то здесь не так (скорее всего, открылся Facebook). А тут вы 4 гига нормой считаете…
И да, вкладки с видео мало памяти жрать не могут, надо ж его где-то кэшировать…
Crandel
Где я писал, что это норма? Я писал, что это максимум памяти, в который я упирался в фаерфоксе. Сейчас у меня открыт десяток вкладок и кушает все это добро вместе с системой(арч + і3), вайбером, емаксом всего 2100 мб оперативной памяти
simpleadmin
Прямо сейчас:
Crandel
Я же писал, юдуб выжирает очень много памяти, возможно другие сайты себя тоже так ведут, а я ими не пользуюсь, поэтому как я ниже приводил скриншот, огнелис с десятком вкладок вместе с системой занимает 2200.
DarthVictor
У вас какой-то бракованный фаерфокс (ну то есть сайты бракованные, конечно).
Пример: 22 вкладки из них 6 — ютьюб с запущенным видео и одна — эта страница с 1500 тысячами комментариев.
Надо глянуть нет ли у Лисы опции убивать вкладку после роста потребления памяти выше заданного порога.
simpleadmin
Приобретался у официального дилера. По гарантии обратно не принимают.
sumanai
Дополнения?
К сожалению, мне нечего рассматривать в Google Search Console по причине как отсутствия аккаунта в гугле, так и отсутствия аналитики на моих сайтах, но загрузив всё это в дополнение к полутора десяткам моих вкладок, я получит в два раза меньший объём использования ОП.
simpleadmin
Нет, вооще ни одного дополнения. Абсолютно голый ff, без дополнений и синхронизации.
На свежеустановленном ff открываю любую вкладку (можно просто настройки) и через 2-3 недели она сжирает 3-4-5 ГБ
sumanai
Разве что это.
IRainman
Возможно что это жрёт 64 битный FF, у меня принудительно стоит 32.
В целом рекомендую открыть
about:memory
, нажать кнопку Measure и посмотреть что там действительно жрётP.S. я знаю, что 64 битный более безопасен, но мне ок.
sumanai
Не думаю, что дело в битности. У меня тоже 64 бита.
BigBeaver
Хватит писать этот бред. Сколько бы памяти у меня не стояло, при открытом браузере никогда больше полутора гигов не остается свободным.
Crandel
maisvendoo
Это удар ниже пояса для поклонников решений от корпорации Microsoft. Так не честно )
khim
Это у вас просто памяти мало. У меня на десктопе с 64GiB, как правило, половина свободна всегда. Даже после того, как Chrome месяц проработал…
Whuthering
У Хрома это намеренная политика работы — «кэшируем все что кешируется, и мониторим свободную память и использование свопа, если память нужна другим приложениям или её мало, то освобождаем».
Fracta1L
Разве это не работа операционной системы?
Whuthering
Страницу памяти для ОС можно пометить как используемую и не используемую. Варианта «используем, но если вдруг надо, можем отдать, только вызовите все деструкторы и уведомите наблюдателей» не существует.
Что до мониторинга свободного места и уведомлений приложениям об исчерпания памяти, то насколько я помню, такой функционал есть только в Android, да и то кривой работает пока. Поэтому этим приходится заниматься самим приложениям.
Fracta1L
Я не эксперт в ОС, но насколько я знаю, управление памятью несколько более сложное, чем две метки «используемая» и «неиспользуемая»
Whuthering
Это само собой, но я говорю про управление со стороны приложения. А там у нас есть malloc() и производные, free(), горстка апишек для разделяемой памяти и больше никакой магии. Варианта «вот эта память нам пригодится, но не то чтобы сильно нужна, сообщите, если кому другому надо вдруг» я ни в Win, ни в POSIX не встречал.
khim
Есть также в Android и в MacOS X/iOS. В MacOS (классической) тоже вроде было, но я даже не знаю где доку на неё в онлайн найти…
Whuthering
И абсолютно правильно сделали.
Мультипроцессность сделали в первую очередь ради стабильности и безопасности. Программ без ошибок не бывает и не может быть в принципе (люди и их мозги не идеальны), а цена ошибки слишком высока. На потреблении памяти кстати отразилось не то чтобы сильно — большая часть кода и данных шарятся между процессами.
С расширениями все ещё интереснее было: наконец-то- удалось избавиться от тонн старого говна во внутренностях браузера и миллионов костылей. Старая архитектура расширений была на редкость непродумана и позволяла слишком много (даже патчить интерфейс на лету), в результате чего создавала дыры в безопасности, позволяла легко завалить браузер неосторожным движением, приносила лютую попаболь при переносе расширений на новую версию, и главное, препятствовало распараллеливанию задач (в эпоху многоядерных процессоров, лол). Дальше так было продолжать нельзя, и теперь все вздохнули с облегчением.
sumanai
И это было прекрасно.
PsyHaSTe
Нет, не было.
sumanai
Нет, было.
Прекрасные дополнения, которые могли действительно изменять браузер. Classic Theme Restorer, который имел тысячи настроек и мог как воспроизвести интерфейсы старых версий, так и создать совершенно новый, уникальный и удобный конкретно для меня. Дополнения, делающие древовидные вкладки, делали своё дело, разворачивая оригинальное дерево вкладок, а не рисуя в окошке рядом ещё одно. Дополнения могли изменять хоть адресную строку, делая кликабельными её сегменты. Добавлять свои панели. Менять страницы самого браузера, делая их удобнее.
Всего это больше нет.
PsyHaSTe
Да, а я помню крашащиеся приложения, Потому что кто-то куда-то не туда записал что-то, синие экраны (которые на домашнем компе после установки семерки, а затем 8 и 10 я не видел), отрубающийся звук и прочие прелести… Да, классик тема определенно того стоит.
sumanai
Мы всё ещё про браузер и его дополнения? Какие синие экраны, какие проблемы со звуком? Перечисленные мною дополнения были самыми стабильными, я не припомню проблем с ними. Не знаю, сколько трудов программистов было на это потрачено, да и не важно. Главное — они позволяли делать мне интерфейс браузера таким, каким хочу его видеть я, а не дядьки из управления разработкой.
Massacre
Вопрос только, кому теперь нужен получившийся альтернативный Хром? По крайней мере, у FF с позволяющими «слишком много» расширениями была своя ниша. Да и однопроцессность хорошо сдерживала аппетит в плане памяти, в отличии от того, что происходит на скринах выше.
Crandel
Мне нужен. Я сильно пользуюсь контейнерами, у меня все гугловские сервисы в одном контейнере, фейсбук и линкедин в другом, а другие сайты не могут меня отследить по супер кукам или кнопкам соц.сетей и составить мой психологический портрет. Да и настроить его можно все равно гораздо шире чем хром.
Massacre
Попробуйте Vivaldi.
Crandel
Зачем? Меня огнелис полностью устраивает. Вивальди закрытый проект, Его невозможно форкнуть, полностью зависишь от разработчиков.
sumanai
Они писали его лет 6, и то до конца не внедрили, кажется до сих пор кусками вносят.
dartraiden
Да, они написали движок с нуля, а теперь по частям неспеша переносят его в Gecko. CSS-движок уже перенесли, на очереди WebRender.
PsyHaSTe
Да, и на нем уже клевые проекты пилят, например вот.
kaleman
Это еще не катастрофа. Вот подождите выйдет ваша ос на JS тогда по-другому запоете. Тогда чтобы работать в редакторе понадобится 16-ядерный процессор и 32 гига оперативки.
С учетом того, что весь софт сейчас пытаются запихнуть в браузер, осталось запихнуть туда и операционную систему.
Neikist
Гугл в обратную сторону движется. Ну, его часть по крайней мере. Ядро фуксии с нуля пишут, упомянутый в статье Xi, флаттер (кроссплатформа, но компилится в натив, хоть и уровень абстракции местами повышает, но больше для андроида и иос, а для фуксии нативным фреймворком должен быть)
Xandrmoro
… именно поэтому гмэйл тормозит даже хуже, чем студия с решарпером на проекте на 15млн строк, хотя казалось бы.
Neikist
vitvakatu
Xi — это не проект Google, хотя и лежит у них на гитхабе. Об этом есть дисклеймер в самом низу readme
KaneUA
Сейчас на рынок выходит KaiOS — операционная система, в которой нельзя писать небраузерные приложения. Она позиционируется как ОС для слабых телефонов.
arielf
Ахахахаха!
Whuthering
у LG webOS почти весь юзерспейc на HTML+js, и ничего, бегает бодрячком на телевизорах с дохлым армом и менее чем гигом памяти.
Akon32
Какая демагогия.
Если автор хочет программировать под DOS — пусть программирует под DOS. Но внезапно окажется, что на дискете с DOS нет ни голосовых помощников, ни словарей и шрифтов на все языки мира, ни сотен драйверов под сотни возможных устройств, ни реализации десятков сетевых протоколов, ни надёжных и быстрых файловых систем, ни работы с защитой памяти, etc, etc; и, боюсь, даже стандартная библиотека C++ на дискету не влезет. Да что там, сейчас только заголовочные файлы OpenGL занимают 300КБ. При этом систему нужно было регулярно переустанавливать.
А сейчас у нас на "дисках" гигабайты всякого хлама, и этот хлам более-менее нормально работает. Конечно, работает не идеально, проблемы бывают, но вот с этим:
я не могу согласиться.
Зато сейчас, с десятками ГБ памяти на борту, я могу спокойно загружать в ОЗУ mesh'и с десятками миллионов треугольников и задействовать какой-нибудь OpenCL, когда того требует задача. Даже с учётом того, что несколько ГБ
и миллионы тактовотъедает ОС, это намного удобнее, чем использовать "экономные" системы прошлого.muove
Удобнее не значит лучше, ресурсы не вечны к сожалению, а мы их тратим на сисечки и кошечек
Akon32
Если "удобнее" позволяет решать какие-то новые задачи, или упрощает решение старых, то как раз это значит "лучше". И решение большой доли задач как раз экономит какие-то ресурсы.
PsyHaSTe
Почему «к сожалению»? Мы тратим ресурсы на то, за что платят деньги. А деньги платят за то, что необходимо людям в первую очередь. Значит мы удовлетворяем первоочередные потребности, а заниматься чем-то другим было бы издевательством над людьми.
Люди: Мы хотим кошечек!
Государство(?): Нет, кошечки это низменная потребность, на самом деле ты хочешь запуск ракеты на Макс. На, держи кусочек ракеты, это теперь твоё! Ну что, рад?
Люди:…
Спрос-предложение отличный механизм, где люди сами решают, что они хотят получить. Поэтому мне совсем непонятны претензии к «кошечкам». И никакие ресурсы к слову не тратятся, ибо никаких невозобновляемых ресурсов на это не тратится, а при изменении приоритетов индустрия перестроится. Понадобится завтра отказаться от всего легаси х86 и перейти на RISC-V? Ну значит так и сделают. Раз не переходят, значит никто этого не хочет, а заставлять — значит ущемлять других людей ради того, что кому-то кажется «более достойной целью».
Emulyator
Спрос/предложение — отличный механизм, когда люди сами решают, осознанно, предварительно подробно ознакомившись о плюсах, минусах, альтернативах. Современные технологии продаж успешно держат количество таких людей на уровне безопасном для прибыльной реализации световых и воздушных колебаний остальным массам.
Am0ralist
При таком поголовном подходе, нужно понимать, мы б все ещё сидели в пещере. Прячась от тигров и мамонтов.
PsyHaSTe
Очень слабая аргументация, в духе запрета интернета «вы же не хотите, чтобы дети стали наркоманами». Как раз текущая организация социума привела к тому, что мы имеем.
Am0ralist
Нет, по моему мнению, все то, что требуется массам слабо способствует развитию прогресса. Прогресс творят как раз таки ученые, инженеры-новаторы и прочие с сильным томлением духа.
А массы хотят две вещи, о чем известно ещё с древнего Рима.
Поэтому опираться на то, чтоб удовлетворять «основные потребности» — это как раз погребать отрасль с кошечках и сиськах. Ракеты народу были не нужны никогда, но чтоб вы сами сейчас делали без спутников? Или без ламповых ЭВМ, которые тоже народу то особо были не нужны?
Так что социум, конечно, кормят, вот только отнимают еще кучу кусков и направляют тем, в чьи задачи вовсе не входит кормить оный. Во всяком случае, не в ближайшие годы.
PsyHaSTe
Что понимать под прогрессом? Если это великая цель, которой все должны стремиться по вашему мнению, а они этим не занимаются, то это скорее говорит о том, что вы чего-то не понимаете.
Как раз индустрия "котиков" создала удобные портативные ПК (вместо тех ужасов со стиками под названием кпк), быстрые сетевые протоколы (чтобы котики быстрее грузились), адаптивные фреймворки… Это всё чушь и нинужна?
К слову про космос — он в известной мере переоценен. Оказалось, что там делать особо нечего, особенно если говорить про межзвездные перемещения. Легче заселить дно океана, чем Макс или там Венеру. Зачем вкладываться в неоптимальные проекты? Просто потому что Am0ralist так захотелось?
Am0ralist
Почему не понимаю? Понимаю. Прогресс творят единицы. Доли процента. Еще десятки его обслуживают. Ну а прочие пожинают плоды и стенают, что раньше было лучше. Ну или котиков с сиськами лайкают.
Неа, индустрия это создала не для котиков. Просто ради котиков их оптимизировали. Просто вы утверждаете, что условные котики самоцель. А для меня — это явная сдача. От тех денег которые корпорации и государства потратили не ради котиков.
Спутники не нужны? вот эта вся навигация, спутниковые съемки земли — это всё не нужное барахло?
Зачем вкладываться в бронзовый топор, когда нам хватает каменного? Зачем изобретать колесо, если можно волоком?
Затем, что совокупно массы не видят смысла ни в чем новом. Еще раз: ЭВМ массам были не нужны. Ракеты обществу были не нужны. Да те же айфоны обществу были не нужны. Пока это всё не появилось по факту. И вот вы пользуетесь сейчас плодами того же развития космических программ и рассуждаете, что ракеты были не нужны, раз люди им были не рады.
Классно, что
PsyHaSTe
Что такое прогресс? Почему "вчера люди не могли смотреть котиков из туалета", а "теперь могут" не прогресс?
подмена тезиса, про ненужность никто не говорил. Про переоцененность — да, я говорил. Точнее это было в 60-70е. Сейчас люди поняли, что там делать особо нечего, и занимаются чисто практическими проектами: прогнозы погоды, там, интернет, GPS, вот это все. Никаких дурацких планов о создании городов на орбите, заселении венеры и т.п.
Am0ralist
а ведь спутников и прочего не было бы без ракет. Людям ракеты были нужны? Нет. Прогресс сейчас без ракет достиг бы таких высот? С чего бы? Без них тогда сейчас не было бы того, что я перечислил. Но ведь людям тогда это же было не нужно. И?
Это сдача с прогресса для всех. А сам прогресс он именно в том, что я перечислял и начинался задолго до того, как появилась возможность вообще подумать, что котиков можно где-то на экране смотреть, а уж тем более — в туалете.
PsyHaSTe
Вы не передергивайте. термояд — крайне полезная штука, очень надеюсь, что её реализуют. А вот полет на Марс — нет.
И да, никто не говорит про запреты. Хочет маск на марс — пусть летит, он заработал это право в прямом смысле этого слова. Это его деньги, он может ими распрояжаться как считает нужным. А получил он эти деньги занимаясь полезными вещами — автомобилями, платежами и прочим.
Людям нужны были ракеты, чтобы воевать. GPS с той же целью был разработан. Если бы они не были нужны, ни ракет ни спутниковы бы не было. Но они как ни странно понадобились. А вот пулеметы, стреляющие точными приборами не понадобились, и их нет, даже если кто-то считает, что прогресс меряется в них.
user343
Не совсем. Сожжёт пресловутые "сотни нефти", а выхлопы его ракет в нашей атмосфере останутся. Для общества и экологии лучше, чтобы он свои деньги вложил например в антикварные картины.
PsyHaSTe
Ну это-то может быть. Но считать чужие деньги — последнее дело.
Я тут как раз с одним коммунистом знакомым разговаривал, на тему того, что если есть ученый, которй изобрел способ на 10% повысить прирост любой еды, а в качестве оплаты просит 5% от неё же. То ест мир получает +5% к производимой еде (бесплатно), человек получает 5% мировых запасов, все довольны. Но тут прецедент, что ученый не хочет рассказать свой секрет за медальку и почетное место на стене своего НИИ, хочет жить на старости без бед. На что мне человек с серьезным лицом говорил, что надо попробовать произвести идеологическую обработку, а если откажется — то клещами доставать.
Как он тратит свои деньги — его дело. Забирать их со словами «ты их потратишь неправильно, я потрачу правильно» — последнее дело. К сожалению, многие любят этим заниматься. Под видео с краш тестами всяких айфонов полно комментарией «ЛУЧШЕ БЫ МНЕ ОТДАЛ». Печально, но что поделать.
Am0ralist
Еще раз, вы сами сказали, что народ не хотел ракеты. И?
И термояд он не хочет. Ему вообще начхать на науку процентов так 90%. А вот ученым начхать на сисьски и котиков, чаще всего.
Но прогресс толкают — именно последние. А сиськи и котики достаются прочим — на сдачу.
Людям, которым сейчас нужны сиськи и котики — они никогда не были нужны.
Тем, кому это нужно было — их были такие же доли процентов
PsyHaSTe
Термояд люди хотят, потому что все хотят машинки на тысячу лошадиных сил, в 10 раз меньшие счета за электричество и бесконечные батарейки. Ну вот хотят.
А на марс они не хотят.
— Короче, ваше разделение на классы «Понимающих», которые хотят приблизить будущее, и быдляков, которые не понимают своего счастья понятно, но так сказать не совсем верно.
Am0ralist
А вот ваше утверждение, что люди хотят термояд (видимо вы судите по себе, так как большая часть про него толком ничего и не знает, более того, когда ученые его начали разрабатывать — большая часть не хотела даже не то что айфонов, но даже сотовой связи — ибо ее еще не было), но не хотят на марс — оно понятно, но, так сказать, не совсем верно
popov654
Так они создавались в эпоху на 10-20 лет раньше котиков. Вы ведь про HTTP, SSL, TCP/IP, IPv6, Ethernet? Им лет уже бог знает сколько)
КПК были по тем временам достаточно быстрыми, и умели больше, чем умеют современные смартфоны. Стилусом можно было писать и даже рисовать простенькие вещи. Пальцем такого не сделаешь. Да и софт для КПК был куда богаче по функциям, как уже писали выше. Даже 3D игры были с довольно сносной графикой и геймплеем. Для КПК. Под процессоры в 64-128 МГц, ага. Сейчас под Андроид таких игрушек-то нет…
PsyHaSTe
То есть айфон — это очередной шаг в сторону деградации, а вот кпк на XP были торт, я все правильно понял?
popov654
Она была Windows CE/Windows Mobile 2003, и потом ещё были Windows Mobile 5.0 и 6.0. Я пользовался первыми двумя из названных выше. Вторая даже звонки и смс неплохо умела, с красивым UI.
Айфоны вообще противоречат моей религии, я могу только за современные Андроиды говорить. Имхо это шаг назад, да. Есть некоторый прирост в скорости работы и в том, что экраны теперь нечувствительны к давлению (и то на морозе это минус, нужны специальные перчатки, а если хочешь использовать стилус — то тоже специальный).
P.S. Со скоростью я тоже уже не очень уверен. У меня есть смартфон на Андроиде 2.3, при покупке на нём всё летало. Но я принёс его домой, установил 10-15 приложений, прошло полтора-два года. Приложения потолстели с новыми версиями, плюс добавилось много фоток и скринов, которые система периодически хочет переиндексировать — и некогда шустрый телефон превратился в кошмарный лагодром, от которого я ужасно страдаю уже три года (а поменять не на что, нет на рынке моделей с клавиатурой). То есть я его тупо замусорил.
КПК из нулевых так замусорить было, несмотря на более слабую начинку, куда сложнее. Там количество установленного софта и наличие большого числа фоток на SD карте ничем не грозило.
P.P.S. Облачные сервисы вроде Dropbox — это как раз несомненный плюс. Но клиенты под все вот эти же сервисы и под социальные сети вполне могли быть реализованы и для КПК тех лет, при чём даже при тех аппаратных мощностях(!). Правда, с загрузкой фотографий были бы сложности из-за малого объёма RAM, пришлось бы на сервере генерировать маленькие версии фотографий с меньшим разрешением — впрочем, для экранов 240x320 и не нужно грузить фотографии в Full HD.
ValdikSS
0xd34df00d
Ну так отключите сканирование и индексирование всего и вся, будет у вас КПК на стероидах.
SirEdvin
Сколько там лет HTTP/2? TCP 1.3? Protobuf?
Druu
Только творят они его именно для того, чтобы удовлетворить требования масс.
Массы немцев требовали бомбить саратов — сделали для масс ракеты.
Am0ralist
Черт, извините, я так не умею.
Druu
Чего это не просили? Просили, потому и было развитие космоса. Потом массам стало пофиг на космос, и он начал загнивать. Потом пришел дядя Маск, сделал космос снова секси, и массы опять хотят на Марс.
Am0ralist
Но по вашему ответу. У меня воображение богатое. Я так и представляю.
Приходит Народ к Циолковскому и говорит: гони, понимаешь, теорию реактивного движения! И все такие радостные, с транспарантами.
Потом оттуда сразу идут к Королеву, прям так, в лпатях, и говорят: гони, понимаешь, ракету в космос, да с Юркой внутрях! И не смей, шельмец, другого никого туда сувать!
Или представил картинку, как в 80-е требовали айфон, дабы котики и сиськи в туалетах смотреть.
Народу чаще всего демонстрируют результаты прогресса, убеждают начать этим хотя бы немного пользоваться, потом народ начинает долго утверждать, что на лошадях то оно лучше было, или что счетами быстрее, чем пока с перфокарт данные вобьешь, а потом вдруг оказывается это настолько естественно вошло в в жизнь, что следующее поколение не понимает, как это жить без электричества, автомобилей и компьютеров.
Но прогресс твориться, когда это все только придумывают и начинают воплощать, пока это никому нафиг не упало.
Это как утверждать, что всем людям нужен квантовый компьютер сейчас. Зачем? Они даже не понимают, что это такое. Он нужен маленькой группе людей (напомню, что даже миллион на фоне 6 миллиардов общего населения — это маленькая группа людей), из которых еще меньше понимает, что же он в итоге возможно будет делать.
Druu
Примерно так все и было, на самом-то деле.
То, что нафиг никому не упало — в результате умирает не родившись. А выживает только то, что нужно и полезно.
Am0ralist
Что становится нужным и полезным.
То, что еще даже не известно — по сути равно никому не упало.
Как не упала теория относительности и возможности создания атомных бомб Чингисхану. Как не нужны были всем автомобили на момент их создания, а сейчас они — везде.
Вы не ставьте потребность в конкретном результате прогресса раньше самого прогресса.
Druu
Почему альтернативная? А по-вашему как оно было?
Да нет, что-то либо нужно и полезно, либо ненужно и неполезно. Никакого "становится" тут нет.
С чего же вы взяли, что не нужны? Конечно, нужны.
Почему не ставить, если так и есть? Именно потребности управляют прогрессом. То, что нужно — оно и развивается, то, что не нужно — отмирает.
Вы, видимом, полагаете, что кто-то наугад делает открытиЯ, а потом их пытаются куда-то присунуть? Ну это не так. Точнее — почти что всегда не так, по крайней мере если мы говорим об инженерии.
Глобальным исключением является разве что математика — но в данном случае там люди вполне осознанно занимаются всякими разными вещами чисто для своего удовольствия, потому и нет причин никаких этим вещам быть полезными.
Am0ralist
Самолет Райтов не был нужным и полезным в момент создания. Кроме горстки людей, которым это было интересно сделать. Когда же начали летать первые самолеты — массы не набежали с требованием от конструкторов сделать вот прям щаз самолет, который сможет перевозить груз тоннами.
Закон про автомобили может напомнить?
Druu
А при чем тут вообще Циолковский?
Самолет Райтов — не был, но сама идея некоторого средства, которое позволило бы людям летать — была привлекательна еще за пару-тройку тыщ лет до Райтов. То есть запрос был. Именно по-этому Райты и пытались самолет изобрести, что запрос на такое устройство — был.
Ну как же не было? А зачем кто-то его покупал, если не было нужно?
В каком смысле так и получилось? На атомную бомбу, опять же, существовал вполне конкретный запрос. Вот ее и изобрели. Это же было инженерное решение, в проработку которого было вбухано уйма средств, как в США так и в СССР. На кой черт в это все вбухивали средства, если оно не было нужно? В то, что не нужно, деньги не вкладывают.
Если что-то на данном уровне развития науки и техники невозможно сделать — это не значит, что оно не нужно.
Людям тысячелетиями был нужен способ быстро двигаться по воздуху, суше и морю. Людям тысячелетиями был нужен способ эффективно выпиливать себе подобных. Людям тысячелетиями был нужен способ производства дешевой энергии в больших количествах. Людям тысячелетиями был нужен способ удобного общения на дальних расстояниях.
Тысячи лет назад эти задачи решали неэффективно — при помощи мускульной силы, мечей и стрел, лошадей, гонцов и сигнальных систем. Или вовсе никак (если речь о воздухоплавании).
И люди всегда пытались решать эти задачи лучше. В итоге сейчас эти задачи решают при помощи атомных бомб, самолетов, атомных электростанций, машин, интернетов с айфонами.
Пройдет еще тысяча лет — и будут созданы новые, более эффективные способы решения этих задач. Потому что эффективное решение этих задач людям нужно. Сейчас нужно, было нужно тысячи лет назад и будет нужно тысячи лет спустя.
Есть общественный запрос — есть развитие.
Такие случаи, действительно, бывают, но это единичные исключения, которые вы почему-то полагаете правилом.
В релаьности же — практически все новое это результат уже существующих запросов. А то, что появляется но не требуется — в итоге умирает, навсегда умирает.
Да, единичные исключения действительно есть. Но это именно единичные исключения.
Потому что планшеты сами по себе никому не нужны, ни 20 лет назад, ни сейчас. Они бесполезны без инфраструктуры. Мобильная инфраструктура была развита с развитием, с-но, смартфонов.
Alexeyslav
Разводили бы турбо-лошадей…
0xd34df00d
Только творить прогресс удобнее и продуктивнее, когда есть некоторое ощущение свободы, и когда Партия не насаждает, какой именно прогресс надо творить.
Да и то ведь, если задуматься, абстрактный матан и теоретическая физика не сильно отличаются от кошечек. Ну кому-то кошечки интересны, а мне закорючки в тетрадке рисовать нравится. Я ничем не лучше.
Am0ralist
Так даже в ссср (до тех пор, пока построение утопии не выродилось в фарс, а государство не стало пародией) это понимали и на ученых послабляйка была.
А вообще, морковка спереди, морковка сзади будут всегда независимо от. просто в некоторых системах они будут заметнее.
0xd34df00d
Ну и всем нравятся свои сорта морковки (хотя корреляции прослеживаются).
Ogra
Шаражки на ученых были, а не послабляйка.
Fracta1L
О, началась песня про правильное использование ресурсов. Таким дай волю — через 10 лет обнаружишь, что тебе положена миска риса в день XD
PsyHaSTe
Целая миска риса? А что Ты Сегодня сделал для Человечества, чтобы еще требовать от него что-то?
novice2001
А весь этот хлам нужно тащить всем и сразу? Словари и шрифты на все языки мира, драйвера на устройства, с которыми 99,999% никогда в жизни не столкнется и все такое?
Работа с защитой памяти и фаловыми системами — это, ну, десятки мегабайт, но никак не гигабайты.
Есть интернет и есть базовая концепция модульности. Должно быть ядро с необходимой ВСЕМ базовой функциональностью, а все остальное должно загружаться по мере надобности.
Neikist
novice2001
Предполагаю, что там, где нет интернета, вряд ли кому-то понадобится драйвер уникального устройства, поддержка редкого сетевого протокола или словарь тамильского языка. Так же как распоследний рантайм .Net, ибо если нет интернета, то откуда возьмется программа, которая его потребует?
Akon32
Именно там, где нет интернета, это всё и требуется. Различные производства
в тайге, например.novice2001
Вот именно на производстве до смерти необходимы словари всех языков мира, голосовой помощник и прочий хлам???
Neikist
Нет, там нужны драйвера, а также забитый по дефолту софт (чтобы его спокойно либо из образа восстановить, либо накатить с носителя, но никак не из сети)
novice2001
Делаете свой образ с нужным именно вам софтом и нужными именно вам драйверами. Хоть сразу миллионом. И накатываете куда вам нужно. Зачем весь этот мусор всем остальным???
polearnik
Ага и для того чтоб у вашего ребенка появился ноут вам надо будет создать свой образ системы а потом для того чтоб добавить туда какуюто программку обновить его. Не хотите делать свой образ? Ну ничего страшного идите на сайт и пытайтесь выбрать подходящий из сотен тысяч образов на все случаи жизни. Вы спец который это сделает одной левой? А ваша жена нет как и тысячи людей по всему миру. Они просто хотят купить ноут и начать работать с ним
Am0ralist
И для этого к ноутам всегда был приложен диск с драйверами под разные ОС…
freuser
К моему Asus K53BY был приложен диск с драйверами размером всего 1,6 ГБ под целых две ОС — Windows Vista и Windows 7. Всё. ХР не может звук вообще и разрешение выше 1024х768, 10-ка тупо не становится, виснет. Причем драйвера ставятся тоже интересно: Блютуз? вот тебе блютуз. правда, он работает через нашу фирменную программу, которая будет висеть в трее и отжирать 5% ЦПУ всегда, но ведь 5% это немного, всегда рады помочь.
Графика? вот тебе графика. в процессе установки мы перезагрузимся дважды, и плюс каждую загрузку ОС ты будешь ждать дополнительно пару минут, но зато 6,2 балла по встроенному бенчмарку
Пришлось с работающей семерки выдирать только дрова без довесков, теперь они заняли 354 МБ на диске D:.
Для сравнения, дистрибутив Linux SIDUX, который увидел все мое железо из коробки (многострадальный синезуб потребовал однострочника на шелле, чтобы загрузить модуль с другим параметром), весил чуть больше 400 МБ, и был полнофункционален для бытового использования (разве что торрент-клиент отсутствовал). Так что драйвера тоже разные бывают.
novice2001
Вы написали ерунду, потому что вместо того, чтобы прочитать всю ветку чужих комментариев (и содержащийся в ней контекст), прочитали только один последний, зато поторопились написать очень важный свой. Впредь, чтобы не выглядеть клоуном, не повторяйте эту ошибку.
Нигде в моих комментариях не написано, что создание образа — это единственный способ установки софта. Этот способ для конкретного специфического применения — промышленное использование вдали от сети. Где этим занимаются профессионалы, вполне способные создать необходимый образ.
Что касается детей и жен, они будут по старинке скачивать и устанавливать необходимое из сети, что они успешно делают и сейчас. Но этот способ был раскритикован таежными профессионалами, которые тоже по какой-то неведомой причине, посчитали, что он должен быть единственным.
В итоге вы оба спорите не с моим мнением по этому вопросу, а с мнением выдуманным вами, но почему-то приписываемым мне.
Akon32
Я как-то устанавливал драйвера на принтер в тайге. Думаю, если бы на компьютере не оказалось хлама типа драйверов CD-ROM или USB-флешек, мне бы это не удалось. Это, конечно, распространённые вещи, но с тем же успехом мне мог понадобиться дотнет, или vcrt определённой версии.
novice2001
Вот я и говорю, давайте для удобства сотых долей процента вломим несколько десятков гигабайт всем подряд. И, самое, главное, даже при таком подходе, все равно найдутся люди, на чье железо драйверов нет.
Так что, как написал kbaa, собираетесь в тайгу — берите все, что может понадобиться с собой, а не надейтесь на чудо.
Взгляните правде в глаза: какой-то .Net вам нужен для конкретной программы. Если в тайге нет сети, то взяться она может только из сети в офисе. Ну, так проверьте требования и скачайте в том же офисе нужный рантайм. До того, как обнаружится, что на компьютере в тайге его нет. Это разумно и логично, не?
Или заранее интегрируйте в образы ОС для своих компьютеров все нужное. Не заставляйте всех терпеть весь этот ненужный подавляющему большинству хлам.
0xd34df00d
Напомнило мне мой 2003-й, когда винмодем под тогдашним линуксом у меня не завелся, поэтому я костылял скрипт, запрашивающий у пакетного менеджера список пакетов для установки, складывавший их урлы в файл, потом скидывал этот файл на дискету, шел к компу с интернетом, скачивал там, шел обратно, подкладывал файлы куда надо, радовался жизни.
Золотые были времена! А трава, главное, такая зелёная была!
Am0ralist
На пару лет позже я свой адсл юсбшный на slax'е заводил: трава тогда точно была зеленее… а хаутушки — укуреннее.
kbaa
Из моего опыта — если едешь туда, где нет интернета, то или берёшь все драйвера на дисках/флешках, или потом придётся наслаждаться gprs/edge скоростями (если повезёт) или ехать второй раз
не знаю, драйверы к чему сейчас есть по дефолту, но ни к одной железки из тех, что я встречал в охранных системах — ничего естественно нет. Что уж говорить про чтото более специфичное и промышленное.
Neikist
Почему это? Собрали коробку с софтом, и отправили в глухую тайгу, лишь изредка приезжая и забирая собранные/наработанные данные. А если накроется периферия — то искать нужно в соседней деревне за 50 км где на выбор 3 железки ни одна из которых не совпадает со сломавшейся.
novice2001
Ну, здорово. Чтобы кому-то в компании, где черт ногу сломит, было хорошо, давайте вломим по нескольку десятков гигабайт хлама всем вообще.
Вместо того, чтобы в отдельно взятой компании навести порядок с периферией и драйверами для нее.
Логика ОК.
Neikist
В этой концепции компания навести порядок не сможет просто потому что вы предлагаете единственный способ доустановки модулей. Ну и насчет дров — лично меня бесит что я должен для своей материнки загружать драйвер с помощью телефона, потом подключать телефон как флешку и этот драйвер устанавливать чтобы загрузить все остальные драйвера уже с компа.
novice2001
Серьезно? И где именно написано, что я предлагаю единственный способ? Просто мой способ — удобный для подавляющего большинства, ибо подавляющее большинство офисных ОС установлено именно в офисах с интернетом, а не в тайге. Это не исключает интеграции программ и драйверов в ваш личный образ. Просто это должно быть опцией, а не десятками гигабайт предустановленного хлама для всех подряд, потому что кого-то что-то там бесит.
Porohovnik
Так можно на флешку ОС со всем функционалом, а при установки выбирать что установить, а что нет.
Borjomy
А для того, чтобы грузить весь код сразу — он, значит, есть
Akon32
Обычно балансируют между "тащить ВСЁ" и "загружать всё необходимое из интернета". Текущий баланс — порядка нескольких ГБ на ОС (на windows, кажется, чуть больше).
В дистрибутивах linux есть "минимальные" установочные образы с загрузкой остального по сети — мегабайт 100-200. Но установленная ОС со всеми типичными серверами занимает те же пару гигабайт как минимум. Не могу сказать, что это мало.
0xf0a00
2-3 гигабайта против 10-15, причем эти 2-3 гигабайта обладают большим функционалом.
Парадокс.
PsyHaSTe
Полагаю, разница в ресурсах, картинках и прочей мишуре, а кода там примерно столько же.
Ну вот я поставил убунту 1804, выбрал язык русский, но все равно в интерфейсе половина текста на английском. Даже в самой установке все галки на русском, а вот «Include third-party software» не очень. Как бы тут не было правила 80/20, что 10-15гигабайт имеет в 4 раза (80%) больше файлов, чтобы покрыть вот эти «мелочи», а 2-3 гигабайта нет.
Плюс возможно там слой совместимости с программами, написанные в бородатые годы, ибо в 2-3*игабайтах часто практикуется совместимость на уровне исходников, а не бинарная.
0xd34df00d
Именно. Плюс по одной копии библиотек для всего, не таскает каждая программа всё вплоть до рантайма с собой.
PsyHaSTe
Есть некая ОС, в которой всё это включено по-дефолту (скажем, Убунту).
Есть ОС, где всё надо пилить самому (тот же Альпин).
Как думаете, какую ОС чаще ставят в качестве домашней и почему?
novice2001
Некорректное сравнение. Это совсем не то, о чем я говорю.
Simplevolk
а какую из них выбирают в качествеdocker-образа и почему?)
SirEdvin
Ubuntu/Debian, потому что в apline постоянно что-то не работает. Они используют musl и там куча несовместимостей и недоделок, например, инструкции search в resolv.conf не работают. А еще они там решили перейти на libressl и теперь каждый второй софт, который работает с криптографией становится туда только с бубнами.
VolCh
Словари не знаю, но как всем предоставить интерфейс загрузки чего-то нестандартного даже если шрифта киррилического или японского нет в системе? И как загрузить драйвер сетевой карты, а видео? А если сети нет, то хотелось бы на принтере распечатать название нужного сетевого драйвера, а невидящему пользователю услышать его.
staticmain
Конечному пользователю от всего вышеперечисленного ни тепло ни холодно — ему не нужен «голосовой помощник», от которого проку — поставить будильник и отказаться вызывать скорую. Ему не нужны словари на все языки мира, он пользуется одним-двумя, ему не нужны десятки сетевых протоколов — гофер остался в прошлом, сейчас кроме tcp/udp http/https пользуются разве что ftp и то отдельные личности. Этими вашими mtproto пользуются отдельные приложения и то, не как отдельным протоколом, а уровнем абстракции над http, в системе поддержка этого не нужна. Сотни драйверов конечному пользователю не нужны, у него максимальный набор чипов — два десятка, это НЕ нужно по умолчанию тянуть в систему.
-rwxr-xr-x 1 root root 1868984 янв 15 2018 /lib/x86_64-linux-gnu/libc-2.23.so
-rw-r--r-- 1 root root 1566440 июн 22 01:55 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21
Все прекрасно помещается.
khim
Не понял что там у вас помещается. Оба файла по размеру больше всех распространённых типов дискет.
staticmain
Странные у вас дискеты, меньше 1.5 МБ:
~$ ls -lh /lib/x86_64-linux-gnu/libc-2.23.so
-rwxr-xr-x 1 root root 1,8M янв 15 2018 /lib/x86_64-linux-gnu/libc-2.23.so
~$ ls -lh /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21
-rw-r--r-- 1 root root 1,5M июн 22 01:55 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21
ValdikSS
Казалось бы, не много-то времени прошло, а люди уже не помнят ёмкость самых распространенных дискет. На дискету помещается 1.44 МБ. Есть 2.88 и ZIP-дискеты, но они не были популярны или распространены.
khim
Дискеты в 2.88MB и ZIP-drive — это экзотика, они мало на каких компах были.
iroln
Мне кажется, вы не поняли, что хотел сказать автор. Он не предлагает стать "дауншифтером" и принять аскезу, используя DOS и ограничиваясь 640 килобайтами. Он всего лишь хочет, чтобы программы были быстрыми, качественными, надёжными и не бессмысленно раздутыми. И да, я сейчас пишу это сообщение в браузере Google Chrome, который недавно обновился, и теперь этот текст набирается с сильно заметным лагом и фризами на моём Core i7 и 16 Гб ОЗУ. Если это не дерьмово, то я тогда не знаю...
Druu
Дык, это, платите деньги, они и будут. Вы вот сколько за месячную подписку на браузер платите? Небось, 0$? А за хабр? Столько же? А чего вы тогда хотите за этот 0$?
Или вам бесплатно должны делать качественные, надежные, быстрые приложения? А сами бесплатно не хотите поработать? Нет? А чего так?
iroln
Вы серьёзно?! У меня есть просто огромное количество примеров софта за астрономические деньги, который ужасен настолько, что не понятно как он вообще может работать. Например, всякие штуки уровня интерпрайз типа Cisco WebEx или адовые ERP за десятки тысяч долларов. А софт во всяких "умных" телеках, которые адски тормозят, а к тому же ещё и решето с точки зрения безопасности. Всё, я даже продолжать не хочу.
На счёт хрома, Google знает всё обо всех и зарабатывает на этом, если ты не платишь за продукт, то ты сам становишься продуктом, это вроде все знают. На счёт подписок, я пользуюсь продуктами JetBrains по подписке, и что, думаете, там всё идеально? Хахахаха. Баги годами висят в багтрекере. С каждым новым релизом платформа intellij idea требует всё больше ресурсов и всё тормознее, а какого-то серьёзного прогресса по функциональности я что-то не замечаю.
Druu
Замечательно, то есть к тормозящему браузеру и хабру все претензии сняты?
Прекрасно! Если этот софт за астрономические деньги плох — купите хороший софт от конкурентов! Или предложите за те же деньги свой софт — который будет быстрым, надежным и нераздутым. И те, кто пишет плохой, тормозной, негодный софт — разорятся из-за недостатка клиентов. В чем проблема?
Так не пользуйтесь продуктами джетбрейнс или идеей. Пользуйтесь продуктами, написанными хорошими, годными инженерами! Которые пишут быстрые, надежные приложения.
На худой конец — у вас же всегда есть вим или емакс. Почему вы не пользуетесь вимом или емаксом?
arielf
Автор и многие совершенно не понимают — зачем версии Android на конкретном телефоне нужны 6 Гб драйверов на все возможные интерферометры из ЦЕРНа? Или 100500 прочих телефонов — а? В конце концов ось модульная и предустановленная — неужели нельзя забабахать норм кастомизацию — шоб на каждый телефон шли лишь нужные вещи? Зубами клянусь — реально нужных вещей в нём на гиг максимум!
mapron
Очень сильно напомнило suckless.org/philosophy
PsyHaSTe
Полный треш, а не философия. «Если у вас нет собаки, её не отравит сосед». Особо эпичные места можно цитировать, но пожалуй тут смысла этого делать нет. Просто попробуйте попользоваться софтом, написанным с такой философией, я посмотрю. Обычно разработчики просто начинают крушить всё подряд, если окажется, что в некоей софтине нет подсветки кода, автоматических рефакторингов, плагинов, автодополнения, интеграции с сотей системой версионирования, а также нельзя выбрать ровно 15 строчек и заменить в них foo -> bar. Что говорит о некоемом двоемыслии, с позиции разработчика и пользователя соответственно.
srhbdv
Я бы сказал — попробуйте пописать софт по такой философии.
Меня вообще больше всего раздражает в авторах мнений таких как в статье, и большинстве комментариев, что ни один из них, не создал продукта, в соответствии с теми идеологиями, за которые они выступают, который пользовался бы успехом и спросом, и как следствие, не загнулся бы, не выйдя даже из альфы.
Веб плохой? Ну покажите класс, запилите хороший, годный, посещаемыей ресурс, приносящий прибыль, который будет написан без тонны клиентского кода, и работать молниеносно (что смешнее еще и без тонны рекламы же надо им всем, и вот этого всего, чтобы только текст там).
Приложения толстые. Ну так давайте, чем вам не конкурентноспособное приемущество запилить более быстрый slack или скайп, или что-угодно-еще, и показать всем как надо.
Что-то ничего не происходит, кроме нытья. А все попытки загибаются, или «скатываются» в то же самое русло, что и «все-неугодные-технологии».
Беда в общем, не в сфере. А в головах людей, что дальше собственного носа и потребностей видеть неспособны.
PsyHaSTe
Да, примерно это я и собирался расписать, хорошо, что теперь не придется.
Софт по такой философии я видел, но выглядел он совершенно неюзабельно. Например
то есть отсутствие фич и есть фича, как и отсутствие обработки краевых случаев
ValdikSS
sumanai
Высокая посещаемость reddit.com не вызывает сомнений, но сколько из пользователей читают его именно через этот поддомен?
ValdikSS
Редизайн случился не так давно, менее года назад. До этого он всегда был таким, как сейчас на old.
Fracta1L
А что в старом дизайне хорошего? В новом можно просто прокручивать главную страницу, и сразу видно, какой тред стоит открыть, а в каком очевидно ничего интересного нет, в старом виден только заголовок и картинка размером с бритву, вот же весело ломать глаза себе. И это только самый очевидный недочёт. Если проанализировать, можно ещё кучу найти, думаю.
volchonokk1
Так это не совсем то что сверху написали. Это предыдущая версия текущего реддита перед редизайном, а не специально написанный аналог с философией минимизации и оптимизации.
srhbdv
Субдомен old как бы констатирует сказанное выше
"все попытки загибаются, или «скатываются» в то же самое русло, что и «все-неугодные-технологии». "
Tsimur_S
Да хотя бы телеграмм, 30 мб памяти против 300+ у слаки и 100+ у скайпа. Если бы все писали такие приложения то этой статьи бы не было.
К сожалению других людей нету, не завезли. На этих людей только и можно подействовать нытьем. Будет больше таких статей, разной степени техничности, больше людей будет задумываться о том почему старый айфон резко начал тормозить после выхода нового апдейта ios.
SirEdvin
Мм… вы сейчас серьезно?
Покажите в телеграме:
PsyHaSTe
SirEdvin
Телеграму с их "текст и кнопки" еще далеко идти.
PsyHaSTe
SirEdvin
На мой вкус телеграму не хватает возможности добавить выпадающий список, потому что без него длинный список вариантов работает грустно.
А так да, есть.
iroln
Вот это всё, что вы перечислили, должно требовать каких-то огромных ресурсов что ли? Или в чем смысл коммента? А со скайпом чего не сраниваете тогда? :)
Скайпом на смартфоне я просто не пользуюсь, потому что невозможно. Тормозит, зависает, вылетает, потребляет слишком много памяти.
SirEdvin
1. Скайп написал в microsoft, они просто пишут плохие продукты.
2. Все, что я перечислил возможно еще и потому, что slack решил не выпускат 100 и 1 продукт для разных платформ, как сделал telegram, а сконцентрировать свое внимание на одной и просто портировать результаты с нее на другие платформы с минимальными затратами. Меньше затрат на порт — больше фич. У телеграма вот все еще нет секретных чатов на дестопе.
Massacre
Вообще, телеграм на десктопе это примерно 60мб на старте и утечки памяти вплоть до 500+, но хоть не электрон, т.е UI не лагает… Скайп 7.х был в районе 100-150мб, если учитывать браузерный компонент, да.
А слак такой раздутый не из-за дополнительных фич, а именно из-за электрона.
mapron
Ну я лично не агитирую ни за, ни против.
По поводу «попробуйте пользоваться софтом» — с сайта проекта:
— zlib
— musl
— libev
— DeadBeeF
— mc
— MPV (мой дефолтный плеер на винде)
Это то чем пользовался я. Так-то порядочно там довольно популярного софта:
suckless.org/rocks
Вы видели исходники musl?
Что касаемо разработки DE под такой идеологие, или IDE — то я лично уже хз, тут я бы поспорил, что suckless зайдет)
SirEdvin
Не поддерживает 1000 и 1 вещь, к который вы привыкли. Мне лично понравились проблемы с search в dns-resolve.
Сколько там ему лет? Когда доживет до glibc тогда и поговорим. Написать классный код довольно просто, а вот поддерживать.
mapron
Очень надеюсь до glibc никогда не доживет :) у них все же разные сферы применения. Для «микро» систем — самое то (uclibc я еще терпел из-за mmuless).
7 лет вроде поддерживает. OpenWRT на него перешел уже.
А если вы хотели сказать «когда ему будет столько же лет, сколько glibc» — то вообще не смешно.
Про список совместимости — я в курсе, спасибо, я читал внимательно, как и баги которые чел заводил в других проектах (это уже просто для себя).
Как полную замену glibc во всех отношениях никто проект и не позиционировал. Но я да, считаю, что это один из правильно сделанных suckless проектов.
SirEdvin
Вики пишет, что 4 года назад вышла стабильная версия (
Ну а касательно никто не позиционировал — а вы уверены? Его вот в alpine утащили, который довольно популярен для docker образов, которые вполне себе на серверах крутятся.
mapron
musl-1.0.0.tar.gz — March 20, 2014
Наверное речь об этом. Я лично с проектом познакомился еще до релиза 1.0.0, он уже тогда был вполне юзабельный)
Про позиционирование, что-то нигде не нашел про замену glibc. Да, пишут, мол general-purpose; что до использования на серверах — ну видимо майнтейнеры знают, как обходить особенности resolv.conf и прочую муть)
(давайте завяжем с оффтопом наверное, а то и так комментов полторы тыщи)
SeOd
Ох, если еще посмотреть на js, ноду и папочку node_modules. То там тоже боль. Особенно, если застал как было до. Но теперь:
«двести метров джаваскрипта грузят текста триста байт»
https://soundcloud.com/viruzzz-kun/kolkhoznyy-frontend
shybovycha
Так эти ваши "современные текстовые редакторы" в браузерах крутятся же! Нынче модно стало ваять не нативные приложения, а кроссплатформенную жесть, которая тащит за собой и браузер и движок жаваскрипта.
Neikist
Кроссплатформа и без js и браузера может быть к счастью. Вспомнить тот же qt, kivy (python, но все лучше js+html+css), flutter.
shybovycha
так я и не говорю что это хорошо — я говорю что это модно. нынче здравый смысл проигрывает моде / трендам чуть более, чем по всем позициям
Neikist
Я говорю о том что кроссплатформа это не всегда трэш из веба.
Fedcomp
Как раз здравый смысл. Дешевле сделать на электроне чем нанять Qt программиста.
shybovycha
кому — "дешевле", кому — "здравый смысл" =)
yarston
В гугл плее про демо приложение на флаттере (Flutter gallery) пишут, что жирное и лагает.
Neikist
Да? Странно, видимо зависит от чего то. Меня эта демка после приложений которыми ежедневно пользуюсь очень порадовала.
chupasaurus
Crozzy13
Что угодно придумают, лишь бы на плюсах не писать. Про порты Qt для других ЯП я вообще молчу
0xd34df00d
Вы его, похоже, с QML перепутали.
chupasaurus
Да нет, знакомтесь.
0xd34df00d
Так это ж и есть браузер, оно не вне браузера.
xMushroom
Пишу на нативном WPF (хотя он тоже не нативный) и страдаю — на то, что в браузере можно сделать одним аттрибутом, тут уходит полдня. А ведь эти полдня я мог потратить на что-то более полезное…
shybovycha
вот именно этим и обоснованы абстракции вроде unity, electron и прочяя ересь — "чтобы разработчик думал о высоком, а не о низкоуровневой ерунде". именно об этом и весь сыр-бор
xMushroom
Ну вообще этим вся цивилизация обоснована. Разделение труда там, специализация и т.д.
shybovycha
это рептилоиды вас заставляют в это верить. на самом деле — все матрица, люди — батарейки, а мы с вами пилим кусок никому ненужного говнокода, лишь бы разделить специализированный труд =)
xMushroom
Если это был сарказм, то я его не понял.
shybovycha
если грубо — то именно из-за лени программистов и нежелания разбираться в мат. части появляются уэбщики, которым не нужно заморачиваться на всякие там управления памятью, оптимизации на уровне операций, да даже банальными алгоритмами и структурами данных. а потом у них жира тормозит и почта отъедает гиг памяти
staticlab
Кажется, Жира тормозит на стороне сервера с суровой джавой, и соискателей в Атлассиан собеседуют наверняка так же, как и везде, с вопросами о структуре хэшмапа и разворачиванием дерева.
polearnik
Делаете вы сайт ну прдположим на c++ Вначале все идет норм только постоянно отвлекаетесь на ошибки типа если пользователь введет не число а букву все упадет. Потом вдруг оказывается что пользователи жить не могут без пары графиков. Вы тратите кучу времени на то чтоб разобраться как рисовать графики. Потом оказывается что пользователи то хотят интерактивные графики. Вы снова тратите кучу времени на то чтоб запилить это. Потом оказывается что надо бы сменить дизайн или дать пользователямв возможность выбрать его. А у вас то он прибит гвоздями в коде.И вот в течении этих пары лет пока вы будете пилить свой довольно простенький сайт вы обязательн остолкнетесь с тем что ваше приложение-сайт работает только под виндой но пользователи хотят еще на телефонах его запускать Вы скажете что вы потратите много времени в первый раз а потом просто будете использовать примеры из старого кода. Возможно догадаетесь выделить примеры в отдельные файлы и даже делится с другими пользователями чтоб они потратили в след раз гораздо меньше времени. И даже сами будете брать библиотеки других чтоб ускорить процесс. Хотя погодите мне это чтото напоминает. и вы не учитываете еще тот факт что вы сами можете делать чтото неоптимально просто изза недостатка знаний или опыта.
P.S. Работал я с одним кадром который часто мечтал о том чтоб сделать сайт на ассемблере. Типа слушать 80 порт можно и на ассемблере. Делать запросы в бд тоже можно из асма итд. Вот бы все летало и жрало мало ресурсов
serbod
В начале 2000-х так и было. Программы в Delphi / C++ Builder создавались из компонентов. Вставил мышкой компонент HTTP сервера, обработчиков HTTP запросов, подключения к базе данных, таблиц и запросов базы данных. Нарисовал мышкой визуальную форму с полями ввода, гридами, графиками, кнопками и панельками. В свойствах компонентов указал, с кем и как они связаны, где брать данные для отображения. И потом все это скомпилировал в файл и запустил. Получился stand-alone web server, который в браузере работает как настольное приложение, только хуже. Потому что тогда интернеты были вялые, браузеры туповатые, а дизайн делали не дизайнеры, а программеры.
Сейчас тоже так можно, причем в браузере будут не древние ActiveX скрипты с нативными формами, а модный Sencha Ext JS. Но ведь Delphi умер, вышел из моды, нет предложений на рынке.
shybovycha
в вашем кейсе две проблеммы:
и
shybovycha
речь на самом деле не о крайностях вроде "если кодить — так только на Си!", а скорее о том, что приложения (даже сайты) можно писать оптимально (оптимальнее), не используя раздутых фреймворков, а решения делать не "самое простое — главное чтоб работало" (так, как выгодно бизнесу), а опять-таки, оптимально (обдуманнее).
PsyHaSTe
Строго наоборот же, там, где в WPF можно обойтись двусторонним биндингом и сделать датасорс на коллекцию или даже БД в фронтент-разработке придется тащить и бекенд, и какой-нибудь реакт/ангуляр.
staticlab
Очевидно, что приложение клиент-серверное, значит тащить бэкенд всё равно придётся.
Но ведь фронтенд-фреймворки считаются злом. Что же делать? Писать байндинг на ванильном JS?
PsyHaSTe
Ну вот я не видел сайтов на ванильном JS, и надеюсь не увижу. Отказываться от фреймворка (вообще любого) это как отказываться от любого уровня абстракции. Нафиг ваш winhttp, я свою либу напишу. Нафиг ваш http вообще, я свой протокол напишу. Нафиг ваш TCP, я своё реализую…
Байндинг на ванильном JS не написать. А если начать реализовывать обертку, то получится багованный и кривой ангуляр или тот же реакт.
gearbox
>Байндинг на ванильном JS не написать.
На Proxy и custom elements за пару вечеров на коленке ваяется аналог реакта. Но согласен — нафига, если есть реакт. Проблема то не во фреймворке.
xMushroom
В этом смысле да, хотя если подтащить реакт/ангуляр, то снова становится нет. Но по больше части WPF куда бедней на возможности. Конкретно вчера я делал placeholder. :)
Neuromantix
Соглашусь как юзер, особенно как юзер разных девайсов, которые должны работать, но из-за софта, запихнутого в их МК не работают без регулярных перезагрузок. Термометр-метеостанция виснет каждые 3-4 дня, выбросил, бытовая техника, которая глючит, включает произвольные функции или тп. Какой ад ждет после увеличения числа IoT — боюсь представить.
BD9
Это не всегда софт.
Был случай: глючил новый телевизор Sony — сбои программы. Зная про плохое питание, подключил его через стабилизатор. И глюки исчезли.
В общем, снизилось качество всего — попробуйте купить хорошую колбасу в РФ (и не только в РФ).
Можно сделать качественно, но за это потребитель не хочет платить.
khim
Neuromantix
По поводу колбасы и выбора. Я сделал как-то сам колбасу из чистейшего мяса, специй и тп, по рецептам из дореволюционной книжки. Все, кого я этой колбасой угощал, ругались на то. что она какая-то не такая — не розовая, а темная, жесткая, пахнет перцем и тп, и после этого предлагали мне попробовать «нормальную» колбасу за 50р/палка из «магнита».
Am0ralist
kvasdopil
Можно бесконечно смотреть на три вещи: как горит огонь, как течёт вода и как ноет tonsky. Хочется пожелать автору всё-таки со временем выйти из режима Grumpy Cat и начать снова получать удовольствие от любимого дела, мы все за него очень переживаем.
engine9
Но дискуссия-то разгорелась первоклассная.
tonsky
а автору-то как этого хочется :) но ничего, написание этой статьи позволило мне хотя бы для себя сформулировать, что меня вгоняет в депрессию и чего я хочу. Дело за малым — найти подходящий проект и подключиться
amarao
Цена абстракций. Если бы абстракций не было, вы бы использовали Initial Orders для того, чтобы загрузить вашу программу в двоичных кодах чтобы посчитать то, что нужно.
Самая первая жирная абстракция, которая случилась в компьютерах, заключалась в идее имитации интерактивности происходящего.
dernasherbrezon
Вряд ли. Каждый junior говорит мне одно и то же «оперативная память дешевле труда программиста». Потому что эту манцу проще говорить чем оптимизировать код и думать головой.
PsyHaSTe
Ну на то он и junior, тем более, что я тоже так новичкам говорю. А то есть у человека задача, а он начинает думать, что int для переменной цикла — это слишком жирно, я ведь только до 100 итерируюсь! Надо сделать byte. И идет срывать покровы, что программы такие большие, потому что ленивые разрабы где можно обойтись меньшим типом использовали больший. Да что там, сам я точно так же думал. И всех их учат обращать внимание на главное, а не на мелочи. Когда основы усвоены, то можно идти дальше.
Это примерно как в школе, где сначала долго и упорно заучивают, что из меньшего нельзя вычитать большего, а потом через год говорят «давайте вычитать», и ругать учеников, если они вдруг на старое правило ссылаться начинают.
С опытом приходит понимание (или нет. Но тут уже ничего не поделать), как расставлять приоритеты. А именно — никак. Уметь придумать несколько вариантов с разной стоимостью и дать бизнесу выбрать то, что ему больше подходит. «Денис, вот ты задачу создал, можно вот так вот закостылить, но скорее всего через год это выльется в такие-то проблемы ценой в 1М, а можно сейчас на пару недель сделать задачу на грамотное изменение архитектуры, тогда всё будет ок, но мне нужен будет Марк на пару дней для выработки плана». Главное, не сократить эту фразу до «Денис, вот ты задачу создал, можно вот так вот закостылить,, а можно сейчас на пару недель сделать задачу на грамотное изменение архитектуры и мне нужен будет Марк на пару дней для выработки плана». Разница ведь колоссальная, и как мне кажется большинство разработчиков используют вторую форму, когда подразумевают первую, а потом обижаются на логичный ответ менеджера «давайте по первому сценарию, заказчик уже месяц ждет». Сам виноват, надо было лучше объяснять.
Ну а если все равно костыли выбирают, значит бизнесу так нужнее, они вам с прибыли зарплату платят, они должны выбирать решения, вы эксперт который дает им полную информационную поддержку, но решения все же за ними.
Ну а если выбирают костыли, а потом говорят «блин, нам твой костыль в 1М встал, что ж ты собака сделал?!?», то 2 недели и поиск более адекватных коллег является оптимальным исходом :)
dernasherbrezon
У вас другой случай. Те примеры которые описаны в статье это как раз случаи когда суровые дядьки архитекторы принимают вполне осознанные решения. Вряд ли технологию редактора кода выбирал junior. А потом те же самые дядьки архитекторы пишут разгромные статьи «почему нашему бизнесу важно забить на использование памяти». Junior потом читают такие статьи и в силу своего опыта делают неправильные выводы.
eugene_bb
А каждому сеньору надо распечатать и повесить табличку когда НЕ-надо оптимизировать, а то за собой замечаю иногда что рука тянется соптимизировать пару строчек, а эти строчки делают IO-bound операции.
Latency Comparison Numbers (~2012)
----------------------------------
L1 cache reference 0.5 ns
Branch mispredict 5 ns
L2 cache reference 7 ns 14x L1 cache
Mutex lock/unlock 25 ns
Main memory reference 100 ns 20x L2 cache, 200x L1 cache
Compress 1K bytes with Zippy 3,000 ns 3 us
Send 1K bytes over 1 Gbps network 10,000 ns 10 us
Read 4K randomly from SSD* 150,000 ns 150 us ~1GB/sec SSD
Read 1 MB sequentially from memory 250,000 ns 250 us
Round trip within same datacenter 500,000 ns 500 us
Read 1 MB sequentially from SSD* 1,000,000 ns 1,000 us 1 ms ~1GB/sec SSD, 4X memory
Disk seek 10,000,000 ns 10,000 us 10 ms 20x datacenter roundtrip
Read 1 MB sequentially from disk 20,000,000 ns 20,000 us 20 ms 80x memory, 20X SSD
Send packet CA->Netherlands->CA 150,000,000 ns 150,000 us 150 ms
braineater
Смотря как считать. Если нечто популярное использует много лишней памяти то по совокупной стоимости этой памяти можно купить не время работы программиста а всего программиста с потрохами.
khim
Нечто популярное, типа кукого-нибудь Chrome, создаётся не одним программистов, а несколькими тысячи программистов. И тут уже неясно — что дешевле: заплатить за память или ещё за 100500 программистов…
braineater
Правда ваша, к тому-же за программистов платит заказчик софта а за память — пользователи. Но тысячи
обезьянпрограммистов не всегда нужны. Инстаграму хватило несколько человек. Полагаю и в мире десктопов такие примеры имеются.amarao
Хром не использует много памяти. Много памяти используют много сайтов. А купить такое количество веб-разработчиков… Ну, удачи.
amarao
В тот момент, когда вы согласились, что 'hello world' должно кодироваться с помощью числа 121404708502361365413651816 (а то и числа 31079605376604509545894864896), в этот момент вы уже были уверены в то, что оперативная память дёшева. С позиций разработчиков первых компьютеров, мой вот этот комментарий, в UTF-8 — это просто какое-то непростительное разбазаривание байтов. В такой объём памяти можно вместить достаточно переменных для того, чтобы рассчитать тракеторию полёта на луну, а я тут объясняю, что память дешева.
На самом деле, основным потребителем памяти являются не программисты, а пользователи. Потому что пользователю всё равно сколько мегабайт занимает его аватарка — он хочет, чтобы она была красивой. Ему всё равно сколько миллиардов математических операций надо выполнить в секунду — ему хочется, чтобы страница скроллилась плавно, и чтобы в середине печати не возникало сообщения «превышена максимальная длина текста».
А ещё хочется переключать задачи мгновенно. И иметь быстрые сайты.
И всё это требует абстракций, о которых кусок кремния ничего не знает. Каждая абстракция — заведомо неэффективное использование уровня ниже (те же транзисторы в аналоговом режиме могут много больше, чем в цифровом — мы используем их самым тупым образом во имя иллюзии двоичного переключателя).
Неэффективность взамен предлагает простоту — и ради этого все эти гигабайты кода и памяти. Это просто, а значит, человек может это понять и начать использовать. Как только «просто» становится «сложно» на его базе делают следующий уровень неэффективности, чтобы снова стало «просто».
dernasherbrezon
Я вот сейчас пытаюсь писать комментарий и делаю это быстрее чем текст появляется на экране.
К сожалению я не могу загрузить профайлер хрома. Но в посте где нет комментариев, текст набирается быстро и профайлер говорит что все хорошо. Зачем перерисовывать страницу когда я набираю текст в маленьком окошке? Это ведь не про размер букв в UTF-8.
amarao
И виноваты программисты, да? Вы в курсе, что «окошек» не существует, и что это всего лишь неэффективная абстракция над эффективным методом делать bitblt? Который, в свою очередь, эффективная абстракция над возможностью копировать байты с одного места в другое? (Я понимаю, что в современном графическом стеке всё сложнее, но нам надо где-то остановиться).
Вот зачем вам эта неэффективная абстракция и весь этот bitblt? Почему бы не отображать символы сразу из растровых представлений в видеопамять?
Не, серьёзно, зачем вам окошки? Эти ужасные программисты тратят мегабайты на каждое окошко — если избавиться от окошек, то освободится огромное количество памяти.
Foror
>И виноваты программисты, да?
Да, только не браузера (хотя и браузер разрабатывают такие же олимпиадники), а олимпиадники хабра. Они возможно хорошие математики, но очень плохие программисты. Решение проблемы в данном случае заключается в удалении из DOM лишних комментариев, невидимых на странице. И этим страдает не только хабр, этим грешат очень известные западные веб-сайты, всем известных корпораций.
И причем тут вообще окошки?
EvilFox
Динамический viewport нужен только когда у вас реально много данных на странице (начиная с десятка тысяч, или даже больше), а тут на момент написания этого комментария всего 1369 комментариев.
Foror
>Кстати я отписал таки в тп хабра, цитирую ответ: «Вы можете привести пример ресурса на котором статьи с 1300 комментариев загружаются на ваш компьютер без задержек?»
Ахаха, вот они наши олимпиадники ) Я думал они просто от лени, а они даже не вдупливают, что вообще происходит )
P.S. Вы так или иначе придёте к удалению лишнего из DOM, поэтому мне непонятно ваше категорическое «Нет», с отмеркой сколько нужно вешать в граммах.
EvilFox
Так-то я за динамическую область видимости, но только когда в ней есть потребность.
Foror
>И сколько предлагаете держать в «буфере» комментариев?
То, что помещается на экран. Плюс держать еще несколько «сверху и снизу». Плюс хранить все загруженные комментарии в виде объектов для подстановки на скроле.
Про поиск как-то не подумал. Для этой ситуации можно держать только TextNode на нужных позициях в DOM. Думаю не должно тормозить даже для десятков мегабайт текста (но это не точно). Один мегабайт точно не тормозит.
Еще это может решаться с помощью UI, на пикабу видел топорное решение для бесконечного скрола, путём нажатия нужной кнопки для очистки DOM.
Задача интересная, тут ресерч нужен, сам такое не делал еще.
>А технический долг в виде перегруженной каскадной таблице стилей никуда не исчезнет.
Можно исправить, я не спорю.
>задача сама по себе не простая
Так в этом и весь сыр бор, что программисты идут легким путём, а не решают проблему на корню.
sumanai
И с полосой прокрутки сложно, особенно при изменении размера экрана. Плюс на Хабре куча кнопок для перехода на отдалённый комментарий, например, кликая по числу новых справа, можно довольно таки далеко скакать по странице.
В общем ИМХО, удаление элементом из DOM есть большой костыль.
EvilFox
Ну прямо на корню это в обозревателях должны решать — они сами должны выкидывать невидимое и отбрасывать все неиспользуемые стили при первой загрузке, оптимизируя их так чтобы не вычислять сложные правила каждый раз при перерисовке. В свежей лисе похоже так и работает (либо просто очень быстро работает), а вот в хроме нет.
Ещё минус динамической области видимости в невозможности пользователю сохранить страницу целиком. Нужно костылять спец. кнопку по которой всё дерево сгенерируется для удобства сохранения (кто об этом позаботится? только энтузиасты).
Foror
Абстракции были всегда. Проблема не в них.
Для прикладного ПО проблема в отсутствии инструментов для удобной и быстрой разработки. Ну нет сегодня аналога Делфи из начала 00-х. Есть две крайности сложная разработка на крестах с QT или простая, но очень жирная разработка на Electron. А по середине ничего нет! Ниша свободна.
В свою очередь в системном ПО скопился огромный пласт легаси. Тот же Линукс не может осилить 10 Гбит/с в стандартной поставке. Его приходиться патчить, накатывать сторонние костыли. Загуглите linux 100 Gbit/s, там всё еще веселее. И здесь полностью свободная ниша. Люди понимают о необходимости Unikernel, но не кому это пилить! Ниша свободна. И тут мы подходим к следующей проблеме.
Людей, которые смогут оптимизировать и переписать всё с нуля — можно пересчитать по пальцам. Просто нет специалистов, кто возьмётся за это неблагодарное дело. Сегодня легаси переплюнут авгиевы конюшни. Поэтому переписывать нужно очень многое, начиная с языков программирования и заканчивая операционными системами.
Emulyator
Вот уже не думал, что кто-то посетует на нехватку инструментов для разработки. ИМХО, их больше, чем нужно, и, по отзывам, один удобнее другого. )
Foror
Нет, это неправда или это был сарказм?
Foror
Инструментов хватает, я даже перечислил лидеров рынка. Но остальные еще хуже.
Emulyator
Нет, не сарказм, все так и есть, я кроме Qt да в.студии особо ничего не использовал, но читая тот же хабр, регулярно встречаю восторженные отзывы об очередном инструменте, плагине, редакторе, фреймворке и т.п., который чуть ли не сам всё за тебя делает. Глаза разбегаются, не понятно, что выбрать. )
Foror
>встречаю восторженные отзывы об очередном инструменте
А я встречаю восторженные отзывы о go, kotlin, но это ничего не значит. Люди по прежнему программируют на крестах, джаве и питоне. В go же хотят внедрять дженерики (а как пели, что они не нужны!). А с развитием джавы непонятно зачем нужен kotlin. По мне он повторит историю groovy.
То, что видите вы это маркетинг, действующий на неокрепшие умы. Я это всё очень давно мониторю и пока не видел технологии «который чуть ли не сам всё за тебя делает». Всё что есть на рынке отдаёт некомпетентностью и легаси.
Мне это настолько всё надоело, что я сейчас сам начинаю работу в сторону разработки нормальных инструментов для программистов.
>восторженные отзывы об очередном инструменте
Например?
Emulyator
Или взять Unity3D. Помню один из многочисленных школьников на ютубе слабо владеющий внятной речью, за пол часа накликал скелет для какой-то примитивной, но работоспособной игры. Я вообще в то время слабо представлял практические пути создания игры для мобилок, ну может глючные примеры на QML потрогал, а тут человек без особых знаний и навыков в программировании делает что-то рабочее. Вот и подумалось, это ли не «волшебная кнопка». )
Druu
Да всегда так было. Просто раньше — чуть медленнее. Сейчас вырос темп жизни, с ним вырос и темп, ну, вообще темп. Всего.
Ну давайте-то будем честными — имея нормальную базу и опыт все это фигня и изучается влет.
Вот я умел в типы, упарывался функциональщиной, тыкал тот же хаскель палочкой — в итоге когда я пришел в команду, где писали на тайпскрипте, то уже через две недели делал для используемых библиотек врапперы на суровой типовой акробатике, в которую половина людей из команды (с опытом год+ тса) тупо не могла.
Потому что я пролистал спеку тайпскрипта, увидел там везде знакомые термины из теории, и уже понимал как это можно использовать и в каком виде, не вдаваясь в подробности. Дальше немного практики, чтобы руку набить — и дело сделано.
Emulyator
Да понятно, что все «охи и ахи» во многом просто возрастное бурчание. Даже помню как сам в юности посмеивался над дяденькой который на фортране под дос разрабатывал, измеряя скил программиста количеством строк кода которые тот за смену выдает. А я мышкой клепал формочки в MSAccess и считал, что время писать буковки скоро совсем уйдет.
Am0ralist
Druu
Вы так говорите, как будто кресты, джава и питон сами не развиваются. Мейнстримные языки в итоге аккумулируют в себе наиболее полезные фичи, которые отрабатываются на всяких котлинах, хаскелях и прочая.
khim
Про бесполезность пели фанбои, многие из которых вообще на Go программировать не умеют…
Ca5per
Прочитал статью с удовольствием, полностью согласен с автором. Тенденция печальная и думаю что она не измениться.
Людям поддерживающим эти идеи остается только проявлять активность, писать отзывы разработчикам, поддерживать материально такой софт.
yarric
Тут всё-же видится довольной скорый хэппи-энд — когда производители упрутся в физические ограничения чипов и программистам придётся снова вспоминать, чем цикл лучше мап-редьюса.
khim
Про этот «скорый» хэппи-энд вспоминали уже в конце прошлого века, а воз и ныне там. Flash пока только до 64 слоёв добрался, так что ещё есть куда расти… Ещё на полвека, я думаю, хватит.
Fedcomp
Map + reduce могут быть такими же эффективными как и цикл.
yarric
Цикл реализуется одной-двумя процессорными инструкциями, а сколько оверхеда тащат вызовы функций?
PsyHaSTe
А кто вам сказал, что там будут вызовы функций?
yarric
А кто сказал, что нет?
PsyHaSTe
Любой нормальный оптимизатор.
Вот есть хороший плейграунд: https://play.rust-lang.org/?version=stable&mode=release&edition=2015
Там слева вместо Run выберите show assembly и покажите вызовы функций
core::slice::<impl core::iter::traits::IntoIterator for &'a [T]>::into_iter
,core::iter::iterator::Iterator::map
и прочих...Druu
А если функция будет виртуальной или фунаргом? :trollface.jpeg:
Fedcomp
в компилируемом языке могут быть zero cost, по сравнению с циклом, как в Rust например.
swelf
Наверно когда ты не инженер и все эти аспекты низкой скорости принимаешь как данное, тебя не волнуют внутренние механизмы работы, то тебе просто хочется котика полайкать. А таких 99%. Но ведь вся эта раздутость в конечном итоге двигает развитие железа, позволяет его покупать по разумным ценам людям которым оно и правда нужно. Всякие научные расчеты, моделирование и все такое.
Ну и вобще, все просто хотят «красиво и удобно», что приносит в жертву «быстро и эффективно», а еще быстро и эффективно часто требует навыков, которые люди не хотят получать.
Если говорить в вэбе, ничего ведь принципиально не изменилось с момента, что я помню, начало 2000х. Тот же текст, те же ссылки и картинки. Да теперь не надо качать видео и музыку, чтобы послушать/посмотреть. Но прожорливость браузеров выросла прилично. Все ради красоты и скругленных углов у div'ов?
Некоторое время назад из вэб страниц начали делать полноценные приложения(вэб2.0?). Занимательно, что для телефонов, все сейчас хотят насадить пользователю свое standlalone приложение взад.
Akon32
Что?? Сейчас один CSS чего стоит. А ещё есть JS с сотней API (например, webgl, video, ajax). И JIT-компилятор JS. Можете взять старый интерпретатор и современный, и сравнить производительность.
novice2001
Проблема не в CSS, а в идиотском его использовании. JS сразу со всей сотней API в подавляющем большинстве случаев не нужен.
В подавляющем большинстве случаев как раз будет достаточно текста и картинок. Безо всякого JS вообще.
swelf
только в нем нет необходимости на 99% сайтов.
Да, вэб развивается, но посмотри просто на большинство сайтов, ты(собирательный образ пользователя) чаще всего читаешь какой-то текст с сайта. Необязательны для него тонны js и css. И даже не в них дело, процесс браузера рисующий страницу с 20к текста, парой картинок и немного js и css может жрать десятки и сотни мегабайт.
SirEdvin
Вы вообще сидите в интернете? Вот так выглядели сайты в 1996. Изменилось ли что-то с того времени?
swelf
Эм, нет? Картинки, текст, ссылки) Ну там дизайн так себе, но разве сегодня нельзя такой сделать и плохая верстка это показатель технологичности? Раньше нельзя было нейтральней сделать вырвиглазные цвета?
О том я и говорю, сделаем чуть чуть красивей и увеличим потребление ресурсов на порядки.
PsyHaSTe
thebestmotherfucking.website
Krapivnik
И даже на нем аналитика PiWiK на js висит
srhbdv
Так надо брать не 99% сайтов. А сайты, на которых сидит 99% пользователей.
novice2001
Ну так буквально недавно была статья. Где один сверхпопулярный сайт — википедия — прекрасно обходится без js вообще.
Kwisatz
А если нужно страничку распечатать, да в ландшафте, то ничего за последние 10 лет не изменилось.
novice2001
Если приносят в жертву «быстро», то «удобно» не получается никак. Если я после выделения фрагмента жму Ctrl-C, Ctrl-N и несколько секунд жду появления окна, это никак не назовешь ни удобством, ни эффективностью.
И вообще, вряд ли типичный потребитель вообще точно знает, чего он хочет. Иначе пришлось бы к прийти к выводу, что он хочет раздутое и тормозное ПО, коего сейчас большинство.
swelf
novice2001
Вы, конечно, можете относить бело к черному, но сути это не меняет.
Только вот, если человек работает, то «удобно» — это именно «Ctrl-C, Ctrl-N», а не тыкание мышкой по пунктам меню.
Внезапно, «выделить мышкой, ПКМ, либо меню -> копировать и тп.» есть в любой программе, это не достижение новых тормозных версий.
swelf
Пример немного выбивается из того, что я на самом деле имел ввиду. Не нормально конечно когда текстовый редактор делает копировать/вставить(что там ctrl-N?) несколько секунд. Не могу на вскидку привести норм пример. Ну я например вимом пользуюсь, но для большинства людей он имеет 2 режима: пикать и портить текст. Хотя мне например вполне удобно.
Речь скорей в целом об индустрии, да и не только, о жизни в целом, все просто хотят кнопку «сделать зашибись» и не важно что там за ней спрятано и сколько ресурсов понадобится для реализации, тогда приложив немного усилий можно самостоятельно получить этот результат намного быстрей.
novice2001
Я бы понял, если бы действительно была кнопка «сделать хорошо», и она действительно делала хорошо. Тогда можно было бы смириться и с большим размером и с тормозами.
Проблема в том, что такой кнопки нет, или есть, но хорошо она все равно не делает. Но аппетиты программ растут так, как будто они сами делают не просто хорошо, а прямо-таки превосходно.
SirEdvin
Программирование — это не инженерная специальность. У нас как бы нет четкой математической базы или подходов в духе "молоток — для гвоздей, отвертка для шурупов", как и нет спецификаций или их игнорируют абсолютно все.
Вместо этого у нас куча универсальный инструментов, вкусовщина и хайп)
Silvatis
Внезапно, есть и методология подсчета сложности и оптимальные алгоритмы на все случаи жизни.
Но проблема в том, что в тройке скорость-качество-цена ныне принято вычеркивать второе.
Losted
И, что характерно, на текущий момент это оправдано для большинства типов бизнеса, так как стоимость ошибок относительно низка в среднем по больнице. Хотя и бывают исключения типа падения Амазона в Amazon Day (или как его там). Процесс, при котором можно быстро поправить ошибку оказывается более эффективен процесса, при котором эта ошибка будет обнаружена до выката в прод.
А в областях, где качество более важно (медицина, космос, авиация и т.д.) и процессы другие, но просадка по скорости.
yarric
Многие до сих пор на WinXP сидят — и ничего, всё летает, так что если бы новые версии выходили раз в 10 лет — большинство бы сказали «спасибо», поскольку не понадобилось бы ломать привычные паттерны использования из-за того, что компании срочно понадобилось обосновать продажу новой версии.
Losted
Так тут вступает в действие другой механизм: стоимость поддержки и стоимость внедрения фичи. Иногда от легася надо избавляться чтобы внедрять новое
SirEdvin
Что, и правда есть? Я надеюсь вы сейчас не скажите мне про подсчеты через O(n), которые асимптотические и не применимы в реальности?
Или есть какая-то другая методология?
eugene_bb
Некоторое время назад прочитал интересную мысль, что программирование всё еще находится в эпохе ремеслинечества, а не индустриализации.
Если принять это, то всё становится на свои места и разочарования и страдания выглядят надуманно.
Слишком молодая отрасль, плюс эпоха экспоненциального роста, а спрашивают с неё как со зрелой инженерии.
yarric
Есть общая теория построения систем и кибернетика, вместо чего в мейнстримовом программировании какая-то псевдонаучная муть от гуру, типа шаблонов проектирования.
SirEdvin
Общая теория построения систем абсолютно такая же муть только с другой стороны, потому что не учитывает практически ничего, кроме своих абстракций. В итоге на бумаге у них все круто, а как только приступаешь к реализации, оказывается, что в реальной жизни очень много подводных камней.
А если попытаться учесть все детали и сделать полную модель — вы в ней потоните скорее всего.
yarric
Тем не менее пока ничего лучшего не придумали: самолёты летают, спутники кружатся, процессоры считают.
staticlab
А уязвимости в механизме спекулятивного выполнения инструкций процессора — это «кибернетика» виновата или «шаблоны проектирования»?
CodeRush
Виноваты умолчания.
Никто не захотел думать (не знал, не стал заморачиваться, не влезал в строки, не влезал в бюджет, не влезал в целевую производительность, причины точные не знает никто), что процессор можно атаковать с этой стороны. Почему раньше никто не переживал по поводу того, что kernel.dll отображается по фиксированному адресу, а теперь это большая проблема? Почему никто не пытался предотвращать исполнения страниц памяти с данными, а теперь все стараются всеми силами? Почему аппаратура начала вести теневые стеки, подписывать указатели и тегировать динамическую память, а раньше об этом никто не думал?
Все потому, что программирование — оно в основном про то, как выполнить задачу бизнеса при определенном наборе входных данных и выдать относительно приличный результат за относительно же приличное время. Написание программы, работа которой возможна при любых входных параметрах, противостоящей утечкам данных из любых общих ресурсов, тайминг-атакам и всему тому, что появилось за 50 лет противостояния брони и снаряда — это совсем другая задача за совсем другие деньги.
BD9
В старющем Фортране уже давно отказались от возможности принимать данные как код (и наоборот) (COMMON block вроде бы).
Другие огрехи так же были известны ранее — ничто не ново под луной.
SirEdvin
И причем тут общая теория построения систем? Сбои то все равно происходят, самолеты падают, спутники сходят с орбиты, в процессорах, как уже выше написали — дыра на дыре.
yarric
Не так часто, как ворд. Да и много ли самолётов и спутников упало из-за программных ошибок?
VolCh
Сколько в процентах падает самолётов и вордов?
khim
Kriger91
А толку-то от этого железа по разумным ценам, если я набирая в браузере этот коммент вижу как запаздывает появление текста? Где польза от 16Гб ОЗУ, 4 ядра Intel Core i7, SSD?
mayorovp
И, что самое веселое, тут никакой js не виноват. Тормозит сам браузер, потому что ему забыли объяснить что содержимое textarea не влияет на размеры этой textarea, а значит и reflow всей страницы делать не обязательно…
Kriger91
Не совсем понял при чём тут js(хоть он и противен естеству). Моя ремарка лишь про то, что при текущем подходе работа на компьютере не становится эффективней, а все достижения в железе нивелируются говнокодом и борьбой с «преждевременной оптимизацией». При этом, никому не хватает времени, чтобы сделать работу хорошо. Зато оно всегда находится, чтобы всё переделать. Дважды. А потом купить новое железо, потому что старое не тянет.
PsyHaSTe
Почему не влияет? А если там есть какой-нибудь
textarea:contains("special"){...}
?mayorovp
Так его нет же…
IRainman
Напишите, пожалуйста, багрепорт авторам браузера. Я серьёзно.
0xf0a00
Я тут со своим Delphi в сторонке постою)
Вообще полностью согласен с автором, но войну добра и бабла всегда выигрывает бабло.
Am0ralist
Lazarus. Тот же самый по сути проект без шаманства вида «как собрать в размер дельфи» занимал раза в три больше места.
Ну и вообще, утилита уровня хеллоу ворд на 3,5к строк — 20 мб…
Не, знаете, как-то все грустно…
PsyHaSTe
Может дело было не в бобине? Вот тут на примере раста объясняется, но применимо к любым бинарям.
Am0ralist
Конечно, дело во мне, даже не спорю. Я ж не знаю, что и как мне надо делать, если пишу утилиту а-ля хеллоуворлд (на самом деле было — чтение текстового файла, немного простой математики и работа о сервисом ООо, плюс графическое окошко уровня — прямоугольник серый, парочки полей для выбора, парочка кнопочек).
Вот только просто понять, что куда ткнуть и что отключить, дабы оно не весило столько, сколько весило вначале… Ну то есть я должен об этом — задуматься. А потом, получив все таки те же 20 метров, что были на делфи у того, кто проект начинал, я должен еще разок задуматься и пойти куда-то оптимизировать еще больше…
Но вот я подключил десяток библиотек, типа с сложной математикой. Вызвал по паре раз из каждой по одной функции (дабы не пытаться написать свой не правильный велосипед), но в итоге что попадет в скомпилированную программу? Одна функция из библиотеки (ну или несколько, если та вызывает еще что внутри) или вся библиотека?
PsyHaSTe
с LTO — одна функция.
Am0ralist
Ну вот а под lazarus советы по уменьшению — это утилиты strip и UPX к *.exe применить полученному (ну ладно, там есть отдельно несколько настроек в IDE), но до сжатия delphi у меня все равно тогда выигрывал… про LTO для него не встречал.
Но вообще это всё взгляд именно абсолютно новичка. Нужно было кое-что — сделал, поужасался размерами, чуть исправил но всё равно…
PsyHaSTe
Собственно, я могу рассказать, что дебаг-сборка моего приложения на расте (небольшой бот на для телеграма) занимал 150мегабайт, скомпилированный в релиз с lto — 6 мегабайт… Так что действительно техника очень полезная. И можно действительно получить гигантский исполняемый файл, где непонятно, куда он вообще столько ест :)
Druu
Кек, целых 6 мегабайт какойто бот. А если бы этот бот был на ноде и весил тех же целых 6 мб интересно что бы сказали товарищи вроде автора обсуждаемой статьи? :)
khim
Druu
Давайте еще ОС тогда посчитаем? Бот же не в воздухе запускается? :)
PsyHaSTe
Ну самодостаточный бинарь и скрипт — все же разные вещи. А то так можно и на дуднете напиасать 100кб приложение, и забыть про гиг фреймворка на винте.
0xf0a00
Настройками проекта, что в Delphi, что в Lazarus можно выкинуть лишнее и файлы станут нормального размера.
serbod
Даже если выкинуть отладочную информацию из экзешника, современный бинарник стал «толще» за счет эволюции базовых библиотек, рассчитанных на кросс-платформенность и unicode. Но, при этом сохраняется совместимость со старыми версиями ОС и железа, что требует дополнительных проверок и «оберток». В любом случае, по объему это несравнимо с Android Support Library, которая идет в составе современных андроид-приложений.
SirEdvin
Читаю статью и комментарии и мне кажется, люди катастрофически не представляют, как весело программировали в 90-х и какие были веселые проблемы.
ОС за вас ничего не делает? Вы представляете сколько костылей, оптимизаций и драйверов предоставляет для вас ОС, что бы вы могли работать независимо от железа и не зубрить спеки?
Сравниваете современные редакторы кода и древний emacs? Я вам напомню, что emacs работает в терминале все-таки :)
Функциональность не растет? Вы вообще пишите хоть что-нибудь? Возьмите любой продукт из 90-х, он написал ужасно, выглядит ужасно, и работает так себе. Современный софт содержит кучу анимаций, обновлений в фоне, вебсокетов и прочего. Автор сетует на то, что "мы ожидаем, что никто не поменяет данные пока пользователь смотрит страницу"? Еще лет 15 назад это была аксиома.
Касательно машин это очень прохладная история, хотя бы потому, что КПД двигателей внутреннего сгорания все-таки ниже 100%.
Ну и касательно веса — большая часть веса приложений это чаще всего ресурсы. И что вы предлагаете с ними делать?
0xf0a00
Клавиатура гугл — 153Мб, Smart keyboard Pro — 5,9МБ. Расскажите какие же там ресурсы напиханы что разница в почти 30 раз? Карл 30 раз! Естественно я использую смарт клавиатуру, она не лагает, не занимает много места, у нее лучше оформление чем у гугловой(внезапно). Серебряная пуля для меня среди клавиатур на телефон, нету этих смайликов и прочего го*на, разрешения требует только те что реально необходимы (6 штук всего)… просто клавиатура и все.
SirEdvin
0xf0a00
Я ведь предоставить пруфы всегда рад. Да каюсь, не открывал детальную информацию о приложении, просто в меню посмотрел, не 153, а 134, но блин на эту разницу 4 клавиатуры влезет)
AlexZyl
У меня слегка иная картина: те же 130мб, но приложение — 75, данные — 50
0xf0a00
У меня из приложений от гугл только клавиатура(которую только что удалил) и хром. Возможно сказывается отсутствие гугл плея и всего что он с собой тянет.
SirEdvin
Ну, вот я привел ссылку на apk, которое вести 30 МБ, в распакованом виде 57.
Мне кажется, лишний вес может появится только из-за файлов ресурсов, разве нет?
0xf0a00
Да что вы молитесь на эти «ресурсы»… это универсальное слово которым можно все оправдать? Это так не работает. Конкретно, по факту что там может быть? Каждая кнопка клавиатуры в разрешении 4к? Любимый фильм лида?
Понятия не имею, что это за сайт, что там за апк и почему, я вам привел скриншот официального приложения установленного из плэй маркета.
PsyHaSTe
Ну например картинка с наложенным на неё красивым отфотошопленным текстом на каждом языке. Я i16n никогда не занимался, но например когда я смотрел размер дума, в нем 40 гигабайт из 60 как раз занимали ресурсы — текстуры, звук, ...
0xf0a00
Ммм… сравнивать игру ААА класса на продажи которой напрямую влияет качество и количество контента и клавиатуру, умно умно, но это не точно…
PsyHaSTe
Никто не сравнивает, вам говорят, что картинки и звук могут занимать столько места.
Например, локализованный логотоип на всех языках.
0xf0a00
30 раз.
ваш дум весил бы 620гб, а не 60.
больше холиварить я не намерен.
Akon32
Возможно, вам смайлики совсем не нужны, но видимо кто-то посчитал, что это киллер-фича. Их даже в юникод впихнули. И какой-то части пользователей они полезны.
0xf0a00
Да да вот именно по такому принципу и идет теперь разработка
ловите егоможет кому то нужно, а может и не нужно, пихай всем, ***** что качество софта упадет… главное здесь и сейчас пользователя окучить.Saur4iG
А может остальным это и нужно? Вы можете не поверить, но никто не будет использовать приложения без анимаций и красивостей…
Или просто так в прошлом году apple на презентации какулю показывали?) Люди хотят видеть подобное и им полностью плевать сколько памяти это занимает и как работает под капотом
prs123
Более того, если вы будете выдвигать приложение в AppStore, то без всех этих фишечек, анимаций и красивых иконок ваше приложение скорее всего и модерацию то не пройдёт
sumanai
Серьёзно?
prs123
Более чем. Существует огромный ворох т.н. гайдлайнов, в которых это все описывается. Ручная модерация в основном и занимается проверкой соответствия этим гайдлайнам
Antidipressant
А Вы в курсе, как сейчас молодежь называет людей, которые вместо эмоджи используют смайлики в виде скобок? Если нет — погуглите :) А то не хочу выражаться :)
vis_inet
Заинтриговали! )
InterceptorTSK
А вы в курсе как называют молодежь в любое время? Хоть щяс, хоть 100 лет назад хоть 300… И да, гугол тут не нужен вовсе…
Antidipressant
Какое это имеет отношение к теме?
Мой посыл был в том, что сейчас «быстрое» приложение «без рюшечек» основной массе не интересно. По этому, то что у Вас будет, к примеру, простой мессенджер, который умеет только отправлять текстовые сообщения и ничего больше, без анимаций с самым простым дизайном — вряд ли им будет пользоваться широкий круг людей.
Ах да, забыл, без аналитики вам будет очень и очень сложно развивать продукт в «правильном» направлении. А если еще у Вас основной бизнес строится по на рекламе, то дополнительный, скрытый функционал приложения может быть толще самого приложения.
IRainman
Я вообще использую Hacker's Keyboard, там вообще чуть больше 1 МБ и удобные для меня фичи.
novice2001
Да-да, вот именно, куча анимаций и прочей фигни, которые не имеют к основному функционалу приложения ни малейшего отношения, зато увеличивают его вес и тормоза при использовании.
SirEdvin
Да, особенно real-time обновления не имеют никакого отношения к функциональности приложение.
И удобные оповещения, наглядная навигация тоже.
0xf0a00
Давайте манипулируя абстракциями дойдем до того что в любое приложение надо будет впирать функционал целой ОС и еще чуть чуть.
JTG
Тут вот товарищи из Dropbox как раз завезли удобные оповещения. У меня есть ноутбук с Windows 7, где у Dropbox была стандартная плюшка с баблом в области уведомлений:
Но потом, слава автообновлению, подвезли версию, в которой, наколхозили некий «polyfill», на который наверняка потратили кучу человеко-часов, и пытающийся маскироваться под уведомления в стиле Windows 10
Давайте же посмотрим как улучшился UX. Было:
— Крестик для закрытия
— Уведомления подчинялись настройкам уведомлений системы
— Кнопа для отключения надоедливых уведомлений была прямо на ба?бле
— Бабл закрывался по таймауту
— При уведомлении об изменении файла, клик открывал папку Dropbox с выделенным файлом
Стало:
— Крестика нет (Возможно, он появится при наведении? Но это не точно)
— Уведомление висит и не закрывается
— После некоторых обновлений это колхозное уведомление начинало перехватывать фокус. Может выбросить из полноэкранного режима
— При уведомлении об изменении файла, клик больше не открывает не папку. Теперь запускается браузер с сайтом Dropbox
Разумеется, это частный случай, но очень показательный. Десктопный софт стремительно тупеет.
SirEdvin
Хм… опять же, а причем тут программисты? Думаете, они такие "а, поломает то, что неплохо работает без видимой на то причины"?
А если заказчик сказал "должно быть на всех устройствах одинаково", то тут уже ничего не попишешь.
novice2001
А здесь неважно кто именно виноват, важно что под видом полезных обновлений продвигается неведомая и никому кроме менеджеров-идиотов ненужная фигня. И так не только в дропбоксе, а везде.
SirEdvin
А вы вот прямо уверены, что не нужная? Или не нужная именно вам, так как вы не попадаете в ЦА этой фичи, а, скажем, 60% пользователей эта фича как раз то, что нужно?
novice2001
А вы можете доказать что нужная и именно 60% аудитории?
SirEdvin
Я предполагаю, что такая крупная компания как Dropbox не делает что-то просто так, они считают что это или снизить издержки или повысит прибыть.
Вы не согласны?
Ну и доказать, что что-то нужно какому-то проценту аудитории возможно только постфактум.
novice2001
Я предполагаю, что любой компании кажется, что когда она что-то делает, то она сделает это обязательно для пользы. Но «кажется» и «на самом деле» — это очень разные вещи, иначе компании не разорялись бы.
SirEdvin
А вы можете предложить что-то другое? Принятие решений в условиях неопределенности это довольно сложная задача и там можно выбрать только самый оптимальный результат, а не лучший.
novice2001
Так и не надо приводить это в качестве аргумента. А то в одном комменте вы пишете «раз компания это сделала, значит они считают, что это поможет», а потом «ну так получилось, другого способа-то нет».
Другого способа конечно нет, но именно поэтому сам факт принятия того или иного решения никак не значит, что оно будет полезно хоть кому-нибудь вообще. Самый эпичный пример — кинопоиск 2.0.
Не надо делать всякий бред и говорить «смотрите, вот как хорошо!». А когда аудитория говорит «Нет, не хорошо», ей отвечают «Вы дураки, у нас тут дезигнеры, они лучше знают как для вас лучше».
IRainman
Потому что он не десктопный, что Dropbox, что Skype 8 типичное браузерное наколенное поделие которое тащит за собой ещё и вебкит для работы.
engine9
Тут еще и безграмотные (или просто ленивые) дизайнеры руку прикладывают. Иногда расковыриваю чужие иконки или 3Д модели, так они часто бывают крайне избыточные.
Недавно переделывал 3Д модель которая должна рендериться в размер 320х640 пикселей, по причине того что заказчик жаловался, что она как-то тормозит. Так мой предшественник сетку из автокада вывел и прямо загрузил чуть ли не 1 миллион полигонов. Даже не заморачиваясь.
Час работы и ужал лишнее до тысячи, не потеряв ни капли в гладкости рендера, зато фпс вырос в разы и скорость загрузки.
Что-то мне подсказывает, что все эти анимационные свистоперделки делают аналогичным образом. И палец о палец не ударят чтобы оптимизировать вектор.
Mabusius
Был у меня проект на Зенде первом. И были там очень заковыристые хлебные крошки с которыми я ковырялся очень долно пытаясь заставить их быть такими как надо. И где то через год наконец дошли у меня руки посмотреть откуда же идут исходные данные для этих крошек… Оказалось, что мой предшественник забил на хлебные крошки, которые у него были, и написал новые с нуля. Я пошел глубже и оказалось, что и его предшественник забил на хлебные крошки, которые поставлялись зендом, и написал свои с нуля. При этом ни один из уровней хлебных крошек даже не был удален, типо «работает — не трогай». Тоесть крошки генерировались три раза… Я тоже не стал ничего исправлять, так как уже и так собирался менять работу :).
prefrontalCortex
Это один из режимов работы. У emacs есть режимы работы в оконных окружениях (X11, Windows).
JTG
Нет, давайте лучше возьмём из 2000х. Totalcmd, KeePass, PuTTY, WinAMP, позже Foobar, Notepad++, WinRAR/7-Zip, WinHEX… У меня до сих пор стоит Office 2003 (с Compatibility Pack для поддержки OOXML) потому что, мать его, он работает и выполняет мои задачи. Это всё примеры «доделанного» и по-настоящему утилитарного софта, который продолжает хорошо делать то, для чего был написан, а не морфировать значок квадратика в крестик на GPU. Так ли ужасен был QiP 2005? Чем была плоха возможность настройки внешнего вида приложения, изменения размера шрифта, количества сообщений на странице в мессенджере? Что мы получили взамен — возможность выпускать новую версию каждую неделю (зачем?) и постить в чат фрагменты мультиков в формате mp4?
P.S. Ещё такое наблюдение
Раньше:
— Любой школьник мог взять Delphi 7 и с минимальными усилиями сделать windows-приложение, которое ужасно выглядит и медленно работает.
— Средний программист мог взять Delphi 7 и с минимальными усилиями сделать windows-приложение, которое нормально выглядит и нормально работает.
— Хороший программист мог взять Delphi 7, заморочиться, и сделать windows-приложение, которое хорошо выглядит и хорошо работает.
Сейчас:
— Любой школьник может взять Electron, неделю смотреть видеоуроки и настраивать тулчейны, потом сделать приложение, которое хорошо выглядит и медленно работает под любой платформой.
— Средний программист может взять Electron и с минимальными усилиями сделать приложение, которое хорошо выглядит и медленно работает под любой платформой.
— Хороший программист может взять electron, заморочиться, и сделать приложение, которое хорошо выглядит и медленно работает под любой платформой.
— Компания Microsoft может взять Electron, заморочиться, и сделать приложение, которое ужасно выглядит и медленно работает под любой платформой.
Neikist
Ну справедливости ради я знаю единственную программу под электрон которая работает более менее нормально. И она именно от майкрософта. VSCode. Правда я слышал что натива там очень немало.
Alexey2005
Хороший программист и сейчас может создать быстрое приложение на Electron. Для этого в общем надо сделать всего две вещи.
Первое. Отказаться от DOM, с которым связана львиная доля тормозов. Хотя все современные фреймворки создают «буферную» замену DOM, обращаясь к «реальным» объектам только где без этого совсем никак, это всё равно медленно.
Фактически, нужно просто взять один большой Canvas во всё окно и рендерить всё что нужно на нём вручную. Причём процедур рендеринга нужно написать несколько, под разные виды устройств (в зависимости от того, какие операции попадают под хардварное ускорение).
Второй источник тормозов (и заодно зверского потребления памяти) — сборка мусора вместе с автоматическим управлением памятью. Чтобы решить эту проблему, разработчик должен великолепно знать, как осуществляется управление памятью в Electron и, пользуясь этими энаниями, написать на JS собственный менеджер памяти. Как? Ну, почти так, как это делает Emscripten: создать ArrayBuffer и повозиться со всеми этими типизированными массивами, представлениями и блобами. Причём проблемы возникнут ровно те же, что у плюсовиков: утечки и ситуации, когда указатели внутри этих буферов внезапно начинают указывать куда-то не туда.
Конечно же, стандартные фреймворки, которые не способны работать в таких условиях, сразу же идут лесом — вместо них придётся колхозить своё. В том числе грамотно написать обработчики событий, чтоб всё не вставало колом, а это опять же квалификация.
Но ведь кодер, способный на такое, он и стоить будет как плюсовик. А в чём тогда смысл? Electron нужен-то как раз для того, чтобы любого индуса после трёхмесячных ускоренных курсов можно было посадить за код, и созданный продукт даже как-то работал.
picul
А можно пожалуйста ссылку на мир, в котором плюсовик стоит дороже, чем расфуфыренный JS-developer? Я вот ни разу такой картины не наблюдал.
Alexey2005
www.itjobswatch.co.uk/jobs/uk/c++.do
www.itjobswatch.co.uk/jobs/uk/javascript.do
Сравните Salary trends и соответствующие гистограммы на этих страничках. Даже средненький C++ кодер — это порядка ?50к, что несколько дороже среднего JS-кодера (?40к). Топовая часть гистограмм говорит сама за себя.
picul
Ну Вы и сократили, там средняя вроде 47.5K для JS и 52.5K для С++ — разница мизерная, как по мне. В топовых — да, по-больше, но что-бы переплюнуть JS много топовых плюсовиков не надо)) Так что в общем случае переплаты минимальны, если вообще присутствуют.
Не холивара ради, но тыкнул по Java — дак они вообще больше плюсовиков получают. ИМХО вот где первые кандидаты на реорганизацию.
Alex_ME
Етижи-пасатижи, куда мир катиться?!
Т.е. мы берём веб с кучей средств рисования, ресайза под размер итп итд и выкидываем нафиг, начиная все контролы и прочее с нуля рисовать, мышку обрабатывать итп, как в старые времена. У и ради чего? Ради электрона ради электрона? Ну так взять окно с опенгл и рисовать.
SirEdvin
PuTTy — лютый шлак с максимально не очевидным интерфейсом. Людям, которые к нему привыкли может быть и ок, но посмотрите на интерфейс, например, Termius.
По остальным инструментам вы совершаете простую ошибку — они служили исключительно для одной цели и делали ее хорошо. И сейчас такого софта навалом, правда. А вот когда нужен софт, который будет делать много разных штук из коробки, тогда начинаются проблемы.
Скорее всего, вы просто используете его как продвинутый блокнот без какой либо серьезной верстки или макросов, я прав?
Отвратител. К вопросу что мы получили взамен — я получит возможность использование ChatOps, интеграции с мессенджерами вплоть до решение инцедентов прямо из них. Нужно ли это? Еще как.
P.S. Вы и сейчас можете взять делфи, он все еще живой. Что ж не берете то?
sumanai
Так может такой софт на самом деле и не нужен? Зачем календарю возможность вставки эмодзей и видео в 4к?
SirEdvin
Она не нужна. И есть прекрасные календари без нее.
Но вот тот же слак, который тут ругают содержит безумное количество различных полезных вещей, которые люди просто не привыкли использовать и это исключительно их проблемы.
И опять же, електрон они выбрали только по одной причине — потому что пилить еще отдельно десктоп очень дорого.
picul
А мне не дорого отваливать деньги за приложение, окно которого открывается не быстрее, чем за 5 секунд?
PsyHaSTe
Не отваливайте
SirEdvin
Не открывается — всмысле не запускается или каждый раз вы 5 секунд ждете?
Если каждый раз — у вас что-то не так.
Если при первом запуске — ну, 5 секунд можно и подождать на старте компа, для меня его функционал в целом перекрывает эту мелкую проблему.
picul
Имею в виду щелканье по иконке в трее для того, что-бы развернуть окно. Окно то разворачивается, но в течении нескольких секунд рисует всякие овалы вместо контента.
Справедливости ради, возможно на счет 5 секунд я и перегнул, но задержка в 1-3 секунды есть всегда. Зато иногда мы просто зависаем, и что-бы увидеть полученное сообщение приходится убивать процесс и запускать заново.
Комп не топовый, но и не старье, работается вполне нормально.
ValdikSS
Во-первых, все компилируется в нативный код с минимальными накладными расходами. Исполняемый файл получается маленького размера, запускается моментально, работает быстро.
Во-вторых, на Delphi можно писать под Windows, macOS, Android, iOS, и даже веб, используя стандартные компоненты. Для веба Delphi-код компилируется в Javascript-код.
В-третьих, если вам нужно написать какую-нибудь простую программу и быстро, в течение, скажем, 20 минут, Delphi — идеальный вариант. Qt, C#, Mono, Java просто не сравнятся. Такое чувство, что RAD Studio сделана для людей, а все остальное — для свиборгов.
PsyHaSTe
Хмм, каким образом C# (который исторически "более лучший" дельфи, скрещенный с плюсами и подглядывающий за джавой) менее удобен, чем дельфи? Не, я могу понять про сложное десктоп-приложение, где под Дельфи наверное тысячи компонентов придуманы, но вот как раз простенькая тулза на шарпе напишется в полпинка. Удобные новые пакеты, linq, IDE явно удобнее RAD Studio (хотя я там не очень много работал, но в студенческие годы все же прилично посидел в них), ну и может еще что-то, но смысла перечислять не вижу, этого уже достаточно, чтобы сделать быстрое и удобное решение.
Расскажите подробнее, что именно вас смущает?
khim
Результат?
PsyHaSTe
dotnet publish + ilmerge, будет вам один бинарь, не вопрос. Только смысла всё еще не вижу.
Результат — работающее приложение. И по моему опыту оно тоже получится работающим.
khim
Смысл в том, что заказав приложение… люди хотят получить приложение. Бинарник.
.exe
-файл. Нажми на кнопку — получишь результат. А не гору каких-то непонятных файлов, среди которых неясно — что и запускать-то.Если прочитать достаточное количество статей и прочего — да, наверное. Но в Delphi — оно такое получается «из коробки».
PsyHaSTe
Это и есть netcore. Проблем там нет.
А это и есть цирковой номер. Примерно, как требовать игры не зависеть от C++ Redistrutable.
Не знаю, открою ли я секрет, что .net предустановлен во всех виндах начиная с XP, и вы точно так же на нем можете распространять "портабельные" приложения (хотя всё еще не вижу больших проблем).
Вы ведь в курсе, что GeForce Experience и Amd панелька это .net-приложения? И они умудряются как-то запускаться с одного install_driver.exe.
khim
В курсе. Это сложно было не заметить: когда вместо быстрой и маленькой приблуды мы получили «прогрессивного монстра на сотню мегабайт» — об этом даже журналисты написали некоторые.
PsyHaSTe
Странный у вас XP
Хотя один фиг, XP я последний раз видел лет 10 назад, когда поставил себе семерку. Что уж говорить про 2018 год.
А я вот не заметил, пока в декомпилятор ради интереса не заглянул.
khim
Windows XP: August 24, 2001
.NET Framework 1.0: February 13, 2002
Было бы странно и удивительно если бы операционка, выпущенная в 2001м году содержала бы компонент, выпущенный в 2002м? Они и не содержала…
А уж сколько лет после этого нельзя было ни рассчитывать на то, что .NET у клиента установлен, ни на то, что он «легко» может скачать 20MB (в те времена ещё флоппи в ходу были, 20MB было большим объёмом).
PsyHaSTe
Разговор был не про август 2001, а про то, что в 2018 году простое десктоп-приложение на дельфи написать проще, чем на шарпе.
khim
Конечно приложения на том языке, которому разработчик операционки даёт специальные привилегии писать проще. Будь то C# для Windows или Java для Android.
Хотите более-менее объективного сравнения — сравните C# и Delphi приложения под Android или iOS. Есть ощущение, что на Delphi попроще будет.
Но на тему того, что и кто обсуждал — то фраза Не знаю, открою ли я секрет, что .net предустановлен во всех виндах начиная с XP, и вы точно так же на нем можете распространять «портабельные» приложения была вами произнесена, вас никто за язык не тянул. Дальше, если углубиться в версии .NET, то окажется, что собрать что-нибудь для .NET 1.x соверменными тулами — очень непросто. а .NET 2.0 — это уже 2006й год, XP тут и не пахнет… что, кстати, очень хорошо объясняет почему поддержка XP для многих разработчиков — большая проблема.
PsyHaSTe
Да пожалуйста, Xamarin получше будет, как мне кажется. Хотя на дельфи под мобилки я не писал, но прекрасно помню, как с ней возился.
Она была произнесена в контекста 2018 года. Если кто-то вдруг по каким-топ причинам в 2018 году использует XP, то это SP3 со всем фаршем, и именно фреймворками, драйверами и т.п. Сравнивать с XP момента выхода смысла нет, если сейчас они вдруг где-то и используются, то их существование пренебрежимо мало.
0xf0a00
habr.com/post/423889/#comment_19135891
Это вот этот вот монстр от которого комп можно спасти только полной переустановкой винды лучше радстудио?
Visual Studio 2005 vs Delphi 7 еще может быть, но современные если сравнивать то визуал студио задыхается под собственным весом.
PsyHaSTe
Минимальная установка VS2017 — 300мегабайт.
Про открытие многомегабайтных файлов отлично рассказывает этот комментарий: https://habr.com/post/423889/#comment_19140333.
То есть попросили в 32-битный процесс загрузить 3гб данных и удивляемся, а че оно так не быстро работает… Ну ок.
Если вы постоянно вместо того, чтобы работать с кодом открываете и закрываете огромные XML-файлы, то может RAD studio и лучше.
0xf0a00
И какой у него функционал? Подозреваю что околонулевой.
Если читать комментарии не выборочно, то там же написано что фар не остановило бы ни 32 бита архитектуры, ни ограничение по памяти.
Я ей постоянно пользуюсь, она отзывчивая и без лишнего хлама. Этого мне достаточно что бы считать ее лучшей ide для разработки на десктоп.
PsyHaSTe
Понятия не имею, у меня нет проблем поставить 10гигабайтную IDE со всем, что мне нужно (и сверху какой-нибудь решарпер впилить), потому что моё время дороже, а места на винте — завались. Я же сам конечный пользователь, и мне себя более жалко, чем жестки диск, который и так наполовину пустой.
Где-то я это уже видел...
0xf0a00
Рад за ваш жесткий диск, только то что вы можете ее поставить проблем ее перегруженности и тормознутости не решает от слова совсем.
Причем язык к ide мне не совсем понятно. Опять таки поднимается вопрос о вашей квалификации и достаточно ли ее. Тем более в сравнении языков(которые в принципе мало сравнимы). Видимо вы где слышали краем уха что модно засирать Delphi, но разобраться что к чему у вас не хватило то ли усидчивости то ли айкью.
PsyHaSTe
Когда я работал с дельфи, я про рефакторинги и прочее в жизни не слыхивал. На уровне Delphi7 студия в такой конфигурации явно может работать.
тогда к чему вы привели размер приложения?
К тому, что если вы не понимаете, к чему часть функционала, это не значит, что это «хлам».
Ad hominem, отлично
сравнивали на задаче «сделать простое простое приложение». Я так думаю, любой адекватный язык можно сравнить на этой задаче.
Просто тупой вброс
novice2001
Word не предназначен для вёрстки, для неё существуют совсем другие приложения.
И в целом, расскажите, какие существеннейшие изменения произошли в Word между 2003 и 2013/2016 версиями, что он стал намного тяжелее и медленнее?
Am0ralist
Ну так-то и 97 ворд был в чем-то лучше 2003, он, как минимум, у меня не крашился постоянно на файлах с количеством страниц от 500 до тысячи…
Ну т.е. 2003 мог в рандомный момент упасть просто так даже при чтении но минимум раз в час. А в 97 — его спокойно можно было редактировать активно и все было норм… Эх)
SirEdvin
Набор документа с правильными отсупами, форматированием, заголовками, автоматической нумерацией и прочими прелестями — это верстка.
Если вы не это все не используете, я за вас рад, но Word в таком случае вам просто не нужен, возьмите тот же Sublime.
novice2001
Действительно, идиоты зачем-то пользуются Adobe InDesign (и даже, страшно сказать, покупают его), когда, оказывается Word — это и есть программа для вёрстки… Да, еще какой-то Donald Knuth придумал какой-то TEX, вот ведь смешной старик, наверное просто не знает про Word… Вы его просветите там, а то он уже 40 лет на него потратил.
SirEdvin
То, что функционал Word не хватает на что-то серьезное и то, что он проигрывает TEX практически во всем — это другие проблемы.
Функционал то в нем есть, и он обновляется, а то, что он не нужен вам и скорее всего, значительной куче людей — это другая проблема, правда.
novice2001
Это вообще не проблемы Word, поскольку он никогда и не позиционировался, как система верстки. Это текстовый процессор.
А что там появилось в Word 2013/2016 вы так и не ответили. Именно потому, что ничего принципиально нового и полезного в т.ч. лично для вас там не появилось, ибо иначе вы легко и непринужденно ответили бы на вопрос вместо описания несуществующих проблем.
Grox
В Word 2010 появилась возможность форматировать и отпечатеть документ в виде книги. Ранее это делалось с плагинами. В одной из компаний это был частый случай использования.
khim
Принято. А теперь вопрос: сколько занимал тот плагин и сколько занимает MS Office 2016? В памяти и на диске? И почему нельзя было просто использовать плагин, вместо того, чтобы превращать офис в монстра?
Grox
Так это один из примеров доработанного функционала. Сколько их ещё? Я думаю, что вы можете найти ответы в списках изменений по версиям.
khim
Могу. Но все они не дадут ответа на вопрос: зачем. Зачем нужна вся эта архитектурная астронавтика, если все полезные фичи можно сделать аддонами для MS Office 2000 (а то и для MS Office 97)?
Проблема в том, что в развитии офиса (как и почти любого современного софта) произошли две вещи:
1. Добавление кучки мелких фишек, которые реально облегчают людям жизнь
2. Добавление 100500 уровней абстракции, которые только лишь в приводят к потерям ресурсов и замедляют работу
При этом такое ощущение, что всё это сделано для того, чтобы кто-то получил promotion. Ну потому, что за добавление «печати документа в виде книг» вы promotion не получите, а за добавление нового слоя абстракций, на разработку которого ушло 10 человеко-лет и который ни одной проблемы не решил, но зато породил два десятка красивых презентаций — легко.
Всё тот же самый «секрет айсберга» — но уже по отношению к руководителям компаний…
Sychuan
Ворд применяется для верстки офисных документов,, которые могут быть довольно сложными. Короче все что можно печатать на принтере. ИнДизайн применяется для верстки полиграфической продукции. И отчеты с приказами им никто не верстает.
novice2001
Не нужно называть версткой форматирование, вот и всё.
mkshma
Форматирование является подмножеством верстки.
SirEdvin
Сейчас бы называть создание автономной формы или диплома форматированием.
Вы из тех, кто нумирует формулы в ворде вручную?
0xd34df00d
А чего там диплом создавать,
\usepackage
нужный и всё.Посмотрел бы я, кстати, на версионирование диплома в ворде по мере его написания и общения с научруком.
SirEdvin
Ахахахаха, очень смешно.
На самом деле нужно подключить XeLaTeX, потом еще довольно много подбирать нужные параметры, поменять нумерацию, написать свой формат литературы, потому что в интернете можно найти только российский и то устаревший и все равно надо вставлять костыли и склеивать section и subsection, если между ними ничего нет, так как сделать это из tex очень сложно.
Но это все равно лучше. чем в ворде, да.
Но вообще-то, ворд умеет.
0xd34df00d
Зачем так сложно? УМВР, при этом половина пакетов скопирована из статей, которые я перед этим по теме диплома публиковал.
А sty я у одногруппников взял.
За разбитие по главам вам лойс, кстати.
SirEdvin
Ну, очевидно, потому что у вас так себе подходят к проверке на соответствование госту.
У вас тут как минимум нет:
Вполне возможно, что я чего-то не знаю, так как вижу в другой стране, но у нас все эти пункты строго проверяли, поэтому надо было фиксить :)
0xd34df00d
А, ну я не уверен, что у нас вообще сам текст читали, это да.
Вот с библиографией для публикации в разных журналах регулярно мучиться приходилось :(
swelf
То что он стал лучше, наверно, но соразмерны ли эти улучшения, увеличению размера/расходу памяти/процессора? Чтобы починить правильные отступы надо увеличить размер в 10 раз?
PsyHaSTe
Да, нужно.
swelf
Почему нельзя внести эти изменения увеличив потребление ресурсов на 5%, что конкретно заставило офис вырасти на порядок? Количество функций увеличилось на порядок?
PsyHaSTe
Потому что правило 80/20. Для добавления 20% нехватающего функционала нужно в четыре раза больше усилий и кода.
swelf
ну знание правила парето не дает основания пихать его как аргумент куда угодно бездумно.
Так что вырос объем от чего угодно, но не от новых функций и фич.
PsyHaSTe
Не нужно быть ученым, чтобы понимать, что полноценный продукт содержит на порядок больше кода, чем прототип, который визуально делает то же самое. Это как истории, когда человек показывет JS-прототип без бэкенда, а клиенты уже думают, что на 90% реализовано. А потом не понимают, почему релиза все нет и нет…
Ну например, новая версия может содержать интернационализацию на много языков. Тут возникает проблема с тем, что в кнопки не влезают тексты. Окей, запиливаем модуль масштабирования текста, причем так, чтобы с ним работали даже программы, которые про него не знают. Фух, написали кучу сложного кода, но работает, из коробки и правильно! Отлично. Ан нет, пришли из отдела эргономики, говорят, что у арабов от менюшки слева голова кругом идет, нужно чтобы было справа. «Окей» говорим мы, и начинаем воротить систему автоматического зеркалирования интерфейа (но не всего, а то не дай бог отзеркалировать что-нибудь не то, что надо), опять начинаем тестировать, находим кучу несовместимостей с существующими приложениями вроде игр… Продолжать можно до бесконечности, но именно все эти «свистоперделки» это то, что хотят пользователи — чтобы из коробки всё работало, как надо, и не важно, сколько лишнего места на винте оно займет.
khim
Ну то есть вместо работающей реализации мы досыпаем говнокода, а потом ещё обматываем говнокодом и присыпаем сверху ещё порцией говнокода.
Всё понятно, кроме одного: что мешало просто взять — и сделать так, как это было задумано (и работало!) 20 лет назад?
Нет. Работает неправильно. Глючит. Кнопки разъезжаются и нам приходится костылять новые костыли поверх старых. И потом обматывать это скотчем и эвристиками. Потому что если разработчик об этом не задумается во время проектирования программы, то сколько костылей не пристраивай — а всё равно что-нибудь, где-нибудь да отвалится.
И это тот же MS Office 2000 умел, да.
Пользователи хотят, чтоб оно работало, а не глючило, на самом-то деле. А все эти потуги сделать так, чтобы работало без того, чтобы на это внимание разработчики программ обращали — ничем хорошим не кончаются. Результат всё равно напоминает руссификацию DOS'овских квестов со всеми этим «Окрт» (вместо «Open»).
Если же не ставить задачу как: «у нас есть куча дерьма, но мы хотим сделать вид, что это такая конфетка», то… всё это не нужно.
Количество людей, работавших как с классической линейкой (MS Office 95-2003), так и с новомодными извращениями (2007-2016) и при этом не оплакивающих «почивший в бозе» «старый мир» — ничтожно мало. Большинство «фанатов» нового интерфейса — это люди, которые старого в глаза не видели… в чистом виде стокгольмский синдром.
PsyHaSTe
Одно изменение, которое я точно помню произошло после 2003 — появление риббона. Супер-удобная штука, которая является объективным шагом вперед. Но у вас видимо клин сошелся на 2003.
У меня ни один ворд никогда не глючил и работал, что 2003, то 2007, что 2010, что 2013, что 2016. Может, вы не правильно его готовите?
Хех, согласен. только это скорее синдром утенка, что люди не захотели учиться ничему новому, а первый увиденный интерфейс остается самам удобным навсегда. Тот же риббон сюда же «староверы», которые в ворде почти не работают любят вздыхать «ах вы, куда вы дели мои менюшечки. Клятый майкрософт».
khim
Скорее 2000й. 2003й — это первый, робкий, шаг в сторону подхода «а давайте добавим свистоперделок, которые жрут ресурсы и не дают никаких новых возможностей». Но да, до 2007го и последующих ему далеко.
Дык они с самого начала более-менее грамотно написаны. Тот факт, что после добавления бессмысленных перделок потребление ресурсов возрасло, но программа не стала глючить — это неплохо, в общем и целом… но вроде бы цель была не в этом, а в том, чтобы заставить правильно работать плохо написанные программы? Этого — не получилось.
Извините, но нет. Переходу с Lotus 1-2-3 на Excel этот синдром не помешал, появление тулбара с кнопками в Excel 3.x (да-да, представьте себе, тубары тоже не сразу появились) было принято «на ура». Табы в Excel 5.0 тоже отторжения ни у кого не возвали. И даже разного рода «игры с цветами» с MS Office 97 до MS Office 2003 не особо раздражали.
А вот ribbon — это да, MS Office 2007 насаждали «огнём и мечом»… Если бы MS Office 2003 продавали и поддерживали бы сейчас — он вполне бы пользовался спросом…
Тут вы правы. Я в ворде мало работаю (так как вообще не понимаю зачем и кому он в сегодняшних условиях нужен). А вот LibreCalc использую частенько. Перешёл с Excel когда тот превратился в тормозилово… Забавно, что до MS Offcie 2007, наоборот, исторически, OpenOffice жрал больше ресурсов и тормозил… а сегодня — вот так…
PsyHaSTe
Как вы умудряетесь замечать лаги ворда? Как я печатал, так и появлялся символ за 16.6 мс на экране. Я не понимаю, что работает «заметно медленнее». Вот когда я сейчас набираю сообщение, я вижу как запаздывает на 300-400 мс появление набираемого текста, вот уж действительно лагает так лагает. Ворд себе никогда такого не позволял, ни на каком железе.
Есть вполне объективные критерии оценки UX, в частности «кликов для выполнения задачи», «частота этой задачи» и так далее. У риббона эти показатели выше, потому что частоиспользуемые операции положены ближе, и за счет общего устройства.
То, что мне кажется и вам кажется — это одно. А я читал анализ UX-дизайнера всех ключевых особенностей. И статистика не на вашей стороне — время совершения частоиспользуемых функций с риббоном снижается вполне объективно.
khim
Я тоже так думал, пока не увидел его на «компьютерах для бухгалтерии», где в ТЗ было «общая цена — $300 за рабочее место, включая монитор и либо мини-корпус, либо моноблок».
Вот только почему-то практика эту теорию не подтверждает. Я видел исследования в крупной компании, где в 2007м году исследовали этот вопрос — без измерения параметров типа «кликов для выполнения задачи», но с замером времени на выполнение типовых задач средним работником.
Сразу после пересадки с MS Office 2003 на MS Office 2007 эффективность работы падала катострофически, но через две недели скорость возвращалась — однако не до конца, всё равно задачи решались медленнее, чем в MS Office 2003. При переходе на OpenOffice.org катастрофического падаения не было, но и возврата назад не было тоже.
Более внимательное наблюдение показало, что происходило это из-за отличий во внутренней логике, которую переход на MS Office 2007 не менял, а переход на OpenOffice.org — менял. Простейший пример: задача добавить в документ нумерацию старниц. В MS Office (любой версии) как «Вставить->Номер страницы», после чего Word спрашивает «а куда, собственно: вниз, вверх, нужно ли на первой странице?». А в MS Office — вставляется поле с номером… и всё. То, что там нужно сначала добавить колонтитул, а уж потом, в него — вставить соотвествующее поле многие не могли вспомнить и через две недели.
В результате перешли-таки на MS Office 2007 — но только и исключительно потому, что лицензий на MS Office 2003 больше купить было нельзя.
shurricken
ну да только риббон)) почем у он всем должен быть удобен??? да еще и в разных версиях в разные места там функции убегали…
вот радости-то помнить для всех версий что и где…
как и предыдущий пост давно пользуюсь «экселем» от опенофиса, а поддерживался бы старый оригинальный «эксель» пользовался бы им по-прежнему…
PsyHaSTe
Выше ответил. Потому что снижается количество кликов для выполнения частовыполняемоей операции Х. В итоге интерфейс не такой — да, надо переучиваться -да, но он не плохой — нет.
ne555
Крайне не согласен, обслуживаю в промышленности промышленники на dos/98 и на winxp. Скады на xp валются, для них куча заплаток (прям как в статье написано: скрипты на перезапуск), 98 работает, как ни в чем нк бывало.
От датчика идет провод, все работает, но там, где вместо провода радиоканал-это просто дерьмо, но все вынуждены мириться даже сверху. Могу написать целую статью в поддержку автора и не понаслышке.
SirEdvin
Это круто, а вы разобрались в причинах или просто «ну, на 98 работает, а на winxp — нет, значит новомодные программисты виноваты»?
ne555
На win xp sp3 разбирались многие, даже представители скады, в итоге (не разобрались) только заплатка, которая через ~пол года дает сбои.
serbod
Просто в 98 мало проверок, прога может лазить в чужую память, пользоваться закрытыми хендлами и дескрипторами, и ей за это ничего не будет. Вот только от этого может рухнуть вся ось целиком (с повреждением файловой системы!), а не отдельное приложение.
ne555
За 15 лет ничего такого о чем Вы пишите, потому что это промышленник (арм), там только и должен работать этот софт от лета до следующего лета.
sys_int64
Не знаю про 90е, но вот я помню как работал в 3D редакторе — Maya 7 с 1 ГБ оперативки и все летало, на больших сценах у меня начинала тормозить графика, в итоге докуил еще 1 ГБ оперативки и программа стала просто нереально быстрой.
sys_int64
а вот emacs'ом я и до сих пор пользуюсь, второй после IDEA инструмент для написания кода.
Crandel
Я на "древнем" емаксе за 2 минуты делаю то, что любители всяких студий от некрософта пыхтят и мучаются мышкой по полчаса. Используя тайловый менеджер без единой анимации, я на порядок быстрее работаю за своих коллег с их гномами или кедами, потому что пока они мышкой наведут на окно, пока анимация, пока окно откроется, я уже сделал все необходимое и вернулся обратно в редактор. Все эти рюшечки только отвлекают от задачи и сильно бесят. Я сейчас работаю в режиме, как только мысль появилась, она сразу автоматом воплотилась в код.
SirEdvin
Если сравнивать тот же emacs с продуктами от JetBrains он проигрывает практически во всем, в чем сильна ide.
Если же сравнивать emacs с чем-то не ide, например, sublime — все работает практически так же быстро, если не наставить кривых плагинов.
О класс, и я так делаю. Я использую awesome WM и давайте я перечислю список того, что работает плохо:
А так да, довольно классный подход, но с теми же недостатками, что описали выше — авторы DE уже просто поели проблем, а вам это только предстоит и вы скорее всего просто заточите ваш тайловый менеджер под конкретную версию дистра и при обновлении будете страдать.
Crandel
Я использую і3 и уже 2-3 года почти не меняю конфиг, последнее изменение — i3status-rust. Только один скрипт использую, который таймером раз в час запускается и проверяет, если нету процесса i3lock — запускает новый. Делаю на работе перерывы на 5 минут. xxkb у меня показывает текущую раскладку клавиатуры. Украинский и английский настроены в иксах + русские буквы переключаются через правый альт а немецкии умлауты добавляются с помощью композ, назначенной на принтскрин. Проблема за это время была только одна — трей, некоторые приложения не хотят появляться.
Я пользуюсь Pycharm только когда надо рефакторить очень много связанных сущностей. Все остальное время он меня бесит своими тормозами и никаким редактором. 95 % моей работы емакс делает очень быстро и качественно. У меня реализуются автокомплит, goto definition, подсветка синтаксиса, реалтайм линтер, автоформат pep8 при сохранении файла и другие полезные в работе функции. Зато magit предоставляет удобнейший плагин для работы с гитом, намного лучше того, что может дать пайчарм или любой другой клиент.
Neikist
Вот почему в полноценных DE подобное не запилят? И под виндой? Пробовал тайловые менеджеры, все очень приятно и удобно но не готов я сотни часов своего времени на их настройку и написание своих плагинов тратить… Тем более когда и так разного рода глюки вроде нерабочего японского ввода в части программ.
srhbdv
Какого именно подобного? Примитивный тайлинг и хоткеи для управления окнами и виртуальные рабочие столы, в windows есть. Что-то большее — пожалуйста, пишите скрипты, автоматизируйте — инструменты для этого есть, процесс сравни написанию конфигов под линуксовые wm. А что значит — не готов я сотни часов своего времени на их настройку и написание своих плагинов тратить? Это, чтобы из коробки было именно так, как хотите именно вы? Вам самому абсурдным не кажется подобное требование?
А необходимый минимум, удобный и устраивающий большинство — все это есть. Если им кто-то не пользуется, или не умеет — это его личные проблемы.
Neikist
Тем что есть я пользуюсь, вот только это не дотягивает до тех же awesome и i3 на порядок.
И не нужно мне так как хочу именно я. Я просто не понимаю (не возмущаюсь, а именно не понимаю), почему я вынужден либо выбирать комфорт и красоту кед (или винды), или удобное управление окнами но полностью убогое окружение в остальном.
srhbdv
А я не понимаю, что непонятного для вас в — спрос рождает предложение?
Ну и да, я еще раз повторю. В windows, начиная с 10ой версии, прекрасное управление окнами. Я мышкой пользуюсь только в графических\видео редакторах и частично в браузере. Все остальное время мне хватает клавиатуры. Чего конкретно вам не хватает? Забинденных раскладок окон? Автоматического распределения по рабочим столам? Чего-то еще? Берите autoit\autohotkey или подобное — и пишите скрипт, все как в awesome. Писать wm с нуля нет необходимости, все прекрасно расширяется.
sys_int64
Вот не согласен, саблайму до емакса очень далеко, из емакса вполне себе можно соорудить полноценную IDE, чаще всего емакс может все что может и IDEA от JetBrains, согласен, emacs по функционалу не дотягивает до JetBrains продкуции, но не дотягивает он совсем чуть-чуть, для меня emacs — это второй выбор после IDEA, если нет нормально поддержи для языка в IDEA, то я лучше выбиру emacs, для питона есть + всякие приятные плюшки в виде работы с базой данных (в про версии), а вот для го я ничего такого не увидел что может emacs, при этом emacs работает в разы быстрее, стабильнее и полностью настраиваемый, написать расширение для емакса намного проще (пару строк на лиспе), если чего-то не хватает, а вот написать расширение для IDEA уже намного сложнее (я имею опыт написания расширений и под емакс и под IDEA)
swelf
Сколько ж ты по работе окна переключаешь, что эта операция на порядок рабочие задачи сокращает?
Я вот тоже поставил 27" 4к, подумал, удобно тайлинг, но тайлинг на самом деле немного ограничивает, а еще почти нет тайловых менеджеров с режимом tabbed, разве что i3, xmonad,ion3 на вкидку. Без режима tabbed я совершенно не вижу смысла вобще в тайлинге. Так вот, все мои потребности в тайлинге покрыли 3 key binding'а в fluxbox, которые ставят нужное окно в одну их 3 позиций на экране и добавляют в группу(чтобы были табы над окошками)
Crandel
Я сужу из реального опыта, подхожу к коллеге, он мне пытается что-то показать на гноме, пока мышкой дотянется до значка пайчарма, пока окно переключится с браузера на иде, пока он мышкой потянется к кнопке поиска, введет текст и опять же мышкой нажмет на кнопку поиск, я уже засыпаю. Зато когда они ко мне приходят, они не успевают заметить, что и как именно я поменял, а результат уже виден в браузере. Потом часто медленно показываю шаг за шагом. Хорошо, хоть научил уже переключать окна альт табом.
VolCh
Следующий будет enter? или Ctrl+f?
Fracta1L
Мантры, не имеющие никакого отношения к реальности.
Crandel
Для того, кто это делать не умеет. Скажите еще, что слепой набор — это детская сказка
0xd34df00d
А у меня от emacs обратный опыт. Я, правда, spacemacs использовал (ну не умею я в emacs и не хочу тратить месяц на изучение elisp'а и настройку аналогов слоёв), а оно тормозит. Вот, то есть, адово тормозит. Я там пытался код на хаскеле и идрисе ковырять, так оно зависает секунд на 10, если, скажем, попросить сделать case split или вроде того. Простой ввод текста лагает.
В vim всё летает при этом.
Crandel
Пользовался вимом 3-4 года назад и он реально тормозил с кучей плагинов для разработки. Может сейчас завезли асинхронность и ситуация стала получше, но все равно никто не отменит ужасный VimL из-за которого настроить под себя ничего реально не возможно. Лисп же намного проще, хотя некоторые неудобства со скобочками присутствуют. Плюс лично мне не подходят режимы, вот никак не получается работать быстро, несмотря на 2-3 года активного пользования вима в качестве основного редактора. Ввод текста у меня меня лагает только на файлах в одну строку либо на гигантских джейсонах, когда он анализирует структуру и подсветку делает. Код набираю со скоростью мысли, даже не задумываясь
0xd34df00d
Ну да, в 8 завезли асинхронные плагины, и онлайн-тайпчекинг в idris-vim или произвольные онлайн-проверки через ale хоть плюсов с clang, gcc, cppcheck и clang-tidy одновременно, хоть хаскеля, хоть художественного текста — это просто сказка.
Но вимскрипты я не пишу, я достаточно скучный и обычный, чтобы всё, что мне нужно, делали имеющиеся плагины.
Ну и да, режимы наше всё, редакторы/IDE/etc без vim-стиля редактирования я даже не рассматриваю.
Zoolander
Нетрудно заметить, что во многих приведенных примерах, создателем плохого софта является вполне конкретная корпорация, у которой достаточно денег, чтобы делать хороший оптимизированный софт — но нет, она будет открывать и закрывать по 10 плохих сервисов, в надежде повторить удачу, которая случилась у них с их базовым продуктом
Gryphon88
Немного не согласен. Сейчас модно давать площадку-маркет и завлекать туда
индусовпрограммистов. Может, нужно разработать стандарт и следить за его выполнением?Кстати, зачем мне программа размеров в 300 МБ, которая запускается на планшете, телефоне и ПК, если можно, используя один и тот же код и разные ключи компиляции, сделать 3 программы по 50 (пусть даже 100), под соответствующие устройства? Маркет сам поймёт, с какого устройства я зашел.
AlePil
То, что озвучил tonsky действительно имеет место и отрицать бессмысленно.
Другой вопрос — что делать. Ведь если реально так посмотреть, то не во всем виноваты раработчики, есть еще бизнес, который хочет, что бы продукт в продакшен вышел еще вчера и не важно какой ценой. Есть пользователь, который абсолютно все равно, что там внутри ии как оно работает, но готовый платить за «докинуть RAM & HDD/SSD», за более мощную машину, но что бы было красиво, ну и есть он, программист, которому реально проще выдать продукт который в итоге поглотит все возможные ресурсы. Ну а что, юзер если что, докупит там чего-нибудь.
tonsky
в рамках текущей экономической модели, действительно, точить пилу некогда, надо пилить. Видимо заниматься улучшениями должны люди вне её, как сейчас это происходит с опен сорсом и людьми в R&D отделах
Oskal174
Нельзя сказать, что я прямо сейчас загорелся идеей и проникся, но согласен, что грузить сайт по 20 секунд в 2к18 это дичь. Мне кажется, что проблема уменьшения производительности в том, что разработчики уходят все дальше и дальше от железа. Сегодня к железу перестали относиться с должным уважением.
ValdikSS
Скачайте и запустите Damn Small Linux. Он старый, софт в нем устаревший и не лучший, но просто понажимайте в интерфейс, позапускайте программы. Все работает моментально. Нажимаешь на кнопку — получаешь результат.
Я раз в год его запускаю и просто бесцельно тыкаю, чтобы не забывать, насколько компьютеры могут быть быстрыми, и что мы упускаем.
perfect_genius
А Kolibri?
Fracta1L
Ну смотрите, в моём Линуксе с KDE программы запускаются не моментально, но за 0,5-2 секунды, в зависимости от «тяжести» приложения. Разве вот эта вот разница стоит того, чтобы менять комфортное и красивое окружение с фичами на каждый чих на топорный и малофункциональных Damn Small Linux? Компьютер нынче, как и 20 лет назад, 95% времени тратит на ожидание действий пользователя.
mkshma
У вас там и SSD наверно, да? И оперативка не гигабайтами, а килограммами уже измеряется? Вот только большинство компов обладает такими скудными характеристиками, что просто запуск ОС уже заставляет их приближать глобальное потепление как минимум в рамках отдельно взятой комнаты.
Fracta1L
Да, SSD, только ему уже 5 лет)) Нынче наличие SSD, даже копеечного, и 4-8 Гб оперативки это норма.
khim
P.S. И да, он не из США и даже не из Японии. Могу поверить что там — ситуация иная.
slg
Продукты выходят быстрее, снимая сливки. Покупатели в постоянной фрустрации, заставляющей покупать новинки. Экономика растет, только вы чем-то не довольны.
staticmain
Странные у вас скриншоты slack. Это вообще без подключенных команд? У нас 200 человек + 25+-10 рабочих комнат — веньше 1.5 ГБ этот «мессенджер» не отжирает в принципе.
Massacre
Это (и Skype 8.x) является отличным примером, почему нельзя делать десктопный софт на JS.
Neikist
Как и мобильный.
Alexey2005
На самом деле можно. Только создать шустрое, отзывчивое десктопное приложение на JS ничуть не проще и даже не быстрее, чем на C++.
Качественный профессиональный код писать на JS дорого — ничуть не дешевле, чем на тех же плюсах. Зато вот дерьмовый код на JS из серии «лишь бы работало» писать гораздо, гораздо дешевле и проще. А значит, появляется возможность сэкономить за счёт снижения качества. С плюсами экономить на качестве удаётся гораздо хуже — даже самый дерьмовый код всё равно довольно дорог.
asmaster
Я почти завершил разработку 300 КБ Slack (и не только) клиента
volt.ws
SirEdvin
Мм… как у вас с кнопками и событиями из слака?
Massacre
Интересная идея… Добавил в закладки. Если будет поддерживать всё, что имеется в Telegram Desktop (и делать это без утечек памяти) — станет хитом. Ещё можно подтянуть оставшиеся протоколы из Миранды (особенно, ICQ), и она тоже станет не нужна :)
Zloy_tarakan
Эй, ребят, а может ну его, лучше в космос сгоняем.
Gryphon88
Это нытьё я считаю обоснованным, жаль, что никто, включая автора, не будет разгребать сложившуюся ситуацию. Подскажите, пожалуйста, какие-нибудь расширения для браузера, чтобы лишнее просто не грузилось (а не скрывалось), в идеале, препроцессировалось под текущую комплектацию (есть у меня смутное ощущение, что если написать очень косо, то при каждой прокрутке экрана будут пересчитываться относительные размеры).
Massacre
uBlock Origin? Там можно достаточно гибко настроить, что именно не должно грузиться. Правда, «лишнее» придётся прописывать вручную, если это не распространённая реклама…
miga
Тонский опять ноет.
На самом-то деле, наш софт и железо работают поразительно хорошо, если просто призадуматься, насколько глубока бездна абстракций, которую несколько поколений инженеров тщательно выстраивали. Взять, например, тривиальный пример того, что происходит, когда пользователь набирает «google.com» в адресной строке и нажимает enter — весьма поверхностное описание занимает девять страниц, и это еще не опускаясь ниже уровня драйвера клавиатуры (ниже еще одна бездна аппаратных абстракций).
Не то чтобы я был доволен индустрией и ее нынешним (хаха, нет), но все же мне надо понимать, почему получилось именно так и почему иначе и быть не могло.
И еще заодно можно, например, взять машинку на DO, поставить туда докер с вордпрессом, зайти со своего браузера на дефолтную заглавную страничку и испытать экзистенциальный ужас от количества и сложности усилий и объема знаний, которые были приложены многими тысячами не самых глупых людей чтоб вы могли совершить эти, в общем-то, весьма тривиальные действия. Ставлю на то, что проекты атомной бомбы и полета на Луну вместе взятые были проще и дешевле.
InterceptorTSK
Ага. Ток тормозит безбожно.
Я мозиллу открываю, набираю в строке поиска что-то, а оно подвисает. Вы объясните, какими такими технологиями можно сообразить НАСТОЛЬКО ЛЮТОЕ ГАВНО???
У меня на мобильной джаве собственная реализация такого же поиска да еще и с собственным т9 вообще не тормозила. Это НЕВОЗМОЖНО сделать так, что бы такая примитивщина тормозила. Вы что правда не понимаете, что это примитивнее ну просто некуда?
И на мобильной джаве я реализовал даж клеартайп, и все писалось в моем текстбоксе, искалось по т9 и вообще не тормозило никак.
И это на устройстве с 20мб опиративы (если повезет), и процессором в несколько мегагерц (или десяток мегагерц, если повезет).
Вы объяснитесь хоть как-то. Вы с луны свалились совсем что ли, и головой ударились об нпм пресильно?
ImKremen
Не просто проще, а на порядоки проще.
Есть у меня немолодой коллега (на данный момент фронтенд), программировал он на всей цепочке языков начиная с перфокарт. Так вот он приводил пример диалога с неким инжером который разрабатывает нетривиальный детали (если не ошибаюь ракетный инженер), суть вопроса звучала примерно так — "зачем вам целый штат тестировщиков, вы что не можете сразу делать без ошибок?".
Ответ прост, система на порядок сложне. Даже отдельный фичи проекта со всеми приложеными требованиями могут не помещается в голову разработчика.
khim
Так почему MS Office 2016 занимает в 10 раз больше, чем MS Office 2000? За что мы платим этим «увеличением сложности»?
А они их туда пробовали поместить? Мне кажется вся система «пошла в разнос» где-то как раз на границе веков, когда вместо того, чтобы бить задачу на подзадачи, которые человок мог бы понять её стали шинковать на мелкую лапшу, работу которой не понимает вообще никто, а в качестве суррогата понимания — её обматывают толстым-толстым слоем тестов.
Всё равно как если бы машины собирали не из отдельных деталей, подогнанных друг к другу, а из кучи песка, обмотанного скотчем и тряпками…
SirEdvin
Ну почитайте. Вы, конечно, можете сказать, что это все чепуха и не нужно, но вы же в ворде не верстаете.
khim
Source files (.cpp) belonging to CMake projects can be built individually via the CMake menu or by right-clicking on a source file in the Solution Explorer.
Я могу легко объяснить — почему и кому она может быть полезной (объяснить почему для неё нужно было создать такого монстра как Visual Studio 2017 я не могу — но это другая история).
А если всё, что вы можете сделать — дать ссылку на портянку текста без указания в ней конкретного места… то это значит, что, по большому счёту, ничего реально важного там нет… было бы — вы бы запомнили.
Am0ralist
khim
Для этого на Хабре есть комментарии. Назовите фичу — а люди, работавшие с предыдущими версиями скажут когда она появилась. Пока видел фичи из MS Office 2000. Ничего более позднего из числа «реально полезных фич» названо не было.
Am0ralist
Наоборот, ты запускаешь старую версию и понимаешь, что некоторые вещи не работают и ты чертыхаешься. Это можно запомнить, если ты постоянно работаешь во всех версиях (97, 2003, 2007, 2010 и 2016), а не когда ты прошел их все за лет 16, причем не на постоянке используя.
khim
Am0ralist
Ну так, периодами сталкиваюсь с экселем 2003 и новыми.
10 намного удобнее, в мелочах, которые только по факту понимаешь, когда начинаешь делать по одному, а его там нет.
Ну или с 40к строк работаешь.
С 16 разницу не заметил особую, но последний мне не очень зашел. Хотя менюшка верхняя — до сих пор вымораживает.
Это как калк в ООо и Либре сравнивать. Вроде функции одни и разница незначительная, но в ООо по мне куча всего по мелочам хуже сделано.
khim
А когда котребление ресурсов вырастает в разы — хочется чего-то большего.
CodeRush
Потому что из песка, скотча и тряпок ее делать дешевле в соответствии с теми процессами, которые идут внутри компании, эту систему производящую.
Чтобы бить задачи на подзадачи, нужно ясное видение «что именно строим», и план детальный к нему. По нынешней же моде это все называется жутким словом «водопад» и преподносится дорогими консультантами как жуткое болото, страшный суд, ад и погибель (о том, что так делается любой инженерный проект от моста через реку до ракеты, консультанты умалчивают почти всегда). Теперь у нас в моде эджайл, скрам, канбан и прочее все, призванное ПО не разрабатывать, а выращивать, лепя MVP из песка, тряпок и скотча, чтобы релизить быстрее, потому что иначе деньги кончатся, а инвесторы не дадут новые.
PsyHaSTe
Agile и DDD это про то, чтобы получить на выходе продукт, который всем нужен, а не тот, который согласовали когда-то на заре. И получить в приемлемые сроки. Я поработал по обеим методологиям, по водопаду сделанную софтину мне через 3 года жалко было даже запускать. И спустя эти 3 года от неё отказался и заказчик, и соответственно мы. Потому что спеку мы всю удовлетворили, все требования реализовали, но пользоваться этим реальные пользователи не захотели.
Лучше узнать это до того, как отдал сотню миллионов, полагаю. А еще лучше получить рабочий и удобный продукт. Agile говорит только про «имейте частый фитбек от заказчика», он ничего не говорит про «фигак фигак инвестиции». Если вы не согласны, то получается ваша позиция «надо зафиксировать ТЗ, а потом идти по нему, даже если очевидно, что оно перестало всех устраивать»? Ну ладно…
CodeRush
Именно в этом и разница между инженерной задачей и задачей получить на выходе продукт, который кому-то нужен. И именно поэтому софт для спутника или марсохода пишется по спеке и исключительно по ней, а писать так приложения для бизнеса, который сам не знает, чего хочет — выбросить сотню миллионов на ветер, и остаться позади конкурентов. Разные цели — разные методы, и я не ругаю ни тот, ни другой, просто отвечаю на вопрос «почему результат вот такой» — он вот таким получается, получать его иным — дорого.
PsyHaSTe
Я к тому, что "жуткое болото, страшный суд, ад и погибель" — вполне себе имеет место быть в реалиях бизнеса.
У меня сейчас небольшой проект на год, и даже тут я ощущаю пользу Agile, когда я сделал первый MVP-прототип, показал, мне сказали "не, ты все не так понял", и мы сели и за пару недель исправили тонну недочетов, которые впоследствии потребовали бы пересмотра всей архитектуры.
Лично для себя минусов я не вижу. Бывает, что иногда приходится что-то переделывать, чтобы удовлетворить новые требования, но я стараюсь находить в этом обучающий момент, что я плохо собрал требования/не задал нужных вопросов/… А вот с водопадом я покушал проблем, потому что опять же, тремор требований у бизнеса слишком высокочастотный, чтобы его таким образом формализовывать. Рад за мосты и инженерные проекты, но бизнес завязан на людей, которые тоже меняют мнение. Вчера оформили подряд на новый крутой кнопочный телефон на тонну денег, а на следующий день эппл презентует первый айфон и всем срочно нужен телефон с сенсорным экраном… А спека-то уже всё...
Ну, это чисто моё мнение. Может, есть проекты, где люди тащатся от того, как год за годом однажды начерченный план претворяется в жизнь и становится продуктом, но мне они не попадались, только те, который делали вид, что они такие, но заканчивалось это как я написал выше.
CodeRush
Так я и не спорю с этим, в реалиях бизнеса все так и есть. Проблема водопада именно в том, что он несовместим с качанием требований вслед за линией партии, но это не делает саму методологию плохой, а лишь неподходящей к этим реалиям. Т.е. если цель — решить задачу бизнеса, то решать ее надо как получается, и не жаловаться на тормоза и неоптимальность решения. А хочешь оптимально — доставай строгие требования, математику, теорию систем, инженерию, все то, что мы как человечество наработали для решения проблем, влезающих в головы архитекторов.
SirEdvin
Наверное, вы никогда не работали по "водопаду", да?)
Если вы не можете справится с аджайлом, где на каждом этапе должны планировать маленькие кусочки системы, думаете у вас получится спланировал сразу все? Спойлер — не получится, просто вы будете каждый раз переделывать спеку, если будете, конечно.
Помимо того, что ПО, как бы это глупо не казалось, безумно сложнее в проектировании, чем мост или ракета, любой инженерный проект страдает от тех же проблем, что и ПО при водопаде, но в силу условной простоты проекта это костылят на местах.
CodeRush
Работал и так, и так, и справляться приходилось и с водопадом, и с эджайлом.
Если у вас задача не влезает по сложности в дизайн — это показатель того, что решать ее рано. Ах, надо уже вчера? Ну тогда никто не гарантирует никакого качества, кроме того, что получится. Именно так получается нынешнее ПО, нынешние процессоры и все остальное. Нужно лучше — планируйте, контролируйте, используйте подходящие инструменты, контролируйте, хорошо платите, контролируйте, и не забывайте контролировать, это обязательно.
Пока это все не станет выгодно (т.е. ничем другим от конкурентов отличиться станет невозможно, кроме размера и\или скорости кода), для масс это не будет сделано никогда, потому что это адски дорого, адски долго, а на выходе получаются только примитивные вещи, влезающие в дизайн по ТЗ.
ImKremen
Ну возьмите частную задачу, например построение UI и его layout с учётом всего зоопарка размеров и dpi современных экранов.
Vanellope
Когда то была на хабре статья про миллионы людей, занятых бессмысленной работой, перекладыванием бумажек, только ради работы. Так вот АйТи стремится примерно к такому же. Программный пакет уже написан десяток лет назад, обладает всей необходимой пользователям функционалностью, казалось бы, отшлифовывай, патчь баги, выполняй пожелания пользователей в плане разных фич. Но надо же показать продуктивность деятельности, надо релизить новые и новые версии каждый год, добавлять всякие маджонги и поэтесс, чтобы не отстать от конкурентов, заставлять пользователей пересаживаться на новый продукт, т.к. теряется совместимость со старыми версиями, старые продукты перестают поддерживаться, не работают на древних ОС, типа ХР и прочее, и прочее, и прочее.
Так как все программы уже давно написаны, революционной новизны ждать не приходится, получается именно работа ради работы.
springimport
Мне тоже не нравится структура папок в линуксе. Я бы даже сказал что она ужасная, она стала слишком низкоуровневая на сегодня. И лучшим подтверждением этого есть docker.
Идеальным решением видятся контейнеры по типу мобильных приложений: соседние контейнеры могли бы требовать любые библиотеки без конфликта версий, поддерживать многоверсионность и разные источники для обновления, иметь разделение данных на внутренние и пользовательские, использовать интерфейсы других контейнеров.
Чтобы в конце-концов можно было запускать контейнеры десятилетней давности на новейших системах и перенос данных с любого компьютера на другой без каких-либо препятствий. А не так как сейчас что после установки вообще не ясно что произошло.
staticmain
И у каждой программы тогда будет по копии системных библиотек. Отлично. Теперь каждая программа будет весить 1-5 ГБ, даже обычный калькулятор. Вы изобрели flatpack. В средней системе установлено 50-80 программ, которые доступны пользователю и еще около 100 системных утилит. И каждая с вашим решением будет весить больше гига. Ну да, у всех же стоят 5 ТБ SSD последнего поколения и google fiber чтобы всю эту ораву обновлять.
springimport
Стоп. А где я говорил что реализация будет виндовой? Никаких копий, только ссылки. А при необходимости добавляется дополнительный контейнер с кастомным пакетом который может, опять же, использоваться другими пакетами. Соответственно, в памяти будет условный набор из 100 контейнеров-библиотек на которые ссылаются все остальные программы.
Нет, серьезно. Что угодно может быть лучше чем запихивание отдельной ОС для каждой программы.
staticmain
Вместо одного, ага. Ваше потребление памяти выросло в 100 раз. Сейчас оно худо-бедно требует 3-4 ГБ для системных\повседневных приложений (специфичные типа blender/krita/uengine я не считаю), будет требовать 300-400 ГБ оперативки. Шикарный план.
А создатели flatpack/snap так не считают. И это сейчас впиливается в новые линуксы по-умолчанию.
springimport
Чего-то я не пойму, а что, сейчас разве не так? Разве хром не загружает в память, например, zip library 1.0, в то время как проводник загружает zip 1.25?
Да, будет не очень если каждое приложение захочет zip 1.0, 1.01, 1.02, но с этим же борются, например, сейчас: ставят не 1.0, а условно ^1.*
staticmain
Не так, если chrome у вас из системного репозитория, в котором стоит только одна версия zip. Если вы какой-то пакет ставите в обход репозиториев, то вы ССЗБ.
polearnik
это вы сейчас про npm и node_modules?
PsyHaSTe
По-моему докер со своими слоями эту проблему нормально решает. Каждая программа будет весить ровно столько, сколько ей нужно. Единственное чего не будет, что нельзя будет использовать либу версии 1.2 с программой, скомпилиной под 1.1 потому что «ну там ведь небольшие изменения, да и минорная версия поменялась, наверное ок».
SirEdvin
Не получится, так как бинарная совместимость таки ломается иногда между версиями.
springimport
Таких подробностей не знаю… Есть подозрение что все же это можно решить в рамках одной платформы.
Akon32
Насколько я понимаю, структуру каталогов в Linux можно поменять, сделав свой дистрибутив.
И есть такая штука, как Qubes OS. Это ОС с песочницами для отдельных приложений на базе xen и linux. А в каком-то дистрибутиве (не помню точно) вообще конфигурацию ОС в git хранят.
ValdikSS
Flatpak, Snap, в какой-то степени AppImage, ZeroInstall.
engine9
Enjoy your capitalism!
В какую помойку превращают маркетологи нашу планету в такую превратили и IT.
Я всю трудовую жизнь так или иначе связан с компьютерами, разработкой GUI и компьютерной графикой, и эта тенденция начала напрягать уже давно. Открыл для себя «островок умиротворения» в мире линукса, который год от года все больше радует инструментарием. Вот сейчас в отпуске работаю на машине с процессором 900 мГц, и гигом оперативы на «минте» — система летает, в памяти занимает 230 мБ! Поставился весь софт и дрова из репов, никаких танцев с бубном. Интерфейс вылизан, отзывчивость отличная.
На большом брате создаю 3Д в блендере и каждый раз искренне благодарен его создателям, сто мегабайт мощнейший 3Д пакет, в котором можно моделировать, монтировать виде и аудио, композить, даже создавать 2Д анимацию!
Я очень рад, что максимально дистанцировался от всей этой монструозной проприетарной параши напичканной бэкдорами и жучками, создатели которой пишут код за зарплату, а не за идею
и потом уже зарплату. Ну и в современный веб захожу в костюме химзащиты, позволяющем пробраться через увесистые гроздья яваскрипта, облепившие интернеты, и прочие свистопердельные миазмы, которые отдаляют от контента.Akon32
Может, я чего-то не понимаю, но у меня свежий Blender под windows весит 516МБ. Это не считая драйверов видеокарты и прочего, что позволяет ему работать.
Вы точно учитываете при подсчёте все библиотеки?
engine9
Я сужу по установщику с оффсайта: www.blender.org/download 137 мб (под пингвина)
bogolt
Современные установщики частенько качают реальный софт из сети.
sumanai
Обычно такие качальщики весят от силы мегабайт.
terra-slav
В Arch Linux:
[user]# pacman -S blender
Пакеты (1) blender-17:2.79.b.git3.32432d91-6
Будет установлено: 246,13 MiB
:: Приступить к установке? [Y/n]
Alex_ME
У меня установленный Blender 2.79b занимает около 300 мб.
ValdikSS
namikiri
Забавно читать перевод с английского на русский статьи, написанной русским автором.
vasimv
«But I predict that within 100 years, computers will be twice as powerful, 10,000 times larger, and so expensive only the five richest kings in Europe will own them.» (с) Simpsons. Промахнулись чуток, не про компьютеры это надо было говорить, а про программы :)
VezhLos
Полностью согласен с автором статьи, однако описанное положение вещей — это плата за низкий порог вхождения в отрасль и возможность для бизнеса быстро выкатывать требуемые функции. Хотя, конечно, с инженерной точки зрения текущее положение дел в IT — это «Адъ и ИзраИль». Мыши колются, плачут, но продолжают жрать кактус, ибо выхода нет.
Areso
Не согласен. Программировать на Pascal (в среде Delphi 5) было ничуть не сложнее. Даже проще, я бы сказал. У нас Basic'у (QBasic 45R) учили пятиклассников.
VezhLos
Хелловорлды, может, и не сложнее, а вот коммерчески ценный мало-мальски сложный софт на каком-нибудь Электроне «начинающему перспективному программисту» накидать гораздо проще, чем на нормальном языке. Но и тормозить будет знатно, конечно, и ресурсы жрать, как не в себя… Такая вот борьба противоположностей.
P.S. Во всей этой хипстерской вебо-мобильной фреймворкщине и яваскриптщине вымораживают именно жуткие тормоза и потребление ресурсов. А чтобы написать нормальный десктопный аналог на C++ или Delphi, ну или на крайняк Java/C#, нужна нехилая квалификация и время.
khim
Только разработка идёт по другому: если раньше вы делали, условно, 10 формочек за 10 дней — и релизились, то теперь вы делаете их за один, а ещё 9 дней тратится на то, чтобы полученный монстр хоть тушкой хоть чучелом заставить работать и убрать хотя бы часть глюков.
Mabusius
Аналогично. В школе нас учили на Турбо Паскале. Даже троешники чето там могли. А в ВУЗе уже пошел Delphi 6 с обязательным ООП даже для «Hello World». Большинство сидело и не вдупляло, что вообще происходит.
mayorovp
Обязательный ООП в Delphi только в графических программах. И он, на самом деле, не усложняет, а упрощает написание программы. Без ООП этот самый «Hello World» испугает даже отличников…
Mabusius
Я то согласен, я к тому времени пару игр на Турбо Паскале написал и про то как работают объекты был в курсе. А вот простым людям намного легче понять код типа
$a := $a + 1;
, чем$form1.label1.text := $form1.label1.text + 1;
.mayorovp
Не видел ни одного человека, который бы испытывал трудности с оператором «точка»…
Mabusius
Ну там возможно еще была проблема в преподавании. Никто не объяснял, что это за точка :). ООП вообще никак не объяснялось довольно долго, но использовалось.
VolCh
В структуры +record вроде в Паскале как поднимались?
loki8
Неужели программисты начали замечать, что закон Мура больше не работает?
dimka11
Все работает. Количество ядер в процессорах растёт. Техпроцесс становится меньше.
То, что пока не все приложения могут в многопоточность — вопрос времени.
PsyHaSTe
Этой мантре уже лет 20, но воз всё там же. Понемного где-то наращивают, но воз и ныне там. Только софт от программистов для программистов, типа гитов, архиваторов, идеешек и прочих умеет грузить все ядра, а остальной радуется, если смог сделать отдельный тред для трудоемких вычислений.
Fracta1L
Видеокодеки многопоточны, браузеры многопоточны, игры многопоточны (хоть и не сильно — как правило, до 6-8 потоков). Где там воз, говорите?
sumanai
Яваскрипт на странице однопоточен.
EvilFox
Но, есть же веб-воркеры.
sumanai
Работа с DOM всё равно однопоточна, а без неё ничего на странице не изменить. В итоге изменение страницы при помощи Javascript возможно только в один поток, и это самая медленная часть в современных страницах.
EvilFox
И что? Большая часть тормозов из-за того что DOM используют как хранилище данных. При не умелом использовании DOM многопоточность вас не спасёт.
IRainman
Но браузер то нет, более того они уже поголовно многопроцессорные.
PsyHaSTe
Браузеры однопоточны, игры тоже: ну чтобы далеко не ходить, вот пример из Stellaris: 80% работы делает одно ядро
Так что воз и правда там.
Fracta1L
Почти в каждом релизе Firefox пишут, что распараллелено то, распараллелено сё, где ж они однопоточны?
А когда я играю в Cities Skylines, у меня стабильно нагружены на 100% 4 потока из 8. В новых ААА-играх типа GTA V многопоточность ещё более агрессивная.
EvilFox
Сильно от игры/движка зависит. Современные движки уже многопоточны. Даже игровую логику можно сделать многопоточной, например в юнити есть C# Job System.
PsyHaSTe
Я в основном играю в стратегии, так вот европа/стелларис — современные игры 2013 и 2016 годов. И с ними та история, как я привел выше.
Из реально тяжелых игр с хорошей оптимизиацией могу вспомнить только новый дум. Во всех остальных игра сидит на 1 ядре, но ей хватает. Может я просто редко что-то новое устанавливаю, и не вижу, что что-то меняется. С моей колокольни grand strategy всё так же плохо с префомансом, настолько, что играть лейт в стелларисе на гигантской карте просто невозможно.
EvilFox
Druu
Дело не в движке. Просто не все задачи параллелятся.
EvilFox
В движке в том числе. В хороших движках многие подсистемы выносятся в отдельные потоки, и игровую логику при желании можно раскинуть по ядрам (ясное дело что не всё параллелится, но хватает задач где можно раскидать нагрузку).
Druu
Ну вот если вы в какую-то стратегию играете, то нельзя, потому что каждый юнит и каждое действие должно быть отработано последовательно.
Можно, конечно, пытаться разделить все по так скажем "причинной связности", но в итоге вы получите что разделение такое будет работать только в начале игры (когда и так тормозить нечему) а ближе к концу (где как раз и начинаются тормоза из-за просчета большого количества объектов) все будет связно.
IRainman
Дополню Fracta1L, не только многопоточны, но ещё и на GPGPU.
P.S. пул потоков доступен каждому и много где из коробки, разные async и прочее тоже.
nicholas_k
Компьютерные программы — это не вещь в себе и не самоценность. Ценность программы определяет пользователь.
У каждой программы есть две стороны — ресурсы, которые она потребляет для написания и функционирования и польза(выраженная деньгами?), которую она приносит.
Раз уж сложилась такая картина, как описывает автор, значит ресурсы, потребляемые современными программами соответствуют приносимой пользе.
VolCh
Пользователь определяет ценность только в идеальном мире где он может за одни и те же деньги установить любую версию любой программы и они не будут конфликтовать. Но если пользователю нужно запустить программу, которая работает только на Windows 10, то как бы ему не хотелось запустить её на XP, то будет вынужден показать всему миру, что Windows 10 полезная штука, как бы не плевался от неё. А даже если программа под XP работает, то попробуй эту XP легально установить в 2018-м году.
khim
Если нужна старая программа, то как раз проблем с XP не будет. У меня есть знакомый, который на XP перешёл в 2010м году. С Windows 98. В прошлом году он начал задумываться об обновлении…
nicholas_k
Ценность не равняется цене.
Пользователь определяет ценность программы в реальном мире и делает это путем выбора — пользоваться или не пользоваться.
Раз пользуется, значит польза перевешивает недостатки. Иначе — не пользуется.
serbod
Если дать разработчику не топовое железо и ежедневные апдейты, а Athlon без SSE и WinXP без сервис-паков (без поддержки EncodePointer/DecodePointer) и гигабайт памяти, то требования к готовому продукту резко снизятся. По себе знаю. =)
PsyHaSTe
Да, но сроки увеличатся в несколько раз, частично из-за замедления общего цикла «написание-отладка-тестирование», частично из-за траты времени на собственно оптимизацию. Хотя мне кажется, что разработчик который только что мучительно смог все же запустить идеешку и прогнать тесты не будет сильно мотивирован еще и оптимизировать.
serbod
На самом деле нет, вместо оптимизации будет более тщательный выбор инструментов, технологий и компонентов, поиск узких мест в профайлере, стресс-тесты. Впрочем, онлайн-разработчикам это нафиг не нужно. Это проблема старого геймдева (картриджи, диски) и хардкорной инженерии (сильно ограничены ресурсы, связь, физический доступ).
PsyHaSTe
Выбор инструментов — это когда вместо идеешки мы работаем в виме? Ну так это как раз и выльется в увеличение сроков реализации, человек при прочих равных выбирает IDE не просто так.
serbod
Даже не буду убеждать, что в CLI можно работать быстрее и продуктивнее, чем в GUI, все равно никто не поверит. Просто приведу в пример те же самые IDE, только 2000-2005 годов.
PsyHaSTe
Это старый холивар, и я действительно не поверю. По крайней мере для меня это не так, и если бы меня заставили работать в таких условиях, я скорее всего не смог бы, и вы бы наблюдали как раз те эффекты, описанные выше. В итоге вместо продуктивного взаиомодействия полагаю в течение полугода мы бы разошлись, крайней недовольные друг другом.
0xd34df00d
Можно. Только не надо отождествлять IDE и GUI, особенно если там поддержка вим-кейбиндингов есть.
yefrem
Некорректно сравнивать штучные нишевые продукты прекрасного прошлого с унылыми массовыми из грустного настоящего. Сегодня любая булочная может иметь онлайн-магазин, а приложение для мобильного можно склепать на коленке и поделиться с тысячами юзеров не вставая с дивана. И это хорошо.
yarric
Тут уже раз пять упомянули Delphi, который был существенно проще в установке и использовании современных зоопарков из новомодный фреймворк+новомодный редактор+новомодный компилятор и тд.
0xf0a00
В последнее время он тоже что то разожрался, но возможно из-за поддержки практических всех платформ. Впрочем пользоваться им все так же легко и приятно, и ide построена так что программисту с любой квалификацией будет одинаково удобно.
PsyHaSTe
А на чем кроме дельфи вы писали? Ну, просто любопытно, с чем сравниваете. Имеется ввиду что-то больше, чем лабу, какого-нибудь бота или что-то подобное..
0xf0a00
На визуал студио и эклипсе.
PsyHaSTe
Я про языки программирования. Джава там. Котлин. Плюсы. Шарп. Питон. Руби. Ну, что-то мейнстримное или может быть хаскель какой-нибудь?
0xf0a00
И вот опять, в сравнении инструментов вы пытаетесь сравнивать языки. Учитывая ваши комментарии выше, видимо устраивать срачи ваша цель. Вопрос компетентности все так же остается открытым, как бы вы там не изгалялись в словоблудии. Адиос :)
PsyHaSTe
Ну понятно. Программист на фортрмне может писать на фортране на любом языке программирования.
yshurik
А что я как-то "вернулся" ;) Моя inferno os загружалась за одну секунду на raspberry pi. Включаешь и пока экран загорается система уже загрузилась в гуи и готова. Класс ;) Только софта нет ;))))
Gryphon88
Примерно так же я пробовал КолибриОС: менее 5 секунд загрузки и определилось всё оборудование. Дистрибутив — менее 2 МБ на всё. В первый раз за 10 лет заплакал.
Семёрка грузится почти 3 минуты, и с драйверами я повоевал знатно…
springimport
Если не считать долгую загрузку bios — это отдельный разговор, то win 10 на m2 ssd с 8700k грузится за 10 сек. Новая и почищенная загрузится за 5 сек.
Gryphon88
Всё-таки не сдержусь: зачем по жизни нужен SSD? Только если под своп. Ну и загрузка не только биоса зависит от количества периферии.
springimport
Приятно когда все быстро работает.
minusnaminus
не путайте. Хорошо, когда быстро включается и долго работает, спросите любую женщину… Да и любой айтишник тоже обрадуется
PsyHaSTe
Чтобы всё быстро работало. Загрузка ОС — это ведь не все задачи. Например, на харде Europa universalis у меня грузилась несколько минут, с SSD — секунд 15. Разница существенная. Пример еще забавнее становитс, когда оказывается, что игра немного странно сделана, и для загрузки сохренения она практически заново перезагружается. Кстати, а тут уже помогает префетч, и вместо 15 секунд грузится уже 10. А это один из тех «лишних» кусочков, которые по мнению автора всё усложнили «по сравнению с Windows 95».
khim
Почему загрузка должна занимать 10 секунд? Когда у вас уже все текстуры не просто в памяти, но в GPU и всё уже «на мази»? Потому что у кого-то руки неизвестно откуда растут? А выпрямлять не пробовали — вместо того, чтобы прикручивать 10 уровней костылей?
Статья, собственно, об этом… но она не доходит до сути — ответ-то прост: выпрямлять ничего не пробовали и пробовать не будем, там как это не принесёт денег.
CodeRush
Истинно так, выпрямлять — невыгодно, т.е. делаться будет либо энтузиастами, либо только тогда, когда ничего другого уже не поможет, и останется только выпрямлять. Думаю, мы вполне успеем дожить до этого момента, если никаких существенных прорывов в скорости вычислений и объемах памяти не произойдет в ближайшие лет 30.
PsyHaSTe
Потому что IO. Потому что в игре десятки тысяч файлов ресурсов (я лично видел полосу загрузки до 5600 ресурсов, мб их больше), ну и так далее.
А как оно туда попало? Игру закрыли, всё выгрузилось. Мы же уже выяснили, что префетчи это все костыли через одно место?..
Деньги — мерило затрат человечества, если говорить абстрактно. Тратить больше денег — значит разбазаривать чьё-то время, который это будет оплачивать. Так делать нехорошо.
Ну и это beside the point. Почему SSD? Потому что ЛЮБАЯ операция с IO работает в 2..100 раз быстрее. И это очень сильно ощущается в любых операциях, даже если комп как у меня не выключается месяцами, и всё сидит в кэшах.
khim
Druu
Так разработчики реализовали.
khim
Ну дык о том и речь: разрабочики всё реализовали через одно место, из «гавна и палок», а теперь эту кучу… добра обматывают толстым-претолстым слоем скотча, чтобы оно не так сильно пахло.
Druu
Если мне бы предоставили выбор — либо получить игру с дополнительными реализованными механиками, либо чтобы она грузилась 1 секунду вместо 10, то я бы выбрал ту, что грузится 10 секунд, но при этом есть дополнительные механики.
И это хорошо, что разработчики EU понимают вот эти мои желания.
У них если что движок в CK и ЕУ по сути один и тот же а вся игра — это тонны скриптухи. Естественно, оно тормозит, но мне пофиг — потому что такой подход позволяет парадоксам регулярно выкатывать обновы, добавляющие целые игровые механики, и в итоге предоставлять мне уникальный продукт, который не имеет сколько-нибудь близких аналогов. И за который я готов платить деньги.
Очень удачно, что в парадоксах работают настоящие инженеры, которые решают задачу пользователя, а не рассуждают о том, что их ПО работает со скоростью 1% от потенциально возможной.
Gryphon88
Тут, имхо, тоже вопрос «в руках». Про запуск вопросов нет: нам надо считать с диска и распихать в память. А что потом, где можно налажать:
— Всё нужное уже в памяти, но что-то постоянно не догружается, лезем за ним
— В память не влезает, поэтому постоянно сбрасываем на диск
— Косо расположили ресурсы: нелокальность файлов на диске, недостаточная гранулярность, не сделан префетч.
В моём идеальном мире за такие случаи должна отвечать ОС и ФС, но пока что, если мне требуется обработать несколько тысяч 5МБ файлов, я открываю O&O Defrag, чтобы убедиться, что файлы расположены в одном или соседних кластерах (чтение/запись одного куска значительно дешевле чтения многих мелких), и снизить вероятность того, что я упрусь в дисковое IO.
BD9
До сих пор вспоминаю Transport Tycoon.
Под MSDOS, с множеством окон, содаваемых и перемещаемых пользователем, и в каждом окне наблюдаешь передвижение своего авотбуса/машины/самолёта…
На 2 дискеты влезало.
atamanenko
6600k, дешманский SATA3 Kingston, винде больше года. Около пяти секунд от нажатия на кнопку до экрана входа
springimport
Отлично. До рабочего стола или экрана входа?
khim
От эрана входа до рабочего стола на SSD под Windows 10 где-то секунда. Это не Windows XP на BigFoot'е где от момента появления рабочего стола до момента, когда компьютер соизволит начать реагировать на мышь и клавиатуру секунд 20-30 проходило…
da-nie
Попробуйте ещё qnx 4 с демонстрационной дискеты. :) Вам понравится, гарантирую.
Gryphon88
Пробовал, радовался, но там с прикладными программами ещё грустнее.
ValdikSS
Попробуйте Damn Small Linux.
maikus
Наверное, никто сейчас не знает, что за код на самом деле день за днём выполняется на миллиардах устройств во всём мире. Кто даст гарантию, что там не на 80% Чужой код, и лет через -дцать, когда 5G или 6G случится везде, а устройства станут в n-раз мощнее, нас не ждёт эдакая Массачусетская машина из смартфонов и ферм, с глазами и ушами в каждом закоулке, и которую нельзя будет обесточить и обнести колючей проволокой.
Scf
В большинстве инженерных областей изготовление изделия (или стоимость отказа изделия) значительно дороже его проектирования. В таких условиях имеет смысл максимально оптимизировать производство автомобилей, т.к. каждая сэкономленная гайка умножается на кол-во произведенных авто. Аналогично с архитектурой — построить дом куда дороже, чем спроектировать.
В IT все наоборот — разработка "по аджайлу" относительно дешевая, а вот проектирование и верификация — очень дороги. Как в пословице про дурака, реку и камень — один закодил, десятеро протестировать не могут.
Об оптимизации беспокоятся только те, кто сам платит за железо: прежде всего производители устройств на микроконтроллерах и владельцы облаков из сотен и тысяч машин.
Jeka178RUS
Автор очень точно прошелся по индустрии сайтов и мобильных приложений, вот там как раз самый ад и твориться. Потому что надо всем, быстро и дешево вот и результат. В то же время автор правильно заметил, что игры в разы быстрее работают. Вот тут и работают «правильные» программисты, правда я с опаской смотрю на Unity и подобные вещи и ожидаю, что скоро апокалипсис придет и в эту индустрию.
Emulyator
Достаточно заглянуть в гуглплей, чтобы убедиться, что апокалипсис уже давно там. )
100500 новых игр в день, большинство из которых по просмотрам и монетизации не намного превзойдут фотку кота тети Зины в одноклассниках. А туторы на ютубе по созданию игры на юнити намекают, что время разработки этих игр остро конкурирует со временем создания фотки вышеупомянутого кота.
Все меньше фирм готовы вкладываться в серьезный игровой продукт, который может не выстрелить.
prefrontalCortex
Мне кажется, что такое положение дел в целом — это обратная сторона нынче популярного в узких кругах мнения, что, мол, хороший инженер должен думать в первую очередь о бизнесе, о его задачах и его нуждах. Но позвольте, — хочется мне возразить таким людям, — в стране, которая когда-то славилась одной из самых мощных инженерных школ в мире (это я про СССР, если что), за занятие бизнесом сажали за решётку, как у вас такие факты в голове укладываются? Инженер, блин, должен думать об инженерных системах, о бизнесе пусть голова болит у бизнесменов.
Losted
Софт и инженеры не существуют ж в вакууме. Любое решение должно соблюдать баланс между затратами и доходами. Условно идеальный софт, который не сделан вовремя и при этом еще дороже ожидаемой выгоды будет ужасным техническим решением.
PsyHaSTe
Инженер получает ЗП за решение задач, а не за то, что он делает крутые штуки. Всем нравится их делать, только никто почему-то ответственности не несет. А то легко сказать «давайте заморозим разработку на 3 месяца, отрефакторим Х», за это время конкуренты обошли, новый раунд инвестиций не дали, компания закрылась… Но с пустым кошельком остался только владелец бизнеса, а вы через пару недель пойдете к тем же конкурентам, которые остались на плаву. Немного нечестно получается, не находите?
Выше я уже написал. Ваша задача — дать квалифицированную экспертизу со всеми возможными рисками, возможно дать рекомендацию, но не принимать решения, если только это не ваша прямая обязанность по трудовому договору. Но тогда вы должны быть СТО (если не CEO), и мы наверное не про это говорим.
В конце концов, всегда можете показать, как надо сделать. Вот берете, делаете на гитхабе репозиторий такого же проекта, как у вас на работе (в той же сфере). Нанимаете людей, начинаете работать. Безо всяких нахлебников, которые ничего не понимают в продуктах. Только инвестиций брать нельзя, т.к. инвесторы не будут сидеть и ждать, пока их деньги вылетят в трубу. И продажников наверное придется нанять, иначе самый крутой продукт так и останется неузнанным и не скачаным, потому что про него просто никто не слышал. И много других но, с которыми постоянно взаимодействуют люди из бизнеса, но от которых мы с вами защищены джирой. Хотите принимать решения — берите риски на себя, а то принимать решения за которые потом будет расплачиваться владелец компании довольно подло.
VolCh
Просто бизнес был государственным и государство сажало конкурентов, вознаграждая тех, кто хорошо решал его бизнес-задачи.
bosom
За наличие букв Ё в статье, автору статьи (переводчику), огромный респект и уважение!
Мало, очень мало, людей не только код стали писать плохо, но и русский язык не знают!
novice2001
Вы — один из тех людей, кто русский язык не знает…
Ваше второе предложение «Мало, очень мало, людей не только код стали писать плохо, но и русский язык не знают!» — это шедевр в духе киевского мэра.
hellowitty
Респект, ё!
Corosan
Да ладно с этой Ё, тут ещё прокатывает вариант в стиле "да у меня клавиатура из 56 букв, у меня нет такой клавиши". Но как же сильно вымораживает неправильное использование мягкого знака после "т".
Уважаемые читатели и все-все-все. Пожалуйста. Запомните, те, кто ещё не в курсе после школы. Нужно ли ставить "ь" в глаголах после "т", проверяется вопросами "что делают/ет?", "что делать?". Если в вопросе есть "ь", то нужно ставить. Пример:
hfinn
Emulyator
А какой ситуации можно ожидать, если ПО возникает, меняется, умирает по законом очень похожим на эволюционные? Да, кто-то скажет, что нет в мире ПО нормальной конкуренции и настоящего выживания наиболее приспособленных, что бабло и маркетинг исказили законы и побеждают не самые быстрые, компактные, удобные, надежные, а блестящие, мигающие, часто обновляющие внешний вид, разрекламированные.
Печаль в том, что эволюционный подход хоть и прекрасен, но он вовсе не обязан выдавать эффективное во всех отношениях решение, а главное условия, к которым вынуждены приспосабливаться программы (их разработчики) сильно изменились. Изменились не столько из-за жадных бизнесменов, хитрых маркетологов и глупых дизайнеров, а по причине широкого распространения компьютеров, мобил и прочих умных устройств среди населения. ПО, превратилось в пакет с соком на полке супермаркета и на него стали действовать отработанные десятилетиями методы эффективной продажи (заодно придумали несколько новых специфичных для софта). Да, маркетологи виноваты, но они вторичны. Первичен человек, который, как и 100 лет назад, любит «новое», привлекающее внимание, с функцией «потешить ЧСВ» и т.п.
Так что ничего существенного мы тут не изменим, разве что всем возмущенным скинуться и оплатить масштабную рекламную компанию с тезисами, продвигающими эффективность, функциональность, реальную надежность, олдскульность и т.п. Но это все временно, и против любви к «новому» мало что поможет, она «прошита» в людях аппаратно. )
BD9
Живая природа тоже любит выкрутасы — посмотрите на павлинов. Или на возвратный гортанный нерв.
Wesha
Я просто оставлю это здесь.
Emulyator
Это то и настораживает. Когда наблюдаешь «выкрутасы» в отдельных программных продуктах, поневоле задумываешься об отсутствии разумного создателя. )
gatoazul
Ничего, скорость процессоров растет все медленнее и в конце концов упрется в потолок. Вот тогда и начнется волна оптимизации софта.
maydjin
Дык иначе надо мощности останавливать и огромные штаты людей выгонять на улицу. А зачем останавливать, когда можно не останавливать а выхлоп продавать и обогащаться?
На самом деле, есть определённый круг людей, который тусуется на железе 10+лет давности или на low end актуальном железе, что бы хотя бы для себя снизить такие неэффективности.
Ещё, есть системная разработка, где нервы автора статьи наверное могли бы слегка подуспокоиться :)
InterceptorTSK
Когда-то программирование было точной наукой. И никак иначе. 2+2 всегда было равно четырем. Нынешнее программирование совсем убого. Если 2+2 выдает 5 — то это считается не таким уж и плохим результатом. Если 2+2 выдает 4.5 — то это вообще хорошо! Если 2+2 выдает 4.1 — то вы бог программирования!
Причем нынешние дегенераты реально думают так, и живут именно в таких понятиях. Они же не могут понять простой вещи, что все ошибочное — ОНО ОШИБОЧНО, и не важно насколько близка ошибка к точному результату. Нет же. Вместо того что бы избегать ошибок вовсе, дегенераты придумали градации ошибок, и термин ошибка сменили на другой. И все сразу стало в шоколаде) Ошибки заменились на ворох каких-то никчомных дегенерацких терминов. И это спасает дегенератов от выпила из системы. Ну а кому охота идти с метлой к помойке?
И да, основная проблема только в том, что программирование стало доступно для широких масс, читай — для быдлы. В этом основная проблема нынешнего «программирования».
Уже лет примерно 5-8 назад, точно не скажу т.к. это не существенно — я перестал именоваться программистом, когда меня спрашивали о роде деятельности. Примерно в оговоренное время я понял, что лучше мне не называться программистом вовсе, т.к. к ТАКОМУ ИДИОТСКОМУ ПРОГРАММИРОВАНИЮ я не имею никакого отношения вообще.
da-nie
Нифига себе, для широких масс… Я как учебник по Си++ ни открою, так просто офигеваю от его сложности. А как открою «Эффективный Си++», так и вовсе в простации от концепций. Это что ли, низкий порог вхождения? ;)
InterceptorTSK
Так точно. Так и было. Закрывали и дасвидули.
Вы открыли ровно то, что юзалось как раз таки 20 лет назад повсеместно, потому что ничего другого не было. Ну был паскаль, ну фортран. Что то там еще. Это не совсем то.
Сейчас же вы можете вмиг наколхозить на более чем 20-и языках свою поделку и не париться. Вот смотрите как оно было с той же мобильной джавой. Вам шло где-то 15 базовых классов, типа систем, эррей, дисплей, вектор и т.д. И НИ ОДНОГО ЗАРАНЕЕ НАПИЛЕННОГО КОМПОНЕНТА) Пишите сами. Ищите сами, например что-то похожее ищите, перепиливайте под себя и юзайте. Мобильная джава в себе не содержала фреймворка. Напишите его сами. Сможете? Как напишете — так оно и полетит. И раньше такое программирование было повсеместным. И оно приводило к тому, что людей заставляли понимать, что они делают.
Сейчас же базовые вещи раздали всем. И оно позволяет программировать как бы без проблем. Т.е. программа-то запускается, и даже поведение адекватное. Но человек безумно собравший из кусков свое поделие вообще не понимает как оно работает. И отсюда все беды конечно же.
Ну вот вам пример. Я на днях увидел как некое тело пишет реализацию ISO639, ну там кому-то надо было что бы все по стандарту и т.д., не суть, пришлось прикрутить. Это стандарт языков если что, в смысле языков на которых люди общаются. Ну я поглядел как оно. Это же бред какой-то) Во-первых зачем-то прикручена база данных. Накачаны какие-то компоненты, какое-то гавно. Ну просто фееричное гавнище абсолютно не нужное никому кроме дегенератов. Ну типа что бы база работала и там что-то еще. Я вообще не понимаю зачем база данных, если база статическая))) Тут любой массив обычный подойдет. МАССИВ))) ОБЫЧНЫЙ. Правда не совсем обычный, а разряженный, ну не суть. И дергайте вы с него все что захотите и как хотите. Вот значит ето тело начало писать какие-то безумные скрипты, что бы наколхозить сначала базу данных, причем накачало каких-то пакетов, затем какие-то проверочные скрипты, какой-то ужасающе-зверский навоз.
Ну есть готовая база на сайте ISO, но это же не значит, что ею надо пользоваться напрямую)) Это же не эффективно.
Вот пришлось переписать это на уже обычнейший шарп на структурах, и оно зверско полетело в сравнении с поганым мскюэлем убогим. Получилась обычная либа, с массивами внутри. И функциями поиска в них. На 3570к например из либы можно дергать поиском 200 миллионов языков в секунду. Такая вот производительность. Можно даже чуть быстрее, но пока не нужно. Мскюэль и рядом не валялся, зачем он? Ничего сложного) Никаких зависимостей, никакой фигни. Зачем оно? Собрали на втором фреймворке, подписали и работать оно будет всегда и вечно. И память вообще не ест, с чего? И обновлять это никто не будет))) ЗАЧЕМ??
И подобных либ у нас уже сотня. Ну нет смысла юзать что-то в чем вы вообще ничего не понимаете. Пишите все что есть сами. С нуля. Только это позволит вам действительно разобраться. И так и писали раньше повсеместно.
Делов на пол-дня, зато у нас появилась очередная библиотека, каторую в след.раз мы примотаем за 2 клика хоть куда, и она железобетонно будет работать.
Так щас же писать разучились. Ручками писать. Накачают какого-то гавна, которое называют пакетами, компонентами и прочей парашей — скрутят в кучу и смотрят как оно падает зловонно воняя на весь комп абсолютно неадекватной хренью, выжирая память проц, и в итоге подыхает в конвульсиях, захлебываясь в фееричном количестве собственных ошибок и исключений.
VezhLos
Плюсую всем руками и ногами. Всё в точку. Последний абзац ну просто с языка сняли. Эх, Ваш бы коммент да распространить повсеместно…
PsyHaSTe
Могу ответить одной ссылкой: habr.com/post/280099/#comment_8820183
Нет ничего хорошего в том, чтобы велосипедить свою реализацию если можно взять готовый компонент. Обратное явление называется «копи-пастой» и «велосипедостроением» и не особо практикуется.
А то я так могу реверснуть ваш пример: вы написали супер-оптимизированную офигенную реализацию, а я взял и переписал на использования nuget-пакеты, который *еще* на 20% производительнее, и в котором починена куча всяких неприятных уязвимостей и багов.
Жду не дождусь какого-нибудь всеобъемлющего npm/nuget/… репозитория, где можно будет хранить пакеты в виде какого-нибудь LLVM IR, который можно будет подключать к проекту на любом языке. И убрать вообще всё дублирование, как это сейчас бывает, даже если есть хорошая либа для Х на одном языке, не факт что она будет на таком же, но похожем.
InterceptorTSK
Проблема в том, что готовых компонентов вагон и телега. И далеко не все документируются. И совсем единицы подвергаются тестированию. И уж совсем один или аж(!) два имеют спид-тесты. Вы о чем говорите вообще?) Т.е. вы хотите, что бы я реально взял чье-то поделие, и прикрутил себе? ВЫ В СВОЕМ УМЕ ВООБЩЕ?)))) Я понятия не имею как оно работает. Зачем оно мне? Я же это людям выдам, и я за это отвечаю, а не пейсатель пОкета. И как мне тестить таких же аналогичных пОкетов десяток? А если их 20? А если у них разная реализация? Что сложного прикрутить несколько массивов? Ну да, надо знать что такое массив, а как иначе? Надо знать как эффективно в нем искать. Надо знать как собрать структуру, что бы она была пригодна для поиска и положить ее в массиве именно в то место, что бы поиск был за О(1). Вот тупо поиск мгновенный получается. Вообще моментальный. Вот прям поиск без поиска) И да, такое запросто возможно, и это никакая не заумь, ЭТО ПРИМИТИВЩИНА первого курса любого факультета связанного хотя бы как-то с программированием. Вы поймите, если вы вообще ничего не понимаете в этом, так вы не программист вовсе. Любой программист из бывших вообще выпучит глаза на все эти ваши пакеты, закроет рукой лицо и самовыпилится сразу же. Это же для дегенератов сделано. Ну т.е. не для программистов совершенно. Ну есть там вы или домохозяйка Люсия, вот для них оно сделано. Собрали как-то, запустили, скрепит-пердит, но работает. Правда падает через раз, но для домохозяек пойдет. Вы домохозяйка что ли? У вас вообще хотя бы минимальное самоуважение хотя бы на уровне студента первого курса есть?
Ужасно…
0xd34df00d
Это хорошо, когда дело ограничивается, скажем, поиском по массиву (а чего вы массивы сами не писали, кстати?). А вот если вы мне предложите взять и самому написать, например, вычисление обратной матрицы, или топологическую сортировку, или свои комбинаторы для парсеров, или вообще какой-нибудь хупл, я начну немножко удивляться.
da-nie
В смысле, открыл? Я с 1995 года всем этим занимаюсь. Но это совершенно не значит, что я владею и понимаю приёмы того же Александреску или Мейерса, а также знаю и применял все паттерны и современный стандарт Си++, а так же гору алгоритмов. Всё это совсем не просто. И никуда не делось.
А вот о каких базовых вещах, розданных всем, вы пишете, я не понимаю. Это про web что ли? Ну, тут я полный ноль. В C#, python и java кстати, тоже.
А так, обычные приложения и 20 лет назад клепали в Builder и Delphi не особо вникая в работу системы. Но такие плохо понимающие разработчики писали для себя или мелких контор и в серьёзный софт попадали редко (хотя, QIP вроде как на чём-то подобном был написан, но, думаю, его автор хорошо понимал, как оно вообще работает).
Если честно, я даже не знаю, как сейчас пишутся приложения для PC. В чём, например, рисуют интерфейс? К чему он подключается? Я всегда использовал MFC и формы в ресурсах. А сейчас как?
Anthony_K
Обратная сторона такой деградации производительности — резко возросшая, невероятная скорость разработки нового ПО. Если на разработку Windows 2000 Микрософт потратила более 5 лет, то сейчас новая версия винды выходит чуть ли не каждые 2 года (про то, что всякой прикладной апликухи за день сегодня пишется больше, чем писалось за год 15 лет назад умолчу. При чём, как в штуках софта, так и в строчках кода). Короче говоря, наблюдаем переход качества в количество.
dartraiden
И скорость портирования этого ПО. Можно долго ругать Electron, но он позволяет быстро выпустить приложение под все основные платформы.
Контрпример: есть мультипротокольный мессенджер, который при 4 активных протоколах (ICQ, IRC, Tox, Jabber) потребляет всего 8 мегабайт оперативной памяти. Но это достигнуто за счёт максимального использования WinAPI. И как только появилось желание портировать его для Linux — упс, приходит осознание масштаба работ и понимание того, что в 2018 году разница между 8 и 80 мегабайтами ощущается совсем не так, как в 2000, когда оно писалось.
Massacre
Вот там выше в комментах (volt.ws) пробуют написать аналог сразу с поддержкой win, macos, linux. Пожелаем им успехов в развитии :)
DrPass
Я честно, кроме редких исключений, вижу строго обратную картину. Изменения внедряются больно и мучительно, новых фич мало, чаще тратится время на перерисовывание картинок, нежели на функционал.
Да даже ваш пример с Windows 2000. Да, на разработку NT5 потрачено пять лет. Но количество новых функций там было беспрецедентным. Серьезные изменения в файловой системе, новая архитектура драйверов, огромный набор инструментария для управления инфраструктурой, от консоли WMI и до Active Directory и т.д. Я не слишком ошибусь, если предположу, что за эти пять лет в Windows было реализовано больше нового функционала, чем за последующие 18 лет от Win 2000 до Win10.
Alex_ME
И зачем нам новая версия винды раз в два года? (Нынче вообще rolling update)
Anthony_K
Богам маркетинга надо приносить жертвы, иначе они прогневаются. 90% пользователей ничего не понимают в технической стороне продукта, но хотят что бы было «модно и современно».
BD9
Потому что начиная с Windows Vista ОС у M$ внутри меняются мало. До нынешних скоростей многие пинали M$ за задержки с выпуском Windows Vista, потом за тормоза и плохой интерфейс, и что не всё воплотили.
theTeacherOfEnglish
Возможно эта история прозвучит как оправдание, но все же немного объяснит плохую производительность некоторых приложений, и следовательно плохое качество их кода.
Когда я окончил учебу и получил степень бакалавра, мне нужно было искать работу, накопились расходы, долги. Меня захэдхантили и предложили следующий проект: за 3 месяца нужно было написать обучающее веб-приложение с разными заданиями, множеством анимаций, и чтобы оно запускалось на Андройд телефонах и планшетах, на айфонах и айпадах.
Деньги были очень нужны, и я согласился. В команде были сценарист, аналитик и я в роли фронтэндера. Мы поставили это приложение, и на кордове переконвертировали это в мобильные приложение (иначе было просто не успеть). Приложение работало в браузере, но на телефонах и планшетах жутко тормозило. Наверняка кто-то пользуется этими приложениями и до сих пор злится и пишет подобного рода статьи.
Возможно виноват я (что взялся за это дело), возможно заказчики (что слишком жадный), а возможно рынок виноват. Но таких случаев очень много, и с этим ничего не поделаешь.
balajah
Классная статья, подпишусь во всем. А причины давно известны:
1) капитализм, где зарабатывают не на прибылях, а на издержках
2) в отрасли много недалеких личинок, которые не только программируют, но даже руководят
Лекарство тоже давно известно:
1) крах и небытие переразвитой системы (первая пойдет майкрософт)
2) медленный и печальный опенсорс, если к тому времени всех не пересажают
Anthony_K
Опенсорс — такое же тормозное г-но, как и проприетарное. У последней убунты требования к системе уже выше, чем у винды.
balajah
Пишу с лубунты, никаких тормозов, обновления по 20 мегабайт в неделю, инсталлируются за 1 минуту, старт за 40 секунд, шатдаун за 8.
Xandrmoro
Я не смог заставить работать убунту на абсолютно типовом железе.
Вообще.
lxsmkv
Я пять лет назад страдал «дистросвитчингом», баловался линуксами, гонял их на виртуалбоксе. Месяц назад мне на работе понадобился линукс. И на последнем виртуалбоксе у меня из коробки не инсталлировалась ни убунта, ни федора. Я сильно удивился. Раньше все это ставилось на раз.
Anthony_K
Пишу из-под WinXP на AthlonXP. Тормозов нет вообще, старт (от появления лого до приглашения Ctrl+Alt+Del) 25 секунд, шатдауном не пользуюсь — хибернейт рулит. Но один частный случай, как вы понимаете, не показатель. Да, скайп из-под неё не работает ((
sumanai
Вы что-то делаете не так, у моей матери работает.
Anthony_K
А какая версия, если не секрет?
sumanai
Спрошу на досуге.
Grox
В WinXP возможно, но не на Athlon XP, в прошлых версиях они добавили обязательных инструкций процессора, которых нет у Атлонов. Может быть в Скайп 8 всё переделали и оно заработало?
Vanellope
Пишете в мобильной версии хабра или в обычной? На стареньком но боевом Core2Duo E4700 и 4х гигах оперативной памяти пользоваться хабром можно комфортно только в мобильной версии, а текущий тред с овер 800 комментов, боюсь отправит браузер к праотцам.
Massacre
У меня E5300 и 4гб, всё нормально можно делать в этом треде. Это ж не Фейсбук.
BD9
Под Win XP достали тормоза Огнелиса (Win XP 32 бит), и он перестал обновляться с лета.
Линукс и FreeBSD (64 бит) работали быстрее на той же машине.
PsyHaSTe
Ставил убунту на ноут, в итоге на второй или третий день смог найти инструкцию, как завести вай-фай. Нужно всего лишь поставить пару компонентов, склонировать репу и сбилдить его. Для меня как разработчика было не сильно сложно. Но для рядового пользователя это дикость. Но вот после этого победить рандомные зависания я не смог. Пока отложил, дойдут руки, буду разбираться.
Так что такое себе.
Какие альтернативы? Из конкурирующих фирм я помню только коммунизм, который представлял собой дикую смесь кумовства и распила: большинство смешных реальных историй того времени — как кто-то договорился о покупке мяса с черного хода, принес фальшивые деньги, а купил мясную отработку, кто как сливал дорогущие космические реагенты и продавал, кто платиновой ниткой себе шнурки завязывал, кто авиационной краской военного назначения за бешенные бабки красил себе туалет на даче… В общем, если это имелось ввиду под «альтернативой», спасибо, не надо.
srhbdv
Какие еще деньги при коммунизме, и какое «то время».
В «то время» был социализм. А коммунизма еще не было нигде и никогда на уровне государственного строя.
Sychuan
Коммунизм был первобытнообщинный. Читайте классиков марксизма-ленинизма. А вообще вы уверены, что система, все попытки построить которую ведут к развалу и которой никто никогда не видел это круто? Может быть лучше «О Граде Божьем» Св. Августина почитать с такими же успехами?
srhbdv
А где я писал, что это круто? Не фантазируйте.
evtomax
В «то время» был переходный период от коммунизма к капитализму, ибо партноменклатура осознала себя как класс буржуазии. Коммунизм был с середины 30-х до начала 60-х. Социализм — это неразвитый коммунизм с отпечатками предыдущей формации.
Gryphon88
Офигеть, коммунизм с Вождём — это что-то новое в политологии.
evtomax
Вы перечислили как раз ростки капитализма в коммунистическом обществе, а не признаки коммунизма.
PsyHaSTe
Я рассказываю про то, как это было в самой крупной попытке человечества реализовать социализм… Впрочем, я знаю, что вы на это ответите, поэтому просто оставлю еще вот это:
evtomax
А вот и не угадали! В СССР был настоящий социализм. При социализме проблемы старого общества не пропадают внезапно, и при отсутствии сознательной общественной борьбы с ними, старые порядки неизбежно возрождаются.
PsyHaSTe
В таком случае лучше отказаться от бесплодных попыток, раз злые буржуа каждый раз никуда не деваются?
user343
А вы читали книгу "Конец техноутопии" (Overshoot, 2006) и повесть "Машина останавливается" (The Machine Stops, 1909)?
"Когда-то люди строили машины, чтоб сделать свою жизнь как можно более комфортной. Теперь они не могут и представить себе существование без всемогущей Машины, обеспечивающей их пищей, водой, воздухом, книгами, связью и вообще всем, что только можно себе представить. Мало кто задумывается над тем, что Машина полностью подчинила себе людей, а того, кто задумается, ждет неминуемая кара — лишение крова и изгнание на безжизненную поверхность Земли. Но однажды Машина ломается..."
(а измельчавшие людишки разучились её чинить)
PsyHaSTe
Нет, не читал, но посыл «давайте жить хуже, чтобы если что-то пойдет не так мы были подготовленными» мне не кажется верным.
user343
Уже пошло не так, замаскированный энергетический кризис на повестке дня. Мощные пылесосы и лампочки не просто так запретили. Рост скорости процессоров не успевает за отуплением программ. Гонки в цифровую пропасть заканчиваются.
"Новые техпроцессы для производства микросхем все чаще откладывают" https://habr.com/company/it-grad/blog/422501/
"2019 — год, когда Intel остановился" https://habr.com/post/424035/
"В школах Франции запретили мобильные телефоны" https://rg.ru/2018/07/30/v-shkolah-francii-zapretili-mobilnye-telefony.html
PsyHaSTe
Ууу… Покайтесь грешные, ибо грядёт Он. И воздаст Каждому по делам Его… А нет, это немного из другой оперы.
Эти сказки про мировой кризис, падение доллара, заполонение Евпроы средним сирийским классом, вендекапец и прочее уже не вызывают должного интереса. Три ссылки вроде как должны придать доказательной базы, но по сути просто похожи больше на случайные новости из ленты. Кроме интела есть другие компании, техпроцессы откладывают по очевидным причинам, и это было понятно всем, кроме маркетолухов. И ради бога, при чем тут французские школьинки? Очень обидно за них, конечно, но как они влияют на замаскированный энергитический кризис (или они сами его и маскируют?) не совсем понятно.
0xd34df00d
Не надо судить об опенсорсе по убунте. Гентушникам обидно.
IRainman
Убунту из всего опенсорсного ОС как то более всего человеко ориентирована и для простых людей. ИМХО конечно.
san-smith
Как по мне, Linux Mint будет поудобнее для начинающего линуксоида. Всё-таки убунтовская Unity вещь довольно специфическая.
Кстати, DistroWatch тоже считает, что Минт популярнее Убунты.
VolCh
Юните почила в бозе :( Теперь гном3
san-smith
Да? Буду знать. Просто я после Убунты 12.04 сначала пересел на Xubuntu, а потом на Mint.
IRainman
Хм, интересно, возможно в следующий раз её попробую. Но сейчас, особенно с учётом изменения вектора развития Microsoft и выхода 10, пусть пока она всё ещё для меня сыровата и 7 лучше, на Linux для десктопа я вообще не смотрю, а в роутерах и серверах (по большей части) и так Linux но без оболочки.
fatronix
balajah
Проприетарщина будет однозначно функциональней, так и должно быть, у корпораций деньги. Опенсорс же берет только старые проверенные решения, убунта до сих пор на GTK гимповом сидит, но эта плата за надежность, ведь чтобы тебя включили в репозитарий нужно согласовать это с сообществом, а в корпорации один человек может все решить. Корпорации это прогресс, а опенсорс стабильность.
PsyHaSTe
Странные у вас представления о корпорациях… За каждой корпорацией сидит куча людей, которые постоянно считают деньги. И уж они то как раз за стабильность. А в опен-сорсе все такие «а давайте на юнити — давайте, там круто!!», а потом «а давайте обратно — давайте, тож ничо!».
0xd34df00d
Не нужно ничего ни с кем согласовывать. В дебиане вам нужен просто проверенный опытом мейнтейнер, готовый взять вас под крыло на время. В генте вам даже это не нужно, открываете пулл-реквест у них на гитхабе и всё. Я так туда свой нужный полутора анонимусам комбайн запихнул.
0xd34df00d
Мне вот интереснее сравнивать, скажем, clang с icc по части поддержки стандартов. Или с cl.exe, хотя они вроде как зашевелились последнее время.
Asxer
Я в таких случаях привожу аргумент «Твоё приложение может быть бесконечно оптимизированным, но какой в этом толк, если оно не работает?». А почему оно может не работать? Ну например потому что заказчик постоянно хочет фичи и меняет требования, а конкуренты поджимают. Ни один продукт не живёт в состоянии стазиса, он всегда развивается и именно развитие продукта является тем самым испытанием, которое диктует приоритет на том, чтоб брать стабильные, готовые решения даже если они медленнее, чем каждый раз писать своё и быстрое решение. Пользователь конечно заметит, что приложение грузится чуть медленнее, но когда вы начнёте путаться в тоннах самописного кода и будете допускать баги(а при таком подходе вы неизбежно к этому прийдёте), то это намного более критичная ситуация.
Windows 95 работало быстрее? Хм… Ну давайте время отклика калькулятора посчитаем, но сколько приложений вы на нём запустите? А пользователи ждут, толпа жаждет хлеба и зрелищ! И когда вы начнёте удовлетворять потребности этой толпы вдруг окажется, что придётся писать менее оптимизированный, но более гибкий код.
Пост как по мне, так борьба с ветряными мельницами «Этот мир живёт неправильными приоритетами!», но десятилетия разработки ПО привели именно к этой расстановке приоритетов не просто так
Emulyator
Пользователи зачастую уже давно ничего не требуют, ну разве что «вернуть, как было». Но кто их слушает? Вот вам пользователи новая непривычная, тормозная, глючная версия, с добавлением сомнительного функционала, покупайте, осваивайте, привыкайте. Поддержка и продажа старой версии окончены, выбора нет. )
Asxer
Ну про глючность это как раз аргумент в пользу того, что лучше переиспользовать готовые решения, чем писать каждый раз оптимизированный низкоуровневый велосипед.
Если дизайн надо заново осваивать, то это большой вопрос к дизайнеру проекта и к теме разговора отношения не имеет.
Новый ненужный функционал? Так говорите как будто его программисты придумывают:)
На счёт тормозов. Пользователь не хочет приложение, которое работает максимально быстро. Это никому не нужно. Пользователь хочет приложение выполняющее свою функцию в приемлемое количество времени. Разница между 0.05 с и 0.5 с для рядового пользователя настолько несущественна, что её никто не заметит. А это разница в производительности на порядок! А вот то, что ради этих 0.45с вы угробили почти весь бюджет заказчика, при этом писали исключительно свой код не используя фреймворки потому что они тянут лишние зависимости и занимают место. И как следствие, на разрежение лапши в коде тратится неприлично много времени, что приводит к появлению багов.
Итог приложение открывается на 0.45 с быстрее, но вот при нажатии на нужную пользователю кнопочку крашится. Зато быстро:)
Каждому решению своё место. Там где производительность является ключевым фактором, там приложения оптимизируются на минимальное время отклика и открытия, но в большей части софта это не нужно.
Когда тормоза в приложении начинают мешать им пользоваться, тогда приложение оптимизируется, но во-первых все современные решения позволяют оптимизировать приложение до того самого приемлемого уровня, а во-вторых определяющим фактором и узким местом становится уже не железо, а пользователь, который начиная с определенной задержки перестаёт чувствовать разницу и траты бюджета на дальнейшую оптимизацию становятся неоправданными.
Emulyator
Вопрос в том, зачем что-то писать вообще, если уже работает за 0,05с и пользователей устраивает?
Вы взяли и замедлили производительность на порядок, на порядок раздули приложение сторонним кодом, стабильность которого по сравнению со старым никто не оценивал, наняли опытного дизайнера, который перерисовал интерфейс так, чтобы привыкнуть было не очень сложно, и все потому, что якобы приложению «калькулятор»(например) не выжить без испытаний постоянными обновлениями? )
PsyHaSTe
Ну например чтобы починить старый баг? По-вашему старые баги чинить не надо и пользователи и так привыкли? Ну например, был баг в библиотеки шрифтов. Разраб залез, увидел дикие костыли, нашел на гитхабе стороннюю либу, которая это чинит. Проверил, всё работает, даже новые фичи появились, равно как и внешняя зависимость. Коммит, багфикс летит в прод.
Или вы предлагаете каждый баг костылить, чтобы одни и те же вещи люди каждый раз писали с нуля, "кастомизированно"? Ну это какой-то NIH в крайней стадии.
Emulyator
О каких старых багах речь, если пользователей все устраивает? )
Я просто указываю на очень распространенные ситуации, для которых придумали пословицу «лучшее — враг хорошего», ну или «работает — не трогай».
Я понимаю, что можно долго обмениваться частными гипотетическими и реальными примерами, но они не дают права делать обобщения и уж тем более выводить универсальные правила создания и обновления программ.
Мой взгляд такой: обобщить и выдать универсальный подход по созданию и обновлению софта за пару абзацев невозможно. Можно накидать несколько общих размытых рекомендаций, которыми без опыта и удачи даже не каждый способен правильно воспользоваться. Например, если ты опытный авторитетный программер, разработал и поддерживаешь легкий, шустрый продукт с минимальным использованием сторонних библиотек, имеешь благодарных пользователей, ценящих эту легкость и шустрость, то у тебя будет один набор доводов добавлять или нет стороннюю, незнакомую тебе, тяжелую библиотеку с зависимостями. Если же ты начинающий, не уверенный в своих силах разработчик, или просто по каким-то причинам работающий в стиле «все уже придумано до меня, никаких велосипедов», то у тебя будет другой набор доводов.
Asxer
Я категорически не согласен с таким предвзятым подходом, что человек пишущий код заново и экономящий на спичках называется опытным и авторитетным, а человек строящий приложение на готовых решениях — начинающим и неуверенным.
Может быть мы с вами в принципиально разных сферах работаем, я работаю в сфере веба и мобильных приложений, где ваш подход смерти подобен. Самые жуткие проекты, которые мне доставались шли одним и тем же сценарием. Был разработчик построивший приложение на велосипедах потому что они быстрые. Фреймворки не нужны, сторонние библиотеки нужно сначала прочитать и тд. И всё вроде бы неплохо работает пока не появляется она — ФИЧА!
Это закон программирования — каждое изменение кода — потенциальный крах системы. Программист, который в вашем понимании должен оцениваться как опытный и авторитетный разработчик, начинает рушить свой идеальный, быстрый, но построенный на велосипедах код пытаясь встроить в него новую фичу. Откуда взялась фича? Ну у заказчика поменялась бизнес-логика, что-то изменилось в бизнес-процессе да мало ли! Это не вопрос программирования.
И вот код программиста уже выглядит не так хорошо, а тут появляется ещё фича, потому что новые изменения являются новыми и устаканиваются по ходу дела. Появляются новые баги — и всё это потенциальные крахи системы. И тут велосипеды дают о себе знать. И вот ваш изначально быстрый код крашится и валится, но при этом ещё и представляет из себя нераспутываемую лапшу. Заказчик терпит повышения бюджета месяцы, годы. Но потом наступает момент, когда проект просто умирает. Не из-за заказчика, а из-за программиста велосипедофила. И вот заказчик меняет команду разработчиков и потом нам приходится это разгребать.
Проект, где не появляется новых фичь это какая-то экзотика, я даже не припомню такого… Такое может быть только на проекте, который либо очень узконишевой, либо которым мало кто пользуется.
Emulyator
Ну, начнем с того, что у меня вовсе не присутствует подхода, с которым вы категорически не согласны. Вариант, где программист «по каким-то причинам работающий в стиле «все уже придумано до меня, никаких велосипедов»» специально упомянут, чтобы избежать обвинений в предвзятости. Это может быть вполне опытный разработчик с 15 летним стажем, который трезво оценивает современные требования к разработке в своей нише, и понимает, что разумнее использовать чужие готовые наработки, чем набивать свои шишки. Т.е. это вполне положительный пример.
И я не престану утверждать, что в каких бы областях ни творил разработчик, какие бы парадигмы, подходы, инструменты ни диктовали бы рынок, мода, гуру, — нельзя без вдумчивого анализа конкретной задачи (и много чего еще в), принимать решение о том, как писать, на чем писать, что использовать, что нет. Коротко такой подход можно назвать здравым смыслом. )
А что касается веба, то вот подходящий к теме длинный пример из моей практики.
Контора, где я работаю, заказала у сторонней фирмы немного изменить сайт. На стороне, потому что в своем штате ни один айтишник вебом не занимался и желания не проявлял, а человек, делавший последнюю версию, толи денег много захотел, толи перестал интересоваться темой, не важно. Сайт обновили: перешли с самописного движка (php) на движок друпал, просто визуально/функционально повторив сайт. На том же хостинге новый сайт стал тормозить… По замерам на порядок — на два, и это объяснили большим уровнем абстракции, а значит гибкостью, универсальностью, последующей легкостью в изменении и поддержке. Я даже согласился с этим объяснением, и по совету разработчиков сайта, выбил у руководства перенос на рекомендованный, проверенный многократно, но более дорогой хостинг на vps. Худо бедно, но все зашевелилось со скоростью на уровне «есть сайты и потормознее, сойдет для сельской местности».
Очень скоро появились жалобы от посетителей, нет, не на скорость, а на то, что люди, условно говоря, подавали заявку, сайт «говорил» им, что успешно её зарегистрировал, но по факту в базу эти заявки не попадали, или на то, что сайт недоступен в короткий период подачи заявок на получение, скажем, товара повышенного спроса. )
Проблема возникала не регулярно, но довольно частая, и в результате многократных переговоров с разработчиками сайта дошло до того, что последние обвиняли посетителей во лжи, и что у них все работает, проверили много раз. В конечном итоге выяснили, что посетители не виноваты, что компетентность разработчиков не позволила быстро и точно локализовать проблему, потому что глубоко они в друпале не разбираются, а в php и mysql почти никак. Зато быстро, как конструктором умеют делать сайты на друпале.
Пока шла вся эта тягомотина, мой напарник увлекся node.js, изучил react, поплевался на отсутствие типизации в javascript, освоил typescript, поизучал и, (как он посмел!) написал свой аналог redux, изучил основы работы с vps и нарисовал такой же сайт, на своем react.js движке практически без зависимостей, который летает, в котором ему понятно, что как работает. Несколько месяцев — и новый сайт, все довольны, ну кроме сторонней фирмы, с которой пришлось расторгнуть договор.
Никакой морали, просто подходит к контексту разговора.
Asxer
Чтоб переписать изначально рабочий сайт с нуля требуются достаточно веские основания. А в вашем случае программисты просто рукожопы.
К тому же друпальное комьюнити это какая-то отдельная секта. Переписать сайт на технологию, которую не понимают достаточно глубоко, при этом не имея достаточных оснований для этого потому что… Ну это же Друпал!=) Я бы с ним вообще не связывался. А тут весь набор некомпетентности.
Тут как говорится «с дуру можно и МПХ сломать».
Emulyator
А основание простые. Хоть сайт и не такой уж сложный, но это был чистый php, довольно аккуратно, модульно написанный(даже я разобрался), а современное состояние в веб такое, что часто представители разработчиков даже не рассматривают ситуацию, что сайт может не использовать один из популярных движков. Они первым вопросом спрашивают: «на чем сайт?», и не давая ответить, пытаются угадать, перечисляя глупому заказчику те многочисленные движки, с которыми они умеют работать. А когда узнают, что движка нет в списке, вариант сделать все с нуля — единственный, который рассматривается, а предложение: «может посмотрите, как оно сейчас устроено, может разберетесь и подправите?» сразу отвергаются. И я могу понять этот подход с экономической точки, — «делают то, что умеют», но в результате такие вот истории. )
PsyHaSTe
Например отсутствие поддержки lf в notepad в винде. Может пользователи привыкли, но это не нормально.
Обычно сразу после этого следует фраза «давайте лучше закостылим». Не люблю это правило в большинстве случаев.
Emulyator
Вот тут и требуется умение не быстро прикрутить проверенную библиотеку, а взвесить затраты и главное последствия всех подходов. В список подходов вполне может входить и сторонний код, и самостоятельное исправление, и даже тупое игнорирование проблемы. Оно примерно так все и происходит, просто, к сожалению, люди, ответственные за выбор варианта, зачастую либо не заморачиваются с глубоким анализом, а работают по накатанной, либо в своем глубоком анализе преследуют цели, отличные от «сделать пользователям хорошо». Например, преследуют цель «сделать быстрее», либо «сделать идеально», либо «не делать ничего», либо «сделать, потому что умею» и т.д.
…
Костылями вполне можно считать как прикрутку тяжелых библиотек с ненужными зависимостями, так и написанную на коленке кривую заплатку.
Asxer
Ну появление новых требований диктуется не разработчиком, а заказчиком и пользователями. Зачем делать редизайн? Ну может потому что у конкурентов дизайн адаптивнее(новые устройства появляются регулярно и ваш старый сайт на новом экране может выглядеть не так хорошо), красивее и современнее.
Плюс заказчик просит фичи потому что… Ну это уже от проекта зависит. Требования пользователей год назад, когда ваше приложение только появлялось и было в новинку и требования сейчас, когда они его распробовали будут серьёзно разниться. Да, господи, просто посмотрите как изменился контакт. Если сейчас выкатить его в старой форме приблизительно лет десяти назад со стеной, отсутствием аудиозаписей, только одной аватаркой и тд и тп, то этим сайтом просто никто не будет пользоваться.
Ваш продукт должен быть дружелюбен к изменениям потому что они наступят ГАРАНТИРОВАННО. Расчитывать при разработке на приложение, которое будет оптимизировано один раз и не будет модифицироваться, значит изначально писать либо крайне узконишевой продукт, либо мёртворождённый.
Почему потребовалось переписывать калькулятор? Не ко мне вопрос, калькулятор некоммерческий проект, денег не приносит и монетизации не имеет. Тут скорее всего потому что просто кому-то захотелось, но сделать так, чтоб бюджет сильно не тратить и потому сделали всё халтурно. У меня нет полного ответа в частности про калькулятор.
Emulyator
а если не сайт, а если 3д редактор, или операционная система, или текстовый процессор, или калькулятор или просто у конкурентов сайт еще менее адаптивный? А может просто потому, что вкладывая незначительные усилия в ненужное пользователям перекрашивание и тасование кнопок и закладочек, можно объявить о выходе новой версии, а затем рекламой, юридическими ходами, склонять пользователей к объективно ненужному обновлению?
А может просто начальство требует новый релиз каждый год, а у маркетологов нормальные идеи закончились, а место терять не хочется и к легкому калькулятору приделывают тормозные анимированный кнопки, затем конвертер валют, единиц измерения, вычислитель ипотеки, построитель графиков, редактор кода, магазин скриптов, чат, но так и не делают нужный некоторым юзерам квадратный корень? )
Я ради интереса недавно зашел на sql.ru где когда-то участники раздела про MS Access переживали неудачную политику развития этого изначально весьма удачного продукта. Так вот, там до сих пор бытует устойчивое мнение, что не стоит использовать версии выше 2003, а 2003 до сих пор успешно применяется многими в разработках включая коммерческие. Это каких же таких «полезных» изменений надо было надобавлять, что опытные пользователи уже 15 лет отказываются обновляться? )
Asxer
Ну вот извините, но практически весь ваш комментарий — попытка разобраться, откуда исходят требования. Но речь-то не про источник требований, а как развиваться кодовой базе в условиях постоянно появляющихся хотелок и требований. Источники могут быть разными, часто разработчики с ними не согласны, иногда не согласны с ними и пользователи, но заказчик неумолим. Сути это не меняет — есть требование, которое нужно удовлетворить, за него деньги платят. Если каждый разработчик будет критиковать механизмы монетизации приложения, то это прямое нарушение разделения обязанностей на проекте. У меня были заказчики, которые очевидно стартовали проекты, которые по моему мнению не окупятся, мы говорили заказчику, но он был неумолим и проекты не окупались. Но точно так же были и проекты, где мы предупреждали заказчика об аналогичных проблемах и его фичи стреляли и приносили деньги. Каждый смотрит со своего ракурса и не всегда то, что видит разработчик соответствует тому, что видит заказчик. Пусть каждый решает свои задачи.
Постоянно появляющиеся требования разработчиками должны восприниматься как данность, как закон природы, к которому они должны быть готовы.
ТС же причитает, что разработчики не экономят ресурсы железа. Это плата за гибкость к изменениям. Тут применим эволюционный процесс и выше указали в комментариях на это — были разные подходы и разработчики, но самым жизнеспособным оказался подход — главное писать гибкий код, дружелюбный к новым требованиям, чем код, скурпулёзно считающий такты процессора. К сожалению это очень часто взаимоисключающие направления.
Emulyator
Если бы ТС причитал необоснованно и в гордом одиночестве, то тут не набралось бы под 1,5К комментов. А значит «не все так однозначно»(с).
Что касается эволюционного процесса, то да, это он. Но я даже где-то выше (или ниже) довольно развернуто указал на минусы такого процесса.
Грубо говоря и чтобы не плодить простыней: эволюция «сосет» у разумного замысла. И ТС, подымает сложную проблему, в рамках которой невольно предлагает вспомнить, что мы — разумные существа, а не крысы выживающие в лабиринтах построенных социально-экономическими реалиями. )
PsyHaSTe
Есть спектр решений, так вот гибкое решение почти всегда лучше, чем быстрое. Эволюция относится ко всем вещам, включая и разработку. У нас нет никакого «бога», чтобы скоординировать обище усилия. Изменяющиеся требования — закон природы, и если вы сделали классный индекс на уникальный номер пользователя в БД, и завязали на это кучу логики, а потом оказалось, что в реальной базе есть дубли (хотя вроде не должны быть, но вспомнили один кейз, почему так происходит иногда), и всё пошло коту под хвост. Невыдуманная история.
Оптимизации возможны при большом количестве априорной информации о системе. А этой информации может быть недостаточно, она может быть просто ложной, и она может быть достаточной и корректной, но поменяться в будущем. Чем больше оптимизированно решение, тем больше оно опирается на некоторые допущения — количество ядер, количество запросов, ценность ЦПУ относительно памяти, и многое другое… Каждое такое допущение — потенциальная дыра и недели исправлений.
Emulyator
Ну тогда можно сказать, что «вся боль» о том, что решения стали слишком гибкие, слишком универсальными, слишком много слоев абстракций, потому что у нас нету «бога», способного сказать: «Стоп! Твой монстр еле шевелится, а пользователи убежав к конкурентам, облегченно выдыхают, мгновенно загружая простенькую программу, которая при этом не содержит и 90% функционала твоего монстра».
И, возвращаясь к теме «заказчик заказал, программист просто исполняет», я тут затеваю ремонт в квартире, смотрю как и все «ботаники» ролики про ремонт на ютубе. Очень понравился подход одного опытного мастера, который настаивает на том, что нужно делать как надо, а не как хочет заказчик, это в конечно итоге будет лучше для обоих. Понятно, что это все общие лозунги, но и лозунги «заказчик платит»,«клиент всегда прав» явно требуют осмысления в каждом конкретном случае.
PsyHaSTe
То есть если вы закажете плитку в ванной положить, а исполнитель постелит линолеум с формулировкой «я 20 лет этим занимаюсь, тут линолем лучше» вы скажете «ну ок, вы же специалист»?
Emulyator
Если отвлечься от абсурдности надуманного примера, то да. Вы же не заказываете хирургу проводить аппендэктомию через задний проход, потому логично рассудили, что так шрама не останется? Вы, если повезет, вольны выбрать хирурга из нескольких, передать ему максимально точно свой анамнез, упомянуть об аллергиях и хронических заболеваниях, а дальше просто довериться выбранному профессионалу. Парикмахеру и строителю конечно можно указывать в более широком диапазоне, но если исполнитель 20 лет в профессии, значит есть отзывы, рекомендации, законченные объекты, на которые можно посмотреть, потрогать, спросить мнение заказчиков и сравнить с другими. Да, желательно, чтобы строитель мог объяснить причины по которым он отказывается делать водяной теплый пол в многоэтажке, или отказывается присоединять лоджию в доме с внешним фасадным остеклением, но когда количество «хотелок» такое, что вместо ремонта придется обучать заказчика, то право исполнителя задрать ценник или отказаться от объяснений. Почему в программировании должно быть иначе? Из-за того, что конкуренция такая, что заказчик уйдет к студенту, который за еду будет исполнять все причуды пока не разочаруется в программировании? В каждой области встречаются и халтурщики и профессионалы, и я думаю есть профессионалы на которых есть спрос и высокий ценник, которые позволяют себе отказаться от заказа, если клиент лезет не в свою область, не понимая последствий.
PsyHaSTe
Да нет же, как раз строитель должен все объяснить, верно. Но если клиент говорит «мне пофиг, все равно хочу так», нужно делать так, а не саботировать своим мнением продукт.
khim
Думаю и в программировании этим кончится.
Emulyator
Угу, а потом получить уголовку за экспериментирование на живых людях для хирурга, или для строителя судебный иск за ненадлежащий ремонт, из-за которого управляющая компания требует от прикинувшегося неинформированным веником владельца квартиры устранить в 3-х дневый срок нарушения. Или получить смерти людей, потому что кому-то несущая стена помешала расширить метраж. Да, можно сказать, что примеры притянуты, что в разработке таких последствий не бывает, но думаю что бывают, пусть реже, но даже просто прогнозируемый гемор в дальнейшем — уже повод задуматься: «а стоит ли связываться с таким упертым заказчиком?».
PsyHaSTe
Вы куда-то не туда ушли со своей аналогией. Врачи вообще не про то, они с жизнями работают. От того, что на сайте будет кнопочка немного другая никто не умрет. Не надо притягивать плохие аналогии, а потом делать далекоидущие выводы.
Emulyator
Плохая аналогия это когда некий профессионал знает свою работу хуже, чем заказчик и отказвается класть плитку в ванной. Но далеко не все врачи прямо таки с жизнями работают, и не все разработчики красят кнопки на сайтах в угоду капризным клиентам. В современном мире программисты в медицине реботают не меньше, чем отдельные врачи. Если так уж угодно, никому не понравится когда перегруженный фичами по желанию заказчика сайт электронной записи на прием муниципальной больницы упадет из-за всплеска нагрузки от посетителей и оставит людей без медицинсокй помощи, или позволит хулигану засрать расписание фейковыми заявками, потому, что заказчик свято верил в невероятноть такой ситуации и сэкономил на контроле. Я уж не говорю об ответсвенности разработчиков в областях связанных с различными мед.исследованиями. Я был личным свидетелем когда толи неправильно настроенная толи содержащая ошибку банальная программа по ручному заполнению формы электронной карты пациента после флюорографии в полях новой карты не очищало поле диагноза, смущая врача, и заставляя его предположить наличия какого-то экспертного алгоритма, которого там в помине не было. Тоже наверное кто-то настоял, не стирать, чтобы меньше теста набирать если совпало. )
ainoneko
Ogra
Достал, проверил. Ох ты ж блин…
Asxer
Ну тут проблема понятна — пока отрабатывает предыдущая анимация кнопка знака не срабатывает и получается каша. По идее просто халтурно сделанное приложение и проблема отношения к тестированию софта, не ожидал от Эппл такого.
Но к теме разговора это никакого отношения не имеет. Проблема-то не в том, что телефон НЕ УСПЕВАЕТ отработать калькуляцию и даже не в том, что установочник калькулятора весит много, хотя мог бы весить всего ничего и даже не в том, сколько ресурсов кушает данное приложение(а именно эти проблемы заявлены в статье), а в том, что разработчики халтурно подошли к реализации и тестированию своего софта
Tarson
Windows 10 больше ибо в ней все предыдущие версии Windows.
minusnaminus
И видимо, все нерожденные версии тоже.
sumanai
Ладно хоть не все последующие.
minusnaminus
Так говорили что десятка — последняя. То есть, следующая ось будет называться не виндоус, а как-то иначе
PsyHaSTe
Ну логично, учитывая, что все последующие ОС по сути являются обновлениями десятки.
На самом деле любопытно, выродятся ли все эти Singularity/Midori/Barrelfish/… во что-то реальное или нет. Пока что я видел из применения — пикопроцессы в винде. Но это — капля в море… Груз обратной совместимости слишком велик, и вообще непонтяно, удастся ли от него избавиться… Видимо только если мы все в какой-то момент перейдем на какой-нибудь электрон (избави бог), и можно будет сменить ОС на что угодно, что умеет в JS…
kovserg
С грузом обратной совместимости можно было справиться с помощью виртуализации. Посмотрите на DOSbox это полная эмуляция старого компа. Win3.11 пускается под ни даже на планшете.
Но микрософт страдает фигнёй выпуская кучу версий одного и того же но другого net runtime-ов, vcredist-ов. Вместо того что бы навести порядок и выпустить новую ос которая могла работать паралельно они пытаются разделить runtime на кусочки api-ms-win-*.dll которые не являются библиотеками, зато уже имеют разные версии. Не смотря на все годы микрософт так и не смогла предложить простой и удобный инструмент для разработки gui приложений. Зато теперь пытается активно возвращаться к терминалам, добавляя wsl и улучшая консоль.
PsyHaSTe
Этот путь уже попробовали пройти с Itanium, чем это закончилось всем известно
K0styan
То 15 лет назад было. Сейчас Google неплохо справляется с виртуализацией, поддерживая нативные приложения Android и Linux в своих Хромбуках. Microsoft позволяет запускать x86 приложения (не только UWP, но и нативные) на ARM процессорах. Разумеется, и то, и то — с оверхэдами. Но в целом тенденция радует: возможно, от проклятья обратной совместимости удастся избавится довольно скоро, что даст дорогу свежим платформам.
Am0ralist
Она то позволяет, да Интел ей запретила…
uchitel
Переводчику зачет.
Автору повезло, что он не жил в России и не сталкивался с нашим софтом, который покупает государство для налогоплательщиков на деньги налогоплательщиков, сделанное по принципу: «Если работает — не лезь, не трогай, не спрашивай!». Однажды мне попался один такой «разработчик», спросил его сколько он получает (!) 30000 рублей (!!!) в Новосибирске. И этим софтом вынуждены (принуждены) пользоваться тысячи людей. Представьте, вам нужно в онлайне заполнить таблицу, всего-то 20 полей и 15 строк — всего-то. Ноооо это слишком скучно! Пусть после каждого перевода курсора на следующую ячейку происходит задержка, секунды по 1,5-2, зато данные (наверное) сразу подгружаются на сервер. Хотя нет и это слишком неинтересно, когда таблица будет почти готова, пусть выскочит сообщение «Неизвестная ошибка. Нажмите „Отправит“ (именно „Отправит“, а не „Отправить“) и мы постараемся ее исправить». А данные, на самом деле, на сервер не подгружаются. Все равно скучно и некриативно. Пусть после каждого перевода курсора, происходит автопрокрутка страницы в ее самое начало, а при масштабировании заголовки полей масштабироваться не будут. Вот теперь нормально, но мы еще обязательно что-нибудь придумаем… постойте-постойте! А пусть оно, типанормально работает только на десктопах и только под IE.
Python — это вообще в точку! С его дефакто-стандартом в области MLAI! Не, когда начинаешь, то всё и правда розовое вокруг. Потом всё тоже не плохо, так, всего-то парочка трещин на очках, как у Гари Поттера. Но вот когда дело доходит до оптимизации… когда нужно лезть в дебри исходников большинства импортированных библиотек, когда ты понимаешь «Что документация — это для слабаков и отстойщиков». Что под капотом-то оказывается Fortran, C, C++, Java, CUDA. Вот тогда-то розовые стекла и сыпятся.
На Питоне начал писать медленно, реально медленно. Иначе хорошо не получается.
Самое обидное, что если ты пишешь хорошо но медленно — то ты безработный. А если ты пишешь хорошо но быстро (работаешь еще и по ночам), (!) даже подробно комментируешь код, то ты все равно безработный, потому-что «Нафиг он нужен? Если он свалит (а поработав у нас он обязательно свалит), то после него в этой мутатени никто не разберется, а если и разберется, то попросит больше».
kvasdopil
Автор текста — программист из Новосибирска, кстати.
PsyHaSTe
«Нафиг он нужен? Если он свалит (а поработав у нас он обязательно свалит), то после него в этой мутатени никто не разберется, а если и разберется, то попросит больше».
Нафиг места, где так думают) У меня два раза такое происходило, и оба раза я уходил в более хорошее место. Нужно писать так, чтобы не было за себя хотя бы стыдно. Так что самосовершенствоваться никому не мешало. Я вот тут на текущую работу когда устроился, моя продуктивность возрасла просто раз в 5 по сравнению с предыдущим унылым местом. Для сравнения — на третий рабочий день я за 8 часов успел проект на 350к строк превратить в проект на 50к строк без потери функциональности. Просто проанализировав всё, что мне попало в наследство. На следующий день у нас был разговор с СТО на тему «нужно как-то кэшировать загрузку с сервера». После прояснения, стало понятно, что первоначальный запуск приложения занимает 6 минут и это очень дофига, надо бы как-то кэшануть. Еще один день разработки — программа грузит все данные за 8 секунд, кэширование перестало быть нужным (а с ним отпал и целый пласт связанных проблем, ну вы знаете..). И это первая рабочая неделя только, где я просто знакомился с проектом и людьми… А всё почему? Потому что реально атмосфера, где я могу делать что-то классное, где мое мнение имеет значение, где плоская иерархия и я спокойно могу зайти к гендиру и пообщаться на тему того, почему обещанные заказчику сроки и требования несовместимы, и вместе с ним и СТО выработать план действий…
Очень много зависит от атмосферы, на текущей работе я понял это сильнее, чем когда бы то ни было.
uchitel
Когда был студентом, пригласили в лабораторию. Быстро вник что к чему, моделирование рынков и все такое. Слепил в wolfram mathematica (программировать на тот момент вообще не умел — можно сказать, был дебют) скрипт, все довольно неплохо заработало. Самое главное — это казалось вообще волшебством (не мой скрипт), а сама wolfram mathematica. Но приехал руководитель лаборатории из штатов, привез какую-то программулину и сказал, что они вычисляют по ней, значит, мы тоже будем на ней работать. Все мои наработки вместе со мной, моими вопросами и предложениями нафиг.
Ребята потом рассказывали, как он привозил литературу, тыкал пальцами в американские графики и говорил «Во! У нас так же получается!». Его даже по телику показывали, приглашали экспертом в программы.
Все что меня сейчас выручает, так это старые хорошие знакомые. А вот с атмосферой, почему-то никогда не везло. Просто мои знакомые там, как-то могут работать, а я нет.
Поэтому и сижу, дома в своем кабинете.
Konachan700
Всё нормально, ложная тревога.
Первые ездовые животные тоже были своенравные, медленные, опасные и в целом неудобные. Прошло время и мы получили прекрасных лошадей. А занимайся мы выведением сразу идеальной лошади, так и сидели бы в пещере до сих пор. Первые паровозы и автомобили нещадной коптили, гремели, ломались, и были диким ужасом. Прошло время и мы получили отличные поезда и прекрасные автомобили. А займись полировкой паровоза/автомобиля тогда — до сих пор конский навоз с улиц вывозили бы. И так со всем, за что не возьмись. Сначала технология сырая, кривая и неудобная, и пока ее взрывной рост не закончится, она будет таковой — урода никто не будет исправлять, пока за ним стоит очередь. Когда все наедятся уродцами, взрывной рост закончится, и технология войдет в стадию полировки — начнут и оптимизировать, и выкидывать ненужное, и иными способами вылизывать продукт.
В IT сейчас стадия взрывного роста, самый ее пик. Продукт тормозит? Досыпте ресурсов облаку, это дешевле найма дефицитных кадров. Приложение полгигабайта? Держите айфон на 512 гигов и успокойтесь. И это хорошо на самом деле. Это помогает развитию индустрии. В любом случае рано или поздно будет пойман потолок технологий, где экономически станет выгоднее нанять 10 человек, а не добавить условных 100 мегагерц процу, и в тот момент начнется работа не на увеличение мощности, а на оптимизацию использования того, что есть.
novice2001
Совершенно наоборот.
У нас уже были отличные автомобили (или что угодно ещё). Но потом кто-то подумал — а давайте приделаем к машине красивую мигалку. ОК, приделали. Но возросло аэродинамическое сопротивление, расход топлива, упала динамика. Давайте поставим мотор помощнее. ОК, поставили. Динамика вернулась, но расход топлива вырос еще больше. А еще пришлось переделывать подвеску, потому что мотор тяжелее, и шины большей размерности ставить. И т.д.
В итоге мы имеем монстра, который все так же перевозит водителя и четверых пассажиров, зато облеплен мигалками, ленточками и рюшечками. При этом потребляет в 10 раз больше бензина и облагается вдесятеро большим налогом. Но некоторым именно это почему-то кажется прогрессом.
volchonokk1
Вообще-то экономичность автомобилей в последние годы только растёт. Этим озабочены как автопроизводители, так и законодатели. В США пробег на одном галлоне бензина пассажирских машин вырос с 15 миль в 70х до 25 миль сейчас — т.е. потребление топлива упало в 1.5 раза. Это уже не говоря о возросшем интересе к электромобилям в последние годы. Конечно ещё остались всякие спорткары, которые жрут непомерно, но ими пользуются только энтузисасты.
Всё потому что автомобили подошли к лимиту добавления рюшечек и лимиту топлива, и ресурсы автопроизводителей переключились на экономичность. Тоже самое будет и с программами. Просто сейчас до лимита рюшечек и ресурсов компов пока ещё далеко. Если в мобильники можно впихнуть 8 гигов оперативы и полтерабайта накопительной памяти — никто не будет особо думать об оптимизации.
novice2001
Вы в аналогии не умеете? Комментарий на который я отвечал сравнивал программы в том числе и с автомобилями. И в моем комментарии автомобили — это не автомобили, а именно программы. Про состояние автомобилей я прекрасно осведомлен и без вас.
BD9
Не только софт.
В новых материнских платах Gigabyte (Aorus) вместо разъёма для com-порта размещён разъём для светодиодной ленты. Разъём для M.2 накопителя — под видеокартой, зато с радиатором.
novice2001
Ну, com-порты сейчас и правда нужны далеко не всем. Но эта мода на светодиодную подсветку всего и вся — да, типичный пример тупости потребителей и падкости на моду.
Tarson
Вот поэтому длина клетки человек ДНК аж джва метра! Там те же проблемы. А птички смогли укоротить, с лишним летать тяжело.
Mad__Max
И «рабочего» кода если верить ученым всего около 2%. А 98% занято не пойми чем — в основном огрызками старого, уже давно неиспользуемого кода, включая код вирусов, которыми когда-то были заражены далекие предки. Хотя некоторые куски иногда оказываются задействованы в неожиданных местах…
IRainman
На счёт 98% не пойми чего, там многое не понятно. Коды вирусов, например, если они включены в ДНК в обратной последовательности к тому как они расположены у вируса приводят к тому, что вирус уже не может размножаться в такой клетке… собственно так, примерно, и работает вакцинация, это база данных того что встречалось ранее. Ещё не до конца понятно где и что отвечает за инструкции по сборке ибо клетки плода и стволовые клетки изначально одинаковые, а потом всё это развивается в гораздо более сложную систему. В общем недоизучено пока что.
InterceptorTSK
Экспрессия генов есть же на это. И сборки нет никакой вовсе. Клетка от какой-то условной клетки будет множиться влево достаточно точно 50 раз. Эти же клетки будут множиться вправо 150 раз. Таким образом вы и получите как бы «сборку». Только это сборкой не назовешь. Каким генам когда срабатывать — почитайте. Все это достаточно понятно и объяснимо, причем давно. Некоторые детали реализации не совсем ясны, но глобально как и почему — объяснено полностью.
Про 98% непонятного тоже объяснено. Оно для экстремальных условий. И снова работает тут экспрессия генов. На дрожжах же ставили опыты. У них какой-то процент генов в норме работает. А остатки как бы не нужны и не понятны. Начните подсушивать дрожжи — и внезапно будут кодироваться белки из этого якобы «ненужного» набора генов, они обеспечат выживаемость дрожжам в такой вот экстремальной ситуации.
И т.д.
firehacker
Очень приятная статья. Я думал, я одинок в своих взглядах на то, насколько катастрофична и печальна ситуация в отрасли, но статья и одобрительные комментарии прямо подняли настроение.
К сожалению, всё сложнее и сложнее найти заказчика и работодателя, который позволил бы тебе работать правильным образом.
lxsmkv
В продуктовой среде (то что можно пощупать) такая же беда. Если ты точно знаешь, что тебе нужно, можно дни напролет безрезультатно лазить по интернет-магазинам. Есть только «барахло», и копия «барахла», но дешевле. Если ты неразборчив и принадлежишь к 80 % обыкновенных потребителей — то выбор, конечно, бесконечный.
Мне не понятно зачем на рынке столько моделей тостера, кторые отличаются только формой и материалом. Уникальных особенностей нет ни у одного. Потому что никто не ставит такую задачу.
Пока покупателя будут называть «потребителем» — ничего не изменится :) Получается мы сами виноваты в своем горе. Мы — неразборчивы. Мы — не требовательны.
vdasus
На самом деле, из моего опыта, очень немного людей понимают что означает «писать правильно». Более того, за последние два года (из ~30 лет айти) я сам сильно поменял свое мнение на некоторые, кажущиеся «правильными», вещи. А самое печальное, когда решения может принимать человек, который думает, что он-то как раз знает как «правильно» (а на самом деле подучиться бы ему чуток). Так что сложнее не найти работодателя, а все еще сложнее.
Rohan66
Тут поминают лунную программу и атомную бомбу. Я видел ТЗ на создание атомной бомбы — это 1 (одна!!!) страница текста…
А про софт — была отличная писалка дисков Nero. Постепенно скатилась в монструозное полелие и, вроде, померла.
А Ворд? 90% пользователей используют 10% функционала. Да и версии между собой не полностью совместимы.
khim
Другое дело что смысла в ней нет — версия 10-летней давности будет в 10 раз меньше, быстрее… и будет делать то, что нужно. То же самое — с офисом и прочими программами…
Rohan66
И так происходит со всем софтом (практически). Добавляют свистоперделки, наращивают непонятную мощЬЬЬЬ (а заодно и размер), а вот надо ли это — никто, вроде, и не задумывается.
Для себя — я не вижу большой разницы между Word 6 и Word 2016. Быстрее по клавишам я стучать не стал, а форматирования мне и в 6-ом хватало.
А вот когда мне пришёл грифованный документ в 2013, а я открыл его в 2010 и потерялась страница — вот это была проблема! Причём потерялась из-за какого-то форматирования (а не реально).
khim
Больше я ничего не знаю такого, что было бы реально критично для существенного процента населения.
При переключении с принтера с 300dpi на принтер 360 dpi (24-игольчатый матричник) или наоброт такое умел делать Word 6 уже (а может и Word 2).
Так что это не новая фича…
Rohan66
Но в моём случае всё оказалось хитрее. Примерно 4/5 документа в обоих версиях были идентичны, а вот дальше потихоньку начались расхождения — примерно по предложению на лист и к концу документа лишний лист и набежал…
khim
Принципиально нерешаемая проблема программы, где вся вёрстка строго заточена под принтер, на котором документ будут печатать.
Тогда попыла бы вёрстка у людей, которые переходят с одной версии на другую без смены железа. Microsoft старается этого избегать.
Rohan66
Ну-ну… Старается… Две одинаковые машины, с одинаковыми принтерами. Только на одной 2010 офис, а на другой — 2013.
Как же тогда народ документами обменивается? Была бы проблема в DPI — вообще бы совместимости не было...
Ну а про преобразование формул в рисунки в разных версиях? Тоже принтеры виноваты?
khim
А её и нет. И никогда не было. MS Word был изначально заточен строго под подготовку документов к печати. И несмотря на огромное количество костылей, вбитых за долгие годы, ни с чем другим он на 100% не справляется.
Нет, это проблемы с лицензиями. В старых версиях Microsoft пользовал урезанную версию MathType, а в новых — сделал свою приблуду. Разумеется так как исходников MathType у них никогда не было — получилось… как получилось. Хорошо ещё что OLE2 толком не взлетел — а то сейчас бы новая профессия была бы: «криминалист-исследователь документов», который бы умел понять — какие версия каких программ нужно установить на компьютер, чтобы прочитать конкретный документ.
Похожая история с поддержкой ZIP-файлов в Explorere'е…
Am0ralist
Если честно, главная проблема в том, что люди редко делали документы — нормально.
А так я видел и книги, набранные в ворде, которые нормально между компами переносились и ручное оглавление в которых всегда оставалось верным. Ну, то есть если правильно использовать табы, разрывы строк, страниц и прочее, а не отбивать энтерами и пробелами, то, внезапно, документ так не бился.
И которые потом в мелких типографиях печатали спокойно. Вот прям из ворда.
sumanai
Всего лишь 1,68ГБ в репакнутой версии…
Fracta1L
При том что есть софтина для записи дисков размером в 398 Кб и не требующая установки: avt-lab.ru/scdwriter.htm
А вообще, легковесных программ до сих пор предостаточно: 3dnews.ru/975310
Rohan66
Нормальная ОС меньше места занимает! (вместе с программой для записи дисков!)
Mad__Max
Nero551020.exe — 12.7 МБ
Большой «путь» однако они проделали. Ожирение в 130 раз за 13 лет.
vis_inet
Я пользовался программкой «SCDWriter» — наверное, самый минимум — всего 400 Кб!
ru.wikipedia.org/wiki/Small_CD-Writer
vis_inet
Rohan66
С удовольствием бы! На стене в рамочке висело. Но нельзя там было фотографировать. Это музей ЯО в Сарове. Есть только фото рядом с Царь-бомбой! )))))
Alexx31
Не расстраивайтесь так. Однажды порядок наведётся сам собой, буквально в течение нескольких лет будет добровольно переписан в сторону оптимизации весь прикладной софт на нашей планете. Появятся также и новые среды разработки, блистающие своей эффективностью и унифицированностью.
Что для этого нужно? Ограничение на оборот мощных процессоров среди простых граждан. Рано или поздно это произойдёт в целях борьбы с терроризмом, когда точно рассчитать и подстроить несчастный случай будет способен какой-нибудь смартфон. И получится, что Айфон с простеньким исполнительным механизмом будет опаснее, чем кило взрывчатки.
minusnaminus
Почитав коменты, мне, не програмисту, более всего это напомнило чем-то войны массовых армий. Начало войны: немного подготовленных солдат и офицеров, и их быстро выбивают. Продолжение войны: набор огромных масс новобранцев, резкое проседание качества младших офицеров, больше ошибок и потерь, как следствие — позиционный тупик и кровавые попытки его преодоления. Окончание войны: командование учится пользоваться тем что есть. Мы на второй стадии?
P.S. Пишу с планшета, десяток слов отредактировал взад за автокоррекцией, сколько весит эта малополезная приблуда — смотреть страшно
Jun06Man
2012 году я участвовал в одном проекте (военная тайна), использовали «голый» компилятор FPC (лицензия свободная, открытый код, кроссплатформенный), начали писать библиотеки к проекту, полностью с нуля, используя API Windows и API ядра Linux. Приложение получилось быстрое, имело малый размер. Но это был сущий Ад! Мы постоянно исправляли ошибки, добавляли функционал, делали кучу тестов. Получается, большую часть времени, мы тратили на разработку библиотек. Можно было взять уже готовую библиотеку, в которой присутствует требуемый функционал и исключить все страдания. Мы пытались сделать все то, о чем Вы, пишите в своей статье, оптимизировать ВСЕ! Ключевое слово «ПЫТАЛИСЬ», обычным пользователям, было глубоко НАСРАТЬ, на оптимизацию. Конкуренты, успешно «лепили» похожий проект, использую готовые библиотеки (кучу готовых библиотек).
Rohan66
А что и как было сертифицировано? Иногда проще провести сертификацию своего «поделия на коленке», чем использовать что-то стандартное, но без сертификата.
Очень забавно выглядит сертифицированная Винда, Офис, ещё что-то, а вот про драйвера и библиотеки (тот же NET) — никто не думает. ))))
Jun06Man
Rohan66, у нас была идея и мы писали код, веря в розовые мечты о совершенном. Код проекта остается закрытым.
С 2017 года я программирую на PHP. Я не дума, что есть смысл, каждый раз писать с нуля laravel или Symfony.
Rohan66
Ясно. Я думал, что писали под работу с гос. тайной.
Jun06Man
Это тихое и мирное ПО, для анализа серверов на Win или Linux ;). Мы допустили фатальную ошибку, начав писать с нуля, в релиз пошли пару версий, с серьезной ошибкой в коде. Эти ошибки, в некоторых случаях приводили к неработоспособности всей системы и естественно администрация (сервера) искала и находила причину. У конкурентов дела обстояли лучше.
У FPC открытый исходный код, мы и туда начали лезть и там успели «накосячить».
olehrif
В коде очень много ненужных инструкций изначально, неиспользуемых библиотек, функций, веток кода, которые никогда не исполняются.
Существует несколько слоев ПО. Очень грубо можно представить так.
Один слой отвечает за работу железа.
Один слой за операционную систему.
Прикладное ПО имеет свои задачи.
Каждый слой писался отдельными командами в разное время в разных местах разными инструментами.
Мой знакомый мне предложил простое решение.
Решение должно быть… комплексное, когда абсолютно все ПО имеет единую природу и единый источник, единый инструмент. Без слоев.
Код не должен содержать ни единой ненужной строчки. Исполняемый код — не единой ненужной инструкции.
Все ПО должно быть перестроено за счет выстраивания матриц сущность-связь-действие.
Тогда программы будут очень короткие, эффективные, сверхбыстрые, надежные.
Важна будет математика построения связей, построенных на физико-математических принципах.
Фактически, чтобы создавать программы, нужен искусственный интеллект, построенный на физических матрицах, который будет достраивать прикладными задачами единое операционное поле компьютера. И это ПО будет зависеть от конфигурации компьютера. Каждая новая ячейка памяти ОЗУ может быть учтена при работе программы. То есть имеем бесшовный стык — аппаратура-ПО-функции.
Подступы к созданию такого ПО есть.
staticlab
То есть в ОС компьютера пользователя будет сидеть JIT-компилятор с ИИ, который будет жёстко оптимизировать программу под железо компьютера?
Oplkill
Достаточно 1 раза в момент установки и смене железа и всё
olehrif
Нет. Задача ИИ создать отделяемое программное обеспечение без слоёв и поддерживать новый функционал. Чистый клей железо-функции с огромной производительностью и надежностью.
PsyHaSTe
В каком конкретно коде?
Все компилируемые сегодня приложения собираются с LTO что говорит о том, что каждый скомпилированный байт достижим из точки входа при каком-то наборе параметров.
Ogra
В коде библиотек, например. Вот есть в библиотеке foo функция bar, которая не используется ни одним приложением, но в память эта функция все равно грузится.
Какая-нибудь малюсенькая программка на .net может весить 100 килобайт, использовать три десятка функций из гигабайтного фреймворка. Выше на Джоэла уже ссылались.
Дальше — больше. Компилируемые приложения, это хорошо конечно, но сколько у нас сейчас других приложений? На электроне, на питоне, просто со скриптами внутри?
Я даже не знаю, можно ли при разработке на Электроне, вырезать из него ненужный функционал — вебсокеты и вебртц, например. Скорее всего, нет такой возможности. И в итоге, каждая запущенная программа отъест памяти под эти никогда не используемые куски. При том, что теоретически, если нет загрузки джаваскрипта по сети, можно было бы скомпилировать/слинковать приложение без условного вебртц автоматически. Сэкономив чертову тучу ресурсов.
PsyHaSTe
Если мы про динамические библиотеки, то это да, но они могут суммарно занимать меньше месте, нежели какой-нибудь libssl будет статически слинкован во все приложения. Гигабайтный фреймворк (кстати, там сейчас сильно меньше, мегабайт 200?) один на всю систему, и его достаточно для покрытия всех потребностей. Не вижу большой беды в том, чтобы оно было в системе.
olehrif
На самом деле создание такого программного клея есть частный случай предложенного подхода.
1. Проблема
При автоматизации различных сфер деятельности человека существует проблема перевода прикладных знаний в конкретную информационную систему. Например, в медицине существует около 130 специальностей, для каждой из которых существуют свои термины и подходы к лечению. А человек – один.
В чисто информационных системах существует проблема импорта и интеграции разнородных данных в единую аналитическую систему.
Ситуация напоминает строительство Вавилонской башни строителями, которые не говорят на одном языке.
Фактически любая задача сводится к согласованию языков и накопления знания о решаемом вопросе.
2. Решение
Все построенные человеком системы – языковые. Соответственно, решение вопроса взаимодействия систем нужно искать в кардинальном решении языковых вопросов.
Однако действовать в этом случае как лингвисты – использовать для решения вопроса взаимодействия языков — недостаточно.
Необходимы знания математические и физические.
Наиболее подходящими оказались матричные вычисления.
Фактически матричные вычисления позволяют представить перевод с языка на язык как перерасчет системы координат.
Кроме того, система понимания должна иметь контекстные знания в области, где нужны решения.
Современные разработки компьютерных интерфейсов могут дать возможность общаться с системой на естественном языке.
Фактически создание системы может выглядеть как диалог специалиста в нужной сфере с системой. Получив контекстные знания об области и правила обработки, имея возможность через интернет получать дополнительные знания общего свойства (например, погода или законодательство), можно за короткий срок и с минимальным участием специалистов ИТ сгенерировать конкретную прикладную систему для решения конкретных прикладных задач.
Важна здесь именно минимальность усилий. Не команда в 60 человек в течение 10 лет, а команда в 6 человек в течение полугода и менее может запустить в промышленную эксплуатацию систему.
Работа системы будет выглядеть, как это показано в фантастических фильмах о будущем: герой фильма задает компьютерной системе вопрос на естественном языке, компьютерная система отвечает, предоставляет топологические, мультимедийные и другие материалы и дополняет ответ своей аналитической контекстной информацией. При этом такая система может обрабатывать информацию из любых внешних информационных систем.
olehrif
В любом коде, кроме BIOS.
leossnet
Готов подписать практически под каждым утверждением автора за исключением его глубокого пессимизма в отношении будущего ИТ-отрасли. А будущее, на мой взгляд, вполне сравнимо с упомянутой в начале статьи автомобильной отраслью. Разница между этими отраслями заключается лишь в уровне развития инженерных школ в каждой из этих отраслей.
Например, автомобили марок BMW или Mersedes можно легко выделить в огромной массе автомобилей других марок. В ИТ-отрасли же есть только хорошие программные продукты, плохие программные продукты и программные продукты, написанные индусами. Причем программные продукты всех трех категорий могут выпускаться в рамках одной компании.
Наличие же инженерной школы предполагает гарантию минимального уровня качества и функциональности конечного продукта, а также соответствия его уровня цены и его уровня качества. А это достигается путем непрерывного совершенствования в течение десятилетий и столетий культуры производства (в широком смысле) и передачи накопленных знаний и опыта из поколения в поколение. Автомобильная отрасль этот путь уже прошла, у ИТ-отрасли это еще впереди.
minusnaminus
Идем на автофорумы и читаем там глубокий пессимизм в отношении будущего автопрома. Движки уже летят сто тысяч километров не отмотав, чтобы заменить свечи нужно чуть ли не половину машины разбирать, электроники понапихали, в некоторых авто до полусотни разных операционных систем воткнуто… Это если по диагонали читать :)
leossnet
То, что автомобили выходят из строя после окончания гарантийного срока, является проблемой не инженеров, а владельцев автомобилей. Для автопрома же эта ситуация как раз очень даже хороша, так как обеспечивает регулярное обновление парка автомобильной техники и, соответственно, рост занятости, доходов и прибылей. Замена механических компонентов на электронные также связана исключительно с удешевлением производства при сохранении функциональности, а также с обеспечением спроса на услуги специализированных автомастерских, так как самостоятельно такой автомобиль сегодня починить просто нереально. Как говориться, ничего личного, только бизнес.
При этом все эти штучки делаются руками высококлассных инженеров. Отсюда можно сделать предположение, что как только качество производства в ИТ-отрасли достигнет уровня автопрома, то программы будут ломаться или тормозить не потому, что плохо написаны, а потому, что в них заложили закладки, требующие обновления до новой версии за определенную плату. Конечно, 5% пользователей смогут их обойти, но остальные 95% обеспечат ИТ-бизнесу вполне приличный уровень дохода.
minusnaminus
И в чем тогда разница, гипотетическая, если раньше ПО глючило потому что руки кривые, а потом оно начнет глючить, так как мотивы (с точки зрения потребителя) кривые. В целом, сравнение с автопромом не совсем корректно, так как там наваливать костыли в таком количестве просто нет возможности. Увы, автомобили катаются в материальном мире, и должны мириться с его законами. В синтетических пространствах возможности для маневра много больше. Вы не можете дистанционно ухудшить конструкцию автомобиля, а вот с программой — запросто. Даже не трогая её саму, можно изменить среду в которой она функционирует. До уровня инженерной школы автопрома тут просто не дойдут, возможностей, а значит и соблазнов, сильно больше.
leossnet
А разницы и нет. Что касается костылей, то пока программы в основной своей массе не влияют на жизнь и здоровье людей, то и ошибок в них будет по определению много. Но как только кто-то реально пострадает из-за кривого софта или вообще погибнет, после чего исполнитель сядет в тюрьму, а компания заплатит большую страховку и штраф, то качество программного обеспечения в данном виде бизнеса сразу и резко возрастет.
Такой же эффект может быть получен, если в законодательство и судебную практику будут введены нормы, согласно которым любой потребитель программного обеспечения, столкнувшись с ошибками в его работе, может требовать возмещения моральных убытков и упущенной выгоды, кратных стоимости приобретения этого софта.
Но тогда государству и бизнесу придется очень хорошо вложиться в систему подготовки, повышения квалификации и аттестации программистов, что довольно скоро скажется на общем уровне качества программного обеспечения в лучшую сторону. Хотя, конечно, все эти изыски в конечном счете будут переложены на рядовых граждан в цене товаров первой необходимости.
VolCh
Из-за софтовых ошибок уже физически страдали и вообще погибали люди. Но максимум денежными компенсациями отделывались компании, насколько я знаю. Скорее всего из-за того, что все требования к процессу разработки были соблюдены, просто роковое стечения обстоятельств. После этих случаев требования для специального софта были ужесточены.
sim-dev
Почему-то не увидел ни одного комментария, который бы как-то однозначно определил причину такого поведения современного ПО. Попробую исправить ситуацию.
Все дело в современной модели бизнеса: покупай, чтобы выбросить.
Вместо того, чтобы оптимизировать ПО, чтобы оно летало на нынешнем процессоре, гораздо выгоднее разработать новый процессор. Привычка делать говняное ПО полезна, т.к. позволяет на новом, только вчера появившемся процессоре, создать новую версию старой программы, которая тут же станет тормозить. Круг замыкается.
Если не будет объективных причин, по которым следует обновлять ПО, смартфон, компьютер, автомобиль и т.п., современная модель бизнеса рухнет. Поэтому криворукий программист — двигатель прогресса! Берегите его, платите ему побольше, и не дай бог он начнет думать, как автор статьи!
Кстати, проблему автомобиля и расхода топлива в рамках парадигмы развития современных ИТ следует понимать чуть иначе, чем тут пытались сделать: не надо уменьшать расход топлива на 100 км пробега, следует сделать стоимость топлива минимальной, и будут брать. Разве не так? Зачем делать ПО, которое станет работать на 640 килобайтах ОЗУ, если можно сделать стоимость 32 гигабайт ОЗУ меньше, чем 640К?!
minusnaminus
Дайте вместо мосинки автомат Калашникова. В кого ни будь-то да попадешь :)
Emulyator
Странно, что не увидели комментариев о причинах, они есть. Что касается тезиса «гораздо выгоднее разработать новый процессор, чем оптимизировать ПО», то он подразумевают заговор разработчиков ПО и производителей железа, но есть объяснения попроще. Также я сомневаюсь, что низкое качество ПО объясняется привычками писать плохо, скорее требование выдавать новые версии как из пулемета и просто низкая квалификация не позволяют писать хорошо. Да, модель бизнеса виновата, но она не рухнет, потому что объективных причин для обновления ПО и железа широким массам уже давно не требуется, а неширокие не в вносят существенных искажений в модель. )
PsyHaSTe
Нет такой модели.
Я вот пишу программу. Я знаю, что у меня есть некоторые ограничения по производительности. В рамках этих ограничений я стараюсь сделать максимально грамотную и расширяемую архитекутуру, решающую задачу в требуемые сроки. Я не закладываю коварно мины
if (not(isLatestProcessor) || isAmd) { throttle() }
, не пытаюсь внедрить бекдоры для проприетарного софта, никакой менеджер не стоит над ухом и не совращает. Я просто. Пишу. По. Которое решает задачу, которую хочент клиент. За те деньги, что он предлагает. Не больше, не меньше.Клиент, который покупает, чтобы выбрасить — такое бывает, если это какой-нибудь госзаказчик, которому важно получить бумажку о сдаче для получения финансирования. Но я с такими не работаю.
И все мои знакомые работают по +- такой же схеме.
Вопрос — кто же тогда эти злодеи, которое делают говяное ПО для новых процев?
l7l
Я не силен в фронт-енд вебе(писал что-то для бэкэнд, но в основном софт не связанный с вебом). Понимаю что сайты подгружают нужные для работы библиотеки, типа нод жс, а почему бы эти библиотеки не устанавливать с браузером изначально? Допустим, при установке браузера загружается набор самых используемых библиотек с самыми используемыми версиями, а потом вместо повторной загрузки библиотек каждым сайтом, браузер уже дает готовое из своей памяти. Или такое уже реализовано и я не один такой «умный»?
HSerg
Если на сайтах используются одни и те же js-библиотеки лежащие в CDN, то браузеры будут отдавать их уже из кэша. Но js-библиотек ОЧЕНЬ много, да и разработчики сайтов предпочитают не зависеть от внешних ресурсов.
swelf
Размер библиотек вобще не сильно то на что-то влияет, из кэша она, из интернета или еще откуда. А вот интерпретатор/компилятор js, вэб движок в браузере, который все отрисовывает и потребляет в 10ки и сотни больше памяти, чем размер сайта, вот в чем мне кажется проблема.
VolCh
Голые они не так уж много потребляют и по сути одинаковое количество для любого сайта. Но одни страницы почти не потребляют дополнительных ресурсов, а другие жрут память и процессор как бешеные из-за содержимого этих страниц, из-за кода написанного так, что он заведомо будет потреблять много ресурсов.
VolCh
1) В браузерах есть библиотеки типа DOM и WebAPI, причём написанные на языках типа C++ и Rust. И оптимизации их много внимания уделяется из-за конкуренции браузеров
2) Подгрузка других библиотек, написанных на JS обычно кэшируется, нередко через CDN, то есть абсолютно несвязанные сайты используют общий кэш для них
3) Основное ресурсы для работы веб-приложений идут на парсинг, показ и исполнение кода собственно приложения, на то что пишут веб разработчики, а не на то что пишут разработчики браузеров.
Intenditore
Боги! Вся боль от многолетнего нахождения в безумном мире современного it в одном посте.
Подписываюсь!
Intenditore
Тут бы ещё было хорошо упомянуть тему моего недавнего недоумения — USB Type-C, особенно в купе с Thunderbolt. У мира была возможность наконец избавиться от всего разнообразия разъёмов и стандартов, каждого в чём-то неудобного и ограниченного, в пользу одного ультимативного решения. И что вышло?
Разъём один, а спецификаций, реализаций, стандартов — море! И все не совпадают со всеми. Провода — вроде бы все одни, но нет — через один зарядка не идёт, через другой не идёт быстрая зарядка, третий не предназначен для Thuderbolt, четвёртый не работает с v2. А usb-c наушники — вот уж подлиное безумие! Все с проблемами. Телефоны работают с ними всяк по своему. И снова уйма несогласованных стандартов.
В мире технологий могла произойти потрясающая революция. А всё стало ещё ужаснее чем прежде.
CodeRush
Потому что унификация должна проводиться железной рукой и контролироваться на каждом этапе до состояния «не будут брать — отключим газ», а такое возможно только там, где цена ошибки очень высока — у ядерщиков, военных и авиаторов. И там не рынок, а олигополия, и разработка унифицированных продуктов занимает там годы и стоит миллионы.
Рынку же нафиг не нужна унификация, наоборот каждому игроку нужны свои, ни с чем не совместимые и запатентованные разъемы, кабели, периферия, и собственные стандарты вообще на все, иначе прибыль от продажи всех сопутствующих товаров падает.
Кроме того, если вам сделать один кабель USB-C, по которому можно будет передавать и Thunderbolt, и USB 3.1, и питание, и аудио цифровое и аналоговое, и черта лысого оцифрованного — такой кабель будет толщиной в палец и стоить 50 долларов за метр, а покупать его никто не будет, потому что десяток кабелей попроще можно купить вдесятеро дешевле.
Производителю нужно, чтобы его продукт продавался, и он это делает так, как умеет. Хотите совместимости со всем вообще — покупайте только такие продукты, голосуйте рублем и ногами. Нет таких — сделайте и постарайтесь продать. Не вышло — значит это не нужно никому, кроме вас, прошу искреннего пардону.
khim
Покупать его таки будут — но не все и не всегда. Ибо если вам не нужна скорость в 40Gbit/sec — то можно обойтись кабелем попроще. А вот если нужна… никуда не денетесь…
CodeRush
Не перегибаю, аналоговое аудио по активным кабелям не работает на том Belkin, я проверял. Работу VirtualLink не проверял пока, но надеюсь, что вывезет без отдельных кабелей.
Опять же, никто не мешает USB IF послезавтра выпустить еще десяток альтернативных режимов для которых понадобятся свои кабеля, и задача сведется к предыдущей.
khim
Пассивный, метровый, кабель — соотвествует спецификации и отлично работает.
Нет, не сводится. «Полный» кабель с 10 проводами — это максимум, что бывает. А что Thunderbolt с ним не работает — так это не вина USB-C.
То, что вот таким вот кабелем монитор к ноуту подключить нельзя вас же не удивляет? И HDMI Forum вы не пытаетсь в этой «проблеме» обвинить?
CodeRush
Мы с вами находимся на одной стороне спора, мне кажется. Я говорил про вот это:
Даже с учетом того, что физически разъем выглядит одинаково, его по причинам вполне прозаическим не делают совместимым со всеми режимами, альтернативными или нет, и кабелей таких, по которым все вообще режимы работали бы — нет, и не надо. О чем я и написал, а ваших вопросов теперь понять не могу, т.к. это не я хочу один кабель на все случаи жизни.
khim
CodeRush
Дык нет же, аналоговое аудио и по метровому кабелю Belkin не едет (у меня он на столе лежит, я проверял), а едет ли VL — пока еще непонятно. Все остальное — да, т.е. кабель почти универсальный и не толщиной с палец, конечно, но все равно набор из 3 кабелей попроще таки дешевле и большинству пользователей хватит такого набора за глаза.
RuK
Когда я сам пишу какое-то приложение, всегда удивляюсь каким быстрым и компактным оно получается на фоне эти монструозных современных программ.
Иногда складывается впечатление, что их искусственно раздувают и замедляют.
(Чему отчасти есть косвенное подтверждение после истории с уменьшением производительности iPhone)
khim
RuK
Ну, не знаю… У меня iPhone 6 Plus, купленный 4 года назад. И он последние месяцы просто жесть как быстро разряжался.
В итоге надоело, потащил его в Apple Store на замену батарейки за $30.
Ребята не стали заморачиваться, выдали такой же но новый, при чём выпущенный всего 5 мес назад, судя по серийнику.
Так он тормозит точно так же, как и его предшественник с мёртвым аккумом.
Вот теперь жду конца октября чтоб поменять на XR или что там нового вышло. ))
khim
RuK
Физику да, но юзеров обмануть пытаются. ))
(Зеленые, те ещё чудаки на букву «м»… Ничем кроме шантажа крупных корпораций ради собственной наживы, по сути, не занимаются)
khim
RuK
Про рядовых я даже не говорю — в любом движении/партии/религии это просто попки/статисты/фанатики.
celebrate
> Linux намеренно убивает случайные процессы. И всё же это самая популярная серверная ОС.
Не совсем случайные. Ну и предложите, как сделать, чтобы не убивал.
> Вся архитектура баз данных веб/SQL построена на предпосылке (даже надежде), что никто не изменит данные, пока вы смотрите на открытую веб-страницу.
Предложите свой вариант транзакционности в рамках ACID.
> Например, выбирая Hadoop даже если он медленнее, чем выполнение той же задачи на одном десктопном компьютере.
Предложите свой вариант решения задачи, которая ни по одному исходному параметру не помещается в ваш десктопный компьютер.
И так далее. Большинство аргументов просто притянуты за уши и скорее призваны вызвать эмоциональный отклик, а не рациональный.
Вы жалуетесь на мир программ. А вы посмотрите, что в мире творится. Войны, бедность, ложь повсюду, агрессия на каждом шагу, отношения все сложнее сохранять и поддерживать. Приятного мало, да? И тоже самое, мир становится все сложнее и сложнее. Сложные программы кажутся не такой уж значительной частью той сложности, которая нас окружает. Например, лично для меня сложные программы никогда не станут сложнее такого банального вопроса «как вырастить детей». Программы это просто полная фигня по сравнению с этим.
fivehouse
Просто теперь время жизни верстки (и, соответственно, срок переверстки) стало параметром разрабоки. Да, к этому мало кто готов. Так пусть будут готовы!
Ну, а с общесистемной точки зрения мы имеет типичное дерево обхода направлений развития. Такое же как и с деревом эволюции. Какое-то направление развития вообще нормально не рождается, какое-то живет 3 дня, какое-то живет 30 лет, а какое-то будет жить относительно вечно. Если важно время системной деградации, то используйте то, что будет жить вечно (еще 50-100 лет). Чистый HTML 1.0, думаю, будет жить еще лет 400 минимум.
vis_inet
Можно посмотреть этот сайтик?
srhbdv
https://www.lingscars.com
ValdikSS
http://www.realtek.com/
PsyHaSTe
К слову, очень неудобный сайт. Какой-нибудь www.7-zip.org/download.html или www.rust-lang.org/en-US/install.html сильно удобнее.
0xd34df00d
Вот это дизайн, вау!
bogolt
lib.ru отличный пример по-моему
vis_inet
Да, вся страница открывается меньше секунды!
Arris
Только писать на нём будут единицы (процентов от общей массы разработчиков). Примерно как сейчас на ассемблере.
achekalin
«elegant precision gears» — это все же «элегантные прецизионные механизмы».
Anthony_K
слово «элегантные» тут вообще не уместно. В русском языке элегантным может быть пиджак, но не шестерня.
achekalin
Согласен, диковато по-русски звучит, но элегантным может быть инженерное решение — так что я списал бы это. Я-то писал про то, что «precision gears» — это никак не «точные шестерни». От такого «вольного» неинженерного перевода в посте, где человек переживат по поводу вполне себе инженерной отрасли (ИТ), у меня чуть кровь из глаз не выступила. Впрочем, это я зря — заметил, что это перевод, а не самостоятельный оригинальный пост. К другим словам в тексте придираться нет желания, просто переводчик немного поторопился.
Upd: Не удержусь: пробел забыли, пробел:
Пробел перед
-rf
же!!!Fracta1L
Наверное, подошло бы «изящные». Да и «прецизионные» мне кажется корявым переводом — точнее, это даже не перевод, а тупо калька. Перевод это что-то вроде «изящные, идеально подогнанные шестерни».
novice2001
«Прецезионный» — вполне себе общепринятый инженерный термин, как минимум в электронике.
VolCh
Скорее из механики, а потом пришло в электронику.
m0Ray
Та ж фигня. В институте учили — ни одного лишнего действия программа делать не должна. И это подтверждалось на практике: хреново написанная программа тормозила.
Нынче хреново написанная программа просто не выделяется на фоне остальных.
krab90
Автор оригинальной статьи явно говорит и пишет на русском, но это перевод его статьи с английского на русский. File.zip.rar.zip.
saintbyte
Я попробывал современные страницы на ОС 2005 года с мозиллой 1.5 — открывается но очень криво… за 12 лет только протокол HTTP остался почти неизменным.
yarric
А если теперь подсчитать затраты времени миллиона пользователей, которые будут пользоваться этой программой каждый день?
ainoneko
«Проблемы индейцев...»?
Antervis
индустрию двигает бизнес. Которому надо не «хорошо», а дешево и вчера, и для которого вычисления на стороне пользователя ничего не стоят. Впрочем, я бы не был столь пессимистичен. Работа постоянно ведется во всех направлениях, в т.ч. и для оптимизаций. В конце концов, закон Мура потихоньку сдает, а алгоритмы усложняются всё быстрее.
А на время компиляции жаловаться грех — в конце концов, именно на компилятор перекладываются микроптимизации софта. Те, самые, которые заметны в общем, а не в частном.
oleg_go
Помню лет двадцать пять назад похожие личности выступали за идею всё писать на Ассемблере, не признавая никаких высокоуровных языков. Программа для посадки на Луну как раз на нем и была написана. И 25 лет назад даже Винды как отдельной ОС ещё не существовало.
А вот теперь представьте себе насколько можно убыстрить и оптимизировать код какого-нибудь Web, если написать его на Ассемблере. Правда сколько это будет стоить и с какими траблами в процессе разработки придется столкнутся даже сложно представить.
ValdikSS
Ассемблерные вставки для конкретных архитектур пишут для алгоритмов шифрования, хеширования, сортировки, аудиовидеокодеков, различных сверхбыстрых сетевых стеков, компиляторов, 3D-обработки.
IRainman
И то делают это только для тех мест где компилятор сам не осилил сделать правильно. Хорошее продолжение пути это переносить этот ассемблер в компилятор, но это сложно.
mapron
В случае с видеокодеками даже не ждут, сможет ли компилятор что-то сделать правильно. Сразу пишут на асме. libx264, libaom, libvpx и прочие ffmpeg
0xd34df00d
Уже перенесли, называется интринсиками (да, вы теряете возможность аллоцировать регистры самостоятельно, но ИМХО это лучше оставить компилятору).
IRainman
Интринсики — это и есть асм, только завёрнут в синтаксис языка высокого уровня. Вместо ассемблер-специфичных конструкций код оформляется как вызов inline-функций. Синтаксический сахар, не более. Т. е. это не решает проблему с переносимостью кода вообще.
novice2001
Как раз таки Windows 25 лет назад уже существовала (NT 3.1 — полноценная 32-разрядная ОС)
CodeRush
Согласен с автором, но причин разочаровываться не вижу. Человечество развивает ИТ таким же образом, как и все остальное, в полном соответствии со своей природой. Программы пишутся так же, как строятся города: кем попало, без плана и на руинах от предыдущих попыток. Сложность современных вычислительных систем уже вплотную подбирается (если уже не превысила) порог их понимания человеческим мозгом, и потому единственный путь вперед — повторять за эволюцией, нагромождая слои на слои, и сравнивая результаты.
Автору посоветую пойти и попробовать разобраться досконально хотя бы с современными архитектурами, т.е. как оно там все работает «на самом деле», начиная прямо с собирания сумматора из подручных материалов (как у Петцольда в известной книге), написания процессора простейшего на верилоге и так вверх до ЖаваСкрипта со всеми остановками. Где-то на реализации первых сложных команд в микрокоде придет понимание того, что писать все так, чтобы летало, при этом было доступно вчерашним школьникам, масштабировалось, обновлялось, свистело и пердело — просто настолько умопомрачительно дорого по всем параметрам, что позволить себе это могут либо огромные корпорации, либо гениальные энтузиасты (вроде Беллара). Все остальные берут то, что уже есть, и добавляют к нему то, чего еще нет, но хотелось бы иметь, либо комбинируют то, что уже есть, нужным им способом. Да, медленно, да 10 слоев, да эмуляция виртуализации эмуляции, да, никто понять не может толком уже давно, но результат — вот он, решения в массы, деньги в кассы.
koldoon
Если небезызвестный парадокс, который формулируется как «Сделать простое — сложно». А бизнесу (как правильно было замечено) — все равно, лишь бы готово было «вчера»: главное — чтобы прибыль приносило.
InGhost
Вспоминается история из собственного опыта. Года три назад обратился ко мне администратор квест-рума с вопросом:
— Нужно написать программу. Игроки по ходу квеста находят флешку, вставляют в комп. Запускается эта программа, в которой вводятся условные данные, и в зависимости от них генерируется ответ, один из которых правильный.
Казалось бы, проще некуда. Но со слов клиента, он обошел нескольких кодеров в моем городе, и те начали ему говорить что-то про «обязательный виндоуз и какой-то дотнет, пару недель на разработку, как минимум столько же на тестирование, бюджет соответствующий».
Этим же вечером был загружен FreeDOS, к ней же FreePascal. Несколько строк кода, и программа уже читала данные из текстового файла с вопросами и ответами. Еще несколько строчек погружали игрока в интерфейс а-ля «матрица» и давали почувствовать себя кулхацкером. Всё это прописалось в autoexec.bat и завернулось на usb-носитель. Клиент доволен, нет необходимости ни в Windows, ни даже в HDD для небольшого компа, собранного где-то на свалке. Жаль, флопа не нашлось :)
А потом я задумался над тем, почему так произошло, но ответ для себя так и не нашел: либо «программисты» попросту забывают о тех элементарных вещах, которые преподавались на первых занятиях по программированию, либо сейчас этому вовсе не учат. И правда, зачем учить элементарным вещам, если достаточно курса «Full Stack Python за месяц», и можно уже искать первые заказы? А потом же этот программер (который не знает основ) пойдет учить новое поколение…
khim
Ну это, всё-таки, не совсем основы, так, история. На машине с UEFI без модуля CSM вы никакой DOS не загрузите…
InGhost
На эту тему вспомнилось:
Rohan66
Работаю в колледже. Больше всего проблем (ничего не работает, не могу ввести пароль и прочего) приходит от преподавателей по программированию!))))
kreatr
вот так чуть более жизненно:
NIKOSV
Почему бы просто не голосовать рублем? Все те кто «забивают» на оптимизацию вымрут с голода, «олдскульные» разработчики получат больше денег еще больше оптимизаций и софта. Ах да, ведь у вторых зачастую получается глючный, постоянно падающий, неюзабельный с точки зрения функциональности и UX/UI софт, зато быстрый так как 90% времени тратили на оптимизации и издержки из-за выбора низкоуровневого языка и(или) пиление своих велосипедов.
Никто не забивает и не забывает как оптимизировать софт, посмотрите на те же рантаймы джавы и .net, там оптимизация на оптимизации уже позволяющие делать приложения соизмеримыми по производительности с native. Просто с оптимизацией заморачиваются выборочно, там, где она нужна, там где плюсов будет больше чем минусов. Я, к примеру, лучше буду серфить сайт «с ненужными красивыми свистоплясками» который открывается за 1 секунду, чем сайтик с видком как из 90-х но открывающийся за 0.1 секунду.
picul
srhbdv
Покажите, пожалуйста, где вы взяли термин «квалифицированный специалист» в комментарии, на который отвечаете?
picul
А что, запрещено использовать слова, которые не встречаются в предыдущем комменте? Я то думал сейчас как заиспользую свой скудный словарный запас…
Если что, «квалифицированный специалист» употребляется в смысле человека, который хорошо разбирается в экосистеме, в которой работает, и следовательно умеет в оптимизацию.
И проблема не в том, что оптимизация занимает много времени, она на самом деле много времени не занимает. Но вот чего она требует — так это много мозгов и много понимания работы используемого инструментария. Проблема в том, что сейчас модно не голову включать, а выстраивать красивые абстракции на тоннах фреймворков, чем большинство и занимается.
Кстати, хотелось бы пример оптимизированного софта, который невозможно использовать, и взлетевшего не оптимизированного аналога, но это больше к NIKOSV.
khim
Голосовать рублём не получается. У меня, к примеру, есть версия Nero десятилетней давности. Честно купленная, да. Но она меня устраивает и обновлять её мне не нужно. Вот то самое поделие на гиг с лишним мне не нужно. По большому счёту, мне хватает бесплатного IMG Burn. ACDSee 3.0 всё ещё работает великолепно — и не тормозит. То же самое — с офисом и кучей другого софта. И мне очень жаль, что XV очень тяжело запустить на современных дистрибутивах Linux…
Соотвественно люди, которые вроде как бы и хотят нормального софта и делают всё то, что вы говорите… а деньги-то в результате получаются с того кошмара, который производится сейчас! Что побуждает производителей порождать ещё больше… добра.
Интересно — чем вся эта история в конце-концов кончится…
Massacre
У меня в своё время тоже был Nero, но перешёл на Alcohol 120%.
novice2001
А если красивый сайтик будет загружаться 10 секунд (и так по каждой ссылке), а некрасивый за одну?
Да и в целом, красивый сайт вполне можно сделать на html/css безо всяких тормозящих скриптов.
domix32
и прописать в css
@media
с шрифтом на пару метровmapron
И анимаций в css напихать еще.
domix32
Сами анимации довольно дешевы, а вот всякие хитрые селекторы для того чтобы их прикрутить стили могут выливаться в довольно противные проблемы c производительностью.
InterceptorTSK
Точно. Причем шрифт запороть кривой белкой зачем-то. Нет, ну а как иначе? Все же порят шрифты белкой. Причем все 2000 глифов шрифта юзеру отдать) Нет, ну а как? Юзер же должен видеть зимбабвийский, латышский, койсанский и турецкий? Причем даж попытаться выпилить ненужные глифы белкой. Тока белка их выпилит абсолютно криво)) Если открыть такой вот файл шрифта, и поглядеть после белки на такое поделие, в котором килотонны ошибок, то возникает абсолютно адекватное чувство — а чего бы не скинуть термоядерную тактическую боеголовку на сервак белки? Ну а как иначе??
И такое гавно бродит в интернетах массово. Какие-то непонятные шрифты переделанные абсолютно криво какой-то белкой. И эти шрифты естественно криво пристегнуты к страничкам и т.д. и т.п.
Даже термин такой есть — шрифт белочку словил) Ахаха!!! И такое видится в 99% всего веба целиком. Как такое может быть вообще?
Граждане, обычный шрифт даже самый лихой с оставленными русскими-английскими, цыфрами и пунктуацией, с некоторыми таблицами в шрифте типа кернинга и еще кое чего вешает всего 10-15кб на начертание. Начертаний на вашем сайтике не более пяти-семи. Кто говорит что шрифты тормозят — так это он просто в них ничего не понимает.
А БОЛЕЕ ВАМ НИЧЕГО НЕ НУЖНО ОТ ШРИФТА. УЖЕ РАЗБЕРИТЕСЬ В ШРИФТАХ, И ПРИВОДИТЕ СВОИ ШРИФТЫ В БОЖЫЙ ВИД. Или даже на это мозгов не хватает совсем?
ОТКРЫВАЕМ СТАНДАРТЫ ШРИФТОВ, ИХ НЕ МНОГО, И РАЗБИРАЕМСЯ. НА ЭТО УЙДЕТ ПОЛ-ГОДА. ЗАТО ВЫ БУДЕТЕ ЗНАТЬ ЧТО ТАКОЕ ШРИФТ.
Или как? Снова будете ждать манну небесную?) Или наедяться на то что вам сервис прикрутят допиленный? Неа) Кто пилил белку — сказочный дебил))) И других не будет, не надейтесь. Бесплатно — значит в любом случае плохо.
nmrulin
А почему же тогда взлетел майнкрафт с графикой 90-х годов (правда скорость работы у него всё-равно современная)?
Mabusius
Новизна же. Я могу ошибаться, но до майнкрфта и ретрографику никто не использовал и ноубрейн песочниц не было.
Neuromantix
Майнкрафт при этом отлично иллюстрирует все описанное в статье. Пик популярности майнкрафта пришелся на 12-14 годы, к нему было написано множество модов, которые позволили держаться этой популярности так долго. Только вместо написания модAPI разработчики выпускали и выпускали бесконечные обновления, которые настолько сильно переписывали игру, что старые моды переставали поддерживаться сразу, а старые миры — через версию-две. В итоге АПи нет до сих пор, гора популярных модов загнулась — авторы их не обновляют, основные поклонники сидят на древних версиях, и лишь небольшая кучка фанатов радостно сходит с ума при каждом обновлении. При этом при каждом обновлении производительность все падает и падает.
domix32
Это едва ли не первая 3д песочница же.
tonsky
Спасибо за перевод!
DelphiCowboy
Это всё из-за моды на фреймворки!
Не только не видно и не понятно, что «под капотом», так ещё автоматом тащятся множество зависимостей.
Ogra
На мой взгляд, проблема с тормозящим софтом и медленными сайтами была всегда. Абсолютно.
И не связана разработка более быстрого софта с какими-то дикими затратами — можно сделать все то же самое быстрее, меньше и лучше за примерно те же деньги. Проблема в другом.
Просто разработчики очень мало профилируют свой код. Да, они один раз услышали, что «преждевременная оптимизация — корень всех зол, Кнут так сказал», и теперь оптимизируют только тогда, когда все начинает тормозить. На машине разработчика, с i9 и 64Гб оперативки, гигабитным интернетом до сервера в соседней комнате все работает отлично, и нет повода запустить профайлер.
Я сейчас говорю даже не об усилиях по оптимизации, которые сжирают время и деньги, а о куче мелких решений, которые разработчики всех мастей принимают каждый день. Да, можно было бы написать на массивах, вместо SQL, но это же сэкономит 0.1 секунды, какой смысл? Да, можно при сохранении картинки в Фотошопе нажать «Save for web» и пооптимизировать 10 секунд ради 100 Кб, но какой смысл? В итоге тут потеряли чуть-чуть, тут потеряли самую малость, и даже не заметили этого. А вот клиент на своей машине с i3, без SSD и запущенными программами — заметил 3 секунды тормозов.
Иными словами, программы всегда будут немного тормозить.
khim
Итак: 12% — вот где граница «преждевременной оптимизации». И если вы не можете уложиться в 12% замедления — то это заведомо плохой, негодный, неэффективный инструмент. А хороший инструмент — это скорее 2-3%… Много вы знаете инструментов и фреймворков, которые укладываются в этот предел?
Вопрос скорее риторический…
VolCh
Программы будут тормозить ровно до того момента пока метрики времени отклика, реакции и т. п. не станут обязательными в бизнес-требованиях.
srhbdv
Вряд ли вы разработчик, если действительно считаете, что даже если разработчик сидит на машине с i9 и 64Гб оперативки, гигабитным интернетом до сервера в соседней комнате , то разработка происходит именно таким образом, и что разработчики глупые идиоты.
Ogra
Разработчик. i7, 16Gb, гигабит. И ситуации, когда на моем компе все работает, а вот в продакшене начало тормозить, случались. Иногда фиксы делались в одну-две строчки.
perlestius
Вспомнил случай из своей практики. Больше 10 лет назад было. У пользователя не работала маленькая утилита, написанная на Fox Pro. И мой руководитель тогда выдал «отличное» решение: установите на том ПК IDE Фокса — это решит все проблемы!
nmrulin
Помню, у дельфистов было поветрие писать базы на BDE, даже когда её можно было реализовать в виде текстовых файлов. В результате, когда BDE накрылось, повезло только тем, у кого был под рукой кодер, который быстро переделывал всё на ADO. Иначе приходилось пользоваться старыми машинами до упора.
gshamshurin
IT-наиболее быстро развивающаяся отрасль, и такие процессы естественны. Пока ты будешь пилить оптимизированное ядро браузера — конкуренты и индустрия накопипэйстят новых фишек, которые ты не успеешь реализовать и.т.д. В общем, ты не выпустишь его никогда.
В конструировании железа — я имею в виду не PC hardware, а именно железки, тоже есть подобные вещи.
«Это опытная хрень, на один раз и непонятно пойдёт-нет, короче скидай как получится, между основными задачами», говорит тебе босс, и ты (уже ближе к дедлайну) с домашней машины, цепляясь по RDP к рабочей, вяло отмахиваясь от жены и отвлекаясь на поиграть с ребёнком, делаешь неоптимальную конструкцию из большого числа сложных деталей. Потому что на работе некогда — а босс просил, продажники просили, «по-братски». Короче, лишь бы нормально работало и не сильно геморно собиралось, а от тебя наконец все отвалили — делаешь. Через некоторое время узнаёшь — изделие в серии, клиенты довольны. Причём все, от рабочего и продажника до клиента и твоего директора, видят как можно упростить и удешевить, но… всем пофиг. Работает? Не трогаем. Большой заказ пришёл, а изделие долго производится — так деньги ж есть, фигня делов, ещё станок поставим. Оператор за одним станком следил — будет за двумя следить. Мы ему зарплату накинем, процентов на 10. Потому что эффективность. Это быстрее и проще чем сначала ре-инженирить, а потом договора-спецификации пересогласовывать.
Так и живём. Достаточно большая часть любовно и хорошо сделанных продуктов остаётся в виде концептов, зато самый эпичный трэш который стыдно людям показывать — живёт годами.
CodeRush
У PC HW все точно так же, и за некоторые решения хочется натурально убивать голыми руками, но всех все устраивает, продукт выпущен, все довольны, недовольных шлют по вектору. Работает — не трогай, перестанет — будем посмотреть.
Symsym
Костыли (жопа) сначала растёт в голове, а потом уже в коде. Если сначала разобрать конструкцию костылей, то и код проще будет.
razielvamp
я бы еще в топку концепцию ci/cd подкинул.
Может мое понимание не правильное, но это скорее маркетинговая фишка нежели техническая.
Исходя из определения это выглядит как постоянный круг загрузки сорса из репозитория, компиляции, автоматизированного стандартного теста и вброса на продакшн на растерзание конечного пользователя = тестера (эффективно и бесплатно)
В итоге имеем постоянные новые версии винды, андроида, мак осей с циклом в пол года. Зачем? На Windows XP один только сервис пак больше года выходил. А сейчас надо выкачать обновление на 4 гига, чтобы убрать пару дыр в протоколе самба, и добавить коновое контекстное меню с иконками в браузере.
На мой взгляд это прямой результат ci/cd, которая гласит, что мы должны постоянно что-то вываливать, важен цикл а не содержание.
В результате имеем Mac OS у которой вместо подсказки пароля отображается сам пароль, после переключения раскладки на азиатские языки к кириллической (арабской) раскладке можно вернуться только после ребута.
На Windows почти не сижу, поэтому таких эпичных фейлов не припомню подробно, но они точно были.
Зато каждые полгода новая ОС!
Производители смартфонов вообще не успевают за андройдом, иногда текущую последнюю версию андроида можно получить только на новой модели смартфона, который анонсирован через два месяца, а в предыдущей уже забили на обновления, и получается что какой-нить гипотетический LG1 работал на 5й версии, а LG2 уже на 7й, а то и 8й. Спрашивается, зачем вообще была нужна 6ая? Для пары гуглофонов?
В общем, согласен со всем написанным за исключением сравнения размеров. Все-таки в 30ти мегабайтном windows 95 были «скучные обои» и палитра в 256 цветов. И с этим ничего не поделать, в современных мониторах и смартфонах разрешение экрана растет, поэтому и картинки/кнопки надо делать «веселее», ярче и больше. Ну и поддержка оборудования тоже важна, вряд ли Windows 95 поддерживал такое же количество принтеров как современная ОС.
Losted
CI/CD, на мой взгляд, это не обязательно отсутствие тестов (можно ж и ручной этап делать). Это скорее про автоматизацию и повторяемость процессов от сборки до выката. Это про то, что у окружения все одинаковые, а не немного уникальны по-своему (частое последствие работы руками). Про то что артефакт приложения всегда именно тот, что тестировался, а не немного уникальные версии «от Маши» и «от Пети» из-за грязной сборки на дев машине.
vs74
Согласен с автором полностью. Вообще стыдно за ИТ, стыдно.
Arris
Вы думаете, что закон Мура перестал работать? Нет, не перестал. Просто включился закон антимура: «Каждые два года количество багов удваивается»
semmaxim
Что-то меня прям проняло… Пойду изучать rust и писать под него либы.
lmp59
Посмотрите какие компы сейчас у разработчиков, по 2-3 монитора и ОЗУ 16гигов это считается тормозом, а нужно им выдавать что-нибудь из 90-х годов, тогда сразу при отладке-тестировании будет видно как медленно работает программа. И поневоле начнешь писать чтоб хоть не беситься дожидаясь когда программа отработает. А потом пользователи могут запускать и на современных компах.
Simplevolk
Чтобы у них кроме прог еще и IDE+окружение тормозило.
PashaNedved
На студию неоднократно выпускались обновления, при которых начинались тормоза даже на топовом железе. И вообще, vs ide 17 лагает и крашится на железе образца 2012 года
IRainman
Нет не надо. На компах разработчиков тоже тормозное ПО и тормозит оно дико. Вот для тестовых машин таки да крайне необходимо использовать слабые конфигурации просто обязательно!
VolCh
Просто количественные требования к производительности должны быть зафиксированы в ТЗ для их формальной верификации при приёмке
hzs
Тоже очень бесит что современный софт работает дико медленно и при этом жрёт дофига ресурсов.
Сын в 4,5 года попросил меня дать ему железо, чтобы он сам мог сам собрать себе компьютер.
Я люблю старое железо и выделил ребёнку железяки примерно 2000 года, он сам собрал на стенде свой первый комп, я только поставил ему на комп 98 винду.
Конфигурация что-то вроде Celeron 633 мгц, 384 мб оперативки, весь софт того времени просто летает.
Сейчас браузер отжирает несколько гигов оперативки на несколько вкладок, это просто писец, товарищи!
Ради интереса, посмотрел сколько весит мой сайт: Вес самого шаблона 120,5 килобайт, при загрузке в браузере со всеми ресурсами движка: 859 килобайт, что, я считаю, многовато. Время полной загрузки страницы без наличия кеша: 2,665 секунды.
srhbdv
Тоже очень бесит что современный софт работает дико медленно и при этом жрёт дофига ресурсов. И обои очень скучные.
NIKOSV
Ну так прям медленнее. Сегодняшний софт на сегодняшних компах за 1500 баксов работает в разы шустрее чем старый софт тогда на компах за 1000 баксов (1500 баксов сейчас с учетом инфляции). И это при том, что сегодняшний софт в разы красивее и функциональнее. Та же винда тогда более-менее сносно работала на десктопах от среднего и выше, а сейчас 10ка летает даже на бюджетных ноутах за 1000 баксов. Да софт сейчас более высокоуровневый и менее оптимизирован, но who cares если за счет железа производительность в итоге все-равно растет.
Neikist
Мне кажется или это оксюморон? У меня комп стоит лишь чуть дороже и я его мощным довольно считаю. А уж EDC ноут и вовсе за 250$ примерно брался.
Rohan66
А Вы в 10-ке работаете? У меня, например, разный софт установлен и мне важна его производительность, а не «летающая 10-ка»! Я рабочий стол вижу только тогда, когда на «летающую 10-ку» обнова приходит (да будут они прокляты!).
NIKOSV
C софтом та же история, сегодняшний софт на сегодняшнем железе работает быстрее чем старый софт на старом железе, и это при том, что новый софт красивее и функциональнее.
daniilk
Автор подменяет понятие эффективности.
ПО является продуктом коллективного разума, что означает, что каждый конкретный программист находится в определенных условиях, а следовательно на его решения влияет главным образом среда в которой он оказался. А среда стремится сделать все как можно быстрее. Разработкой руководят процессы которые быстрее всего позволяют выпустить продукт на рынок. А процессы которые бы позволяли бы создавать компактный, быстрый код, да еще штатом в тысячи людей пока еще не создали, да и столько хороших программистов нет.
Iwanowsky
Согласен со всеми доводами автора. ООП, фреймворки и визуальное программирование убили искусство программирования. Если раньше программировали на С/С++, Паскале и пр. (порой, с использованием ассемблерных вставок), то сейчас, используя библиотеки готовых объектов (классов), накидав формы и объекты в визуальной среде программирования, легко и быстро написать программу любой сложности. И если раньше программный код даже растягивали по строкам при оплате по количеству строк программы, то сейчас программы могут иметь миллионы и десятки миллионов строк кода: МС Виндовс 7 скомпилирован из примерно 40млн строк кода (Вин3.1 — 2,5млн), МС Офис 2013 — 45млн строк, Линукс 3.10 — 13млн, Андроид — 12млн, Файрфокс — 18млн, Гугл Хром — 7млн, новый Фотошоп — 10млн (Фотошоп 1.0 — всего 128тыс.!); а управляющее ПО самых современных автомобилей может иметь и 100млн кода (т.е. производители просто накидывают готовые программные блоки, и никакой оптимизации кода). Любая универсализация и унификация программирования в виде ООП и фреймворков подразумевает огромную избыточность кода. Большие объемы устаревшего и неиспользуемого кода накапливаются в любых крупных проектах (как проприетарных, так и опенсорсных) с выходом все новых версий, негативно влияя на производительность и отзывчивость программ; и периодически программисты проводят чистку этого кода и АПИ, ускоряя работу программ, что потом ставят в достоинства вышедшей новой версии ПО. Те же Демки со сверхсложными алгоритмами генерации изображений занимают всего 1024, 256, 128 и даже 64 байт (по условиям конкурсных программ).
То же самое с версткой сайтов и веб-программированием. Изначально все сайты выглядели минималистично и просто (наподобие еще более старого Гофер), а сейчас даже минималистичная версия сайта Яндекса (ya.ru) — это почти 50КБ кода; при том что печатная страница простого текста (если ввести без стилевого оформления в Блокноте) — примерно 2КБ).
InterceptorTSK
А нынче и не может быть искусства программирования. Потому что оно уже запорото все на уровне опирацыонок насмерть. Уже побороть почти ничего не получается… Смотрите на пальцах как оно происходит, да и скорее всего вы и сами знаете.
Собрали не так уж и давно либу под себя. Смысл следующий. Надо что бы шрифты рендерились даже на вин2к, но шрифты начертаний семи-болд, ультра-лайт и т.д.
Вин2к вообще такого не знает, ибо gdi тупо вообще не знает таких начертаний в принципе. Ну мы перепилили и шрифты) Подменили в самих шрифтах идентификаторы начертаний и оно поехало. Заодно выпилили лишние глифы, да и вообще шрифты переколупали знатно, ибо багов в них еще больше чем в ПО. А что толку?) Шрифты в винде ставятся в вёнду, и нужны права одмина. Потому что какой-то казиол из майкрософта собрал текстбокс как обертку на древнючем компоненте, которому 20 лет как почти. Смысл в том, что нельзя из своего ПО рендерить в етом текстбоксе своим шрифтом) Проверьте)) Можно, только если шрифт установлен в систему.
Как это решилось? Насильно закинули изначально в gdi замаскированный шрифт, ну семи-болд же gdi не видит и не хочет видеть, затем т.к. шрифт уже в gdi, то создаем уже шрифт из фреймворка, и его нет в шрифтах системы) Его же туда никто не скопировал, т.к. нужны одминские права. А значит вёнда ищет аналог в gdi и подхватывается он. А его мы положили перед этим всем тупым хаком в gdi. Но послушайте, зачем тут создавались 2 раза шрифты? Один раз они закинулись в gdi, а второй раз они создались фреймворком. И их получаются две копии. А как иначе?) И по-другому не выйдет. Что бы хакнуть это дерьмо — болтаются два одинаковых шрифта в памяти.
В итоге все заработало причем как ни странно быстро, впрочем gdi действительно быстр, и семи-болд видится на вин2к в текстбоксах, и вообще на любых системах без видеокарт в принципе, например на серваке. Заодно выправили dpi и прочая-прочая…
Но слушайте, если это называть искусством программирования…
Сделали вывод: да нахрен оно надо? Проще пилить на спрайтах глифы и не париться вообще… Это самый простой вариант, и самый быстроработающий. И не от чего не зависящий вообще. В жопу шрифты, в жопу вёнду, в жопу gdi, и вообще все в жопу.
Возьмите шрифт, отрендерьте его в а-ля своем пайнте в каких вам надо начертаниях, размерах и прочем. Напишите маленькое ПО для этого. Кернинг учтите, это достаточно просто, его можно взять из файла шрифта) Ну и фигачьте спрайтами какие хотите строчьки. Это самый простой и железобетонно работающий вариант. Все остальное полное гавно, с которым придется поиметь неиллюзорный бдсм-секс, или оно работать не будет вообще никак.
Да что тут говорить, кто пишет разбираясь в том что пишет — так же трахается каждый день…
InterceptorTSK
Кстати — искусство основано на чувствах. Искусство — это способ передачи чувств. Не более того. Искусство и программирование — вещи не совместные никак. Ибо программирование полностью лишено чувств напрочь. Расчет и только расчет. Ничего другого быть не может.
micro-CMS
Согласен полностью. Яндекс и Гугл хотят от нас скорости сайта, а их же страницы на мобильнике не открыть.
ledocool
>Тем не менее, каждый второй сайт не может обеспечить плавную прокрутку страницы на 60 FPS на последнем топовом MacBook Pro.
Это из-за javascript апплетов, управляющих прокруткой. Да спасут тебя свидетели noscript. Очень заметно на странице google, кст.
Fastman
— Нет проблем технических. Есть проблемы с людьми. Они такие какие есть.
И получают ровно то чего хотят.
— Прийти покритиковать, обьявит манфест «мы за все хорошее против всей х*йни»
это конечно же решение. Да.
AndrewStr
Я конечно согласен в чём-то с автором, но решил проверить сам, как он сам следует тому, о чем пишет здесь. Пройдя по ссылке в его блоге tonsky.me/projects, я заметил что эта абсолютно статическая страница сразу вытягивает 2 мегабайта! А всё почему? А всё потому-что JPG'и не сжаты правильно для веба. Почему же автор, если он фанат такого перфекционизма, не довел до перфекционизма хотя бы свой собственный блог?
Ответ простой, либо не подумал, либо лень, либо подумал, ну, и так сойдет.
ИМХО, вот эти 3 либо и «и так сойдет» и есть причина того, что мы сейчас наблюдаем.
arvitaly
Я понимаю боль автора, но хочу заметить, что категоричное отнесение создания софта к чистой инженерно-математической науке не имеет никакого смысла. В первую очередь, это прикладной инструмент для общечеловеческой деятельности, в абсолютно каждой ее сфере, в малейших приспособлениях и крупнейших проектах.
Сетовать на то, что инструменты для использования миллиардами, созданные за пару десятилетий формально несовершенны, по-детски максимализировано.
Хотя, я понимаю, почему именно сейчас это становится так заметно, закон Мура не оправдал себя и, если раньше, языки и технологии тупо не успевали за новыми мощностями, нужно было успевать хоть что-то, хоть как-то, то теперь в железе мы, временно, остановились, а избавиться от такого количества legacy и переписать его на новый лад выгодно лишь тем, кто использует мощности по полной, остальным никто (пользователи) за это не заплатит. В общем-то ничего страшного, никаких критичных функций люди на айфоне не делают, чтобы переживать из-за скорости или качества, поэтому и оплачивать рефакторинг не будут. Да и новые платформы не за горами, пора уже о них думать)
VadimRublev
Надо сделать робота-программиста.
Хотя бы (для начала) для десктопного веба.
anonymous
Проблема в том, что программирование в настоящее время больше похоже на хайп.
Все соревнуются, кто больше новомодного и крутого запихает в проект, на выходе имеем как правило простецкое приложение с парой кнопок, но зато под капотом термоядерный реактор из всего хайпового и современного.
И еще:
Куча школьников + куча менеджеров = однокнопочное приложение размером 250мб.
kleeen
Не корректно думать, что затраты на добавление символа в ворде и в лексиконе соизмеримы.
Надо просто сесть и написать с нуля, например проверку орфографии. Чтобы четка отдавать себе отчет, что сколько ресурсов требует. А есть еще всякие сглаживание, форматирование, оглавление и т.п. И все это любит есть ресурсы. А пользователи уже привыкли, что все происходит на лету.
Хотя конкретно с WEB -согласен. Зачастую там наблюдается победа дизайна над здравым смыслом. А было же правило не больше 30 килобайт на страницу =))
Massacre
Проверка орфографии и прочее форматирование не очень подходят, как пример, это всё отлично умели и редакторы под DOS :) Тот же известный в определённых кругах редактор «Слово и Дело».
А в плане JS сейчас влияет не объём кода, а результат его исполнения.
yusman
Как бывший инженер ДВС, категорически не согласен с тем что современные авто достигли предела 98%. На мой взгляд авто самый не эффективный, костыльный и опасный способ перемещения. Каждую секунду на нашей планете в ДТП погибают люди, только подумайте, каждое мгновение и мы считаем это нормой, мы привыкли к этому! Мы сжигаем сотни тонн топлива ежесекундно загрязняя планету. И это только потому что мы в определенный момент история выбрали такое вот странное и нерациональное решение. Да современный автомобиль это инженерное чудо, но построенно поверх большого и толстого и не эффективного костыля, от которого сложно избавиться.
Поверх этого костыля мы строим не удобную инфраструктуру, все для автомобиля, парковки вместо игровых площадок для детей, дороги вместо велодорожек и тротуаров. С кодом ситуация совершенно другая, соврменный код хоть и не эффективен, но людей не убивает. На экологию влияет не сильно, да и жизнь делает лучше). Хотя сравнивать IT и другие инженерные искувства на мой взляд не совсем корректно
IvanTamerlan
Код очень даже убивает. Есть еще ошибки автопилотов (у них сложный и непонятный ИИ с нейросетями), хотя вот этот автопилот отработал на куда более скромных системах без всяких нейросетей и фреймворков.
Даже на хабре есть статья с перечислениями фатальных ошибок.
GrigorGri
Ошибаетесь примерно на два порядка.
Пример — в 2015ом умерло 1.3 млн людей. В году 3600*24*365 секунд. 31 536 000/1300000 = 24 секунды. 24 секунды в среднем чтобы умер 1 человек, когда вы утверждаете что каждую секунду погибают люди (во множественном числе).
Учитывая что машины несут пользу, в том числе и скорая помощь, не выглядит так страшно.
Dee3
Чтобы двигаться вперед и делать новое по-новому, нужно оказываться от старого.
Прежде всего от старых убеждений.
Я подозреваю что очень у небольшого количества инженеров, программистов, а тем более команд разработки или компаний достаточно крепкие яйца для этого.
Посмотрите сколько возни поднимает отказ от физических кнопок или 3.5 джека в смартфоне.
ledocool
Вот лично вас хочу поблагодарить за сбитые об экран пальцы и невозможность слушать музыку при зарядке.
Чтобы отказаться от старого надо чтобы новое было как минимум не хуже, а у нас мозгов нет.
Dee3
Никакого «не хуже» не будет без принудиловки, потому что не зачем делать новые технологии если спрос есть только на старые. Более того это экономически не выгодно — делать и продавать вещи, о которых люди не знают что они им нужны.
Да в общем то все что вы видите вокруг себя базируется на людях, кто не боялся двигать и продвигать новое.
Если представить что через десять лет все аудио будет беспроводным и его стоимость сравнится с аналоговым, то глядя назад в прошлое будет смешно читать жалобы про «ну вот они сделали
компьютер без Floppyтелефон без 3.5 джека.ledocool
Я, наверное, читаю как-то не так, но вы реально считаете, что прогресс пойдет только под принудиловкой? Впрочем, неудивительный вывод если принимать во внимание, что вы считаете деградацию от Apple прогрессом.
А если вы не согласны с такой формулировкой, то вот вам аналогия: Эппл для того, чтобы все влезали в их супермоднявые штаны отрезала всем мужчинам-клиентам половой член. Выбора не оставила. А другие производители начали подражать, но правда большинство все-таки делало обрезание или удялало одно яичко. Теперь клиентам эппл чтобы заняться этим самым нужно купить патентованый агрегат, который делает все то же самое, только хуже — оргазм не достигается.
Прогресс, твою налево.
В случае с флопиками, кстати, совершенно не аналогия — флопики вполне естественно вытеснились сидюками, которые могли тупо больше. Сами пользователи имели возможность сделать выбор. И выбор пал на то, что было объективно лучше, больше, быстрее.
VolCh
Пример нового без принудиловки: электромобили. Не по всем характеристикам они лучше, в чем-то объективно хуже как сами, так и экосистема, но продажи растут без принудиловки, выбор какой мобиль купить есть вроде во всех категориях, а где нет — это электромобилей ещё нет.
Другой вариант FOSS: можно выбирать любую версию для установки, разве что уж совсем древние поискать придётся без гарантии, что найдёшь. А попробуйте легально сейчас установить на совместимый комп windows 98+ office 97 + ie 6. Даже win8 и office 2012 сейчас легально установить непросто.
SirEdvin
> Пример нового без принудиловки: электромобили.
У них вроде есть налоговые дотации.
PsyHaSTe
Потому что сложившиеся цеопчки очевидно будут дешевле, и для конкурентноспособности на первых порах нужно помогать.
khim
Это, может быть, и правильно, но когда вы говорите: либо вы выпускаете XX% электромобилей, либо нарвётесь на штрафы — то это максимально далёкий от «примера нового без принудиловки» вариант.
PsyHaSTe
Квоты это плохо.
khim
Тем не менее именно с их помощью продвигают электромобили и Тесла получает с их помощью дополнительные субсидии — не слишком большие, но заметные.
Так что не надо про этот «пример нового без принудиловки» — принудиловка там огого какая. Хорошо это или плохо — другой вопрос.
Am0ralist
intet
Как видно мы сегодня страдаем от огромного числа уровней абстракций. Значительная часть абстракций появилась из-за того, что компоненты которые хотелось было бы использовать не выполняли свои функции или требовали через мерного погружения в себя отвлекая от непосредственного процесса разработки.
Если бы системные программисты написали бы более полные и простые библиотеки, то можно было бы выкинуть огромные число оберток и пользоваться ими.
Пример с которым я с толкнулся. Надо было добавить на страницу таблицу из картинок выровненных по сетке. Что хотелось бы — компонент на вход принимающий массив ссылок/файлов картинок и занимающийся всем самостоятельно.
В реальности же готового варианта нет. Да отобразить картинки возможно, но при наличие необходимости хоть как-то изменить список без ручных манипуляций с dom/использованием библиотек не обойтись. Добавление функции сортировки drag'n'drop это горы js скриптов.
eirnym
Приложение Facebook для iOS весит более 512 мб, большая часть из которого — фреймворки с названиями вроде "rarely used framework".
Приложение Facebook для Android — 70 мб
Приложение Facebook Lite ~5 мб… ну вы поняли
Iwanowsky
Работающий ФейсБук на Андроиде нещадно жрет батарею. Останавливаешь его в настройках Андроида — и нормальное энергопотребление смартфона восстанавливается.
eirnym
Он такой на всех устройствах, особенно, если в ленте много графики или видео. Их я предпочитаю смотреть на компьютере, потому что иначе проигрыватель убивается, но неизвестно когда…
serbod
Lite недавно испортили. Теперь там мелкий шрифт, обрезаны строки, видео и картинки на весь экран не показывает.
Hashinger
А ведь когда-то смеялись над Nero.
p_fox
Мне вот тоже интересно — почему Винда (7) так долго обновляется?
Накопилось обновлений на пару сотен метров, винда перезагрузилась и ПОЛЧАСА писала мне про обновление системы.
ЧТО она делала полчаса? Или это было 200 метров кода, который Винда компилировала прямо у меня?
eirnym
wsusoffline делает ту же самую работу через тот же интерфейс установки обновлений, но намного быстрее!
DMGarikk
у винды огромная обратная совместимость, и она буквально на каждый апдейт сканирует систему в поисках программ с ним несовместимых и запускает кучу всяких миграций на миллиард вариаций конфигурирования системы
p.s. не верю конечно что это нельзя было бы сделать быстрее
ledocool
Бэкапила ваш hdd на свервера мелкософта.
user343
Тогда бы логи роутера это показали. Скорее всего тучу отладочных логов пишет паралельно ("индусский код"), а HDD не столь многопоточный.
ledocool
Это шутка, не парься. Думаю, даже Гейтс не знает что его винда делает во время обновлений и ПОЧЕМУ ТАК ДОЛГО!!!!!??? Скорее всего такая хрень происходит из-за того, что процесс непрозрачный и никто не видит явных проблем в его реализации. В лине ж как-то debian дистрибутивы умудряются делать full-upgrade за меньшее время и с меньшим числом боли.
ValdikSS
С RPM-based все лучше, есть транзакции и откаты, но и аналог dist-upgrade может происходить полчаса-час, и при обычных обновлениях программы так же вылетают.
Все проверки, которые делает Windows, оправданны.
ledocool
А в винде принципиально такого быть не может, т.к. каждое приложение тянет свои библиотеки, поэтому опять же не понятно на кой все эти проверки на over9000 часов.
А касательно debian-based дистрибов — у меня деба не падала. Даже у убунты ничего не ломалось до тех пор, пока я случайно доступ к /tmp не запретил. (Игрался с chmod и опечатался.)
IRainman
Нет. Посмотрите как ставятся браузеры, например, на Linux дистрибы, там тоже в довеске много чего лежит потому что так меньше вероятность глюков. Кроме того тут речь идёт в основном про компоненты ОС.
ledocool
А как это опровергает то, что я сказал про венду?
IRainman
Поддержу ValdikSS ибо меня боль с ручным разгребанием в Ubuntu server так достала, что я обновляюсь там просто образом, т. е. тестирую апдейт и апгрейт на резерве, а потом если всё прошло хорошо просто выкатываю образ поверх рабочего ничего не трогая. С Windows вообще никакого секса, если апдейт не встал, то происходит автоматический откат и всё загружается в работающую систему где ничего не сломалось.
ledocool
Спорить не буду — нет опыта. Но вот вопрос из интереса: а не помогает сделать апдейтовые скрипты?
IRainman
Какие именно апдейтовые скрипты имеются ввиду? В этом плане оно и так автоматизировано более или менее.
Создаётся образ того что работает.
Пробуется обновить всё включая ядро с полной зачисткой после.
Если сфейлилось, то результат удаляется и пробуется обновиться только пакетам без ядер с полной зачисткой на исходный образ.
Если сфейлилось, то всё. Если получено более менее живое, оно загрузилось и нудное запустилось, то производится тест в живую, если работает как надо и в конфигах нигде не наступила жопа, то образ целиком выкатывается вместо того что работало и система ребутится. Если что то пошло не так, то ещё месяц ничего не трогается.
Альтернатив я не знаю, возможно тоже нет опыта в этой области, вероятно с rpm будет лучше но в Ubuntu Server у меня без геморроя получается только так. Чинить и разбираться в глюках вообще не вариант ибо абсолютно бесполезное красноглазие там где должно просто работать. Я бы с радостью на всё это нанял админа, но средств на это нет.
ledocool
Есть еще одна мысль, что можно попробовать. Ubuntu это нестабильная деба. От слова совсем нетабильная. У дебы от убунты до stable проходит три релиза. Если запаздывание по софту не парит, можно попробовать поставить именно debian stable.
Massacre
Скорее всего, применяла каждое по отдельности, создавая точки отката и наполняя базу winsxs. Вообще, раньше в таких случаях сервис-паки выпускали…
IRainman
Очистку диска от админа попробуйте ;) Долго она могла разгребать кладбище ранее использовавшихся версий и пакетов. Ещё возможно что какая то проблема с базой, если файл
"%SYSTEMROOT%\Logs\CBS\CBS.log"
или логи в архивах рядом ОЧЕНЬ большие, то явно второе.P.S. У меня 7 установлена на часть машин ещё в июле 2009 (как только на msdn образы появились) и до сих пор работает, SP1 на неё тоже встал просто апдетом. С апдейтами совсем диких проблем нет.
svcoder
Не вижу никаких проблем, т.к. многих ограничений старых компьютеров (вычислительная мощность, объем оперативной памяти, скорость и объем дисковой памяти) на данный момент не существует, что открывают дорогу более универсальным и понятным методологиям разработки. На мой взляд автор застрял в 90-х
serbod
Просто очень обидно, что в играх за секунду отрисовываются десятки полноэкранных картинок целого мира с сотнями тысяч элементов, а в текстовом редакторе за это время только предпросмотр печати одной черно-белой страницы отрисовался.
WizardryIB
Автор прав в одном и это — отсутствие жестких стандартов! Разработка ПО, да и ИТ в целом проходит лишь первый этап эволюции, когда технологии изготовления продукта или изучены слабо или совсем не изучены… И на данном этапе, когда спрос выше предложения, балом в ИТ правит маркетинг. Но не за горами и следующий этап, ведь эволюция циклична по своей природе…
svcoder
сложность игрового движка значительно ниже сложности Word 2016, если считать количество возможных сценариев работы. с игровым движком не требуется интеграция из других систем, он не может содержать компоненты других систем, у него нет тысяч вариантов отображения текстов и макетов страницы. там сплошная математика, часть из которой делается силами GPU.
KaneUA
Посмотрите на досуге на Unity.
ledocool
А вас не смущает, что простой по своей концепции макрософт врод оказывается сложнее игрового движка?
А вас не смущает, что его аналог (open office write, кажется, называется) вроде умеет все то же, но чет не тормозит?
А вас не смущает, что свистоперделок в этом новом «вроде» больше чем функций?
VolCh
Вот далеко не всё то же. По мелочам вроде, типа отсутствия возможности печати сначала нечетных а потом чётных страниц, или достаточно адекватная проверка грамотности, но из таких мелочей и накапливаются предпочтения.
ledocool
Может я какой-то кривой, но чет что то фигня, что это фигня. Если слова по словарю проверяет более-менее, то вот речевые ошибки тот же ворд настойчиво предлагает сделать. Так правильнее по его мнению.
А вообще из всех методов набора текста мне больше всех понравился tex. Но если надо быстро и плевать на того, кто читает твои опусы, то по мне так либра будет получше — уж извините, но курсор в новом офисе плавает по экрану как палка в дерьме. Из-за этого теряется «тактильная отдача» при наборе текста и из-за этого при быстром наборе очень тяжело.
nmrulin
Нельзя требовать производительность. Иначе бы вместо 100500 новый языков народ бы программировал только на Дельфи/C++ c ассемблерными вставками в узких местах. Тогда можно было бы обучить больше кодеров, чтобы они более-менее производительно кодили. И постоянно бы переписывали старый код, двигаясь к большей производительности. Но штаты всё равно бы были вдвое больше против теперешний. Вывод — программистов было бы больше. Но получали бы они вдвое меньше, чем сейчас. Кроме того труднее было бы делать отбор. Сейчас делать отбор просто — подними хайп с каким-нибудь Haskell, и посмотри, кто его выучит. Кто выучит — они обладают лучшими способностями к обучению. Потом, когда на этом языке будут криво/косо кодить все, надо поменять язык для новой программы. И можно опять проводить отбор. Правда производительно кодить никто не будет ни на одном языке. Ну да ладно.
Также людям бы пришлось учиться писать более менее читаемый и интуитивно-понятный код. Иначе бы по 20 лет не никто бы не захотел работать с одним и тем же C++ кодом.
DrPass
Ой, ну вот только не надо так. Как раз современные инструменты и рассчитаны на то, чтобы можно было любого посадить писать код, потому что надо больше кода, потому что все хотят новый софт. И как раз одна из причин ухудшения производительности и качества софта в том, что порог входа в профессию значительно упал.
nmrulin
Я что-то не уверен, что можно на Haskell посадить любого.
И что есть хоть один современный язык проще Турбо Паскаля 30-ти летней давности.
Разве что не менее древний Оберон.
Модулей, да в современный языках больше. Нажал кнопочку и типа работает. Но при этом 99% функций из библиотек не используется. А написать что-то своё под узкую задачу никто не умеет.
Вот порог «написать что-то своё» не упал а наоборот, катастрофически возрос.
DrPass
:) Ну так и в прошлом все тоже не Лиспе и Прологе начинали программировать. 99% армии программистов Хаскель никогда в глаза не видела, и не увидит, и даже не заинтересуется.
Порог входа у C#, Java, JS невелик. Ну т.е. для хеллоуворлда вам не нужно знать много абстракций. Зато чтобы писать профессиональные приложения, Турбо Паскаль от вас потребует и ручное управление памятью, и работу с компоновщиком, и директивы компилятора и т.д. Хотите сделать интерфейс приложения — точно так же, создавайте ручками контролы (это если вы дожили до того времени, как у вас в ТР появилась библиотека Turbo Vision, если нет — то сперва ещё напишите их), следите за их временем жизни и т.д.
Вот то-то и оно. В авгиевых конюшнях npm, например, есть тысячи модулей на несколько строк, которые быстрее было бы самому написать, чем нагуглить. Но они тянутся зависимостями в тысячи проектов, множатся и плодятся.
BD9
Оберон испытал влияние Паскаля, т.ч. Оберон менее древний, чем Паскаль.
0xd34df00d
То самое чувство, когда ты рад, что на хаскеле никто не пишет, потому что ни одна из проблем, описанных в посте, гарантированно с ним не связана.
Acuna
А можно вкратце почему? Очень оптимально написанные библиотеки, и/или все что нужно из коробки?
Druu
На хаскеле не пишут слаки или браузеры или хабры, по-этому они на хаскеле и не тормозят. Ведь не может тормозить то, чего нет.
Но на самом деле все, что обсуждается в статье, вполне для хаскеля применимо, просто в иной полярности. Классическая либа для решения чего-нибудь на хаскеле это переусложненное ради лулзов автора говно. Потому что на хаскеле не пишут для того, чтобы решать задачи (большей частью, кто-то где-то, конечно, пишет, но это капля в море все), а пишут по приколу, хачкель жи.
VolCh
Ну вот в PHP и JS порог не вырос по сути. И это даже расстраивает, что каждый может легко написать, а каждый второй пишет что-то своё, вместо того чтобы использовать одну из готовых популярных поддерживаемых реализаций.
Svbakulin
Немного напоминает сюжет Foundation Азимова. Остаются быстро приобретаемые эмпирические знаения, и мало кто владеет знаниями концептуальными и почти никто не пытается понять почему все делается так а не эдак «потому что всегда так было».
Проблема что машина может и жрет 100л\км, мно эти сто литров почти ничего не стоят и особо ничего плохого не делают на первый взгляд.
Aingis
Есть достаточно людей с фундаментальными знаниями. Более того, они вполне вырастают из обычных программистов. Да, их не так много, это скорее правая часть «колокола» Гаусса, и стоят они поболее, и конкуренция есть, но вопрос всё же в спросе на таких людей.
Перед обычным рядовым бизнесом не стоит задача «выпустить вылизанное приложение чтобы у всех летало». Обычно стоит другая задача: «выпустить минимально работающее приложение быстрее конкурентов». А затем: «как можно быстрее удовлетворять запросы потребителей на функциональность». Это довольно противоречащие требования, так как «быстро» и «хорошо» при ограниченных ресурсах находятся на разных концах шкалы.
А если не успеть, то от бизнеса ничего не останется. Так как приложение хоть и является важным, но важнее пользовательская база и социальные связи в том числе для удовлетворения финансовых нужд (инвестирования). Конкуренция сейчас большая, кто не успел на поезд, тот прогорел. Сколько вон писали клонов Фейсбука? Выжили лишь аномалии, и то — в достаточной степени изолированные (в Китае вообще отгороженные от мира).
Svbakulin
Все так. Потому и остаются в основном эмпирические знания. Я не разработчик, но в своей области и вижу очень мало людей которые идут хотябы на 50%. Обычно все поверхностно, без достаточного понимания процесса либо вообще без понимания. Дали вход, получили более или менее ожидаемый выход — этого достаточно. И не важно как все работает, правильно ли это, оптимально ли. Черный ящик — работает и бог с ним.
Я к тому что я во много разделяю разочарование автора. В софте похоуже — кадый второй думает что может сделать свой собственнй форк с BJ&H, поулчается масса негодного недопродукта на который посмотреть без жалости нельзя.
Это если с пессимизмом смотнеть. Можно смотреть по другому :)
fukkit
Нужно нанять в два раза больше в два раза более дорогих специалистов (которые теперь «DevOps») и платить в два раза больше «as you go» облачным провайдерам, чтобы содержать весь этот зоопарк контейнеризованных микросервисов и автобилдов на каждый чих.
Такие практики, как «Пол года работаем над новой минорной версией, тестируем, вылизываем все известные баги, выкатываем, собираем фидбэк, выпускаем фиксы, поддерживаем пользователей конкретной версии и, возможно, нескольких предыдущих, не говоря уже о мажорных» уходят безвозвратно.
Теперь можешь курить прямо здесь! (с)
Сэкономим на тестировании и поддержке! Мы же суровые программисты, зачем на мелочи терять
времяденьги!?Вася наколбасил, Петя прочитал-поправил, Саня захреначил в мастер — и понеслось оно по трубам «continuous integration», через тестики да, если повезет, препроды, непосредственно к пользакам на устройства. Все закрыли таски, почувствовали удовлетворение от хорошо сделанной работы и погнали в барбершопы.
Dagron
Неудаляемые приложения действительно бесят!
Однако у нас это похоже может измениться
Производителей гаджетов заставят отказаться от неудаляемых приложений
webaib1
Какая наивность, считать, что девы проектируют и пишут софт. Мы сидим на митингах, ходим на тимбилдинги, массажы, очереди к смузи/кофе аппаратам занимают оставшееся время. По пятницам у нас пицца/дартс/футбол и пиво с вином, т.ч. уже с утра всякая работа исключена.
Нам некогда
этой херней страдатьдумать и проектировать.И главное — нашим ХРам тоже некогда думать и нанимать толковых — они тусят всегда с нами, очередь за завтраками и обедами сама себя не займет.
Это я еще забыл пару недель черной пятницы и 2 месяца рождества с ноу деплой стратегией, что бы ничего не сломали ))) девы криворукие.
poznawatel
Нехотя вынужден согласиться с автором статьи — действительно, ситуация — дрянь, функционирование неэффективных программ жрет количество ресурсов, которое растёт быстрее закона Мура.
Предлагаю натравить на тупой софт «зелёных», как единственную реальную силу, которая относится к транжирству ресурсов отрицательно (остальные части элит такое поведение поощряют).
ZAMnoTEX
Немножко не в тему: в детстве мне врезались в память картинки из школьного учебника информатики. Картинки с большим смыслом. Напомню, это учебник от 1991 года!
domix32
А что за намеренное убийство случайных процессов в Linux?
mayorovp
Гуглите OOM killer
PsyHaSTe
OOMKiller, полагаю.
YourChief
Сомнительный аргумент, приведённый автором. В линуксе процессы убиваются не без причины и не случайно.
ganqqwerty
Радует, что инженеры начали вслух говорить об этом регрессе. Теперь осталось понять, можно ли извлечь денег от того, чтобы данный регресс превратить в прогресс.
VolCh
Это только мнение, что данные процессы регресс. С других точек зрения это можно считать лишь платой за прогресс.
Druu
Непонятно вообще, почему это должно быть плохо.
Мощности компьютеров возросли, стало больше памяти. Какая есть причина не использовать эти ресурсы?
julia4545
Переходим на Линукс, статичные html странички и консоль.
ua30
Хуяк-хуяк и в продакшн. Есть такая тема. Самое интересное, нормально кодить не намного дороже получается.
Я уже лет 15 отошел от прикладного программирования. Программирую движки сайтов. Знаете, иногда в футере пишется время генерации странички, количество запросов к БД, объем потребляемой памяти… Бывает такую информацию можно найти в HTML-комментариях. Больно видеть как какой-нибудь несчастный форум, или даже блог генерируются десятые доли секунды, а порой и выше. И дело тут не в сервере. И по полсотни запросов к БД, а то и больше. И вы еще не видели сами эти запросы. А памяти жрет по два-три и даже пять десятков мегабайт для своего выполнения…
Последнее время занимаюсь разработкой движка для достаточно крупного интернет-магазина. Самые сложные страницы генерируются за 0,02 сек (генерация, не кеш). В среднем используется 12-16 запросов к БД. Учитывая время генерации всей странички, можно понять что запросы все хорошие. На 64 битной системе в среднем движок хавает 2Мб памяти на генерацию странички… По производительности разница в 10 — 100 раз. А я всего лишь не использую сторонние библиотеки и придерживаюсь функционального подхода к программированию. Я как то думал даже на Си писать движки сайтов. Но потом остановился: ну я же не полный задрот в конце то концов!
Что в итоге? Да, разработка не такая быстрая. Но я один справляюсь. Работает все на простом сервере. Я думаю на том же сервере при такой посещаемости (до 10к хостов всутки) работал бы и обычный движок. Просто медленней. Но по-другому я просто не могу. 10к в сутки это примерно 36,5 миллионов человек в ближайшие 10 лет. А если бы я разрабатывал CMS не для одного сайта, а универсальную, которую установят на десятки и тысячи сайтов? Почему все эти люди должны страдать из-за одного или нескольких разработчиков?
И дело не заканчивается CMS. HTML код чистится и сжимается PHP функцией в десять строк. Хоть на сервере и включен GZIP, но почему нет? Может хоть браузеру будет чуть легче. JavaScript только там, где он реально нужен. Сама верстка — только руками в
текстовом редакторе(вру, в PhpStorm). CSS, JS минимизирован. Все загружаемые изображения автоматически оптимизируются и сжимаются. Картинки для дизайна сайта идут в двух спрайтах, а не в двух сотнях файлов. Как то так…Так что с этой ситуацией как обычно. Проблема есть. Что с ней делать? Не знаю. Наверное, единственное, что тут можно сделать — начать с себя.
michael_vostrikov
Во-во. Потому и справляетесь.
janvarev
О, очень знакомо. Тоже начинал разработку с движка для сайта в далеком 2004 — тогда многое приходилось делать ручками и оптимизировать.
В результате движок живет и здравствует во вполне актуальных проектах. А оптимизация осталась… просто не подключалось ничего лишнего. До сих пор не используется PHP autoload (все библиотеки — ручками, благо их немного), доступ к БД давно вылизан в собственной структурной библиотеке в 70 Кб (вместо какого-нибудь Doctrine на 2Мб). Для нужд хватает.
Результат — стабильная генерация страниц в пределах 0.1 с, обычно — в пределах 0.05 (не кеш). Исключение — навороченная статистическая админка (до 3-4 с)… ну лениво её вылизывать, когда ей пользуются два человека и не так часто.
sumanai
Только я не вижу ссылок на гитхаб, где можно легко скачать эти оптимизированные библиотеки. А Doctrine, Symphony и прочее — пожалуйста, качай не хочу.
janvarev
Библиотеки вылизаны для локального использования. Неоднократно задумывался над тем, чтобы их выложить… но понял, что это не имеет для меня особого смысла.
Положительных отзывов я вряд ли получу, а комментариев в духе «велосипедостроитель» и «а где возможность сделать left join с алиасами» будет полно. Всем рулит обучение и маркетинг, на который у меня нет времени.
Конечно, понятно, что если только начинать, то фреймворки лучше всего — там и практики использования, и компоненты, и лучшая документация; просто рассказываю, так сказать, историю о том, чего можно достичь, если потихоньку пилить свой двиг в течении 14 лет ))
PS: Если это был не риторический вопрос, а реальное желание ознакомиться, то ссылки есть на моем сайте, который в профиле.
sumanai
К сожалению, ссылок в профиле не вижу.
janvarev
Тут ссылок разве нет? habr.com/users/janvarev
На всякий случай прямую даю: janvarev.ru
sumanai
У меня нету ссылок в вашем профиле. Сейчас поискал в исходном коде страницы, и тоже не нашёл.
Спасибо за ссылку.
janvarev
Понял, спасибо. Интересно, что в вашем профиле тоже ссылок нет — сейчас зашел в режиме инкогнито — ссылок нет нигде. UPD: Понял, что нужно разрешить показ информации другим пользователям в настройках приватности. Ну, разработчики Хабра…
PS: стало интересно, чем вы занимаетесь, погуглил по заголовку в названии про phpBBex. Мое почтение; я-то phpBB, как старожил, помню и понимаю, что такое поддерживать его развитие вплоть до современного интернета.
sumanai
С нуля я мало что написал, да и они сами сейчас переезжают на Symphony и прочее. Но за почтение спасибо.
gearbox
Нифига тут наобсуждали. Осмелюсь подвести черту (хотя нет конечно).
Управление сложностью. Человечество столкнулось с этой проблемой в таких масштабах впервые. Это не только программирование, это и космос и фармацевтика и ядреная физика думаю много еще других областей. Собственно поэтому и проблемы — нужны новые инструменты управления сложностью. Дешевые и простые. Конкретно в программировании я думаю это будет формальная верификация и сопутствующая эволюция языков. Чего паниковать то? Утрясется.
marenkov
А как не паниковать, если идет к тому, что для запуска блокнота скоро понадобится 64 терабайта оперативки и 128-ядерный процессор с частотой 2 терагерца? Благо, что хоть потребляемая мощность ограничивается возможностями отведения тепла и вряд ли в ближайшее время выйдет за 1 киловатт (хотя, если посмотреть на историю развитие систем охлаждения — от шести алюминиевых ребер до тепловых трубок с водяным охлаждением, уверенности поубавится).
gearbox
>если идет к тому, что для запуска блокнота скоро понадобится 64 терабайта оперативки и 128-ядерный процессор с частотой 2 терагерца?
Конечно идет, и это хорошо. Решение проблемы начинается с ее признания. Проблему начали признавать, об этом говорят все чаще. Программирование поворачивается в сторону математики, подъем функциональщины, metamаth, coq, haskell/idris, ocaml, да даже frama, вот это все — это котел, в котором сейчас варится возможное решение проблемы. Накапливается опыт, оттачиваются инструменты. Есть чекнутые компиляторы, есть как минимум одна чекнутая ось (точнее ядро). Как только это станет доступно (в плане дешевого использования) бизнес возьмет это на вооружение. Возможно сам закажет развитие если увидит выгоду. Это не решится за один день но это решается, в том числе и вот прямо сейчас.
BD9
Контрактное программирование развивается с 1986 года. Насколько массово оно используется?
gearbox
Не особо. А к чему вопрос?
0xd34df00d
Контрактное программирование имеет к proof-carrying code примерно такое же отношение, как темплейты C++ к GADT.
gonzazoid
контрактное программирование имхо подняло вопрос который потом отработали в first class types / dependent types / refinement types что вполне себе используется в упомянутых gearbox инструментах.
0xd34df00d
При этом проблем много.
Я пару месяцев назад ради интереса доказывал на идрисе, что функция слияния в merge sort выдаёт сортированный список — задолбался, это какой-то ассемблер для математиков. Доказать, что merge выдаёт перестановку объединения входных списков, я уже не смог, ибо наткнулся на баг в тоталити чекере.
На днях я доказывал, что small-step evaluation semantics для простейшего языка с if и булевыми константами тотально. Это тоже, гм, ну, весело.
Как доказывать на идрисе, что small-step evaluation semantics для STLC тотально, я понятия не имею.
Так что, ИМХО, реалистично — от сегодняшних инструментов до решения проблемы как от ассемблера и в лучшем случае алгола-60 до сегодняшних инструментов.
PsyHaSTe
Ну и хорошо, у нас в итоге либо будут оптимизированные приложения, либо 64 терабайта оперативки в каждый комп. Не вижу, чем что-то из этого плохо.
marenkov
Плохо то, что нам, потребителям, приходиться тратиться на все новые устройства, которые смогут справляться с приложениями, которые делают тоже самое, что делали старые приложения на старых устройствах. Т.е. нам приходиться тратить свои жизненные ресурсы на то, чтобы оставаться на месте. По сути это запрограммированное старение. Лишь с некоторых сферах, таких как игры и навигация, новые мощности используется более-менее эффективно.
P.S. А могли бы, например, иметь в смартфоне полную модель погоды на земле с возможностью прогнозирования дождя в определенной точке с точностью до минуты.
san-smith
Не могли бы. И дело не в вычислительных мощностях.
Дело в том, что математическая модель всегда является лишь упрощенным отражением действительности. Поэтому мы никогда не сможем получить бесконечно точный результат — лишь некоторое приближение. Хуже того, в силу неточности нашей модели, прогнозируемый результат будет отличаться от реального тем больше, чем больший отрезок прогнозирования мы выбрали (и не важно, с какой точностью мы считали).
В качестве примера: пусть некоторый процесс в действительности описывается функцией f1(x) = (2^0.5)^x, но так как мы не умеем считать корни, было выбрано приближение f2(x) = 1.4^x.
marenkov
Во-первых, я утрирую.
Во-вторых, я не писал об абсолютной точности, а о допустимой ошибке в одну минуту.
khim
Ибо достаточно какой-нибудь местной котельной сменить сорт угля — и всё, тучка прольётся не там и не тогда, когда предсказано.
Как вы собираетесь это контролировать?
marenkov
Смотрите пункт первый.
khim
Ну если первый… Ибо с дождём сложнее всего даже не предсказать когда он случится, а то, куда он при этом прольётся. Со всеми вытекающими ощущениями для субъективных оценок качества прогноза…
san-smith
Даже с точностью в одну минуту вы не сможете получить прогноз на период больше, чем полчаса (число взято абстрактно). Выше отметили почему — любые изменения условий, неучтенные в нашей модели, достаточно быстро сделают прогноз не актуальным. С математической точки зрения это можно проиллюстрировать графиками из предыдущего комментария.
А сделать модель очень точной и невозможно, и бессмысленно. Невозможно, потому что мы не знаем и не можем описать все факторы влияющие на этот процесс. Бессмысленно, потому что расчёт по такой модели был бы слишком сложным и к моменту окончания расчётов уже бесконечно устарел бы.
w1ld
Да, такое имеет место быть. В Андроиде, под Виндой, в Вебе приложения раздуты, тормозят и пр. Видимо, нужна другая модель монетизации, роста для софта. Какая-нибудь зависимость поощрения разработчика от его вклада в программу. Если его код используеться много раз, то и поощрение больше. Привязать как-то блокчейн, всем сделать аккаунты и списывать с них за использование кода. Добавить возможность поощрения, встроенную. Плату сделать очень маленькой. Аналогия с реальными физическими местами или воздухом. Вход в метро — плата, в кино — плата и пр. Ну и у всех сделать автоматически пополняемый баланс, чтобы реализовалось право на свободу и пр. Чтобы не было бедных, но и чтобы разработчики поощрялись.
marenkov
А ничего, что, по существующим оценкам, блокчейны уже потребляют около 1% вырабатываемой в мире электрической энергии? Я уже молчу о занимаемых объемах памяти.
w1ld
Идея в том, чтобы обладатели ПО (разработчики, тестировщики и др.) поощрялись и мотивировались делать лучше, но и чтобы это происходило эффективнее, чем сейчас, чтобы пользователи платили за это. Иначе получаеться так, что пользователи пользуют, а разработчики вот так проигрывают. В городах же мы платим за дороги, за все обеспечение, за уборку мусора и пр. Почему разработчики должны делать это бесплатно? Они и не хотят и мы имеет такой рынок.
marenkov
Разработчики получает оплату за свою работу. Вот только покупатели хотят новый модный «айфон», а не новое более надежное и быстрое приложение работающее на старом. Да и производители железа обеими руками за то, чтобы новые приложение были тяжелыми и требовали самого нового железа.
Альтернативная экономическая модель — это платные обновления ОС и приложений. Но мне трудно себе представить, чтобы набралось достаточно желающих платить за то, что их приложения будут делать то же самое, но чуть быстрее. А жаль.
DrPass
Покупатели сознательно предпочли бы в основном как раз второй вариант. Это производитель айфонов заинтересован в том, чтобы продать несколько десятков миллионов гаджетов в следующем году, а для этого ему нужно убедить покупателя, что ему это нужно. Для этого там целая армия маркетологов есть. А убедить можно лишь добавив какие-то фичи в новое устройство, которых нет, и не будет в старом.
PsyHaSTe
Ну да. «Покупатель, ты не знаешь, чего хочешь, это Я знаю. Так что держи Х. Что значит ты не хотел? А ну бери, пока дают».
marenkov
Очередь за новым iPhone.
Маркетологи с автоматами прячутся за столбами.
0xd34df00d
Это какой-то социальный конструкт уже. Можно же, блин, сделать предзаказ.
picul
Вот Вы язвите, а зря, ведь пользователь и правда не знает чего хочет. Откуда людям знать, что мобильный клиент для соц-сети/месседжера может работать быстро, если они сидят в Facebook'е/Viber'е? И требования новых фич/редизайна интерфеса/другие поводы убить производительность Вы ведь не напрямую от пользователей получаете, они исходят от руководства, которое думает как раз так, как Вы написали.
VolCh
Выбор нового девайса, который имеет больше возможностей вы считаете не сознательным? А обновление софта ради более функциональной версии тоже?
w1ld
Да, должно быть большое число. Но если сравнить с количеством энергии, которое потребляет неэффективный софт и с временем которые люди теряют на нем, то я думаю что такое сравнение будет далеко в пользу этой идеи "живого софта".
Эта концепция совершенно другой оплаты за софт. Есть например такая сеть как steemit.com, где за чтение можно заплатить. Что-то такое было бы здорово, на мой взгляд, сделать для софта вообще. Если я открыл броузер, то я бы платил за использование всего софта который бы запускался у меня, но очень мало. Как я плачу за дороги в моем городе, но здесь это была бы встроенная функциональность.
Druu
Пользователи и сейчас за это могут платить, но не платят. Пользователям это не нужно. То, что вы хотите — в первую очередь будет неудобно для пользователей. А если это будет неудобно пользователям — то кому это нафиг надо-то?
VolCh
Кого вы имеете в виду под разработчиками, всех лиц или только физлиц? Другими словами подразумевает ли ваша схема запрет найма программистов, запрет на получение ими зарплаты или вознаграждения по другому договору? Все программисты и прочие разработчики, желающие обеспечивать себя разработкой, должны будут писать код бесплатно, надеясь получить приемлемую прибыль от инвестиций своего времени в разработку какой-то то программы, принимая на себя все риски «невыстреливания»? Останется ли в вашем мире профессия программист или будут только бизнесмены, частью предпринимательских способностей которых будет способность писать код?
stanislavskijvlad
KolibriOS в массы
ua30
Через сутки после прочтения статьи комп стал тормозить еще больше. Заметно больше. Даже там, где раньше не было проблем.
Aingis
А как стала тормозить эта страница… Даже на простую прокрутку уходят секунды. И появление символов на экране имеет задержку после нажатия на клавиши. Навскидку вижу на странице несколько обработчиков на нажатие клавиш.
mayorovp
Тормоза хабра на страницах с кучей комментариев не имеют никакого отношения к числу обработчиков — я это проверял. Просто отключал обработчики в девтулзах, но тормоза оставались.
Как я уже писал выше, тормозит сам браузер. Ему почему-то кажется, что появление нового символа в textarea — это повод сделать полный reflow всей странице.
EvilFox
Хотите секрет? Это всё CSS (СТИЛИ) виноваты. Грохните их dr.habracdn.net/habrcom/styles/1537449801/main.bundle.css и всё станет в сто раз шустрее. Можно через F12 во вкладке Source открыть и потереть содержимое этого файла или перейти через Elements на него в стилях элемента какого-нибудь.
Это не новая проблема. Частенько всякие там кривые нормализаторы (сброс стилей) сильно так тормозов добавляют (но в данном случае проблема глубже). Уже не в первый раз вижу такое на сайтах.
user343
Хаброрыба тухнет с головы (врачу — исцелися сам).
А на некоторых форумах гостям или проштрафившимся пользователям включали майнинг криптовалют в браузере. Хабр ещё не настолько опустился.
https://habr.com/post/374131/
InterceptorTSK
Если рыба тухнет, то тухнет со всех сторон полностью.
EvilFox
Вот тут я дал решение тормозов прокрутки.
zzvkaa
Спасибо, хорошо сформулировано, даже сподвигло на хабре зарегистрироваться). Тема эта меня тоже давно мучает. Как так получается? Понять можно, если смотреть на всю картину мира, в которой программистов — от силы четверть процента всех людей. Т.е., разочарование в том, что даже создание технических ценностей — это социальный процесс, идущий по социально-человеческим законам (м.б. идеальным, но пока не достаточно известным), а не по идеальным физ-мат моделям. Неидеальный код — продукт неидеального социума, а не фейл отдельных специалистов. Как-то так.
Например (шаблон сценария «быстрый IT-стартап»):
1. Старт проекта: денег нет, времени нет. Решение — сделать прототип, запустить, раскрутить, на профит его доделать до идеальности.
2. Сделали на коленках, запустили, раскрутили — ура, профит, KPI=100500
3. Вложить в «ref*cktoring»?) при KPI <= 0.001005 ?) неее… лучше перейти к п.1 с новой идеей)
Al-Capona
Отличная статья, полностью согласен со ней! Придала ещё больше уверенности, что «ассемблеро-эрлангский олдскул» жив и потребность в нём только укрепляется.
В какой-то период времени, вдруг начался ажиотаж вокруг фреймворков и могучих, по объёму, ЯП. В те года я решил, что мой опыт разработки высокоскоростных, маленьких, выжимающих все соки из железа, программ, ушёл в прошлое.
Так как заниматься изучением «новейших» технологий мне не позволяло внутреннее отвращение, пришлось сменить приоритеты на «земной» бизнес.
Теперь же, наблюдая картины происходящего в области ПО и развитого интернета, с радостью вижу для себя возможность вернуться в любимую отрасль и «разорвать» на биты этот могильник несовершенства, став участником строительства новой эпохи.
Автору статьи огромное спасибо! Возвращаюсь! Олдскул жив!
0xd34df00d
Я от похожей хрени из машинного обучения ушёл, как только туда в больших массах набижали «практики», умеющие только нейросеточки как-то там в питоне ковырять.
scoffer-by
Проглядев комментарии здешней фауны, гордо именующей себя IT-специалистами, нисколько не удивляюсь написанному в статье.
user_z
Добрый вечер! Все, наверно, помнят присказку: «Лучшая программа не та, в которую нечего добавить, а та, из которой нечего убрать». На уроках программирования, в той или иной форме, всем должны были объяснить. Это как на уроках труда учили, что деталь из заготовки надо вырезать таким образом, чтобы получилось минимум отходов, чтобы заготовки ещё на несколько деталей хватило. Это и есть оптимизация, любая деятельность приходит к оптимизации, но только при наличии свободного времени.
Нарыл интересные противопоставления, которые исторически объясняют сложившуюся ситуацию. Так вот, все мы знаем как высоко ценятся скрипки Страдивари и другие подобные штуки, мебель, драгоценности, даже железные оградки. Мало того, что ценятся, так ещё дошли до нас не потеряв своих функциональных качеств, такие же прочные, по-прежнему красивые.
Отличительной особенностью того времени являются города-государства, которыми управляли, во многом, общины ремесленников, феодализм уже отходил, а государства-монархии ещё не сформировались, промышленная революция с её капитализмом была ещё только на горизонте. Прекрасное время, отсутствие принудительного труда, постоянные мятежи против полиции баронов, с большим упорством пытающихся обложить ремесленников всё большим и большим налогом.
Так вот, это было время, когда неторопливый труд позволял прокормиться, была возможность потратить несколько дополнительных часов, дней, даже месяцев на рюшечки-завитушечки, архитектура того времени поражает отточенностью деталей.
Со временем, государства-территории подмяли под себя города-государства, обложив рабочих жителей городов непомерным налогом. Промышленная революция внесла свой вклад, создавалось всё больше фабрик, на которых труд был хоть и оплачиваемый, но всё-таки принудительный, альтернатив не было, свободных ремесленников оставалось всё меньше. Фабричное же производство хоть и отличалось стремлением к экономии затраченных средств, но ручной труд становился дороже машинного, капиталу было выгодней произвести 200 деталей без особой огранки машинным способом, чем 5 деталей ручной, ювелирной работы. Тяп-ляп и в продакшн.
Тогда капитализм впервые показал свой звериный оскал, которым до сих пор улыбается нам. Бизнесу не нужна высокая оптимизация, пользователю не нужна высокая оптимизация, а у программиста на высокую оптимизацию нет свободного времени — свободное время для совершенствования в искусствах (искусстве программирования), — удел анархических утопий.
Таким образом, причина сложившийся ситуации — капитализм. Решить ситуацию можно либо гос.заказом, как и делается для военно-космической отрасли, либо созданием городов-государств, ближайшим аналогом которых можно назвать Силиконовую долину, Сколково, вот только работа должна вестись не из под палки, не из страха потерять работу и умереть с голоду, а на творческом энтузиазме, как это делали свободные ремесленники в свободных городах эпохи возрождения.
scoffer-by
Истинно так. Экономика ориентирована либо на результат, либо на прибыль. Одновременно не получается.
PsyHaSTe
Вы вольны сидеть дома и делать завитушечки, сколько вам угодно. Причем если вы делаете более удобный продукт, то у вас будут и покупатели. Так что всё зависит только от вас, никто не заставляет на дядю работать.
sevenguest
Глубочайшая признательность автору! Иногда боюсь, что только меня такие мысли посещают.
polnd
Согласен с автором. Одним из мотивов создавать свои программные решения для меня является ровно эта мысль — делать софт оптимальным и простым вопреки современным тенденциям.
Добавлю еще, что не только все стало медленнее. Все усложняется специально еще и для того, чтобы заработать на этом еще больше денег. Но закон сохранения энергии проходят в школьном курсе — если откуда-то взял — в другом месте убудет. Но пипл хавает. Тоже призываю инженеров, от которых все зависит по сути, задуматься над последствиями. Нам в этом мире жить.
Kwisatz
Коллега, наступили на больную мозоль а.
Я ничерта не пойму почему crm расходует от 400 до 1.2 гб на вкладку, почему сайты насилуют процы офисных компов, какого черта каждый 3ий сайт позволяет себе загрузку по 20+ секунд.
Почему мне разработчики сайта говорят что запросы с длительностью больше секунды это абсолютно нормально (ну там же целых 100 тысяч строк!!!).
Какого черта Photoshop CS 2018 позволяет себе страшные лаги при отрисовки действий кисти в примитивнейшем макете на машине последнего поколения.
И это только то от чего я впадал в ступор самое последнее время. Сдурели чтоли все вокруг?
khim
А потом… случилось страшное: память по-прежнему дешевеет, а процессоры… больше не ускоряются. И замедление, которое раньше было незаметно — теперь приводит к тормозам. Но индустрию-то так просто не перестоить!
Потому, в качестве паллиаатива, начали убеждать пользователей «не верить глазам своим» и делать вид, что всё вокруг не тормозит. Опять-таки переход с HDD на SSD дал ешё несколько лет передышки… однако, похоже, резервы уже исчерпаны — и разработчикам скоро придётся думать об эффективности… но за столько лет этот орган у них атрофировался за ненадобностью!
BD9
Всё намного хуже: цены — растут, скорость — даже иногда снижается
Дефицит 14-нм процессоров Intel растёт вместе с розничными ценами
Intel вернулась к 22-нм нормам при производстве новых чипсетов
Samsung сократит производство памяти, чтобы не снижать цены
Kwisatz
Вот сейчас набирал сообщение вхроме, сдался перешел в FF. Я обгонял отрисовку символов на полстроки, ну да у меня машина загружена, но не настолько же.
Мне кажеться еще очень сильно роляет особенность веб разработки. По сути всем же плевать какой у них сайт. На нормальный денег жмут, идут заказывают за 3к, понимают что он не работает, идут заказывают за 20к, 50,100,500. Но ничего же не меняется. SEOшники давно всех убедили что они полезны, посему уникальный контент никто не создает, сайты деградируют до бесполезных лендингов, за нормальный дизайн для которых тоже никто не хочет платить (хотя уж где где а на лендингах UI должен быть на уровне «бог»), как итог на производительность всем плевать ибо все равно посещаемость полтора человека в час.
А вот когда вдруг набирается посещаемость тут начинаются проблемы, идут костыли, которые вроде первое время спасают, а когда не спасают где взять специалиста, который собственно сможет помочь? Я вот раньше любил получать денежку за полировку бд, но сейчас желания нету, потому как вовремя никто не хочет этим заниматься, а когда они возвращаются с полумертвым сервером я тупо выставляю барьерные цены (ибо сложность работ возрастает многократно, как мне найти хреновые запросы, если сервак уже захлебывается в прерываниях).
Разработчики деградируют вслед за всеми этими тенденциями, 10 слоев абстракции, умные слова, реактивное программирование, а без лага отрисовать табличку на 20 строк мы не можем, ага. ORM, архитектура, тщательное внимание даже к файловым системам и вдруг, тадааа, 100 тысяч строк это уже много вдруг стало. И SQL запросы дольше 1 сек вдруг стали нормой. Да, я буду хранить данные прямо в DOM, потому что не вижу смысла их дублировать и наворачивать дополнительные виртуальные структуры. Нет я не буду использовать ORM, потому что ускоряя разработку, она создает проблем больше, чем решает. А что такое фреймворки я вообще не знаю и знать не хочу (нет правда, так и не понял смысл этого слова за много лет)
Доступные VPS делает эту ситуацию еще хуже. Месяц назад вот разработчики сайта-каталога, заполняющегося парсерами, не моргнув глазом запросили VPS за 50 баксов/мес для размещения оного. Я сначала полчаса офигевал от цены предложенной, поскольку я за более мощную VPS плачу 9 евро, потом офигевал от требуемых ресурсов, затем офигевал от запроса гигабитного подключения (чтоб картинки быстрей загружать, ага (когда спросил про modified-since, меня не поняли)).
Теперь у меня мерзкое послевкусие от осознания того насколько все запущено. У меня сейчас VPS непрерывно загружает/обновляет/выгружает данные из целого ряда crm/erp систем и при этом практически покуривает от нефиг делать, ибо доступных в наше время более чем достаточно для решения весьма широкого спектра задач. Да право слово, когда я занимался вам-сайтами у меня на IMB x346 с 16 гб оперативной памяти и без SSD спокойно и быстро работал сайт на серьезной нагрузке, в базе которого количество строк на таблицу доходило до 750 млн.
ЗЫ вот глаз вопиющего в пустыне
ЗЫЗЫ простите, накипело)
arielf
ankh1989
Хорошая тема. Да, и насчёт Хабра. Как написать администрации? Упомянуть alizar? Почему комментарии так безбожно тормозят? Неужели отрендерить 1000 комментов это такая сложная задача? Почему когда я их прокручиваю (хром, винда), оно тормозит так будто биткоины майнит и почему когда я прокручиваю огромный RFC всё летает? Возьмите своего лучшего JS кодера и дайте ему месяц попрофилировать этот тормозной кусок говнокода. Выкините весь этот хитрозакрученный CSS и напишите тупо в лоб с глобальными стилями, но так чтобы не тормозило. Забодало.
Am0ralist
Ну или в одну из прошлых тем администрации заглянуть? Там даже указаны кто есть кто на хабре…
На крайний случай, вызвать Boomburum'а? Зачем обычного автора статей то звать?
Kwisatz
arielf
О Боже мой! Какой ужас! Прав был Денис Драгунский — миром правят страх и ужас!
altrus
Биг бразер следит за каждым твоим кей апом
И делает это риал тайм и за твой счет.
EvilFox
Вкратце: на хабре очень много не оптимальных стилей.
EvilFox
Главные источники тормозов при прокрутке элементы с position: fixed
По большей части чтобы устранить тормоза прокрутки наберите в консоле (через F12):
C полем ввода сложнее, я пока не понял какие стили гробят.
Kwisatz
Можно еще при прокрутке всей странице задавать mouse-events:none;
Кстати я отписал таки в тп хабра, цитирую ответ: «Вы можете привести пример ресурса на котором статьи с 1300 комментариев загружаются на ваш компьютер без задержек?»
Я конечно могу быть не прав, извините, но меня чуть не вывернуло от такого ответа от тп именно хабра.
EvilFox
А вот тормоза с полем ввода без рефакторинга не избежать, ибо проблема даже не в количестве тормозных селекторов (а их реально много), а в самом по себе огромном количестве селекторов (даже те селекторы которые не используются на странице всё равно добавляют тормозов).
«Круто», что тут ещё сказать.
deniskin, это норм?
Kwisatz
А на вопрос о тормозах в textarea вот так: «Здравствуйте! У нас такая картина не
наблюдается. Вы уверены, что она не имеет локальный характер? Больше похоже на некорректную работу какого-то расширения.»
Самое паршивое, что я такие ответы вижу минимум раз в неделю. И каждый гребаный раз «У нас такая картина не наблюдается» и начинается многодневное выяснение, что я не осел. Чуть легче от мысли что обычно разговор идет об офисных компах, достаточно слабых. Но моя домашняя машина на порядки мощнее и тут уже мое лицо стало примерно таким О_О
EvilFox
Они наверное в лисе сидят (в ней не тормозит ни прокрутка ни поле ввода) и посмотреть в хроме (подвержены все на blink) им судя по всему лень (не в их компетенции).
Да стандартная ситуация когда некомпетентные люди отфутболивают.
sumanai
О, спасибо, а то в упор не понимал, о каких вы тут тормозах пишите.
Kwisatz
Наверняка, а еще на i7 последнего поколения. А комменты тут пролистать лениво видимо, тут уже раз 20 это упоминалось. Я сразу написал что в лисе проблем нет)
Хотя отрисовка при резком скролле на статью кошмарно долгая.
Но лень таки видимо, да:
androidovshchik
Занимаюсь разработкой приложений для андроид
Бывает выступаю волшебником в глазах заказчиков, присылая apk размером менее 1 мб
А иногда просят специально увеличить размер apk, считая не солидным менее 2-3 мб
Am0ralist
Сегодня я долго смеялся.
Ибо сегодня вышел новые DosBox для которого 1,5 мб — инсталятор, а распакованный он весит 4,3 мб.
Не, я всё понимаю, 1 апреля, все дела, но…
lieff
1.6mb — и можно добавить запись игры в mp4 и стримминг на твич:
github.com/lieff/minih264
github.com/lieff/minirtmp
Когда обычно просто подключают ffmpeg или gstreamer. Причем это будет или зависимость, если это софт из репы линукса (это еще может быть оправдано ради качества/скорости кодирования), или просто скомпиленная дефолтная версия для винды\андройда\мака, чтобы неиспользуемые кодеки порезали и сократили размер до ~мегабайта — не видел такого.
iDm1
Так и ffmpeg тоже можно собрать минималистично конкретно под ваши нужды. Приходилось впихивать его во FLASH память роутера для стриминга звука в Opus, занимал в памяти около 900 килобайт.
lieff
Так я про это и говорю, порезать кодеки в ffmpeg довольно легко
Оптимизация за 5 минут, но почему-то даже для мобильных приложений, постоянно встречаю в apk в jniLibs/armeabi-v7a/ полностью собранные _все_ библиотеки от ffmpeg (когда используется только h264). Хотя казалось бы трафик пользователя надо экономить.
darksshvein
рейтинг инструментов программирования увидеть хочешь ты!
tBlackCat
> Для примера, современные автомобили работают, скажем, на 98% от того, что физически позволяет нынешняя конструкция двигателя.
Вот именно — нынешняя. Но почему она считается пределом совершенства? На самом деле она далека от идеала. Возьмём предельный случай — иной метод извлечения энергии из топлива, например аннигиляцию и неважно, что это дело отдалённого будущего. В этом случае окажется, что автомобильный двигатель работает сейчас на уровне программного обеспечения:
> Только в программном обеспечении считается нормальным, если программа работает на уровне 1% или даже 0,01% от возможной производительности.
Если не ещё менее эффективно.
Но по сути Вы правы о ПО. Чем более старый софт, тем эффективность работы выше и не только в масштабах решаемых задач, но и в целом. Чем ближе к нашему дню, тем бОльший перекос в угоду первенства и прибыли. Пусть программа и малоэффективна, но её фирма выбросила первой на рынок и она снимает сливки. Вторая же будет долгое время питаться крохами, пока её суперэффективная программа будет раскручена и признана.
Это не метод современного бизнеса, да и кушать надо всем. Программистам тоже.
Порочная тенденция, но это реалии рынка.
xFFFF
Согласен с автором. У меня на старом телефоне было много разного софта(ну как у всех). В течении последних четырех лет количество софта не изменялось, но работал он все медленнее, и занимал всё больше места. Недавно купил новый телефон, и все тот же софт снова быстро работает. Получается замкнутый круг.
5oclock
«В браузерах накопилось столько пограничных ситуаций и исторических прецедентов, что никто не осмелится писать движок с нуля.»
Конкретно в браузерах меня донимает то, что при загрузке страницы они постоянно производят изменение области просмотра (ViewBox) — то, что сейчас на экране.
Щёлкнул по ссылке — на экране появилась страница: текст. Начинаешь читать — оказывается там где-то выше ещё «шапка» картинкой догрузилась — надо немного сместить текст. Потом где-то реклама догрузилась, фрейм какой-нибудь — и всё это вызывает изменения в области просмотра, хотя само не видно на экране.
Почему нельзя «загрузить» всё это за экраном? Ну будут бегунки (горизонтальный, вертикальный) уменьшаться в размерах и смещаться туда-сюда, но при этом можно спокойно считывать информацию со статичного, не дёргающегося экрана.
IRainman
Всё это из-за «оптимизаций» по скорости загрузке, не имеющих никакого отношения ни к удобству использования ни к эффективности, хуже того там ещё и DOM перестраивается когда страница «уже давно загрузилась» и прочая адища происходит. Про то как такие «оптимизации» сжирают батареи, особенно у смартфонов даже говорить не хочу. Зато маркетинговый эффект работает: пользователю сразу открылось содержимое, то что оно ещё полминуты будет ползать по экрану, подвисать и приводить к заиканиям звука в соседней вкладке уже мало кого волнует.
Kwisatz
Вот поэтому лично я рендерю страницу сервером, без новомодных приколов. А то нынче круто пошло, загрузить данные, преобразовать в объекты, построить копию дом дерева, воткнуть на страницу, навешать хендлеров и вуаля, табличка на 20 строк работает медленней чем моя на 1000+
ilitaexperta
Вы тут часто обвиняете капитализм, но это не корень проблем. Корень проблем нынешнего IT-сообщества — повально низкая квалификация разработчиков.
Разработчиков низкой квалификации стало так много, что произошел переход из количественного в качественное. Только вот, это значит не то что качество новых разработчиков повысилось, а то что квалификация среднего разработчика, опустилась на качественно более низкий уровень. Процесс зашел так далеко, что само понятие квалификации ощутимо размылось.
Разделение на Junior, Middle, Senior больше ничего не значит. Сейчас можно совершенно не уметь проектировать, придумывать собственные решения и подходы, решать нестандартные практические задачи, выбирать инструменты и технолгии под задачу или писать свои, да и просто думать головой а не догмами и не паттернами, но при этом зваться Senior Android Developer или Senior Full Stack Developer. Вариться в тусовке таких же фейковых сеньеров, а тысячи еще более фейковых мидлов и джунов будут вам подражать и ориентироваться на вас, затягивая сообщество еще дальше в воронку деградации.
То что такой Senior Android Developer посыпется при попытке написаить приложение хотябы для iOS, ведь это не его же профиль, Swift он не знает, а Objective-C вообще почти Си, а это для него уже оверскилл, никого не смущает. Ни коллег, потому что они сами такого же уровня, ни менеджмент, ведь менеджмент ориентируется на мнение ведущих разрабов в своей конторе. А кто эти ведущие разрабы? Такие же фейковые синьеры. Это значит что стало намного меньше разрабов, умеющих хотя бы правильно эту квалификацию оценить.
Умение решать практические задачи подменилось умением набрать побольше фреймворов с модными названиями себе в проект. Умение проектировать архитектуру подменилось заучиванием паттернов и аббривеатур вроде MVP и спорами про
количество ангелов на кончике иглыто про что должна знать Model, про что View, а про что Interactor. Умение выбрать язык и технологию под задачу стало такой редкостью, что HR искренне удивляются узнав что такое вообще возможно. А самое главное в работе программиста умение — думать головой давно подменилось банальным следованием догмам от лидеров мнений и выбором из двух неуместных крайностей.ilitaexperta
Если же задаться целью понять почему так получилось, то нужно обратиться к истории.
Причина деградации ровно одна — грубые ошибки в проектировании популяных технологий. Не очевидно, но я объясню.
Например, возьмем хороший пример — Delphi.
У Дельфи очень низкий порог входа — т.е. научиться клепать на ней формы мог почти кто угодно. Дельфи имела в свое время очень обширное коммерческое применение — т.е. под нее было много вакансий, на этом рынке крутилось много денег. Но при этом она была прекрасно спроектирована. Благодаря этому, даже у криворуких разрабов получались более менее качественные приложения, они не занимали сотни мегабайт, не требовали жирных фреймворков и виртуальных машин и быстро работали на любой системе. При этом новоприбывшие разрабы учились более менее хорошим подходам и дальше либо становились нормальными разработчиками, либо оставались плавать в собственном соку в рамках Delphi-экосистемы и никому не мешали.
А теперь возьмем плохой пример — клиентский веб-стек. С него все и началось.
Тут все похоже. Низкий порог входа — куча джунов. Сайты — это новый огромный рынок — востребованность разрабов, еще больше джунов. Но, клиентский веб-стек это набор грубых ошибок и костылей, описывать их по двухсотому кругу смысла нет. Что получилось в результате — прорва разрабов, которые не умеют нормально программировать, и при этом даже этого не понимают и считают себя Senior Full Stack Developerами. Которые впитали костыли и кривые принципы разработки и думают что так и надо. Которые думают что пресловутый
margin: 0 auto
это такой прием разработки, а не ужасающий костыль. Но хуже всего то, что востребованность таких разрабов привела к тому, что они еще и не хотят учиться другим стекам и технологиями.Пока фронтенд-js-комьюнити варилось в собственном соку, все было более менее хорошо. Все уже привыкли что браузеры тормозят, а сайты глючят. Но в какойто момент js-комьюнити начало переливаться в другие сферы. Сначала на бекенд — node.js, затем на мобилки — всякие fonegap, а теперь и на декстоп — Electron.
Kwisatz
Дело не только в Js. Процесс глобален. У меня вот не сложились отношения с ORM, я десятки раз видел ка кради пары запросов люди подцепляют здоровый фреймворк, хрен кладут на индексы, а потом сражаются с тем что получилось. Я так не смог, не могу я использовать технологию, с которой нужно постоянно сражаться. Но теперь я себя чувствую белым мамонтом в пустыне, потому что вокруг сплошняком в базах какая то дичь, поверх этой дичи жуткий оверхед слоев абстракции и куча всевозможных умных гайдов о необходимости кеширования и «глубокого понимания устройства памяти и файлового кеша».
Раньше когда мне надо было на яве написать простенькую утилитку, то все гуглилось довольно легко и просто и можно было почитать обсуждения интересных моментов. Сейчас если окунуться в непопулярные вещи типо поиска нечетких дубликатов с попутным определением кодировки, то искать нюансы можно бесконечно: поисковик забит «мини-гайдами» о том как надо взять спринг, обязательно в полной его ипостаси, наклепать быстро пару классов, воткнуть @магическиеШтуки и все сразу будет работать. Причем по статьям, с помощью прямых вопросов, а иногда даже и с помощью документации, не всегда можно выяснить что делают эти инжекторы.
Вообще довольно показателен тот факт, что бОльшая часть php-фреймворков просто не умеет адекватно работать с prepared запросами. Я уже раз 10 сталкивался с тем, что людям prepared сэкономит до трети расходов на запросов, но фреймворк надо дописывать, потому что он не в курсе что у pg можно и нужно получить список подготовленных запросов для соединения.
sentyaev
До сих пор количество вакансий больше чем программистов, от этого мы имеем такие высокие зарплаты и их постоянный рост. На рост зарплат дополнительно оказывает влияние глобальный рынок, т.е. границы между странами размыты и все хантят всех. Из-за этого программисты прожигают бюджеты с космической скоростью.
С другой стороны производительность железа все еще растет, не такими темпами как 10 лет назад, но все же.
Поэтому главное это выпустить продукт как можно скорее и начать получать доход, чтобы либо платить было чем, либо поднять инвестиций для следующей пачки фич.
В этом смысле Electron — идеальная технология, быстро и относительно дешево.
Нет смысла расстраиваться по этому поводу, рынок все расставит по местам.
Да, нужно заметить, что тренд на веб-приложения заканчивается, все уходит в мобильные приложения. Тренд на увеличение производительности тоже проходит, а приходит тренд на увеличение количества ядер и рост памяти.
Lucky_Student
Не логинился на Хабре/Гиктаймсе около двух лет. Просто читал и не комментил последнее время. Ради того, чтобы поставить «плюсик» — залогинился. Полностью согласен с автором, правильный пост.
PsyHaSTe
Тем временем статья про падение нравов разработки и написание тормозного и плохого софта лагает и грузится полминуты
Crandel
В огнелисе загрузилась за 2,5 секунды
Ilya81
Местами есть преувеличения, например, на счёт загрузки телефона за 1 секунду. Я вообще не знаю ни одной GUI ОСи, загружающейся за 1 секунду, а CLI и псевдографика по мне слишком большая жертва ради быстродйствия. Да и GUI бывает разным — OpenBox загружается менее 5 секунд, KDE — всё ж подольше, и я без крайней необходимости обычно выбираю более совершенный GUI в KDE. С играми вообще особая история, специализированные процессоры, в т. ч. GPU, всегда эффективнее, но для прочих целей специализированные процессоры на пользовательских компах вряд ли приживутся. В Windows, впрочем, есть проблема стандартизации — скажем, WPF криво работает с видеобфером, а особой альтернативы использования GPU вне игр не прижилось, не будет ж каждй писать свою прослойку, а GDI для графики использует CPU. Про Windows 95 вообще в 30 Мб отдельная история, Windows так и тянет тяжёлое наследие оптимизации с разделяемыми DLL и т. п., в итоге для их обновления теперь пришлось использовать транзакции, а в этом случае 30 минутам на обновление удивляться не стоит. Автор знает, сколько занимает закрытие банковского дня? А знает почему? Вот они транзакции. Хотя, если перейти к теме приложений, кривое использование ORM порой и впрямь создаёт транзакции почём зря. А всякие Docker'ы и прочие Kubernetes — это решения для создания массового создания крупных систем, что раньше не применялись.
khim
Да, знает, я думаю.
Потому что для того, чтобы исправить хоть что-то нужно собрать 100500 бумажек и никто не будет менять архитектуру, даже если она безбожно транжирит ресурсы? Так об этом и статья.
О каких, блин, транзакциях мы говорим? Зачем вам транзакции внутри процесса обновления? Делаем снапшот, делаем обновление, если не получилось — возвращаемся назад. Нафига вам в этом процессе ещё внутри какие-то транзакции?
Да применялось это. Начиная с 70х годов OS/360 могла вкладываться внутрь OS/360. А туда — можно было ещё одну OS/360 вложить. И там — хоть 100 раз, пока памяти хватит. System/370 тем и отличалась от System/360.
Но для этого нужен правильный дизайн, да. Тот факт, что, когда проблема была диагностирована, Intel и AMD не исправили архитектуру (как сделала IBM в System/370), а наворотили ещё один уровень костылей вызывает, если честно, «чувство глубокого недоумения» — но очень хорошо ложится в канву обсуждаемой статьи.
ladutsko
ППКС
sboronin
Согласен с автором, более того, процесс распухания софта я начал наблюдать еще в 90-х. Тогда еще мало кто соглашался с этим, находя оправдания в росте сложности ПО.
Сейчас это стало настолько очевидно, что есть шанс на то, что появятся те, кто будет готов что-то сделать в отношении данной проблемы.
sboronin
Автор статьи пишет «Linux намеренно убивает случайные процессы.»
Можно ли привести примеры, когда Linux так делает.
Работаю с Linux-ом с 2000-го года, но не сталкивался с данным явлением.
khim
Londoner
На самом деле, во фронтенде проблему исправить довольно легко. Достаточно создателям Хрома перестать загружать страницы длинной, скажем, больше мегабайта или джаваскрипт, требующий память больше десятка мегабайт. Сначала показывать предупреждение, а потом просто крешить эти страницы, оставив глубоко в настройках опцию «allow bloatware from the following domains»
Druu
А зачем им это делать, если пользователи хотят такие страницы загружать?
Londoner
Вряд ли они захотят их загружать будь у них альтернатива. А альтернатива не появится по чисто экономическим причинам, пока гавнокод остаётся безнаказанным.
PsyHaSTe
Вспоминается, как люди хакали свои драйвера, чтобы не проходить сертификацию майкрософта — писали скрипт, который за пределами экрана открывал нужное окошко «разрешить установку небезопасного драйвера» и программно жали «ок».
Druu
А безнаказанным он остается потому что, еще раз, пользователей все устраивает.
Нету у пользователя такой проблемы. Она есть у разработчиков, у вас, у автора статьи там. А у пользователей — нет.
InterceptorTSK
Когда я начал прозревать, ну это давно уже было — мне попался забавный клиент. Он компьютер вообще в глаза не видел. Оно ему не нужно было полностью. Впрочем 99% и без компьютера прожить могут прекрасно, но суть не в этом. Значит это был директор достаточно крутой канторы, но вообще без компьютера. Так вот, обсуждали мы что делать будем, а рядом сидел главный инженер этой канторы. Т.е. директор сидел рядом исключительно справочно, собственно он этого и не скрывал, и заранее так и сказал.
Обсуждение свелось к банальностям. Нахрен все это надо? Если этот ваш кампутер нихрена не может? На том и разошлись. А ведь етот директор абсолютно прав.
И чем дальше оно двигается в каких-то непонятных направлениях — тем хуже оно становится.
И да, бухгалтер у него считал на счетах. Давно дело было. Кантора приличная, человек 200.
Рассчитывала все одна женщина. Ошибок ровно ноль. Я специально спросил. НОЛЬ. Проблем тоже НОЛЬ.
lxsmkv
Одной из причин разрастания (а может и основной) является, по моему наблюдению, поддержка обратной совместимость и нескольких платформ.
Infra_HDC
Вы были очарованы софтом? И если да, то можно поподробней об этом?