LINUX.ORG.RU
ФорумTalks

а чего ж оно такое страшное?

 


0

2

Понадобилось тут поставить гуевую программку на mono, раньше никогда это поделие вживую не видел. Интерфейс поверг меня в ужас, под вайном софт и то лучше выглядит и работает.
И ладно бы оно было просто страшное, но ведь гуй при этом еще и дико глючит: курсор из текстового поля пропадает, после разворачивания из трея кнопки на тулбаре и меню исчезли и не работают. Отрисовывается оно тоже медленно.

Вот собственно вопрос: это глюки конкретной софтины или все поделки на моно так работают?

★★★★★

это от того, что линуксоиды считают что оно ненужно и соответственно не вносят улучшающие патчи.

Bad_ptr ★★★★★
()

Софтина твоя прибита гвоздями к WinForms, да небось еще и PInvoke во все поля. Так что радуйся, что вообще запустилась.

Rubbiroid
()

Это от того, что оно использует WinForms.

Вот собственно вопрос: это глюки конкретной софтины или все поделки на моно так работают?

Если писано на Gtk#, то выглядит и чувствует как нативное гтк.

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

Так что радуйся, что вообще запустилась.

тут как бы официальный порт, так что по идее должно работать. Но как-то через задницу все.

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

Такое отношение у конторы к линуксу, т.ч. делай выводы.

f1xmAn ★★★★★
()

Mono это диверсия против GNU/Linux. Типа пишите на .NET, это кросплатформенно. А в результате под Windows всё работает, а в GNU/Linux частенько нет.

А вот в Java всё работает под всеми платформами. Спрашивается: зачем вообще этот .NET придумали?

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

Сан в судебном порядке запретил МС трогать Жабу. Вот и пришлось делать .НЕТ

Правильно, потому что все что трогает МС превращается в говно. Поэтому у нас теперь есть java и .говно

Deleted
()

.NET не нужен. (даже название говорит об этом)

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

Жаба тормозит под вендой (точнее, тормозит везде, но под линуксом моно тормозит точно так же).

x3al ★★★★★
()

потому что gtk использует

Reset ★★★★★
()

конкретной софтины

И какой же?

urandom
()

У тебя руки кривые, в мире множество .net'овских программ, который нормально работают.

Alve ★★★★★
()

Наверное, там какой-нить вынь-формс, или вообще wcf или подобное ему быдлоподелие. Моно, оно конечно говно, но то, что сделано под тот же gtk#, хотя бы не настолько уныло, тормознуто, глючно и у#@$%но.

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

точнее не wcf а wpf, хрен их там разберёт. wpf - это типа такая жуткая х#@$я, где мелкомягкие попытались вновь изобрести велосипед, и сделать так, чтоб междумордие описывалось чем-то, жалко подобным нормальному css, что, например, давно реализовано (кроссплатформенно и шустро) в том же Qt.

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

Да и C# немного выразительнее жабы

это точно, тут не поспоришь.

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

Да и C# немного выразительнее жабы, не?

Типа когда пишешь чаще применяешь нецензурные выражения?

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

Правильно, потому что все что трогает МС превращается в говно

А если трогает говно, то просто тратит меньше сил.

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

Спрашивается: зачем вообще этот .NET придумали?

А вот в Java всё работает под всеми платформами.

Вот именно поэтому. Думаешь Microsoft выгодно чтоб работало под всеми платформами, а не только шиндошс?

Xenius ★★★★★
()

Mono - хорошая вещь. GTK# - не хорошая.

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

А в результате под Windows всё работает, а в GNU/Linux частенько нет.

Можно подумать, до mono было иначе.

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

Там не очень корректная реализация.
Просто Java код откомпилировали на моно без использования выигрышных сторон того-же C#

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

Как бы дотнет быстрее жабы.

да ладно? Ява быстрее С, а .Net еще быстрее. И на всех на них свысока смотрит lua jit.

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

Официальный порт подразумевает переписывание на Gtk#

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

Никакой сверхоптимизации.
Простая замена class на struct часто даёт заметный вигрыш в производительности.
Там этого нет.
Далее они замеряют время исполнения вместе с запуском, но почему-то не пожелали использовать AOT
Чем это можно объяснить, как не желанием ухудшить результаты моно?

Все это заметно после пары минут проспотра х тестов.

А можно и по настоящему оптимизировать. Но это больше времени займёт.

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

class на struct

Там много разных вариантов реализации, да и тестовых прог много. Есть и со структурами и без. Конкретно в какой проге этого нет?

время исполнения вместе с запуском

Ну, так и с явой так же, и с сями и всем остальным.

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

Kонкретно в какой проге этого нет?

Дома посмотрю.
Я это вчера пробовал.

Ну, так и с явой так же, и с сями и всем остальным.

В яве такой возможности нет.
А си они что тоже время компиляции включают?

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

Или я чего-то не понимаю, или одно из двух... Время загрузки программы / программы и вм учитывается, так что никто никого не ущемляет. Время компиляции к времени выполнения не относится и поэтому не учитывается.

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

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

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

Взял тест binarytrees c N=24. И толку с того аота?

Без:

real	1m11.462s
user	1m47.955s
sys	0m0.392s
С:
real	1m10.853s
user	1m47.347s
sys	0m0.424s
Офигеть какая разница большая....

Явовская версия для сравнения:

real	0m19.886s
user	0m30.274s
sys	0m0.356s

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

Я смотрел на тест который работает меньше секунды(0.17s)
Для него, теоретически должно значить.

Оптимизировать код до конца года точно не смогу.
Разве что попробую заменить class на struct

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

В binarytree-тесте как раз и struct и используется. Видимо динамическое выделение памяти под маленькие объекты является слабым местом моновской ВМ.

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

Так эти тесты это и меряют в основном.
Нет чтобы сравнить несколько деревьев или пару 50мб xml документов разобрать

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

Там различные тесты. Кстати, около года назад ява была медленней шарпа, а сейчас все поменялось.

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