Здравствуйте, Сергей Губанов, Вы писали:
СГ>язык C# — не модульный (нет синтаксической конструкции модуля)
Сергей, а вам не кажется, что такой аргумент не многим будет отличатся от приведенного вами
"язык C# — не модульный (язык "Modula" не был его предшественником)"
Здравствуйте, pagid, Вы писали:
СГ>>язык C# — не модульный (нет синтаксической конструкции модуля)
P>Сергей, а вам не кажется, что такой аргумент не многим будет отличатся от приведенного вами P>"язык C# — не модульный (язык "Modula" не был его предшественником)"
СГ>/addmodule:<file list> Link the specified modules into this assembly
СГ>
СГ>Правильно ли я понял, что это есть возможность прилинковать к одному dll файлу несколько других dll файлов получив "мульти-dll" файл?
Нет. Это возможность создавать многомодульные сборки. Сборка != одной ДЛЛ. Она может состоять из несколькоих отдельных файлов — модулей. Однако возможность создавать общую длл тоже имеется. Но через сторонние утилиты.
СГ>Если так, то тогда становится понятно почему у модуля нет персонального имени. В таком случае, ситуация еще более плачевна чем я думал...
Модуль имеет имя файла. Сборка именуется по имени главного файла плюс можно добавить так называемое строгое имя (но это скорее из области подпмиси).
... << RSDN@Home 1.2.0 alpha rev. 620>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Сергей Губанов, Вы писали:
СГ>... А именно, глядя на текст: Namespace1.Namespace2.Namespace3.Ident1.Ident2 — не ясно в каком модуле определена данная сущность. Это не придирка. Это серьезная вещь.
Зачем это может быть понадобится? Сейчас, когда есть IDE. Например, в Дельфи есть Ctrl+Left Click, в Студии есть аналогичный инструмент, позволяющий в три пришлёпа открыть текст нужного класса или метода.
Иерархическое представление сущностей а ля URI более наглядно (и, думаю, удобно) нежели список.
Здравствуйте, akasoft, Вы писали:
A>Зачем это может быть понадобится? Сейчас, когда есть IDE. Например, в Дельфи есть Ctrl+Left Click, в Студии есть аналогичный инструмент, позволяющий в три пришлёпа открыть текст нужного класса или метода.
В каком-то смысле "namespace = goto".
Первый вариант
Перед нами листок бумаги с распечатанным фрагментом программы:
MyNamespace.MyIdent
Смотрим и понимаем, что не знаем в каком модуле определён идентификатор MyIdent. Запускаем MS Visual Studio или Delphi. Загружаем в неё проекты. Щелкаем мышью, жмем кнопки. Тулзовина запускает глобальный поиск. Тулзовина показывает нам результат поиска. Разглядывая результат поиска понимаем в каком модуле определён идентификатор MyIdent.
Второй вариант.
Перед нами листок бумаги с распечатанным фрагментом программы:
MyModule.MyIdent
Смотрим и понимаем, что идентификатор MyIdent определён в модуле MyModule.
Здравствуйте, Сергей Губанов, Вы писали:
P>>А когда готовили диссертацию к защите, какие-нибудь расчеты наверняка делали, не так ли? Сейчас от медиков и от филологов без математики не принимают. Вот и интересно, использовали Вы тогда Оберон?
СГ>так как уверен в том, что программировать может любой человек у которого функционирует хотя бы пять процентов головного мозга .
Вы путаете два очень схожих понятия — кодирование и тем, что иногда называют программирование. Между ними, грубо говоря — пропасть, через которую может перепрыгнуть далеко не каждый с 5% здоровыми клетками головного мозга
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Здравствуйте, Сергей Губанов, Вы писали:
СГ>Здравствуйте, akasoft, Вы писали:
A>>Зачем это может быть понадобится? Сейчас, когда есть IDE. Например, в Дельфи есть Ctrl+Left Click, в Студии есть аналогичный инструмент, позволяющий в три пришлёпа открыть текст нужного класса или метода.
СГ>В каком-то смысле "namespace = goto".
СГ> Первый вариант СГ>Перед нами листок бумаги с распечатанным фрагментом программы:
Сергей, а чему в реальной жизни соответтвует ваш пример? Вам частно приходится работать с программами, распечатанными на листочке?
В .NET есть более гибгое понятие "сборка", а за всем остальным пусть следит IDE — должна жа она оправдывать свою стоимость!
Здравствуйте, Сергей Губанов, Вы писали:
СГ>Здравствуйте, akasoft, Вы писали:
СГ>Смотрим и понимаем, что идентификатор MyIdent определён в модуле MyModule.
Сергей, вы под "модулем" понимаете "файл с исходным кодом"? Если да, то вам не кажется что это хм... несколько связывает руки?...
Здравствуйте, psg, Вы писали:
psg>Сергей, вы под "модулем" понимаете "файл с исходным кодом"?
Я тут говорю про Блэкбокс. Так что Вы могли бы не строить гипотез, а просто посмотреть в хелп Блэкбокса и узнать.
Модуль — компонент модульной системы, т.е. некий бинарник с машинными кодами (назовём его MyModule.ocf). Но у каждого модуля есть свой исходный текст (назовём его MyModule.odc), а также символьный файл с метаинформацией для компилятора (назовём его MyModule.sym).
Итого, модуль представляется тремя файлами:
MyModule.odc — файл-документ с исходным текстом (для разработчика)
MyModule.ocf — исполнимый бинарник с машинными кодами (для потребителя)
MyModule.sym — таблица символов генерируемая компилятором (для других разработчиков — клиентов этого модуля)
Здравствуйте, Сергей Губанов, Вы писали:
СГ>В каком-то смысле "namespace = goto".
Ты это серьёзно?
Ты серьёзно не понимаешь, зачем namespace в языке программирования?
Я как бы Америку не открываю, но это удобный механизм структурирования и иерархии классов. Речь о логической иерархии, которая ортогональна набору файлов.
Goto будет не namespace, goto будет тот самый механизм в IDE.
Ни первый вариант, ни второй нипайдёт!
Во-первых, я распечатаю дерево, чтобы иметь наглядное представление логической модели задачи. Работая над задачей, я и так держу эту модель в голове, а namespace позволяет мне её наглядно изложить на бумаге прямо в коде и не прибегая ко всяким квадратикам со стрелочками. Во-вторых, воспользуюсь механизмом в IDE для перехода к нужному MyIdent и распечатаю его текст. Мне в общем-то по барабану, как IDE мне найдёт этот MyIdent.
Есть логика, есть текст на ЯП. Это разные вещи.
Дерево может быть посложнее, чем просто список, например:
Здравствуйте, Сергей Губанов, Вы писали:
СГ>Здравствуйте, psg, Вы писали:
psg>>Сергей, вы под "модулем" понимаете "файл с исходным кодом"?
СГ>Я тут говорю про Блэкбокс. Так что Вы могли бы не строить гипотез, а просто посмотреть в хелп Блэкбокса и узнать.
СГ>Модуль — компонент модульной системы, т.е. некий бинарник с машинными кодами (назовём его MyModule.ocf). Но у каждого модуля есть свой исходный текст (назовём его MyModule.odc), а также символьный файл с метаинформацией для компилятора (назовём его MyModule.sym).
СГ>Итого, модуль представляется тремя файлами:
СГ> MyModule.odc — файл-документ с исходным текстом (для разработчика) СГ> MyModule.ocf — исполнимый бинарник с машинными кодами (для потребителя) СГ> MyModule.sym — таблица символов генерируемая компилятором (для других разработчиков — клиентов этого модуля)
Ага, все понятно, спасибо
Все как в Delphi: Так_МыПытаемся.Эмулировать_Namespaces
Здравствуйте, Сергей Губанов, Вы писали: СГ> Второй вариант. СГ>Перед нами листок бумаги с распечатанным фрагментом программы: СГ>
СГ> MyModule.MyIdent
СГ>
СГ>Смотрим и понимаем, что идентификатор MyIdent определён в модуле MyModule.
СГ>Мне больше нравится второй вариант. А Вам?
Сергей, попробуй распечатать полный список пространств имен в Net 2.0. Для начала попробуй представить, что было бы, если бы они формировали плоский список, а не иерархию.
Далее попробуй представить, что каждое пространство имен — это отдельный модуль. Представь все удовольствия, связанные с многоверсионностью этих модулей.
Ну и напоследок расскажи нам, насколько часто тебе приходится задаваться вопросом, в каком модуле определен некий класс, да еще и по распечатанной версии кода? Нет, правда, вот зачем тебе знать, в каком модуле определен класс? Для построения списка зависимостей? Ну, если у тебя для построения списка зависимостей модуля используется вычитка исходников, то я даже не знаю, что и сказать.
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Cyberax, Вы писали:
C>WinCE — это ОС "мягкого" (soft) realtime'а.
Я встречал упоминания об этой ОС как о настоящем hard real-time, тесты видел. Более того, знаю, что в некоторых PLC именно она применяется (сам, правда, с такими не работал) (Речь идёт, естественно, об native WinAPI, а не о .NET CF)
Здравствуйте, Сергей Губанов, Вы писали:
СГ>я, конечно, предпочел бы заниматься теоретической физикой и дальше, так как уверен в том, что программировать может любой человек у которого функционирует хотя бы пять процентов головного мозга . Но судите сами, после того как я ушел из ИТФ им. Л. Д. Ландау РАН будучи к.ф.-м.н. на самую завалящуюся должность самого обычного рядового программиста, моя зарплата мгновенно увеличилась в 12 (двенадцать!!!) раз, а сейчас она в 20 (двадцать!!!) раз больше чем была у меня в РАН в 2002 году.
у нас в фирме был один к.т.н. и один доктор наук.
Полное отсутствие способности отделить главное от второстепенного. Неумение искать нужную информацию, вместо того чтобы просто зарываться в горы ненужного мусора. Зато — мощнейший генератор понтов и высокоумных ненужных речей.
Вероятно, у них и последние 5% давно атрофировались. За ненадобностью.
Здравствуйте, Дарней, Вы писали:
СГ>>я, конечно, предпочел бы заниматься теоретической физикой и дальше, так как уверен в том, что программировать может любой человек у которого функционирует хотя бы пять процентов головного мозга .
Д>у нас в фирме был один к.т.н. и один доктор наук — мощнейший генератор понтов и высокоумных ненужных речей.
А что они могут ответить на предложение показать свои конкретные работы в области разработки ПО ?
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
SilverCloud wrote: > C>WinCE — это ОС "мягкого" (soft) realtime'а. > Я встречал упоминания об этой ОС как о настоящем hard real-time, тесты > видел. Более того, знаю, что в некоторых PLC именно она применяется > (сам, правда, с такими не работал) (Речь идёт, естественно, об native > WinAPI, а не о .NET CF) http://msdn.microsoft.com/msdnmag/issues/1100/RealCE/