Re[9]: Кто интересовался, как в 21 веке учить детей программ
От: student__  
Дата: 30.06.23 12:43
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>Главная платформа это веб.

Это для веб-разработчиков.

vsb>Главный современный язык вне веба без легаси это го.

Возьми свой десктоп или смартфон. Сколько там софта на golang?
Это очень сильно нишевой ЯП.

vsb>Второй современный язык вне веба без легаси это раст. ООП там нет.

Еще один модный ЯП.

vsb>Всё ООП в языках из 90-х. Это если ещё не кобол, то близко.

Любой неновый язык можно назвать языком с легаси. А любой язык с легаси — "почти коболом".
Это натягивание совы на глобус, передергивание, перебарщивание, и в любом случае неконструктивно.
Полно традиционных ниш программирования, где все эти гоу и расты — как собаке пятая нога.
ООП работало, конечно, было много копей сломано и лбов расшиблено, но накопился колоссальный опыт того, что полезно, а что — нет.
Re[12]: Кто интересовался, как в 21 веке учить детей програм
От: student__  
Дата: 30.06.23 12:49
Оценка:
Здравствуйте, Serginio1, Вы писали:
S> В Паскале тоже не было ООП. Его заменил Delphi

стоп! Не знаю, как в оригинальном Паскале, а в ТурбоПаскале ООП появилось в версии 5.5, и было это аж в 1989г., четко до Дельфи.
Re[13]: Кто интересовался, как в 21 веке учить детей програм
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 30.06.23 12:56
Оценка:
Здравствуйте, student__, Вы писали:

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

S>> В Паскале тоже не было ООП. Его заменил Delphi

__>стоп! Не знаю, как в оригинальном Паскале, а в ТурбоПаскале ООП появилось в версии 5.5, и было это аж в 1989г., четко до Дельфи.

На ДВК-2 не было. В турбопаскале появился, но не было такого применения как в Делфи в частности в VCL
Главное не возможность, а использование. А вот использование а так же метаклассы ( В VMT с отрицательным смещение хранятся виртуальны "статические" методы класса)
Виртуальные конструкторы
https://www.kansoftware.ru/?tid=5048

Кстати появились интерфейсы для работы с COM.
и солнце б утром не вставало, когда бы не было меня
Отредактировано 30.06.2023 13:17 Serginio1 . Предыдущая версия . Еще …
Отредактировано 30.06.2023 13:15 Serginio1 . Предыдущая версия .
Отредактировано 30.06.2023 13:14 Serginio1 . Предыдущая версия .
Re[8]: Кто интересовался, как в 21 веке учить детей программ
От: m2user  
Дата: 30.06.23 12:58
Оценка:
__>Однобокая трактовка программирования. Программирование уже давно не только занятие инженеров в области вычислительной техники.
__>Может быть, это сложно представить человеку с профильным инженерно-компютерным образованием, но многим людям, которые применяют программирование, вовсе не нужно знать, что есть какие-то там регистры, и как машинерия устроена под условным капотом. И это знание, получи они его, не сделает их код ни на копейку лучше.

С одной стороны так, а с другой как только у нас есть многопоточность, то тут же возникают всякие volatile, interlocked и прочие "memory barriers", а за ними кэши и ядра.
(из последних обсуждений: Memory barrier не могу понять что это)
Re[10]: Кто интересовался, как в 21 веке учить детей программ
От: vsb Казахстан  
Дата: 30.06.23 13:15
Оценка: +1
Здравствуйте, student__, Вы писали:

vsb>>Главная платформа это веб.

__>Это для веб-разработчиков.

Веб уже давно везде, где UI.

vsb>>Главный современный язык вне веба без легаси это го.

__>Возьми свой десктоп или смартфон. Сколько там софта на golang?

На смартфоне софт на JS. За редким исключением.

__>Полно традиционных ниш программирования, где все эти гоу и расты — как собаке пятая нога.


Полно. Но полно также и ниш, где ООП нет.

Я не предлагаю отказываться от ООП. Понятно, что если мне взбредёт в голову писать для iOS на Swift, то я буду вынужден использовать классы (хотя SwiftUI мне показался не ООП-ориентированным, но я его мельком видел). Я говорю про то, что всем ООП изучать может быть и не нужно. Так же, как всем не нужно изучать ORM. Это нишевые технологии. Вот SQL изучить всем полезно.
Re[11]: Кто интересовался, как в 21 веке учить детей программ
От: student__  
Дата: 30.06.23 13:22
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>Веб уже давно везде, где UI.

У меня UI на Qt.

vsb>На смартфоне софт на JS. За редким исключением.

Android: Kotlin, Java. iOS: Swift.

vsb>Полно. Но полно также и ниш, где ООП нет.

это не значит, что ООП — антипаттерн

vsb>Я не предлагаю отказываться от ООП

но твоё "ООП — антипаттерн" звучит именно так
Re[14]: Кто интересовался, как в 21 веке учить детей програм
От: scf  
Дата: 30.06.23 13:38
Оценка: +2
Здравствуйте, Serginio1, Вы писали:

S> На ДВК-2 не было. В турбопаскале появился, но не было такого применения как в Делфи в частности в VCL



Как это не было, а Turbo Vision?

  картинка
Re[14]: Кто интересовался, как в 21 веке учить детей програм
От: rudzuk  
Дата: 30.06.23 13:42
Оценка:
Здравствуйте, Serginio1, Вы писали:

S> __>стоп! Не знаю, как в оригинальном Паскале, а в ТурбоПаскале ООП появилось в версии 5.5, и было это аж в 1989г., четко до Дельфи.


S> На ДВК-2 не было. В турбопаскале появился, но не было такого применения как в Делфи в частности в VCL


Ну да... А TurboVision на которой строились все борландовские IDE?
avalon/3.0.2
Re[15]: Кто интересовался, как в 21 веке учить детей програм
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 30.06.23 14:32
Оценка: -1
Здравствуйте, scf, Вы писали:

S>> На ДВК-2 не было. В турбопаскале появился, но не было такого применения как в Делфи в частности в VCL



scf>Как это не было, а Turbo Vision?


Ну и как тебе Turbo Vision по сравнению с VCL
http://rsdn.org/forum/education/8554467.1
Автор: Serginio1
Дата: 30.06.23


Проблема в том, что для ООП для доса жрал больше памяти. Поэтому просто не было смысла. А вот с Windows 95 уже и ресурсы другие и графика
и солнце б утром не вставало, когда бы не было меня
Отредактировано 30.06.2023 14:41 Serginio1 . Предыдущая версия .
Re[15]: Кто интересовался, как в 21 веке учить детей програм
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 30.06.23 14:34
Оценка: 2 (1)
Здравствуйте, rudzuk, Вы писали:


S>> __>стоп! Не знаю, как в оригинальном Паскале, а в ТурбоПаскале ООП появилось в версии 5.5, и было это аж в 1989г., четко до Дельфи.


S>> На ДВК-2 не было. В турбопаскале появился, но не было такого применения как в Делфи в частности в VCL


R>Ну да... А TurboVision на которой строились все борландовские IDE?

Ну давай сравним с VCL по количеству компонентов?
https://ru.wikipedia.org/wiki/Turbo_Vision

Основным недостатком Turbo Vision можно считать достаточно высокую (для целевой платформы) потребность в оперативной памяти. На типовом для времени выхода библиотеки компьютере с процессором 8086 c 1 Мб ОЗУ под управлением ОС DOS подключение к проекту Turbo Vision часто приводило к необходимости использования оверлейной структуры программы (динамической загрузки кода по частям во время исполнения). Во многом это связано с тем, что в открытой версии, поставлявшейся со средами программирования Borland, библиотеки были написаны с использованием средств ООП, что само по себе приводило к большому расходу оперативной памяти. При этом в самой Borland IDE, по утверждениям исследовавших код хакеров, использовался ассемблерно-оптимизированный вариант, гораздо более экономный по объёму кода и затратам памяти.

и солнце б утром не вставало, когда бы не было меня
Отредактировано 30.06.2023 14:38 Serginio1 . Предыдущая версия .
Re[16]: Кто интересовался, как в 21 веке учить детей програм
От: rudzuk  
Дата: 30.06.23 18:38
Оценка:
Здравствуйте, Serginio1, Вы писали:

S> R>Ну да... А TurboVision на которой строились все борландовские IDE?


S> Ну давай сравним с VCL по количеству компонентов?


Ага, давайте сравним текстовый гуй с графическим...

S> https://ru.wikipedia.org/wiki/Turbo_Vision


S> Основным недостатком Turbo Vision можно считать достаточно высокую (для целевой платформы) потребность в оперативной памяти. На типовом для времени выхода библиотеки компьютере с процессором 8086 c 1 Мб ОЗУ под управлением ОС DOS подключение к проекту Turbo Vision часто приводило к необходимости использования оверлейной структуры программы (динамической загрузки кода по частям во время исполнения). Во многом это связано с тем, что в открытой версии, поставлявшейся со средами программирования Borland, библиотеки были написаны с использованием средств ООП, что само по себе приводило к большому расходу оперативной памяти. При этом в самой Borland IDE, по утверждениям исследовавших код хакеров, использовался ассемблерно-оптимизированный вариант, гораздо более экономный по объёму кода и затратам памяти.


Что ты этим хочешь сказать? Что ООП в TV небыло? Или что? В отличи от исследовавших код хакеров, мы писали с использованием TV, а после и с одним из ее графических вариантов. И работало все без оверлеев. Не помню, использовались ли оверлеи в доснавигаторе, который тоже был написан с использованием TV. Оверлеи, кстати, в те времена использовались вообще достаточно щироко вне зависимости от TV. Например, была такая среда программирования и одноименный язык Clipper, там без оверлеев вообще было сложно что-либо делать т.к. памяти оно жрало, как не в себя, и безо всякого ООП.
avalon/3.0.2
Re[17]: Кто интересовался, как в 21 веке учить детей програм
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 30.06.23 19:01
Оценка:
Здравствуйте, rudzuk, Вы писали:

S>> https://ru.wikipedia.org/wiki/Turbo_Vision


S>> Основным недостатком Turbo Vision можно считать достаточно высокую (для целевой платформы) потребность в оперативной памяти. На типовом для времени выхода библиотеки компьютере с процессором 8086 c 1 Мб ОЗУ под управлением ОС DOS подключение к проекту Turbo Vision часто приводило к необходимости использования оверлейной структуры программы (динамической загрузки кода по частям во время исполнения). Во многом это связано с тем, что в открытой версии, поставлявшейся со средами программирования Borland, библиотеки были написаны с использованием средств ООП, что само по себе приводило к большому расходу оперативной памяти. При этом в самой Borland IDE, по утверждениям исследовавших код хакеров, использовался ассемблерно-оптимизированный вариант, гораздо более экономный по объёму кода и затратам памяти.


R>Что ты этим хочешь сказать? Что ООП в TV небыло? Или что? В отличи от исследовавших код хакеров, мы писали с использованием TV, а после и с одним из ее графических вариантов. И работало все без оверлеев. Не помню, использовались ли оверлеи в доснавигаторе, который тоже был написан с использованием TV. Оверлеи, кстати, в те времена использовались вообще достаточно щироко вне зависимости от TV. Например, была такая среда программирования и одноименный язык Clipper, там без оверлеев вообще было сложно что-либо делать т.к. памяти оно жрало, как не в себя, и безо всякого ООП.


Я хочу сказать, что хоть оно и было, но для 1 Мб ОЗУ все таки ООП было накладно для больших программ.
ООП как раз и расцвело когда можно было создавать сложные программы с использованием бОльших ресурсов.
и солнце б утром не вставало, когда бы не было меня
Re[18]: Кто интересовался, как в 21 веке учить детей програм
От: rudzuk  
Дата: 30.06.23 19:32
Оценка: +1
Здравствуйте, Serginio1, Вы писали:

S> Я хочу сказать, что хоть оно и было, но для 1 Мб ОЗУ все таки ООП было накладно для больших программ.


Это чушь невероятная. В объекте из служебных данных всего одна ссылка на vmt, а vmt это статичная таблица специфичная для каждого класса. У борландов даже в vmt место экономилось при использовании динамических методов вместо виртуальных, ценой более сложного резолвинга. Я к тому, что поиметь проблем памятью из-за использования ООП можно было только в том случае, если проповедовать жабью идеологию все-объект. В паскале, к счастью, эту шизу не словили.

Я помню из-за чего у нас были проблемы с памятью — из-за баз данных и графического гуя, но не из-за ООП.

S> ООП как раз и расцвело когда можно было создавать сложные программы с использованием бОльших ресурсов.


ООП расцвело, когда его стали поддерживать языки. Очень удобная штука, оказалось, если головой об угол не прикладываться.
avalon/3.0.2
Re[18]: Кто интересовался, как в 21 веке учить детей програм
От: Michael7 Россия  
Дата: 01.07.23 08:29
Оценка: +1
Здравствуйте, Serginio1, Вы писали:

S>Я хочу сказать, что хоть оно и было, но для 1 Мб ОЗУ все таки ООП было накладно для больших программ.

S>ООП как раз и расцвело когда можно было создавать сложные программы с использованием бОльших ресурсов.

Дело не в ООП, а в том, что для чего-то сложного 1 Мб ОЗУ (фактически 640 Кб минус резидентные проги и DOS, т.е. 500 Кб с чем-то, а всякие EMS и XMS через одно место требовалось программировать) было очень мало. С ООП или без него, но приличный GUI требовал большого расхода памяти. И оверлеи тогда использовали практически все сколько-то серьезные программы.
Re[2]: Кто интересовался, как в 21 веке учить детей программированию?
От: Michael7 Россия  
Дата: 01.07.23 08:35
Оценка:
Здравствуйте, zx zpectrum, Вы писали:

ZZ>Подход давным давно имеет место быть. Lego Mindstorms NXT с усечённой детско-юношеской версией графического языка программирования LabVIEW появился, емнип, в 2006-м.


Интересно, а есть программисты, которые могут сказать, что они когда-то начинали с Lego или чего-то подобного?
Re[19]: Кто интересовался, как в 21 веке учить детей програм
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 01.07.23 08:51
Оценка:
Здравствуйте, Michael7, Вы писали:

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


S>>Я хочу сказать, что хоть оно и было, но для 1 Мб ОЗУ все таки ООП было накладно для больших программ.

S>>ООП как раз и расцвело когда можно было создавать сложные программы с использованием бОльших ресурсов.

M>Дело не в ООП, а в том, что для чего-то сложного 1 Мб ОЗУ (фактически 640 Кб минус резидентные проги и DOS, т.е. 500 Кб с чем-то, а всякие EMS и XMS через одно место требовалось программировать) было очень мало. С ООП или без него, но приличный GUI требовал большого расхода памяти. И оверлеи тогда использовали практически все сколько-то серьезные программы.

Ну я про то и говорю. ООП это прежде всего про сложную архитектуру и соответственно сложность программ. DOS это ограничивал. Все старались использовать память по минимуму.
Кстати в Delphi тоже были объекты на стеке (типа record но с vmt)
и солнце б утром не вставало, когда бы не было меня
Re[20]: Кто интересовался, как в 21 веке учить детей програм
От: rudzuk  
Дата: 01.07.23 09:30
Оценка:
Здравствуйте, Serginio1, Вы писали:

S> Ну я про то и говорю. ООП это прежде всего про сложную архитектуру и соответственно сложность программ. DOS это ограничивал. Все старались использовать память по минимуму.


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

S> Кстати в Delphi тоже были объекты на стеке (типа record но с vmt)


Что значит были? Они есть и сейчас, только давным-давно объявлены легаси, что, впрочем, не мешает их использовать.
avalon/3.0.2
Re[19]: Кто интересовался, как в 21 веке учить детей програм
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 01.07.23 09:32
Оценка: -1
Здравствуйте, rudzuk, Вы писали:

R>Я помню из-за чего у нас были проблемы с памятью — из-за баз данных и графического гуя, но не из-за ООП.


S>> ООП как раз и расцвело когда можно было создавать сложные программы с использованием бОльших ресурсов.


R>ООП расцвело, когда его стали поддерживать языки. Очень удобная штука, оказалось, если головой об угол не прикладываться.

Проблема ООП это прежде всего память в куче. Кстати в Delphi помню тоже были какие то структуры на стеке с VMT.
А вот менеджер памяти как раз и сжирает огромные количества памяти в отличие от стека.
Я к тому, что каждому овощу свое время. Как только появился Windows 95 выполнять 32-разрядные приложения на основе API Win32 то появились и сложные программы, где уже для упрощения написания кода уже понадобился ООП. Кроме того и среда разработки и отладки резко улучшились.
и солнце б утром не вставало, когда бы не было меня
Re[20]: Кто интересовался, как в 21 веке учить детей програм
От: rudzuk  
Дата: 01.07.23 10:09
Оценка:
Здравствуйте, Serginio1, Вы писали:

S> Проблема ООП это прежде всего память в куче. Кстати в Delphi помню тоже были какие то структуры на стеке с VMT.

S> А вот менеджер памяти как раз и сжирает огромные количества памяти в отличие от стека.

Любой, сколь нибудь сложный, софт, это про динамическую память.
avalon/3.0.2
Re[21]: Кто интересовался, как в 21 веке учить детей програм
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 01.07.23 11:27
Оценка:
Здравствуйте, rudzuk, Вы писали:


S>> Ну я про то и говорю. ООП это прежде всего про сложную архитектуру и соответственно сложность программ. DOS это ограничивал. Все старались использовать память по минимуму.


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

Но как раз их использовать проще когда она развесистая как в VCL. В итоге все упиралось в память.
А основная фишка Delphi это как раз менеджер памяти https://www.rsdn.org/article/Delphi/memmanager.xml

S>> Кстати в Delphi тоже были объекты на стеке (типа record но с vmt)


R>Что значит были? Они есть и сейчас, только давным-давно объявлены легаси, что, впрочем, не мешает их использовать.

Напомни как назывались. А то забыл совсем. Закинул Delphi уже лет 15. Но до сих пор его люблю
и солнце б утром не вставало, когда бы не было меня
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.