Скорый конец синтаксических консрукций C++
От: Mr.Delphist  
Дата: 25.09.12 19:27
Оценка: 1 (1) :))) :))) :))) :)
Внезапно тут подумалось, что вот адреса IP v4 кончились, и не слишком далёк тот час, когда синтаксис C++ тоже исчерпает пути расширения. Выхода два:
1) Превратиться в Perl++, наращивая цепочки скобочек и закорючек, которые ранее не имели прикладного смысла, но распарсить которые будут в состоянии лишь единицы из нас, не считая regexp-роботов
2) Добавить новый тип файлов расширения, по аналогу перехода ".c" -> ".cpp". Например, ".c1x" или ".cpp1x"

Что скажете?
Re: Скорый конец синтаксических консрукций C++
От: NeoCode  
Дата: 25.09.12 19:35
Оценка: 1 (1) +2
Здравствуйте, Mr.Delphist, Вы писали:

MD>Внезапно тут подумалось, что вот адреса IP v4 кончились, и не слишком далёк тот час, когда синтаксис C++ тоже исчерпает пути расширения. Выхода два:

MD>1) Превратиться в Perl++, наращивая цепочки скобочек и закорючек, которые ранее не имели прикладного смысла, но распарсить которые будут в состоянии лишь единицы из нас, не считая regexp-роботов
MD>2) Добавить новый тип файлов расширения, по аналогу перехода ".c" -> ".cpp". Например, ".c1x" или ".cpp1x"

MD>Что скажете?

Добавить новый тип файлов. Причем это нужно было сделать уже давно, а не мучить С++ кривым синтаксисом только ради того чтобы не сломать чего-нибудь старое.
Re: Скорый конец синтаксических консрукций C++
От: Abyx Россия  
Дата: 25.09.12 19:43
Оценка:
Здравствуйте, Mr.Delphist, Вы писали:

MD>Внезапно тут подумалось, что вот адреса IP v4 кончились, и не слишком далёк тот час, когда синтаксис C++ тоже исчерпает пути расширения. Выхода два:

MD>1) Превратиться в Perl++, наращивая цепочки скобочек и закорючек, которые ранее не имели прикладного смысла, но распарсить которые будут в состоянии лишь единицы из нас, не считая regexp-роботов
MD>2) Добавить новый тип файлов расширения, по аналогу перехода ".c" -> ".cpp". Например, ".c1x" или ".cpp1x"

MD>Что скажете?


что следующее значительное изменение языка будет примерно в 2022 году. (в 2017 — незначительные изменения).
это нескоро.

по сабжу — можно использовать #pragma new_syntax
In Zen We Trust
Re[2]: Скорый конец синтаксических консрукций C++
От: Mr.Delphist  
Дата: 26.09.12 09:23
Оценка:
Здравствуйте, Abyx, Вы писали:

A>по сабжу — можно использовать #pragma new_syntax


А Вы точно уверены, что какой-нибудь хитро-выдуманный компилер уже не ввёл такую прагму лет эдак ...дцать назад, для нужд автоматизации атомных войск за полярным кругом? Насколько знаю, стандартизации прагм так и нет.
Re: Скорый конец синтаксических консрукций C++
От: enji  
Дата: 02.10.12 18:54
Оценка:
Здравствуйте, Mr.Delphist, Вы писали:

MD>2) Добавить новый тип файлов расширения, по аналогу перехода ".c" -> ".cpp". Например, ".c1x" или ".cpp1x"


Тоже об этом думал. Но как быть например с инклюдами? Они то в старом синтаксисе остаются... Как-то по особому их обрабатывать?
Re[2]: Скорый конец синтаксических консрукций C++
От: Mr.Delphist  
Дата: 03.10.12 09:01
Оценка:
Здравствуйте, enji, Вы писали:

E>Здравствуйте, Mr.Delphist, Вы писали:


MD>>2) Добавить новый тип файлов расширения, по аналогу перехода ".c" -> ".cpp". Например, ".c1x" или ".cpp1x"


E>Тоже об этом думал. Но как быть например с инклюдами? Они то в старом синтаксисе остаются... Как-то по особому их обрабатывать?


Дык у нас же есть уже ".h" и ".hpp" — почему бы не добавить ещё что? тот же ".h1x", например.
Re[2]: Скорый конец синтаксических консрукций C++
От: kreon  
Дата: 03.10.12 09:09
Оценка:
Здравствуйте, Abyx, Вы писали:

A>что следующее значительное изменение языка будет примерно в 2022 году. (в 2017 — незначительные изменения).


Последнее изменение затянули лет так на 5. Так что ждать придется долго
Re[3]: Скорый конец синтаксических консрукций C++
От: enji  
Дата: 07.10.12 04:52
Оценка:
Здравствуйте, Mr.Delphist, Вы писали:

MD>>>2) Добавить новый тип файлов расширения, по аналогу перехода ".c" -> ".cpp". Например, ".c1x" или ".cpp1x"


E>>Тоже об этом думал. Но как быть например с инклюдами? Они то в старом синтаксисе остаются... Как-то по особому их обрабатывать?


MD>Дык у нас же есть уже ".h" и ".hpp" — почему бы не добавить ещё что? тот же ".h1x", например.


Ну придется ведь включать старые .h в наши новые .c1xx...
Re[2]: Скорый конец синтаксических консрукций C++
От: NeoCode  
Дата: 08.10.12 11:57
Оценка:
Здравствуйте, enji, Вы писали:

E>Тоже об этом думал. Но как быть например с инклюдами? Они то в старом синтаксисе остаются... Как-то по особому их обрабатывать?


Основная проблема с такими инклудами, которые компилируются по-разному в зависимости от некоторых #define, которые определены выше. Причем препроцессор может изменять код на уровне лексем, то есть еще до синтаксического дерева.
Наверное можно компилировать старые h-файлы в какой-тоспециальный формат типа pch и подключать их как модули в нормальных модульных языках.
Re: Скорый конец синтаксических консрукций C++
От: Трололоша  
Дата: 18.10.12 01:55
Оценка:
Здравствуйте, Mr.Delphist, Вы писали:

MD>2) Добавить новый тип файлов расширения, по аналогу перехода ".c" -> ".cpp". Например, ".c1x" или ".cpp1x"

Нахрена?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Да, йа зелёный тролль!
Re[2]: Скорый конец синтаксических консрукций C++
От: Mr.Delphist  
Дата: 18.10.12 09:31
Оценка: :)
Здравствуйте, Трололоша, Вы писали:

Т>Здравствуйте, Mr.Delphist, Вы писали:


MD>>2) Добавить новый тип файлов расширения, по аналогу перехода ".c" -> ".cpp". Например, ".c1x" или ".cpp1x"

Т>Нахрена?

Чтобы без особого риска добавлять новые ключевые слова в язык. Как например яэти всякие await в новой версии C#
Re[3]: Скорый конец синтаксических консрукций C++
От: Sinclair Россия https://github.com/evilguest/
Дата: 18.10.12 12:31
Оценка: +1 -2
Здравствуйте, Mr.Delphist, Вы писали:

MD>Чтобы без особого риска добавлять новые ключевые слова в язык. Как например яэти всякие await в новой версии C#

Я так полагаю, что вводить различение версий языка на основе расширений файлов как-то слишком смело.
С учётом наличия адской магии препроцессора, которую из песни не выкинешь, совершенно непонятно, что будет делать компилятор при скармливании ему .c1x, заинклудившего .cpp. Трактовать код в .cpp как старый, или как новый?

Так что, если уж хочется адского, то надо вводить прагмы.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re: Скорый конец синтаксических консрукций C++
От: Kernan Ниоткуда https://rsdn.ru/forum/flame.politics/
Дата: 18.10.12 13:56
Оценка: +1 :))
Здравствуйте, Mr.Delphist, Вы писали:

MD>Что скажете?

СИНТАКСИЧЕСКИЙ ОВЕРХЕД!
Sic luceat lux!
Re[3]: Скорый конец синтаксических консрукций C++
От: Трололоша  
Дата: 18.10.12 14:22
Оценка:
Здравствуйте, Mr.Delphist, Вы писали:

MD>Чтобы без особого риска добавлять новые ключевые слова в язык. Как например яэти всякие await в новой версии C#

Зачем для этого менять расширение?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Да, йа зелёный тролль!
Re[4]: Скорый конец синтаксических консрукций C++
От: Mr.Delphist  
Дата: 19.10.12 09:07
Оценка:
Здравствуйте, Трололоша, Вы писали:

Т>Здравствуйте, Mr.Delphist, Вы писали:


MD>>Чтобы без особого риска добавлять новые ключевые слова в язык. Как например яэти всякие await в новой версии C#

Т>Зачем для этого менять расширение?

Для гарантий обратной совместимости. Как всякие эти двойные подчеркивания в именах идентификаторов — чтобы хоть как-то быть уверенным, что твой супер-макрос в мега-шаблоне не встретится с коллизией имён.
Re[3]: Скорый конец синтаксических консрукций C++
От: vdimas Россия  
Дата: 21.10.12 17:28
Оценка:
Здравствуйте, Mr.Delphist, Вы писали:


MD>Чтобы без особого риска добавлять новые ключевые слова в язык. Как например яэти всякие await в новой версии C#


Ценность автоматического преобразования "линейного" псевдокода в событийный реальный резко снижается в отсутствии GC. Поэтому, в нейтивном C++ этого не будет. А в расширениях MS чего уже только нет...
Re[4]: Скорый конец синтаксических консрукций C++
От: Mr.Delphist  
Дата: 22.10.12 08:57
Оценка:
Здравствуйте, vdimas, Вы писали:

V>Здравствуйте, Mr.Delphist, Вы писали:



MD>>Чтобы без особого риска добавлять новые ключевые слова в язык. Как например яэти всякие await в новой версии C#


V>Ценность автоматического преобразования "линейного" псевдокода в событийный реальный резко снижается в отсутствии GC. Поэтому, в нейтивном C++ этого не будет. А в расширениях MS чего уже только нет...


Да тут await просто как пример: вот не было его раньше, а затем бац и в новом релизе языка добавили.

Аналогично сейчас C++ комитет начинает ритуальные танцы вокруг способов описать новые сущности и идиомы. Ну ладно, с rvalue повезло. Но это не значит, что подобные лазейки валяются в избытке — наоборот, я с давних пор утвердился во мнении, что одним из главных минусов C++ можно считать малое количество запрещенных инструкций, т.е. как ни напиши, это всё равно будет что-то обозначать с вероятностью 99%. Т.е. потенциальных "карманов" для отстраивания новых синтаксических веток в грамматике языка авторы не оставили себе практически с самого начала...
Re[5]: Скорый конец синтаксических консрукций C++
От: vdimas Россия  
Дата: 22.10.12 14:36
Оценка:
Здравствуйте, Mr.Delphist, Вы писали:

V>>Ценность автоматического преобразования "линейного" псевдокода в событийный реальный резко снижается в отсутствии GC. Поэтому, в нейтивном C++ этого не будет. А в расширениях MS чего уже только нет...


MD>Да тут await просто как пример: вот не было его раньше, а затем бац и в новом релизе языка добавили.


Я же говорю, GC очень развязывает руки в плане трансформации кода. А этот await, так же как yield return — это операторы трансформации кода.

MD>Аналогично сейчас C++ комитет начинает ритуальные танцы вокруг способов описать новые сущности и идиомы. Ну ладно, с rvalue повезло. Но это не значит, что подобные лазейки валяются в избытке — наоборот, я с давних пор утвердился во мнении, что одним из главных минусов C++ можно считать малое количество запрещенных инструкций, т.е. как ни напиши, это всё равно будет что-то обозначать с вероятностью 99%. Т.е. потенциальных "карманов" для отстраивания новых синтаксических веток в грамматике языка авторы не оставили себе практически с самого начала...


Да пофиг.
См. static_assert. Это вполне мог бы быть и пользовательский макрос и зашитая в компилятор метка.
Re[2]: Скорый конец синтаксических консрукций C++
От: TimurСПБ Россия  
Дата: 22.10.12 17:14
Оценка:
MD>>Что скажете?
NC>Добавить новый тип файлов. Причем это нужно было сделать уже давно, а не мучить С++ кривым синтаксисом только ради того чтобы не сломать чего-нибудь старое.
А линковаться как?
Re[3]: Скорый конец синтаксических консрукций C++
От: kov_serg Россия  
Дата: 04.12.12 00:36
Оценка:
Здравствуйте, Mr.Delphist, Вы писали:

MD>Здравствуйте, Трололоша, Вы писали:


Т>>Здравствуйте, Mr.Delphist, Вы писали:


MD>>>2) Добавить новый тип файлов расширения, по аналогу перехода ".c" -> ".cpp". Например, ".c1x" или ".cpp1x"

Т>>Нахрена?

MD>Чтобы без особого риска добавлять новые ключевые слова в язык. Как например яэти всякие await в новой версии C#


Я бы наоборот ввёл бы ограничения на используемые фичи

strict(no bost)

или

strict(c only)

strict(NO AWAIT, only C99)

Добавление всех этих чудных фич в C++ его убивает.
Во первых они не решают конкретных задач. Очень много конструкций решают не практические задачи а проблемы которые были созданы искусственно.
Во вторых конструкции всё усложняются. Всё труднее обучать новых людей. А как только вымрут динозавры и язык умрёт. Останется C и Fortran
Скорость компиляции очень низкая. Даже precompiled headers не спасают.
Очень сложно и дорого сделать компилятор C++ для новой платформы.
Очень сложно добавлять новые фичи, не мешая старым.
Очень низкая выразительность языка. Что бы что-то быстро сделать нужны костыли типа boost.
Дурацкая типизация данных. Зачем-то выравнивание указателей втянули в язык. Совместили блох с кометами.
Очень сложный синтаксис для сред разработки.
Огромный зоопарк стандартных библиотек с разными видами не совместимостей.
Постоянное нытьё что макросы это гавно. Что мешает сделать нормальные макросы как в техе? Что бы они не мешали а помогали повысить выразительность? И пишите на них dsl-и
...
Можно долго перечислять.
Посмотрите на форум C++ во что он превратился ни одной интересной мысли. Один бред и обсуждение новых стандартов.
Ни один больной маньяк не будет реализовывать свою идею на C++. Дорого и бесперспективно.
Может потом если надо будет что-то оптимизировать то да и то предпочтет использовать оптимизированные библиотеки на C или их порты.
Да и на C++ программу в ПЛИС не запихнуть.

Вобщем считю C++(n+1) без перспективными языками. Зачем тратить так много усилий и времени
что бы реализовать то что можно сделать на другом языке в 10раз быстрее короче, выразительнее и эффективнее.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.