> man operating_systems
Переход на страницу  [1] 2 3 4 5
Модераторы: Roman I Khimov, Wanderer, Dron
Автор Добавил
ossadchy
Среда 21.11.2007 21:49
ID пользователя #941
Зарегистрирован: Среда 10.10.2007 22:55
Местонахождение: Украина, Николаевская обл., г. Первомайск
Сообщений: 181
Как мы уже выяснили ОС и языки очень тесно связаны. Предлагаю обсудить язык Objective-C -- что в нем хорошо что плохо с вашей точки зрения. Каковы перспективы развития.
Наверх
Сайт
Hmmm
Четверг 22.11.2007 11:06

ID пользователя #719
Зарегистрирован: Среда 09.08.2006 11:29
Местонахождение: Москва
Сообщений: 108
Из того что я подчерпнул копая документацию по этому языку (может плохо читал):
Нет множественного наследования, шаблонов, исключений. Синтаксис напоминает Object Pascal, который мне кажется громоздким.
Наверх
Dron
Четверг 22.11.2007 13:18


ID пользователя #13
Зарегистрирован: Понедельник 05.07.2004 11:16
Местонахождение: Москва
Сообщений: 651
Помоему Objtctive-C соединил в себе черты си и smalltalk. Если меня память не подводит... Вернее это си с элементами smalltalk.

Синтаксис мне тоже очень не понравился, какой-то костыльный..
В отличии от C++.

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

Андрей Валяев
Наверх
Сайт
ossadchy
Четверг 22.11.2007 16:37
ID пользователя #941
Зарегистрирован: Среда 10.10.2007 22:55
Местонахождение: Украина, Николаевская обл., г. Первомайск
Сообщений: 181
Hmmm написал(а) ...

Из того что я подчерпнул копая документацию по этому языку (может плохо читал):
Нет множественного наследования, шаблонов, исключений. Синтаксис напоминает Object Pascal, который мне кажется громоздким.


Множественное наследование и шаблоны -- весьма "костыльные" конструкции(ИМХО), которые настоящему ОО языку в принципе не жизненно необходимы. Тем более что есть много чего взамен, например любому объекту можно послать любое сообщение.. есть информация обо всех методах, полях во время выполнения и т.д.

По синтаксису: интерфейс и реализация разделены... но в C++ по сути точно так же... ну если не применять #pargma-костыли...
Наверх
Сайт
ossadchy
Четверг 22.11.2007 16:53
ID пользователя #941
Зарегистрирован: Среда 10.10.2007 22:55
Местонахождение: Украина, Николаевская обл., г. Первомайск
Сообщений: 181
Dron написал(а) ...

Помоему Objtctive-C соединил в себе черты си и smalltalk. Если меня память не подводит... Вернее это си с элементами smalltalk.

Синтаксис мне тоже очень не понравился, какой-то костыльный..
В отличии от C++.


интересует конкретика -- это не нравится, это я поменял бы.. Действительно очень поможете своими мыслями и предложениями.

Предложения типа "это будет классный язык если это будет C++" -- не принимаются... ибо языки это совершенно разные. и "соль" ObjC не в синтаксисе, а в сути: это эффективный и действительно ОО язык. он сродни Smalltalk, а не Simula.

Что мне нравится:
- язык прост
- любому объекту можно слать любое сообщение
- есть возможность динамически формировать сообщения объектам(во время выполнения и без всяких костылей!)
- есть возможность введения таких средств как "блоки кода" -- это показывает и доказывает проект POC, что позволяет эффективно и элегантно реализовать такие управляющие конструкции как foreach, try-catch(в терминах C#, Java). И ВСЕ ЭТО БЕЗ ВВЕДЕНИЯ ДОПОЛНИТЕЛЬНЫХ СУЩНОСТЕЙ НА КАЖДЫЙ СЛУЧАЙ(DRON, помнится говорил "не стоит плодить сущностей без необходимости" )

Что не нравится:
- разделение на интерфейс и реализацию -- хочется чтоб все доступные скомпилированные классы были доступны без всяких import, include и прочих излишеств -- тогда это было бы в духе ОО-языков, в духе Smalltalk..
- такие вещи как селектор, метод, строка стояло бы сделать объектами
- не обязательно тащить за собой весь язык C... хотя это дело вкуса
- протоколы, категории и прочее -- все это лишнее
- расширения ObjC 2.0 -- Apple окончательно испортился, сделал MacOS X, перешел на x86, теперь взялся за язык
- нет стандарта языка

В общем чучуть напильничком -- то по-моему очень перспективный язык... а сделать типобезопасным -- дык и ОСь можно писать )))
Наверх
Сайт
Dron
Четверг 22.11.2007 22:17


ID пользователя #13
Зарегистрирован: Понедельник 05.07.2004 11:16
Местонахождение: Москва
Сообщений: 651
Никто про Simula и не говорил....

smalltalk - он не типобезопасный, а типобезразличный...
Дык вот динамические сообщения объектам и типобезразличность ИМХО - близнецы братья.

Хотя динамические сообщения есть например в QT. Хотя они типизированные.

Вообще по хорошему - любой программист должен знать что и куда он посылает. А иначе это какое-то программирование методом тыка получается.

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

Андрей Валяев
Наверх
Сайт
ossadchy
Пятница 23.11.2007 01:12
ID пользователя #941
Зарегистрирован: Среда 10.10.2007 22:55
Местонахождение: Украина, Николаевская обл., г. Первомайск
Сообщений: 181
Dron написал(а) ...

Никто про Simula и не говорил....

smalltalk - он не типобезопасный, а типобезразличный...
Дык вот динамические сообщения объектам и типобезразличность ИМХО - близнецы братья.

Хотя динамические сообщения есть например в QT. Хотя они типизированные.

Вообще по хорошему - любой программист должен знать что и куда он посылает. А иначе это какое-то программирование методом тыка получается.

C++ близок к школе Simula 67.

Типобезопасность употребляю в том смысле, что ни одна операция(пусть недопустимая) не приводит объект и/или систему в недопустимое состояние. Просто в Smalltalk тип-то один -- ОБЪЕКТ ))

В Qt -- костыли.

Дело в том что много приложений не дают возможности знать "что и куда посылается", скорей всего просто нет опыта работы с подобного рода языками... иначе не было бы фразы "программирование методом тыка".. просто всегда можно проверить поддерживает ли объект опредленное сообщение, к какому классу он принадлежит. все это формирует удобный базис для постоения гибких систем(а именно такими должны быть все современные приложения).

[ Редактирование Пятница 23.11.2007 01:21 ]
Наверх
Сайт
Hmmm
Пятница 23.11.2007 11:17

ID пользователя #719
Зарегистрирован: Среда 09.08.2006 11:29
Местонахождение: Москва
Сообщений: 108
ossadchy написал(а) ...

Множественное наследование и шаблоны -- весьма "костыльные" конструкции(ИМХО), которые настоящему ОО языку в принципе не жизненно необходимы.


Зависит от сложности решаемой задачи.

ossadchy написал(а) ...

Тем более что есть много чего взамен, например любому объекту можно послать любое сообщение.. есть информация обо всех методах, полях во время выполнения и т.д.


Первое достоинство выглядит весьма сомнительным. А про информацию, так она и в C++ есть, называется RTTI.
Наверх
Hmmm
Пятница 23.11.2007 11:28

ID пользователя #719
Зарегистрирован: Среда 09.08.2006 11:29
Местонахождение: Москва
Сообщений: 108
Извиняюсь за off, но для любителей навороченных плюсов есть такой проект как D. http://ru.wikipedia.org/wiki/D_(%D1%8F%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)
Наверх
ossadchy
Пятница 23.11.2007 12:41
ID пользователя #941
Зарегистрирован: Среда 10.10.2007 22:55
Местонахождение: Украина, Николаевская обл., г. Первомайск
Сообщений: 181
Hmmm написал(а) ...

ossadchy написал(а) ...

Множественное наследование и шаблоны -- весьма "костыльные" конструкции(ИМХО), которые настоящему ОО языку в принципе не жизненно необходимы.


Зависит от сложности решаемой задачи.


Возьмите любое современное окружение Smalltalk -- разве это не сложная система? Возьмите GNUstep, фреймворки Apple -- разве это не достаточно сложные системы?

Hmmm написал(а) ...

ossadchy написал(а) ...

Тем более что есть много чего взамен, например любому объекту можно послать любое сообщение.. есть информация обо всех методах, полях во время выполнения и т.д.


Первое достоинство выглядит весьма сомнительным. А про информацию, так она и в C++ есть, называется RTTI.


Есть, но опять же -- костыли ))
Первое же достоинство оценить сложно, не использовав его... к примеру, появляется возможность реализовать достаточно просто прозрачный транспорт сообщений между процессами и даже машинами. появляется возможность реализовывать компоненты клиент-серверных систем без привлечения дополнительных средств, как-то IDL и т.д. и т.п. Отпадает необходимость в реализации костылей в стиле Qt или Borland C++. Появляется возможность реализовать динамическую обработку сообщений... появляется возможность без доп. средств использовать классы реализованные на Objective-C в скриптовых языках и окружениях... органично вписывается динамическая подгрузка классов... отсутствие необходимости приведения типов(в случае неиспользования шаблонов, это приходится часто делать) делает код более удобочитаемым. Вот в таком духе
Наверх
Сайт
Переход на страницу  [1] 2 3 4 5  

Перейти:     Наверх

Транслировать сообщения этой темы: rss 0.92 Транслировать сообщения этой темы: rss 2.0 Транслировать сообщения этой темы: RDF
Powered by e107 Forum System

© OSRC.info, 2004-2010.
Авторские права на любые материалы, авторы которых явно указаны, принадлежат их авторам. По вопросам публикации таких материалов обращайтесь к авторам.
Авторские права на любые другие материалы принадлежат OSRC.info.
Сайт является помещением библиотеки. Копирование, сохранение на жестком диске или иной способ сохранения произведений осуществляются пользователями на свой риск.
При использовании материалов сайта ссылка на OSRC.info обязательна.