Нейроложество :)
Apr. 4th, 2023 11:03 pmПродолжаю развлекаться с "программирующими" нейросетками.
Задал сетке BITO вопрос "write hello world in ..." для всех языков программирования, которые вспомнил сходу.
В основном, получилось правдоподобно: сетка знает С, С++, C#, Ada, Algol-60, Pascal, Oberon, Modula2, PHP, Basic, Fortran, Cobol, Java, Kotlin, Lisp (common и autocad-овский), Rust, Erlang, Go, JS и минимум три ассемблера (IBM-360, PDP-11 и x86).
Видит разницу между python-ом 2 и 3, умеет всякую экзотику вроде Befunge, Brainfuck, Prolog и APL.
Комментирует код и позволяет себе высказываться в стиле «Note: Brainfuck is not recommended for practical use, as it is an esoteric programming language with a limited set of instructions and can be difficult to read and understand»
Знает, как вывести "Hello world" в оракловом PL/SQL, мелкомягком TSQL и консоли mySQL (select 'Hello, world!'; да ;).
Понимает, что CODASYL и REDIS - вообще не языки, а JSON и YAML - не языки программирования.
А вот в ответ на провокационный вопрос "write hello world in gcode" выдала:
... нарисовав вращающейся фрезой в воздухе треугольник :)
В качестве вишенки на торте "write hello world in chinese":
人类:请输出你好世界 (pinyin: qǐng shūchū nǐhǎo shìjiè) - "Человек: пожалуйста, выведите привет, мир", если верить гуглопереводчику.
P.S. Валидность ассемблерного кода не проверял. В остальных случаях иногда порождает правильное обрамление модулей, иногда теряет, но, в целом, выглядит рабоче. Программера, конечно, такое не заменит, но ассистента по синтаксису и библиотекам - вполне.
Задал сетке BITO вопрос "write hello world in ..." для всех языков программирования, которые вспомнил сходу.
В основном, получилось правдоподобно: сетка знает С, С++, C#, Ada, Algol-60, Pascal, Oberon, Modula2, PHP, Basic, Fortran, Cobol, Java, Kotlin, Lisp (common и autocad-овский), Rust, Erlang, Go, JS и минимум три ассемблера (IBM-360, PDP-11 и x86).
Видит разницу между python-ом 2 и 3, умеет всякую экзотику вроде Befunge, Brainfuck, Prolog и APL.
Комментирует код и позволяет себе высказываться в стиле «Note: Brainfuck is not recommended for practical use, as it is an esoteric programming language with a limited set of instructions and can be difficult to read and understand»
Знает, как вывести "Hello world" в оракловом PL/SQL, мелкомягком TSQL и консоли mySQL (select 'Hello, world!'; да ;).
Понимает, что CODASYL и REDIS - вообще не языки, а JSON и YAML - не языки программирования.
А вот в ответ на провокационный вопрос "write hello world in gcode" выдала:
G0 X0 Y0 Z0 ; move to home position
G4 P2000 ; pause for 2 seconds
G0 X0 Y0 Z10 ; move tool 10 units above workpiece
M3 S500 ; start spindle at 500 RPM
G1 X10 Y10 F100 ; move tool to position (10,10) at 100 units per minute
G1 X10 Y0 F100 ; move tool to position (10,0) at 100 units per minute
G1 X0 Y0 F100 ; move tool to position (0,0) at 100 units per minute
M5 ; stop spindle
G0 X0 Y0 Z10 ; move tool 10 units above workpiece
M30 ; end of program
... нарисовав вращающейся фрезой в воздухе треугольник :)
В качестве вишенки на торте "write hello world in chinese":
人类:请输出你好世界 (pinyin: qǐng shūchū nǐhǎo shìjiè) - "Человек: пожалуйста, выведите привет, мир", если верить гуглопереводчику.
P.S. Валидность ассемблерного кода не проверял. В остальных случаях иногда порождает правильное обрамление модулей, иногда теряет, но, в целом, выглядит рабоче. Программера, конечно, такое не заменит, но ассистента по синтаксису и библиотекам - вполне.
no subject
Date: 2023-04-04 08:26 pm (UTC)no subject
Date: 2023-04-04 08:31 pm (UTC)Эрланг:
Пыха:
echo "Hello, world!";?>посеяла начальный <?php
no subject
Date: 2023-04-04 08:37 pm (UTC)На эрланге норм, но явно просто стырило из тьюториала. Ну и да, кто сейчас на чистом эрле пишет когда эликсир есть.
Пыха да, но зачем echo? ))
no subject
Date: 2023-04-04 08:42 pm (UTC)Ну, версию пыхи я не задавал, а echo работает даже в древнейшей PHP/FI 2 :)
no subject
Date: 2023-04-04 08:44 pm (UTC)Но формально да, так код.
no subject
Date: 2023-04-04 08:56 pm (UTC)На пыхе мало кто умеет правильно писать, потому что правильно — это генерить HTML и JS в выводе функций, а не вставлять код врезками в HTML :)
Ну и для бэка пыха неплоха, там очень грамотный кэширующий компилятор опкодов начиная с версии 7. Тупо быстрая :)
no subject
Date: 2023-04-04 09:03 pm (UTC)«Правильно писать» на ёй звучит как оксюморон.
Не, понято что все языки хороши и не бывает плохих наверное и вообще вордпресс же.
Но всё-таки как-то ой.
Даже на питоне или ноде бэкэнды (при всей интерпретаторности и однотредовости в большинстве случаев первого и гарантировано второго) по нынешним временам выглядят приличнее (и оплачиваются минимум в два раза лучше).
Я щаз для бэка плотно на Elixir/Phoenix/Absinthe подсел. И прикольно что там горизонтальный scaling уже в самом OTP есть готовый, не надо с контейнерами и балансерами огород городить.
no subject
Date: 2023-04-04 09:19 pm (UTC)Ну, это предубеждение.
У меня есть большой бизнес-проект на PHP с бэком примерно в 50-60 тысяч строк, который живёт уже 4 года и умирать не собирается. Внутри — ни разу не бейсик, а довольно стройная объектная модель :)
Мне, конечно, по большому счёту, всё равно на чём писать, но я когда-то поучаствовал в разработке пыхи и знаю её сильные и слабые места. Язык сильно недооценен из-за низкого порога вхождения и обилия школьного говнокода на нём.
no subject
Date: 2023-04-05 08:01 am (UTC)Имидж уже, имидж. И да, всё так, школота картину портит.
А так разумеется можно на любом стеке нормально сделать, а можно и лапши накрутить.
no subject
Date: 2023-04-04 09:26 pm (UTC)В другом проекте мы в последние два года убили много времени на то, чтобы сделать быстрый горизонтально масштабируемый бэк на питоне, в итоге, пришлось всё это выкинуть и реализовать скалируемую архитектуру на REDIS-е и С++. Ибо "не приспособлены кролики для лазания по деревьям", при всей моей любви к питону как языку.
no subject
Date: 2023-04-05 08:08 am (UTC)Скриптовые языки в принципе не предназначены для написания бэкендов. Они не масштабируются ни вширь ни вверх более чем никак. И питон ещё ничего — node вот что самая жирная порнография. Один тред, синхронные блокирующие нативные методы — ужос. Зато порог вхождения даже ниже чем в питоне, тамушта жабаскрипт.
Для скалинга опять же сейчас в восторге от Elixir/Erlang на OTP, там это всё делается вполне себе нативно, да и общий стейт реализуется несколькими способами дающими разные удобства, так что никаких ни редисов ни кубернетесов не надо.
no subject
Date: 2023-04-05 08:26 am (UTC)Порог вхождения — штука обманчивая.
Спросишь, бывало, на интервью: "а хорошо ли вы знаете питон?"
"Зашибись, как хорошо знаю", отвечают.
"А про asyncio и корутины расскажите, плиз!"
"А что это?"
:)
Вообще, масштабируемость — не свойство языка, а свойство архитектуры. На python-е очень удобно прототипировать, у меня вся песочница по большей части на нём. А в продакшен идёт код, язык для которого выбирается вдумчиво.
no subject
Date: 2023-04-05 08:28 am (UTC)Я на питоне утилитки всякие пилю, очень удобно. И прототипировать, разумеется.
no subject
Date: 2023-04-05 08:35 am (UTC)Я когда-то хорошо прочувствовал, что выход с этапа исследований в продуктивную разработку с отработанным API и скелетом архитектуры здорово экономит усилия и время, даже если приходится переписывать прототип на другой язык.
Ну и утильки, да :)
no subject
Date: 2023-04-05 08:32 am (UTC)> никаких ни редисов ни кубернетесов не надо.
У нас просто не система массового обслуживания в привычном смысле, основной акцент не на обработке условного миллиона клиентских запросов в секунду, а на считывании миллиона стейтов и отдаче миллиона команд в устройства. Тут редис оказался просто настолько в кассу как промежуточное хранилище данных, что производительность выросла почти на порядок.
no subject
Date: 2023-04-05 08:37 am (UTC)Ну да, редис — отличный кэш, пользую иногда.
Но (опять продолжу нахваливать, извини) в эликсире есть отличный механизм GenServer, который тебе позволяет очень гибкие стейты делать, быстрые, асинхронные, с разнообразными подписками и прочими плюшками.
А ещё сейчас копаю Elixir Nerves для embedded, тоже прикольная крайне вещица. Хватит уже сей что с плюсами что без ))
no subject
Date: 2023-04-05 08:48 am (UTC)Мне кажется, что тянуть в embedded-платформы при их ограниченной памяти виртуальные байткодные машины — так себе идея. У меня есть не сказать чтобы положительный опыт с microPython-ом на том же nrf52, С++ с Зефирками в 64кб RAM работают лучше :)
Опять таки, весьма приятные и богатые нордиковские либы переписывать на эликсир кто будет?
no subject
Date: 2023-04-05 08:55 am (UTC)Тут прелесть именно в том что оно функциональное (питон всё-таки процедурный, так что от сей разницы большой нет). Да, разумеется за счёт увеличения прожорливости в плане памяти и некоторой потери скорости, но надёжность и устойчивость возрастает в разы.
Ну и nerves линух нужен, так что это не для мк, а для мелких SoC, всяких RPi и прочих коробчонок-роутеров-насов.
no subject
Date: 2023-04-05 09:01 am (UTC)Современные эрланг и эликсир, наверное, стоит посмотреть, у меня с этим стеком опыт небольшой.
Моё знакомство с эрлангом началось с того, что я написал функцию расчёта факториала, запустил её с аргументом -1, и она рекурсивно и многопоточно съела всю оперативную память :)
no subject
Date: 2023-04-05 09:20 am (UTC)Ушло бы по-человечески в infinite loop ))
no subject
Date: 2023-04-04 08:52 pm (UTC)ИМХО, самое главное не спросил. Обработку для 1С. Если получится, то быдло кодеры будут в опасной зоне.
no subject
Date: 2023-04-04 09:04 pm (UTC)С миром 1C я сталкивался только через веб-сервисы, полагаю, что более близкое знакомство чревато психическими травмами :)
Вообще, BITO доступен в виде плагина к VSCode, так что поставь и задай тот самый вопрос :)))