|
Труд вопреки насмешкам
|
|
Почему мы все еще программируем на древних языках?05.06.2021, 12:39. Показов 15265. Ответов 166
Метки нет (Все метки)
На каком-то другом форуме я читал, что Microsoft не обновляет свою ОС. Пишут, что новая ОС - это Windows 11, Windows 12 и т. д., а Windows 10 устарела, и все эти "крупные" обновления - это болтовня. А ей еще и десяти лет нет! И в то же самое время в языках программирования картина кардинально другая: активно программируют на Жабе, которой 30 лет, на плюсах, которым 40 лет, на Си, которому 50 лет! И не выйдет же какой-нибудь C++II с кортежно-ориентированным программированием, с интегрированными управляемыми ссылками (а не со сплошными припонами, как C++/CLI), с конструкциями вида
x is string s + "o" + s! Это я фантазирую, но с чем-то действительно НОВЫМ, что влияло бы на программирование СУЩЕСТВЕННО, а не как эти бесконечные C++11/14/17/20/... . Но нет, так и остается высокоуровневым ассемблером. Самый новый на сегодняшний день язык - это Шарп, которому чуть больше 20 лет (говно в стиле Dart и Go не в счет). Ну, а когда-то каждые 10 лет выходили не то что передовые языки, а новые парадигмы! И это не "трава была зеленее", а известный факт. Могу даже предоставить названия этих парадигм. Ну неужели всем настолько тупо лень сделать мир хоть на 0.000001% лучше, улучшить хоть одну его область, сделать хоть что-то НОВОЕ, а не по кругу Шарп-Жаба-Пайсен-плюсы-ПрочееГовно? Неужели я один во всем мире стремлюсь к прекрасному и сею разумное, доброе, (ну, слово "вечное" тут неприменимо)? Или, может, у меня извращенные представления об этом "прекрасном"? И у меня нет приступа острого NIH, я с радостью буду пользоваться НОВЫМ языком, если его разработает кто-то другой. Даже если он будет слегка отличаться от придуманного мной C# .NStar, например, слово Function будет писаться с маленькой буквы или вместо [TKey, TValue] будет <TKey, TValue>. Но нет, всем плевать. Вот я и спрашиваю - это всемирный заговор против программистов или это я один хочу не знать чего? А мне кажется, что ничего сверхъестественного я не прошу. Прошу ответить.
0
|
|
| 05.06.2021, 12:39 | |
|
Ответы с готовыми решениями:
166
Если с CMS все так просто, то почему сайты все еще делают в блокнотах? Почему в 2017 году всё ещё нет компилятора C# в нативный код? Почему в языках C# и Java методы статические, а в других - нет |
|
90 / 109 / 15
Регистрация: 26.01.2014
Сообщений: 710
|
|
| 05.06.2021, 12:57 | |
|
Мне сдается, что в той парадигме программирования, для последовательных мащин фон Неймана и линейном алгоритме языки программирования, даже самые старые, вполне удобоваримы. Какая-то подвижка произошла с Объектно Ориентированным Программированием. Последовательное железо, двоичная логика, однозначность решения. Даже самые свежие языки привязаны к этому.
Где может быть прорыв? Возможно сети. Не обучать на примерах, а попробовать объяснить чего хочешь на каком-то языке программирования сети. Он должен сильно отличаться от нынешних. Возможно идеология квантовых компьютеров. Тут пока все скользко и в тумане. Интересно как Вы видите прогресс импульсной (вычислительной) техники в Мире в будущем. Станет тогда понятным направления развития софта. Всегда Ваш - Etien.
0
|
|
|
14092 / 9309 / 1349
Регистрация: 21.01.2016
Сообщений: 34,963
|
|||
| 06.06.2021, 04:28 | |||
|
Старые языки столь популярны потому, что на них до сих пор можно продуктивно и качественно писать. Единственное требование - наличие головы на плечах и рук не из задницы.
0
|
|||
|
282 / 485 / 12
Регистрация: 21.06.2019
Сообщений: 3,018
|
|
| 06.06.2021, 08:46 | |
|
Во-первых, все массовое айти давно захвачено говнокодерами разных мастей. Потому и происходит то, что происходит - бесконечно изобретаются и переизобретаются фреймворки над фреймворками, каждый следующий - чтобы исправлять косяки предыдущего, при этом функционально не привнося абсолютно ничего нового. Только накручивая абстракции для создания мнимой сложности - чтобы можно было заказчикам рассказывать, что проект нужно в очередной раз переписать не потому что мы наговнокодили и не можем разгрести, а потому что "идем в ногу с айти". Естественно, по здравому размышлению становится очевидно, что все это - ни что иное, как топтание на месте. Один из ярчайших примеров лишних и вредных абстракций - столь любимые всеми говнокодерами ОРМы.
А во-вторых - сама по себе концепция "текстовых" языков программирования безнадежно устарела, так что тут в принципе ничего нового изобрести невозможно. Будущее - за интеллектуальными диалоговыми системами разработки ПО в массовом сегменте и за математическими системами в сегменте научных вычислений. А ЯПы в массовом айти вымрут как вид, тут нет никаких сомнений.
0
|
|
|
Модератор
3132 / 2279 / 469
Регистрация: 26.03.2015
Сообщений: 8,870
|
|||
| 06.06.2021, 12:51 | |||
|
0
|
|||
|
Модератор
3132 / 2279 / 469
Регистрация: 26.03.2015
Сообщений: 8,870
|
|||
| 06.06.2021, 13:03 | |||
|
0
|
|||
|
Труд вопреки насмешкам
|
|||||||||||||||||||||||||||||||||||||||||||
| 06.06.2021, 13:13 [ТС] | |||||||||||||||||||||||||||||||||||||||||||
|
Ну ладно, я в очередной раз повторю, как я себе представляю НОВЫЙ язык. Хотя уже много раз писал это в темах про C# .NStar. Вот: 1. Рекурсия типов:
3. Следующие числовые типы: short int (2 байта со знаком), int (4 байта со знаком), long int (8 байт со знаком), byte (1 байт без знака), unsigned short int (2 байта без знака), unsigned int (4 байта без знака), unsigned long int (8 байт без знака), real (8 байт с плавающей точкой), long real (10 байт с плавающей точкой) (причем этот тип должен вмещать число Грэма!), complex (комплексное, по 8 байт для действительной и мнимой части), long complex (комплексное, по 10 байт для действительной и мнимой части), short char (символ ANSI, 1 байт), char (символ Юникода, 2 байта), long char (символ UTF32, 4 байта). Тип, содержащий 4 байта с плавающей точкой, упразднен. 4. Возможность объявить переменную прямо в выражении:
6. Большинство типов (включая списки, кортежи и классы) являются типами значений, но присутствуют ссылки (как ref в C#) и управляемые ссылки (как ссылочные типы в C#). При этом управляемые ссылки должны сочетаться с другими категориями с легкостью, а не как в C++/CLI. 7. Следующие циклы:
9. Циклические побитовые сдвиги. 10. Тернарные операторы в стиле "если a равно / не равно / больше / меньше / ... b, вернуть a, иначе c". 11. Можно написать () T или (n) T, что равносильно list() T или list(n) T.12. Escape-последовательность "\!" для обратного слэша и "\q" для кавычки. 13. Оператор is, проверяющий преобразование не только всей переменной к какому-либо типу, но и части этой переменной. Пример: s is "Function " + string name, number is 1 << int exp (проверяет, является ли number степенью 2), myString is string x + "o" + x.14. Оператор / выражение switch с лямбда-выражением в заголовке:
17. Возможность наследовать перечисления не только от byte, short int, unsigned short int, int, unsigned int, long int и unsined long int, а от любого незапечатанного и неабстрактного типа, реализующего интерфейс IIntegerNumber (можно самому определять такие типы). 18. Возможность на уровне стандартной библиотеки (а не такой, которую нужно скачивать бог знает где) производить генерацию ключей, шифрование и расшифровку методом McEliece, причем с умножением не за 19. Индексы в списках, кортежах и других коллекциях должны начинаться с 1, а не с 0. 20. Возможность расширять язык настолько, насколько позволяет архитектура компьютера, или создавать любые новые языки, описывая это в виде LALR(1)-грамматики. Опять же, это должно быть функцией стандартной библиотеки. 21. А также все преимущества C#, такие как индексы с конца, диапазоны, определение членов в интерфейсе (и их не нужно переопределять во всех реализующих его классах), new() и прочие. Назовите мне язык, в котором присутствуют как минимум 97% из этих возможностей (а это невероятно мало - под это определение будет попадать язык, где отсутствует целый не самый большой пункт из перечисленных, или серьезно исковерканы 3-5 пунктов) (строго обязателен только пункт 20) - и я прекращу засорять форум жалобами на язык. Это серьезно!
0
|
|||||||||||||||||||||||||||||||||||||||||||
|
14092 / 9309 / 1349
Регистрация: 21.01.2016
Сообщений: 34,963
|
|||||
| 06.06.2021, 13:19 | |||||
|
0
|
|||||
|
Труд вопреки насмешкам
|
|
| 06.06.2021, 13:26 [ТС] | |
|
Usaga, правда, что таких языков, которые я описал как действительно новые, не существует?
0
|
|
|
282 / 485 / 12
Регистрация: 21.06.2019
Сообщений: 3,018
|
|||
| 06.06.2021, 13:29 | |||
|
0
|
|||
|
Труд вопреки насмешкам
|
||
| 06.06.2021, 13:37 [ТС] | ||
|
Добавлю:
0
|
||
|
282 / 485 / 12
Регистрация: 21.06.2019
Сообщений: 3,018
|
|||
| 06.06.2021, 13:37 | |||
По-моему, дело тут вовсе не в языках.
0
|
|||
|
Труд вопреки насмешкам
|
||
| 06.06.2021, 13:52 [ТС] | ||
|
0
|
||
|
282 / 485 / 12
Регистрация: 21.06.2019
Сообщений: 3,018
|
||
| 06.06.2021, 13:57 | ||
|
Вообще, у любого программиста найдется список его личных хотелок, который он бы хотел видеть в идеальном языке - проблема в том, что у всех они разные. Ну а у вашего списка есть еще одна проблема - вы еще ни одним из существующих языков пользоваться не научились, потому ваш список малость бессмысленен.
0
|
||
|
698 / 572 / 75
Регистрация: 20.09.2014
Сообщений: 3,700
|
|
| 06.06.2021, 21:34 | |
|
Etyuhibosecyu, ваши требования какие-то мелковатые. Например, требование заменить массивы на списки и кортежи - не совсем оптимальное. Например, у Пайтона есть и массивы, и списки, и кортежи, и еще словари, а еще множества, а плюсом еще различные итеративные коллекции типа счетчиков, всякие там ordered/unordered-варианты. И у каждого типа свои фишки: что-то удобнее, что-то быстрее...
0
|
|
|
Модератор
3132 / 2279 / 469
Регистрация: 26.03.2015
Сообщений: 8,870
|
|
| 07.06.2021, 02:46 | |
|
Etyuhibosecyu,
Часть Ваших требований неразумны. Например, "уберите массивы, я ими не пользуюсь". Если не нравится, не используйте. В чем проблема? Часть Ваших требований странны. Например, "должно быть в стандартной библиотеке". Сторонние библиотеки по сути ничем не отличаются от стандартных. Некоторые сторонние библиотеки де факто стали стандартом. Более того, лучше узкоспециализированные библиотеки пишут те, кто на этом специализируется. У них получится лучше, чем у Майкрософт. Часть Ваших требований по сути ничего не меняют. Например, от того, что индекс будет начинаться с 1, а не с 0, принципиально ничего не изменится. И прочие изменения синтаксиса, не влияющие на суть. Часть Ваших требований связаны с отсутствием опыта. Например, Вы не понимаете, чем плохо то, что тип может принимать значение null. Остальные Ваши требования вызваны Вашим незнанием: 1. Современных языков (что в них уже есть) 2. Устройства компьютера и компилятора 3. Принципов программирования (теории)
0
|
|
|
Модератор
3132 / 2279 / 469
Регистрация: 26.03.2015
Сообщений: 8,870
|
|||
| 07.06.2021, 03:25 | |||
|
0
|
|||
|
14092 / 9309 / 1349
Регистрация: 21.01.2016
Сообщений: 34,963
|
|||
| 07.06.2021, 07:05 | |||
|
Правильное решение тут не в поиске нового волшебного языка, а в совершенствовании собственных знаний. Толпам людей возможностей C#, C++ и всех остальных языков хватает за глаза для реализации проектов любой сложности. И только вы один нормально ими пользоваться не можете. Повторюсь: проблема не в инструментах, проблема в вас.
0
|
|||
|
фрилансер
6444 / 5637 / 1128
Регистрация: 11.10.2019
Сообщений: 14,993
|
||
| 07.06.2021, 08:19 | ||
|
по списку желалок из поста №7 1 - не совсем понял, что и зачем. Подозреваю, что это велосипед про std::variant 2 - std::optional 3 - #include <cstdint> 4 - такого, к счастью, нету. Нечитабельно 5 - есть и кортежи std::tuple, и списки инициализации, и массивы. Вопрос не понял 6 - ссылку можно сделать на всё (кроме битовых полей и функций), вопрос не понял 7 - цикл for заменяет все остальные. Но при этом есть всё же есть хвостики в виде do-while и while, которым пользоваться необязательно. Зачем зоопарк циклов? 8 - ненужный мусор 9 - тут согласен, не хватает, но нужно очень редко, можно навелосипедить 10 - даже ?: порой ухудшает чтение, зачем ещё длиннее городить? Пользуйся if/if else/else 11 - а тип контейнера как компилятор угадает? Мне, к примеру list не нужен, мне вектор подавай 12 - сырые строки 13 - слишком много вариантов в стандартный оператор-швейцарский нож надо тащить. Можно обойтись функцией или лямбдой 14 - такого нет, но можно заменить std::unordered_map 15 - std::variant . При "смене типа", правда, нужно пробежаться по контейнеру с лямбдой. Но такой может понадобиться раз за проект, наверное 16 - лично от goto отказался лет 20 назад, когда перестал VB6 играться . Выйти из супервложенного цикла - обернуть самый верхний цикл в [&]{тут цикл цикл return цикл цикл;}();17 - не очень понятно, зачем. Но, теоретически, тот же std::map<любой тип,индекс для него>18 - не знаю, о чем речь, ничего не подскажу. А вики говорит, что этот метод используется редко из-за недостатков 19 - с нуля они должны начинаться. Это правильно 20 - шаблоны, классы, лямбды, алиасы типов, 21 - не понял, про что речь. Наверное, речь про итераторы, который, скорее всего нет в шарпе (не знаю, честно )
0
|
||
|
282 / 485 / 12
Регистрация: 21.06.2019
Сообщений: 3,018
|
|||
| 07.06.2021, 09:33 | |||
|
Конечно, когда вебокодинг загнется по указанным мной (а может и каким-то другим) причинам, эти 99% осознаю, что надо было в другом направлении идти. Но это уже их проблемы
0
|
|||
| 07.06.2021, 09:33 | |
|
Помогаю со студенческими работами здесь
20
Загрузка с SATA-HDD в древних BIOS Установка древних браузеров под вин8
Требуется человек с опытом написания на этих языках, знающий все от и до Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|