LINUX.ORG.RU

Моно опережает Java на Linux Desktop


0

0

Моно(технология основанная на стандартах разработанных Майкрософт)стала более популярной на рабочих местах c Linux.

Такие приложения как Bansee, Tomboy, GNOME Do стали популярны среди пользователей Линукс за последние 2-3 года.

«Моно, безусловно, более популярно на десктопе, чем Java. За поледние 3-4 года использования Линукс-десктопа, как основного я пользовался единичными Java приложениями» - говорит Stephen O’Grady, аналитик из RedMonk. «Мы видим настоящий рывок в разработке Моно приложений для Линукс» сказал он.

Проблемы с лицензированием Java для Линукс, дали Моно преимущество в несколько лет и возможность закрепиться да десктопе.

С ним не согласен Ian Murdock вицепрезидент по развивающимся технологиям в Sun Microsystems. Хотя он и не смог привести популярных приложений для Линукс десктопа, но считает что ещё рано говорить о том, что Моно обогнало Java. «Я редко пользуюсь моно приложениями» сказал он и добавил, что моно приложения малопопулярны за пределами Линукс сообщества.

В опросе проведённом SDTimes среди разработчиков, практически все согласились с тем, что Моно является более популярной технологией для Линукс десктопа чем Java.

Моно опережает Java на Linux Desktop(google translate)

>>> Mono outpaces Java in Linux desktop development

★★☆☆

Проверено: hibou ()

Ответ на: комментарий от yk4ever

> Эммм... какая связь между "запускают" и "пишут"? :D

Катаюсь от смеха. Таки моноиды точно забывают, зачем они все это пишут.

rmammoth
()
Ответ на: комментарий от yk4ever

> [зевает] мой код работает в цикле на 50 млн итераций. Правда, там и другого кода много, и боттлнек там, есесно, в саааавсем другом месте.

Не зевай, ворона залетит. Над чем, кстати работаешь? Чтоб ненароком, если что, не влепить себе на комп сие поделие.

> Именно. Дядько Кнут что говорил про предварительную оптимизацию? Когда проблема возникнет, берёте профайлер - и ищете проблему. Проблемы не возникло - и НЕХРЕН портить красивый код всякими заковырками.

Если это красивый код... Жаль мне вас, моноидов.

> Это полная хня и старпёрское нытьё. Куда более знакомая картина - это когда какой-то дятел делает в цикле попарное сравнение длинных массивов, запросы к базе без индексов и без кэширования, итеративную конкатенацию - ВОТ ЭТО ДА, вот это действительно интересно, потому что там не "секунды" тормозов получаются, а часы и сутки. Эт самое, надо решать реальные проблемы, а не в мелочах копошиться.

Да ну? А что, сей дятел не может сказать, как и ты: "это у меня красивый код, меня он не напрягает, я его часто читаю, тем более, это типичная задача. А ваше кеширование -- это все лишнее, для старперов. Поднимайте частотку проца, и будет вам щастье" :)))

rmammoth
()
Ответ на: комментарий от yk4ever

> > Затем пропишем собственно сравнивание классов по элементам данных (кстати, а вот в шарпе с женериками такое не проканает): [пожимая плечами] зачем, если есть более удобный способ? Но, при желании, можно сделать через рефлекшн. [пожимая плечами] если профилирование покажет, что JIT не сумел это заоптимизировать - я мог бы определить не SortKey, а Comparer, и обошёлся бы без виртуальных вызовов и замыканий. Кстати, в чём проблема с замыканиями - мне неочевидно :] Ну и, я пользуюсь не моно, а дотнетом. Ещё чего не хватало, недоделки в продакшн тащить :]

Плечики не заболели? Кстати, обращаю твое внимание на ма-а-а-ленький нюанс: если тебе аналогичным образом понадобится отсортировать список с другими структурами (у которых другие поля других типов), на шарпе придется писать еще один аналогичный кусок кода. В плюсовом варианте достаточно поюзать уже готовый Comparer. Соответственно, код не распухает, время на разработку не увеличивается. Так как там выходит с продуктивностью девелопера в таком случае?

rmammoth
()
Ответ на: комментарий от sv75

> Офигеть пиар: на моно сделано три поделия, но судя по тексту, это главная платформа разработки линукс-десктопа!

+много

FENix
()

Подводя промужуточный итог:
Из десктоп приложений на Java были названы Azureus+клоны и Guitar.
Хотя пользователи Azureus и написали что используют его под Windows.

Итого:
2 приложения, что меньше даже перечисленного в новости, зде не были упомянуты популярные F-Spot, Beagle, Paint.Net

ps
Для тех, что не понял смысла прочитанного в новости и предыдущих 8 страниц обсуждения, напомню, что речь идёт о дестпо приложениях а не средствах разработки и администрирования. Я лично как Java программист с 12летним стажем, пользовался и пользуюсь десятками СПЕЦИАЛИЗИРОВАННЫХ приложения на Java, которые не являются приложениями для обычного пользователя.

grim ★★☆☆
() автор топика
Ответ на: комментарий от FENix

> Офигеть пиар: на моно сделано три поделия, но судя по тексту, это главная платформа разработки линукс-десктопа!

>+много

Я сомнеаюсь, что людей, не понимающих смысла прочитанного много. Пока насчитал меньше 10 стадальцев, отметившихся в обсуждении.

grim ★★☆☆
() автор топика
Ответ на: комментарий от grim

Ну у меня скажем не стоит ни F-Spot, Beagle, Paint.Net зато стоит JabRef, такая приблуда для BibTeX если не в курсе. Да и про всякие фри-,гну- и прочие даркнеты не забываем

DNA_Seq ★★☆☆☆
()
Ответ на: комментарий от grim

Я думаю так. Пока что и на Java и на Mono написано слишком мало десктопных приложений. Выборка нерепрезентативна, чтобы делать выводы. Но есть тренд в пользу Mono. Посмотрим, что покажет время.

P.S. лоровцам. Ну, причем здесь C++?! Прикладной и системный софт пишутся по-разному. Задолбал(и) уже :)

dave ★★★★★
()
Ответ на: комментарий от dave

>Ну, причем здесь C++?!

А что, на си с крестами мало прикладного софта? =) Можно еще Питон рассмотреть, Руби всякие.. Поцкаль как вариант. На Паскале например ФрутиЛупс написан, культовая программа в определенных кругах

DNA_Seq ★★☆☆☆
()
Ответ на: комментарий от yk4ever

> Ну и, я пользуюсь не моно, а дотнетом. Ещё чего не хватало, недоделки в продакшн тащить :]

Странно... вторая фраза вроде о венде... :)

Orlusha ★★★★
()
Ответ на: комментарий от yk4ever

> Странная задача, никогда такой не возникало. Но у меня есть пара вариантов: s = s.Replace("_", "s"); StringBuilder sb = new StringBuilder(s); sb[11] = 's'; s = sb.ToString();

Отлично, слив засчитан. Теперь такая ситуация, вполне, кстати, жизненная: есть очередь неких состояний, нужно, чтобы в нее попадали изменения в состоянии чего-нибудь. Код на плюсах:

std::queue<int> states;

void trackChanges(int n) { if(states.back() != n) states.push(n); }

Вариант на шарпе в студию, плиз.

rmammoth
()
Ответ на: комментарий от rmammoth

> void trackChanges(int n) { if(states.back() != n) states.push(n); }

Пардон, правильнее так:

void trackChanges(int n) { if(states.empty() || states.back() != n) states.push(n); }

Впрочем, сути вопроса это не меняет.

rmammoth
()
Ответ на: комментарий от rmammoth

>Впрочем, сути вопроса это не меняет.

Вы сча про плюсы или про библиотеки говорите?

Потому что вот этиа строка: void trackChanges(int n) { if(states.empty() || states.back() != n) states.push(n); }

компилиться в плюсах, шарпе и жабе.

r ★★★★★
()
Ответ на: комментарий от grim

>Из десктоп приложений на Java были названы Azureus+клоны и Guitar.

Не, ты слепой, шопесец!

JEdit, GanttProject, mCommander, JBuddy, FreeMind, SweetHome3D, javadjvu, SDM, toonel, zipcreator, PullFace, PerfectImage, Java Image Editor, ImageJ, RSSOwl.

Остальное: http://java.sun.com/products/jfc/tsc/sightings/index.html

>2 приложения, что меньше даже перечисленного в новости, зде не были упомянуты популярные F-Spot, Beagle, Paint.Net.


Арифметика обошла тебя стороной, да.

iZEN ★★★★★
()
Ответ на: комментарий от r

>Подключаешь репозитарий пакман из опенсусе и находишь там сотню десктопных приложений на жабе,

> uname -rsm

FreeBSD 7.2-STABLE amd64
> grep "JAVA_VERSION" -r /usr/ports/ | grep Makefile | wc -l

422

iZEN ★★★★★
()
Ответ на: комментарий от r

> Вы сча про плюсы или про библиотеки говорите?

Согласен, замечание в тему. Заметьте, используется СТАНДАРТНАЯ библиотека шаблонов. То, что в дотнет/моно включено в фреймворк, здесь реализовано, как внешняя библиотека. Это плохо? Не думаю. Просто разный подход. ИМХО, в случае С++ более правильный. Попробуйте-ка на шарпе сваять свой вариант string, равноценный по эффективности встроенному. Согласен, занятие несколько сомнительное в плане нужности, но для примера сойдет. Как вариант -- попробуйте написать прошитый двунаправленный циклический список на том же шарпе. Сделать можно, но по эффективности он никогда не догонит встроенный в фреймворк...

rmammoth
()
Ответ на: комментарий от rmammoth

>Попробуйте-ка на шарпе сваять свой вариант string, равноценный по эффективности встроенному.

На жабе в классе стринг наличествует только 1 нативный метод - intern. То есть с тьчностью до хаков компилятора и vm аналогичній класс как 2 пальца.

> Как вариант -- попробуйте написать прошитый двунаправленный циклический список на том же шарпе. Сделать можно, но по эффективности он никогда не догонит встроенный в фреймворк...


Да с чего это он не догонит? Там что - не обычный класс?

Единственная вещь которуб нельзя достичь библиотекой - это конкретное рапознавание класса компилятором и вмом и связанные с этим конкретные оптимизации.

r ★★★★★
()
Ответ на: комментарий от grim

>пользовался и пользуюсь десятками СПЕЦИАЛИЗИРОВАННЫХ приложения на Java, которые не являются приложениями для обычного пользователя.

Похуй специализированные или нет. Десктопные - это те которые имеют графический оконный интерфейс.

jhgjhgj
()
Ответ на: комментарий от r

>Единственная вещь которуб нельзя достичь библиотекой - это конкретное рапознавание класса компилятором и вмом и связанные с этим конкретные оптимизации.

аннотации? ;)

thevery ★★★★
()
Ответ на: комментарий от thevery

>аннотации? ;)

Это другая тема. Конкретные аннотации, реализации специнтерфейсов типа сериализамельности или итерабельности - это все штатные штуки.

А вот трансформация String s = a + b + c в стрингбилдер или интернирование стринговых литералов - это уже фишки которые привязаны к конкретному классу - тут уж ничем не поможешь не генерализуя оптимизацию в интерфейс,аннотацию, etc.

r ★★★★★
()
Ответ на: комментарий от iZEN

> Иди, посмотри: http://java.sun.com/products/jfc/tsc/sightings/index.html

Они все десктопные? Что-то слишком много ;)

Видел FreeMind. Его гуй - убожество. Так мучать пользователей нельзя...

Запускал SmartCVS под линуксом на Убунте. Шрифты ужасны. Кстати, не совсем десктоп. Это - средство разработки, которых на яве действительно много.

В общем, большой список. Почти все незнакомо. За редким исключением.

dave ★★★★★
()
Ответ на: комментарий от rmammoth

> Таки моноиды точно забывают, зачем они все это пишут.

Не, ну я сказал что код чаще читают, чем пишут. Чувак сказал "а у меня чаще запускают, чем читают". Где противоречие?

yk4ever
()
Ответ на: комментарий от rmammoth

> Над чем, кстати работаешь? Чтоб ненароком, если что, не влепить себе на комп сие поделие.

Не влепите. Это внутренний проект. Но, поверьте, мой код там работает отлично :] Потому что я знаю в каких местах надо оптимизировать.

> А что, сей дятел не может сказать, как и ты: "это у меня красивый код, меня он не напрягает,

Нет, конечно. Потому что РЕАЛЬНОЕ падение скорости всегда важнее, чем личные заморочки программиста. Вот я и предлагаю вам искать РЕАЛЬНЫЕ проблемы, а не заморачиваться с экономией на спичках.

yk4ever
()
Ответ на: комментарий от rmammoth

> Кстати, обращаю твое внимание на ма-а-а-ленький нюанс: если тебе аналогичным образом понадобится отсортировать список с другими структурами (у которых другие поля других типов), на шарпе придется писать еще один аналогичный кусок кода.

Какой? Ещё один однострочечный делегат item => item.Field? Всё остальное-то, если вы не заметили, универсальное.

Бугога, короче. Бывает, люди туго соображают по выходным. Вы, видно, из таких. Воздержитесь от постинга :]

yk4ever
()
Ответ на: комментарий от dave

> P.S. лоровцам. Ну, причем здесь C++?! Прикладной и системный софт пишутся по-разному. Задолбал(и) уже :)

Ну это синдром "пенсионера на лавочке". Вот дескать молодёжь нынче пошла, память вручную чистить не хотят, садо-мазо типизацию не признают, указателями стрелять себе в ногу не умеют... а уж мы-то в советские времена, ооо!..

yk4ever
()
Ответ на: комментарий от rmammoth

> Теперь такая ситуация, вполне, кстати, жизненная: есть очередь неких состояний, нужно, чтобы в нее попадали изменения в состоянии чего-нибудь. Код на плюсах: 

Код на шарпах:

Queue<int> states;

void trackChanges(int n) { if(states.Count==0 || states.Last != n) states.Enqueue(n); } 

Вас чо, в MSDN забанили, вы так тупите-то, м?

yk4ever
()
Ответ на: комментарий от DNA_Seq

Я не претендую на абсолютную истину, но с некоторй погрешностью я считаю я отразил картину на десктопе.

grim ★★☆☆
() автор топика
Ответ на: комментарий от r

>Подключаешь репозитарий пакман из опенсусе и находишь там сотню десктопных приложений на жабе,
Сао собой.
Я не говорю, что их не существет в природе.
Я говорю, что ими никто не пользуется(0.01% - это в пределах погрешности)

grim ★★☆☆
() автор топика

А не vsl ли Robotron? Слово гидроцефал вроде только Виталик употреблял, не?


>И что с того?! Производительность ещё меньше становится т.к. имеет место оверхед. У 32 битной JVM начиная с версии 1.6 update 14 появились опции -XX:+TieredCompilation -XX:+DoEscapeAnalysis позволяющие запускать JVM с клиентским JIT и в процессе работы в фоне код перекомпилить с помощью серверного JIT. И как следствие приложения стартуют быстро и в процессе работы начинают использовать все доступные оптимизации кода. Так же с версии JVM 1.6 update 14 опция -XX:+AggressiveOpts имеет существенное влияние на производительность карту treemap. Добавь сюда ещё и -Xshare:on и станет понятно, что JVM 32-bit затачивают именно на десктоп.

Ок, подытожу, теперь 32-bit жаба приложения мы можем запускать с ключами

-XX:+TieredCompilation
-XX:+DoEscapeAnalysis
-XX:+AggressiveOpts
-Xshare:on

Кто больше?

Karapuz ★★★★★
()
Ответ на: комментарий от Karapuz

>А не vsl ли Robotron? Слово гидроцефал вроде только Виталик употреблял, не?

Кто такой vsl я не знаю, но тот факт что тебя уже называли гидроцефалом говорит только о том, что ты и есть гидроцефал.

>Ок, подытожу, теперь 32-bit жаба приложения мы можем запускать с ключами >-XX:+TieredCompilation >-XX:+DoEscapeAnalysis >-XX:+AggressiveOpts >-Xshare:on >Кто больше?

Специально для тебя, гидроцефала, подскажу ещё ключ -XX:CompileThreshold=...

Помимо этого ключа есть у JVM других производителей свои ключи оптимизации, у IBM например есть ключ использования AOT компилятора, ключ использования разделяемого кода и прочее.

Robotron
()
Ответ на: комментарий от grim

>Из десктоп приложений на Java были названы Azureus+клоны и Guitar.

Перечитай внимательно топег. Как минимум я пользуюсь двумя rss читалками, RSSOwl & Blogbridge 6.6.1, из конкурентов им можно назвать только Omea Pro 2.2, но она увы, только под .NET, на Mono ее так и не могут портировать, хотя исходники свободно лежат

Karapuz ★★★★★
()
Ответ на: комментарий от Robotron

>Специально для тебя, гидроцефала, подскажу ещё ключ -XX:CompileThreshold=...

Я этот ключ давно знал, но читал, что смысл ставить -XX:CompileThreshold=100 есть лишь для короткоживущих микробенчмарков или скриптов

Karapuz ★★★★★
()
Ответ на: комментарий от Karapuz

>Я этот ключ давно знал, но читал, что смысл ставить -XX:CompileThreshold=100 есть лишь для короткоживущих микробенчмарков или скриптов

Этот ключ теперь тебе известен, но смысла его использования ты ещё не осознал.

Robotron
()

Вот еще нашел -XX:+UseFastAccessorMethods не знаю, что он делает, но очевидно из названия ускоряет методы getValue ;-D

Karapuz ★★★★★
()
Ответ на: комментарий от r

А что ,непонятно очевидное ,что:
1. sun java - это non-free и не включена в дефолте в большинстве дистров для десктопов. Cоотвественно, базовый набор приложений десктопов не содержит приложений на java и какими бы хорошими они там не были.

2. mono soft под GPL2 и может включатся в базовый набор приложений десктопа.

3. В Linux так и нет лоббиста java soft для десктопа,
mono soft же активно продвигает Nowell на дистрах SuSE.
------------------------------

Так ,что "Моно опережает Java на Linux Desktop" - если ,это и не очевидно сейчас "неверующим" - так будет вполне очевидно завтра.

elipse ★★★
()
Ответ на: комментарий от Karapuz

>Вот еще нашел -XX:+UseFastAccessorMethods не знаю, что он делает, но очевидно из названия ускоряет методы getValue ;-D

Млять, у этого ключа значение true по умолчанию, он включен изначально у JVM 6. Или ты ставишь целью привести вообще все ключи которые есть у JVM?

Robotron
()
Ответ на: комментарий от elipse

>2. mono soft под GPL2 и может включатся в базовый набор приложений десктопа

Половина mono soft под GPL2 и такая половина нахеръ не нужна большинству пользователей десктопа

А Java just FYI софт под GPL2

Karapuz ★★★★★
()
Ответ на: комментарий от elipse

>В Linux так и нет лоббиста java soft для десктопа,

Red Hat — разработчик JBoss. Oracle — разработчик софта BEA для Oracle DB. IBM разрабатывает УэбСферу и Lotus.

iZEN ★★★★★
()
Ответ на: комментарий от iZEN

Ну это уже клиника какая-то -таландонить можно все , что угодно.
Red Hat - не для десктопа все это лепит , это только корпоративные "игры".

Что из жабы ставит Fedora на desktop ? ась ?

elipse ★★★
()
Ответ на: комментарий от elipse

>3. В Linux так и нет лоббиста java soft для десктопа, mono soft же активно продвигает Nowell на дистрах SuSE.

Это потому что в самом Linux нет лоббиста "Linux для десктопа", Linux нужен только как пускалка Oracle+AS stack, никто его как замену или альтернативу Windows не рассматривает. Вот как только появятся лоббисты, собирающие дистры для десктопа, им сразу понадобятся кроссплатформенные приложения а-ля Qnext

Karapuz ★★★★★
()
Ответ на: комментарий от Karapuz

> Linux нужен только как пускалка Oracle+AS stack, никто его как замену или альтернативу Windows не рассматривает.
И именно благодоря таким мантрам и мухам - java имеет сильные шансы на "вылет" с десктопа.

elipse ★★★
()
Ответ на: комментарий от elipse

>Ну это уже клиника какая-то -таландонить можно все , что угодно.

Для rich-платформы, коей является Eclipse RCP (Java+jni-прослойка SWT), трудно представить нативную альтернативу из чего-то ещё в стратегическом плане IBM.

Oracle без JDeveloper (в своё время среда разработки JBuilder была куплена у Borland), хоть и является полунативной, но тоже требует "десктопной" версии Java.

iZEN ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.