Посматриваю сейчас рынок работ, так вот, к примеру, в Калифорнии катастрофически нужны джависты. Почему именно они?
Типа там столько старых продуктов и нифига нет новых?
Еще читал, что в Америке любят шарп, но по вакансиям там также, как и в Европе любят джаву. Почему так?
Здравствуйте, xRAZORx, Вы писали:
RAZ>Типа там столько старых продуктов и нифига нет новых?
Не, типа отсутствие элементарной технической эрудиции не даёт вам объективных знаний в разнице возраста Java и Net. А недорогая рекламная массовка легко склоняет вас в любую веру.
Здравствуйте, xRAZORx, Вы писали:
RAZ>Еще читал, что в Америке любят шарп, но по вакансиям там также, как и в Европе любят джаву. Почему так?
Во-первых, Java используется на множестве устройств (включая телефоны, стиральные машинки, печки, брелки безопасности). Во-вторых, в некоторых случаях даже для серверов выгоднее: не нужно покупать лицензии на Windows.
Здравствуйте, Сыроежка, Вы писали:
С>Шарп — платформо-зависисмый и к тому же MS зависимый. Чего не скажешь о джаве.
Не так уж и платформозависимый, если гуй на WPF не нужен. Технически Шарп/Дотнет более привлекателен, но его зависимость от MS убивает все плюсы.
От MS постоянно, инстинктивно ждёшь кидалова, в том числе и на деньги.
Здравствуйте, xRAZORx, Вы писали:
RAZ>Посматриваю сейчас рынок работ, так вот, к примеру, в Калифорнии катастрофически нужны джависты. Почему именно они? RAZ>Типа там столько старых продуктов и нифига нет новых? RAZ>Еще читал, что в Америке любят шарп, но по вакансиям там также, как и в Европе любят джаву. Почему так?
Здравствуйте, sVenom, Вы писали:
IO>>Во-вторых, в некоторых случаях даже для серверов выгоднее: не нужно покупать лицензии на Windows. V>Маленькое уточнение: не в некоторых случаях, а в большинстве случаев. Именно поэтому, все большие системы крутятся на Java.
Мда. Вот что своя небольшая песочница с людьми делает.
Здравствуйте, xRAZORx, Вы писали:
RAZ>Посматриваю сейчас рынок работ, так вот, к примеру, в Калифорнии катастрофически нужны джависты. Почему именно они?
Если вы не в курсе, то в этом модном сезоне носят Hadoop.
RAZ>Типа там столько старых продуктов и нифига нет новых?
А как это связанно с java?
RAZ>Еще читал, что в Америке любят шарп, но по вакансиям там также, как и в Европе любят джаву. Почему так?
Любят/не любят … Вот в Украине тоже любят дотНет (а самые громкие любят Питончег/Руби), но работа на Джаве, по куче, спорных, причин которые обсуждались везде и не раз (переносимость, цена, экосистема). Джава себя зарекомендовала в больших проектах, и это ее большое преимущество, особенно для менеджмента, которого не волнует наличие/отсутствие "лямбд".
Из более приземленных вещей. Допустим у вас есть сайтик на Руби. На него пошла нагрузка. Надо переписать узкие места.
Ц/ЦПП — очень сложно.
дотНет — думать про покупку и администрирование винды — не интересно.
Джава — много спецов, минимум новых админских навыков, Hadoop наконец
Здравствуйте, sysenter, Вы писали:
S>Здравствуйте, Сыроежка, Вы писали:
С>>Шарп — платформо-зависисмый и к тому же MS зависимый. Чего не скажешь о джаве.
S>Не так уж и платформозависимый, если гуй на WPF не нужен. Технически Шарп/Дотнет более привлекателен
Вот никогда умом не мог понять почему Шарп/Дотнет технически более привлекателен
Да, можно говорить о том, что в Шарп внесены некоторые продвинутые (и усложняющие) вещи, которые джава не может себе легко позволить в силу серъёзной ответственности перед корпоративным рынком, но которые очень нравятся пользовать молодым любителям витиеватого кода в силу того, что за плечами ещё не висит тяжёлый груз реализованных систем.
Но, ведь помимо языка существуют технологии, окружающие платформу. И такого количества интересных библиотек/фреймворков которое несёт джава, дотнету даже близко не снилось. Спринги, хибернейты, хедопы всё это из мира джава. И лишь позже мигрируют в Нет. Про веб даже вспоминать смысла нет. В шарпе есть фреймворк номер 1 и номер 2. Всё. А основная человеческая мысль пульсирует в джава мире.
Если вернуться чисто к языку, то для любителей всего чего угодно, на джава машине/платформе работают такие интересные языки как Scala, Groovy, Clojure, JRuby, JPython (Jython), Kotlin, Rhino, Ceylon... Всё интересное что приходит в человеческую голову находит своё отражение в джава мире. И при этом имеет доступ ко всем библиотекам платформы. И всё это для всех операционных систем.
Ну в каком месте тут Шарп/Дотнет технически более привлекателен?
Здравствуйте, Artem Korneev, Вы писали:
AK>Здравствуйте, Сыроежка, Вы писали:
С>>Шарп — платформо-зависисмый и к тому же MS зависимый. Чего не скажешь о джаве.
AK>Она уже Oracle-зависима.
Oracle это не операционная система. И БД Oracle работает в среде большинства OS. Таким образом для Oracle крайне важна хорошая переносимость Java платформы.
Здравствуйте, Steamus, Вы писали:
S>Вот никогда умом не мог понять почему Шарп/Дотнет технически более привлекателен
Курите матчасть.
Реализация дженериков в Java это фикция, в дотнете это сделано на уровне CLR.
В дотнете есть структуры которые являются типами размещаемыми на стеке, как int например. А в Java всё объект кроме byte, short, int, long, float, double, char, bool.
Такие вещи, как Linq и boxing изначально появились в дотнете и только потом мигрировали в Java, это к вопросу кто у кого тырит. Реализовать же Linq прозрачно в JVM невозможно в силу тех.ограничености JVM.
Методы расширения очень интересная вещь, возможность работы с указателями, возможность работы с нативным кодом и т.д. и т.п.
В Java этого или нет или сделано через ж...
S>Да, можно говорить о том, что в Шарп внесены некоторые продвинутые (и усложняющие) вещи, которые джава не может себе легко позволить в силу серъёзной ответственности перед корпоративным рынком, но которые очень нравятся пользовать молодым любителям витиеватого кода в силу того, что за плечами ещё не висит тяжёлый груз реализованных систем.
Т.е. накладные расходы на упаковку/распаковку примитивных типов при помещении в ArrayList это фишка для любителей витиеватого кода? Стоит ли понимать ваши слова так, что в силу серьёзной ответственности перед корпоративным рынком Java должна обязательно тормозить и кушать память?
S>Но, ведь помимо языка существуют технологии, окружающие платформу. И такого количества интересных библиотек/фреймворков которое несёт джава, дотнету даже близко не снилось. Спринги, хибернейты, хедопы всё это из мира джава. И лишь позже мигрируют в Нет. Про веб даже вспоминать смысла нет. В шарпе есть фреймворк номер 1 и номер 2. Всё. А основная человеческая мысль пульсирует в джава мире.
А кто спорит, что фреймворков больше, но если фрейворки крутятся на VM которая примитивные типы всегда упаковывает при помещении в коллекцию это просто абзац...
S>на джава машине/платформе работают такие интересные языки как Scala, Groovy, Clojure, JRuby, JPython (Jython), Kotlin, Rhino, Ceylon...
Под .Net тоже языков немеряно, вот у нас в проекте IronPython помимо C# используется и что? Такая куча языков мне лично не нужна, мне хватает C++/C#. Нет, если конечно вы каждую неделю предпочитаете писать на новом языке то вопрос нет.
S>Всё интересное что приходит в человеческую голову находит своё отражение в джава мире. И при этом имеет доступ ко всем библиотекам платформы. И всё это для всех операционных систем.
Кто-то с этим спорит? Так происходит потому, что MS веры нет. Но в силу перечисленных выше вещей .Net более технически развит.
Здравствуйте, Steamus, Вы писали:
S>Да, можно говорить о том, что в Шарп внесены некоторые продвинутые (и усложняющие) вещи, которые джава не может себе легко позволить в силу серъёзной ответственности перед корпоративным рынком, но которые очень нравятся пользовать молодым любителям витиеватого кода в силу того, что за плечами ещё не висит тяжёлый груз реализованных систем.
S>Но, ведь помимо языка существуют технологии, окружающие платформу. И такого количества интересных библиотек/фреймворков которое несёт джава, дотнету даже близко не снилось. Спринги, хибернейты, хедопы всё это из мира джава. И лишь позже мигрируют в Нет. Про веб даже вспоминать смысла нет. ... А основная человеческая мысль пульсирует в джава мире.
Стоп! Стоп! Так всё-таки, у Джавы ответственность перед корпоративным рынком (а значит, традиционность и отсутствие нового) или наоборот пульсирование новых мыслей и куча библиотек/фреймворков (а значит, никакой традиционность и привычности)?
S>Если вернуться чисто к языку, то для любителей всего чего угодно, на джава машине/платформе работают такие интересные языки как Scala, Groovy, Clojure, JRuby, JPython (Jython), Kotlin, Rhino, Ceylon... Всё интересное что приходит в человеческую голову находит своё отражение в джава мире. И при этом имеет доступ ко всем библиотекам платформы. И всё это для всех операционных систем.
Ну то есть: функциональный язык, динамический язык, порты популярных языков — всё это есть на платформе .NET. И новые языки — такое тоже есть в дотнете.
И, простите, но все они меркнут перед Nemerle.
S>В шарпе есть фреймворк номер 1 и номер 2.
Лучше один, но хороший, чем много, но плохих. И вы же не будете отрицать, что проще выучить два фреймворка, чем десять. Значит, легче найти новых программистов на поддержку уже существующего кода.
Между прочим, основная причина, по которой рынок далеко не сразу принимает новые языки — сложно найти профессионалов, знающих их. Поэтому от зоопарка фреймворков толку никакого, одни проблемы.
Здравствуйте, sysenter, Вы писали:
S>Здравствуйте, Steamus, Вы писали:
S>>Вот никогда умом не мог понять почему Шарп/Дотнет технически более привлекателен
S>Курите матчасть.
... S>Кто-то с этим спорит? Так происходит потому, что MS веры нет. Но в силу перечисленных выше вещей .Net более S>технически развит.
Я ни в коей мере не хотел сказать, что .NET технически слабее. Под привлекательностью я имел в виду скорее технический интерес. По мне, архитектурно, в джава мире, в силу его большей открытости, происходит больше интересных вещей. А вещи которые вы перечислили были известны и раньше. Это не достижения дотнета. Они все верны, но не все из них нашли свое воплощение в джава. По разным причинам.
По поводу работы стандартных коллекций с примитивными типами. Не знаю что сказать. Сходу не смог вспомнить когда мне последний раз приходилось заталкивать неизвестное количество примитивных типов в ArrayList. Учитывая что работаю я давно и плотно, видимо не такая уж и критичная вещь. Обычно размер известен и проще использовать обычный массив. С другой стороны — ну есть же Trove library (http://trove.starlight-systems.com/) Уже десять лет развивается. Открытая, бесплатная. Вот в начале июля новая версия вышла. Или fastUtil расширение стандартных коллекций (http://fastutil.di.unimi.it/). Уже не одна версия вышла. Я думаю и ещё есть варианты. Это особенность Джава мира — никто не ждёт пока компания владелец продукта разразится неким своим проприетарным решением. Да вы и сами всё это прекрасно понимаете.
Здравствуйте, koodeer, Вы писали:
K>Здравствуйте, Steamus, Вы писали:
K>Стоп! Стоп! Так всё-таки, у Джавы ответственность перед корпоративным рынком (а значит, традиционность и отсутствие нового) или наоборот пульсирование новых мыслей и куча библиотек/фреймворков (а значит, никакой традиционность и привычности)?
Это сарказм? Или Вы в самом деле не осведомлены? Есть стандартная часть (рантайм) изменения в которой тщательно взвешиваются, планируется и обсуждаются. Он строго поддерживает совместимость. А есть весь остальной живой кипучий джава мир в котором рождается туча все нового и часто даже полезного. Одно другому никак не противоречит. Более того, скажем, Эклипс, Спринг, Хибернейт, GWT давно и плотно стали стандартом де-факто для промышленных проектов, но не являются частью стандартного рантайма.
K>И, простите, но все они меркнут перед Nemerle. K>Лучше один, но хороший, чем много, но плохих. И вы же не будете отрицать, что проще выучить два фреймворка, чем десять.
Всё так, но есть один нюанс. Лучшую вещь нельзя назначить просто ткнув в неё пальцем. Что лучше, а что хуже, показывает время и жизнь. И для выбора у них должны быть варианты. MS делает один вариант и называет его лучшим. Потом забрасывает и делает второй — и снова называет его лучшим. И так 100 раз подряд. Только успевай метаться. Это что-то сродни тому, как при социализме компартия решала какие ножницы/диваны/лампочки лучшие и какой завод будет их выпускать ближайшую пятилетку. Но есть и рыночный путь, когда разработчики/пользователи выбирают то, что им кажется лучше и удобнее. По одним им известным критериям.
Проблема в том, что нет одного единственного критерия лучшести. Как правило лучшая вещь — это вещь максимально удачно следующая многим компромиссам. Не самая быстрая, но достаточно для большинства вещей, зато надёжная. Может и не самая, но зато понятная и хорошо задокументированная. Ну и так далее. Разумеется многие вещи можно переломать рекламой (что MS и делает, мы помним, ВизуалБейсик лучший язык всех времён и народов...). И вот этот баланс обычно вырисовывается не сразу. Нужно время и нужны альтернативные варианты. Когда вариант один, то его и приходится называть лучшим. А реклама должна это вдолбить и заполировать. Это, кстати, касается и Nemerle. Я имею в виду совокупность критериев.
Здравствуйте, Steamus, Вы писали:
S>По поводу работы стандартных коллекций с примитивными типами. Не знаю что сказать. Сходу не смог вспомнить когда мне последний раз приходилось заталкивать неизвестное количество примитивных типов в ArrayList. Учитывая что работаю я давно и плотно, видимо не такая уж и критичная вещь. Обычно размер известен и проще использовать обычный массив.
Вы не поняли про, что я говорил. Повторю ещё раз, в C# есть такая вещь, как структура тот же класс (без возможности наследовать классы/структуры) только размещается не в куче, а на стеке и является типом значения. В Java такого нет, там только классы и размещаются в куче. В C# дженерики реализованы на уровне CLR и помещая структуру в коллекцию она не упаковывается.
Здравствуйте, sysenter, Вы писали:
S>Здравствуйте, Steamus, Вы писали:
S>>По поводу работы стандартных коллекций с примитивными типами. Не знаю что сказать. Сходу не смог вспомнить когда мне последний раз приходилось заталкивать неизвестное количество примитивных типов в ArrayList. Учитывая что работаю я давно и плотно, видимо не такая уж и критичная вещь. Обычно размер известен и проще использовать обычный массив.
S>Вы не поняли про, что я говорил. Повторю ещё раз, в C# есть такая вещь, как структура тот же класс (без возможности наследовать классы/структуры) только размещается не в куче, а на стеке и является типом значения. В Java такого нет, там только классы и размещаются в куче. В C# дженерики реализованы на уровне CLR и помещая структуру в коллекцию она не упаковывается.
S>А массив в java является объектом, если что...
Да, я действительно "не понимаю" о чём Вы говорите. Большинство этих вещей решаются архитектурно и тонким местом не являются. Дискуссия на тему что можно создать на стеке а что в куче, напоминает мне дискуссии из махровых девяностых. Сишники постоянно кусали Сиплюсплюшников не предмет того — а вот ваша VMT занимает целых три бита места в памяти.
В C# дженерики действительно реализованы лучше и помещая структуру в коллекцию она не упаковывается. Ну и хорошо. В том одном десятом процента случаев когда это будет действительно критично, подумаю что с этим сделать.
Здравствуйте, Steamus, Вы писали:
S>Да, я действительно "не понимаю" о чём Вы говорите. Большинство этих вещей решаются архитектурно и тонким местом не являются. Дискуссия на тему что можно создать на стеке а что в куче, напоминает мне дискуссии из махровых девяностых. Сишники постоянно кусали Сиплюсплюшников не предмет того — а вот ваша VMT занимает целых три бита места в памяти.
Вот, что java с программистами делает))
Совет, прочитайте вот это
Здравствуйте, sysenter, Вы писали:
S>Здравствуйте, Steamus, Вы писали:
S>Совет, прочитайте вот это
Неплохой текст, но длинный. Освоил половину. Понравилась фраза: "Java в целом недостаточно сложна, чтобы отделить отличных программистов от посредственных." Это так. Джоел С. имеет достаточно тараканов в мозгу. Факт известный. Пишет тексты гладко и весело. Часто пишет глупости, но художественно и читабельно.
Здравствуйте, sysenter, Вы писали:
S>А массив в java является объектом, если что...
PS: А что с того, что массив является оъектом?! Ну завернули ребята это в класс. Абсолютно правильно. Удобно. Или вы полагаете, что они теперь внутри используют стандартные списки/коллекции, с боксингом примитивных типов в непримитивные и интенсивным использованием кучи?
Здравствуйте, vsb, Вы писали:
С>>>Шарп — платформо-зависисмый и к тому же MS зависимый. Чего не скажешь о джаве. AK>>Она уже Oracle-зависима. vsb>В чём это выражается?
Например, в попытках кошмарить Android-ориентированный бизнес, в препирательствах по поводу Java Technology Compatibility Kit.
Я не сильно слежу за этой темой, но когда я подумывал перелезть с С++ на Java, деятельность Oracle показалась мне направленной на развал платформы Java.
Здравствуйте, Steamus, Вы писали:
С>>>Шарп — платформо-зависисмый и к тому же MS зависимый. Чего не скажешь о джаве. AK>>Она уже Oracle-зависима. S>Oracle это не операционная система. И БД Oracle работает в среде большинства OS. Таким образом для Oracle крайне важна хорошая переносимость Java платформы.
Я имел в виду не платформо-зависимость, а зависимость развития Java от действий Oracle.
С платформо-независимостью у Java пока вроде всё хорошо.
Здравствуйте, Artem Korneev, Вы писали:
AK>Здравствуйте, vsb, Вы писали:
С>>>>Шарп — платформо-зависисмый и к тому же MS зависимый. Чего не скажешь о джаве. AK>>>Она уже Oracle-зависима. vsb>>В чём это выражается?
AK>Например, в попытках кошмарить Android-ориентированный бизнес, в препирательствах по поводу Java Technology Compatibility Kit. AK>Я не сильно слежу за этой темой, но когда я подумывал перелезть с С++ на Java, деятельность Oracle показалась мне направленной на развал платформы Java.
Вы лучше предварительно следите таки за темой. Сами быстро поймёте, что вы сейчас сказали.
Здравствуйте, Steamus, Вы писали:
S>>Вы не поняли про, что я говорил. Повторю ещё раз, в C# есть такая вещь, как структура тот же класс (без возможности наследовать классы/структуры) только размещается не в куче, а на стеке и является типом значения. В Java такого нет, там только классы и размещаются в куче. S>Да, я действительно "не понимаю" о чём Вы говорите. Большинство этих вещей решаются архитектурно
Оборачиванием структуры в паттерн стратегия?
Как человек работавший достаточно долгое время с двумя платформами могу сказать следующее:
Здравствуйте, sysenter, Вы писали:
S>Здравствуйте, Steamus, Вы писали:
S>>Вот никогда умом не мог понять почему Шарп/Дотнет технически более привлекателен
S>Курите матчасть. S>Реализация дженериков в Java это фикция, в дотнете это сделано на уровне CLR.
Да дженерики в Java "ненастоящие" но и эти весьма неплохи. Свою основную роль они выполняют.
S>В дотнете есть структуры которые являются типами размещаемыми на стеке, как int например. А в Java всё объект кроме byte, short, int, long, float, double, char, bool.
Зато в JVM есть escape-анализ который может определить нужно ли создалвать объект в куче или в стеке.
S>Такие вещи, как Linq и boxing изначально появились в дотнете и только потом мигрировали в Java, это к вопросу кто у кого тырит. Реализовать же Linq прозрачно в JVM невозможно в силу тех.ограничености JVM.
Linq — тормознутая хрень и нужна разве что для мелких десктопных проектов. В enterprise-приложениях а это основной профиль Java, такие вещи просто не нужны.
S>Методы расширения очень интересная вещь, возможность работы с указателями, возможность работы с нативным кодом и т.д. и т.п. S>В Java этого или нет или сделано через ж...
Опять повторюсь — для enterprise-приложений это все ненужно абсолютно. Дешевле поставить еще пару серверов чем пытаться оптимизировать еще 10% играясь с указателями.
S>>Да, можно говорить о том, что в Шарп внесены некоторые продвинутые (и усложняющие) вещи, которые джава не может себе легко позволить в силу серъёзной ответственности перед корпоративным рынком, но которые очень нравятся пользовать молодым любителям витиеватого кода в силу того, что за плечами ещё не висит тяжёлый груз реализованных систем.
S>Т.е. накладные расходы на упаковку/распаковку примитивных типов при помещении в ArrayList это фишка для любителей витиеватого кода? Стоит ли понимать ваши слова так, что в силу серьёзной ответственности перед корпоративным рынком Java должна обязательно тормозить и кушать память?
S>>Но, ведь помимо языка существуют технологии, окружающие платформу. И такого количества интересных библиотек/фреймворков которое несёт джава, дотнету даже близко не снилось. Спринги, хибернейты, хедопы всё это из мира джава. И лишь позже мигрируют в Нет. Про веб даже вспоминать смысла нет. В шарпе есть фреймворк номер 1 и номер 2. Всё. А основная человеческая мысль пульсирует в джава мире.
S>А кто спорит, что фреймворков больше, но если фрейворки крутятся на VM которая примитивные типы всегда упаковывает при помещении в коллекцию это просто абзац...
Вот не помню когда мне нужно было хоть раз иметь коллекцию примитивов.
S>>на джава машине/платформе работают такие интересные языки как Scala, Groovy, Clojure, JRuby, JPython (Jython), Kotlin, Rhino, Ceylon...
S>Под .Net тоже языков немеряно, вот у нас в проекте IronPython помимо C# используется и что? Такая куча языков мне лично не нужна, мне хватает C++/C#. Нет, если конечно вы каждую неделю предпочитаете писать на новом языке то вопрос нет.
S>>Всё интересное что приходит в человеческую голову находит своё отражение в джава мире. И при этом имеет доступ ко всем библиотекам платформы. И всё это для всех операционных систем.
S>Кто-то с этим спорит? Так происходит потому, что MS веры нет. Но в силу перечисленных выше вещей .Net более технически развит.
Дело не в вере а в том что да .Net более развита с академической точки зрения но на практике для enterprise-приложений Java платформа будет лучше. И да, пресловутая независимость от ОСи все же играет огромную роль (вот только не надо мне говорить про Моно). Вот не разу не видел чтобы большая распределенная система работала под MS Server.
Вобщем то этот холивар может продолжаться сколько угодно.
Здравствуйте, -VladK-, Вы писали:
VK>Зато в JVM есть escape-анализ который может определить нужно ли создалвать объект в куче или в стеке.
Который по умолчанию выключен и который на x86_64 в купе с другими опциями для тюнинга иногда роняет JVM.
VK>Linq — тормознутая хрень и нужна разве что для мелких десктопных проектов. В enterprise-приложениях а это основной профиль Java, такие вещи просто не нужны.
Если этого нет в Java значит это тормознутая хрень которая не нужна. Окей, понял)
S>>Методы расширения очень интересная вещь, возможность работы с указателями, возможность работы с нативным кодом и т.д. и т.п. S>>В Java этого или нет или сделано через ж...
VK>Опять повторюсь — для enterprise-приложений это все ненужно абсолютно. Дешевле поставить еще пару серверов чем пытаться оптимизировать еще 10% играясь с указателями.
Вы делаете мне смешно))
VK>Вот не помню когда мне нужно было хоть раз иметь коллекцию примитивов.
Ещё раз повторяю, в C# структура есть тип значение размещаемое на стеке и я могу без boxing/unboxing наполнить коллекцию структурами.
В Java во первых нужно включить escape анализ через -XX:-DoEscapeAnalysis (а эта опция из разряда опасных), потом наполнить коллекцию классами над которыми произойдёт boxing и только потом через 10000 для -client и 1500 для -server обращений к этому участку кода, код будет обработан JIT который накопит статистику для выполнения оптимизаций кода включая escape оптимизацию.
Здравствуйте, sysenter, Вы писали:
S>Ещё раз повторяю, в C# структура есть тип значение размещаемое на стеке и я могу без boxing/unboxing наполнить коллекцию структурами. S>В Java во первых нужно включить escape анализ через -XX:-DoEscapeAnalysis (а эта опция из разряда опасных), потом наполнить коллекцию классами над которыми произойдёт boxing и только потом через 10000 для -client и 1500 для -server обращений к этому участку кода, код будет обработан JIT который накопит статистику для выполнения оптимизаций кода включая escape оптимизацию.
в выделеном я имел ввиду, что произошёл бы boxing если бы в Java был аналог структур из C# + примитивы понятное дело в Java подвергаются боксингу.
Здравствуйте, sysenter, Вы писали:
VK>>Зато в JVM есть escape-анализ который может определить нужно ли создалвать объект в куче или в стеке. S>Который по умолчанию выключен и который на x86_64 в купе с другими опциями для тюнинга иногда роняет JVM.
дополнение: ескейп анализ это вроде, как только в Sun/Oracle JVM, ну и возможно ещё в IBM JVM, а в OpenJDK его нет.
Предлагаете привязаться к определённому вендору JVM?)
Здравствуйте, -VladK-, Вы писали:
VK>Linq — тормознутая хрень и нужна разве что для мелких десктопных проектов. В enterprise-приложениях а это основной профиль Java, такие вещи просто не нужны.
S>> возможность работы с указателями, возможность работы с нативным кодом и т.д. и т.п.
VK>Опять повторюсь — для enterprise-приложений это все ненужно абсолютно. Дешевле поставить еще пару серверов чем пытаться оптимизировать еще 10% играясь с указателями.
Взаимоисключающие параграфы детектед. LINQ — тормознутая хрень, поэтому не нужен. Работа с указателями не нужна — потому что добавим сервера.
А для LINQ'а сервера добавлять не комильфо?
Здравствуйте, sysenter, Вы писали:
S>Который по умолчанию выключен и который на x86_64 в купе с другими опциями для тюнинга иногда роняет JVM. S>В Java во первых нужно включить escape анализ через -XX:-DoEscapeAnalysis (а эта опция из разряда опасных), потом наполнить коллекцию классами над которыми произойдёт boxing и только потом через 10000 для -client и 1500 для -server обращений к этому участку кода, код будет обработан JIT который накопит статистику для выполнения оптимизаций кода включая escape оптимизацию.
Мужики, вы взаправду всё это одновременное гамно в голове держите, или тупо для этой дискуссии штудировали?
Здравствуйте, sysenter, Вы писали:
S>Здравствуйте, -VladK-, Вы писали:
VK>>Зато в JVM есть escape-анализ который может определить нужно ли создалвать объект в куче или в стеке.
S>Который по умолчанию выключен и который на x86_64 в купе с другими опциями для тюнинга иногда роняет JVM.
Все нормально работает в последних версиях.
VK>>Linq — тормознутая хрень и нужна разве что для мелких десктопных проектов. В enterprise-приложениях а это основной профиль Java, такие вещи просто не нужны.
S>Если этого нет в Java значит это тормознутая хрень которая не нужна. Окей, понял)
Не критична для определенного круга приложений.
S>>>Методы расширения очень интересная вещь, возможность работы с указателями, возможность работы с нативным кодом и т.д. и т.п. S>>>В Java этого или нет или сделано через ж...
VK>>Опять повторюсь — для enterprise-приложений это все ненужно абсолютно. Дешевле поставить еще пару серверов чем пытаться оптимизировать еще 10% играясь с указателями.
S>Вы делаете мне смешно))
Рад приносить людям радость.
VK>>Вот не помню когда мне нужно было хоть раз иметь коллекцию примитивов.
S>Ещё раз повторяю, в C# структура есть тип значение размещаемое на стеке и я могу без boxing/unboxing наполнить коллекцию структурами. S>В Java во первых нужно включить escape анализ через -XX:-DoEscapeAnalysis (а эта опция из разряда опасных), потом наполнить коллекцию классами над которыми произойдёт boxing и только потом через 10000 для -client и 1500 для -server обращений к этому участку кода, код будет обработан JIT который накопит статистику для выполнения оптимизаций кода включая escape оптимизацию.
Вы что пытаетесь мне доказать — что .Net в определенных местах лучше ? Так я с этим и не спорю. Я сам так считаю. Неудивительно для технологиии которая появилась позже и должна была учесть все недостатки того конкурентом чему она призвана быть.
Вы упорно указываете на вещи которые для определенного круга задач с точки зрения бизнеса не важны. А именно бизнес и рынок выбирает технологию.
Здравствуйте, sysenter, Вы писали:
S>Здравствуйте, sysenter, Вы писали:
VK>>>Зато в JVM есть escape-анализ который может определить нужно ли создалвать объект в куче или в стеке. S>>Который по умолчанию выключен и который на x86_64 в купе с другими опциями для тюнинга иногда роняет JVM.
S>дополнение: ескейп анализ это вроде, как только в Sun/Oracle JVM, ну и возможно ещё в IBM JVM, а в OpenJDK его нет. S>Предлагаете привязаться к определённому вендору JVM?)
Найдите мне хоть одно приложение для которого наличие этой фичи критично.
И еще — вы много знаете на рынке продуктов продуктов которым важно работать на не Sun/Oracle JVM ?
Здравствуйте, -VladK-, Вы писали:
VK>Вы что пытаетесь мне доказать — что .Net в определенных местах лучше ? Так я с этим и не спорю. Я сам так считаю. Неудивительно для технологиии которая появилась позже и должна была учесть все недостатки того конкурентом чему она призвана быть.
Что печально, она (.NET) учла ровно два недостатка (структуры и генерики) своего прототипа (Java), зато наплодила своих собственных.
Здравствуйте, -VladK-, Вы писали:
VK>Дело не в вере а в том что да .Net более развита с академической точки зрения но на практике для enterprise-приложений Java платформа будет лучше. И да, пресловутая независимость от ОСи все же играет огромную роль
Независимость от ОС, независимосьть от БД, независимость от... Это вообще на практике востребовано? Можно примеры какие-то?
Здравствуйте, xRAZORx, Вы писали:
RAZ>Посматриваю сейчас рынок работ, так вот, к примеру, в Калифорнии катастрофически нужны джависты.
Не знаю, где ты смотришь... Я почему-то вижу сплошь ruby, js, и прочие ObjC, а то и, прости господи, похапе. Дада, стартапы они такие.
Почему именно они?
Много старого копролита лопатить, не? Жабка — это же своеобразный Кобол 21 века.
RAZ>Типа там столько старых продуктов и нифига нет новых?
Насколько крайне субъективно видно мне — новых продуктов хватает, но стартуются они как правило небольшими командами. Толпы — поддерживают столпы легаси.
С>Шарп — платформо-зависисмый и к тому же MS зависимый. Чего не скажешь о джаве.
Бредятина. Шарп с некоторых пор более портабельный, и менее вендорозависимый, нежели жаба! О подаче спецификаций в ECMA MS-ом, и сопутствующем отказе от будущих патентных притязаний, на фоне разборок Оракла, ничего не слышал? А о разрыве шарпом жабы на британский флаг на практических задачах? А о том, что любая мало мальски сложная практическая задача не обходится без большой коллекцию маленьких сущностей? Равно как и о том, что стракты справляются с таким раскладом куда лучше тупых объектов на все случаи жизни? О JNI и PInvoke, лямбдах, замыканиях, свойствах, дженериках поговорим? Если для тебя все это пустой звук, то ты получается ничего кроме низкопробных CRUD-ORM-Вебморд и не делал. Давай еще поговорим о жабобайткоде, автоконвертированном(!!!!!) в сборку дотнет, запущенном на моно, и уделывающем оригинал и по скорости исполнения, и по расходу памяти? Или же об отсутствии жабки на iOS, и наличии замечательного Xamarin с кучей первоклассных продуктов, на нем написанных.
И да, серьезные проекты на моно есть, как бы кого не коробил этот факт.
I>И да, серьезные проекты на моно есть, как бы кого не коробил этот факт.
Жабка, конечно, по массовости вне конкуренции, и еще долго таковой будет. Слишком много денег вбухали в решения на ней, и никто в здравом уме от них отказываться не будет. Это одновременно и плохо (болото) и хорошо (маленький толковый стартап может обойти толпу "доителей изнуренных жаб").
Здравствуйте, iiice, Вы писали:
С>>Шарп — платформо-зависисмый и к тому же MS зависимый. Чего не скажешь о джаве.
I>Бредятина. Шарп с некоторых пор более портабельный, и менее вендорозависимый, нежели жаба!
Портабельный, если изначально писать на моно, а это нафиг никому не сдалось.
I>И да, серьезные проекты на моно есть, как бы кого не коробил этот факт.
Назовите их? Пинту, томбой и баньши не предлагать.
Или хотя бы компании, которые используют моно.
I>>И да, серьезные проекты на моно есть, как бы кого не коробил этот факт.
RAZ>Да и на маке удобней програмить на java, т.к. ide везде одинаковые для нее, а монодевелоп какой-то не очень.
Это, кстати, да. Студия есть только под вин, и то она без решарпера сильно уступает жабовским IDE. А жабовские прекрасно идут под чем угодно.
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
Здравствуйте, iiice, Вы писали:
С>>Шарп — платформо-зависисмый и к тому же MS зависимый. Чего не скажешь о джаве.
I>Бредятина. Шарп с некоторых пор более портабельный, и менее вендорозависимый, нежели жаба! ... А о разрыве шарпом жабы на британский флаг на практических задачах? I>И да, серьезные проекты на моно есть, как бы кого не коробил этот факт.
Мы очень рады по поводу того, что в Вашей Вселенной все так хорошо.
В нашей вселенной Java-сервера крутятся на линуксовых серверах. Которые, в свою очередь: 1) дешевле; 2) проще админить.
Ну а еще в нашей Вселенной мы лучше заюзаем библиотеку, побыстрее выпустим продукт, а вот дальше, если надо, то займемся оптимизацией. Без структур и дженериков с примитивными типами, ну да мы привычные — там Trove используем, тут еще что-нибудь...
Здравствуйте, Yoriсk, Вы писали:
Y>Независимость от ОС, независимосьть от БД, независимость от... Это вообще на практике востребовано? Можно примеры какие-то?
Ну я вот делаю коробочный продукт на Java. Сервер. Некоторые хотят ставить сервер на виндовые машины, некоторые на юниксы, а некоторые, о ужас, на маки. До этого был тоже один ого го какой проект — один заказчик требовал, чтоб база была Oracle, другой требовал чтоб MS SQL. И еще как то было дело — изначально в качестве СУБД использовался PostgreSQL, затем появилось требование, что нет, обязательно нужен MySQL, ибо хостинг PostgreSQL не поддерживает, без малейших проблем перешли на него менее, чем за день.
Здравствуйте, elmal, Вы писали:
Y>>Независимость от ОС, независимосьть от БД, независимость от... Это вообще на практике востребовано? Можно примеры какие-то? E>Ну я вот делаю коробочный продукт на Java.
Разговор был немного не об этом.
E>До этого был тоже один ого го какой проект — один заказчик требовал, чтоб база была Oracle, другой требовал чтоб MS SQL. И еще как то было дело — изначально в качестве СУБД использовался PostgreSQL, затем появилось требование, что нет, обязательно нужен MySQL, ибо хостинг PostgreSQL не поддерживает, без малейших проблем перешли на него менее, чем за день.
Вот прямо за один день? Ничего сложнее "select * from table" не исспользовали? Тоже пример немного не из той оперы.
Здравствуйте, Yoriсk, Вы писали:
Y>Вот прямо за один день? Ничего сложнее "select * from table" не исспользовали? Тоже пример немного не из той оперы.
База таблиц так на 100 (весьма денормализованная, при нормализации все 500 были б). И селект, и update, и инсерт, и отчеты — продукт по сложности как 1С. Учитывая, что базу конвертить не надо было, а в коде вместо SQL использовался HQL (или даже JPQL кажется, все время забываю как называется а гуглить лень) — никаких проблем не было. Те данные, которые обязаны быть в базе при старте — создавались из кода при первой загрузке. Хранимых процедур никаких не было, как там админы бекапы будут делать базы — тоже не наша забота, так что независимость от базы полнейшая.
Нахрена использовать навороты и особенности БД, если это черти как осложняет поддержку и развитие проекта, а также затрудняет масштабирование — не очень понятно.
Здравствуйте, elmal, Вы писали:
E>Нахрена использовать навороты и особенности БД, если это черти как осложняет поддержку и развитие проекта, а также затрудняет масштабирование — не очень понятно.
Выделеное много объясняет.
В вашем случае ИМХО можно сделать и следующий шаг и спросить "нахрена использовать БД", но это подходит далеко не для всех продуктов.