|
Труд вопреки насмешкам
|
|
Почему мы все еще программируем на древних языках?05.06.2021, 12:39. Показов 15962. Ответов 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 методы статические, а в других - нет |
|
|
||
| 27.08.2021, 13:46 | ||
|
Насчет массивов. Где-то рулят массивы, где-то списки, но все упирается в скорость. Все пляшут от этого. А скорость обыкновенного массива достаточна, чтобы обходится без списков/кортежей/деревьев и пр. Это опять мои тараканы.
0
|
||
|
14368 / 9469 / 1360
Регистрация: 21.01.2016
Сообщений: 35,733
|
|||
| 27.08.2021, 13:49 | |||
|
0
|
|||
|
Модератор
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,898
|
|||
| 27.08.2021, 16:45 | |||
|
1. Список - способ хранения в памяти однотипных данных (альтернатива массиву). 2. Список - абстрактный тип данных (есть несколько вариантов) 3. Список - конкретная реализация абстрактного типа данных из пункта 2 (то есть, тип данных) 4. Список - экземпляр типа данных из пункта 3 Если речь идёт об алгоритме, то мы говорим о пункте 2. В этом случае обычно у Массива нет никаких преимуществ перед Списком. По сути Массив - это Список с фиксированным количеством элементов. Массив можно держать в стеке. Некоторые допотопные WinAPI использовали структуры с фиксированным массивом в качестве одного из полей. Обе ситуации можно рассматривать как попытку отобрать хлеб у компилятора, а не как потребности какого-нибудь алгоритма. Если речь идёт о скорости, то мы говорим о пункте 3. И реализацию будем выбирать в зависимости от того, какие требования к каким операциям. Иногда лучше Список на основе "списка" (пункт 1), иногда лучше Список на основе "массива" (пункт 1). А иногда лучше реализация на основе комбинации этих подходов (например, как Вектор из Clojure). Использование "сырых" массивов (в значении из пункта 1) практически не даёт выигрыша в производительности (по сравнению со Списком на основе "массива"). Никто не мешает компилятору использовать массивы для оптимизации. Например, самый быстрый способ отсортировать связный список - это перегнать его в массив, воспользоваться быстрой сортировкой, перегнать обратно в список. Но пусть это остаётся "за кадром".
0
|
|||
|
|
||||||
| 28.08.2021, 14:17 | ||||||
![]()
0
|
||||||
|
Костыли любой сложности
201 / 146 / 36
Регистрация: 27.10.2019
Сообщений: 843
|
||||||||||
| 28.08.2021, 15:29 | ||||||||||
|
0
|
||||||||||
|
282 / 485 / 12
Регистрация: 21.06.2019
Сообщений: 3,020
|
||
| 28.08.2021, 15:44 | ||
0
|
||
|
Костыли любой сложности
201 / 146 / 36
Регистрация: 27.10.2019
Сообщений: 843
|
||
| 28.08.2021, 15:50 | ||
|
ты имел ввиду шаблон составления программы?
0
|
||
|
282 / 485 / 12
Регистрация: 21.06.2019
Сообщений: 3,020
|
|
| 28.08.2021, 15:57 | |
|
0
|
|
|
Модератор
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,898
|
||||
| 28.08.2021, 20:37 | ||||
|
0
|
||||
|
|
|||
| 29.08.2021, 14:02 | |||
|
0
|
|||
|
Модератор
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,898
|
|||
| 29.08.2021, 15:22 | |||
|
0
|
|||
|
14368 / 9469 / 1360
Регистрация: 21.01.2016
Сообщений: 35,733
|
|||
| 30.08.2021, 07:26 | |||
|
Добавлено через 1 минуту
0
|
|||
|
|
|||
| 30.08.2021, 13:18 | |||
|
0
|
|||
|
Модератор
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,898
|
||||||||
| 30.08.2021, 13:43 | ||||||||
|
Итого, перед Вами стоит задача - запомнить (сохранить в памяти) некую внешнюю коллекцию с заранее неизвестным количеством элементов. Как Вы её выполните с помощью массивов? Можно каждый раз писать дополнительный код. А можно один раз написать и далее использовать Список (реализация на основе массива). Например, List<T> в C#. То же самое, но ещё в большей степени (из-за зоопарка кодировок), относится к строкам. Вспомните, хотя бы, всю убогость использования sprintf(). Ей нужно передать буффер под возвращаемый результат, но какого размера будет результат - неизвестно. Передавать слишком много - разбазаривание ресурсов, передавать слишком мало - получим ошибку времени исполнения, которую нужно обработать.
0
|
||||||||
|
|
|||||||
| 30.08.2021, 13:56 | |||||||
0
|
|||||||
|
Модератор
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,898
|
|||||||
| 30.08.2021, 14:29 | |||||||
|
Во-первых, не знает. Во-вторых, может ошибиться при подсчёте или вводе размера. В-третьих, результат часто возвращается целиком, а не поэлементно. Переделайте свой пример для ввода строки (например, имени пользователя). Сколько дополнительного кода придётся написать? Проблема, конечно, решаема. Как я писал выше - можно каждый раз писать дополнительный код. А можно вместо массива использовать готовый код (абстракции более высокого уровня):
Нам нужен список членов группы Администратор. Мы вызываем функцию винапи, передавая нулевую ссылку. Она возвращает размер ответа. Мы создаём массив нужного размера и вызываем ту же функцию ещё раз, передавая ссылку на массив, чтобы она вернула результат. Опять лишний код. Потому что используем "сырой" массив.
0
|
|||||||
|
|
||||
| 30.08.2021, 16:22 | ||||
|
0
|
||||
|
14368 / 9469 / 1360
Регистрация: 21.01.2016
Сообщений: 35,733
|
|
| 30.08.2021, 17:18 | |
|
0
|
|
|
Модератор
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,898
|
|||||
| 30.08.2021, 17:42 | |||||
|
Во-вторых, как видно из примера, в данном случае стандартный Си подход (выделить буфер по-больше и надеяться, что его хватит) является более затратный по памяти. Мне один раз понадобилась "строка с буферизацией", когда я писал обработчик (включая парсер) для сообщений, которые не умещаются в переменную типа string из-за ограничений ОС. И даже в такой ситуации я написал модуль, а далее использовал его и не парился, какой там длины сообщения. Что уж говорить о задачах, с которыми сталкиваешься чуть ли не в каждом проекте? Каждый раз писать код для работы с массивами или один раз написать модуль?
0
|
|||||
| 30.08.2021, 17:42 | |
|
Загрузка с SATA-HDD в древних BIOS Установка древних браузеров под вин8
Требуется человек с опытом написания на этих языках, знающий все от и до Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия 30. Фосфорный и азотный замки по "честному" закону лимитирования Либиха
anaschu 16.07.2026
Основные достижения за последние дни
1. Механизм отложенного высвобождения фосфора
Добавлен специальный пул для медленного разложения меланизированных гиф ЕСМ
Реализована разная скорость. . .
|
Запрет пометки на удаление и отмены проведения
Maks 16.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "ПутевойЛист" разработанного в КА2.
Задача: запретить помечать на удаление и отменять проведения путевого листа при условии, если он сдан. . .
|
Как надо было делать правильно - вообще не слушать ИИ, его дело - текст.
Hrethgir 15.07.2026
А вообще надо было делать не так, чтобы не исправлять ошибку https:/ / www. cyberforum. ru/ blogs/ 223907/ 10996. html , правильно было : удалил кнопку, а потом добавил её.
Всё это стресс конечно. Почему?. . .
|
Знаете, от чего появляется стресс?
kumehtar 15.07.2026
Стресс появляется оттого, что вы, зная как поступить правильно, делаете наоборот.
Ларри Уингет
|
|
Нас бьют, а мы крепчаем? Какая чушь!
kumehtar 15.07.2026
Вот это вот бытующее мнение, что человек меняется только под действием проблем, всегда считал вредоносным. Поверь, от проблем у людей появляются не изменения, а нервное расстройство и ПТСР. А. . .
|
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров
В текущей версии модели успешно реализован ключевой механизм. . .
|
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям
Реализованные компоненты:
Механизм закисления почвы через протонную помпу
Конкуренция между типами микориз
pH как триггер сукцессии
C/ P соотношение. . .
|
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
|