Странно как-то все написано, или у меня деформация и я читаю не правильно
Остались у меня вопросы с понимаем текста
Взаимосвязаность
Системное мышление требует изменения образа мышления: от линейного к круговому. Фундаментальный принцип этого сдвига заключается в том, что всё взаимосвязано. Мы говорим о взаимосвязанности не в духовном, а в биологическом смысле.
«Система — это набор взаимосвязанных компонентов, которые работают вместе в определённой среде и выполняют все функции, необходимые для достижения цели системы».
Вот это определение больше напоминает математическое-логическое определение, но у меня не клеится "биологическое" к определению Системы...
Если биологическое, то наверно надо начать с нейромедиаторов, аксонов, дендритов и т.д....
Говоря «всё взаимосвязано» с точки зрения системного мышления, мы определяем фундаментальный принцип жизни. Исходя из этого, мы можем изменить свое видение мира, перейдя от линейного, структурированного «механического мировоззрения» к динамичному, хаотичному,
В каком месте перескок про связанность происходит, не понятно, погодите... не успеваю... хотелось бы сначала понять про фундаментальный принцип жизни...
Что значит взаимосвязано ? это где взаимосвязано ? у меня в голове , в моих заблуждениях ? или они связь существует объективно (эти вроде как наука занимается, яблоко и Ньютон) или в программном коде, там вот, все взаимосвязано (порой так, что лучше не надо). Как то хочется определить онтологический статус (мое воображение - субъективно, объективно или логически необходимо как математика) взаимосвязей в Системном мышлении.
Если я сам определяю связи (между причиной и следствием), то для других они могут быть не очевидны и как следствие не разумны с их точки зрения, а я могу ошибаться если проведу связь там, где ее нет.
Вот хотел бы определиться с этим фундаментальным принципом взаимосвязи, он объективен или все же субъективен ?
Прямой аналог подгрузки скриптов - это директива import в C++
я имел ввиду загрузку по сети файлов (примитивный случай GET запрос -> и функция eval), а этот пример статической компиляции - и он принципиально другой
Касательно архитектуры приложений - то, это только windows приложения, то есть других не бывает что ли? т.е. приложения под arudino и микроконтроллеры, DOS блин, под крипту (смарт контракты), и т.д. уже не самостоятельные приложения ?
если уж докапыватся, то в частности DLL, Threads, OOP - это все частные случаи технологий, и то что их где-то нет, а где-то по другому реализованы (js) вкусовщина
Есть вообще по фундаментальней понятия, которые осознав школьнику, можно больше не копаться в тонкостях, того или иного языка без прямой необходимости
те же dll в js заменяются на подгрузку скриптов по сети и их выполнение, и принципиальной разницы между dll и загрузкой скриптов нет, а вот утверждать что dll прям вот обязательно для js разработчика, ну странно
Pascal - по мне это традиция обучения, но ее не критикуют, а тот кто критикует, ему достается
Я так же мыслю, если задача обучить программированию, то обучать имеет на языках 1 которые доступны - самый доступный js, он есть в браузере (Chrome,IE,Firefox) на любой современной ОС
2 есть современные ide как браузерах бесплатные, так и stand alone и тут выступают море языков
3 аргументы, про то, что вы не умеете готовить Pascal, ну они мимо, задача же обучить программированию, а не Pascal
4 обучение же не сводится к изучению возможностей Pascal, его вариации OOP, этих парадигм программирования много, я бы хотел узнать чему именно вы учите (программу обучения)
4.1 Для меня в сознательном возрасте было открытие ООП как парадигмы, но вот если кто-то просто и на пальцах показал бы так, надо, а так не надо в программировании, я бы многое бы отдал бы - это я о ценности преподавателя, она просто недооцененная
4.2 Уже значительно позже изучая функциональщину (опять самостоятельно) я смотрю на это ООП как ну... случайный виток в эволюции языков
4.3 Изучая теорию компиляторов и разных парадигм, шаблонов, design pattern, dsl, ddd, ... смотрю на очередные языки (и Delphi рулит), нет... не один язык не является совершенным, все эти споры о языках это просто спор не по сути
А вот суть обучения - подготовить человека к будущему, дать необходимый минимум знаний и убедиться что, он знания взял (на практике), а так же научится добывать знания.
То есть в идеале человек должен понимать - как инструмент (язык программирования), - так и способы создания новых инструментов (теория языков программироавния) - даже если не будет заниматься этим (хотя здравствуйте DSL,DDD, ...) - уметь системно и последовательно мыслить - это к вопросу о логике, математике - знать базовые методы решения типичных задач (алгоритмы, бд, ui, ....) - не застревать в ловушке технологического стека - т.е. иметь кругозор
из все выше перечисленного, выбор первого языка играет точно, не первостепенную роль, а вот делать ставку на первый язык - зависит от ученика все же, от его способностей
кому то и Delphi зайдет, а кому то нужно и по проще, например Python, тем более что и там и там есть базовые понятия как if / while / function / array / recursion
А вот типизация на начальных этапах, так же как и компиляция это усложнение, которое не ускоряет понимание базовых понятий, а скорее на оборот
а я чет думал что базовые концепты, это там циклы, переменные и т.д. но не как dll, dll вообще то же прикладная часть специфичная для windows, и тем более activex, которого под nix днем, с огнем не найдешь.
Так... погодь... то, что скинул мне принципиально не подходит, я вот хочу свой парсер/линтер/компилятор/статический анализатор для Delphi 7 - 2010 написать
И вот из того описания, что скинуто, ну ни как это не сделать, пока что я видел картинку, а chm как понимаю этого описания нет
нет формального описания грамматики для построения AST и правил вывода типов в случае Generic/Variant/и т.д. для вычисления типов этого AST
Вот нету у меня этой chm файла, в этом chm файле описываются все 6 случаев ? в нем все грамматические правила описаны ? они описаны строго, однозначно и непротиворечиво ? так что по ним можно построить парсер и компилятор ?
кажется посыл не понял, а он был именно в томчто в нем есть и Статическая типизация (в Compile time) И Динамическая типизация (Run time - Variant и позднее связывание)
И вот определить, что тот или иной код является только со статической типизацией, без чтения исходников - я не знаю
не делает язык "не строгим".
спорное утверждение - о понятиях, и они разные у нас
Ты будешь удивлен, но ты можешь сам сделать такой тип на основе record
Меня вообще это не интересует, меня интересует, как убрать из сторонних исходников Variant и/или убедиться что подобной динамики по типам в run time в коде нет, при том что бы мне это компилятор сказал или linter, а не читать исходники самому
Хорошая статья, вопрос а как на счет пиксельного монитора ?
Странно как-то все написано, или у меня деформация и я читаю не правильно
Остались у меня вопросы с понимаем текста
Вот это определение больше напоминает математическое-логическое определение, но у меня не клеится "биологическое" к определению Системы...
Если биологическое, то наверно надо начать с нейромедиаторов, аксонов, дендритов и т.д....
В каком месте перескок про связанность происходит, не понятно, погодите... не успеваю... хотелось бы сначала понять про фундаментальный принцип жизни...
Что значит взаимосвязано ? это где взаимосвязано ? у меня в голове , в моих заблуждениях ? или они связь существует объективно (эти вроде как наука занимается, яблоко и Ньютон) или в программном коде, там вот, все взаимосвязано (порой так, что лучше не надо). Как то хочется определить онтологический статус (мое воображение - субъективно, объективно или логически необходимо как математика) взаимосвязей в Системном мышлении.
Если я сам определяю связи (между причиной и следствием), то для других они могут быть не очевидны и как следствие не разумны с их точки зрения, а я могу ошибаться если проведу связь там, где ее нет.
Вот хотел бы определиться с этим фундаментальным принципом взаимосвязи, он объективен или все же субъективен ?
Есть несколько статей, которые критикуют эти принципы, без критики SOLID принципов статья будет не полной
https://habr.com/ru/articles/555862/
https://habr.com/ru/companies/skbkontur/articles/260781/
https://temofeev.ru/info/articles/istoriya-vozniknoveniya-cupid-kritika-solid/
https://ru.stackoverflow.com/questions/551346/Когда-НЕ-нужно-использовать-solid
я имел ввиду загрузку по сети файлов (примитивный случай GET запрос -> и функция eval), а этот пример статической компиляции - и он принципиально другой
Касательно архитектуры приложений - то, это только windows приложения, то есть других не бывает что ли? т.е. приложения под arudino и микроконтроллеры, DOS блин, под крипту (смарт контракты), и т.д. уже не самостоятельные приложения ?
если уж докапыватся, то в частности DLL, Threads, OOP - это все частные случаи технологий, и то что их где-то нет, а где-то по другому реализованы (js) вкусовщина
Есть вообще по фундаментальней понятия, которые осознав школьнику, можно больше не копаться в тонкостях, того или иного языка без прямой необходимости
те же dll в js заменяются на подгрузку скриптов по сети и их выполнение, и принципиальной разницы между dll и загрузкой скриптов нет, а вот утверждать что dll прям вот обязательно для js разработчика, ну странно
Я отвечу, позиция понятна и я с ней согласен
Pascal - по мне это традиция обучения, но ее не критикуют, а тот кто критикует, ему достается
Я так же мыслю, если задача обучить программированию, то обучать имеет на языках
1 которые доступны - самый доступный js, он есть в браузере (Chrome,IE,Firefox) на любой современной ОС
2 есть современные ide как браузерах бесплатные, так и stand alone и тут выступают море языков
3 аргументы, про то, что вы не умеете готовить Pascal, ну они мимо, задача же обучить программированию, а не Pascal
4 обучение же не сводится к изучению возможностей Pascal, его вариации OOP, этих парадигм программирования много, я бы хотел узнать чему именно вы учите (программу обучения)
4.1 Для меня в сознательном возрасте было открытие ООП как парадигмы, но вот если кто-то просто и на пальцах показал бы так, надо, а так не надо в программировании, я бы многое бы отдал бы - это я о ценности преподавателя, она просто недооцененная
4.2 Уже значительно позже изучая функциональщину (опять самостоятельно) я смотрю на это ООП как ну... случайный виток в эволюции языков
4.3 Изучая теорию компиляторов и разных парадигм, шаблонов, design pattern, dsl, ddd, ... смотрю на очередные языки (
и Delphi рулит), нет... не один язык не является совершенным, все эти споры о языках это просто спор не по сутиА вот суть обучения - подготовить человека к будущему, дать необходимый минимум знаний и убедиться что, он знания взял (на практике), а так же научится добывать знания.
То есть в идеале человек должен понимать
- как инструмент (язык программирования),
- так и способы создания новых инструментов (теория языков программироавния) - даже если не будет заниматься этим (хотя здравствуйте DSL,DDD, ...)
- уметь системно и последовательно мыслить - это к вопросу о логике, математике
- знать базовые методы решения типичных задач (алгоритмы, бд, ui, ....)
- не застревать в ловушке технологического стека - т.е. иметь кругозор
из все выше перечисленного, выбор первого языка играет точно, не первостепенную роль, а вот делать ставку на первый язык - зависит от ученика все же, от его способностей
кому то и Delphi зайдет, а кому то нужно и по проще, например Python, тем более что и там и там есть базовые понятия как if / while / function / array / recursion
А вот типизация на начальных этапах, так же как и компиляция это усложнение, которое не ускоряет понимание базовых понятий, а скорее на оборот
а я правильно понял, что без знания написания dll front-end разработчик уже не может выполнять свои обязанности ?
а я чет думал что базовые концепты, это там циклы, переменные и т.д. но не как dll, dll вообще то же прикладная часть специфичная для windows, и тем более activex, которого под nix днем, с огнем не найдешь.
да и последнее время ведется спор о ООП
Разве для front-end написание DLL является необходимостью, без которого он не сможет выполнять обязанности ?
Разве для Delhi | Pascal знание React или Vue является необходимостью ?
Так... погодь... то, что скинул мне принципиально не подходит, я вот хочу свой парсер/линтер/компилятор/статический анализатор для Delphi 7 - 2010 написать
И вот из того описания, что скинуто, ну ни как это не сделать, пока что я видел картинку, а chm как понимаю этого описания нет
нет формального описания грамматики для построения AST и правил вывода типов в случае Generic/Variant/и т.д. для вычисления типов этого AST
Как то сильно за всех отвечать, если у тебя не было потребности, то у других, по мимо меня были, вот например
https://en.delphipraxis.net/topic/5676-pc-specs-for-delphi/
https://stackoverflow.com/questions/171827/looking-for-a-complete-delphi-object-pascal-syntax
http://dgrok.excastle.com/
https://groups.google.com/g/comp.lang.pascal.delphi.misc/c/LT_hN86lEh0/m/-fHdf743PSYJ
Вот нету у меня этой chm файла, в этом chm файле описываются все 6 случаев ? в нем все грамматические правила описаны ? они описаны строго, однозначно и непротиворечиво ? так что по ним можно построить парсер и компилятор ?
Ну так вопрос не к тому что ты знаешь, а к тому где о этом официально почитать, что бы иметь первоисточник знаний
т.е. хочешь сказать, что школьников учат писать код без RTL ?
Если есть в языке способ отстрелить себе ногу, то утверждать при этом что это нет - то же странно
Ага, и где эти официальные правила ?
то, что не давали про Variant, тут еще вопрос, на сколько это здраво - аналогия: как дать электроинструмент и не объяснить технику безопасности
В том же Rust есть обсуждение создания спецификации https://users.rust-lang.org/t/where-is-the-rust-language-specification/42047/6 но ее на данный момент нет, тот же косяк что и у Delphi, хотя сами разработчики Rust о этом обсуждают и двигаются в этом направлении https://blog.rust-lang.org/inside-rust/2023/11/15/spec-vision.html
Для JavaScript есть - вот https://tc39.es/ecma262/
Для C++ спецификация называется стандарт C++ на указанный год https://isocpp.org/std/the-standard
Для TypeScript был, но сама MS походу забила, оставив github репу
Для Go тоже есть официальная спека https://go.dev/ref/spec
Так, что наличие спеки для языка это нормально, отсутствие - встречается, только вот отсутствие спеки - это ни разу не достоинство языка
вот с чего в друг?
что в твоем понимании синтаксические ошибки ? а что другого не синтаксические ошибки компилятора ?
кажется посыл не понял,
а он был именно в томчто в нем есть и Статическая типизация (в Compile time) И Динамическая типизация (Run time - Variant и позднее связывание)
И вот определить, что тот или иной код является только со статической типизацией, без чтения исходников - я не знаю
спорное утверждение - о понятиях, и они разные у нас
Меня вообще это не интересует, меня интересует, как убрать из сторонних исходников Variant и/или убедиться что подобной динамики по типам в run time в коде нет, при том что бы мне это компилятор сказал или linter, а не читать исходники самому