PDA

Просмотр полной версии : Кроссплатформенная разработка


scrat
24.04.2010, 22:47
Можно сколько угодно говорить какие платформы хороши, а какие нет. Я вот лично за приложения, которые работают везде, и за IDE, с помощью которых можно везде разрабатывать, за не привязку к какому-то конкретному языку.

Хотелось бы тут обсудить платформы, которые позволяют деплоить сразу везде(давайте не будем брать мобильные платформы, это отдельный разговор). Хочется услышать ваши точки зрения, кто как и чем пользуется, оценки, плюсы, минусы, подводные камни и всё такое.

scrat
24.04.2010, 22:54
Вообще данный вопрос начал сильно меня интересовать в последнее время, когда я решил заняться разработкой кроссплатформенного твиттер-клиента на маке. Решил использовать qt, но с++ твиттер-библиотеки для него ужасны и к тому-же не линкуются на маке нормально — не самый удобный выход. Хочется чего-то на питоне, с красивым гуём(PyQt так и не захотел собираться) ну или .net, который в mono-варианте выглядит ужасно. Вот и сижу тут в в раздумиях.

SVAROG
24.04.2010, 23:01
слышал про http://gtk.php.net/ понимаю конечно не серьезно =) сам не юзал

ss88
25.04.2010, 00:50
А почему даже не упоминается Java SE? Работать будет везде.
Если хочешь красивого внешнего вида Swing-приложения, то есть либы с LaF'ами такие, как Substance.

Я думаю, не стоит разводить срачи о производительности, ИМХО, она на все равно высоте. Зато работать будет где угодно

scrat
25.04.2010, 01:22
Titanium (https://www.appcelerator.com/) выглядит неплохо

razb
25.04.2010, 01:45
Еще один голос в поддержку джавы )
Все работает кроссплатформенно и без хаков, куча всяческих библиотек на любой вкус и цвет + все хорошо документировано. Разработка и отладка проходит в разы быстрее в отличии например от с++ с кьтом )

cheater_man
25.04.2010, 11:28
PureBasic ;)
Написал для интереса блокнот и скомпилил под винду и под линуху. Конечно мало кто пользуется PureBasic, а так язык очень даже перспективный.
p.s. поддерживает WinApi

slesh
25.04.2010, 11:47
Ява, питон, перл, пхп и им подобные имеют недостатки:
- по полной программе нельзя использовать все особенности платформы
- код абсолютно не защищен от изменения или реверса.
Другое дело, что есть огромное число либ и всяких примочек к ним. Это увеличивает скорость разработки в разы, но с другой стороны производительность хромает конкретно. Да и не какой оптимизации сделать не удастся.

ss88
25.04.2010, 11:52
Вспомнил, тут вначале автор хотел Qt, для Java он тоже есть, называется Jambi.
Да и вообще, ИМХО, это один из лучших языков/платформ.
На работе (Exadel Inc.) все пишется на жабе и работает быстро, как серверные решения, так и клиенский софт, особенно нравится, как все бегает под Андроидом.

scrat
25.04.2010, 14:23
Можно ещё попробовать связку Web + Mozilla Prism

Qwazar
25.04.2010, 15:14
Ява, питон, перл, пхп и им подобные имеют недостатки:
- по полной программе нельзя использовать все особенности платформы
- код абсолютно не защищен от изменения или реверса.
Другое дело, что есть огромное число либ и всяких примочек к ним. Это увеличивает скорость разработки в разы, но с другой стороны производительность хромает конкретно. Да и не какой оптимизации сделать не удастся. Дык не стоит использовать Java для несвойственных задач (и ты зря поставил эти технологии в один ряд, Java в одном ряду с .Net, но не с теми языками, что ты перечислил). Всегда можно докупить дополнительные сервера, т.к. разработка на Java подразумевает разработку масштабируемых предложений, то вырастет и производительность.

Про скорость работы: в тех задачах под которые заточена Java, скорость работы имеет последнее значение, т.к. задержки при работе с сетью перекрывают практически любые проблемы недостаточной оптимизации. К тому же почти в любом случае стоимость работы программиста дороже любого железа, а Java заточена под быструю разработку распределённых приложений. Т.е. оптимизация в том виде в котором её понимают C/C++ программисты совершенно не нужна. (Я не говорю об алгоритмической оптимизации).

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

По теме - gui на Java не люблю, по мне Qt выглядит гораздо красивее. Но разработка на Java конечно проще и быстрее, и не требуется перекомпиляции.

З.Ы.
.Net не подходит для кросcплатформенной разработки, т.к. Mono - несчастный калека.

Flame of Soul
25.04.2010, 15:25
Ocaml-кросплатформенный, компилируемый, функциональный, объектно-ориентрированный, не самый шустрый в плане скорости, чуть повыше чем у питона, но скорость разработки тоже не плохая, ну и как плюс баги ловить не придется.

Есть возможность на Haskell, но долго к синтаксису привыкать придется дня три не меньше.

Lazarus-под три основные платформы есть, если дельфинчик не проблема тогда и это тем более.

Ну и вообще вариантов очень много...

Serbies
26.04.2010, 21:23
Во-первых что бы решить что юзать кроссплатформено яву или скриптовый язык нужно определицо что мы хотим: десктоп приложение с кавайным оформлением и доступом на локальные ресурсы, или же некое централизованное приложение, или мб нужен быстрый скрипт для упрощения работы(сюда кста можно и вписать терминал для работы офисных работников).

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

А почему никто не вспомнил простой C/C++ - если не использовать винапи и писать не на висуал студии - то легко можно переделывать исходник от одной платформы для другой - правда надо будет перекомпилировать - опять не дочитал сообщения выше - считать удаленым

Ra$cal
26.04.2010, 21:34
чистый C\C++ не годится для гуя. Для мобилок он по сути под нокию, а там вроде как по дефолту все есть.

ss88
27.04.2010, 01:38
А почему никто не вспомнил простой C/C++ - если не использовать винапи и писать не на висуал студии - то легко можно переделывать исходник от одной платформы для другой - правда надо будет перекомпилировать
Хм.... У вас среда разработки определяет качество программы?
Писать можно не плохо и в блокноте. Например, для меня, одним из основных преимуществ монстровидных сред разработки является code-assist, остальное - правлю руками. Такой выбор неудивителен, т.к. я Java-developer, а эта платформа всем хороша, кроме средств разработки, которые сами находятся в непрерывной "альфе", особенно это касается плагинов к эклипсу ))))

По-прежнему, остаюсь при своем мнении, что Java - один из лучших вариантов для кроссплатформенной разработки. Ставим UTF-8 для исходников и вперед, к светлому будущему :)

Согласен с Qwazar'ом насчет серверного применения, потому как докупить железяку намного дешевле, чем Senior Java Developer'a )))

ИМХО!!! Юзайте Java и будет вам счастье ))))

scrat
27.04.2010, 23:55
Titanium (https://www.appcelerator.com/) выглядит неплохо
Вот я тут, кстати, под него сейчас девелоплю. Очень интересная штука. Гуй пишется на html+js+python/ruby/php. При чём управление DOM-ом идёт как через js, так и через python/ruby/php, у них там общая область видимости объектов. Код автоматически деплоится для win, mac, linux в виде нативных приложений. Генериться всё автоматически и выдаются только ссылочки на инсталлеры. Ко всему тому у них там своё API (http://developer.appcelerator.com/apidoc/desktop/latest) для всяких штук. Ещё есть поддержка разработки под iPhone/iPad(только под маком) и Android.