Pull to refresh

Comments 79

Не сильно удачная демонстрация на собственном примере, как надо писать просто, когда описывая "черное", мы расскажем про "жидкое, квадратное, тёплое и лохматое", абсолютно никак от относящееся к делу и дико сбивающее с толку, для того чтобы просто к слову...))) Вот и "не соревнование по синтаксическим трюкам"... ))))

У лингвистики есть несколько направлений, которые имеют непосредственное отношение к программному коду.

Вот, попытался применить вашу теорию к своей лингвистически-программной задаче: «Сколько всего слогов во французском языке?». Беру готовый электронный словарь, даже, со слогоделением. Вроде, дальше, всё просто. Разделяем, слова на слоги и убираем повторы. Затем, сортируем и подсчитываем количество полученных слогов в списке.

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

Думал, ваша статья – поможет решить проблему. Не помогла!

Непонятно, в чем сложность запрограммировать исключения? Их же конечное число и все они где-то описаны.

Непонятно, в чем сложность запрограммировать исключения? Их же конечное число и все они где-то описаны.

Это не совсем так. Во французской грамматике немало чудес. Например, спросите у любого француза либо преподавателя французского, сколько букв во французском алфавите, с учётом диакритических знаков и лигатур, или сколько звуков в их стандартном фонетическом алфавите и вам никто, точно, не ответит. Начнутся пляски вокруг да около. Для примера, можете посмотреть мой диалог с французским ИИ («искусственным илиотом»), на эту тему: https://habr.com/ru/companies/bothub/news/891934/comments/#comment_28055496 .

Та же песня с правилами произношения. В любом учебнике грамматики их, относительно, не много. Однако, в справочнике Т. Ганцкой, «От буквы к звуку» их сотни, с морем исключений, причём, там не все исключения, а только те, которые автору удалось обнаружить в десятках первоисточников.

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

Смысл в слогоделении состоит в том, что есть сильная связь между слогами и их произношением. Это хорошо видно в моих обучающих материалах (см. мои статьи, здесь).

Получается, просто у вас недоработана модель задачи, имея в составе своём зияющие пробелы. Как тут могут помочь советы по написанию программного кода?

Получается, просто у вас недоработана модель задачи, имея в составе своём зияющие пробелы. Как тут могут помочь советы по написанию программного кода?

На самом деле, проблема не в «пробелах», в «недоработанной модели», а просто в слабости предложенной концепции программирования и аналогии, притянутой за уши (советы учительницы литературы для программистов).

Я вам дам более ценный совет по программированию. Но, для его использования нужно хорошее общее образование (разве невежда может писать хороший код, даже, применяя гениальные советы?).

Когда я писал свою обучающую, иностранным языкам, программу «L'école» (ее вы можете найти в моих статьях здесь), то чуть себе мозги не сломал, пытаясь создать непротиворечивый алгоритм взаимодействия шести режимов работы графического интерфейса, с одними и теми же данными, да, еще с разного рода фильтрами по их отбору и группировке.

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

В итоге, «забил болт» на советы и просто стал использовать исключительно здравый смысл. И, удивительно, но помогло! Поэтому, этот метод программирования я называю «методом здравого смысла». Причём, он выручал меня уже не один раз. А из стандартных методов, немного работают идеи ООП. На конкретном уровне, для меня, наиболее эффективными оказались классы C++ / WTL (для задач связанных с графическим интерфейсом пользователя). Для обработки данных – очень хорош Питон (но, там я классы не использую, поскольку, пока, проще без них) и расширения Хром (для работы с защищенными веб-данными).

Так что «включайте мозги» и будет вас счастье :) .

В ваших комментариях есть лексическая связность, но, по-моему, отсутствует связность смысловая.

отсутствует связность смысловая.

Для кого? Для меня или для вас?

Для объективной реальности, данной в ощущениях.

А своих мыслей, нет?

методом здравого смысла

Есть еще интуиция.

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

Любое "с точки зрения здравого смысла" имеет научное обоснование. Но если вы его не знаете или не понимаете - это просто интуиция.

Интуиция в голове - это, наверное, как вайб-кодинг в компьютере.

Ну, бывает еще, что "*опа чует"©. Тоже своего рода интуиция.

Просто "*опа" является как бы ещё одним слоем нейронной сети.

Есть еще интуиция.

Есть, ещё, и обратная связь. Вы получаете, в результате «здравого смысла», нужный вам результат, Значит, ваши действия были правильными? Наука? – «Критерий истины – практика».

Любое "с точки зрения здравого смысла" имеет научное обоснование.

Люди, профессионально занимающиеся наукой, так не говорят. Это уровень студента. В данном случае, понятие «научное обоснование», вообще не имеет смысла. Ну, «научно обосновали» вы свои действия либо ситуацию, а задачу решить не можете. Чтобы ее решить, нужна технология!

Хорошо, возьмём мою ситуацию. Была задача, реализовать алгоритм по непротиворечивому взаимодействию сильно связанных объектов (графических компонентов, программой логики и общей базы данных). Какое вы хотите применить тут «научное обоснование»? Это – как лабиринт, из которого выход всегда есть, но поиск его не тривиален. В этом и были мои сложности – в поиске выхода из лабиринта. В итоге, я его нашел.

Вы можете сказать, ладно, поиск оптимального пути выхода из лабиринта – тоже, задача и существуют алгоритмы по её решению. Но, это для формальных систем. В моём случае, речь идет, скорее, о полуформальной модели взаимодействия ментальных представлений с реальными инструментами. И вы, действительно, полагаете, что здесь нужна именно наука, а не технология?

В данном случае, технология заключалась в нахождении некоего прототипа «матричного» алгоритма, который помог мне решить поставленную задачу. Возможно, таковые уже существуют. Но, вы знаете о них? И я тоже. Даже, в вашей любимой науке, иногда, легче переоткрыть результат заново, чем найти информацию о нём, особенно, если не вполне понятно, а что именно искать.

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

А бывают ещё «Элочки Людоедки», с их односложными высказываниями, вроде: «Х-ха!», «Хамишь, парниша!».

Я сомневаюсь, что они еще и французскому обучали... Да и вообще, я бы с них пример не брал...

Есть, ещё, и обратная связь. Вы получаете, в результате «здравого смысла», нужный вам результат, Значит, ваши действия были правильными? Наука? – «Критерий истины – практика».

Это еще может быть ошибкой выжившего :)

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

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

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

А почему у меня не получается? Камни не те? Что пошло не так? В каком месте здравый смысл дал сбой? Может, это только во время землетрясения получается? Да не, ересь же какая то. Я просто не правильно бью. Может сбоку ударить? Ну да, вот если ударил под углом, искра появилась. Пойду вождю расскажу.

На показе вождю, искра не появилась. А теперь то что? И только дождь скрывал мои слезы обиды... )

Люди, профессионально занимающиеся наукой, так не говорят

А как они говорят?

Ну, «научно обосновали» вы свои действия либо ситуацию, а задачу решить не можете. Чтобы ее решить, нужна технология!

Ну да. Люди сначала кремний нашли, потом уже разобрались как он устроен. Но к вашей ситуации это не относится.

Хорошо, возьмём мою ситуацию. Была задача, реализовать алгоритм по непротиворечивому взаимодействию сильно связанных объектов (графических компонентов, программой логики и общей базы данных). Какое вы хотите применить тут «научное обоснование»?

Я не знаю же что за задача.

В моём случае, речь идет, скорее, о полуформальной модели взаимодействия ментальных представлений с реальными инструментами.

В данном случае, технология заключалась в нахождении некоего прототипа «матричного» алгоритма, который помог мне решить поставленную задачу.

Вы взяли инструмент, который по какой то причине позволил вам описать модель. Но вы уверены, что не заблуждаетесь? В этом и проблема. Вы выбрали инструмент "с точки зрения здравого смысла". Получается, вы не понимаете модель. Вы не можете ее объяснить. Как только вы это сделаете, дела пойдут быстрее. Вы случайно взяли молоток. Но что, если вы забиваете им шуруп?

То, что вы называете здравым смыслом - это отсутствие системы.

«Назовите хоть горшком, только в печь не кладите!». В искусстве тоже «нет системы», но оно (искусство) – есть. Так что, я отношу это к разряду: «А поговорить?»

А как они говорят?

Они говорят по сути. Например, физики-теоретики любят фразу: «Любая теория верна до тех пор, пока не будет опровергнута!». А физики-экспериментаторы требуют прибор «не в принципе, а в кожухе!». Т.е., они любят говорить не вообще, а конкретно. Это касается и абстрактных математиков. Просто их модели часто непонятны простым смертным, но их теории вполне конкретны по существу, хотя и абстрактны по форме.

Зато, люди далекие от науки ведут себя, как в том анекдоте: «Ёжики, станьте птицами! – Ура! А как? – Отстаньте глупые, а я не тактик, я стратег!».

Получается, вы не понимаете модель. Вы не можете ее объяснить.

Модель я понял, иначе не смог бы реализовать ее в программном коде, который меня вполне устраивает (в данный момент). Программу эту можно развивать, и вполне понятно, что и как делать. Вопрос только в дополнительном стимуле. У меня на эту тему вообще нет вопросов, только ответы. И если вам не ясен контекст моей работы, то прочитайте мои статьи. В данном случае я имею в виду свою обучающую систему «L'école», вместе с демо-данными, на разных языках. Эта программа вызвала у меня особые трудности, при создании, но я их преодолел, благодаря своему методу «здравого смысла». Или вы предлагаете повторить содержание моих статей в комментариях, только потому, что вам влом пройтись по ссылкам?

В искусстве тоже «нет системы», но оно (искусство) – есть

А чему, по вашему, учат в художественных, музыкальных школах, консерваториях, театральных кружках и тд?

Модель я понял, иначе не смог бы реализовать ее в программном коде

И да и нет.

С одной то стороны, язык программирования - это, по сути, упрощенная версия любого языка для общения. То есть, чтобы рассказать компьютеру, что вы хотите, вы должны понимать, что вы хотите. Желательно, сначала рассказать об этом коллеге/коту/резиновой_уточке на человеческом языке. Если не можете рассказать, не сможете и реализовать.

С другой стороны, я видел код, который авторы не могли объяснить. Вот тут же, на код ревью, не спустя там месяц или год. Они не могли объяснить, что делает их код. Тогда я спрашивал, а что они хотели, чтобы он делал. Они и на это не могли ответить. "Решать задачу" - Говорили они. А какую задачу? Поставленную. Парадокс. И ведь их код собирался и даже работал. И даже местами правильно, в самых простых позитивных кейсах.

Эта программа вызвала у меня особые трудности, при создании, но я их преодолел, благодаря своему методу «здравого смысла».

Я, когда начинал программировать, тоже делал все "с точки зрения здравого смысла". Это дало хороший старт. Здравый смысл, бесконечное стремление создавать и чувство прекрасного. Но сейчас любое мое решение, которое я принимал тогда "с точки зрения здравого смысла" я могу либо разбить вдребезги (потому что оно лишено здравого смысла), либо раскрыть что это за такой "здравый смысл". Могу оценить его по разным критериям, найти плюсы и минусы.

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

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

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

А чему, по вашему, учат в художественных, музыкальных школах, консерваториях, театральных кружках и тд?

Примерно тому, чему учат программистов в ВУЗах – навыкам работы со своими инструментами. Ну, или, другими словами, элементам технологии.

Однако, искусство не сводится к технологии, или, говоря вашими ловами, «системе». Искусство – это акт (не формализуемого) творчества. Нечто надсистемное, если хотите.

Возьмем, для примера, литературу. Как то я задался вопросом, что сложнее: написать программу или хороший рассказ? И, довольно долго, разбирался в этой теме. Я предполагал, что если рациональный поход хорошо работает в программировании, то, подобный метод должен иметь успех и в литературе. Тем более, начитавшись книг, типа, «Как писать литературные произведения?», я предполагал, что хороший рассказ это интересный сюжет плюс грамотно написанный текст.

С сюжетами у меня проблем не было. В жизни было столько интересных ситуаций, что их достаточно было даже для Шекспира, с его: «Нет повести печальнее на свете, чем повесть о Ромео и Джульетте!». Причем, у меня всё было не так грустно, хотя и очень впечатляюще. А литература, как утверждается – это «производство впечатлений».

Однако, суровая действительность сказала своё слово. Мало писать грамотно, надо уметь писать «красиво», так, чтобы текст «цеплял». А «цепляет» не столько сюжет, сколько гармония слов. В этом смысле, могут быть вполне успешны «бытовые» романы, в которых вообще отсутствует сюжет, как у чукчи: «Что вижу, о том и пою!». Так, в свое время я зачитывался бытовыми романами: «Зима», «Весна», «Лето», Оскара Лутса (не помню, из Латвии или Литвы, начала 20-го века). Там не было сюжета, только красивое повествование быта. А, если бы их юные герои не обижали бы кошек, как американцы индейцев, то я бы вообще ничего не запомнил бы оттуда. Эстетики много, но «страсти-мордасти» я не люблю.

При анализе литературных произведений я дошел до уровня понимания, что, чтобы понять автора, его литературный текст надо декомпилировать, примерно также как, я это делал с бинарным кодом на своем сайте: https://erfaren.narod.ru/ .

Что интересно, литературные шаблоны авторов я научился определять, а «красиво» писать – нет. В итоге, понял, что рациональный подход в литературе не работает.

«Красота» не формализуема и систему вы здесь не примените. Она близка к любви, о которой «не говори, ибо о ней все сказано». Тем не менее, говорят, но, тему закрыть не могут :) .

В программировании всё гораздо проще. Задача разбивается на выбор используемых объектов и компонентов. А ваша цель – установить между ними оптимальные связи, отношения и способы взаимодействия с пользователем. Сложность, здесь, только техническая, примерно, как найти существующий выход из лабиринта. В крайней случае, «Гордиев узел» можно разрубить. Ибо «не бывает безвыходных ситуаций, всегда есть, как минимум, три выхода, даже если вас съели».

Тем более, начитавшись книг, типа, «Как писать литературные произведения?», я предполагал, что хороший рассказ это интересный сюжет плюс грамотно написанный текст.

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

Вариант 1

Было раннее утро. Я вышел на улицу, потянулся. Вдохнул приятный свежий воздух. Солнце ярко светило в глаза, но я все равно улыбался...

Вариант 2

Это утро было особенным. Солнце светило сквозь ставни, поджигая мелкие частички пыли в воздухе. Я вышел на улицу и сразу зажмурился от яркого света, ударившего в глаза. Но это был очень приятный удар. Я поднял лицо к солнцу и улыбнулся, не открывая глаз. Руки сами разъехались в стороны в жесте объятия целой вселенной, и я сладко потянулся, почувствовав, как растягиваются мышцы на груди...

Как вам? И что самое интересное, вам не только писатель, но и многие литературные критики смогли бы объяснить систему. Смогли бы объяснить какие использовались приемы. Почему они удачны (или не удачны) здесь и сейчас. Это никакой не здравый смысл.

Что интересно, литературные шаблоны авторов я научился определять, а «красиво» писать – нет. В итоге, понял, что рациональный подход в литературе не работает.

Работает. Доворльно неплохое повествование способен написать ИИ, но он не чувствует.

Литературные шаблоны можно и нужно применять. Более того, писатели о них знают и применяют их намеренно (иногда не намеренно, но применяют).

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

Вариант 1
Вариант 2
Как вам?

Никак! Это не мой стиль. В детстве я читал много, был записан в пяти библиотеках города. Сейчас, художественную литературу не читаю вообще. Уже не интересно.

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

Это никакой не здравый смысл.

Я лет пять, занимался поиском рациональности в литературе. Много, на эту тему у меня мыслей в черновиках, но, «всему свое время». Сейчас интерес угас, хотя «страстей-мордастей» у меня было больше, чем у Ромео и Джульетты. Раз литературный талант, у себя, не нашел, значит, пусть о «движеньях чувствования» пишут другие, у них это лучше получается.

Работает. Довольно неплохое повествование способен написать ИИ, но он не чувствует.

Допускаю. Сам когда-то думал о написании программы в помощь авторам художественных произведений. Однако, ИИ с этой темой справляются лучше. Так что, хорошо, что не тратил зря время на это. Кстати, первая моя статья здесь была о литературе: ««Hello, World!» для начинающих литераторов» – https://habr.com/ru/articles/342512/ .

А ИИ не только «не чувствует», но и не владеет полным контекстом человека, особенно с учетом того, что мы сами часто, толком, не знаем, что хотим получить на выходе. Результат рождается в процессе диалога с Реальностью. В свое время, читал даже философское эссе: «Дилогика», то бишь, логика диалога. Автор претендовал, что это логика будущего. Это будущее еще не наступило, но всё к тому идет. Партнёром, по диалогу с нами, будет ИИ. В этом и будет наша общая сила.

Но без системы намного сложнее.

Согласен. Если она основана на здравом смысле :) .

Когда-то, в детстве, я был свидетелем, как к нам, в спортзал, на занятия по тяжелой атлетике, пришел пьяный злоровяк, в тельняшке. Посмотрел на наши штанги, в 60-70 кг веса (тяжелее меня, тогда) и говорит: «А ну-ка, разбежались! Я, сейчас, их одной левой!». Ну, и начал, шатаясь, на вытянутых руках, поднимать штангу. Пока не уронил. Хорошо, что не на себя. У меня была подобная травма, в еще более раннем детстве, к счастью, в пределах разумного. А если бы ему, хотя бы, чуть-чуть, техники, он бы и в два раза больше поднял, даже пьяный.

Так что наличие системы – лучше, её отсутствия. На самом деле, здравый смысл – тоже про систему, только интуитивную, не формализованную.

На самом деле, здравый смысл – тоже про систему, только интуитивную, не формализованную.

Ну вот, мы плавно вернулись к моему первому комментарию :)

Сейчас, художественную литературу не читаю вообще. Уже не интересно.

Все интересное уже прочитано. А после смерти Ганди и поговорить не с кем...

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

Я, хоть и учился на мехмате МГУ, по специальности «01» – математика, но абстрактные рассуждения «вообще» не слишком люблю. Особенно, если они подменяет, более уместный, конкретный анализ.

В данном случае, я говорил, что горжусь своей обучающей пет-программой «L'école» ( https://habr.com/ru/articles/930868/ ), потому что, там мне удалось «разрулить» очень сложный, для меня, алгоритм взаимодействия, графики, звука, графических элементов управления, общей базы данных, обработчиков событий и т.п., только благодаря «включению мозгов», отказу от известных парадигм программирования, за исключением ООП, и использованию метода «здравого смысла».

Вы начинает возражать, что «здравый смысл» это глупость и, вообще, «не махайте ерундой». Вы думаете, это меня впечатлит? Я бы больше проникся, если бы вы, скажем, при использовании этой программы, обнаружили какие-то ошибка, которые там, безусловно, есть. Я сам нашёл пару серьёзных, просто, пока лень делать новую версию.

Ладно, допустим, вы не любите тестирование, а исходники на эту программу я пока не выложил (сначала хочу оптимизировать код, чтобы не провоцировать лишнюю критику), но, тогда возьмите для критики исходники моего другого пет-проекта ( https://habr.com/ru/articles/955838/ ), в котором я тоже использовал свой метод «здравого смысла». Укажите какие-то серьезные замечания, то я буду только рад с ними ознакомиться. Конструктивная критика – всегда на пользу.

Иначе говоря, трудно принять возражения данного метода «вообще». Он хорошо работает не только для пет-программирования, но и для создания собственной корпоративной программы по учету на производственном предприятии, которая кормила меня двадцать лет, пока существовали фирмы, где она была внедрена. Там, кстати, я применил много нестандартных решений, которыми никто, никогда не пользовался.

И тут приходите вы и заявляете: «опыта и знаний может не хватить» и т.п. Да, может. Но, тогда, по здравому смыслу, я обновляю свои знания и опыт. И, до сих пор, меня все устраивает. Т.е., конструктива в ваших претензиях я не вижу совершенно.

И, до сих пор, меня все устраивает. Т.е., конструктива в ваших претензиях я не вижу совершенно.

Вы хотите конструктива, а я говорю с точки зрения здравого смысла :)

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

Вы начинает возражать, что «здравый смысл» это глупость и, вообще, «не махайте ерундой»

Я ни в коем случае не говорил, что здравый смысл это ерунда и что не надо включать мозги. А сколько человек работает с вами в команде над вашим кодом?

Вы хотите конструктива, а я говорю с точки зрения здравого смысла :)

Здравый смысл вполне конкретен и конструктивен, иначе бы мы говорили бы об «абстрактной эрудиции».

А сколько человек работает с вами в команде над вашим кодом?

Нисколько! Я всегда работал один и когда создавал корпоративную программу, и когда пишу пет-проекты. Для команды нужны другой стиль, другое мышление, другие навыки. Иначе говоря, это не для меня.

Нисколько! Я всегда работал один и когда создавал корпоративную программу, и когда пишу пет-проекты. Для команды нужны другой стиль, другое мышление, другие навыки. Иначе говоря, это не для меня.

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

Код, кстати, это тоже искусство.

Здравый смысл вполне конкретен и конструктивен, иначе бы мы говорили бы об «абстрактной эрудиции».

Конструктив, это когда не используется фраза "с точки зрения здравого смысла".

Почему этот код хороший/плохой? Потому что

1

2

3...

Конструктив, это когда не используется фраза "с точки зрения здравого смысла".

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

Почему этот код хороший/плохой? Потому что 1 2 3...

Это постанализ. Преданлиз – гораздо менее определен. Не редко можно встретить код, который решает одни и те же задачи, но размером он может отличаться на порядки. Нет ли здесь выбора, основанного на здравом смысле?

Здравый смысл это интуитивный выбор, основанный на собственном образовании и жизненном опыте.

Следовательно, есть несколько "здравых смыслов". Вполне возможно, что даже не только не совпадающих и не пересекающихся, но и прямо противоположных.. Но если есть "противоположные, взаимоискючающие здравые смыслы" - то либо они не здравые, либо не смыслы, либо их нет...

Это постанализ. Преданлиз – гораздо менее определен

он тоже определен: "чтобы получившийся код был хорошим, нужно выполнять 1, 2, 3..."

слогоделение в этих словарях делают программные алгоритмы и, как, показывает практика, делают это, не редко, с ошибками.

Как показывает практика, человеки — и те даже на родном языке нередко пишут с ошибками!

Я же говорю не о бытовом языке, а об официальных публикациях. Просто, слогоделение в словарях никого особо не интересует. А французский ИИ (Мистраль) часто даёт неверную французскую транскрипцию и слогоделение. Т.е., даже свой собственный язык французы не могут довести до ума (это касается и неопределенностей в грамматике, вроде полного списка всех видо-временных и глагольных форм и даже правил произношения, типа, произношения непроизносимых звуков, парижского жаргона, искажающего стандартное звучание и ударение). А ведь французы свой язык обожают до чёртиков, бесконечно реформируя его (последние были в 1990-м и 2014-ом годах), но, полноценной грамматики его, даже для стандартной версии, ещё не создали.

Мы всем сердцем с Вами. Успехов!

Могу посоветовать свою статью https://arxiv.org/abs/2508.00869, конкретно седьмую главу. Ну или посмотреть видео с семинара AGI Russia где я в свободной форме рассказывал подход к морфологии и морфемике.

Посмотрел я вашу статью и, немного, видео. Материал, конечно, очень хорош для научной статьи. И, даже, в какой-то мере, интересен. Думаю, было бы неплохо, если бы вы опубликовали, здесь, её научно-популярное изложение. Наверное, всяко понятнее было бы, чем применение, в статьях на Хабре, геометрической алгебры для вывода из нее основных уравнений теоретической физики. Для ее чтения, даже математику, по образованию, напрягаться надо, что уж там говорить о простых технических специалистах.

Что касается видео, то, лично я, лучше воспринимаю текст, чем речь, на лекциях.

Относительно ваших задач. Для моих целей, это не совсем то. Скажем, меня интересует получение различных порций относительно простых, грамматически однородных предложений, созданные носителями французского языка и их озвучка, ради изучения иностранного языка, в моей обучающей программе «L'école». Вместе с их транскрипцией, слогоделением и буквальным, контекстным переводом (см. пример в https://habr.com/ru/articles/669178/comments/#comment_24460452 ).

Если взять произвольное французское предложение, то, как определить, к какому грамматическому классу оно относится? Имеется в виду, прежде всего, определение используемых в нем видовременных и глагольных форм.

Можно определить все формы спряжения любого глагола. Скажем, глаголов, во французском языке, порядка семи тысяч. Каждый их них имеет, примерно, 90 форм спряжения. Как это всё обозревать?

Оказывается, что эти, под миллион, данные можно описать с помощью, всего, ста пятидесяти шаблонов (которые можно найти на Гитхабе). Далее, дело программистской техники.

Однако, при реальном анализе, мало дать любую форму спряжения для инфинитива. Нам нужен обратный анализ. А, он, как раз, слишком многозначен. Поэтому остается только ручной отбор и сортировка (но, сначала, надо выучить язык), либо создавать сложную лингвистическую модель предложений и их типов. Реально, я, пока, использую готовые шаблоны из Ютуба (см. мою статью: «Роль данных при изучении иностранного языка» – https://habr.com/ru/articles/930868/ ). Но, хочется, выйти на какую-то систему.

Если взять произвольное французское предложение, то, как определить, к какому грамматическому классу оно относится? Имеется в виду, прежде всего, определение используемых в нем видовременных и глагольных форм.

Если не секрет, расскажите, пожалуйста, зачем вам это? В смысле, какая практическая задача решается при наличии оной классификации?

Если не секрет, расскажите, пожалуйста, зачем вам это? В смысле, какая практическая задача решается при наличии оной классификации?

Не секрет. Я уже много раз писал об этом здесь. Речь идет о способе изучения иностранного языка по методу: «Запоминание руками + Интерактивный звук + Чтение по слогам + Буквальный контекстный перевод». Для этого создана обучающая программа «L'école». В чем главная проблема? В данных!

Вот, цитирую себя, по ссылке, выше, на свою статью:

«Экспериментируя, уже в зрелом возрасте, весьма продолжительное время, с разными вариантами изучения французского языка, пришел к выводу, что обучающие данные должны удовлетворять следующим условиям:

  • Данные должны быть разделены на порции.

  • Эти порции данных должны быть однородными.

  • Усложнение данных должно быть постепенным (от простого к сложному).

  • Основу для изучения должны составлять простые фразы, отдельные слова запоминаются в контексте.

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

  • Запоминать фразы, набирая их оригинальный текст руками, менее скучно, чем зубрить глазами.

  • При наборе фраз либо просмотре видео, с двуязычными субтитрами, желательно, громко повторять их озвучку. Это не обязательно делать всегда, хотя бы, иногда.»

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

Понятно, большое спасибо за развернутый ответ!

"Он прямо говорит - СЛОЖНОСТЬ программ - не в языке и не в синтаксисе, а в понимании сущности задачи."

" Структура - это не просто синтаксис, это инструмент понимания."

Получается Вы "очень много понимаете в сущности задачи".

Я бы добавил, что структура - это модель на основе того, что у вас есть для понимания.

Упростили модель адекватно нужному результату? Все верно.

Серьезно: пишите пять-семь строчек кода и перечитывайте его вслух. Я гарантирую вам, что вы отловите море ошибок до первой компиляции.

Нет. Профессионал думает до того, как начал писать. Может стажеру/трейни этот совет и норм, чтобы развить внимательность. Там еще можно и ИИ встроенный в IDE посоветовать отключить. А для серьезной работы - это антипаттерн, сильно снижающий скорость разработки.

Взять создание того же каркаса Веб-приложения на Spring Boot и не только. Там столько boilerplate-кода. Причем я не раз это делал без единой крит ошибки не проверяя и не запуская до определенной контрольной точки. А дальше есть рефакторинг, где ты все проверишь, оптимизируешь и улучшишь. Потом еще пишутся тесты. В конце концов, если ты где-то опечатался, - тебя поправит и направит на ошибку ИИ встроенный в IDE или компилятор. Вот много лет назад... Но мы живем не много лет назад. И бизнес будет сотрудничать с теми, кто производит рабочие решения быстро. А потом так же быстро допиливает их. Думать и делать еще и качественно никто не отменял, впрочем.

PS: код обратно на выполнение может и с ci/cd на доработку прилететь...и от блока ИИ анализатора(а они умеют не только лайтовый линтинг проводить, но и серьезные угрозы безопасности искать), и с контейнерных тестов, и с CodeReview и от тестеров manual/auto. Так сказать, последние стражи галактики...

Там же буквально написано про подумать в первом пункте.

И бизнес будет сотрудничать с теми, кто производит рабочие решения быстро.

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

Я то же думал, что мы зависим от бизнеса, а не наоборот…

Очень крутая статья!! Пишите почаще и дай Бог вам здоровья

Какой-то вы фальшивый патриот. «Бог», пишите с большой буквы, а знаки пунктуации указываете произвольно.

«Бог», пишите с большой буквы, а знаки пунктуации указываете произвольно.

Бог простит! /s

Верю, надеюсь, люблю.

А исключения и авторское коверканье слов при написании литературного произведения?

Для авторских запятых есть goto, для авторских слов eval и темплейты.

Серьезно: пишите пять-семь строчек кода и перечитывайте его вслух. Я гарантирую вам, что вы отловите море ошибок до первой компиляции.

А смысл? Допустить ошибку при написании 5-7 строчек кода именно в логике этих строчек довольно сложно. Большинство ошибок становятся таковыми только на бòльших масштабах, как раз из-за рассогласования взаимодействующих частей кода, которые ты не можешь одновременно держать в поле зрения. Например, вызвал метод с неправильными аргументами, потому что уже забыл его синтаксис. Как тут поможет перечитывание последних нескольких строк кода, если класс был объявлен 100 строк назад?

Допустить ошибку при написании 5-7 строчек кода именно в логике этих строчек довольно сложно

Да нет, довольно просто. Все ошибаются в каких то мелочах. В количествах итераций цикла, например (+/-1).

Например, вызвал метод с неправильными аргументами, потому что уже забыл его синтаксис. Как тут поможет перечитывание последних нескольких строк кода, если класс был объявлен 100 строк назад?

Вы пользуетесь IDE? Ваш ЯП умеет именованные параметры при вызове метода?

Если написать SomeCalculation(sum1: mySum1Value, sum2: mySum2Value) вместо SomeCalculation(mySum1Value, mySum2Value), то ошибок будет меньше. IDE подскажет, какие свойства, методы и их параметры есть у класса. Какие параметры принимает метод. А вот, что вы вместо индекса порядковый номер используете, не подскажет.

Серьезно: пишите пять-семь строчек кода и перечитывайте его вслух

вы скажите ещё, что читаемые тексты на русском (или другом естественном языке) надо проговаривать «про себя»

Что неплохо? Внутреннее проговаривание снижает скорость чтения и ухудшает понимание текста. Единственный случай когда без него никак — чтение стихов.

Всегда проговариваю про себя — как от этого избавиться?

UFO landed and left these words here

1. Пойми то, о чем хочешь написать

Гениально, конечно! Только не хватает объяснения как ученику понять, что он это понял или что делать если ученик думал что понял, но на самом деле совсем не понял но уже написал...

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

Люди часто начинают что то делать, но не понимают поставленную (даже ими самими) задачу. Не понимают конечную цель. Не понимают критерии приемки. Слышат отдельные фразы задачи и просто вываливают все, что как то ассоциируется с этими фразами.

Я так понимаю, прошаренный программист должен писать, как Лев Толстой: длииииинный однострочник, и чтобы где-то посерёдке ещё процентов двадцать было на другом языке программирования.

Да и ТЗ, сформулированное как "Наташа Ростова - любимый персонаж Толстого", с которым непонятно, чего делать, тоже, наверное, готовило к определённым будущим реалиям. Всё, я понял формулу успеха. ЧатЖПТ, напиши мне статью для русскоязычного IT-ресурса, озаглавленную "Пиши код, как Лев Толстой".

посерёдке ещё процентов двадцать было на другом языке программирования

lua, dls и классическое "Любая достаточно сложная программа на Си или Фортране содержит заново написанную, неспецифицированную, глючную и медленную реализацию половины языка Common Lisp."

Напоминает один из моих пет-проектов — бэк на расте, но местами на php, клиент на сишарпе, подключающийся к фронту на mshta, в котором скрипты на visual basic, и всё это релизнуто в 2018. До какого-то времени даже работало...

У меня на работе несколько лет назад был проект: софтина на Java с вкраплениями вроде каких-то нативных библиотек на C++, софтина на C++ со встроенным Python 2.x в качестве движка для плагинов, софтина на Unity (C#) со встроенным IronPython в качестве движка для скриптов, софтина на Python 3.x, и весь этот весёлый зоопарк дёргает друг дружку по сети, выдавая команды, запуская скрипты и делая всякое. И мне довелось в той или иной мере приложить руку ко всему из этого, хотя Джаву с Сишарпом я не знал никогда, а второй Питон успел забыть. Работало, хотя разворачивать всё это было довольно мучительно.

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

Одна некоторая автомобильная фирма решила сделать систему для планирования логистики грузоперевозок. В итоге MVP выглядел как:

Есть приложение на андроид, в котором 4 кнопки в тулбаре и снизу карта с контролами. Всё бы ничего, но на самом деле внутри вертится собранное под arm и с биндингами на JNI ядро и кастомная операционка от автомагнитолы, накрученная рендерить в GL surface, который и отображается под тулбаром, а касания по нему передаются назад в ядро как события тачскрина. Ну и тулбар как события хардварных кнопок, да. Не то чтобы что-то из ряда вон, но местами исходники были датированы годом так 1992, и обработка исключений делалась чем-то типа записи структуры на фиксированный адрес и прыжком на *rand(), что в андроиде конечно же не очень-то работало.

Ну ладно, но маршруты же надо ещё и на компьютере как-то планировать перед передачей в приложение. Контрол рендера карты на ангуляре (тогда ещё с приставкой JS) уже был, но маршрутизацией он не занимается. Поэтому по клику в набор точек они уходят на бэкенд в REST-апи на спринге. Тот их кладёт в постгрес in-memory таблицу и вызывает некий php-скрипт. Который в свою очередь достаёт из постгреса, перекладывает в mysql, и вызывает ещё один скрипт. Тот же достаёт их из mysql и формирует странного вида бинарник в /tmp, путь к которому уходит как аргумент шелл-скрипту.

Шелл-скрипт приклеивает к бинарнику ещё два с помощью dd, а потом вызывает QEMU, в котором стартует... Бинго, эмулятор автомагнитолы! Вся эта требуха же является дампом оперативки оной, в которой забили наши точки в список и нажали на кнопку прокладки маршрута.

"Автомагнитола" строит маршрут, пытается обновить экран и падает, ибо контроллера дисплея не обнаруживается. Делается дамп оперативки, который шелл-скрипт раздербанивает через тот же dd и отдаёт назад php-скрипту. Результат кладётся в мускуль, оттуда назад в постгрес, оттуда читается бэком на спринге и отдаётся на фронт, где мапбокс рисует красивенькую линию и анимацию, как по ней в течение дня едет грузовик.

Колесо сансары сделало оборот, барабан провернулся, завтрак испортился. Часть деталей имплементации искажена намеренно, дабы не сильно злить хоть и уже давно истёкший, но всё же NDA этой вымышленной компании в несуществующей стране на планете Шелезяка ;-)

Не могу поддерживать накал, максимум дичи, что я видел - софтина с довольно развесистым и навороченным гуём под винду, который был весь серьёзно переделан при помощи хуков, потому что исходников не было. Работало и продавалось, но, видимо, так всех задолбало, что мне как раз поручили по-нормальному переписать с нуля (а как ещё, исходников-то не было).

Пиши код, как лев.© Толстой

Тю-ю-ю... ЯП вообще-то ни разу не про синтаксис (потому что подавляющее большинство из них имеют равномощный набор синтаксических конструкций, и отличаются только формой), а про семантику — в которой и заключается основная ценность.

Настоящий «язык» для программиста — это конкретные API и библиотеки, определяющие глаголы (функции, методы, процедуры, лямбды), существительные (объекты, хэндлы, указатели, и т.п.), и правила построения осмысленных предложений из них. Которые могут быть кардинально разными для одного и того же ЯП.

Гм, автор открыл для себя классическое образование? Много годков назад, можно даже сказать в прошлом тысячелетии, сдавал курсовик "транслятор с бейсика на фортран" в рамках курса ... теория алгоритмов и формальных языков.

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

Я даже помню в тот день и погоду, и место где задавал этот вопрос деду - мне нужно было продумать его прежде чем задать, и даже примерное время дня помню, время сезона не помню - помню погоду.

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

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

Мне кажется, что с вашим стремлением к пониманию окружающего мира Вы зря послушали дедушку.

Да, он прав в частностях, но глобально — нет.

Весь наш мир детерминирован правилами работающими в заданной системе. И нам лишь остается их все разгадать. И те из них о которых вы спрашивали деда — мы сейчас сидим и все вместе разгадываем.

Инвариант, который заложен в этом тексте, мы можем выразить любым другим языком программирования, который допускает аналогичную токенизацию. Или вы можете просто записать это выражение текстом на русском языке, и какой-то компилятор будущего сможет перевести его в машинный код без потери инварианта.

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

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

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

Согласен. Ее задача развить в сознание (подсознательном) ребенке методологию мышления, а уже потом он будет разбираться в деталях этой задумки.

Конечно, если вместе с методологией даётся понимание области её применимости, – чтобы ученик мог отличать, где заканчивается наука и начинаются галлюцинации.

Ну, тут мы уже вовлекаемся в серьезную полемику.

Не знаю, если понял Вас правильно. Я же о том говорю, что ребенка учат ходить ножками, в деталях не объясняя все процессы натуры человека, окружающего и внутреннего миров. Просто говорят. Запомни и повторяй так же. Это уже позже в школе, он начнет склеивать приобретенные знания, понимая, что тут не просто мышцы и сопли, а еще гравитация из физики, шарики из геометрии, а потом в универе понимает, что всему виной теория квантовой гравитации (так и не доказанная). Типо с детства закладывает правильные вещи.

Я сравниваю, как я инструктирую новичков и мои коллеги. У меня более организованный подход. Педагогический. Я им начинаю объяснять с труктуру «фермы», прямые обязанности, трюки. Чтобы он не просто учил трюки, а по-немногу вникал, от куда ноги растут у трюка. То есть не просто принеси-подай. А что есть три вида «принеси-подай», поэтому эту задачу ты найдешь тут, а поступает она сюда такой-то логикой… прям находу ввожу в курс дела. Конечно я вижу, что он нифига не понимает, но потом, спустя три месяца, он ловит на лету, и мне ему уже не надо объяснять от куда у этой теоремы, та аксиома.

Короче, более академический подход.

Так что, дай бог ей здоровья.

ИИ - Искусственный Идиот. Надо запомнить. Пригодится.

Мы тут так договоримся, что вы всех в гуманитарии запишите, не-не-не)

Если раньше гуманитарием называли человека, знающего несколько иностранных языков, основные философские концепции, историю культуры и искусств, умеющего музицировать и срифмовать несколько строк, то сейчас гуманитарий - это тот, кто не смог осилить таблицу умножения... ©

Sign up to leave a comment.

Articles