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 ()

Ответ на: Re: Моно опережает Java на Linux Desktop от rmammoth

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

> Однако, чтобы отделить кусок строки до пробела, бить ее на куски всю -- это уметь надо!

Если это требует меньше кода и не критично по производительности - почему бы и нет?

yk4ever ()

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

> Вот ещё задачка для храброго пыонэра. Жду решений на крестах (и жабо). Для тех, кто успел-таки прочесть

Лень тыкать кнопки, но через указатели на члены структуры вполне можно сделать аналогично, и без дурацкого применения делегатов. Switch в данном случае вполне хватит сделать по первому символу строки. Короче будет!

rmammoth ()
Ответ на: Re: Моно опережает Java на Linux Desktop от yk4ever

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

> Странная задача, никогда такой не возникало. Но у меня есть пара вариантов:

> s = s.Replace("_", "s");

Не, родной, не все подчерки!

> StringBuilder sb = new StringBuilder(s); sb[11] = 's'; s = sb.ToString();

Насколько ж короче и понятней получилось!

rmammoth ()
Ответ на: Re: Моно опережает Java на Linux Desktop от yk4ever

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

> Если это требует меньше кода и не критично по производительности - почему бы и нет?

Да не вопрос, можно ухо пяткой чесать. Всё можно. Вопрос -- зачем?

Ви, кстати, в разработке Висты не участвовали? Очень на то похоже :)

rmammoth ()
Ответ на: Re: Моно опережает Java на Linux Desktop от iZEN

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

> А давайте вы назовёте приложения на Mono.NET, похожие на эти:
> http://java.sun.com/products/jfc/tsc/sightings/index.html

> Хочется чисто поржать.


Уже оборжался. Там на over 99.9999% скринов виндовые обрамления окон :-)

no-dashi ★★★★★ ()
Ответ на: Re: Моно опережает Java на Linux Desktop от rmammoth

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

> Лень тыкать кнопки, но через указатели на члены структуры вполне можно сделать аналогично, и без дурацкого применения делегатов.

Продемонстрируйте. Мне-то было не лень писать. А потом сравним размерчики, ога.

> Switch в данном случае вполне хватит сделать по первому символу строки. Короче будет!

А понятнее ли?

yk4ever ()
Ответ на: Re: Моно опережает Java на Linux Desktop от rmammoth

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

> Вопрос -- зачем?

Код должен быть 1) коротким 2) понятным 3) достаточно производительным. Экономить наносекунды на спичках - дебилизм и растрата рабочего времени.

yk4ever ()
Ответ на: Re: Моно опережает Java на Linux Desktop от rmammoth

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

> Не, родной, не все подчерки!

Зато эта задача типичнее :] Замена плэйсхолдеров - в стопиццот раз более применяемое действие, чем замена символа по индексу.

> Насколько ж короче и понятней получилось!

За что и люблю хорошие языки. Разумные вещи на них выглядят разумно, а дурь - дурью.

yk4ever ()
Ответ на: Re: Моно опережает Java на Linux Desktop от rmammoth

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

> Хм. А запости, плиз, еще раз свой варинт -- пропала часть постов.

Внизу кнопка "показать удалённые" спасает. Ну да ладно.

class MyStruct {
    long ID;
    double Foo;
    string Bar;
}


delegate IComparable SortKey<T>(T Item);
...
{
...    
    List<MyStruct> data = GetRecordsFromStorage();
    string sort = ReadSortDirectionFromClient();

    SortKey key = item => item.ID;
    switch (sort) {
        case "foo":
            key = item => item.Foo;
            break;
        case "bar":
            key = item => item.Bar;
            break; 
    }

    data.Sort((x,y) => key(x).CompareTo(key(y)));
}

yk4ever ()
Ответ на: Re: Моно опережает Java на Linux Desktop от yk4ever

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

> Код должен быть 1) коротким 2) понятным 3) достаточно производительным. Экономить наносекунды на спичках - дебилизм и растрата рабочего времени.

Не думаю, что я плюсовый вариант дольше чем ты свой писал, умник. Но пример твоего кода я с ребятами обсужу, поржем.

rmammoth ()

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

полный пинцет! Можно подумать что баньши или томбой были бы менее популярны, если бы их написали на си.

Lennier ★★★★ ()
Ответ на: Re: Моно опережает Java на Linux Desktop от rmammoth

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

> Не думаю, что я плюсовый вариант дольше чем ты свой писал, умник.

Спасибо за умника. Вопрос тут не в том, "сколько писал", а сколько его потом читать будут. Код эта, его чаще читают, чем пишут, если кто не в курсе.

yk4ever ()
Ответ на: Re: Моно опережает Java на Linux Desktop от black7

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

>>А чем вам лицензия на моно не нравится?

>слушай, ты бы не позорился, почитал историю некрософта, о том какими грязными методами он "мочил" конкурентов. почитай, почитай, может тогда твоя любовь к балмеру исчезнет


Вы на вопрос ответьте.
Какие у вас претензии к лицензии Mono?

Пока кроме потока расширенного сознания ничего не написали.

grim ★★★☆ ()
Ответ на: Re: Моно опережает Java на Linux Desktop от Lennier

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

> полный пинцет! Можно подумать что баньши или томбой были бы менее популярны, если бы их написали на си.

В идеале, конечно, если всё написать на низкоуровневом языке, да без ошибок - было бы круто. Другое дело, что время и мозги разработчика - ресурс дорогой. И если их можно сэкономить - на них экономят.

Кстати, такую шнягу, как томбой, вообще лучче на питоне писать. Всё меньше ресурсев.

yk4ever ()
Ответ на: Re: Моно опережает Java на Linux Desktop от yk4ever

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

> Спасибо за умника.

Заходите еще

> Вопрос тут не в том, "сколько писал", а сколько его потом читать будут. Код эта, его чаще читают, чем пишут, если кто не в курсе.

Блиин... Если тебе сложно понять, что делает find_first_of() и substr(), то я тебе не завидую

rmammoth ()
Ответ на: Re: Моно опережает Java на Linux Desktop от Lennier

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

> полный пинцет! Можно подумать что баньши или томбой были бы менее популярны, если бы их написали на си.

так вот , прикол в том ,что публике пишущей на с и с++ влом такое писать и придумывать . Но , когда это уже написали на С# и уже работает - они начинают вылазить из щелей, и начанают умничать и советовать:
Как лучше бы по-гемморней писать бесплатные программы.

elipse ★★★ ()
Ответ на: Re: Моно опережает Java на Linux Desktop от rmammoth

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

> Блиин... Если тебе сложно понять, что делает find_first_of() и substr(), то я тебе не завидую

А если бы я вёз патроны?

string[] parts = s.split(' '); string param1 = parts[0]; double param2 = double.Parse(parts[2]);

Наскока помню, STL так не умеет в принципе. Там надо с циклом возицо.

yk4ever ()
Ответ на: Re: Моно опережает Java на Linux Desktop от yk4ever

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

>Наскока помню, STL так не умеет в принципе. Там надо с циклом возицо.

STL не умеет. Boost умеет и не такое.

rmammoth ()
Ответ на: Re: Моно опережает Java на Linux Desktop от rmammoth

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

> STL не умеет. Boost умеет и не такое.

А у нас брожениев умов нет, бублиотеки стандартные одни на всех. Лепота!

yk4ever ()
Ответ на: Re: Моно опережает Java на Linux Desktop от no-dashi

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

>Уже оборжался. Там на over 99.9999% скринов виндовые обрамления окон :-)

Дай угадаю. Потому что десктопов под Linux меньше 1%? :))

iZEN ★★★★★ ()
Ответ на: Re: Моно опережает Java на Linux Desktop от elipse

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

Не надо тут петросянию разводить, думаю ты понял о чём я ;) Причём намёка, что это язык не было. На платформе тоже можно писать (:

Deleted ()
Ответ на: Re: Моно опережает Java на Linux Desktop от PayableOnDeath

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

>ну-ка расскажи поподробнее, что же там так плохо в MVC?

Собственно чем написал. Неудобством. на Java/SWT у меня была в разы проще чем на Qt/C++. Вот, например, была у меня внутрення структура, деревянная, нужно её отобразить. В Java/SWT - два класса, один- с 3 тривиальными методами, для отражающими структуру. и класс с 2 методами, для полчения текста и иконки соответственно. И ещё класс с одним методом, когда нужно было и разными шрифтами отображать. В Qt сильно неудобнее (QAbstractItemView, QModelIndex).

theos ★★★ ()
Ответ на: Re: Моно опережает Java на Linux Desktop от yk4ever

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

> class MyStruct { long ID; double Foo; string Bar; } delegate IComparable SortKey<T>(T Item); ... { ... List<MyStruct> data = GetRecordsFromStorage(); string sort = ReadSortDirectionFromClient();

SortKey key = item => item.ID; switch (sort) { case "foo": key = item => item.Foo; break; case "bar": key = item => item.Bar; break; } data.Sort((x,y) => key(x).CompareTo(key(y))); }

Согласен, решение на С++ немного длиннее. Для начала определим оператор сравнения для строк.

bool operator < (const std::string &a, const std::string &b)

{

return a.compare(b) < 0;

}

Затем пропишем собственно сравнивание классов по элементам данных (кстати, а вот в шарпе с женериками такое не проканает):

template<class C, typename T, const T C::*member> bool Compare(const C &a, const C &b)

{

return (a.*member) < (b.*member);

};

Для полной кошерности, конечно, придется описать конструктор копии / оператор присваивания для нашей структуры (здесь опущено)

struct MyStruct

{

long ID;

double Foo;

std::string Bar;

// Here copy constructor & operator = must be implemented :-(

};

Ну а дальше все проще, чем в исходном примере.

void foo()

{ std::list<MyStruct> some_list = GetSomeListFromStorage();

std::string manner = ReadSortMannerFromClient(); bool (*compare)(const MyStruct &, const MyStruct &) = &Compare<MyStruct, long, &MyStruct::ID>;

switch(manner[0])

{

case 'f': compare = &Compare<MyStruct, double, &MyStruct::Foo>; break;

case 'b': compare = &Compare<MyStruct, std::string, &MyStruct::Bar>; break;

}

some_list.sort(compare);

}

Причем полученный "сравниватель по элементу данных класса" можно использовать для любого другого класса. ИМХО, не так все страшно -- уложились в несколько лишних строк, избавились от необходимости юзать замыкания, виртуальные вызовы и т.п., что, замечу, не даром в Моно дается.

rmammoth ()
Ответ на: Re: Моно опережает Java на Linux Desktop от yk4ever

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

> За что и люблю хорошие языки. Разумные вещи на них выглядят разумно, а дурь - дурью

Да, понять иронию уже соображалки не хватило -- все на Моно ушло...

rmammoth ()
Ответ на: Re: Моно опережает Java на Linux Desktop от yk4ever

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

> Зато эта задача типичнее

Класс! Человека просят просверлить дырку в стене, он сносит ее нафиг и говорит, что задача типичнее.

rmammoth ()
Ответ на: Re: Моно опережает Java на Linux Desktop от yk4ever

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

Программеры должны писать нормально имхо. Юзеры тоже люди как бы ) Конечно и так съедят, если что памяти ещё купят или проапгрейдятся. Имхо это плохо. Пусть лучше пишут долго, но хорошо. Питоновые софтины тоже особой скоростью не отличаются имхо. Одно дело что-то автоматизировать - юзать скриптовые языки, что бы быстро и на коленке, а другое дело писать системный или прикладой софт - тут нужно что бы было легко и быстро (юзать, работать, а не писать), иначе получается Vista ^)

Lennier ★★★★ ()

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

Ну глупость же. Десктопных приложений в любом случае больше на джаве, хотя она и на десктоп практически не ориентировалась до недавнего времени. А это голословное заявление просто попытка прощупать комьюнити.

jhgjhgj ()
Ответ на: Re: Моно опережает Java на Linux Desktop от Aceler

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

>>Eclipse видимо, абсолютно не десктопное приложение.

Видимо, серверное... особенно с учетом того же xmind, построенного на его базе. Совсем забыл, wuala - аналог dropbox, но реализованный более интересно и грамотно, приятнейший клиент на Java- http://www.wuala.com/

nick_denry ()
Ответ на: Re: Моно опережает Java на Linux Desktop от jhgjhgj

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

> Ну глупость же.Десктопных приложений в любом случае больше на джаве

Да, это было ооочень убедительное доказательство.

Вот Debian Popularity Contest
http://popcon.debian.org/
и сами сравните (да, и кадеешникам без валидола лучше не смотреть)

elipse ★★★ ()
Ответ на: Re: Моно опережает Java на Linux Desktop от yk4ever

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

>Код эта, его чаще читают, чем пишут, если кто не в курсе.

Это только у пухлых монотроллей так. Лично мой код, например, чаще запускают, чем читают.

legolegs ★★★★★ ()
Ответ на: Re: Моно опережает Java на Linux Desktop от legolegs

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

> Это только у пухлых монотроллей так. Лично мой код, например, чаще запускают, чем читают

+100! :) А то эти моновозы и нетдотеры как-то забывают за самолюбованием, что программы вообще-то иногда как бы работать должны.

rmammoth ()
Ответ на: Re: Моно опережает Java на Linux Desktop от yk4ever

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

> Экономить наносекунды на спичках - дебилизм и растрата рабочего времени

Не знаю, что ты там на спичках считаешь. А теперь представь: другой аналогичный деятель через год после твоего увольнения вызывает твой суперкод в достаточно длинном цикле. В детали, понятно, не вникает -- на фиг надо, вы ж с ним самые умные, а у машины внутри многа гигагерьцевь, процесор у ней большой, вот пусть она и думает. И твои тормозные наносекунды плавно перетекают в секунды и десятки секунд тормозов. Знакомая картина?

rmammoth ()
Ответ на: Re: Моно опережает Java на Linux Desktop от yk4ever

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

> А у нас брожениев умов нет, бублиотеки стандартные одни на всех. Лепота!

Мозги у вас одни на всех -- те, что у Мигеля в тыкве. Что сотворит, то и хаваете.

rmammoth ()
Ответ на: Re: Моно опережает Java на Linux Desktop от iZEN

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

>>Уже оборжался. Там на over 99.9999% скринов виндовые обрамления окон :-)

>Дай угадаю. Потому что десктопов под Linux меньше 1%? :))

о, бздуны уже причисляют себя к интеллектуальному большинству?

registrant ★★★★★ ()
Ответ на: Re: Моно опережает Java на Linux Desktop от Lennier

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

> Имхо это плохо. Пусть лучше пишут долго, но хорошо.

Платите вы? Или кто?

> Питоновые софтины тоже особой скоростью не отличаются имхо.

Эмм... чем вас Deluge или Mercurial по скорости не радуют? У меня лично - летают.

yk4ever ()
Ответ на: Re: Моно опережает Java на Linux Desktop от legolegs

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

> Лично мой код, например, чаще запускают, чем читают.

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

yk4ever ()
Ответ на: Re: Моно опережает Java на Linux Desktop от rmammoth

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

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

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

> а у машины внутри многа гигагерьцевь, процесор у ней большой, вот пусть она и думает.

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

> И твои тормозные наносекунды плавно перетекают в секунды и десятки секунд тормозов. Знакомая картина?

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

Эт самое, надо решать реальные проблемы, а не в мелочах копошиться.

yk4ever ()
Ответ на: Re: Моно опережает Java на Linux Desktop от rmammoth

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

> Затем пропишем собственно сравнивание классов по элементам данных (кстати, а вот в шарпе с женериками такое не проканает):

[пожимая плечами] зачем, если есть более удобный способ? Но, при желании, можно сделать через рефлекшн.

> избавились от необходимости юзать замыкания, виртуальные вызовы и т.п., что, замечу, не даром в Моно дается.

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

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

yk4ever ()

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

Типичная говноновость - я юзаю три моно-аппликухи и ни одной джава - значит моно в легкую заруливает джаву. А если тупо посчитать кол-во приложений для десктопа на моно и джава?

alex-w ★★★★★ ()
Ответ на: Re: Моно опережает Java на Linux Desktop от elipse

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

>Да, это было ооочень убедительное доказательство.

Зачем доказывать очевидный факт, что десктопных приложений на джаве было создано на порядки больше на всех ОС, чем на моно, хотя, может, отдельные из них пользуется меньшей популярностью, чем моновские на отдельном дистрибе линукса, но в сумме джавовских все равно больше.

>Вот Debian Popularity Contest >http://popcon.debian.org/

А дай мне ссылку где только десктопные приложения.

jhgjhgj ()

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

Только для разработки я использовал:
Eclipse, Netbeans,
Protege 3.4
Visual Paragirm for UML, DB Visual Architect
JProlog (интерпритатор пролога)

Плагины для ООо
Много мелких поделок - чаты...

А что Моно? Никогда ничего не использовал. Бред, короче.

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