LINUX.ORG.RU

mono (C#) vs. Java


0

0

не флейма ради...
есть задача - написать некое небольшое _кроссплатформенное_ приложение. т.е. чтобы я мог отдать клиенту бинарник и клиент его сразу же мог запустить у себя (по минимуму доставляя разный сторонний софт. в идеале - вообще без установки доп. софта). у клиентов по распостраненности такие операционки :

- оффтопик
- макос
- немного линукса.

я так понимаю, mono приложения, скомпиленные в линуксе (monodevelop), будут без проблем запускаться в оффтопике (и при некотором изврате и в макоси). жаба православнее, но для жабы нужно доставлять доп. софт... посоветуйте плиз, на чем остановиться?

★★★★★

Re: mono (C#) vs. Java

>задача - написать некое небольшое _кроссплатформенное_ приложение

Tcl/Tk + Starpack. объём stand-alone бинария для всех платформ будет ~1M

jtootf ★★★★★ ()
Ответ на: Re: mono (C#) vs. Java от jtootf

Re: mono (C#) vs. Java

т.е. в итоге получим бинарник, который без проблем может запуститься как в оффтопике так и в макоси/линуксе?

isden ★★★★★ ()
Ответ на: Re: mono (C#) vs. Java от isden

Re: mono (C#) vs. Java

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

именно. рантайм (по сути весь интерпретатор) starpack несёт с собой, отсюда такой размер бинария. но с другой стороны, что JVM что .Net/Mono меньше не будут точно - так что рассмотреть такой вариант стоит

jtootf ★★★★★ ()
Ответ на: Re: mono (C#) vs. Java от jtootf

Re: mono (C#) vs. Java

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

isden ★★★★★ ()

Re: mono (C#) vs. Java

Главное, напиши потом, на чем остановился и сделал в итоге прогу.

Karapuz ★★★★★ ()

Re: mono (C#) vs. Java

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

theos ★★★ ()
Ответ на: Re: mono (C#) vs. Java от isden

Re: mono (C#) vs. Java

> все причендалы для .Net с высокой вероятностью уже проставлены в оффтопике. да и в линуксе/макоси тоже скорее всего mono либы будут в наличии.

Неправда. Дотнета в ХРю искаропки нет, да и моноприложения там без дополнительных либ попросту не запустятся.

У жабы есть java web start, но для него нужна на машине клиента установленная jvm.

Так что Tcl/Tk в старпаке(всё своё ношу с собой) тут рулит.

gaa ★★ ()
Ответ на: Re: mono (C#) vs. Java от gaa

Re: mono (C#) vs. Java

> Tcl/Tk в старпаке

Оно же не обеспечивает кроссплатформенность результирующего бинаря.

INFOMAN ★★★★★ ()
Ответ на: Re: mono (C#) vs. Java от generatorglukoff

Re: mono (C#) vs. Java

>хотя я б заюзал Qt...

...в жабе :)

xTERM ★★ ()

Re: mono (C#) vs. Java

По теме: C# конечно по-удобнее Явы. Но у Явы лучше IDE. Можно в принципе использовать GTK#, Novell ведь выпустила инсталлер под Венду (смотрел, устанавливается легко, работает, выглядит нативно).

Хотя хрен редьки не слаще.

xTERM ★★ ()

Re: mono (C#) vs. Java

Есть ещё всякие "компиляторы" для Явы, типа JET. Он же, afaik, сможет это в одну инсталляшку запихать, вместе с jre. И поставить как одно приложение.

alexsaa ()
Ответ на: Re: mono (C#) vs. Java от INFOMAN

Re: mono (C#) vs. Java

>> Tcl/Tk в старпаке

> Оно же не обеспечивает кроссплатформенность результирующего бинаря.


Мало кроссплатформенности в рамках платформ win32 и elf-x86 ? Покрывает 98% потребностей.

gaa ★★ ()

Re: mono (C#) vs. Java

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

anonymous ()
Ответ на: Re: mono (C#) vs. Java от anonymous

Re: mono (C#) vs. Java

Ну этот вариант подходит в случае когда время разработки не учитывается =)

anonymous ()

Re: mono (C#) vs. Java

Если нужна кросплатформенность на уровне бинаря и чтобы ничего инсталить не надо было то можно попробовать Flash + ActionScript.

imp ★★ ()
Ответ на: Re: mono (C#) vs. Java от imp

Re: mono (C#) vs. Java

> Flash + ActionScript

а оно умеет делать всякие штуки типа http (с отправкой POST форм) и ftp коннектов? на нем можно реализовать алгоритм архивирования tar?

isden ★★★★★ ()
Ответ на: Re: mono (C#) vs. Java от gaa

Re: mono (C#) vs. Java

> Дотнета в ХРю искаропки нет

емнип, эта штука ставится с каким-то сервиспаком или апдейтом... а в висте вроде как есть искаропки.

isden ★★★★★ ()

Re: mono (C#) vs. Java

Что бы без геморроя С# заработал на Linux - нужно использовать gtk# и другие либы mono. Однако, существуют приблуды для моно упаковывающие в екзешник (инсталлятор скорее всего) все необходимости для винды. Да, все дело в инсталляторе.

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

Как юзер я бы вас попросил писать на mono. Да и вообще на чем угодно, только не на Java. Ещё раз - mono это компилятор в нативный код, это _НЕ_ виртуальная машина. Более того, читаем про aot в мане, лучше на сайте mono (однако, что бы запускать не из под моно нужны все бибки скомпилить, а у меня это пока не получилось, хоть и делал по инструкции с http://www.mono-project.com/AOT).

См. Incollector - хороший пример кроссплатформенности. Я его уже какой месяц правлю под свои нужды. Вот, думаю на базу его пересадить, однако там коряво работа с моделью продуманна, слишком уж на xml все подсажено. Но думаю получиться, надо лишь засесть за доки (пока все метом тыка, сами понимаете, инструкции читать не ТРУ).

anonymous_num_0 ()
Ответ на: Re: mono (C#) vs. Java от anonymous_num_0

Re: mono (C#) vs. Java

спасибо за подробный коммент, единственный вопрос - чем Java не нравится (кроме необходимости наличия jvm)?

isden ★★★★★ ()
Ответ на: Re: mono (C#) vs. Java от isden

Re: mono (C#) vs. Java

> единственный вопрос - чем Java не нравится (кроме необходимости наличия jvm)?

0. Тормозит

1. Много жрет

2. Долго запускается

3. Хреново выглядит по сравнению с mono приложениями. Точнее по сравнению с другими gtk приложениями.

Говорю как юзер.

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

anonymous_num_0 ()
Ответ на: Re: mono (C#) vs. Java от anonymous_num_0

Re: mono (C#) vs. Java

> 3. Хреново выглядит по сравнению с mono приложениями. Точнее по сравнению с другими gtk приложениями.

Неправда в случае использования SWT. Остальное субъективно :)

Rikz ★★★ ()
Ответ на: Re: mono (C#) vs. Java от anonymous_num_0

Re: mono (C#) vs. Java

спасибо. тогда, пожалуй, остановлюсь на mono, т.к. отдавать клиентам-чайникам такую штуку на Java имхо будет не очень гут.

isden ★★★★★ ()
Ответ на: Re: mono (C#) vs. Java от anonymous_num_0

Re: mono (C#) vs. Java

>Ещё раз - mono это компилятор в нативный код, это _НЕ_ виртуальная машина.

Дядя, а ты знаешь, что ты дурак? Откуда в нативном коде возьмется Reflection?

>Более того, читаем про aot в мане, лучше на сайте mono

AOT делается с помощью ngen.

>0. Тормозит

>1. Много жрет

>2. Долго запускается

>3. Хреново выглядит по сравнению с mono приложениями. Точнее по сравнению с другими gtk приложениями.

Тоньше

anonymous ()
Ответ на: Re: mono (C#) vs. Java от anonymous

Re: mono (C#) vs. Java

>Дядя, а ты знаешь, что ты дурак? Откуда в нативном коде возьмется Reflection?

Как по-твоему работает тот же SP-Forth? :) Рефлексия и нативность кода понятия, как бы, ортогональные.

KRoN73 ★★★★★ ()
Ответ на: Re: mono (C#) vs. Java от isden

Re: mono (C#) vs. Java

>спасибо. тогда, пожалуй, остановлюсь на mono, т.к. отдавать клиентам-чайникам такую штуку на Java имхо будет не очень гут.

Ты не пугай так... Ты действительно принял решение на основании лоровского топика?!!!

Попробовал бы хоть по хеловорду какому-нибудь на обоих, а там уже "решал"

yyk ★★★★★ ()
Ответ на: Re: mono (C#) vs. Java от isden

Re: mono (C#) vs. Java

А откуда это на Линуксе предустановленная возмется mono? Или библиотеки к ней?

Ежели надо абсолютно автономный бинарник, я бы остановился на Tcl + starkit. Запускаемый бинарник не получится сделать одинаковым для разных платформ, но можно либо использовать один kit-файл и бинарники tclkit-а для каждой платформы, либо для каждой платформы сделать свой исполняемый бинарник (который, по сути, будет совмещением kit-файла и бинарника tclkit).

Т.е., например, делаем не зависящий от платформы program.kit и поставляем его с tclkit-win32.exe, tclkit-linux-x86 и т.д., запускаем в зависимости от платформы tclkit-win32.exe program.kit, tclkit-linux-x86 program.kit и т.д. Либо превращаем tclkit-win32.exe + program.kit в program.exe и т.д.

Я так делаю всякие утилиты для девочек из соседнего отдела - я полностью в Линуксе ими занимаюсь, девочкам даю исполняемые бинарники для винды. Когда программа использует бинарные расширения для тикля, использую mingw для кросс-сборки. В этих случаях в kit-файл кладу бинарники для всех платформ, подгружаю нужные в зависимости от платформы, на которой kit-файл запускается. И девочки рады, и я все в родном Линуксе делаю. С проблемами пока не столкнулся, напротив, тикль сам заботится обо всяких платформо-специфичных особенностях, вроде разделители компонентов путей к файлам и проч.

anonymous ()
Ответ на: Re: mono (C#) vs. Java от isden

Re: mono (C#) vs. Java

А гуй собираешся на WinForms писать? И ты думаешь, что в WinForms под Linux и MacOS (а такое есть?) все будет пахать 100% как и в виндах? Респект чувак. Ты оптимист!

С java все таки таких проблем гораздо меньше. Почему-то один и тот же скачаный дистр NetBeans у меня одинаково нормально работает и под Win и под Linux.

vega ()

Re: mono (C#) vs. Java

Проще тогда сделать приложение на питоне + tk/qt/чего-то и собрать бинарник с интерпретатором внутри. Для венды есть py2exe, для линукса/макоси тоже можно кое-чего придумать. Будут три бинарника, выдавай юзерам в одном архиве и все довольны. А питон достаточно кроссплатформенный, если руки прямые.

Только весить архив будет многовато.

А моно найти на линуксовой машине по дефолту сложно. Так что без допсофта не обойтись.

anonymous ()
Ответ на: Re: mono (C#) vs. Java от anonymous

Re: mono (C#) vs. Java

> А откуда это на Линуксе предустановленная возмется mono? Или библиотеки к ней?

в убунте, например, либы к mono искаропки есть (как часть гнумовского софта)...

/me внезапно решил еще раз подумать :)

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