Здравствуйте, Сергей, Вы писали:
С>Здравствуйте, Mamut, Вы писали:
С>>> К примеру, С++-код можно оттранслировать в JVM-байткод и бинарная совместимость сразу появится.
M>>О, а кто-то таким занимается?
С>Вот ссылка: http://nestedvm.ibex.org/ С>Вкратце: используется GCC для трансляции в машинный код для MIPS-процессора, потом этот код транслируется в JVM-байткод.
h> M>Скажем так — тут разногласия, что считтаь дотнетом. Саму технологию (которая CLI,CLR,DLR и прочие умные сокрщения) или платформу.
h> Не, считать технологию это лукавство
Ну почему же
h> M>Если технологию, то она такая же кроссплатформенная, как и С++, потому что ECMA-335 и ISO/IEC 23271. Если платформу — то она такая же (не)кроссплатформенная, как любая другая платформа
h> Ну например тот же QT? Разве не переносим? В далеком бородатом году, когда вышла Delphi 6, у нее в составе шла кросплатформенная CLX на базе QT. Лично компилял один и тот же проект под Win и Lin (правда в то время QT'шный фейс под Win выглядел ужасно). Опять же на этом форуме подтверждение переносимости есть , и даже в твоем теглайне. На Java у меня есть переносимый софт (взять тот же toonel). У паскалистов есть FPC и Lazarus, который и сам собирается под разные ОС, и писать позволяет Это о платформе Переносимого софта из .Net я не видел вообще, буду рад посмотреть запустив в Убунту
Здравствуйте, Mamut, Вы писали:
h>> M>Скажем так — тут разногласия, что считтаь дотнетом. Саму технологию (которая CLI,CLR,DLR и прочие умные сокрщения) или платформу.
h>> Не, считать технологию это лукавство
M>Ну почему же
Ну, это все к словам о байт коде
h>> M>Если технологию, то она такая же кроссплатформенная, как и С++, потому что ECMA-335 и ISO/IEC 23271. Если платформу — то она такая же (не)кроссплатформенная, как любая другая платформа
h>> Ну например тот же QT? Разве не переносим? В далеком бородатом году, когда вышла Delphi 6, у нее в составе шла кросплатформенная CLX на базе QT. Лично компилял один и тот же проект под Win и Lin (правда в то время QT'шный фейс под Win выглядел ужасно). Опять же на этом форуме подтверждение переносимости есть , и даже в твоем теглайне. На Java у меня есть переносимый софт (взять тот же toonel). У паскалистов есть FPC и Lazarus, который и сам собирается под разные ОС, и писать позволяет Это о платформе Переносимого софта из .Net я не видел вообще, буду рад посмотреть запустив в Убунту
M>Наверное, вот: http://www.go-mono.com/pdfs/Codice_v1.pdf, которое вот: http://www.codicesoftware.com/xpfront.aspx
Оттуда взял посмотреть XML Explorer. Под Win он работает, а под Mono 2.0.1 вылетает с километровым стректрейсом. Почитал о портировании Paint.NET, хотя вообще странно читать о портировании внутри, как бы, кроссплатформенных технологий
h> Оттуда взял посмотреть XML Explorer. Под Win он работает, а под Mono 2.0.1 вылетает с километровым стректрейсом. Почитал о портировании Paint.NET, хотя вообще странно читать о портировании внутри, как бы, кроссплатформенных технологий
А что делать при чтении https://developer.mozilla.org/En/C___Portability_Guide ? Игнорировать, как Шеридан, или отвечать «не знаю», как в вопросе про KDE? Но мы же взрослые люди В Mono portablity гайдлайне описаны моменты, которые попадают на библиотеки, а не на собственно .net
Дкмаю, был бы доступен сорс-код библиотек дотнета, было бы все гораздо проще.
Здравствуйте, Mamut, Вы писали:
h>> h>> Не, считать технологию это лукавство h>> M>Ну почему же h>> Ну, это все к словам о байт коде
M>ээээ. не понял
Ну если человеку говорить, что .Net кросплатформенный, не объясняя сути (а суть она в переносимости байт-кода и только + некоторая часть абстракций), рассказывать о Mono, как о Linix реализации .Net (что уже подразумевает идентичность), и не рассказывать о существующих проблемах переносимости, то это и есть лукавство, мягко говоря.
h>> Оттуда взял посмотреть XML Explorer. Под Win он работает, а под Mono 2.0.1 вылетает с километровым стректрейсом. Почитал о портировании Paint.NET, хотя вообще странно читать о портировании внутри, как бы, кроссплатформенных технологий
M>А что делать при чтении https://developer.mozilla.org/En/C___Portability_Guide ? Игнорировать, как Шеридан, или отвечать «не знаю», как в вопросе про KDE? Но мы же взрослые люди В Mono portablity гайдлайне описаны моменты, которые попадают на библиотеки, а не на собственно .net
Так в библиотеках вся соль. Не может технология называться кроссплатформенной, если не обеспечивается переносимость абстракций (т.е. тех самых библиотек).
M>Дкмаю, был бы доступен сорс-код библиотек дотнета, было бы все гораздо проще.
Агащазблин Да МС удавится, но не выложит сурсы, ибо сразу наступит ... ну ты понял
h> Ну если человеку говорить, что .Net кросплатформенный, не объясняя сути (а суть она в переносимости байт-кода и только + некоторая часть абстракций), рассказывать о Mono, как о Linix реализации .Net (что уже подразумевает идентичность), и не рассказывать о существующих проблемах переносимости, то это и есть лукавство, мягко говоря.
Ну, мы тут опять должны договориться, о переносимости чего мы говорим Именно дотнета (который, в принципе ограничивается стандартом ECMA xxx) или и его и всех библиотек, что на нем есть
h> h>> Оттуда взял посмотреть XML Explorer. Под Win он работает, а под Mono 2.0.1 вылетает с километровым стректрейсом. Почитал о портировании Paint.NET, хотя вообще странно читать о портировании внутри, как бы, кроссплатформенных технологий
h> M>А что делать при чтении https://developer.mozilla.org/En/C___Portability_Guide ? Игнорировать, как Шеридан, или отвечать «не знаю», как в вопросе про KDE? Но мы же взрослые люди В Mono portablity гайдлайне описаны моменты, которые попадают на библиотеки, а не на собственно .net
h> Так в библиотеках вся соль. Не может технология называться кроссплатформенной, если не обеспечивается переносимость абстракций (т.е. тех самых библиотек).
Ну так переносят же Вон, mono обещает полноценную поддержку WinForms 2.0, например
h> M>Дкмаю, был бы доступен сорс-код библиотек дотнета, было бы все гораздо проще. h> Агащазблин Да МС удавится, но не выложит сурсы, ибо сразу наступит ... ну ты понял
Это-то понятно. Но сейчас многое упирается в "а вон в винде в дотнете есть то-то, то-то и то-то, а в моно нету". А сорцов-то нету, а рефлектором принципы запрещают пользоваться Я, в принципе, могу с десяток таких же библиотек для того ж С++ назвать
Здравствуйте, Mamut, Вы писали:
M>Это-то понятно. Но сейчас многое упирается в "а вон в винде в дотнете есть то-то, то-то и то-то, а в моно нету". А сорцов-то нету, а рефлектором принципы запрещают пользоваться
Кстати, я Рефлектором кучу потрохов WPF наизучал — тонны информации проще дергать оттуда, чем из MSDN. Непонятно, почему люди до сих пор брезгуют таким замечательным средством и продолжают считать, что "MS стесняется". Я уж молчу о возможностях, позволяющих отлаживаться внутри .Net Framework, благодаря чему, например, я смог выяснить некоторые особенности биндингов в WPF. Рекоммендую всем, кто юзает .Net пройти по приведенной ссылке. Там файлики по круче, с каментами
Здравствуйте, MxKazan, Вы писали:
M>>Это-то понятно. Но сейчас многое упирается в "а вон в винде в дотнете есть то-то, то-то и то-то, а в моно нету". А сорцов-то нету, а рефлектором принципы запрещают пользоваться MK>Кстати, я Рефлектором кучу потрохов WPF наизучал — тонны информации проще дергать оттуда, чем из MSDN. Непонятно, почему люди до сих пор брезгуют таким замечательным средством и продолжают считать, что "MS стесняется".
Использование Рефлектора, а потом написание подобного кода в Моно будет считаться нарушением copyright'а Microsoft во многих странах.
PS: я в Java не пользовался JavaDoc'ом никогда, предпочитаю сразу исходник смотреть.
Здравствуйте, Sheridan, Вы писали: S>Проще по сравнению с велосипедами.
>> Какая именно кроссплатформенность имеется в виду? S>Под разные ОС.
Какие именно? Пойми, не бывает разработки "кроссплатформенного софта". Бывает задача "наш софт должен работать под X, Y, и Z". И только дальше начинается интересное: выбор технологии; выбор, писать ли три разных софта или два или один — и так далее. В свете этого фразы про "при помощи Y легко писать кроссплатформенные программы" лишены всякого смысла.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Sinclair, Вы писали:
S>Какие именно? Пойми, не бывает разработки "кроссплатформенного софта". Бывает задача "наш софт должен работать под X, Y, и Z". И только дальше начинается интересное: выбор технологии; выбор, писать ли три разных софта или два или один — и так далее. В свете этого фразы про "при помощи Y легко писать кроссплатформенные программы" лишены всякого смысла.
Это просто ты с кросс-платформенными библиотеками не работал.
На той же Java вполне реально получаются полностью кроссплатформенные программы вообще без всякого труда.
Здравствуйте, Cyberax, Вы писали:
C>Здравствуйте, MxKazan, Вы писали:
M>>>Это-то понятно. Но сейчас многое упирается в "а вон в винде в дотнете есть то-то, то-то и то-то, а в моно нету". А сорцов-то нету, а рефлектором принципы запрещают пользоваться MK>>Кстати, я Рефлектором кучу потрохов WPF наизучал — тонны информации проще дергать оттуда, чем из MSDN. Непонятно, почему люди до сих пор брезгуют таким замечательным средством и продолжают считать, что "MS стесняется". C>Использование Рефлектора, а потом написание подобного кода в Моно будет считаться нарушением copyright'а Microsoft во многих странах.
Курсив — мало где считается нарушением. Болд — считается нарушением везде, но есть особенности. В том смысле, что бремя доказательства заимствования лежит на истце; и результат сильно зависит от второвстепенных вещей.
Ну, например, в простых случаях я могу написать свой код "по мотивам", и позаботиться о том, чтобы байт-код выглядел достаточно другим для корреляционного анализа. В случае суда я буду упирать на то, что само устройство среды таково, что решения одной и той же задачи неизбежно будут иметь существенное сходства, и потребую чтобы истец предъявил альтернативный исходник, порождающий существенное различие. Не думаю, что мне будет трудно найти эксперта, который признает меня правым.
В более сложных случаях такая библиотека может содержать решения, отсутствующие в публичном доступе. На основании чего истец будет настаивать на факте реверс-инжиниринга, т.к. типа у них R&D годами изобретал штуку, которую я почему-то воспроизвел с мелкими отличиями за пару недель.
В еще более сложных случаях такая библиотека может содержать запатентованные решения, и независимо от наличия либо отсутствия реверса, меня можно нагнуть на какой-нибудь мелочи типа "использования атрибутов метода для выбора оптимального канала при позднем связывании". C>PS: я в Java не пользовался JavaDoc'ом никогда, предпочитаю сразу исходник смотреть.
Угу. Тем более что 90% джавадока устроены как-то так: "int Foo(string): принимает стринг, возвращает инт. Исключений не бросает".
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Cyberax, Вы писали: C>На той же Java вполне реально получаются полностью кроссплатформенные программы вообще без всякого труда.
В "полностью кроссплатформенные" верю, в "безо всякого труда" — нет. Достаточно прицепиться к пакету, который оказался специфичным для платформы.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Sinclair, Вы писали:
C>>На той же Java вполне реально получаются полностью кроссплатформенные программы вообще без всякого труда. S>В "полностью кроссплатформенные" верю, в "безо всякого труда" — нет. Достаточно прицепиться к пакету, который оказался специфичным для платформы.
У меня так не получилось в приложении на 100000 строчек. Причём действительно без всякого труда — мне как-то написали, что приложение прекрасно работает на Маке. Хотя там его я даже не тестировал.
Аналогично с серверными приложениями — они у меня без всяких изменений работают под AIX, Solaris, Linux и Windows. Хотя нет, вру. Скрипт запуска разный.
Ты ОЧЕНЬ недооцениваешь кросс-платформенность Java.
Здравствуйте, Cyberax, Вы писали:
C>PS: я в Java не пользовался JavaDoc'ом никогда, предпочитаю сразу исходник смотреть.
К сожалению, благодаря солнечной Индии, это не всегда прокатывает. Спасает только то, что с библиотеками есть примеры использования. Смотрю и то и другое.
Здравствуйте, hattab, Вы писали:
H>Да там и нет ничего страшного Просто он хочет GTK#, который захочет Mono (ибо у меня оно тупо вылетает. В системе установлены все FW с апдейтами). Это к словам о бинарной совместимости.
GTK# — это прикладная .net open source библиотека. С .Net Framework она не поставляется. И если приложение использует эту библиотеку, то вполне логично, что оно требует её установки. Даже если приложение было написано в Visual Studio.
Здравствуйте, hattab, Вы писали:
H>Так в библиотеках вся соль. Не может технология называться кроссплатформенной, если не обеспечивается переносимость абстракций (т.е. тех самых библиотек).
Mono обеспечивает переносимость библиотек, которые не завязаны на операционную систему. Тоже самое относится и к Java, к C++ и т.д. Возьмем для сравнения С++. Если я напишу на нем приложение на MFC — оно не будет переносимым. Но я могу взять переносимый QT и разработать с его помощью переносимое приложение. То же самое и с дотнетом. Никто тебя не заставляет использовать непереносимые библиотеки. Используй переносимые Open Source библиотеки (такие как GTK#) и у тебя будут выходить переносимые приложения.
Здравствуйте, Mamut, Вы писали:
h>> Ну если человеку говорить, что .Net кросплатформенный, не объясняя сути (а суть она в переносимости байт-кода и только + некоторая часть абстракций), рассказывать о Mono, как о Linix реализации .Net (что уже подразумевает идентичность), и не рассказывать о существующих проблемах переносимости, то это и есть лукавство, мягко говоря.
M>Ну, мы тут опять должны договориться, о переносимости чего мы говорим Именно дотнета (который, в принципе ограничивается стандартом ECMA xxx) или и его и всех библиотек, что на нем есть
Вот я и говорю, что ограничившись и таки согласившись, мы лукавим т.к. переносимость это не только, и не столько...
h>> h>> Оттуда взял посмотреть XML Explorer. Под Win он работает, а под Mono 2.0.1 вылетает с километровым стректрейсом. Почитал о портировании Paint.NET, хотя вообще странно читать о портировании внутри, как бы, кроссплатформенных технологий
h>> M>А что делать при чтении https://developer.mozilla.org/En/C___Portability_Guide ? Игнорировать, как Шеридан, или отвечать «не знаю», как в вопросе про KDE? Но мы же взрослые люди В Mono portablity гайдлайне описаны моменты, которые попадают на библиотеки, а не на собственно .net
h>> Так в библиотеках вся соль. Не может технология называться кроссплатформенной, если не обеспечивается переносимость абстракций (т.е. тех самых библиотек).
M>Ну так переносят же Вон, mono обещает полноценную поддержку WinForms 2.0, например
Процесс идет... А WPF когда перенесут? Риторический вопрос.
h>> M>Дкмаю, был бы доступен сорс-код библиотек дотнета, было бы все гораздо проще. h>> Агащазблин Да МС удавится, но не выложит сурсы, ибо сразу наступит ... ну ты понял
M>
M>Это-то понятно. Но сейчас многое упирается в "а вон в винде в дотнете есть то-то, то-то и то-то, а в моно нету". А сорцов-то нету, а рефлектором принципы запрещают пользоваться Я, в принципе, могу с десяток таких же библиотек для того ж С++ назвать
Тут схожести с С++ искать нельзя, ибо C++ никогда не позиционировался, как кроссплатформенный язык. Вся его кроссплатформенность обеспечивается лишь его популярностью на платформах, ну и наличием переносимых библиотек. Поэтому сравнение не совсем уместное
Здравствуйте, mrTwister, Вы писали:
H>>Да там и нет ничего страшного Просто он хочет GTK#, который захочет Mono (ибо у меня оно тупо вылетает. В системе установлены все FW с апдейтами). Это к словам о бинарной совместимости.
T>GTK# — это прикладная .net open source библиотека. С .Net Framework она не поставляется. И если приложение использует эту библиотеку, то вполне логично, что оно требует её установки. Даже если приложение было написано в Visual Studio.
Я не об этом немного. У меня уже установлена GTK#, но даже GTK'шные демки вылетают при запуске под .Net. Приходится юзать Mono.