IPB

Здравствуйте, гость ( Вход | Регистрация )

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



Язык Программирования D
ltwood
Сообщение #1
Нет аватара

Заглянул... и зарегистрировался
Иконки Групп

Группа: Участник

Сообщений: 4
Спасибо сказали: 0 раз(а)
Регистрация: 16 Марта 2004
Из: Yaroslavl, Russia
Пользователь №: 40



Это -- моя первая попытка прозондировать местную почву в поисках собеседников.

На C++ я пишу с 1991 года. За это время я гораздо больше узнал о проблемах этого языка и где-то с 2000 года все время искал язык, на который можно перейти. Дело в том, что по мере накопления опыта мне постепенно становилось все яснее, что самый ценный опыт в C++ -- это знание того, какие средства этого языка потенциально опасны или опасно взаимодействуют с другими его средствами. С появлением Design Patterns и пониманием того, что наследование наиболее эффективно использовать для задания интерфейса объекта, а не для наследования реалиации, я стал понимать, что C++ по сути представляет собой что-то вроде ассемблера для ООП. Для эффективной работы нужно хорошо знать, какие средства для чего следует применять (и для чего не следует). Врезультате получается, что по сути разные вещи выражаются в C++ синтаксически одинаково или похоже.

В качестве замены C++ я рассматривал Oberon, но не нашел достаточно устойчивой реализации, да и паскалевский синтаксис выглядит уж очень непривычно и не кажется мне удобным. **'у я тоже рассматривал как возможную замену, но мне нужна возможность компилироваться в эффективный нативный код. Кроме этого в **, как мне кажется добавлено слишком много "колокольчиков и свистулек".

Недавно приятель мне прислал ссылку на сайт фирмы Digital Mars, которая разработала язык D и компилятор для него. Автор языка -- человек, который разрабатывал компиляторы фирмы Semantec. Язык позиционируется как прагматичный инструмент для практического программирования, в котором учтены все основные проблемы, выявленные в результате использования языка C++ и написания компиляторов для него. Основное отличие от C++ такое: при проектировании автор отказался от обеспечения обратной совместимости с C, что позволило упростить многие вещи. В первом сообщении темы я приведу перевод наиболее интересных фраз из введения к manual'у.

Сейчас я потихоньку изучаю D и он мне все больше и больше нравится... Теперь вопросы.

1. Интересно ли кому-нибудь здесь обсуждение этих вопросов? Хотя это сразу станет ясно, когда не будет ни одного ответа ;))

2. Задумываются ли люди, пишущие на C++ о возможности перехода к использованию более эффективного и безопасного инструмента?

3. Есть ли у кого-либо опыт изучения/использования языка D?

4. Как можно оценивать риски использования этого языка в реальном проекте?

P.S. На мне висит около 100000 строк кода, используемого в нескольких промышленных проектах. Поэтому полностью и сразу перейти на новый язык в любом случае не удастся, это будет долгий и трудный процесс, включающий переговоры с теми заказчиками, которым мы продаем исходники. Именно поэтому я весьма пессимистично смотрю на все это предприятие, но, с другой стороны, с каждым килобайтом нового кода на C++ будет все тяжелее перейти на новый язык...
К началу страницы
 
+Цитировать сообщение
 
Создание новой темы
Ответов
Laplandian
Сообщение #2
Нет аватара

реб Йойл
Иконки Групп

Группа: Обозреватель

Сообщений: 840
Спасибо сказали: 0 раз(а)
Регистрация: 14 Апреля 2004
Пользователь №: 47



Язык B уже и так существует. Он был разработан Ричи и Томпсоном в качестве языка высокого уровня, обладающего эффективностью ассемблера, в 1969-1970 годах. B - это сокращение от имени его непосредственного предка - BCPL, который , в свою очередь, - упрощенный (Bacis) CPL. Однако вскоре авторы этого языка убедились в необходимости его доработки и в 1972 году создали новый язык - C. Собственно, ядро системы и ряд утилит UNIX были поначалу написаны на B, однако в 1973 году UNIX был переписан на C. Версия B для PDP-11 использовалась довольно долго после этого, в качестве как бы макроассемблера (впрочем, самые эффективные программы для PDP-11/советских СМ-4,как известно, народ писал сырым машинным кодом). Язык B - это важная страница в истории C и UNIX.

Про язык D я знаю только то, что это некое альтернативное расширение C, по аналогии с C++ и ObjC. Я сейчас пользуюсь кусками кода, написанными на ObjC (под Mac OS X - это единственный UNIX, где он активно используется), поэтому поневоле приходится осваивать этот язык. Похоже на C++, но объекты больше напоминают Java. Никаких преимуществ по сравнению с C++ я не вижу, а вообще-то я больше люблю старый добрый C без плюс-плюсов. Лично я в ближайшее время не собираюсь интересоваться D, поскольку он несовместим с gcc и пока находится в стадии языка-игрушки: версия для Linux находится в зачаточном состоянии, а для *BSD и Solaris его пока просто нету.
К началу страницы
 
+Цитировать сообщение

Сообщений в этой теме


Ответ в темуСоздание новой темы
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

Текстовая версия Сейчас: Вс, 28 Апреля 2024, 20:09


 
AiwanВs emoticons KOLOBOK-Style
Russian America Top. Рейтинг ресурсов Русской Америки.
Рейтинг Новостей Америки
Ozon.ru