Здравствуйте, adontz, Вы писали:
A>Здравствуйте, uw, Вы писали:
A>Пока одни ругают Си++, другие на нём пишут и зарабатывают этим деньги. A>Я не злой — пусть ругают...
Чего только люди не делают, зарабатывая этим деньги. А другие (не менее, а то и более добрые, а подчас являющиеся по совместительству теми другими, которые "другие" в процитированном сообщении) иногда этот процесс критикуют/ругают и иногда даже не для того, чтобы это явление искоренить, а как раз наоборот.
Здравствуйте, uw, Вы писали:
uw>Здравствуйте, adontz, Вы писали:
A>>Здравствуйте, uw, Вы писали:
A>>Пока одни ругают Си++, другие на нём пишут и зарабатывают этим деньги. A>>Я не злой — пусть ругают...
uw>Чего только люди не делают, зарабатывая этим деньги. А другие (не менее, а то и более добрые, а подчас являющиеся по совместительству теми другими, которые "другие" в процитированном сообщении) иногда этот процесс критикуют/ругают и иногда даже не для того, чтобы это явление искоренить, а как раз наоборот.
Хотелось бы не общих слов, а конкретных примеров. А насчет трудностей парсинга -- чушь. В C++ не парсить трудно, а делать следующую фазу компиляции. Правила перегрузки, вывода аргументов шаблонов, рекурсивная инстантинация, неявные преобразования и.т.д.
Здравствуйте, Шахтер, Вы писали:
Ш>Хотелось бы не общих слов, а конкретных примеров. А насчет трудностей парсинга -- чушь. В C++ не парсить трудно, а делать следующую фазу компиляции. Правила перегрузки, вывода аргументов шаблонов, рекурсивная инстантинация, неявные преобразования и.т.д.
Про трудность парсинга я ничего не говорил. Ссылку на заметку я привел просто для того, чтобы указать первоисточник. На мой взгляд цитата весьма точно характеризует современное состояние и ближайшее будущее C++, как языка программирования, а не как инструмента промышленной разработки.
Тем не менее трудность парсинга без сомнения один из основных минусов C++. Лично я не видел ни одного open-source парсера С++ (написанного на C++) и поддерживающего хотя бы парсинг на уровне сравнимом с наиболее адекватными компиляторами. До следующей фазы компиляции у их разработчиков руки просто не дошли. Основные усилия ушли на парсинг. В OpenC++ парсер рукописный recursive descent + backtracking, для Elsa был специально написан смешанный generalised lr / lr генератор парсеров, FOG парсит суперсет грамматики C++, а затем уже устраняет неоднозначности.
Вся эта работа была проделана ими зря !?
А что касается всего тобой перечисленного самое трудное это увязать правила перегрузки и неявные преобразования, без которых можно и нужно было бы обойтись, равно как и от других артефактов оставшихся либо по наследству от C, либо превнесенных по ходу разработки.
Самая главная проблема C++ — это нестройность всей концепции языка. В основе языка несколько фундаментальных правил и тысячи и тысячи исключений из этих правил. Я думаю язык бы серьезно выиграл даже от того, что появилось бы некое более чистое и красивое подмножество.
Здравствуйте, uw, Вы писали:
uw>А что касается всего тобой перечисленного самое трудное это увязать правила перегрузки и неявные преобразования, без которых можно и нужно было бы обойтись, равно как и от других артефактов оставшихся либо по наследству от C, либо превнесенных по ходу разработки.
Перегрузка это артефакт? Ну-ну....
uw>Самая главная проблема C++ — это нестройность всей концепции языка. В основе языка несколько фундаментальных правил и тысячи и тысячи исключений из этих правил. Я думаю язык бы серьезно выиграл даже от того, что появилось бы некое более чистое и красивое подмножество.
Здравствуйте, uw, Вы писали:
uw>Здравствуйте, Шахтер, Вы писали:
Ш>>Хотелось бы не общих слов, а конкретных примеров. А насчет трудностей парсинга -- чушь. В C++ не парсить трудно, а делать следующую фазу компиляции. Правила перегрузки, вывода аргументов шаблонов, рекурсивная инстантинация, неявные преобразования и.т.д.
uw>Про трудность парсинга я ничего не говорил. Ссылку на заметку я привел просто для того, чтобы указать первоисточник. На мой взгляд цитата весьма точно характеризует современное состояние и ближайшее будущее C++, как языка программирования, а не как инструмента промышленной разработки.
??? Я не понял, ты хочешь сказать, что С++ не применяется в промышленных разработках? А я на чем пишу?
uw>Тем не менее трудность парсинга без сомнения один из основных минусов C++. Лично я не видел ни одного open-source парсера С++ (написанного на C++) и поддерживающего хотя бы парсинг на уровне сравнимом с наиболее адекватными компиляторами. До следующей фазы компиляции у их разработчиков руки просто не дошли. Основные усилия ушли на парсинг. В OpenC++ парсер рукописный recursive descent + backtracking, для Elsa был специально написан смешанный generalised lr / lr генератор парсеров, FOG парсит суперсет грамматики C++, а затем уже устраняет неоднозначности. uw>Вся эта работа была проделана ими зря !?
НЕ могу сказать. По-моему, это на что у людей хватает способностей. Хватило же способностей у эдисонов сделать EDG. Причем на чистом С.
uw>А что касается всего тобой перечисленного самое трудное это увязать правила перегрузки и неявные преобразования, без которых можно и нужно было бы обойтись, равно как и от других артефактов оставшихся либо по наследству от C, либо превнесенных по ходу разработки.
Ну это ты загнул. С чего бы это отказываться от одной из самых мощных и востребованных фич языка?
uw>Самая главная проблема C++ — это нестройность всей концепции языка. В основе языка несколько фундаментальных правил и тысячи и тысячи исключений из этих правил. Я думаю язык бы серьезно выиграл даже от того, что появилось бы некое более чистое и красивое подмножество.
НЕ вижу нестройности. То что появилось в С++ -- это не академические упражнения. Сила С++ в том, что он идет от сути вещей, а не от высосанных из пальца концепций.
Добавлю ещё немного. Ты не замечал, что код, написанный на шарпе пестрит явными преобразованиями типа? Почему, спрашивается? А потому, что чудес на свете не бывает. Невозможно спорить с сутью вещей. Природа всё равно победит. Всё, чего можно добиться, вводя разного рода ограничение, так это только того, что программисты будут не о задаче думать, а о том, как эти дурацкие ограничения обойти.
Здравствуйте, adontz, Вы писали:
A>Перегрузка это артефакт? Ну-ну....
Неявные преобразования, битовые поля — артефакты. А перегрузка это скорее жизненная необходимость для любого современного языка программирования.
A>Оно уже есть! Welcome to C# Developers!
Это не оно, это что-то совсем другое. Позволю себе процитировать авторитетное мнение Tim Sweeney с которым я абсолютно согласен:
Unfortunately, there isn't a clear successor to C++ lined up. Java and C# had their chance and it became clear that, while they simplify some aspects of development, they don't put us on the wholly new effort/reward curve the industry needs to be on.
В частности все "фичи" C# скорее относятся к runtime-environment, чем к языку. Скорее нужно обобщить и улучшить compile-time возможности языка, попутно выкинув из него все маргинальные элементы и основательно переработав синтаксис.
Здравствуйте, uw, Вы писали:
uw>Здравствуйте, adontz, Вы писали:
A>>Перегрузка это артефакт? Ну-ну.... uw>Неявные преобразования, битовые поля — артефакты.
Про неявные преобразования уже Шахтёр ответил. А битовые поля.... Извини, но современный язык должен позволять взаимодействовать с окружающей средой.
Здравствуйте, uw, Вы писали:
uw>Здравствуйте, adontz, Вы писали:
A>>Перегрузка это артефакт? Ну-ну.... uw>Неявные преобразования, битовые поля — артефакты.
Вот простейший пример.
int array[100];
int *p=...; // указывает на элемент array
size_t index=p-array; // в это строчке -- неявное преобразование
Если отменить неявные преобразования, то их придётся писать явно, как в этом и миллионе подобных случаев. Ни надёжности, ни читабельности это не прибавит, читабельности и лаконичности скорее отнимет. Оно надо?
Здравствуйте, Шахтер, Вы писали:
uw>>Самая главная проблема C++ — это нестройность всей концепции языка. В основе языка несколько фундаментальных правил и тысячи и тысячи исключений из этих правил. Я думаю язык бы серьезно выиграл даже от того, что появилось бы некое более чистое и красивое подмножество.
Ш>НЕ вижу нестройности. То что появилось в С++ -- это не академические упражнения. Сила С++ в том, что он идет от сути вещей, а не от высосанных из пальца концепций.
Здравствуйте, Зверёк Харьковский, Вы писали:
ЗХ>Здравствуйте, Шахтер, Вы писали:
uw>>>Самая главная проблема C++ — это нестройность всей концепции языка. В основе языка несколько фундаментальных правил и тысячи и тысячи исключений из этих правил. Я думаю язык бы серьезно выиграл даже от того, что появилось бы некое более чистое и красивое подмножество.
Ш>>НЕ вижу нестройности. То что появилось в С++ -- это не академические упражнения. Сила С++ в том, что он идет от сути вещей, а не от высосанных из пальца концепций.
ЗХ>На эту тему, имхо, великолепно высказался
Здравствуйте, Шахтер, Вы писали:
uw>>>>Самая главная проблема C++ — это нестройность всей концепции языка. В основе языка несколько фундаментальных правил и тысячи и тысячи исключений из этих правил. Я думаю язык бы серьезно выиграл даже от того, что появилось бы некое более чистое и красивое подмножество.
Ш>>>НЕ вижу нестройности. То что появилось в С++ -- это не академические упражнения. Сила С++ в том, что он идет от сути вещей, а не от высосанных из пальца концепций.
ЗХ>>На эту тему, имхо, великолепно высказался
один наш коллега.
Ш>Ага, точно. Я ему три балла поставил.
Имху, топики такой эпической силы надо гдей-то сохранять. В статьях или факах...
Я, кстати, уже предлагал сделать коммунальный сборник цитат. Это никого не вдохновило. Пришлось ограничиться локальным rsdn-citata.txt
сам слушаю и вам рекомендую: Ундервуд — ФЕДЮНЧИК, ПОСМОТРИ "ТИТАНИК"
Здравствуйте, Зверёк Харьковский, Вы писали:
ЗХ>Здравствуйте, Шахтер, Вы писали:
uw>>>Самая главная проблема C++ — это нестройность всей концепции языка. В основе языка несколько фундаментальных правил и тысячи и тысячи исключений из этих правил. Я думаю язык бы серьезно выиграл даже от того, что появилось бы некое более чистое и красивое подмножество.
Ш>>НЕ вижу нестройности. То что появилось в С++ -- это не академические упражнения. Сила С++ в том, что он идет от сути вещей, а не от высосанных из пальца концепций.
ЗХ>На эту тему, имхо, великолепно высказался
"Кабинетная" и "практическая" мудрости у меня ассоциируются с эволюционным и механистичным в природе. любая, даже самая стройная, придуманая человеком модель, в принципе всегда имеет жесткие соединения, это свойство человеческого ума. А, в процессе эволюции, выживает и вырастает гибкость. При всей кажущейся нестройности и противоречии нашим умственным построениям. Это еще раз доказывает, что познать Истину умом невозможно .
Вот с чем соглашусь — это с ужасающим отсутствием поддержки средства для код-анализа. Задачу "найти все места в проекте, откуда вызывается не-константная функция member для класса class (предполагая, что практически в любом классе имеется пара const — не const версий memeber)" на платформе SUN решить так и не удалось, несмотря на все усилия.
uw>C++ is becoming a freak language that's parading its disfigurements in front of mildly disgusted but curiously fascinated audience.
uw>Цитата вырезана из этой заметки uw>Мнение её автора может не совпадать с моим, но подумать есть о чем...
Чем больше будут ругать С++, тем меньше новичков будет на нём писать, и тем больше новичков будет писать на .NET, Java, и тем больше будет моя ЗП в связи с грядущим голодом С++ программистов.
Здравствуйте, Шахтер, Вы писали:
Ш>А насчет трудностей парсинга -- чушь. В C++ не парсить трудно, а делать следующую фазу компиляции. Правила перегрузки, вывода аргументов шаблонов, рекурсивная инстантинация, неявные преобразования и.т.д.
Это тоже чушь. Трудно обрабатывать огромные объемы (причем как при парсинге, так и при семантическоой стадии). А те вызваны отсуствием модульности и особенностями препроцессора (в остном #include-ом).
... << RSDN@Home 1.1.4 beta 3 rev. 267>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.