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

>>>Тормозят они из-за плохих алгоритмов. Следите за алгоритмами.

>>Оптимизируйте узкие места. +1000 Верно!


>Так а кто спорит? Просто возможности дотнет/моно в плане оптимизации этих самых узких мест довольно ограниченны.


Кхм. Алгоритмическая оптимизация мало зависит от языка.

«Не экономьте одну команду. Экономьте сразу 50!»

KRoN73 ★★★★★ ()

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

>я не говорил что на Mono просто. но swing это не тот фреймворк на котором можно сделать приложение "my first cool GUI application", как следствие мало людей понимают как программировать на swing, все проблемы java на desktop ИМО от этого.

А вот это как очень и очень хорошо и правильно. Лучше пусть играют в плейстейшен, чем плодить на Swingе клоны дельфи-прог

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

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

> А вот это как очень и очень хорошо и правильно. Лучше пусть играют в плейстейшен, чем плодить на Swingе клоны дельфи-прог

Ну и почему же большинство программ страшные как инфляция в сбербанке ?
Ж)

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

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

> Не берусь судить, плохо это или хорошо, но почему бы просто не сказать: switch действует а-ля паскаль, break не нужен?

Первая буква в названии языка "C#" указывает на ориентацию на особую целевую аудиторию, которой лучше не рвать шаблон.

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

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

> Не берусь судить, плохо это или хорошо, но почему бы просто не сказать: switch действует а-ля паскаль, break не нужен?

ЗЫ. А вообще сишный синтаксис говно, это общеизвестно.

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

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

> Просто возможности дотнет/моно в плане оптимизации этих самых узких мест довольно ограниченны.

Вы просто не умеете их готовить.

"Оптимизация" - это не убрать проверку границ массивов, совсем нет.

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

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

> Не экономьте одну команду. Экономьте сразу 50!

Правильно! Итак, я решаю сэкономить команды путем вставки SSE кода в самое-самое узкое-узкое место, плюя на переносимость и т.п. Ну очень надо! Как это сделать в дотнет?

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

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

> Скажи прямо.

Прямо скажу вот что

1) Деплоймент Java приложений очень прост и логичен. Кроме того, нет "DLL hell", как в моне.

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

На каком язычке это было изначально написано?

  0:   iconst_2
  1:   istore_1
  2:   iconst_3
  3:   istore_2
  4:   iload_1
  5:   iload_2
  6:   iadd
  7:   istore_3
  8:   return

JVM это побарабану, на каком язычке я откомпилировал свой исходный код в байт код.

3) Инфраструктур для Java гораздо больше чем для моны. И функциональность их шире, чем шарпейных. Кроме того, фреймворки Джавы гораздо более архитектурно проработаны.


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

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

Ты все время путаешь системное и прикладное программирование. Даже неинтересно.

По теме: используй C++/CLI для вставки кода SSE.

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

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

> "Оптимизация" - это не убрать проверку границ массивов, совсем нет.

Ок, я не претендую на роль авторитета. Обратимся к авторитетам:

Дж. Бентли, Жемчужины программирования

"Профилирование программы показало, что 98% времени тратилось на выполнение одной функции. Эта функция была переписана на ассемблере, что увеличило скорость работы программы еще примерно в 2,5 раза"

Да, ранее в этом примере оптимизация структур и алгоритмов подняла скорость в 12 раз. Да, я согласен, что это наиболее существенная оптимизация. Но в совокупности эти две оптимизации подняли скорость в 30 раз, что куда лучше 12. Допустим, исходный вариант работал 30 часов. Оптимизация алгоритмов и структур данных -- 2,5 часа. Оптимизация переписыванием на ассемблере - 1 час, на 1,5 часа меньше промежуточного варианта. По-моему, выигрыш в 1,5 часа при времени работы 1 час -- очень немало. А?

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

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

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

Только не побарабану вот такое

invokeXXX

Потому что в текущей жабе есть 4 типа инвоков

invokespecial (<init>, super......, private this....)
invokeinterface interface/method
invokevirtual class/method
invokestatic class/static-method

потому для динамических языков такая фигня не подходит - и потому они компилятся в рефлективные вызовы - что есть якорный канат.

Поэтому и планируется ввести invokedynamic который будет лукап символа делать в зависимости от фактически переданного класса - то есть реализовывать дактайпинг.


Второй момент - это языки поддерживающие структурные типы - типа скалы. Передача параметра обявленного структурным типом тоже сделана в виде рефлективного вызова.

И потому _имеет_ значение с какого языка компилили.

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

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

>"Профилирование программы показало, что 98% времени тратилось на выполнение одной функции. Эта функция была переписана на ассемблере, что увеличило скорость работы программы еще примерно в 2,5 раза"


Думаешь 98% времени исполнения программы тратится на проверку массива?

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

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

> 1) Деплоймент Java приложений очень прост и логичен. Кроме того, нет "DLL hell", как в моне.

Некоторые считают, что деплоймент нативных приложений в образах VM тоже прост и логичен.

> 2) JVM поддерживает фактически все модные язычки программирования, включая "скриптовые" и "динамические"

> 3) Инфраструктур для Java гораздо больше чем для моны

Спасибо, К.О.

> На каком язычке это было изначально написано?

ХЗ. Подозреваю, что на статически типизированном.

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

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

>Правильно! Итак, я решаю сэкономить команды путем вставки SSE кода в самое-самое узкое-узкое место, плюя на переносимость и т.п.

Не путай системное и прикладное программирование. Не завинчивай гвозди отвёрткой.

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

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

Страшные, потому что Sun сделал по дефолту ужасный корявый Metal, вместо небесного Ocean, когда будет Nimbus по дефолту, будет не так страшно

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

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

>Страшные, потому что Sun сделал по дефолту ужасный корявый Metal, вместо небесного Ocean, когда будет Nimbus по дефолту, будет не так страшно

Лучше бы они KDE L&F организовали (сейчас пользую в основном GTK).

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

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

> что на статически типизированном.

Ну тогда в качестве домашнего задания - сами изучите JVM.

   0:	invokestatic	#23; 
   3:	astore_1
   4:	getstatic	#63; 
   7:	astore_2
   8:	getstatic	#65; 
   11:	astore_3
   12:	aload_1

А вот исходничек

def i = 2;
def j = 3;
def k = i + j;

Узнаете язычок?

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

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

> Не путай системное и прикладное программирование. Не завинчивай гвозди отвёрткой

Кто-то что-то сказал о системной программе? Тяжелых прикладных задач не бывает?

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

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

> Думаешь 98% времени исполнения программы тратится на проверку массива?

Вопросы, на что именно что тратилось, к Бентли. Я хотел лишь сказать, что низкоуровневая оптимизация временами имеет смысл. И что дотнет/моно такой возможности не дает. Вот и все.

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

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

>> что на статически типизированном.

> Ну тогда в качестве домашнего задания - сами изучите JVM.

Это не тот фрагмент, который ты предъявил раньше.

> def i = 2;

> def j = 3;

> Узнаете язычок?

Не узнаю. Это не Питон, могу сказать точно. Похоже на Boo, но Boo сделан для .NET.

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

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

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

>Тяжелых прикладных задач не бывает?

При грамотном проектировании - наверное, нет. Тяжёлая часть ложится на систему. В худшем случае - это очень узкий класс задач, который не формирует мэйнстрим :)

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

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

>Я хотел лишь сказать, что низкоуровневая оптимизация временами имеет смысл. И что дотнет/моно такой возможности не дает. Вот и все.

Если кто-то скажет, что дотнет [или подставить любое другое по вкусу] пригоден и хорош для всех 100% задач - этот человек неадекватен, и спорить с ним смысла нет.

У любого продукта есть области, где эти продукты эффективны и где неэффективны.

И есть продукты, которые эффективны для основной массы задач сегодняшнего рынка.

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

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

$ cat C1.gr

class C1 {
  def hello() { 
    println "Java!";
  }
}


$ cat C1Test.java

public class C1Test {
    public static void main(String[] args) { 
        C1 c1 = new C1();
        c1.hello();
    }
}

$ groovyc C1.gr

$ javac C1Test.java

$ java -classpath .;groovy-1.6.3.jar;asm-2.2.3.jar C1Test

Java!

$ 

ЫЫЫ :)))


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

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

>Я хотел лишь сказать, что низкоуровневая оптимизация временами имеет смысл. И что дотнет/моно такой возможности не дает. Вот и все.

Ну да - подключение нативных либ уже отменили.

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

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

> ЫЫЫ :)))

Не понял восторга, если честно. Ну да, на JVM есть Groovy. В чем причина восторженного мычания - в том, что Groovy можно вызывать из Явы?

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

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

>ЫЫЫ :)))

Не ыыы.

class X {
    def a = 1
    def b = 2
    def c = a + b
}

=====     relevant cut start ============ >

   8:   getstatic       #33; //Field $const$0:Ljava/lang/Integer;
   11:  dup
   12:  aload_0
   13:  swap
   14:  invokestatic    #39; //Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
   17:  putfield        #41; //Field a:I
   20:  pop
   21:  getstatic       #43; //Field $const$1:Ljava/lang/Integer;
   24:  dup
   25:  aload_0
   26:  swap
   27:  invokestatic    #39; //Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
   30:  putfield        #45; //Field b:I
   33:  pop
   34:  aload_1
   35:  ldc     #46; //int 0
   37:  aaload
   38:  aload_0
   39:  getfield        #41; //Field a:I
   42:  invokestatic    #50; //Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.box:(I)Ljava/lang/Object;
   45:  aload_0
   46:  getfield        #45; //Field b:I
   49:  invokestatic    #50; //Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.box:(I)Ljava/lang/Object;
   52:  invokeinterface #56,  3; //InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
   57:  dup
   58:  aload_0
   59:  swap
   60:  invokestatic    #39; //Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
   63:  putfield        #58; //Field c:I
................relevant cut end..................

public class Y {
    int a = 1;
    int b = 1;
    int c = a + b;
}

=====     relevant cut start ============ >

   5:   iconst_1
   6:   putfield        #2; //Field a:I
   9:   aload_0
   10:  iconst_1
   11:  putfield        #3; //Field b:I
   14:  aload_0
   15:  aload_0
   16:  getfield        #2; //Field a:I
   19:  aload_0
   20:  getfield        #3; //Field b:I
   23:  iadd
   24:  putfield        #4; //Field c:I
................relevant cut end..................


ТАк что разница есь - и существенная.

К стати грувистам срочняк надо выкидывать этот их ход конем для
 боксинга и анбоксинга и воткнуть туда генерацию нормальных new 
java.lang.Integer(...) иначе эскейп анализис будет проходить мимо 
этого кода.

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

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

>Тащить в Windows еще 400Мб KDE к 10Мб JRE как-то не с руки

В виндовсе оно не надо. Как и нимбус. В виндовсе есть свой лук энд фил - пусть его и трекают.

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

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

> Это Scala, только пишется без ;

*shrug* ну так Скала статически типизированная, и я правильно ответил.

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

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

это груви. В скале так писать не надо (это в скале обявление 2х 
методов). Там уж тогда var/val. И скала язык статический. 
Там код более эффективный:

class Z {
    val a = 2
    val b = 3
    val c = a + b
}


=================
   1:   iconst_2
   2:   putfield        #14; //Field a:I
   5:   aload_0
   6:   iconst_3
   7:   putfield        #16; //Field b:I
   10:  aload_0
   11:  invokespecial   #20; //Method java/lang/Object."<init>":()V
   14:  aload_0
   15:  aload_0
   16:  invokevirtual   #23; //Method a:()I
   19:  aload_0
   20:  invokevirtual   #25; //Method b:()I
   23:  iadd
   24:  putfield        #27; //Field c:I
==================

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

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

>>Не хомячить на домашней слаквари, делая по себя вечерами, а работать? За деньги?
>А что можно на этом наработать?

На этом можно много заработать. Даже на С++
В четверг звонил агент, искал С++ на 140к в год. IMHO весьма приличная зарплата(не котракт а постоянная работа).

>Ну так ниша разработчиков C++ исчезающе мала, в пределах погрешности

:)
Вы же не рабоатете с Линукс(как я понял из вашего высказывания), как вы можете рассуждать о том, чего не знаете?

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

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

>Да в данном теред собралась репрезентативная выборка линуксоидов, ага.
Я думаю, здесь отметились все фанбои, которым заголовок новости ущемил что-нибудь.

Соответственно они перечислили даже то, чем не пользуются. Не верю, что столько людей пользуется уродством Azureus, но включил его в список и 2х программ, так как доказательств обратного не имею.

Кстати, все эти пользователи Azureus пользуют его под виндой, так что на самом деле его нужно исключить из списка популярных Линукс программ.

Соответственно остаётся одна.

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

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

>Страшные, потому что Sun сделал по дефолту ужасный корявый Metal, вместо небесного Ocean

С чего ты взял про "корявый"? Metal — один из нормальных GUI (есть ещё Motif, но он на любителя), который одинаково выглядит на всех платформах, в отличие от недоделанных и непереносимых Aqua, Gtk и Windows L&F.

"Небесный Ocean" — это вообще страшный УГ, пожирающий лишие такты процессора. Делалось гомиками для гомиков.

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

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

>Я думаю, здесь отметились все фанбои, которым заголовок новости ущемил что-нибудь.

Все эти фанбои - репрезентативная выборка?

>Соответственно они перечислили даже то, чем не пользуются.


Телепат?

> Не верю, что столько людей


Железный аргумент в статистических исследованиях.

> Кстати, все эти пользователи Azureus пользуют его под виндой,


Телепат?

> Соответственно остаётся одна.


Железный метод стат исследований.

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

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

>В скале так писать не надо (это в скале обявление 2х методов). Там уж тогда var/val.

Но МОЖНО и методы, dummy-заглушки, а потом развернуть/дописать

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

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

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

В принципе, я уже начинаю привыкать к местным убогим, которые не умеют читать.

Объяснб ещё раз. Я написал, что не верю, но, так как у меня нет доказательств, я включил Azureus в победоносный список из 2х популярных программ.

Советую перечитать фразу, перед тем как отвечать.


>> Кстати, все эти пользователи Azureus пользуют его под виндой,

>Телепат?

Нет пользователи азуреуса это писали.
В этом-же треде.

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

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

>Вы же не рабоатете с Линукс(как я понял из вашего высказывания),

Как в этом можно работать? Вот скачал надысь Fedora-11-x86_64-DVD.iso, устанавливаю в VirtualBox 3.0.2, захожу под root-ом. Говорю, установить дополнения гостевой ОС. Ноль реакции. Разрешение естественно выше 800х600 не установить. Эх

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

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

Например если воспользоваться ohloh (хотя цифры там маленькие и репрезентативность тоже ни к черту) - то среди отметившихся там пользователей популярность одного vuze ~= tomboy+banshee+f-spot.

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

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

> В худшем случае - это очень узкий класс задач, который не формирует мэйнстрим :)

Да. Например, 3Д игры -- лёгкие, быстрые и не мейнстримные.

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

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

>Да. Например, 3Д игры -- лёгкие, быстрые и не мейнстримные.

Не ужто их пишут на ассемблере?

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

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

> Если кто-то скажет, что дотнет [или подставить любое другое по вкусу] пригоден и хорош для всех 100% задач - этот человек неадекватен, и спорить с ним смысла нет.

> И есть продукты, которые эффективны для основной массы задач сегодняшнего рынка

Класс. Мне понравилось. Вот не похвалил человек дотнет явно, а так контекстом, намеком дал понять, что второе утверждение -- это о дотнет. Хотя это самое второе сильно напоминает по степени обобщения первое... Типа не для 100% эффективен дотнет -- такое, конечно, только неадекватный человек скажет -- а для ОСНОВНОЙ МАССЫ ЗАДАЧ. Я умилился.

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

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

И вообще дотнет - изначально ущербный и не нужный. Т.к. есть Жава и Qt. А выезжает это убожество за счёт пеара и леммингов.

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