> man operating_systems
Переход на страницу  1 2 [3] 4 5
Модераторы: Roman I Khimov, Wanderer, Dron
Автор Добавил
Dron
Воскресенье 25.11.2007 12:38


ID пользователя #13
Зарегистрирован: Понедельник 05.07.2004 11:16
Местонахождение: Москва
Сообщений: 651
В С++ есть dynamic_cast чтобы сделать то, что в ObjectiveС приходится реализовывать с помощью дополнительных методов.

Ничего бесплатно не дается.
В Fort вообще нет ничего встроенного, все реализуется средствами языка.

Это нисколько не уменьшает количество сущностей для программиста, как и в ObjectiveC.

Вообще программисты работают не с языком, а с тем API который они используют... (Хотя знание языка конечно обязательно)...

Недостающие в языке сущности им предоставляет API.
Вот не умеет язык показывать цвет фона для окна... но в API обычно присутствуют сущности для этого... и их всеравно надо знать.

Если конечно тебе необходимо менять/узнавать цвет фона окна... Что далеко не всем нужно...

То есть многие из предоставляемых языком/API сущностей оказываются неиспользуемы/неоценены по достоинству.

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

Андрей Валяев
Наверх
Сайт
Chizh
Воскресенье 25.11.2007 15:03
ID пользователя #90
Зарегистрирован: Понедельник 13.09.2004 18:42
Сообщений: 170
ossadchy написал(а) ...

dynamic_cast и isKindOf решают одну задачу, но разница в том что
первый -- еще одно расширение языка;
...
Objective-C - язык компилируемый...

С этими "аргументами" ты мне напоминаешь человека в автосалоне, который выбирает машину по цвету и форме дисков.
К стати, JScript и VBScript компилируемые языки, у них динамическая компиляция.
Мне не нравится не сама динамическая типизация, а бестипность. Присвоение null значений, а также использование несуществующих идентификаторов там практически не отлавливается. Как в Objective C, я не в курсе.

[ Редактирование Воскресенье 25.11.2007 15:03 ]
Наверх
Сайт
ossadchy
Воскресенье 25.11.2007 16:29
ID пользователя #941
Зарегистрирован: Среда 10.10.2007 22:55
Местонахождение: Украина, Николаевская обл., г. Первомайск
Сообщений: 181
2Chizh: Что конкретно хочется услышать в качестве аргументов? Ну не видите вы что 1 операция для поддержки объектно-ориентированности это проще чем N операций, операторов и конструкций для решения данной задачи.. ну значит мы по-разному смотрим на одни и те же вещи, ну нормально это... у каждого свой взгляд -- тем и интересен мир.

2Dron: ну так давай создадим язык в котором операции установки цвета форм, создания кнопок, рисования opengl и т.д. определены как операторы языка
Ведь суть в том что не только все это, но и dynamic_cast не всем и не всегда нужен.
Зачем что-то добавлять в язык если это можно реализовать в библиотеках? Я, конечно, не против дополнительных конструкций... просто вопрос "когда остановится" -- это дело вкуса, а "о вкусах не спорят".

Ну аргументы мои просты: чем меньше базис языка(естественно тут надо соблюсти баланс, чтоб получить нормальную производительность и приемлемый для человека синтаксис... smalltalk или self, к примеру, -- перебор), тем стройней построенная система, если же еще при этом сохраняется удобочитаемость -- так вообще супер Я за простоту. Но это не значит что мой уровень IQ и знаний не позволяют мне понимать СЛОЖНЫЕ вещи.

Сложность же выгодна сильным мира сего. Сложные API, сложные языки, сложные ОС, сложные процессоры -- все это на руку крупным производителям программного обеспечения. НО ЭТО НЕ ЗНАЧИТ ЧТО ЧЕЛОВЕК КОТОРЫЙ СТРЕМИТСЯ К ПРОСТОТЕ НАСТОЛЬКО ГЛУП, ЧТО НЕ ВОСПРИНИМЕТ СЛОЖНЫЕ СИСТЕМЫ И ТЕХНОЛОГИИ.

Objective-C -- расширение языка C, посему вся строгость присущая этому языку сохраняется. Суть лишь в том что появляется тип данных 'id', выражению данного типа может быть послано любое сообщение, которое он может обработать как статически определенными методами так и на основе правил динамической обработки сообщений.
Сообщение это:
- селектор(грубо говоря -- имя метода)
- аргументы
сообщение может быть переадресовано любому объекту, переслано по сети и т.д. Накладные расходы -- минимальны, пример успешного применения -- MAC, с его framework -- Cocoa. Первая система использовавшая этот язык в качестве основы -- NeXT -- произвела переворот в мире настольных компьютеров.

Весь потенциал языка и runtime очень хорошо раскрывается при разработке гибкого программного обеспечения. НО это не значит что невозможно написать гибкое ПО на других языках(и когда этого требуют обстоятельства, успешно решаю и эту задачу ), просто вопрос трудозатрат. НО это не значит что трудозатраты на решение задачи на C++ у меня очень высокие, просто на Objective-C, ну или на JAVA эту же задачу можно решить БЫСТРЕЕ.

P.S. Думаю, намек ясен -- не стоит говорить что кто-то глуп из-за того что ему нравятся простые решения.

--------------------------------------------------------------------------------
Итого: как должен выглядеть язык программирования чтоб он Вам нравился?
Просто интересен четко сформулированный взгляд каждого из присутствующих в обсуждении.

[ Редактирование Воскресенье 25.11.2007 16:32 ]
Наверх
Сайт
Chizh
Воскресенье 25.11.2007 21:35
ID пользователя #90
Зарегистрирован: Понедельник 13.09.2004 18:42
Сообщений: 170
ossadchy, конструкция объектов может быть очень разной. Как более простой, так и более сложной и совершенной. Ваша аргументация напоминает некого ассемблерщика, хвалящего и идеализирующего язык за простоту. Но в жизни всё не как просто, как Вам кажется. Сложность современных систем - это объективная реальность, а не надуманная криворукими программистами. Поэтому я считаю, что простота обмена сообщениями это лишь капля в море. Если это единственная фича O/C, то практически нет темы обсуждения.

[ Редактирование Воскресенье 25.11.2007 21:38 ]
Наверх
Сайт
ossadchy
Воскресенье 25.11.2007 23:33
ID пользователя #941
Зарегистрирован: Среда 10.10.2007 22:55
Местонахождение: Украина, Николаевская обл., г. Первомайск
Сообщений: 181
2Chizh: уж поверьте, о сложности задач знаю не по наслышке. аргументируя свои мысли я несколько утрирую дабы обострить внимание к вопросам, обсуждение которых меня интересует.

суть в том что да -- задачи решать приходится программистам и архитекторам очень сложные, но ИНСТРУМЕНТЫ неоправдано усложнены. и так считаю не только я. я считаю то не темы для обсуждения нет, а нет желания вести конструктивную беседу.

конкретно: если я не услышал ответ на свой вопрос, я задаю его еще раз, возможно перефразируя. вы же свое непонимание возводите в абсолют, мол "если я не понял -- плохо объяснили". может просто стоит четко сформулировать свои вопросы? ведь тема топика: плюсы и минусы ObjC. Я свое мнение по поводу изложил конкретно еще в начале. сейчас, как обычно, все сосредоточились на ведении религиозных войн, вместо того чтоб поучаствовать в КОНКРЕТНОМ обсуждении.

По поводу идеализации -- этот этап уже давным давно пройден для меня -- нет идеальных языков, ОС, архитектур и это факт. Просто мне иногда бывает интересно построить прототип той или иной системы, базирующейся на определенных принципах, подходах. И в данный момент меня интересует построение прототипа ОС, полностью написанной на динамическом компилируемом языке программирования. Посему и хочу собрать мнения людей дабы взглянуть на проблему шире, дабы что-то почерпнуть, и лишь из-за этого призываю всех ПОСТЯЩИХ и ФЛУДЯЩИХ вернуться(перейти) в русло конструктивного обсуждения.
Наверх
Сайт
Chizh
Понедельник 26.11.2007 00:46
ID пользователя #90
Зарегистрирован: Понедельник 13.09.2004 18:42
Сообщений: 170
Ничего конкретного по ObjC сказать не могу, потому что я его не знаю. По мне так не важно, на каком ЯП писать ОС, главное чтобы не Ассемблер. Если речь идёт о основном языке системы, тогда тоже не важно, т.к. не существует лучшего языка, и тоже можно выбирать любой.
Сложными обычно являются низкоуровневые ЯП (Аsm, C, С++, ObjC), потому что низкоуровневой код сложней по определению, чем код написанный на высокоуровневом ЯП. Но для ядра нужны именно такие языки, потому что высокоуровневых языков работающих напрямую с аппаратурой быть не может. По сложности такой язык может потянуть на небольшую ОС. Поэтому дальнейшее усовершенствование ObjC может привести к тому, что он станет непригодным для системного программирования, т.е. перейдёт в другую категорию.

[ Редактирование Понедельник 26.11.2007 01:10 ]
Наверх
Сайт
ossadchy
Понедельник 26.11.2007 10:27
ID пользователя #941
Зарегистрирован: Среда 10.10.2007 22:55
Местонахождение: Украина, Николаевская обл., г. Первомайск
Сообщений: 181
Ну т.к. ОС можно написать и на Java, то категорий языков ОБЩЕГО НАЗНАЧЕНИЯ пригодных и непригодных для написания ОС нет... суть в том насколько эффективно можно реализовать ту или иную архитектуру на данном языке. Тут, естестывенно, надо соблюсти баланс.

Лучший или хороший язык для решения определенной задачи всегда есть. И искуство выбрать подходящий инструмент -- это один из поределяющих факторов компетентности программиста.
Наверх
Сайт
Hmmm
Понедельник 26.11.2007 11:48

ID пользователя #719
Зарегистрирован: Среда 09.08.2006 11:29
Местонахождение: Москва
Сообщений: 108
Если определить термин "сообщение" как объект класса производного от некоторого базового класса для всех "сообщений", а так же сходным образом определитьься с "получателем сообщения", то подобный подход реализуем в рамках любого ОО языка. Отличие С++ заключается только в том, что в базовой реализации эти термины не определены, но ничто не мешает вам написать данную реализацию самостоятельно, тем более что это не ах какая сложная задача. (сужу по личному опыту)

P.S. А наличие множественного наследования в С++ даст возможность конструировать классы "получатели" объекты которых можно посылать в качестве "сообщений" lol

[ Редактирование Понедельник 26.11.2007 11:54 ]
Наверх
Chizh
Понедельник 26.11.2007 13:48
ID пользователя #90
Зарегистрирован: Понедельник 13.09.2004 18:42
Сообщений: 170
ossadchy, должно быть ObjC не хуже C++, потому что у них ноги из одного и того же места растут - из C. Впрочем, "язык для ОС" звучит абстрактно, поэтому когда появятся детали и очертания конкретной ОС, то и виднее будет, какой язык лучше.
Наверх
Сайт
leto
Понедельник 26.11.2007 18:07
ID пользователя #960
Зарегистрирован: Понедельник 26.11.2007 17:57
Местонахождение: Moscow
Сообщений: 3
всем привет! мне хотелось бы присоединиться к дискуссии. я недавно купил себе мак и заинтересовался программированием под него. obj c вызвал сильный интерес, т.к. он по сути (имхо) сильно отличается от "стандартных" языков.

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

удивил динамизм языка. имхо посылка сообщений - более "системная", чтоли, вещь, чем вызов методов.

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

щаз с удовольствием разбираюсь с obj c и мне этот язык нравится.

по поводу сложности вещей. я люблю простые вещи. имхо существующие средства разработки (языки, либы и пр.) зачастую излишне сложны. и сложность эта, как мне кажется, не объективна, а вызвана скорее общей организацией промышелнной разработки ПО. сложно по-другому сделать сложную прогу, используя стандартные методы управления проектами. в любом случае, это вырастет во что-то типа MFC т.ч живя в мире сложных вещей я все-таки люблю вещи простые. и простота Obj 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 обязательна.