Платформа независимые языки
Я немного искал другой независимый от платформы язык, такой как Java.
Есть ли другие языки PI?
Спасибо
11 ответов
Независимость от платформы - не совсем четко обозначенный термин. Это может означать разные вещи для разных людей. Например, некоторые люди говорят, что C - это PI, другие - что нет. Иногда люди сталкиваются с большими трудностями, чтобы заставить код на C работать с configure(1), чтобы он мог компилироваться на множестве разных платформ. Означает ли это, что можно написать независимый от платформы C, но не все C независимы от платформы?
Возможно, Java (+ другое программное обеспечение, работающее на JVM) считается PI, потому что они определяют платформу, и ее реализация зависит от разных машин. Но они не всегда делают это должным образом - например, некоторые JVM (особенно ранние) имеют ошибки, которых нет у других (на других платформах). И, конечно, вы можете написать не чистый Java, который ссылается на нативный код - конечно, не зависит от платформы.
Несколько ответов показали, что языки сценариев не зависят от платформы. Расскажите об этом людям, которые пишут JavaScript и хотят, чтобы он работал на IE6, IE7, FF, Chrome, Safari и т. Д.!
Так что вам действительно нужно больше рассказать о том, что вы имеете в виду под "Независимостью от платформы", или почему вы спрашиваете.
Зависит от того, что вы имеете в виду под независимой платформой:
- компилируется на любой платформе с тем же исходным кодом: практически на любом языке
- Скопируйте на другую платформу и немедленно запустите: Любой язык сценариев, а также Java и.NET для платформ, имеющих эту платформу (JRE и.NET/mono).
Perl, php, схема, lisp, LOLCODE. Большинство интерпретируемых языков действительно.
Есть много пи-языков. Чего ты хочешь достичь? Просто хотите выучить другой язык? Или вы имеете в виду конкретный проект?
Некоторые примеры:
C / C++, C#, Java, Ruby, Python, Perl, PHP, Scheme, Lisp
Несколько полезных ссылок:
http://en.wikipedia.org/wiki/Lists_of_programming_languages
http://en.wikipedia.org/wiki/Comparison_of_programming_languages_(basic_instructions)
http://en.wikipedia.org/wiki/Comparison_of_programming_languages
Ruby, Lisp, Scheme, Scala, Clojure, Python, Perl, PHP, C# (через Mono)...
Честно говоря, список может продолжать расти. Гораздо проще сузить ваше определение независимости от платформы или спросить, какие языки зависят от платформы.
Мое предложение - это Скала. Вы можете использовать все API Java на JVM, и у вас будет более лаконичный, более мощный и понятный язык.
Java не зависит от платформы, потому что она работает на виртуальной машине Java (jvm). Есть другие языки, которые работают на jvm, все они, конечно, также PI. Скала является примером.
Почти каждый язык так или иначе независим от платформы, благодаря поставщикам или сообществу.
C / C++ (Boost, QT и т. Д.), C#/Java, Vala, Python/Ruby/Perl, PHP и т. Д. И т. Д., Все эти языки не зависят от платформы, единственное отличие состоит в том, что некоторые из них перекомпилированы на соответствующую платформу, некоторые работают поверх фреймворка, а другие являются интерпретируемыми языками.
Если вы имеете в виду компиляторы для независящего от платформы кода (например, Java VM для языка Java), вы можете искать CIL/MSIL (для C# и других основанных на.Net) и LLVM (низкоуровневую виртуальную машину, я думаю, можно найти компиляторы для Си и Хаскелла).
Практически любой язык может быть PI, если кто-то напишет слой, на котором он будет работать, с абстракцией основного оборудования.
Напротив, каждая платформа требует, чтобы кто-то написал такой слой, прежде чем на нем сможет работать язык PI.