|
7 / 6 / 1
Регистрация: 29.10.2021
Сообщений: 14
|
|||||||||||||||||||||||||||||||
Что бы вы изменили в дизайне c++?29.10.2021, 17:52. Показов 4190. Ответов 66
Тема ни о чём, просто напишите что думаете или мечтаете
Я очень люблю c++, альтернатив ему никаких и близко не вижу. И вот задумался, а что если...? У каждого программиста есть мечта создать свой собственный язык программирования с пасьянсом и барышнями, не так ли? Кажется, язык моей мечты очень близок к с++, но, как мне кажется, плюсики обладают некоторыми минусиками. Если бы вы могли переделать что-либо в дизайне с++ (не оглядываясь на обратную совместимость и прочее такое, просто с корнями перелопатить всё), то что бы вы изменили? А какие новые возможности бы добавили? (сборщик мусора сразу в мусорку) Заранее извиняюсь за весь бред ниже Вот некоторые мои предложения. Что думаете? В чём я обделался? 0: Отказаться от совместимости с Сиии 1: Перемещение и копирование, классы и структуры Вам не кажется, что семантика перемещения, все эти бесконечные конструкторы... дрянь? Вам не кажется странным, что классы и структуры - по факту одно и то же? Все объекты будут по умолчанию перемещаться, а точнее, просто тривиально копироваться с помощью memcpy(). Вместо конструкторов копирования будут вызываться явные методы (например object.clone()) Классы и структуры будут отличаться по своему поведению. Структура не изменит своего настоящего поведения. Структура переместилась в новое место - старая структура никуда не делась и продолжила свою работу. Позже для неё вызвался деструктор. По факту, для каждой копии вызывается деструктор. То есть на один конструктор несколько деструкторов.
После перемещения класс забывается. Всё, его уже не существует и для него ничего не вызывается. Это будет жестко контролироваться компилятором.
2: Приведения типов Все неявные приведения типов будут запрещены. Никаких if ((int)x) Оставить лишь один приведения - оператор as как заменитель static_cast + каст указателей, например
Вместо dynamic_cast была бы функция стандартной библиотеки, типа isInstanceOf<T>(T* object)->bool 3: встроенные типы как объекты Разве не круто написать...?
У меня просто вопрос, возможно ли их вообще сделать в компилируемом языке типа c++? Ведь для их использования нужно каждый раз компилировать всю программу целиком. Тогда о компиляции по отдельным единицам можно забыть и её время вырастет до небес? А возможно ли встраивать информацию о них в уже скомпилированные единицы? Как с этим справляется шарп? 5: Char бесполезен Зачем делать отдельный тип для символов (да ещё городить огород из всяких char16_t char32_t), если можно использовать целые числа? А строки просто обернуть в класс string, который по факту vector<uint8_t> 6: ++ -- Ну...
++ можно ставить только справа от переменной, и означает он += 1. Всё. Не надо нам никаких "Ну он увеличивает, потом возвращает, а этот возвращает, потом увеличивает" Аналогично -- 7: Указатели Я бы вообще убрал чистые указатели. Есть ссылки, есть unique/shared. Для особых случаев можно в стандартной библиотеке добавить раздел для отстрелов ног, включить туда функции работы с памятью напрямую (но вместо указателей адреса size_t) Достаточно 8: Я хочу сахара Кортежи не через зад, а с именованными параметрами
Именованные параметры функций (если у функции миллиард необязательных параметров, а тебе нужно установить лишь последний из них) Геттеры и сеттеры. Вместо функции int getX() {... будет свойство int get X() {... Добавлено через 9 минут Я совсем забыл.. 9: Автовывод операторов Перегрузили + - автоматически перегрузился += Перегрулили == - автоматически перегрузился != Перегрузили < и == - автоматически перегрузился <= Почему нет? Добавлено через 1 минуту PS Ну а шаблоны - это вообще длиннющий разговор, достойный отдельной темы
0
|
|||||||||||||||||||||||||||||||
| 29.10.2021, 17:52 | |
|
Ответы с готовыми решениями:
66
Что бы вы изменили? Что бы вы изменили в конфигурации этого ПК! Что нужно поменять в дизайне сайта |
|
Заблокирован
|
||
| 30.10.2021, 17:17 | ||
|
Я когда вспоминаю описание процедурных типов, у меня начинает голова болеть. ![]() З.Ы. По долгу службы мне приходится писать софт и на Си, и на Паскале. Вот я и сравниваю.
0
|
||
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
||
| 30.10.2021, 17:20 | ||
|
https://www.youtube.com/watch?v=JoVQTPbD6UY Если уж говорить серьезно, то текст шутки просто не выдерживает фактологической проверки. Если рассмотреть сведения, которые представлены в статье, то легко можно обнаружить фактические противоречия, которые первым делом указывают на то, что статья - фейк. https://www.youtube.com/watch?v=EY6q5dv_B-o
0
|
||
|
Заблокирован
|
|
| 30.10.2021, 17:25 | |
|
0
|
|
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
|||
| 30.10.2021, 17:26 | |||
|
Например, в статье утверждается, что заявление было сделано на конференции "UnixWorld Software Development Forum". Давайте поищем, что это за конференция такая? Очень скоро мы обнаружим, что все ссылки с упоминанием этой конференции ведут только на эту шуточную статью. Неужели, если бы она правда существовала, это было бы так?
0
|
|||
|
Заблокирован
|
|||
| 30.10.2021, 17:34 | |||
|
Пусть статья - фейк, но в ней есть правильный акцент на то, что язык Си сделан сложным намеренно. Добавлено через 3 минуты
0
|
|||
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
||
| 30.10.2021, 17:41 | ||
|
По сравнению с тем, что было до Си - это было гораздо проще. Люди мыслят сообразно времени, в котором живут. Вот здесь современный человек пытается управлять машиной 20-х годов, можно посмотреть за его впечатлениями: https://youtu.be/Lr_aZ20W4k4?t=1031 Намеренно сделали управление таким сложным? Там ведь и ошибка в управлении может привести к травме или выходу из строя машины. Просто посмотри видео https://www.youtube.com/watch?v=JoVQTPbD6UY Они с первых секунд говорят, что стремились сделать использование компьютера проще. И ведь учитывать стоит не только восприятие человеком, но и возможности реализации.
0
|
||
|
Заблокирован
|
|||
| 30.10.2021, 18:02 | |||
|
Добавлено через 14 минут Я думаю, что из-за искусственного усложнения и возникают пачками вот такие вопросы на форумах: Не могу передать объект класса в функцию
0
|
|||
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
||||
| 30.10.2021, 18:11 | ||||
|
Например, разумеется Си был намеренно сделан близким к типичным машинным инструкциям, но только чтобы упростить переход программистов на ассемблере на него. Т.е. да, изначально большая высокоуровневость упростила бы язык абстрактно, но не для тех, на кого он был ориентирован - программистов операционной системы. Добавлено через 3 минуты
0
|
||||
|
Заблокирован
|
||
| 30.10.2021, 18:11 | ||
|
И я пытаюсь кого-то в чём-то переубедить. Я чисто субъективно пытаюсь понять, ЗАЧЕМ синтасис хорошего языка программирования сделали таким кривым и непонятным. И ВСЁ. Только это.
0
|
||
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
|
| 30.10.2021, 18:13 | |
|
0
|
|
|
Заблокирован
|
||
| 30.10.2021, 18:14 | ||
|
0
|
||
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
||
| 30.10.2021, 18:15 | ||
|
Нужно просто разобраться что есть такое было PDP-11 и все встанет на свои места. Не нужно оценивать Си с колокольни современных систем, это будет большой ошибкой.
Добавлено через 56 секунд
0
|
||
|
Заблокирован
|
|
| 30.10.2021, 18:17 | |
|
0
|
|
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
||
| 30.10.2021, 18:20 | ||
|
Почему? Да потому что разные архитектуры по-разному к этому относятся. И чтобы нам сделать общее для всех решение - нужно его эмулировать программно. И что мы в итоге получаем? Усложнение кода, который нам сделал компилятор, его более медленную работу. Для каких-то задач это может быть приемлемым компромиссом, но только не для задачи написания операционной системы.
0
|
||
| 30.10.2021, 18:21 | |
|
0
|
|
|
Заблокирован
|
|||||||
| 30.10.2021, 18:31 | |||||||
|
Имхо, это, как раз, нормальное поведение программы. Если рукожопый программист не знает, как хранятся и обрабатываются процессором данные, то он сам дурак. Да и причём тут семантика, которую мы тут обсуждаем? Добавлено через 5 минут Вот это UB или не UB?
0
|
|||||||
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
|
| 30.10.2021, 18:32 | |
|
0
|
|
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
||
| 30.10.2021, 18:34 | ||
|
Его не было раньше, а сейчас это вообще абсолютно предсказуемая ошибка компиляции.
0
|
||
|
Заблокирован
|
||
| 30.10.2021, 18:35 | ||
|
0
|
||
| 30.10.2021, 18:35 | |
|
Как найти то что можно улучшить в дизайне, юзабилити сайта? Негодяи изменили заставку =) Стрелки изменили назначение В БД access изменили тип данных Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . .
Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
|
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг.
Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует.
В процессе разработки. . .
|
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
|
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации:
1. Вернуть возможность использования знаков | 1 l I;. . .
|
|
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С.
Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
|
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию?
Фраза «Любая достаточно развитая технология неотличима от магии». . .
|
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль?
Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
|
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология.
«Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
|