Previous Entry Share Next Entry
Углубляемся
father
f_dv
Предущая тема требует развития.
Вообще затравкой послужило переданное мне назойливым гражданином коммерческое предложение.
Эпиграф: Я ненавижу Java там, где я её ненавижу.

Что я хочу видеть:
 - чтобы работало быстро;
 - чтобы работало стабильно;
 - чтобы легко масштабировалось. Ну или с пременением умеренных сил в меру квалифицированных специалистов;
 - чтобы одинаково выглядо и почти одинаково работало на любой платформе, предназначенной для ПК;
 - чтобы проблемы сбоев диагностировались тривиально до очевидного;
 - чтобы поняв проблему  точно знал, что нужно сделать, очтобы всё заработало ещё вчера;
 - чтобы было прозрачное межплатформенное взаимодействие и совместимость со стандартным функционалом ОС.
 - чтобы мобильный вариант был практически полностью функционален и прост относительно "большого" продукта.

Что мне предлагают:
 - "мы - крутая фирма, с хорошо выстроенным процессом промышленно разработки ПО!";
 - серверные приложения;
 - интеграционные проекты;
 - автоматизация документооборота (прямо вот так вот, жирным шрифтом!);
 - системы управления предприятием;
 - системы управления контентом;
 - облачные технологии;
 - создание библиотек и фреймворков;
 - применяем Open Source.
 - программируем на Java и всём, что тоже по сути Java (J2EE, J2SE, Android, SOA, OSGI);
 - умеем Agile/Scrum.

Почему это коммерческое предложение меня злит (оно реально не оставляет равнодушным):
 - молодёжь не ставит производительность во главу угла. Оно вообще не понимает о чём тут речь, если говорить о производительности;
 - Java вместо нормальной диагностики вываливает какие-то дурные эксепшны, глядя на которые хочется рыдать. Но разобраться можно, да...;
 - переносимость условная;
 - Java-машины разные
 - часть прелестей Java-машин надо тупо отключить, чтобы приложение начало работать предсказуемо;
 - у каждой Java-машины ещё горсть своих тараканов. Помимо тех, которые есть в самом софте;
 - производительность. Самое быстрое Java-приложение по определению медленнее откомпилированного бинарника;
 - применение безумного числа фреймворков безумных объёмов. То, что внутри там черви и жабы - никого не волнует. Нукто туда не смотрел;
 - мнение, что быстрая и удобная разработка - вот он успех бинеса. Вот уж выводит не на шутку. Типичный "тяпляпивпродакшн".
 - в мире достаточно примеров бинарного софта, отлично и одинаково работающего на разных ОС (упрощённо: Windows, Linux).

В общем если коротко, то когда мне говорят "купите у нас программу, мы её написали на Java", у меня глаза наливаются кровью, а из ноздрей начинает валить пар (не путать с дымом!). Не потому, что я принципиальный Java-ненавистник, а потому, что Java, как и XML, большинство "современных" разработчиков пихают в любую дыру слабо понимая что делают, но хорошо (пожалуй да) освоив один модный инструмент. И кстати да, в большинстве случаев зная только одну ОС-платформу - Windows.

Прошу простить мне сумбурность.

  • 1
Ну как Java может быть быстра как нативный код? Она же интерпретатор.

Нет!!! Это НЕ интерпретатор.
Почитайте, например, на счет CLR и как это рабоатет.
http://habrahabr.ru/post/107585/

.НЕТ медленный и унылый, a чувак по ссыслке разводит демагогию. Чего только стоит это его: "выделение памяти в языках со сборкой мусора выполняется БЫСТРЕЕ, и _не_ фрагментирует кучу, в отличие от с++."
Сразу видно джависта, не владеющего "плюсами" и соответственно тем, как правильно в плюсах выделять память (если охота делать это быстро).

Такие джависты и сравнительные тесты джавы и плюcов пишут - по которым интерпретируемый язык уделывает нативный. :)

Edited at 2014-01-31 03:15 pm (UTC)

>джависта, не владеющего "плюсами"
Я эксперт и в C++ и C#, но я с ним скорее согласен.

>не владеющего "плюсами" и соответственно тем, как правильно в плюсах выделять память (если охота делать это быстро).
Если на C# охота делать это быстро, то правильно выделять память точно так же, как в плюсах, т.е. из пулов = выделять её ровно один раз за время работы приложения.
И те немногие программисты, для кого это очень критично (в основном это разработчики мобильных игр для WinPhone/Unity3D/других .NET окружений) так и делают.

А программисты, для кого это менее критично (т.е. чуть менее чем все) действительно наслаждаются более эффективным управлением памятью в GC-языках.

Первые разумный ответ (ниже пока не читал :)), попкорн закончился, побежал за второй банкой.

(Deleted comment)
JIT же. Но того, что java говно, это не отменяет.

У меня к жабе только одна претензия: закостеневший язык, отставший от того же C#. Но в остальном он никак не страшен.

Язык как язык, не хуже и не лучше других сравнимого "класса". Но навёрнутая вокруг инфраструктура - это лютый кошмар.

А к C# другая претензия: нету обратной совместимости с предыдущими версиями.

Жаба использует JIT компиляцию.
Которая, ко всему прочему, еще позволяет использовать оптимизации под текущий проц, в отличие от заранее собранных бинарников.

"Жаба медленно" - это сведения из доисторических времен.

Ну, например, любой софт на жяво или цэ# стартует ощутимо (в разы) медленнее, чем нативный (и, [censored], даже написанный на вполне себе интерпретируемом пытоне!)

Ну пес с ним, один раз же.

Да, начальный старт и загрузка классов это ад.
Я из-за этого к собственному GUI софту на гопнете привыкнуть не могу - "тормозит".
В консоли это не так напрягает - запустил с ключами и пусть работает себе (не говоря уже об автоматическом запуске из CI), а вот гуй софт который задерживает работу - ебань дикая, бешеная.

Power Architect как пример быстро стартуемого софта. Опять же там товарищи которые пилят JVM подкрутили, что оно существенно быстрее стартует чем в стародавние времена.

Эм. Не интерпретатор. Плюс есть такая вещь как JIT. И сейчас если брать виртуальные машины, то этот самый JIT наиболее крут как раз в JVM.

  • 1
?

Log in

No account? Create an account