[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Kylix 3



On 2003.08.25 at 23:17:42 +0600, Dimitry N. Naldaev wrote:

> > >а) C++ не должен быть первым языком программирования. Начинать учить
> > >нужно с того, что позволяет на второй-третий день добиться осмысленных
> > >результатов. Чтобы интерес у ученика не пропадал.
> 
> При наличии толковых скелетных библиотек аля ТурбоВижин и хорошей документации 
Это турбовижн-то толковая библиотека? Хммм... Она имеет крайне
ограниченную функциональность - только CUA-style интерфейсы и только в
текстовом режиме. И по каждому чиху объект наследовать надо. Object
Professional куда гибче. 
 
> > 1. Знание С вредит изучению С++
> Ну нискажи... конечно у этих языков разные подходы к построению 
> (проектированию) программы, но синтаксис очень близкий, а понимание того, во 
> что компилятор превратит Вашу программу очень полезно, если даже не жизненно 
> необходимо...

Не жизненно. Кроме того на самом деле мало кто из современных
программистов, кроме авторов компиляторных бэкэндов, реально понимают во
что компилятор превращает их код. Полезно знать во что некий
гипотетический компилятор для некоторой гипотетической архитектуры -
MMIX-2009 или PDP-11 превратил бы твою программу. А особенностей
архитектуры всех современных процессоров и не упомнишь.

> > 2. Pascal для обучения бяка. :)
> 
> Полностью согласен. тем более, что С ничем по возможностям не уступает паскалю 
> и не содержит очень многих дурацких ограничений последнего... Кстати, после 

Как раз эти самые ограничения несут самую полезную обучающую функцию.
На C очень просто писать неряшливо и неудобочитаемо. Как и на Perl. Это
оборотная сторона гибкости этих языков, которая делает их полезными в
практических проектах. Но только после того как человек выучил правила,
и делает из них исключения осознанно.

> паскаля програмистов от дельфы за уши не оттащиш :-( 

Ты им  Visual Oberon подсовывать пробовал?

В поздних виртовских языках (Modula-2, Oberon-2) есть много интересного,
чего не хватает в паскале. И много чего там сделано лучше, чем в
расширениях паскаля, в частности борландовских.

> > >самом деле его не знают, а также потому что научить тех кто не знает -
> > >долго и дорого.
> тоже верно... Самая большая проблема программирования на C++ --- это грамотно 
> разработать иерерархию классов. этому ни в одной книжке не учат :-( А когда 
> уже эта самая иерархия уже есть --- все остальное дело техники....

На счет "ни в одной" ты глубоко не прав. Есть, скажем Design Patterns. 

Между прочим, практически все хорошие книжки по ООД (Object Oriented
Design) написаны людьми, имевшими опыт общения со SmallTalk.

> Вообще C++ разрабатывался специально для очень крупных проектов, когда затраты 
> на проработку иерархии классов (или леса как ее еще иногда назвают) невелики 
> по сравнению с общим обемом работ...

Мне лично, кажется крайне странной идея при разработке очень крупного
проекта искусственно ограничивать себя одним языком, пусть даже таким
гибким как C++, Perl или даже Common Lisp.  


> На C++ очень просто написать очень неэффективный код, хотя разработчики этого 
> языка очень много внимания уделяли вопросам эффективности. Вот такой 
> пародокс.

Разработчики C++ уделили очень много внимания тому чтобы дать
программисту достаточно веревки. А залезет он по ней на вершину Эвереста
или просто повесится - его проблемы.

> Кстати, очень многие проекты в *nix пишутся в стиле C++ но на языке C при этом 
> програмисты вручную выполняют ту работу, которую в C++ за них будет делать 
> компилятор... Я думаю это не случайно

Угу. Ровно потому что сроду и до этого году (до GCC 3.3) качественного
компилятора C++, которому можно было бы доверять, практически не было.
Вот Objective C - другое дело. И мы видим NextStep и Mac OS X.



Reply to: