LINUX.ORG.RU

Кроссплатформенность Python

 , ,


0

2

Если в винде я создам проект на PyCharm (не используя виндовую фигню типа directx и подобное), то данный Python проект будет одинаково работать и на винде, и на маке, и на линуксе?

Зачем? Например для эмулятора Xbox One - на винде (как минимум) играть в игры Kinect (или его аналоги)

★★★★★

В теории да, но на практике могут встретиться платформенные ограничения. Например, вот такие: https://docs.python.org/3/library/select.html

This module provides access to the select() and poll() functions available in most operating systems, devpoll() available on Solaris and derivatives, epoll() available on Linux 2.5+ and kqueue() available on most BSD. Note that on Windows, it only works for sockets; on other operating systems, it also works for other file types (in particular, on Unix, it works on pipes).

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

Если придётся писать куски платформозависимого кода, помни, что у тебя есть https://docs.python.org/3/library/platform.html, который позволит тебе удобненько узнавать, на чём ты запущен.

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

Эмулятор Xbox One? На питоне?

Какие-то разрабы зачем-то пилят эмулятор Nintendo Switch на си шарпе - при том, что есть Yuzu.

Что не так с идеей эмулятора Xbox One на питоне?

ConLenov ★★★★★
() автор топика
Последнее исправление: ConLenov (всего исправлений: 1)
Ответ на: комментарий от ConLenov

То, что python медленное GC говно, без нормальных биндингов к гапи?) Что ты там выводить то собрался?)

Шарп близок по скорости к нативным языкам, спасибо JIT, и общей ориентированности языка к нативу(например, крутой маршаллинг, возможно напрямую дергать указатели, вместо дрочева манагед массивов есть memcpy, и.т.п).

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

Ну а игры на юнити как работают по твоему?) Mono еще с нулевых существует, и более того, действительно реализовывает даже WinForms поверх GTK. Есть и .net core.

Есть ещё il2cpp, но это чисто юнитевская штука(до il2cpp юзали mono на ВСЕХ платформах, даже под win).

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

Если речь именно про игровую направленность - был когда-то фреймворк Xna, на нём писались игры для WP7, Xbox Arcade, и собственно винды. Есть его кроссплатформенный аналог - MonoGame.

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

Для эмулятора Xbox One полюбому нужен комп мощнее хуана - как минимум 2 терафлопса (CPU, GPU, RAM). Помоему скорость питона или си шарп не критична

ConLenov ★★★★★
() автор топика

А к чему тут упоминание pycharm? это же просто IDE

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

Например то, что питон это интерпретируемый яп без поддержки JIT. Эмуляция другой платформы будет адово тормозить

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

Не, там вроде есть штуки типа ironpython, которые (вроде-бы) типизируют его, но там хз если честно.

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

Питон кроссплатформенный (к тому же многофункциональный), а дотнет долгое время был завязан на винду (я до сих не знаю полностью отвязали от винды)

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

Питон - скриптовый язык, сишарп - язык программирования, заканчивай этот балаган.

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

Он хочет писать в скриптовом стиле.

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

открыл и тут-же закрыл, зачем ты это принес? Зачем я отвечаю на этот камент, всем минус 20 в этом треде :)

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

Да, конечно, при написании адово ресурсоемкой эмуляции RISC процессора POWER на CISC архитектуре x86_amd64 совершенно не важно, написан эмулятор на интерпретируемом или компилируемом языке программирования.

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

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

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

Хочется, чтобы эмулятор Xbox One был и на x86, и на Arm, и на Windows, и на Linux, и на Android, и на Mac, и на iPad

Оптимальнее Python я не знаю

ConLenov ★★★★★
() автор топика
Последнее исправление: ConLenov (всего исправлений: 1)
Ответ на: комментарий от ConLenov

Ты собираешься на дохлом ARM процессоре iPad или Android устройств запускать эмулятор Power процессора на Python? Серьезно? Да просто вычислительной мощности нормально не хватит.

Vsevolod-linuxoid ★★★★★
()
Последнее исправление: Vsevolod-linuxoid (всего исправлений: 2)
Ответ на: комментарий от ConLenov

Просто немного фактов, чтобы ты понял, о чём я говорю:

Характеристики PlayStation 3: https://en.wikipedia.org/wiki/PlayStation_3_technical_specifications

Требования эмулятора: https://rpcs3.net/quickstart

И это оптимизированный под x86_amd64 архитектуру эмулятор, написанный на C++, компилируемом языке программирования, и он всё ещё требует на порядок более мощное железо, чем оригинал!

А вот сравнение производительности Python (интерпретируемого языка) и C++: https://history-computer.com/c-vs-python-2/

C++ is anywhere from 10 to 100 times faster than Python

Vsevolod-linuxoid ★★★★★
()
Последнее исправление: Vsevolod-linuxoid (всего исправлений: 3)
Ответ на: комментарий от ConLenov

На котором запускали порт игры, а не эмулятор целой консоли на Python!

Vsevolod-linuxoid ★★★★★
()
Ответ на: комментарий от ConLenov

Да, а знаешь почему? Потому что сейчас такой эмулятор даже на нормальном языке написанный смогут вытянуть только очень мощные машины.

Vsevolod-linuxoid ★★★★★
()
Ответ на: комментарий от Aswed

Он хочет на простом в освоении языке программирования написать кросс-платформенный и независимый от архитектуры CPU эмулятор Xbox One.

Vsevolod-linuxoid ★★★★★
()
Ответ на: комментарий от ConLenov

Ты же вроде собрался эмулятор xbox делать а не офисное приложение. Что тебе нужно кроме окна для рендеринга opengl/metal/vulkan или что там у тебя?

Aswed ★★★★★
()
Ответ на: комментарий от Vsevolod-linuxoid

IPad Pro уже 5 лет как обогнал по мощности Xbox One. MacBook M1/M2 точно мощнее Xbox One. Речь идет о эмуляторе Xbox One, а не PS5

ConLenov ★★★★★
() автор топика

Странно, что на html'е не предложили написать, хороший вариант для эмулятора, кроссплатформенность, все дела.

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