Здравствуйте, Кодт, Вы писали:
К>Ну, я считаю синтаксис С++ хорошим... потому что видал плохие синтаксисы.
Так ты не на плохие, ты на хорошие синтаксисы смотри.
К>Уж во всяком случае, не настолько он плох, чтоб всё вдребезги взять и разломать.
Я не говорю про разломать. Я говорю про осознавать его проблемы, в контексте фразы: «Я считаю синтаксис С++ достаточно хорошим и приятным, а если хомячкам что-то не нравится — для вас придуман замечательный язык для программирования кофемолок — Джаба». Если человек не осознаёт проблемы и уродство C++, значит, у него недостаток критического восприятия и здорового скепсиса. Это повод для тревоги со стороны работодателя — вероятно, сотрудник не будет воспринимать и критику своего кода, как он не способен осознать пороки своего любимого языка. Решит: да вы убогие хомячки и вебдевелоперы, куда вам тут понять мои творения на величайшем из языков.
Здравствуйте, Qbit86, Вы писали:
Q>Так ты не на плохие, ты на хорошие синтаксисы смотри.
Смотря что считать хорошим синтаксисом.
Мне вот языки с табуляцией чисто эстетически нравятся. Хоть питон, хоть хаскелл. (Впрочем, и там, и там от табуляции возникают проблемы).
К>>Уж во всяком случае, не настолько он плох, чтоб всё вдребезги взять и разломать.
Q>Я не говорю про разломать. Я говорю про осознавать его проблемы, в контексте фразы: «Я считаю синтаксис С++ достаточно хорошим и приятным, а если хомячкам что-то не нравится — для вас придуман замечательный язык для программирования кофемолок — Джаба». Если человек не осознаёт проблемы и уродство C++, значит, у него недостаток критического восприятия и здорового скепсиса. Это повод для тревоги со стороны работодателя — вероятно, сотрудник не будет воспринимать и критику своего кода, как он не способен осознать пороки своего любимого языка. Решит: да вы убогие хомячки и вебдевелоперы, куда вам тут понять мои творения на величайшем из языков.
А недостаток здорового пофигизма?
Я, как ты понимаешь, прекрасно осознаю проблемы, уродства и пороки. Но С++ — это мои кресты, и нести их буду Я!
Кроме всего прочего, у С++ есть и плюсы, которые не исчерпываются синтаксисом.
Черчилль, кажется, говорил: плох тот, кто в молодости не был революционером, и кто в зрелости не стал консерватором.
Здравствуйте, Кодт, Вы писали:
К>Мне вот языки с табуляцией чисто эстетически нравятся. Хоть питон, хоть хаскелл. (Впрочем, и там, и там от табуляции возникают проблемы).
Хорошие, да. А как насчёт Scala, например? (Пользуясь случаем, напомню, что скоро на Coursera курс Эрички Мейера и Мартина Одерского; всем быть.)
К>Я, как ты понимаешь, прекрасно осознаю проблемы, уродства и пороки. Но С++ — это мои кресты, и нести их буду Я!
Так ведь и у меня тоже по отношению к C++ Стокгольмский синдром.
К>Кроме всего прочего, у С++ есть и плюсы, которые не исчерпываются синтаксисом.
Плюсы C++ к его синтаксису не имеют никакого отношения. Не благодаря, а вопреки.
К>Черчилль, кажется, говорил: плох тот, кто в молодости не был революционером, и кто в зрелости не стал консерватором.
Здравствуйте, Qbit86, Вы писали:
Q>Если человек не осознаёт проблемы и уродство C++, значит, у него недостаток критического восприятия и здорового скепсиса. Это повод для тревоги со стороны работодателя — вероятно, сотрудник не будет воспринимать и критику своего кода, как он не способен осознать пороки своего любимого языка. Решит: да вы убогие хомячки и вебдевелоперы, куда вам тут понять мои творения на величайшем из языков.
Повод для тревоги со стороны работодателя — если у программиста не хватает мозгов, чтобы выучить разницу между операторами . и ->
Причем настолько не хватает, что этот "программист" начинает вопить на форумах про плохой синтаксис. Вот это действительно повод для тревоги.
Здравствуйте, opener, Вы писали:
O>Повод для тревоги со стороны работодателя — если у программиста не хватает мозгов, чтобы выучить разницу между операторами . и -> O>Причем настолько не хватает, что этот "программист" начинает вопить на форумах про плохой синтаксис. Вот это действительно повод для тревоги.
Есть объективный факт (не зависящий от субъекта восприятия): операторы . и -> отличаются. Но есть субъекты, которые этого не понимают. Согласен, это повод отказать соискателю в должности программиста C++.
Другой объективный факт (также не зависящий от субъекта восприятия): синтаксис C++ ущербен. Опять же есть субъекты, которые этого не понимают. И это тоже повод отказать соискателю в должности программиста C++.
Здравствуйте, Qbit86, Вы писали:
Q>синтаксис C++ ущербен. Опять же есть субъекты, которые этого не понимают. И это тоже повод отказать соискателю в должности программиста C++.
а разве кому-то может быть нужен программист, считающий свой основной инструмент ущербным?
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
не понятно че вы тут спорите, если кого-то полностью устраивает с++ то непонятно че он делает в этой теме и подобных, пытаетесь убедить противоположную сторону в обратном?
так это в высшей степени, тупо потому что бесполезно, либо вы троль, либо качаете чсв.
ибо мне например неприятно мое гавно и никто не сможет меня убедить в обратном, используя доводы типа "да твое гавно биохимически намного ближе и роднее тебе чем еда которую ты ешь", "гавно это часть тебя, прими его и возлюби"
мы хотим поправить в с++ некоторые вещи, и если кто-то хочет убедить нас в том что нам не нада этого хотеть, то максимум чего он достигнет это срача и нулевых результатов по факту
Я изъездил эту страну вдоль и поперек, общался с умнейшими людьми и я могу вам ручаться в том, что обработка данных является лишь причудой, мода на которую продержится не более года. (с) Эксперт, авторитет и профессионал из 1957 г.
Здравствуйте, Kingofastellarwar, Вы писали:
K>мы хотим поправить в с++ некоторые вещи, и если кто-то хочет убедить нас в том что нам не нада этого хотеть, то максимум чего он достигнет это срача и нулевых результатов по факту
Да понятно, что и десять умных не убедят одного дурака. Лучше задайте себе вопрос — а кому нужна будет ваша поделка?
Здравствуйте, Abyx, Вы писали:
O>>Да ну? Удивительно. Чего я еще не знаю? A>что именно для Вас удивительно? то что есть С++11 потому что в С++03 была куча проблем с синтаксисом, и что сейчас делают С++14 потому что С++11 тоже не достаточно хорош?
А ты уверен, что С++11 появился только из-за проблем с синтаксисом?
Здравствуйте, opener, Вы писали:
O>Здравствуйте, Kingofastellarwar, Вы писали:
K>>мы хотим поправить в с++ некоторые вещи, и если кто-то хочет убедить нас в том что нам не нада этого хотеть, то максимум чего он достигнет это срача и нулевых результатов по факту
O>Да понятно, что и десять умных не убедят одного дурака. Лучше задайте себе вопрос — а кому нужна будет ваша поделка?
нам, я прям щас готов бросить все и перейти на причесаный с++
Я изъездил эту страну вдоль и поперек, общался с умнейшими людьми и я могу вам ручаться в том, что обработка данных является лишь причудой, мода на которую продержится не более года. (с) Эксперт, авторитет и профессионал из 1957 г.
Здравствуйте, opener, Вы писали:
O>>>Да ну? Удивительно. Чего я еще не знаю? A>>что именно для Вас удивительно? то что есть С++11 потому что в С++03 была куча проблем с синтаксисом, и что сейчас делают С++14 потому что С++11 тоже не достаточно хорош?
O>А ты уверен, что С++11 появился только из-за проблем с синтаксисом?
кроме изменения синтаксиса есть еще процесс добавления библиотек, в основном из буста, но основные изменения происходят именно в синтаксисе.
то же добавление enable_if_t стало возможным только после внедрения template aliases.
Здравствуйте, Qbit86, Вы писали:
Q>Другой объективный факт (также не зависящий от субъекта восприятия): синтаксис C++ ущербен.
А где вы видели нормальный синтаксис? Нормальный, это такой, где, например, присваивание записывается так: "a <- b" или так "a <= b". Присваивание — это перенос значения из одной ячейки памяти в другую ячейку. Причём тут знак '=' или ':=' ? Получается, что все языки, которые явно не выражают эту простую мысль — ущербны. Согласны?
Здравствуйте, B0FEE664, Вы писали:
BFE>Присваивание — это перенос значения из одной ячейки памяти в другую ячейку.
нет. копирование а не перенос. для ячеек памяти.
В С++ кроме copy-assignment есть еще и move-assignment. а еще есть просто инициализация нового объекта.
Здравствуйте, Abyx, Вы писали:
A>кроме изменения синтаксиса есть еще процесс добавления библиотек, в основном из буста, но основные изменения происходят именно в синтаксисе. A>то же добавление enable_if_t стало возможным только после внедрения template aliases.
Синтакс является следствием изменений в семантике.
Например, вывод типа переменной потребовал какую-то новую конструкцию; комитет решил не придумывать новые ключевые слова, а переосмыслил слово auto.
Лямбды — так вообще придумали чёрте-что из спецсимволов.
(Такое впечатление, что лексер — это самая нежная любовь комитетчиков, ради которой можно издеваться над парсером).
Вот много ли нужно изменений в синтаксис, чтоб полиморфные лямбды появились? Да минимум же: auto вместо имени типа в список аргументов.
А семантика от них вздрогнула.
Кстати, по мотивам лямбд — можно и шаблоны функций делать
template<class T, class U, class V> void foo(T t, U u, V v) { ..... }
void foo(auto t, auto u, auto v) { ..... }
template<class T, class U> void foo(T t, U u, T v) { ..... }
template<class T> void foo(T t, auto u, T v) { ..... }
Здравствуйте, Кодт, Вы писали:
A>>кроме изменения синтаксиса есть еще процесс добавления библиотек, в основном из буста, но основные изменения происходят именно в синтаксисе. A>>то же добавление enable_if_t стало возможным только после внедрения template aliases.
К>Синтакс является следствием изменений в семантике. К>Например, вывод типа переменной потребовал какую-то новую конструкцию; комитет решил не придумывать новые ключевые слова, а переосмыслил слово auto. К>Лямбды — так вообще придумали чёрте-что из спецсимволов. К>(Такое впечатление, что лексер — это самая нежная любовь комитетчиков, ради которой можно издеваться над парсером).
это изза обратной совместимости.
по этой же причине в Си используются имена с подчеркиванием с прописной буквы, типа _Noreturn
Здравствуйте, pepsicoca, Вы писали:
P>Вообще глобально для языка программирования надо: P>1. Разнести алгоритмы и типизацию. То есть пишется всегда шаблон, а типизируется этот шаблон в отдельном месте.
Алгоритмы существенно зависят от типов данных, на которых они работают, чаще в связи с требованиями эффективности, но бывают и принципиальные моменты -- скажем radix sort имеет смысл только для целых чисел.
P>2. Отказаться от ключевых слов. Все ключевые слова должны обрабатываться уже после синтаксического анализа. Алгоритмы обработки ключевых слов должны быть доступны для переопределения пользователем, а не как сейчас — жестко прошиты в трансляторе.
Prolog? Там их вообще нет и поэтому пишут на нём три с половиной упоротых. При чём тут C++ и индустрия?
P>3. Ну там по мелочи — функции объявлять без списка аргументов, а фактический список аргументов указывать в вызове.
А компилятору вы предлагаете смотреть все единицы трансляции, чтобы разложить по стеку аргументы? А если нужно собрать библиотеку в объектник -- уже нельзя?
Здравствуйте, Kingofastellarwar, Вы писали:
K>цель — сделать синтаксис С++ более приятным + добавить необходимые фичи без написания компилятора
Программа переводящая с вашего Clean-C++ на C++ технически будет компилятором. По определению. Не вижу причин генерировать C++ код а например не гораздо более чистый C-код или LLVM IR. Генерируемый C сделает совместимость вашего Clean-C++ со всем чем угодно только лучше.