LINUX.ORG.RU

Кроссплатформенный ЯП


0

2

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

кроссплатформенность (т.е. всякие .NET отсекаем, Mono считать не будем), адекватная работа с GUI (не через какие-то полудохлые проекты, последний раз обновлённые в двухтысячном), коммюнити, документация

Из очевидных кандидатов пока что только Java.

С++ конечно можно, но я думаю, что это довольно сложно будет для освоения и написания чего-либо большого без должного опыта.

Есть какие-нибудь варианты?



Последнее исправление: Rulexec (всего исправлений: 1)

Ответ на: комментарий от hippi90

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

Rulexec
() автор топика

как уже сказали - бери C++ и Qt

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

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

trashymichael ★★★
()

Lazarus/FreePascal

http://freepascal.ru/article/raznoe/20060317093828/

http://procoder.info/index.php/articles/13/183-lazarus-delphi

LCL (Lazarus Class Library) осуществляет непосредственное обращение к графическим средствам платформы, что делает приложение более быстрым и надежным. С другой стороны, для Linux Вам придется компилировать его отдельно для каждого графического интерфейса (GTK, GTK2, Gnome, Carbone).

le_legioner ★★
()

как бы тебе мягко сказать... что ты подразумеваешь кроссплатформенным?

Mono не считать? с какой стати? GUI через GTK#, надеюсь ты не споришь что GTK все еще далеко до забвения

далее, С++, с какой стати ты считаешь что писать кроссплатформенную программу на C++ является хоть сколько бы то ни было сложной задачей???

вот бери Qt - там есть Qt3D, графика, полностью ОСенезависимая сборка, ты даже вероятно сможешь написать очень крупный проект на Qt и он будет без малейших на то усилий компилировать под чем хошь

так что и Qt3D/QtOpenGL и C++/SDL и Mono/OpenTK очень даже варианты

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

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от Rulexec

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

В виде *.pyc-файлов. Говорят, правда, что они достаточно легко декомпилируются.

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

В виде *.pyc-файлов. Говорят, правда, что они достаточно легко декомпилируются.

Считай, что *.pyc и *.py - это одно и то же.

r2d2
()

Java - хороший выбор, еще о Qt подумай. и собственно все.

mopsene ★★★
()

С++ конечно можно, но я думаю, что это довольно сложно будет для освоения и написания чего-либо большого без должного опыта.


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

delete83 ★★
()

Из очевидных кандидатов пока что только Java.

Так вперед! Java не ждет!

Ginki
()

Как уже отметили выше, Qt/C++ - оптимальный вариант.

unfo ★★★★★
()

ЯП ??? :) На сегодняшний день язык программирования почти не важен. Важно наличие качественных библиотек, возможность подключать библиотеки на других языках.

кроссплатформенность: free pascal + lazarus, java , C/C++ , python, ruby, php, C#, JavaScript... тысячи их

адекватная работа с GUI : lazarus, java, Qt + C++, python

коммюнити,документация: java, Qt + C++, python

Стыкуемость с большинством существующих библиотек разного рода: Qt + C++, python

Поддержка web: java, python

Возможность создания низкоуровневых, системных, 3D приложений: Qt + C++, python + C

Качественный современный язык без кучи дерьма и устаревших концепций: java,python

Наличие статической типизации, без которой в больших проектах лучше сразу повесится: Qt + C++, java

dmitryalexeeff
()

Java для игрового проекта это бред, тебе нужен C++ или Python. Если боишься, что сложно писать на С++, тогда пиши на бэйсике змейку ;)

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

Разработчик Minecraft смотрит на тебя как на говно

ага, привет ему

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

> Качественный современный язык без кучи дерьма и устаревших концепций: java,python

Как минимум, один из этих языков морально устарел.

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

> Common Lisp уже советовали?

Противоречит вот этому:

С++ конечно можно, но я думаю, что это довольно сложно будет для освоения и написания чего-либо большого без должного опыта.

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

и правильно сделают, не sbcl же ТС советовать, а LispWorks мало того, что стоит копейку, так и его список «LispWorks in Action» крайне мал и забавен, особенно, что касается гуевых программ, которые судя по всему делали левой ногой в 90-х

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

тогда уже Racket, ибо CL не удовлетворяет вот этому:

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

Reset ★★★★★
()

Игры и кроссплатформенность?
Что за бред? Автор, ты накурился?

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

Надо смотреть по платформе, короче.
Для яблоплатформ очевидным выбором будет objc и соответствующее API яблоплатформ.
Для винды и хуящика это будет C#, например(C++ реально не нужен если ты не выжимаешь самые последние соки из железа(но такое делают только AAA-тайтлы. Ты же не AAA-тайтл пишешь - иначе бы не спрашивал)).
Для андроида это будет жаба, с уклоном на API Dalvik.

Для линукса игры писать тупо никому не надо(скубенческие поделки на бидоне не считаем), и ты такой херней не страдай.

lovesan

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

ах, ну, да, и для всяких сраных приставок это обычно Си или плюсы - с учетом, опять же, своих каких-то приставочных API(и ABI, и прочего).

anonymous
()

Есть какие-нибудь варианты?

Node.js

Кроссплатформенность. ГУЙ (через браузер). Сообщество разработчиков. Документация.

Macil ★★★★★
()

И, кроссплатформенность языка сама по себе ничего не стоит(любой язык уровнем выше Си и C++ - кроссплатформенный), и ничего не дает(потому что пиши хоть на хаскеле, но платформу деплоймента учитывать придется, по куче причин - начиная с размера памяти или модели многопоточности, и заканчивая вменяемыми GUI(ни один т.н. кроссплатформенный GUI-фреймворк вменяемым не является, т.к. является общим подмножеством GUI-подсистем всех таргет-платформ, т.е. дико кривой урезанной их версией)).

lovesan

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

Python компиляет в байт-код, собственно проприетарщики так и делают, распространяют *.pyc файлы.

предположим у нас есть файл test.py

$ cat test.py

def secret_foo(bar):
    print bar

if __name__=='__main__':
    secret_foo('it is a very secret string')

компилируем файл в .pyc:

>>> import py_compile
>>> py_compile.compile('test.py')

и декомпилируем файл uncompyle2`ом

$ uncompyle2 -o . test.pyc
# 2011.12.26 16:32:10 GET
+++ okay decompyling test.pyc 
# decompiled 1 files: 1 okay, 0 failed, 0 verify failed
# 2011.12.26 16:32:10 GET

смотрим результат:

$ cat test.pyc_dis

def secret_foo(bar):
    print bar


if __name__ == '__main__':
    secret_foo('it is a very secret string')

diff показывает разницу в несколько пробелов. всё остальное на месте.

На самом деле, закрыть/обфусцировать код на питоне можно, но вот только потребует много писанины на Си.

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

особенно, что касается гуевых программ, которые судя по всему делали левой ногой в 90-х

такой динамической стат графики как в http://forrest.psych.unc.edu/references.html я например долго не встречал.

Вот например по теме всплывшей хорошая дискуссия без метания ... http://www.johndcook.com/blog/2011/04/26/the-myth-of-the-lisp-genius/

psv1967 ★★★★★
()

Mono считать не будем

По каким таким причинам? Самый подходящий вариант наряду с Java.

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

Как минимум, один из этих языков морально устарел.

python?

lazyklimm ★★★★★
()

Python, Vala, C + GTK, C++ + {gtkmm, Qt}

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

Возможность создания низкоуровневых, системных, 3D приложений: Qt + C++, python + C

Качественный современный язык без кучи дерьма и устаревших концепций: java,python

Скажу за свою жабку. Ты два раза ошибся.

1) На Java на ура пишется 3D

2) В Java куча дерьма и устаревших концепций.

vertexua ★★★★★
()

как вариант FreePascal

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