LINUX.ORG.RU
ФорумTalks

ooc - object-oriented c


0

0

ooc is a modern, object-oriented, functional-ish, high-level, low-level, sexy programming language. It's translated to pure C with a source-to-source compiler. It strives to be powerful, modular, extensible, portable, yet simple and fast.

Играюсь с ним последние несколько дней и могу сказать лишь одно: язык сильно доставляет =) этакий вкусный C/C++ (скорее второе)

Существующие биндинги можно поглядеть тут http://github.com/nddrylliog

Так же разрабатывается транлятор ooc на самом ooc - rock (сейчас основной транлятор occ -> с написан на java)

Первый коммит датируется серединой июня этого года, так что язык находится только на начальной стадии своего развития. Если будут какие предложения, welcome to #ooc-lang сети freenode. Рзработчики не прочь выслушать пожелания по улучшению языку и с удовольствием внесут ваши предложения.

Хочется добавить, что с ooc программирование на gtk перестало казаться мне таким унылым (пруф. http://www.scribd.com/doc/18066884/Oocheeps-Final 2 и 3 страницы), а, можно сказать, очень даже милым (: (все же больше время провожу за Qt)

Сайт языка: http://ooc-lang.org/


Ответ на: комментарий от inoremap

оператор := там применяется только в слуае, если необходимо определить тип без его явного указания

IMPORTANT NOTE: The := operator is decl-assign, e.g. the type of the declared variable is guessed from the right-hand-side expression. Regular assignment is =, as in C, Java, etc.

lenstr
() автор топика

> object-oriented c

там «С» не больше чем в питоне, жабе и т.д.

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

> оператор := там применяется только в слуае, если необходимо определить тип без его явного указания

т. е. грабли из C с операторами =/== они решили оставить?

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

А мне всегда нравились эти «грабли». Сразу становится видно, где сравнение, а где присваивание. Или это я настолько привык к C? =)

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

сейчас залез в sdk посмотреть реализацию списков, т.к. когда-то приходилось делать подобные вещи с нуля на С... и помоему на ooc это выглядит круто =) http://github.com/nddrylliog/ooc/blob/master/sdk/structs/List.ooc

http://github.com/nddrylliog/ooc/blob/master/sdk/structs/ArrayList.ooc

и кстати, в ooc по умолчанию включен garbage collector http://www.hpl.hp.com/personal/Hans_Boehm/gc/ , с которым о памяти можно больше не беспокоиться(по крайней мере не так дотошно как это делается в С)

lenstr
() автор топика

По ссыклам не ходил, почитал комменты - вроде ето другой ооц =)

yoghurt ★★★★★
()

Скажи мне, дружище, а ты про Vala слышал? В тонкости ooc не вникал, но вроде они делают то же самое. Только Vala это делает уже несколько лет и заметно в этом преуспела.

troorl ★★
()

Не взлетит. Си-прогеры полезут на стену оттого, что на Си эта поделка вообще не похожа; остальные и смотреть не станут.

Закапывайте.

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

> Скажи мне, дружище, а ты про Vala слышал? В тонкости ooc не вникал, но вроде они делают то же самое. Только Vala это делает уже несколько лет и заметно в этом преуспела.

О Vala слышал, но не интересовался. Сейчас поглядел на это чудо, и можно сказать наверняка: они не делают тоже самое =) Vala разворачивается в си код основанный на GObject'ах и GTK, что не есть гуд. Для написания гуевых программ под гнум - думаю самое оно, для этого его и создавали. Ну и синтаксис у Vala... не доставил как-то =) Он уж больно похож на C, различия минимальны. ooc же реализует синтаксические вещи C/C++ более элегантно, красиво, чтоли =)

По сути их схожесть остается лишь на уровне транлирования в C.

P.S. В топике привел пример gtk просто как одного из биндингов к ooc (:

lenstr
() автор топика
Ответ на: комментарий от volh

>статически типизированный js

ActionScript, который во флеше

Deleted
()

Странная штука, паскалеподобная и для Сшников должно быть блевотно, по крайней мере я немного срефлексировал. Сгладить это можно переименовав язык во что-то большее подходящее, не связанное с С.
Назначение сабжа не ясно, кому хочется простого и красивого языка - то может взять python, тем более его производительность год от года всё выше. Кому нужно что-то сиподобное - D, C++, Vala.
А те, кому интересны шашечки, могут взять perl6, там синтаксис на лету можно менять.

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

Vala подходит не только для гуя, и gtk там необязателен, а всего лишь биндинг. Всё что нужно вале для хорошей жизни - это gobject, который весьма невелик. Зато в качестве профита мы получаем доступность библиотек, написанных на Vala - из других языков также легко, как любых gobject. Попробуйте заюзать плюснутый код из С или код этого ooc из С, тогда быстерько придёт понимание зачем разработчии Vala так поступили.

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

т. е. грабли из C с операторами =/== они решили оставить?

Не трожь!

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

У Vala могут быть биндинги и к не-gobject библиотекам. Собственно, к gtk оно имеет такое же отношение, как и сабж. Это просто еще один биндинг.

А синтаксис там копирует C#, а не С.

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

> А те, кому интересны шашечки, могут взять perl6, там синтаксис на лету можно менять.

преловцы изобрели Common Lisp?

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

>> А те, кому интересны шашечки, могут взять perl6, там синтаксис на лету можно менять.

преловцы изобрели Common Lisp?

А в CL есть синтаксис?

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

> А в CL есть синтаксис?

конечно! =)

CL-USER> (get-macro-character #\()

#<FUNCTION SB-IMPL::READ-LIST> NIL

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

Да нет, это просто естественное следствие развития регекспов и грамматик. В итоге часть компилятора perl6 на самом же нём и написана и динамически грамматики могут меняться.
Сказать что они ориентировались на CL будет неверно, просто Ларри как лингвист, продолжил исследовать тему языков:)

ixrws ★★★
()

Буду неоригинальным. Чем оно лучше Objective C?

shimon ★★★★★
()

Vala мне как-то больше нравится. Как минимум сильно нового синтаксиса придумывать не стали, перейти на него проще. Да и возник он не на пустом месте - GObject так устроен, что идея написать свой язык для него просто напрашивается.

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

Vala хуже. Там нет нормального сборщика мусора (только через подсчёт ссылок), нет замыканий. Синтаксис ooc мне понравился больше, он какой-то воздушный и очень логичный.

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

Сборщик мусора там специально не сделали в целях оптимизации ресурсов. Плюс в ooc он не родной. А замыкания в vala есть.

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