Java, кстати - тема. Я до сих пор очарован штуковиной под названием "Idea". По-моему, язык, позволяющий на себе создавать столь красивые и мощные приложения (кроссплатформенные естессно), стоит, чтобы его изучали.
Код (Text): #include "stdio.h" int main(void) { printf("Hello!"); return 0; } Я могу спокойно её скомпилировать и в *nix и в win. Разве это не кроссплатформенность?
Ну вы блин даете. Вопрос "кроссплатформенный ли Си?" меня просто убил. Ответ: "нет". Точнее "НЕЕЕЕЕЕ-Е-Е-Е-Е-ЕТ!!!!!!!". Что значит выражение "Кроссплатформенный до компиляции"? Оно значит что существует компилятор Си под любую систему. И больше ничего. Можно написать компилятор Visual Basic для *nix, способный корректно обрабатывать любую конструкцию языка. Никому не нужно, но можно. VB станет кроссплатформенным? Кроссплатформенность - это возможность написать приложение, которое можно будет в скомпилированном виде перенести на другую систему. kostyl, нет, винду не писали из-под Unix Первую винду писали на паскале.
Кто такой мастдаевский API? Это набор способов взаимодействия приложений с ОС. То есть метод выполнить стандартное действие системы средствами системы, а не приложения. Можно подменить Windows API на API *nix? То есть по той же команде выполнять соответствующее действие другой ОС? Можно. Не вижу проблемы, кроме отсутствия смысла. Можно эмулировать Windows API на *nix, заменяя их нужными командами при компиляции? Тоже можно. Наоборот - из *nix в винду, намного сложнее. Многие действия винды иначе как через API вообще не сделать. Но скомпилированный на юниксе код VB не будет работать на винде. Говорить о кроссплатформенности языков вообще бессмысленно. Язык это синтаксис + набор ключевых слов, операторов, стандартных функций и классов. Можно реализовать компиляцию синтаксиса любого языка на любой платформе. Можно сделать компилятор языка Java только для Solaris. Просто надо разделять понятия "язык Java" и "технология Java". Java мультиплатформенна не потому что язык, а потому что она сама себе платформа. Волшебное слово JVM делает ее кроссплатформенной, и ничего более. Теоретически можно сделать подобие JVM для любого языка. Но пока их нет. .NET пока недотягивает. Дотянет - и кроссплатформенным станет любой язык в списке .NET
Мешает то, что соответствующих команд может и не быть. При чем первой проблемой будет простое создание окна с задаными параметрами.
Тоесть по твоему, например, Mozilla Firefox не является кроссплатформенной программой? Её ведь нельзя перенести с одной платформы на другую без перекомпиляции. Извини, но это бред.
Sergey89 Да, нельзя скопировать исполняемый файл из Linux и запустить его под Wndows. Кросс-платформенность достигается тем, что на этапе создания базы приложения описываются необзодимые логические условия для системы сборки (auto-tools или как их там правильно/CMAKE/etc) по платформам. тоесть #ifdefine и прочие. Поетому когда экзешник уже скомпилирован, то запустить его можно только на той платформе, на которую он думан. Запускать программы не зависимо от ОС можно только на виртуальных машинах типа Java и платформе .NET по той причине, что там весь АПИ уже абстрагирован в самой виртуальной машине и программист пишет код для виртуальной машины, а к деталям реализации он доступа не имеет. Что до PHP - одним им любой PHP разработчик быстро встанет в тупик. WEB разработка - это комплекс инструментов, которые нужно изучить в совершенстве - тот же PHP, MySQL, кеширование, поисковые движки (SphinX тот же), распределённые системы хранения данных и.т.д. - именно это позволит вам создавать и участвовать в серьёзных проектах с большими возможностями. В противном случае дальше среднего WEB программиста вы никуда не уйдёте. Вот лично я щас интересуюсь и изучаю MySQL под лупой, смотрю и пробую Apache Handoop FS, присматриваюсь к MemcacheDB и MemcacheQ, займусь SphinX в ближайшее время и.т.д. Я особо не лезу в HTML и JavaScript - я считаю это вообще отдельной наукой и тут лучше уступлю место настоящему проффесионалу, т.к. это довольно сложная работа, особенно если делать по уму, но тоже не стою на месте и юзучаю новинки, оптимизирую.
Psih, ну дак правильно и всё это кроссплатформенное ПО. Компилируемое, работающее на виртуальной машине или интерпретируемое ПО могжет быть кроссплатформенным. А утверждение, что мягко говоря, абсурдно.