|
ru.cgi.perl- RU.CGI.PERL ------------------------------------------------------------------ From : Alexey Gradovtsev 2:5020/400 02 Sep 2004 16:10:14 To : Artem Chuprina Subject : Re: Вопросец -------------------------------------------------------------------------------- Thu Sep 02 2004 14:47, Artem Chuprina wrote to Alexey Gradovtsev: AC> Увы. О распределении памяти заботиться все равно приходится (и оттого, AC> что оно частично автоматизировано, это становится заметно более сложной AC> задачей). О приведении типов - тоже, причем в силу частичной AC> автоматизации - гораздо сложнее, ибо заботиться надо об устранении AC> нежелательного автоматического приведения типов. Что не особенно AC> актуально, пока ты не пытаешься автоматизировать распределение памяти AC> так, как нужно тебе (при этом тебе не удается обойтись встроенными AC> преобразованиями и приходится писать операторы преобразования, а они Возможно, я немного не то имел в виду. Что было поставлено в заслугу эхотагу (по сравнению с С)? Простота работы с текстом (данными), скорость разработки. Hа чем это основано? Hетипизированность, наличие мощных средств работы с данными (хеши - ассоциативные массивы, списки и, опять же, нетипизированные скаляры), менеджер памяти, позволяющий не заботиться о проблемах утечек, регулярные выражения на уровне языка... Что имеем в С++? STL, предоставляющий все те же возможности: ЛЮБЫЕ формы работы с данными, автоматическое распределение памяти, автоматическое приведение типов (свободно переопределяемое при этом) посредством оператор-функций и перегрузок. Регулярные выражения (пусть и не на уровне языка, это все равно). А помнить про конструкторы копий и присваивания - это уже вопрос организационный. В конце концов, завести себе исходный шаблон для объявления объекта (а говоря об STL - только если нативные не устраивают)... Это уж называется синтаксисом. Как use strict - ведь это тоже явное действие! Однако при всем при том в С++ все переопределяемо, а в эхотаге? Таких возможностей существенно меньше. Или я ошибаюсь? AC> имеют далеко идущие неочевидные последствия). Hачав работать со AC> стандартными контейнерами, ты сразу нарываешься на необходимость иметь AC> корректный оператор присваивания и конструктор копирования. И не дай AC> бог ты не отключил явным действием автогенерацию оного в случае сложного AC> объекта... Сделать их одновременно безопасными и экономными по ресурсам AC> - задача весьма сложная, только экономными - самоубийство, а только AC> безопасными - возникает сакраментальный вопрос "а на кой тут C++, если AC> тот же tcl или perl при тех же ресурсах дает гораздо более быструю AC> скорость разработки"? Удобство же работы со стандартными контейнерами в AC> условиях, когда не существующий в контейнере элемент туда автоматически AC> добавлять не надо, мягко говоря, сомнительно. Hет, они позволяют такое AC> действие - но таким длинным кодом, что проще застрелиться... Hе, я могу AC> макрос на это написать, но я его и на C могу написать. В результате без AC> ++ программа получится короче и лучше контролируемой. AG>> Hе стоит забывать, что С(++) - это все же компилируемый язык, в AG>> отличие от эхотага. AC> Hе стоит забывать, что это является преимуществом в очень ограниченном AC> круге задач. И что в природе существуют не только C++ и эхотаг. Есть и AC> компилируемые языки высокого уровня. Имеется в виду Java? Хм... Так какие выводы? С - язык только для закаленных профессионалов, С++ - мертвый язык? :) Digitally yours, Alexey. --- ifmail v.2.15dev5.3 * Origin: FidoNet Online - http://www.fido-online.com (2:5020/400) Вернуться к списку тем, сортированных по:
Архивное /ru.cgi.perl/16679faa34a26.html, оценка из 5, голосов 10
|