Десктопные приложения на интерпретируемых языках. Как это работает?
Вопрос. Я начал изучать всякое программирование потихоньку, и стало интересно. Насколько я понимаю, когда ты делаешь приложение на каком-то компилируемом языке - ты компилируешь исходный код, получаешь бинарник, и если он был собран под правильную архитектуру - он скорее всего запустится. Ну, это если очень упростить всё. Но я слышал, что люди делают десктопные приложения на всяких там питонах и других интерпретируемых языках. Можно ли так сделать, и если да - как сделать приложение на подобном языке, которое не будет требовать от конечного юзера установки интерпретатора со всеми модулями и остальным окружением? Говорю про питон потому, что начал потихоньку его учить. Но сам вопрос мне интересен в целом, без привязки к конкретному языку.
В заголовке написал "десктопные", потому что остальные обычно предполагают либо наличие окружения, либо предполагают, что человек в состоянии его установить. Так - совсем не обязательно именно десктопные.
UPD: Речь тут не обязательно о линукс, в линукс то понятно, там зависимости будут. Случайно этот тег поставил). Речь об OS X и возможно Windows UPD 2: Всем спасибо! Теперь вроде понятнее. Как я понял, если у пользователя нет окружения и нельзя поставить зависимости - значит надо упаковать это окружение для пользователя в само приложение.
Приложение можно комплектовать необходимой версией интерпретатора и зависимостями в случае чего.
Но если говорить о Linux - то скорее всего будет просто указана зависимость в пакете от интерпретатора.
как сделать приложение на подобном языке, которое не будет требовать от конечного юзера установки интерпретатора со всеми модулями и остальным окружением?
Интерпретируемые языки требуют наличия интерпретатора. Ваше приложение может быть со встроенным интерпретатором (обычно игры так делают).
Десктопные приложения на интерпретируемых языках. Как это работает?
Работает так как запрограммировано)). Откройте /etc/init.d/cron вот вам пример программулины на баше, если запустите этот файл - увидите как она работает.
Что касается питона - в чем проблема, поищите приложения, написанные на нем и почитайте код.
Можно ли так сделать, и если да - как сделать приложение на подобном языке, которое не будет требовать от конечного юзера установки интерпретатора со всеми модулями и остальным окружением?
Если язык интерпретируемый, то такое не возможно. Это все равно, что дать вам флешку с файлом и не дать вам компьютер, на котором вы его просмотрите. В лучшем случае, вы можете написать различные скрипты, которые перед запуском будут проверять наличие в системе необходимых компонент и уведомлять о необходимости их установки. (или просто не запускать ваше приложение. или, возможно, даже, готовить окружение для пользователя самостоятельно)
Можно ли так сделать, и если да - как сделать приложение на подобном языке, которое не будет требовать от конечного юзера установки интерпретатора со всеми модулями и остальным окружением?
Не можно. ;-)
Насколько я понимаю, когда ты делаешь приложение на каком-то компилируемом языке - ты компилируешь исходный код, получаешь бинарник,
Сравнительное обозрение языков программирования
Из всех используемых языков программирования (несколько десятков) компилирующих осталось на сегодня, собственно, всего 3 ... даже, если точнее, 2.5: C / C++ и Go.
Вымирают как мамонты ;-)
Олег Цилюрик: нет, серьезно, объясните пожалуйста, что не так?) Я не сильно в этом разбираюсь, но как раз хочу разобраться. Джава то ладно, она же вроде компилируется в байткод, который, в свою очередь, интерпретируется виртуальной машиной? Или я ошибаюсь? Но C# же компилируемый, разве нет? И остальные, что я перечислил?
Тёма Макеев:
C# - это вообще жалкое убоище ... плагиат из Java, только хуже ;-)
Всё что вы перечислили остальное - тоже требует исполняющей системы, языковой виртуально машины (кроме Objective-C, в некоторой мере, естественно - но это и есть C! - 1 из 2.5-й языков ;-)).
Я не сильно в этом разбираюсь, но как раз хочу разобраться.
Весь C# ... а если шире, то всё что .NET - это жалкий плагиат из Java с такой же точно исполняющей виртуальной машиной.
Было создано Microsoft в обиду на то, что Sun Microsystems, автор и создатель Java, отказывал им в стремлении припасть в экстазе к Java
Олег Цилюрик: Спасибо, интересно почитать! Да и вроде вполне понятно.
Вот только возник вопрос. "Важной отличительной особенностью UNIX файловой системы есть то, что в путевых именах большие и малые литеры считаются совершенно разными, поэтому показанная последовательность команд создаст в одном каталоге два совершенно разных файла!". OS X - это же в большей степени UNIX, чем Linux даже (который, как известно, is not unix). Но там по умолчанию не case-sensitive файловая система. И это вроде бы не перестаёт её делать UNIXом? Или вы о UFS?
Ну с какой это стати? ;-)
MacOS подогнали под более-менее видимость like UNIX, POSIX систем ... тем более, что стандарт POSIX - Portable Operation Systems ... и создан POSIX (в первоначальном виде) Ричардом Столлманом, основателем FSF и GNU ... ну никак уда MacOS (всё семейство) не вписывается.
А Linux, в его изначальном виде, Линус Торвальдс списал с OS Minix Эндрю Таненбаума, который свой Minix (внешне, не по архитектуре), ещё в 80-е годы затачивал "как Sun OS". ;-)
Тёма Макеев:
Вас обманули ;-)
Это игрища вокруг дележа рыночного бабла - к техническим вопросам это касательства не имеет.
(Microsoft Windows NT тоже когда-то на POSIX ... международно сертифицировали ;-) ;-) ;-) )
Олег Цилюрик: Ну просто если уж мы говорим о стандартах - наверняка контора, которая занимается сертификацией по ним - дело говорит. Само собой, всегда можно очень далеко уйти от изначальных принципов, но подогнать всё под стандарт, но всё-таки если компания, которая занимается сертификацией UNIX говорит, что это UNIX - я ей пожалуй поверю. Ну или с другой стороны - может объясните, почему по-вашему OS X не является UNIXом?)
Олег Цилюрик: Нет, серьезно, можете пожалуйста объяснить, что тут не так? Есть компания, которая занимается сертификацией на соответствие разным стандартам, OpenGroup. Известна больше всего по как раз сертификации на соответствие стандартам UNIX. Сама компания является результатом слияния X/Open и OSF, которая, в свою очередь, и занималась разработкой самого стандарта UNIX. Вышеупомянутая компания сертифицировала на соответствие стандарту UNIX 03 каждую версию OS X c 10.5 по 10.11, кроме 10.7. Из этого можно сделать вывод, что OS X является UNIX-системой, наряду с Solaris, AIX, HP-UX и прочими, которые проходили сертификацию на соответствие стандарту UNIX 03 во всё той же компании, OpenGroup. Так что именно тут не так?
Тёма Макеев:
Нет такой компании - есть коммерческие спекуляции с рыночным брендом UNIX.
А по факту UNIX есть то, что понимает под этим POSIX, Ричард Столман, FSF и GNU.
Всё остальное - кипение говн и страсть к хапанию бабла на халяву.
И всё. На этом закончили. Больше меня не доставать вашими ... глубокими изысканиями.