LINUX.ORG.RU

somFree: открытый кроссплатформенный клон IBM SOM

 , , , ,


1

3

В январе 2013 года Roger Brown опубликовал под LGPL свои разработки по клонированию закрытой библиотеки IBM SOMobjects.

О том, что такое SOM, можно прочитать на русском в моей статье. Некоторое, возможно, не во всём объективное сравнение с другими объектными системами (COM, XPCOM, UNO, GObject, WinRT) можно найти в моём обзоре.

SOM главным образом ассоциируется с OS/2, где это была основная объектная система, и OpenDoc, почившим в бозе конкурентом OLE. Однако SOM — это нечто более значительное, чем просто объектная система OS/2, и спустя много лет периодически выходят журналистские статьи и петиции с просьбами к IBM опубликовать исходные коды если не всей OS/2, то хотя бы SOM.

Лучшее из OS/2 на платформе Linux

Будет ли результат похож на OS/2? Ни в коем случае! Но зато разработчики Linux получат отличную объектно-ориентированную инфраструктуру, способную сделать настольный вариант этой ОС гораздо более привлекательным для независимых поставщиков ПО. В результате должна появиться масса новых приложений, которые, в свою очередь, стимулируют интерес пользователей настольных систем к Linux.

Теперь эта мечта стала ближе.

Объектная система, такая как SOM, может быть привлекательна для разработчиков на малопопулярных или новых языках. В отсутствие подобной системы разработчики на разных языках делают привязки независимо друг от друга, и работа одних не помогает другим. Кроме того, уровень C ABI, на котором обычно определено взаимодействие, оставляет множество неопределённостей, которые делают сложной автоматическую генерацию. Например, по опыту автора с libyaml, даже в таких пустяках, как преобразование из string в const char *, могут быть фатальные особенности: в одних местах недопустим указатель на \0, в других местах недопустим NULL. Отсутствие общего стандарта приводит к тому, что интересные идеи приходится портить, нацеливая компиляторы на платформу, где такой общий стандарт есть: JVM или Mono.

В случае с SOM одни люди могли бы разрабатывать emitters для компилируемых языков программирования (как в FPC/2), либо обёртки somDispatch() для скриптовых языков (как в Object REXX), а другие люди могли бы вместо привязок только для своего языка делать фасады для SOM, которыми могли бы пользоваться все остальные.

Если SOM наберёт популярность, можно будет ожидать свои аналоги Objective-C, C++/CX, Cyclone или Vala для SOM. У IBM такой эксперимент (Direct2SOM) остался на стадии беты, когда работы над библиотекой были прекращены.

>>> somFree на SourceForge



Проверено: tazhate ()

это то самое, о чем так долго говорили большевики (просили открыть)?

anonymous ()

Вот же некроманты. Может, лет 10 назад это и могло взлететь, но сейчас CORBA в Linux окончательно похоронена в пользу GObject.

tailgunner ★★★★★ ()

Я правильно понял, Роджер Браун - это такой Поттеринг, только он закапывает D-Bus?

eagleivg ★★★★★ ()
Ответ на: комментарий от anonymous

CORBA
GObject

эээ, а какая между ними связь

GObject - могильщик CORBA в Linux, SOM (начиная с SOM 2.0 от IBM) - реализация CORBA.

tailgunner ★★★★★ ()

У вас хабротарий по ссылке, почините.

zavok ()

Если SOM наберёт популярность, можно будет ожидать свои аналоги Objective-C, C++/CX, Cyclone или Vala для SOM. У IBM такой эксперимент (Direct2SOM) остался на стадии беты, когда работы над SOM были прекращены.

Другими словами оно подохло не родившись, но теперь-то, конечно, стараниями клонистов взлетит?

AVL2 ★★★★★ ()

Печально, что OS/2 не прижилась (скажем так). OS/2 3.0 Warp - это лучшее, что было есть и будет.

anonymous ()

Что ж, в таком случае - радость! Я так долго мечтал о чем-то подобном, испытывал надежды на UNO, хотел!!! Спрашивал на форумах, недоумевал почему никому это не надо...

Счастье! Оно такое.

За статью - зачот!!!

I-Love-Microsoft ★★★★★ ()
Ответ на: комментарий от AVL2

У IBM такой эксперимент (Direct2SOM) остался на стадии беты

Другими словами оно подохло не родившись

это совершенно не так. То, что я видел в ibm'овском VisualAge C++ по direct-to-som, конечно, «не оно».

но были законченные компиляторы (Zortech C++), полностью(!) реализовавшие direct-to-som.

glebiao ()

почитал сравнение с WinRT - не вижу «интерфейсов», ну вы поняли о чем я, хотя думаю без них тоже норм

I-Love-Microsoft ★★★★★ ()
Ответ на: комментарий от tailgunner

GObject - могильщик CORBA в Linux

да ну, уж прямо могильщик. заметим, gobject за пределами Gnome почти не встречается, а жизнеспособность Gnome, это такой оксюморон.

SOM (начиная с SOM 2.0 от IBM) - реализация CORBA

агащаблин. corba может рассматриваться как подмножество som. и кстати, по ресурсоёмкости корба (по сравнению с сомом), это ужас кошмарный.

glebiao ()
Ответ на: комментарий от anonymous

Oh yessss! Во веки веков.

А какой там был красивый синий фон на десктоп, сказка. Лучший отдах глазам в процессе работы.

anonymous ()
Ответ на: комментарий от anonymous

а какая работа с виртуальной памятью!!!!! сказка!!! - на 4 мегах озу - в лёт работал МК-3 который требовал 8, так еще и в окне запускался, в отличии от винды (даже 95) - которая в упор не могла этого сделать.

anonymous ()

у меня тут колега восторгался воспоминаниями о том, какая была замечательная операционка в середине 90-х - полуось

у меня отрывочные воспоминания об этом, поскольку она недолго прожила и почила в бозе благодаря сами знаете кому

kto_tama ★★★★★ ()
Ответ на: комментарий от glebiao

gobject за пределами Gnome почти не встречается,

щютка юмора? gobject даже без gtk встречается. На нем десятки ЯП типа vala основаны.

AVL2 ★★★★★ ()
Ответ на: комментарий от anonymous

Я на ней играл в варкрафт-2 на 4МБ озу, счастья не было предела. А еще она не тормозила, когда грызла дискетку. А дисковод делал не «тррр-тррр», как на других системах, а «уууить-уууить», что тоже радовало :) И был там скриптовый язык rexx из коробки, на котором можно было писать батники и даже гуйню. А гуй там был «объектно-ориентированный», можно было у любого окна отредактировать параметры, и они сохранялись при следующем запуске. Кстати, можно было запустить систему без гуя, потому что гуй был простой программой (presentation manager). А в четвертой версии были клевые системные шрифты, узкие такие, битмапные. И да, синий фон был в четверке, а в третьей был нежно-голубой :)

В общем, хорошую систему похерили.

Puzan ★★★★ ()
Ответ на: комментарий от Puzan

В общем, хорошую систему похерили.

Угу, именно после смерти десктопной OS/2, на которую возлагалось столько надежд, я понял, что система не должна зависеть от корпораций.

hobbit ★★★★★ ()
Ответ на: комментарий от glebiao

да ну, уж прямо могильщик. заметим, gobject за пределами Gnome почти не встречается

За пределами GNOME и CORBA почти не встречалась.

SOM (начиная с SOM 2.0 от IBM) - реализация CORBA

агащаблин

Об этом было сказано в документации SOM. Тебе есть что возразить?

corba может рассматриваться как подмножество som

И где противоречие?

tailgunner ★★★★★ ()
Ответ на: комментарий от AVL2

На нем десятки ЯП типа vala основаны.

Перечисли Топ20 %) Причем тех, которые _основаны_ на GObject, а не просто умеют его использовать.

tailgunner ★★★★★ ()

Отсутствие общего стандарта приводит к тому, что интересные идеи приходится портить, нацеливая компиляторы на платформу, где такой общий стандарт есть: JVM или Mono.

Да, я вот уже начал поглядывать в сторону Моно. SOM может стать хорошей, быстрой, лицензионно чистой альтернативой.

void_ptr ★★★★ ()

Скорее всего, у «IBM» просто нет полных прав на «OS/2».

anonymous ()

В OpenSource мире смысла в компонентах и поделиях навроде ole/com/xpcom/.. нет.

anonymous ()

Лучшее из OS/2 на платформе Linux

На самом деле там такой платформы нет. Там есть Ubuntu и Debian.

void_ptr ★★★★ ()

вот я программист, хочу сегодня же связать программу на допустим free pascal (не люблю паскаль, но допустим) и программу на C++/Qt - где практические руководства по сборке, настройке, подключению и программированию с помощью этой штуки?

аффтар молодец, большую работу сделал - а теперь пора применять - КАК?

I-Love-Microsoft ★★★★★ ()
Ответ на: комментарий от anonymous

OS/2 не умела интегрироваться в домен Windows. И была ненужна по определению.

anonymous ()

вот тут: ftp://ftp.software.ibm.com/publications/clubod/som30/index.html

почему бы автору не выложить это в PDF? с нормальным индексом? почему бы примеры не сделать?

теория без практики - бесплодна, сделай ты хоть super-mega-ultra-SOM, но если этим нельзя просто воспользоваться - то не взлетит...

I-Love-Microsoft ★★★★★ ()
Ответ на: комментарий от anonymous

при чем тут Вынь

А windows это тоже не умела тогда.

anonymous ()
Ответ на: при чем тут Вынь от anonymous

Re: при чем тут Вынь

А при том, что массовым сервером тогда была Windows NT. На окраинах еще догнивала Новелл Нетваре. Но OS/2 не могла ни туда и не сюда, вот ее быстренько и закопали.

anonymous ()
Ответ на: комментарий от anonymous

Учитывая что пилили её вместе с оффтопиком - то скорее всего и нет полных прав, так же как и у майкрософт на 3 винду - учитывая что она шла с os/2 в комплекте.

ЗЫ: Синий фон кажись был уже у Merlin

anonymous ()
Ответ на: комментарий от anonymous

OS/2 не умела интегрироваться в домен Windows. И была ненужна по определению.

Merlin сама была контроллером домена (если я не ошибаюсь уже)

anonymous ()
Ответ на: Re: при чем тут Вынь от anonymous

На окраинах еще догнивала Новелл Нетваре.

А то - даже задротствующая пионерия не осиливала установку и настройку сего монстра. Который до сих пор заруливает «файлопомойки и принтеродавалки» что свободные, что оффтопичные.

yyk ★★★★★ ()
Ответ на: комментарий от anonymous

Это еще одна ненужность. Под NT уже поставлялись MS SQL, IIS, эксчэнж и другой серверных софт. Плюс, NT работала на mips, alpha64, и вполне успешно конкурировала с юниксом.

anonymous ()
Ответ на: комментарий от yyk

С клиентами на DOSе? Тут 3/4 людей, не знает что такое DOS.

anonymous ()
Ответ на: комментарий от anonymous

С клиентами на DOSе? Тут 3/4 людей, не знает что такое DOS.

Здрасти приехали в любой оси есть клиент для новела )))))

anonymous ()
Ответ на: комментарий от anonymous

угу, он даже мною установленный в одном месте до сих пор работает «и есть не просит», но в свете повальной «стандартизации применяемых IT-технологий» судьба его предрешена :(

yyk ★★★★★ ()
Ответ на: комментарий от tailgunner

Смотря что считать за основаные. Vala, к примеру, теоретически может что-то собрать и без gpbject. Только это будет нечто очень простое и целиком на совести программиста.

Так что я полагаю, что vala таки основана на gobject. genie аналогично. Это то, с чем я работал.

AVL2 ★★★★★ ()

В статью про ОМы надо наверноде допилить Binder из Android.

anonymous ()
Ответ на: комментарий от anonymous

Праавда? А я новелл только в детстве видел, лет в 5.

anonymous ()
Ответ на: комментарий от tailgunner

попробуй погуглить. Высокоуровневых языков, которые используют gobject в качестве основы управления памятью много.

AVL2 ★★★★★ ()
Ответ на: комментарий от anonymous

NT работала на mips, alpha64, и вполне успешно конкурировала с юниксом.

Ничего успешного не было. Скорее полный провал.

vada ★★★★★ ()
Ответ на: комментарий от I-Love-Microsoft

аффтар молодец, большую работу сделал - а теперь пора применять - КАК?

Боюсь что не взлетит SOM. Поезд давно ушёл. Сильно сомневаюсь что кто-то начнет перетачивать FPC под SOM или GCC с QT. Выхлоп такой ... сомнительный.

vada ★★★★★ ()
Ответ на: Re: при чем тут Вынь от anonymous

Что там OS/2 не умела не знаю, помню только что еще учась в институте снес 95-й и поставил OS/2 Warp 3.0 Никаких проблем с сеткой не возникло, зато появилась изоляция процессов и система виртуальной памяти позволявшая гонять варкрафт и другие прожорливые игры на 4-х мегабайтах памяти. И все это работало и не тормозило! А еще в нее можно было установить штуку под названием process commander, активизировался он по нажатию ctrl+alt+del и служил тем же целям что и виндовая приблуда но по функционалу был похож на top.

A-234 ★★★★★ ()

OS/2 3.0 Warp - это лучшее, что было есть и будет.

Да неужели?

Лучшее, что было и будет - это UNIX. Не этот ваш поттеролинукс, а настоящий тру ЮНИКС, где все - это файл.

хочу сегодня же связать программу на допустим free pascal (не люблю паскаль, но допустим) и программу на C++/Qt

Как именно ты хочешь их связать?

anonymous ()
Ответ на: комментарий от anonymous

ты такой жырный шопипец.

в твоём классе еще и не проходили, что юникс, где всё - это файл называется Plan 9

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.