Не спорю, что это не возможно для больших приложений, но мало кто из нас пишет действительно большие приложения. А для типичного shareware в условиях очень жесткой конкуренции между десятком похожих программ время старта — очень важное преимущество.
Типичный пример — просмотрщик фотографий. Люди до сих пор любят ACDSee3 именно за очень быстрый старт.
И, кстати, я был бы очень рад, если бы смог запустить firefox за доли секунды, открыть новую вкладку и начать работу. А предыдущие пускай грузит где-то в фоне.
$ time java Hello
Hello, World!
real 0m0.075s
user 0m0.072s
sys 0m0.000s
И про память вы неправы — джава, во всяком случае, java8, умеет отдавать обратно неиспользуемую память. Другой вопрос, что если приложение написано криво и течет по памяти.
Одна секунда — это много для десктопного приложения, качественный софт должен открываться сразу. В Java9 обещают модули и пока еще экспериментальную систему предкомпиляции модулей, посмотрим на результаты...
Java требует много памяти. Ну, в 2017 году может это уже и не так много, но совершающий полезную работу java процесс легче 300Мб RAM найти непросто
Java приложения медленно стартуют и выходят на пиковое быстродействие не сразу
Если вы измеряете время отклика java приложения в долях миллисекунд, придется оптимизировать настройки JVM
НО:
"разогретое" приложение на Java порвет большинство конкурентов по параметру "кол-во обработанных запросов в секунду". Избыток памяти используется для экономии CPU.
приложение — это файл или каталог с файлами. Из внешних зависимостей требуется только JRE
переход на новую версию java почти всегда беспроблемный
Т.е. получаем идеальное решение для сервера, если есть память. И не очень хорошее решение для гуев.
Известная тема еще по менеджменту разработки ПО. Можно создавать функциональные команды, которые специализируются на конкретных видах работ (дешевле), а можно проектные команды (дороже, но эффективнее).
Предлагаемый подход, конечно, улучшит качество обслуживания, но потребует больше квалифицированных специалистов. Все-таки 95% обращений в службу поддержки решаются зачитыванием избранных мест из руководства пользователя.
Имхо, как-то дико хвастаться пробелами в школьных знаниях. Во всяком случае, мне в 90х в обычной школе далеко в тундре рассказывали про деревья, двоичный поиск, сортировку пузырьком и вставками.
Со специфичными вопросами по языкам/фреймворкам всё немного не так — ответы на них показывают опыт работы с конкретным языком/фичами. Если кандидат рассказывает о своей сложной базе на рельсах, он не может не помнить синтаксис миграций. Если кандидат не знает, как найти длину строки в питоне, то питон точно не его основной язык.
К примеру, заезженный вопрос по джаве "какие есть методы у класса Object". Интервьювер ожидает не заучивание явадока, а список методов, которые кандидат использовал настолько интенсивно, что они намертво застряли у него в памяти.
Именно! В этом и смысл облака — что балансер тоже может упасть, поэтому балансеров должно быть два, а поиск балансеров должен работать через другую отказоустойчивую систему… DNS к примеру.
Это для серверных приложений — Представьте себе n машин, на которых периодически жестко падают процессы, а перед ними — балансер, который умеет делать перезапрос при ошибке.
Судя по последним изменениям в js скриптах вконтакта, они сменили разработчиков. Или, как минимум, архитектора.
Они могут его получить в любое время, имея физический доступ к своему компьютеру.
Да, откровенно жёлтая статья.
Две основные причины:
Не спорю, что это не возможно для больших приложений, но мало кто из нас пишет действительно большие приложения. А для типичного shareware в условиях очень жесткой конкуренции между десятком похожих программ время старта — очень важное преимущество.
Типичный пример — просмотрщик фотографий. Люди до сих пор любят ACDSee3 именно за очень быстрый старт.
И, кстати, я был бы очень рад, если бы смог запустить firefox за доли секунды, открыть новую вкладку и начать работу. А предыдущие пускай грузит где-то в фоне.
Три человека, которым нравится секундная задержка между кликом по ярлыку и появлением окна приложения?
некоторые модули, которые ставятся через npm, содержат нативный код
https://github.com/nodejs/node-gyp
Есть же QString из QT. Или хотя бы с Java слизать API по работе с юникодом. Оба варианта существуют больше 10 лет.
Ну они точно не обрабатывают ошибки выделения памяти в каждом
new. Скорее, используют собственные аллокаторы.И про память вы неправы — джава, во всяком случае, java8, умеет отдавать обратно неиспользуемую память. Другой вопрос, что если приложение написано криво и течет по памяти.
Одна секунда — это много для десктопного приложения, качественный софт должен открываться сразу. В Java9 обещают модули и пока еще экспериментальную систему предкомпиляции модулей, посмотрим на результаты...
Они страдают молча
Автор и правда немного передергивает факты.
НО:
Т.е. получаем идеальное решение для сервера, если есть память. И не очень хорошее решение для гуев.
В других языках проблема c документацией решена: javadoc
Ох уж это мощное прототипное наследование… четыре способа сделать наследование в яваскрипте
Известная тема еще по менеджменту разработки ПО. Можно создавать функциональные команды, которые специализируются на конкретных видах работ (дешевле), а можно проектные команды (дороже, но эффективнее).
Предлагаемый подход, конечно, улучшит качество обслуживания, но потребует больше квалифицированных специалистов. Все-таки 95% обращений в службу поддержки решаются зачитыванием избранных мест из руководства пользователя.
Имхо, как-то дико хвастаться пробелами в школьных знаниях. Во всяком случае, мне в 90х в обычной школе далеко в тундре рассказывали про деревья, двоичный поиск, сортировку пузырьком и вставками.
Со специфичными вопросами по языкам/фреймворкам всё немного не так — ответы на них показывают опыт работы с конкретным языком/фичами. Если кандидат рассказывает о своей сложной базе на рельсах, он не может не помнить синтаксис миграций. Если кандидат не знает, как найти длину строки в питоне, то питон точно не его основной язык.
К примеру, заезженный вопрос по джаве "какие есть методы у класса Object". Интервьювер ожидает не заучивание явадока, а список методов, которые кандидат использовал настолько интенсивно, что они намертво застряли у него в памяти.
Именно! В этом и смысл облака — что балансер тоже может упасть, поэтому балансеров должно быть два, а поиск балансеров должен работать через другую отказоустойчивую систему… DNS к примеру.
Это для серверных приложений — Представьте себе n машин, на которых периодически жестко падают процессы, а перед ними — балансер, который умеет делать перезапрос при ошибке.