Re[2]: самые серьезные недостатки C и C++, на ваш взгляд?
От: CreatorCray  
Дата: 01.11.10 07:44
Оценка: +1
Здравствуйте, Aleх, Вы писали:

A>1. Ужасный синтаксический оверхед при использовании шаблонов (необходимость писать typename и template для вложенных классов).

typename в С++0х вроде как уже вообще не надо. А нормальные компиляторы вообще давно его не требуют.

A>2. Разделение на h и cpp

Честно говоря вообще никогда не парило. Понимаю зачем это надо и пользуюсь соответственно.

A>3. Необходимость предварительного объявления имен с сигнатурами (классов, функций, шаблонов).

А в чём проблема то?

A>4. Неединообразный синтаксис (typedef, using, определение постфиксных и префиксных операторов, определение чисто виртуальных методов).

немного невнятно только с постфикс/префикс операторами ну и может pure virtual было бы лучше ключевым словом, хотя и так не напрягает. Всё остальное вменяемо
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[5]: самые серьезные недостатки C и C++, на ваш взгляд?
От: Klatu  
Дата: 01.11.10 07:53
Оценка:
Здравствуйте, telek1024, Вы писали:

T>Скорее всего, тут имеется ввиду, что один и тот же код может компилироваться по разному на разных компиляторах (в том числе каждый со своей реализацией рантайма), что приведёт к бинарной несовместимости.


Не может, а обязательно будет.

И на разных версиях одного компилятора тоже. И на разных версиях CRT одного компилятора. И еще бывают всякие веселости, если кто-нибудь заэмбеддит CRT в модуль. Или модули откомпилированы с разными настройками.. для исключений, например.
Так что, такая идея — это шикарный шанс обрести массу совершенно неочевидных граблей.

T>Как следствие, тут возникают разные правила, что нельзя выделять и освобождать память в разных модулях. Нельзя модифицировать STL-контейнеры не своего модуля и пр.


Ну и что же это за модульность, если нужна куча правил, что можно и чего нельзя использовать через границу модулей?
Re[3]: а тебе зачем? (-)
От: WolfHound  
Дата: 01.11.10 08:32
Оценка:
Здравствуйте, Klatu, Вы писали:

K>Размышляю на тему создания своего велосипеда с ядерным реактором и нестираемыми шинами.

Те хочешь сделать свой язык программирования?
Тогда тебе нужно подходить с другой стороны.
1)Сформулировать требования к языку.
2)Проанализировать кучу совершенно разных языков даже тех которые казалось бы и близко не то что тебе надо. Никогда не знаешь где найдешь подсказку.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[4]: самые серьезные недостатки C и C++, на ваш взгляд?
От: Privalov  
Дата: 01.11.10 08:38
Оценка:
Здравствуйте, neFormal, Вы писали:

F>зачем бороться с самым большим недостатком, если можно сбежать на технологии, которые от него избавлены?.


Из этого, imho, следует, что таких технологий не существует.
Re[4]: а тебе зачем? (-)
От: Klatu  
Дата: 01.11.10 09:04
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>Тогда тебе нужно подходить с другой стороны.

WH>1)Сформулировать требования к языку.
WH>2)Проанализировать кучу совершенно разных языков даже тех которые казалось бы и близко не то что тебе надо. Никогда не знаешь где найдешь подсказку.

У меня написан уже целый талмуд с фичами, которые я потырил из других языков или придумал сам. Но это всё потом.

Пока что я хочу пойти по пути минимализма. То есть сделать очень простой язык на основе C, очищенный от его недостатков, и приделать к нему возможность расширения синтаксиса. Т.е. метапрограммирование.

Такой проект уже будет представлять собой некоторую практическую ценность, потому что все еще дофига проектов, где пишут на чистом Си и мигрировать на С++ не собираются (и их во многом можно понять).
Ну а потом при помощи МП можно будет нарастить любой функционал, который потребуется.
Re[5]: а тебе зачем? (-)
От: WolfHound  
Дата: 01.11.10 09:22
Оценка: +3
Здравствуйте, Klatu, Вы писали:

K>У меня написан уже целый талмуд с фичами, которые я потырил из других языков или придумал сам. Но это всё потом.

Если фичей толмуд значит они противоречивы.

Вот тут я не понял:
K>Пока что я хочу пойти по пути минимализма. То есть сделать очень простой язык на основе C, очищенный от его недостатков, и приделать к нему возможность расширения синтаксиса. Т.е. метапрограммирование.
Или ты забиваешь на обратную совместимость с С

K>Такой проект уже будет представлять собой некоторую практическую ценность, потому что все еще дофига проектов, где пишут на чистом Си и мигрировать на С++ не собираются (и их во многом можно понять).

Или язык должен быть обратно совместимым с С.

Ты уж определись.

K>Ну а потом при помощи МП можно будет нарастить любой функционал, который потребуется.

Сделать хорошое МП очень не просто.
Чтобы МП получилось его нужно закладывать в язык с самого начала и все строить с учетом МП и при помощи МП.
Те абсолютно все должно проходить через механику МП. Иначе ничего работать не будет.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[5]: а тебе зачем? (-)
От: любой  
Дата: 01.11.10 09:38
Оценка:
Здравствуйте, Klatu, Вы писали:

...

Сделай так, что если тип параметра функции или переменной не указан — это темплейтный аргумент.
художников никогда не обижал
Re[6]: а тебе зачем? (-)
От: Klatu  
Дата: 01.11.10 09:40
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>Если фичей толмуд значит они противоречивы.


Нет. Просто у меня много идей Со временем решу, какие из них по настоящему ценны.
А пока что — разумно необходимый минимум.

WH>Или ты забиваешь на обратную совместимость с С


Забиваю. По другому недостатки не выправишь.
Но ничто не мешает сделать конвертор из C в мой язык, равно как и бинарный интероп.

WH>Чтобы МП получилось его нужно закладывать в язык с самого начала и все строить с учетом МП и при помощи МП.

WH>Те абсолютно все должно проходить через механику МП. Иначе ничего работать не будет.

Само собой.
Re[6]: а тебе зачем? (-)
От: jazzer Россия Skype: enerjazzer
Дата: 01.11.10 10:25
Оценка:
Здравствуйте, любой, Вы писали:

Л>Здравствуйте, Klatu, Вы писали:


Л>...


Л>Сделай так, что если тип параметра функции или переменной не указан — это темплейтный аргумент.


Здравствуйте, опечатки
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[7]: а тебе зачем? (-)
От: любой  
Дата: 01.11.10 11:15
Оценка: 1 (1)
Здравствуйте, jazzer, Вы писали:

J>Здравствуйте, опечатки


Какие опечатки? Я считаю, что типы переменных вообще у программиста редко потребность должна возникать указывать. В основном, только у входных и выходных данных. А остальные должны выводиться автоматически.
художников никогда не обижал
Re: Давно есть список. C++ FQA
От: Mamut Швеция http://dmitriid.com
Дата: 01.11.10 11:31
Оценка: 3 (1)
Здравствуйте, Klatu, Вы писали:

K>ну или киньте в меня готовым списком, если такой уже есть


Давно есть и рекомендуется к прочтению. C++ Frequently Questioned Answers: http://yosefk.com/c++fqa/


dmitriid.comGitHubLinkedIn
Re[3]: самые серьезные недостатки C и C++, на ваш взгляд?
От: NikeByNike Россия  
Дата: 01.11.10 13:50
Оценка:
Здравствуйте, Klatu, Вы писали:

L_L>>из самых популярных, конечно, это утечки памяти, повреждение памяти, работа с невалидными указателями.


K>Ну это типично для любого языка с ручным управлением памятью. Лечится только ампутацией


С++ допускает и ручное и автоматическое управление памятью, по желанию.

K>Когда я недавно опять писал на С++, после большого перерыва, больше всех проблем меня раздражало немного другое.


Меня больше всего раздражает отсутствие чёткого владельца и внятной единой полноценной стандартной современной библиотеки.
Нужно разобрать угил.
Re[3]: самые серьезные недостатки C и C++, на ваш взгляд?
От: NikeByNike Россия  
Дата: 01.11.10 13:52
Оценка:
Здравствуйте, CreatorCray, Вы писали:

A>>3. Необходимость предварительного объявления имен с сигнатурами (классов, функций, шаблонов).

CC>А в чём проблема то?

То что компилер мог бы и сам это найти.
Нужно разобрать угил.
Re: самые серьезные недостатки C и C++, на ваш взгляд?
От: vladimir.vladimirovich США  
Дата: 01.11.10 13:57
Оценка: -1
Здравствуйте, Klatu, Вы писали:

K>ну или киньте в меня готовым списком, если такой уже есть


http://www.open-std.org/jtc1/sc22/wg21/docs/standards#14882
Re[2]: самые серьезные недостатки C и C++, на ваш взгляд?
От: Klatu  
Дата: 01.11.10 14:59
Оценка:
Здравствуйте, vladimir.vladimirovich, Вы писали:

VV>http://www.open-std.org/jtc1/sc22/wg21/docs/standards#14882


Это как понимать? Вся спецификация языка — один сплошной недостаток?
Re[4]: самые серьезные недостатки C и C++, на ваш взгляд?
От: CreatorCray  
Дата: 01.11.10 15:01
Оценка:
Здравствуйте, NikeByNike, Вы писали:

A>>>3. Необходимость предварительного объявления имен с сигнатурами (классов, функций, шаблонов).

CC>>А в чём проблема то?

NBN>То что компилер мог бы и сам это найти.

Нет уж спасибо.
А если мне надо наружу выставить только 1 класс а остальное спрятать от того, кто мою lib будет использовать
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[5]: самые серьезные недостатки C и C++, на ваш взгляд?
От: NikeByNike Россия  
Дата: 01.11.10 15:11
Оценка:
Здравствуйте, CreatorCray, Вы писали:

A>>>>3. Необходимость предварительного объявления имен с сигнатурами (классов, функций, шаблонов).

CC>>>А в чём проблема то?

NBN>>То что компилер мог бы и сам это найти.

CC>Нет уж спасибо.
CC>А если мне надо наружу выставить только 1 класс а остальное спрятать от того, кто мою lib будет использовать

Это решается документацией
Нужно разобрать угил.
Re[5]: самые серьезные недостатки C и C++, на ваш взгляд?
От: Klatu  
Дата: 01.11.10 15:36
Оценка:
Здравствуйте, CreatorCray, Вы писали:

CC>А если мне надо наружу выставить только 1 класс а остальное спрятать от того, кто мою lib будет использовать


Спрятать? В С++??? Это наверно такая тонкая шутка...
Re[5]: самые серьезные недостатки C и C++, на ваш взгляд?
От: WolfHound  
Дата: 01.11.10 15:44
Оценка:
Здравствуйте, CreatorCray, Вы писали:

CC>А если мне надо наружу выставить только 1 класс а остальное спрятать от того, кто мою lib будет использовать

Ты на C# посмотри да... Никакого предварительного объявления и что выставлять прекрасно контролируется.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[7]: а тебе зачем? (-)
От: WolfHound  
Дата: 01.11.10 15:59
Оценка:
Здравствуйте, Klatu, Вы писали:

K>Нет. Просто у меня много идей Со временем решу, какие из них по настоящему ценны.

Ну так изложи эти идеи.
Пока не ясно даже что за язык ты хочешь получить в итоге.

K>А пока что — разумно необходимый минимум.

Практика показывает что в язык нужно сразу закладывать все что собираешься делать.
Иначе получается куча уродливых нашлепок.
Так что ты уж определись что ты хочешь в язык засунуть.

K>Забиваю. По другому недостатки не выправишь.

Значит это новый язык.
Раз ты упомянул С то это сразу означает:
Отсутствие сборки мусора.
Ручное управление памятью.
Прямой доступ к памяти.

Я тебя правильно понял?

K>Но ничто не мешает сделать конвертор из C в мой язык, равно как и бинарный интероп.

На конвертор сразу забей.
Они всегда получаются весьма погаными.

WH>>Чтобы МП получилось его нужно закладывать в язык с самого начала и все строить с учетом МП и при помощи МП.

WH>>Те абсолютно все должно проходить через механику МП. Иначе ничего работать не будет.
K>Само собой.
Ну так раскажи как твое МП будет работать.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.