Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Философия программирования > Какой кроссплатф-ый язык программирования лучше?


Автор: Vady85 12.12.2014, 23:38
Здравствуйте, форумчане!
Давно назрел у меня такой вопрос: какой системный язык программирования лучше использовать для разработки кроссплатформенных приложений: Windows, Linux, Android?
Основное требование: высокая производительность, минимум потребляемых ресурсов (процессор, память, т.к. используем сервер терминалов, а клиентов довольно много), возможность работы со многими видами СУБД. Для разработки медсофта с возможностью сбора данных с различных медицинских софтов от диагностических оборудований, работающих на самых разных СУБД (DBF, MS Access, MS SQL Server, MySQL и т.д.).
Ваши варианты и аргументы?

Автор: Stolzen 13.12.2014, 00:32
Под перечисленные требования (разве что кроме минимума ресурсов) лучше всего подходит джава. 

Автор: Vady85 13.12.2014, 00:40
Цитата(Stolzen @ 13.12.2014,  00:32)
Под перечисленные требования (разве что кроме минимума ресурсов) лучше всего подходит джава.

А, скажем, python, не подходит? Под винду и линукс делают программы. Под андроид вроде есть SDK.
На Си кто-нибудь кодит? Еще варианты?

Автор: kosmonaFFFt 13.12.2014, 21:40
Конечно C++, желательно версии C++11...
Если нужен GUI - подойдет Qt, + в нем есть механизм работы с БД и плагины к различным СУБД, не говоря уже о работе с сетью, XML и прочих плюшках.

Автор: Vady85 13.12.2014, 22:12
Цитата(kosmonaFFFt @ 13.12.2014,  21:40)
Конечно C++, желательно версии C++11...
Если нужен GUI - подойдет Qt, + в нем есть механизм работы с БД и плагины к различным СУБД, не говоря уже о работе с сетью, XML и прочих плюшках.

Спасибо! Про Qt я в курсе, и обязательно буду его применять.
Хотелось бы реальных сравнений с другими кроссплатформенными языками программирования.

Автор: kosmonaFFFt 13.12.2014, 22:19
Java и .NET хоть и позволяют, с определенными ограничениями писать кроссплатформенный софт, но Java/.NET под декстоп и под андроид немного разные вещи - под андроид все равно какую-то часть кода придется писать отдельно (не получится использовать Android UI API под десктопе, так же как и Swing/JavaFX под андроид; у .NET проблемы с WinForms/WPF под Linux, для андроида, насколько я знаю, нужен Xamarin).

Почему не рассматриваете возможность сделать веб-интерфейс?

Автор: kemiisto 14.12.2014, 11:27
Цитата(Vady85 @  12.12.2014,  22:38 Найти цитируемый пост)
Давно назрел у меня такой вопрос: какой системный язык программирования лучше использовать для разработки кроссплатформенных приложений: Windows, Linux, Android?

Зачем здесь прилагательное "системный"?

Цитата(Vady85 @  12.12.2014,  22:38 Найти цитируемый пост)
Основное требование: высокая производительность, минимум потребляемых ресурсов (процессор, память, т.к. используем сервер терминалов, а клиентов довольно много), возможность работы со многими видами СУБД.

Навскидку: С++11, Ada, Eiffel, D, Go, OCaml, Modula-3.

Добавлено через 3 минуты и 55 секунд
А, ну и вот это
Цитата(Vady85 @  12.12.2014,  22:38 Найти цитируемый пост)
кроссплатформенных приложений: Windows, Linux, Android

конечно, фантасктика. Можете даже не мечтать. Мобильный клиент придётся писать отдельно в любом случае. И писать желательно под тамошний родной SDK, т.е. на Java. Хотя, может, и на Qt что-то получится.

Автор: Vady85 15.12.2014, 14:27
Цитата(kosmonaFFFt @ 13.12.2014,  22:19)
Почему не рассматриваете возможность сделать веб-интерфейс?

У веб-интерфейса есть свои недостатки, а именно динамичность. JavaScript+HTML+CSS в разных браузерах - сплошной геморрой (очень сильно сказывается на скорости разработки необходимость в предварительном тестировании браузеров всех версий). Плюс некоторые фишки со временем попадают в deprecated. И еще PHP на разных серверах с разными настройками с разными версиями работает по-разному. Проверено лично многолетним опытом. И еще эти все вышеперечисленные языки не являются компилируемыми, что серьезно сказывается на производительности. И еще попробуйте портировать MS Access на линукс-сервере, не говоря уже о других вещах.
А тут откомпилировал с нужными библиотеками, и всё.

Автор: MyWeb 3.6.2015, 17:38
Джава - универсальный.

Автор: Се ля ви 1.7.2015, 16:12
Цитата(Vady85 @  15.12.2014,  14:27 Найти цитируемый пост)
У веб-интерфейса есть свои недостатки, а именно динамичность.

Динамичность интерфейсных технологий? Это минус? По-моему, как раз - плюс.

Цитата(Vady85 @  15.12.2014,  14:27 Найти цитируемый пост)
JavaScript+HTML+CSS в разных браузерах - сплошной геморрой (очень сильно сказывается на скорости разработки необходимость в предварительном тестировании браузеров всех версий)

IMHO, Вы немного отстали от рынка. Сейчас не 90-е и даже не 2000-е, а 2010-е - после выхода IE 9 и тем более после перехода Opera`ы на WebKit эта проблема практически ушла, роли распределились примерно так:
  • WebKit - Наиболее универсальный браузерysq движок. Его реализации (по сути fork`и) практически не отличаются - вполне можно, протестировав в нём, успокоиться за подавляющее большинство пользователей. На этом же движке крутятся все мобильные браузеры.
  • Gecko - Инновационный, "бегущий впереди паравоза", наиболее интересный для лабораторных проектов движок. Тестировать в нём можно при желании охватить гиков, которых не так уж много (в основном - пользователи Linux).
  • IE - в целом тут всё намного лучше, чем было раньше (до выхода IE9), но даже те немногие минусы, что есть - с лихвой компенсируется тем, что MS практически потеряла рынок, почти все пересели на Chrome и другие WebKit-браузеры, так что в целом можно на них и забить, да и в любом случае они сейчас попку рвут, что бы реализовать все HTML5/CSS3/ECMAScript5,6,7 версии стандартов.
Кроме того, подавляющее большинство не только классических (JQuery, Knockaut, Backbone), но и революционных библиотек (Angular, React) включают work-around`ный функционал, поддерживая IE8+ и тестируются подо всё, включая мобильные браузеры.

Цитата(Vady85 @  15.12.2014,  14:27 Найти цитируемый пост)
Плюс некоторые фишки со временем попадают в deprecated.

Как и в любом другом языке. И, опять же, можно просто не update`ить используемые библиотеки, когда выйдут версии, не поддерживающие нужный Вам scope браузеров. Но в целом я не встречал существенных проблем с обратной совместимостью - тот же HTML5 эволюционно вывели из HTML`а 4-го, хотя это было, прямо скажем, очень непросто сделать.

Цитата(Vady85 @  15.12.2014,  14:27 Найти цитируемый пост)
И еще PHP на разных серверах с разными настройками с разными версиями работает по-разному.

Так не пишите на PHP. PHP как язык - примитивный и не зрелый, явно дрейфующий в сторону Java. Зачем его использовать, если можно просто взять и использовать Java? Ну а как платформа он довольно слаб и подходит лишь для небольших проектов (Facebook - не контрпример, поскольку они его под себя очень сильно перепилили).

На сервере прекрасно работает, действительно, JVM как платформа, наиболее зрелая из существующих сегодня, ну а язык можно брать любой, которым владеете и который подходит, благо их там целый ворох сейчас - Groovy, Scala, Clojure, Kotlin, Ceylon, Ruby, Python, даже реализация Prolog`а есть!.. Сама Java, как язык - старовата, в ней много устаревшего наследственного неадеквата, от которого тяжело избавиться и всяких громоздких синтаксических неудобств. Я последнее время стараюсь ориентироваться на Clojure - это по сути современный Lisp для JVM, на нём, например, можно реализовать концепцию единого языка на Back-end`е и Front-end`е - есть ClojureScript, компилирующийся в JavaScript. Просто идеально ложится на React!

Автор: _zorn_ 4.7.2015, 06:44
Цитата
кроссплатформенных ... высокая производительность ... минимум потребляемых ресурсов

Как говорится вычеркните лишнее. Java... минимум потребляемых ресурсов ?
Вообще на потребляемость уже давно не смотрят. Железо, о котором только можно было мечтать во времена написания всяких книжек по программированию, уже давно бытность. 32 Гб оперативки это стандарт. Может все же вычеркните этот пункт ? smile
Для него нужно только на си писать и всегда следить за памятью. Но это будет дороже, чем купить еще одну планку памяти smile
А по производительности - виноват не язык, а алгоритмы по которым пишут.

Так что выбирайте который по душе.

Добавлено через 8 минут и 2 секунды
Цитата(Се ля ви @  1.7.2015,  23:12 Найти цитируемый пост)
 PHP как язык - примитивный и не зрелый, явно дрейфующий в сторону Java. Зачем его использовать, если можно просто взять и использовать Java?

Наверное потому что PHP проще развернуть ? На каждом ссаном хостере есть PHP. 

А примитивность у вас в голове же ) Будем бодаться холиваром ?

Добавлено через 11 минут и 14 секунд
Цитата(Vady85 @  15.12.2014,  21:27 Найти цитируемый пост)
И еще PHP на разных серверах с разными настройками с разными версиями работает по-разному.

Поэтому не надо полагаться на стандартные функции, а использовать что то универсальное. Какой нибудь компонент из symfony например. Там все учтено.

Автор: Sartorius 6.7.2015, 11:39
Возможно будет полезным haXe http://haxe.org/ с OpenFL например

Автор: Се ля ви 20.8.2015, 20:21
Цитата(_zorn_ @  4.7.2015,  06:44 Найти цитируемый пост)
Наверное потому что PHP проще развернуть ? На каждом ссаном хостере есть PHP. 
А примитивность у вас в голове же ) Будем бодаться холиваром ?

Простота разворачивания - это для проектов какого уровня? Хостинги вообще сейчас уступают место облакам - а там ставь себе всё что хочешь.
Можно и пободаться, но предмета не вижу: я писал именно про платформу, а не про язык, это - разные вещи: одно дело - библиотеки, фреймворки и компоненты на все случаи жизни, когда за какую бы задачу ты ни взялся - без труда найдёшь кучу инструментария, и совсем другое - язык, при помощи которого ты всем этим оперируешь. Платформу JVM можно сравнивать по мощности с платформой .NET - это да, но с PHP...
Java же именно как язык действительно не идеальна, хотя и всё равно лучше PHP, на мой взгляд - но это уже, действительно, дело вкуса, так что если Вам действительно так уж нравится PHP именно как язык - без проблем, есть несколько реализаций PHP как языка для JVM, т.е. его код так же компилируется в байт-код. Например, есть открытый проект JPHP и коммерческая реализация P8 от IBM`а - пожалуйста, нравится PHP - пишите на нём (кстати, есть реализации и для платформы .NET). Язык - это, ведь, инстурмент, так что либо Вы выбираете оптимальный инструмент для решения своей задачи, либо тот, кому нужно решить задачу, выбирает Вас или не Вас, зная, что Вы предпочитаете определённый язык...

Автор: DenZurin 21.2.2016, 01:41
Java, C#/WinForms, C++/Qt, Lazarus (open source клон Delphi) - вот в принципе все варианты, выбирай любой
Все кроссплатформенны и отлично работают с БД.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)