Ответы:
все так. например, это обеспечивает Java
википедию читать пробовал?
А по-моему, это приложение, которое уже скомпилированное будет работать под разными системами.
Вот тут некоторые говорят, что человек - не тролль, представляете? Что он просто принял на грудь и слегка запутался в терминологии... Что ж, будем надеяться, что он протрезвеет, помутнение пройдет, и все станет нормально)
есть разные уровни кроссплатформенности. Тот, о котором вы говорите - кроссп.. на уровне исходных кодов.
есть еще, напирмер, как у java - на уровне бинаринков - там не надо компилировать для разных платформ, однажды скомпилированный код работает на разных платформах.
> А по-вашему, что не так с этим определением?
Потому что это кросс-компилируемость а не кросс-платформность
То что наш Ув Amon-Ra называет клиент-сервер - это архитектура кроссплатформенного обмена. Да есть такая - до сих пор - это two-tier или three-tier архитектура - к ним относятся в общем то все Вэб решения. Там есть платформенно-независимый клиент (это вот где я тут изливаюсь-браузер) есть кроссплатформенный вэб сервер (ну например Апач) и есть еще одна платформа - баз данных - где все наши месседжи хранятся. Вот и бегает оно туда сюда.. От платформы (у меня это Windows XP with IE 6.0) где-то там у Гугла Линух и наверное какая нить Базочка данных на (например) макинтоше.
Коллега Amon-Ra привел в индивидуальной переписке Wiki определение кросс-патформы или мулти-платформы:
Cross-platform software may be divided into two types; one requires individual building or compilation for each platform that it supports, and the other one can be directly run on any platform without special preparation, e.g., software written in an interpreted language or pre-compiled portable bytecode for which the interpreters or run-time packages are common or standard components of all platforms.
> Теперь насчёт обмена данными между различными платформами - а что это такое, по-вашему?
Смотрите - когда то не было стольких платформ (Замечу под платформой мы понимаем ОС - операционная система и приложения для нее) вернее их было очень много - Одних Юнихов штук тридцать на вскидку назову. И не могли все приложения работать на всех Осях это было трудно запустить Лотус на Юнихе или Сайбейс на НТ. Тогда начались зарождаться кросс-платформенные системы. Они занимались общением данных из одной ОС (например AS\400 или VMX) к другой - например HP-UNIX. Все что было нужно - это переслать файл и суметь его прочитать. Как ? Совершенно разные ассемблеры. Бинарики разные. вернее они то одинаковые но вот выполняют разные функции. А значит то что прочитано - не совсем то что написано...
И вот появился майкрософт со своим досом и виндоусом. И на каждом столе в каждом кабинете появился Маленький такой себе VAXик (для знатоков напомню что VAX/VMS - некогда продукт компании DEC (Digital Equipment Corporation) в своей архитектруной мало чем отличался от Windows NT - прорыва в этой технологии (1995 или около того) так вот сегодня такой ваксик (во многом благодаря MAC OS + iOS) у каждого из нас в кармане в виде iPhone (iPad or iPod) А задачи все те же самые - как прочитать то что написано в mobile формате - на машине уровня IBM 390
Вот это мы и называем Кросс-платформ . Компиляторы же нас интересуют мало. Компиляторы - это уже школьники пишут и считают, мы же занимаемся всем тем чем напичканы миллиарды страниц кода в том числе и на C/C++ Java C# F# Microfocus COBOL и еще тьма тьмущая чем. каждая ОС (платформа) имеет встроенные компиляторы. По умолчанию это бесплатное приложение Си. как стандарт. Java однажды созданная с целью общения между Клиентом Windows и сервером UNIX (SUN SOLARIS) на сегодня действительно заработала свое место под Солнцем. Но что это такое? Это машина устанавливаемая на некоей платформе (кстати не на всех платформах есть JVM) котороая считывает Java запросы. И все ради того чтобы одна платформа (Скажем Windows NT) считала файлы записанные на LINUX
> А по-вашему, то, что идёт по сети как-то зависит от платформы?
TCP/IP протокол тоже был частью такого кросс-платформенного внедрения
Коллега Amon-Ra перешел в лично - дискутируемую сферу спасибо я оценил но не буду повторяться. надеюсь Вы прочтете мое излияние по древу. Когда не было Windows не было никаких браузеров. Они появились примерно в то же время как и реальный оконный клиент (это я о 32 битовом VAX маде ин майкрософт на каждом столе) настало время и бизнес нужда все перевести на Окошки а ведь все данные были тогда в UNIX VAX OS 390 AS\400 и так далее и тому подобное. Появился TCP\IP протокол и все "вдруг" стали понимать кое что. По этому протоколу стали передаваться КРОСС платформенные фаилики. Появился браузер (первый промышленный если мне не изменяет память был Нетскейп о его жгучий толкатель Комьюсерв) Да да да - это был первый интерпретатор языка HTML ну если Вам нравится пусть будет Протокол (хотя там в названии слово Лангуадж = язык) Он (этот браузер) не входил тогда еще ни в какую ОС (платформу) но быстро вошел в стандард. поотому как и УНИХАМ надо было читать что написали в Виндах и Виндам надо было понять чего от них Юнихи хотят
> Скажите мне, чем задача передать файл между двумя одинаковыми системами проще, чем передать файл между двумя разными.
> Что такое кроссплатформенные фаилики?
Если будет интересно - завтра еще нарассказываю историй А пока домой пора :) Всем спокойной ночки
> Хорошо. Возьмём самую простую систему, com-кабель.
Ну до этого ком-кабеля были серийные порты типа RS-232 если кто нибудь еще помнит такое. Во времена "до виндовские" сусществовали терминалы и RS-232 был единой системой передачи сигналов ввода вывода. Ну это уже давно никому не интересно. Давайте лучше поговорим о кросс платформенности дальше - поближе к нашему тысячелетию. Смотрите - с появлением Windows NT появилось целое поколение новых программистов и отмерло старое поколение "терминальщиков" Начали появляться языки высокого уровня. Замечу что COBOL, FORTRAN, C, BASIC, ALGOL и иже с ними были языками третьего поколения. Даже не взирая на то что многие из них были объектно ориентированными. К четвертому поколению начали относить языки которые выполняли функции кроссплатформенности и главное - могли считывать данные из какой нибудь базы данных. Обычно базы данных размещались на мощных серверах (UNIX, IBM, AS\400, VAX\VMS) а представление данных (вместо терминальных экранов и ЦПУ) появилось на WIndows клиентах. Это и было архитектурой Клиент Сервер (изначально) и языки которые понимали и SQL (базы данных) и умели рисовать картинки (типа Visual Basic) стали появляться один за другим: Назову некоторые если интересно: PowerBuilder, PL-SQL, ABAP-4, PROGRESS 4GL, INGRES, T-SQL(+ VB).. Да и самое главное у Майкрософта появилась своя База Данных - MS SQL Server. и свой сервер - Windows NT. Единстевнным конкурентом Intel - based архитектуры тогда была OS/2 - производства IBM. Справедливости ради надо сказать что было и несколько UNIX разработанных под Intel - один из них SCO UNIX. Это были платные - до Linux решения. Но Майкрософт убил рынок своей мини VAX машиной. и единственным интересным противовесом стал Linux - который взялся (как нам тогда казалось) с Луны :) Никто не верил что какой то там Финский Любитель сумеет разбомбить все существовавшие Юнихи на корню. А смотри ка - получилось. Кто нибудь знает на сегодня какой нибудь UNIX не Linux?
Ну и в довершении к уже устоявшемуся поколению (моему поколению) проектировщиков и разработчиков клент серверных технологий появился Интернет. Это конечно пик всего. С появлением Windows появились клиенты и сервера - на одной (так сказать) платформе Интересным Твух-канальным (Two-Tieаr) решением тогда был MS Access. То есть у Вас есть маленькая себе базочка и к ней такой себе прикрученный окошко открыватель формочек. Да простят меня разработчики в Оффисной Среде - я никогда не был поклонником этого решения. Но замечу - программистов VBA - больше всего на земном шаре. Сегодня на VBA программируют все кому не лень . Это просто, интересно, поучительно - и в общем то нужно заказчикам. Востребовано. да так вот где то к середине 90-х стали появляться Web Server и пошло поехало. Мир перевернулся. ВОт именно тогда появилась эпоха Кросс-Платформенности. Появилась необходимость писать код для всех платформ - Я имею ввиду - для ВСЕХ платформ. Не для двух-трех - а для ВСЕХ. Тогда появилась JAVA. С этим продуктом всегда была неразбериха. Изначально шум был - Вот Нашлось!!! Свершилось!!! То единое Решение - для всех и сразу. Щас как сделаем... всех и Windows в том числе. Ага ... не тут то было. У Микромягких свое видение оказалось и они начали давить на .NET то есть все равно единого "Золотого" решения не получилось. Сама Java была разработкой SUN Solaris и в общем то выполняла функции такие же как уже наработанные библиотеки COM/DCOM у Windows. Идея заключалась в том чтобы вывести SUN продукцию на мини (клиентский) рынок. Заменить ДОС (Windows client (Win 95/98)) на терминальчики... Сдохла идея а вслед за ней и сама компания. Но продукты ее остались - Java, J2EE, MySQL еще куча разработок на сегодняшний день безхозных некоторые нашли применение. Например LAMP (Linux + Apache + MySQL + PhP)
Отличный вопрос мне задали в приватке "А что, спрашивают, клиент сервер вымирает?" Конечно вымирает. Наше поколение должно уйти на покой а вместе с нами и все то что мы наваяли. Хватит. надо новое что то. А что? Мой ответ и рекомендации - облака. Сейчас не осталось серъезной компании без движения в этом направлении. Что это такое? SaaS, PaaS, IaaS и прочие .... As a Service. Все сервера уходят в Облака, Клиенты перестают стоять на столах а перемещаются в карман. Вот там и будет наше (скорее Ваше) будующее. Так что смотрите... Еще один вопрос о Silverlight - это решение отличное и на мой взгляд имеет большое будующее.
Возвращаясь к кросс-компилировании и кросс-платформизации... с облаками и их повсеместным внедернием эта проблема должна отмереть сама собой. Библиотек написано столько - что их уже не прочитать. Дай бог узнать о них где нибудь... Не мучайте себя вопросом кросс платформ . Есть намного более серъёзные задачи. Ну вот - вреде я все сказал. Если будут вопорсы - буду рад ответить :)
Доцент Васильевич (Andrey Vegger)
честно говоря от этого бреда у меня в итоге разболелась голова.
Я конечно понимаю что вам в удовольствие так себя вести, но это через чур уже слегка..
Ух ты - Коллега Анна Фармакис и тут отписала.. И что же здесь то бред по-Вашему.. Мне действительно интересно (Конечно если не лечить на всю больную голову - уж простите мою навязчивость)
Ого какой большой холивар. O_O!
Ух ты Видно агументированность и глубину познаний... Склоняю свою седую голову Коллега. Ну давайте пообсуждаем эти замечания. Итак . Для начала о Бреде Сивой Кобылы. Кроссплатформенные фаилики и стали в общем то необходимостью создания псевдо компиляторов в том числе и Виртуальных Машин что производства Мелкомягких (это .NET совсем не C# Си Шарп) что производтва SUN Microsystems (JVM или Джава Вёртуал Машин) Как я уже объяснял выше где то - не с пустого места все это появилось. Бизнес так захотел. Не понравились бизнесу клиенты других производителей а Вот Мелкомягкие - ушли (и уходят на ура) А фаилики всем читать хотелось. Именно кроссплатформенные. Так что бы и на Сане и на АйБиЭме и на Винде выглядело все похожим. Так появился HTML формат. И в его основе все Мелкомягкие Офисные продукты. Вдумайтесь в это - Браузеры были первыми универсальными "считывателями" информации посланной с Любого компьютера. С Любой платформы. Сидеть себе на файловой системе мертвым грузом ... Зачем такие фаилики нужны? Мы файлы используем как НОСИТЕЛИ информации. это хоть Вы я надеюсь оспаривать не будете.
Теперь о Java. и Com/Dcom.Если бы Вы попали в те времена сюда - Ваше высказывание Вам самой показалось бы смешным. Тогда шла война не на жизнь а на смерть. С одной стороны САН Майкро, с другой стороны Мелкомягкие, где то в далеке Макинтоши и Только только набиравшие силу Линуксы. Разговор между Платформами шел так - или клиент что то отсылал серверу (Читаем Виндоус - Униксу "почти как Юстас - Алексу") на почитать - и тогда у руля стояли Комы, либо Сервер чего то там писал Клиенту - и вот тут надо было именно Джавой это все причесать. JVM не было разработано для и плохо внедрялось в Среде у Майкрсофта. И не от хорошей жизни мы пришли к трех-уровневой (Three Tier) архитектуре. Нужен был посредник - Который все это кроссплатформенное брал на себя.
Я сам не сторонник мешанины. Платформа первична. Прикладное решение - на мой взгляд - должно быть платформенно зависимым. Если приложение расчитано изначально на Мелкомягких - нечего там Джаве делать. Вообще. А если разрабатывается Линукс комплекс - нечего туда мелкомягкости врубать. Мой подход прост - на сегодня можно одинаково хорошо воссоздать Windows - Based (.NET architecture Win 2008 server platform + Win 7 client) продукт силами разработчиков C# (ну или VB.NET) + MS SQL Server и рядом точно такой же на Linux + Java + Oracle (or MySQL) Остальное дело религии - кто во что верит. А лепить халивар (извините мой французский) из Java на Mac OS или на том же MS SQL Server (.NET) - это угробить такой проект на корню. Они конечно есть и кое как работают но очень не рекомендую новым архитекторам браться за такую "кроссплатформенность" .
Вставлю свои пять копеек))
Pharmakis (Anna Pharmakis)
> но я точно знаю(!!!!), что C# стал разрабатываться не потому что Java не работала на windows, а потому что M$ потребовалось
> создать конкурирующую технологию.
> Java работала, работает и будет работать, иначе зачем это всё. (Really - what this is about?)
Меня побудило к перескоку на эту ветку вот это заявление. Коллега Анна. Мне импонирует Ваша молодость и острота суждений, но поверьте на слово - Ваши "точные знания" очень далеки от истины. Итак немного истории. Язык программированиай Java появился в аппаратно программной поддержке продуктов компании SUN Microsystems в 1995 году. Целью создания этого продукта была не совсем обычная задача. Но как и все гениальное - результат привел к тому что мы сегоня знаем. Язык программирования Java написанный в среде C/C++ был просто языком для поддержки и разработки приложений для итерактивного кабельного телевидения. Никому и в голову тогда не могло прийти - к чему приведет создание этого продукта. Майкрософт был вполне оснащен своим продуктом аналогичного уровня (объектно ориентированным языком программирования третьего поколения ) и назывался этот язык Visual C++ - который всегда входил в комплект Visual Studio так же как и Visual Basic, со всеми компоненнтами COM\DCOM. Изначально созданием приложений для ДОС Виндовс компании майкрософт я не занимался в те годы (95-99) считайте потерял 4 года отстаивая последние редуты UNIX и VAX/VMS систем. Я и в Microsoft то попал с "той" стороны. Понадобились мои знания систем 4GL языков для портирования с тогда еще только только появившейся MS SQL Server 7 базой данных. Плевался дальше чем видел, плакал - но писал то что требовалось. Потому как Microsoft SQL Server - это был клон Sybase SQL Server написанный для MS Windows NT операционной системы которая мне чем то напоминала VAX. Это в 1999 - 2000 появилась технология .NET со своим языком C# (и VB.NET) которая отдаленно напоминала JVM технологию. Мелкомягкие всегда так - чуть где что классное есть - "подсмотрят" и сделают своё, но лучше. Скажите мне Коллега - А Вы поступаете как нибудь иначе (положа руку на сердце?)
Чё твкой бльшой вопрос!мне его читать лень бышло даже))
13 лет назад