» Главная
eXcode.ru » Статьи » .NET » C#
» Новости
» Опросы
» Файлы
» Журнал



Пользователей: 0
Гостей: 4





C# - первый компонентно ориентированный язык в семействе C/С++




Осборн: Вы не давно написали вступление к C#, и в первом же заголовке говорили: "Первый компонентно ориентированный язык в семействе C/С++."

Хейлсберг: Да, это одно из моих главных достижений. Мы думали о том, как все что угодно превратить в объекты, и это имеет очень большое значение. В языках вроде SmallTalk и Lisp это было сделано и ранее, но тому была слишком большая цена. На мой взгляд в C# содержится ряд очень интересных новаций для облегчения разработки компонентов, например, понятие boxing и unboxing. Boxing позволяет значение простого типа преобразовывать в объект, в то время, как unboxing позволяет значению объекта быть представленным в виде значения простого типа. Не то чтобы это нигде раньше не встречалось, просто способ реализации этого в языке действительно новый и красивый.

Проектируя C# и .NET framework, мы пытались не ставить себе недостижимых целей. Мы не можем позволить себе переписать все наши программы. Индустрия не может этого позволить, особенно сейчас, когда мы входим в эпоху Internet. Уже достигнуто многое, и очень важно обеспечить взаимодействие программ между собой. Мы обратили сильное внимание на предоставление программистам всех действительно хороших возможностей взаимодействия с Internet стандартами, такими как HTTP, HTML, XML, и с существующими Microsoft технологиями, так что сильно не удивляйтесь когда обнаружите нечто, не реализованное в новой платформе .NET, или когда поймете, что хотите опереться на какой-либо существующий API или компонент. Вы увидите, что все возможные взаимодействия с COM были встроены в язык и платформу. Вы увидите как просто вы можете импортировать существующие DLL, используя атрибут DllImport. В увидите, даже если никогда не будете это использовать, что мы определили понятие небезопасного (unsafe) кода. Небезопасный код позволяет вам писать встроенные C программы, использовать указатели, небезопасные приведения типов и распределение памяти, которое не приведет сбою при сборке мусора.

Было много обсуждений по поводу небезопасного кода, многие считали нас наркоманами или что-то в этом духе. Я думаю, что это просто непонимание. То, что код помечен как небезопасный вовсе не означает, что его ничто не контролирует. Естественно мы не просто добавили небезопасные указатели и тем самым подставили людей, которые скачивают небезопасный код из Internet. Небезопасный код сильно связан с системой защиты. Мы даем вам возможность писать проверяемые блоки кода, а не сходить с ума в поисках другого языка программирования или системы программирования для native кода. А ограничивая небезопасный код блоками, мы можем добиться большей защищенности программ, так как система будет понимать, что именно происходит. Тот факт, что вы пишите небезопасный код вовсе не значит, что вы выходите из пространства проверок. Просто ваш небезопасный код становится более эффективным.

Источник: www.cyberguru.ru

К началу статьи





Добавил: LedWormДата публикации: 2008-02-29 13:59:00
Рейтинг статьи:3.00 [Голосов 5]Кол-во просмотров: 16528

Комментарии читателей

Всего комментариев: 0
Ваше имя: *
Текст записи: *
Имя:

Пароль:



Регистрация

Вы программируйте ради
денег
15% (31)
славы
4% (8)
удовольствия
33% (68)
знаний
20% (40)
просто так
5% (10)
все вместе
23% (47)

Проголосовало: 204
Женщины как вeб-сервера:
400 Bad Request - свидание без букета
401 Unauthorized - замужем
402 Payment Required - ужин при свечах
403 Forbidden - руки прочь!
404 Not Found - сегодня я гуляю с подругами
405 Method Not Allowed - Не-е, не с зади...
406 Method Not Acceptable - ...только не сосать!
407 Proxy Auth. Required - надо спросить маму
408 Request Timeout - знаешь колько ты уже не звонил?
409 Conflict - что это там была, за блондинка вчера?
410 Document Removed - хочу развода
411 Lenght Required - что? это ты называешь длинным?
412 Precondition Failed - что? у тебя нет презерватива?
413 Request Entity Too Large - Такой не влезит!
415 Unsupported Media Type - нее, вчетвером не интерестно.
500 Internal Server Error - месячные
501 Not Implemented - ещё никогда не пробовала
502 Bad Gateway - ...фу, солёно!
503 Service Unavailable - голова болит
504 Gateway Timeout - это уже всё?
Рейтинг: 8.2/10 (14)
Посмотреть все анекдоты