Re[8]: Современное ПО
От: ути-пути Россия  
Дата: 11.07.21 18:54
Оценка:
Здравствуйте, sergey2b, Вы писали:

S>оказываеться OWL досих пор развиваеться интузиастами


Прикольно, я на ней что-то даже писал. А еще заметил, sourceforge немного жив
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re[3]: Современное ПО
От: ути-пути Россия  
Дата: 11.07.21 18:57
Оценка: +1
Здравствуйте, kov_serg, Вы писали:

_>Тезисно — мы все умрём.


Это какой-то древний баян.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re[9]: Современное ПО
От: sergey2b ЮАР  
Дата: 11.07.21 19:03
Оценка:
Здравствуйте, ути-пути, Вы писали:

УП>Здравствуйте, sergey2b, Вы писали:


S>>оказываеться OWL досих пор развиваеться интузиастами


УП>Прикольно, я на ней что-то даже писал. А еще заметил, sourceforge немного жив


Я на си совсем немного писал c owl
Зато на tpw много тк он позволял на 386 нормально программироваться доя win
Re[7]: Современное ПО
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 11.07.21 20:39
Оценка:
Здравствуйте, Marty, Вы писали:

ЕМ>>Например, в kernel32.dll, начиная с висты, для многих функций лежат переходники в мелкие api-ms-*.dll.


M>Подозреваю, что это началось, когда начали 64 бита присовывать


Нет, в 64-разрядном 2k3 Server все это есть, но api-ms-*.dll нет.

M>Я так понял, ты вообще всё предлагаешь порезать в мелкую окрошку.


Не то, чтобы совсем мелкую, но тысячи функций в одной DLL — это чересчур. Особенно на фоне того, что многих нужных функций в системных DLL нет вообще, каждый тянет свои.

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


В подавляющем большинстве системных вызовов столько работы, что добавление даже десятка дополнительных команд будет совершенно незаметно. А при иерархии добавится меньше десятка. Ну и я ж подчеркнул, что загрузчик мог бы корректировать переходники в DLL более высокого уровня на прямые адреса в DLL низкого уровня.

M>Перечисление файлов в каталоге, где их очень много, занимает заметное время.


MS это совершенно не парит, в каждую новую версию она добавляет их по нескольку тысяч, большинство из которых в типовой системе не используется. А грамотно организованная структура DLL эффективно использовалась бы большинством приложений.

M>А копирование кучи мелких файлов на флешку вместо одного большого


Это потому, что на флешках большой размер страницы (8-16 кб), и сами они, кроме самых скоростных, гораздо медленнее даже тормозных HDD. На подавляющем большинстве томов NTFS гранулярность 4 кб.

M>>>3) С тех пор, как DLL-ки перестали загружать по их адресам, а случайно назначают адрес в каждом процессе — дополнительная работа при загрузке


ЕМ>>Опять же, это заметно лишь для очень частой загрузки. Ну и загрузить несколько десятков DLL, в каждой из которых по паре десятков функций, будет все равно дешевле, чем загрузить одну kernel32, в которой их три с лишним тысячи.


M>Разделение на кучи мелких DLL предполагает, в числе прочего, что более низкоуровневые API будут торчать из них. Ну, и загрузка нескольких DLL вряд ли дешевле загрузки одной, пусть и с большим числом функций


Если грамотно разделить структуру, то процессу, импортирующему сто функций, загрузится триста или пятьсот, а не три тысячи. Экономия на порядок не нужна?
Re[8]: Современное ПО
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 11.07.21 20:50
Оценка:
Здравствуйте, Sergei I. Gorelkin, Вы писали:

M>>Подозреваю, что это началось, когда начали 64 бита присовывать, всякие windows on windows 64 и пр загогулины.


SIG>Это началось, когда началось внедрение UWP. По крайней мере, на Windows 7 этих мелких dll изначально не было


Были. Они появились в висте.

SIG>И в этих мелких dll (опять же, у меня на Windows 7) нет кода, они сами проксируют вызовы куда-то еще.


Ага.

SIG>Кроме того, "современный софт" (у меня навскидку: Firefox, Thunderbird, Viber, DB Browse for SQLite, CPPCheck) зачем-то таскает все эти api-ms-*.dll с собой, хотя казалось бы, должен использовать системные.


Сейчас, по-моему, вообще все таскают с собой. "Шоб було".

SIG>целью разделения является исключительно огораживание API, чтобы UWP приложения не видели того, чего им видеть не положено. Предполагается, что разные редакции Windows будут иметь разные наборы этих dll, формирующие APISET-ы.


А что, тоже хорошая идея.

SIG>Никакой оптимизации скорости загрузки там не подразумевается.


Скорость вроде и так особо никого не парит. Я только читал о том, что кого-то напрягает, а сам даже на ранних версиях никогда не замечал тормозов.
Re[3]: Современное ПО
От: TheKnight  
Дата: 11.07.21 22:44
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>А что, в том же андроиде из APK извлекаются только реально используемые классы/методы? Подозреваю, что тупо загружается весь контейнер.


Насколько я помню, стандартный подход при разработке Android приложений — это использование ProGuard, который с одной стороны обфусцирует приложение, а с другой вырезает ненужное. Однако, его надо уметь конфигурировать, иначе в рантайме разлетится.
Re[4]: Современное ПО
От: wl. Россия  
Дата: 12.07.21 02:32
Оценка:
Здравствуйте, TheKnight, Вы писали:

TK>Здравствуйте, Евгений Музыченко, Вы писали:


ЕМ>>А что, в том же андроиде из APK извлекаются только реально используемые классы/методы? Подозреваю, что тупо загружается весь контейнер.


TK>Насколько я помню, стандартный подход при разработке Android приложений — это использование ProGuard, который с одной стороны обфусцирует приложение, а с другой вырезает ненужное. Однако, его надо уметь конфигурировать, иначе в рантайме разлетится.


Java там вообще только при первом запуске приложения, во время которого происходит компиляция в native. Встроенные библиотеки тоже в виде нативных эльфов
Re: Современное ПО
От: student__  
Дата: 12.07.21 13:27
Оценка:
Здравствуйте, kov_serg, Вы писали:

_>Простое объяснение почему всё так как есть


_>https://youtu.be/geY5cbImVwc?t=1300


Нет. Добрышевский говорит о том, что нейронов и синапов примерно столько же. В современном ПО гораздо больше логических компонент, чем в древнем. Аналогия совершенно неадекватная.
Re[2]: Современное ПО
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 12.07.21 13:40
Оценка: +1 :)
Здравствуйте, student__, Вы писали:

__>Добрышевский говорит о том, что нейронов и синапов примерно столько же.


На самом деле их там, конечно же, не "столько же". Плотность нейронов там примерно вдвое выше, но сам-то мозг маленький, поэтому и общее количество несопоставимо.

__>В современном ПО гораздо больше логических компонент, чем в древнем.


Ну да. В дневнем софте возраст человека определялся вычитанием даты рождения из текущей даты. В современном для календарных дат применяются абстракции, состоящие из абстракций "день", "месяц" и "год", для обслуживания каждой из них подключается отдельная библиотека, возрасты людей, животных, документов и зданий выделяются в отдельные производные типы, и при каждой операции проверяется, не подвержены ли даты проблеме 2000-го года.
Re[3]: Современное ПО
От: 4058  
Дата: 12.07.21 14:21
Оценка: +1
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Ну да. В дневнем софте возраст человека определялся вычитанием даты рождения из текущей даты. В современном для календарных дат применяются абстракции ...


Напомнило: https://rsdn.org/forum/philosophy/4618210
Автор: Buss
Дата: 15.02.12

По большей части это так (и уже давно), ибо возможности аппаратных ресурсов слишком высоки для подавляющего кол-ва задач. Вот и собираются теперь по 20 макак, и с умным видом калякуют месяцами чего-то неэффективное и ненужное на скриптовых недо-языках и с множеством лишних зависимостей, чего раньше 1-2 человека могли сделать за неделю и при этом "железо потребить" на 2 порядка меньше.
Re[2]: Современное ПО
От: IT Россия linq2db.com
Дата: 12.07.21 15:46
Оценка:
Здравствуйте, imh0, Вы писали:

I>https://tv.rbc.ru/archive/ekskluziv/60e2f2ce2ae59602f173f18d

I>Надо смотреть с 18:24, до этого просто фигня.
I>То есть я к тому, что надо раделять программистов и "эфективных пьющих менеджеров" — Последние аж даже воинстующее, хотят "других" программистов, которые не хоят так делать )

Всё верно. Берём талантливого инженера. Добавляем ему великолепный комуникейшин скил. Немного умения управлять людьми. И выгоняем вот такого манагера нахрен. Он больше нам не нужен.
//rsdn.org/forum/images/bis.gif Если нам не помогут, то мы тоже никого не пощадим.
Re[8]: Современное ПО
От: KRT  
Дата: 12.07.21 15:58
Оценка:
Здравствуйте, Sergei I. Gorelkin, Вы писали:

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


M>>Подозреваю, что это началось, когда начали 64 бита присовывать, всякие windows on windows 64 и пр загогулины.


SIG>Это началось, когда началось внедрение UWP. По крайней мере, на Windows 7 этих мелких dll изначально не было, а появились они примерно в одно время с телеметрией, когда уже вышла Windows 10.


Это началось намного раньше. См. MinWin
Re: Современное ПО
От: Ночной Смотрящий Россия  
Дата: 13.07.21 09:40
Оценка:
Здравствуйте, kov_serg, Вы писали:

_>Простое объяснение почему всё так как есть


Ага, как обычно, простое и неверное. Доказательства по аналогии — они всегда такие.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[2]: Современное ПО
От: Ночной Смотрящий Россия  
Дата: 13.07.21 09:40
Оценка:
Здравствуйте, Kolesiki, Вы писали:

K>Зачем ЗДЕСЬ этот ютюб?! Мы что, каждый должны полезть и тратиьт время на чьё-то растекание мыслью по древу? Напиши сюда тезисно, что именно ты хочешь открыть этому миру. Особенно то НОВОЕ, чего мы точно не знаем.


Широко известный в узких кругах биолог Дробышевский, опираясь на свое хорошее, хотя и несколько нетрадиционное знание процессов эволюции мозга и на свое очень плохое знание современных принципов разработки софта проводит между этими процессами параллели и делает далеко идущие выводы.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[2]: Современное ПО
От: kov_serg Россия  
Дата: 13.07.21 12:34
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Ага, как обычно, простое и неверное. Доказательства по аналогии — они всегда такие.

То есть наличие естественного отбора в софте вы отрицаете. Текущее положение и вектор движения определяется иными факторами.
Методы подобия часто применяются в инженерной практике
Re[7]: Современное ПО
От: Privalov  
Дата: 13.07.21 13:31
Оценка:
Здравствуйте, Marty, Вы писали:

M>Ну, не знаю. Перечисление файлов в каталоге, где их очень много, занимает заметное время.


Я нарывался на тормоза с перечислением файлов, когда в именах файлов встречаются всякие странные символы типа знака %. В этом случае тормоза будут, даже если файлов не очень много. А если имена в порядке, то и 10000 файлов перечисляются быстро.
Re[3]: Современное ПО
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 13.07.21 13:42
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Широко известный в узких кругах биолог Дробышевский, опираясь на свое хорошее, хотя и несколько нетрадиционное знание процессов эволюции мозга и на свое очень плохое знание современных принципов разработки софта проводит между этими процессами параллели и делает далеко идущие выводы.


Совершенно правильные выводы, надо заметить.
Re[2]: Современное ПО
От: reson Россия  
Дата: 13.07.21 14:45
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>Ну и ещё одна большая проблема, если говорить про Java, которую я по крайней мере знаю ...

Это потому, что вы смотрите на старый Enterprise.
Например, современный ява фреймворк Quarkus упрощенно делает:
1. На этапе компиляции анализирует код, исключает неиспользуемые части, вырубает по-умолчанию reflection (включать надо явно), проводит статическую инициализацию, компилирует в нативный код, сохраняет инициализированные объекты в виде образов памяти в исполняемый файл.
2. При запуске грузит код и инициализированные объекты, проводит рунтайм инициализацию.

Таким образом исполняемый файл становится сильно меньше, запускается и работает быстрее, памяти жрет тоже немного.

vsb>Т.е. если взять типичное enterprise-приложение, проследить все возможные пути выполнения и посмотреть, сколько реально байткода задействовано, то скорей всего это будут вообще крохи от общего объёма поставляемого байткода в стандартной библиотеке и подключаемых библиотеках. А если ещё вспомнить про моду микро-сервисов, то там ситуация ещё хуже.


vsb>Но при всём при этом это не является, на самом деле, такой уж большой проблемой. Оно занимает место на диске, да и только. Если класс никто не трогал, то он даже с диска читаться не будет. Если метод никто не вызывает, то JIT на него вызываться не будет. Т.е. есть проблемы и они частично уже решены. Если не вглядываться, то да, беда, 10 метров жаваскрипта грузят текста 300 байт. А если вглядеться, может быть и не такая уж беда.


Именно это и делают в Quarkus Bytecode Recorders, которые исполняют и записывают во время компиляции код, который реально выполнился, а остальное выкидывают.

vsb>Но соглашусь, что было бы неплохо, если бы языки проектировали из расчёта возможности максимальной оптимизации и выбрасывания неиспользуемого кода. Не только на уровне классов и методов, но и на уровне отдельных блоков кода, про которые можно доказать, что они никогда не вызываются в текущей программе.


Уже.

Но писать расширения (библиотеки, которые работают на системном уровне) становится сложнее, так как разработчик должен сам разделить код по времени работы: во время компиляции и рунтайм. Предметный код при этом пишется так же, как будто нет такой внутренней сложности.
Quarkus
Re[2]: Современное ПО
От: goto Россия  
Дата: 13.07.21 16:14
Оценка: +5
Здравствуйте, vsb, Вы писали:

vsb>Несерьёзно. Турбопаскаль занимал несколько мегабайтов и был консольной программкой с примитивным GUI. Intellij Idea занимает несколько сотен мегабайтов и содержит в себе невообразимо больше функционала с невообразимо более сложным интерфейсом.


Это миф, который очень напоминает мифы об СССР в том смысле, что совершенно непонятно, откуда они берутся.

ТурбоПаскаль был IDE практически в современном понимании. Оболочка Турбо во многом, если не в основном, определила само понятие IDE и ее развитие. Ближе к концу 80-х Турбо — это редактор со встроенными компилятором, линковщиком (тут не помню конкретно про Паскаль), отладчиком, контекстным Хелпом с гипертекстом, содержащим всю информацию по IDE, языку, процедурам, туториалы и примеры. Не помню, сколько места занимало, но немного. Для примера, наш первый рабочий писюк имел диск 5Мб. На этом диске был установлен ТурбоПаскаль, QuickC (IDE C от Микрософт), всякие Нортон Коммандеры и еще пара игрушек. Или такое: пришлось несколько дней поработать на писюке без диска — только 5" дискета 1.2М. На нее уместилась ДОС, QuickC, мои файлы — небыстрый рабочий вариант. (QuickC я чуть обрезал).

А с современным ПО в определенном смысле все просто. Критерии успеха этой инженерии не технические, а денежные. Пока все это монструозие позволяет сохранять над собой контроль, управляемость, а заказчик готов этот праздник оплачивать, перемены в технологиях и самих подходах не нужны. Другие финансово эффективные тенденции, технологии пока не просматриваются, следовательно, праздник будет продолжаться в нынешнем виде.

Тут еще интересно поглядеть на железо. Я в нем не спец, но как-то привык думать, что там, в отличие от софтостроения, оптимизациям уделяется больше внимания (больше параметров оптимизации). Понятно, что в области железа тоже можно найти свои фреймворки, свои пласты легаси, есть маркетинговая гонка за числом мегапикселей, ядер, но все же там "индусокодинга" и финтифлюшек значительно меньше. Как сейчас модно говорить, напишите, что думаете про железо в контексте темы ругания софтоделания.
Re[2]: Современное ПО
От: ArtDenis Россия  
Дата: 13.07.21 16:17
Оценка:
Здравствуйте, Kolesiki, Вы писали:

K>Зачем ЗДЕСЬ этот ютюб?! Мы что, каждый должны полезть и тратиьт время на чьё-то растекание мыслью по древу? Напиши сюда тезисно, что именно ты хочешь открыть этому миру. Особенно то НОВОЕ, чего мы точно не знаем.


Там всего несколько минут надо послушать. Сказано кратно и по делу )
http://ufa-darts.ru/ — дартс-лига Уфы
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.