dzz: Dizzy の冬 (Default)
[personal profile] dzz
Продолжаю развлекаться с "программирующими" нейросетками.

Задал сетке 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. Валидность ассемблерного кода не проверял. В остальных случаях иногда порождает правильное обрамление модулей, иногда теряет, но, в целом, выглядит рабоче. Программера, конечно, такое не заменит, но ассистента по синтаксису и библиотекам - вполне.

Date: 2023-04-04 08:26 pm (UTC)
From: [identity profile] parakhod.livejournal.com
Интересно на erlang глянуть (вся ли обвязка на месте) и на пыху (что там писать-то вообще кроме самой строки?)

Date: 2023-04-04 08:31 pm (UTC)
From: [identity profile] dzz.livejournal.com

Эрланг:

-module(hello).
-export([world/0]).

world()->
io:fwrite("Hello, world!\n").



Пыха: echo "Hello, world!";?>


посеяла начальный <?php




Edited Date: 2023-04-04 08:34 pm (UTC)

Date: 2023-04-04 08:37 pm (UTC)
From: [identity profile] parakhod.livejournal.com
Ну уже недурно.
На эрланге норм, но явно просто стырило из тьюториала. Ну и да, кто сейчас на чистом эрле пишет когда эликсир есть.

Пыха да, но зачем echo? ))

Date: 2023-04-04 08:42 pm (UTC)
From: [identity profile] dzz.livejournal.com

Ну, версию пыхи я не задавал, а echo работает даже в древнейшей PHP/FI 2 :)

Date: 2023-04-04 08:44 pm (UTC)
From: [identity profile] parakhod.livejournal.com
Я этот прекрасный язык уже лет 9 не видел, по счастью. Но просто стринг без тэгов даст тот же результат, потамушта мы html )
Но формально да, так код.
Edited Date: 2023-04-04 08:45 pm (UTC)

Date: 2023-04-04 08:52 pm (UTC)
From: [identity profile] runn3r.livejournal.com

ИМХО, самое главное не спросил. Обработку для 1С. Если получится, то быдло кодеры будут в опасной зоне.

Date: 2023-04-04 08:56 pm (UTC)
From: [identity profile] dzz.livejournal.com

На пыхе мало кто умеет правильно писать, потому что правильно — это генерить HTML и JS в выводе функций, а не вставлять код врезками в HTML :)


Ну и для бэка пыха неплоха, там очень грамотный кэширующий компилятор опкодов начиная с версии 7. Тупо быстрая :)

Edited Date: 2023-04-04 08:59 pm (UTC)

Date: 2023-04-04 09:03 pm (UTC)
From: [identity profile] parakhod.livejournal.com
Пыха — бейсик наших дней.
«Правильно писать» на ёй звучит как оксюморон.

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

Я щаз для бэка плотно на Elixir/Phoenix/Absinthe подсел. И прикольно что там горизонтальный scaling уже в самом OTP есть готовый, не надо с контейнерами и балансерами огород городить.
Edited Date: 2023-04-04 09:06 pm (UTC)

Date: 2023-04-04 09:04 pm (UTC)
From: [identity profile] dzz.livejournal.com

С миром 1C я сталкивался только через веб-сервисы, полагаю, что более близкое знакомство чревато психическими травмами :)

Вообще, BITO доступен в виде плагина к VSCode, так что поставь и задай тот самый вопрос :)))

Date: 2023-04-04 09:19 pm (UTC)
From: [identity profile] dzz.livejournal.com

Ну, это предубеждение.


У меня есть большой бизнес-проект на PHP с бэком примерно в 50-60 тысяч строк, который живёт уже 4 года и умирать не собирается. Внутри — ни разу не бейсик, а довольно стройная объектная модель :)


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

Edited Date: 2023-04-04 09:20 pm (UTC)

Date: 2023-04-04 09:26 pm (UTC)
From: [identity profile] dzz.livejournal.com

В другом проекте мы в последние два года убили много времени на то, чтобы сделать быстрый горизонтально масштабируемый бэк на питоне, в итоге, пришлось всё это выкинуть и реализовать скалируемую архитектуру на REDIS-е и С++. Ибо "не приспособлены кролики для лазания по деревьям", при всей моей любви к питону как языку.

Edited Date: 2023-04-04 09:28 pm (UTC)

Date: 2023-04-05 08:01 am (UTC)
From: [identity profile] parakhod.livejournal.com

Имидж уже, имидж. И да, всё так, школота картину портит.
А так разумеется можно на любом стеке нормально сделать, а можно и лапши накрутить.

Date: 2023-04-05 08:08 am (UTC)
From: [identity profile] parakhod.livejournal.com

Скриптовые языки в принципе не предназначены для написания бэкендов. Они не масштабируются ни вширь ни вверх более чем никак. И питон ещё ничего — node вот что самая жирная порнография. Один тред, синхронные блокирующие нативные методы — ужос. Зато порог вхождения даже ниже чем в питоне, тамушта жабаскрипт.

Для скалинга опять же сейчас в восторге от Elixir/Erlang на OTP, там это всё делается вполне себе нативно, да и общий стейт реализуется несколькими способами дающими разные удобства, так что никаких ни редисов ни кубернетесов не надо.

Date: 2023-04-05 08:26 am (UTC)
From: [identity profile] dzz.livejournal.com

Порог вхождения — штука обманчивая.


Спросишь, бывало, на интервью: "а хорошо ли вы знаете питон?"


"Зашибись, как хорошо знаю", отвечают.


"А про asyncio и корутины расскажите, плиз!"


"А что это?"

:)



Вообще, масштабируемость — не свойство языка, а свойство архитектуры. На python-е очень удобно прототипировать, у меня вся песочница по большей части на нём. А в продакшен идёт код, язык для которого выбирается вдумчиво.

Date: 2023-04-05 08:28 am (UTC)
From: [identity profile] parakhod.livejournal.com

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

Date: 2023-04-05 08:32 am (UTC)
From: [identity profile] dzz.livejournal.com

> никаких ни редисов ни кубернетесов не надо.


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

Date: 2023-04-05 08:35 am (UTC)
From: [identity profile] dzz.livejournal.com

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


Ну и утильки, да :)

Date: 2023-04-05 08:37 am (UTC)
From: [identity profile] parakhod.livejournal.com

Ну да, редис — отличный кэш, пользую иногда.


Но (опять продолжу нахваливать, извини) в эликсире есть отличный механизм GenServer, который тебе позволяет очень гибкие стейты делать, быстрые, асинхронные, с разнообразными подписками и прочими плюшками.
А ещё сейчас копаю Elixir Nerves для embedded, тоже прикольная крайне вещица. Хватит уже сей что с плюсами что без ))

Date: 2023-04-05 08:48 am (UTC)
From: [identity profile] dzz.livejournal.com

Мне кажется, что тянуть в embedded-платформы при их ограниченной памяти виртуальные байткодные машины — так себе идея. У меня есть не сказать чтобы положительный опыт с microPython-ом на том же nrf52, С++ с Зефирками в 64кб RAM работают лучше :)

Опять таки, весьма приятные и богатые нордиковские либы переписывать на эликсир кто будет?

Date: 2023-04-05 08:55 am (UTC)
From: [identity profile] parakhod.livejournal.com

Тут прелесть именно в том что оно функциональное (питон всё-таки процедурный, так что от сей разницы большой нет). Да, разумеется за счёт увеличения прожорливости в плане памяти и некоторой потери скорости, но надёжность и устойчивость возрастает в разы.
Ну и nerves линух нужен, так что это не для мк, а для мелких SoC, всяких RPi и прочих коробчонок-роутеров-насов.

Date: 2023-04-05 09:01 am (UTC)
From: [identity profile] dzz.livejournal.com

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


Моё знакомство с эрлангом началось с того, что я написал функцию расчёта факториала, запустил её с аргументом -1, и она рекурсивно и многопоточно съела всю оперативную память :)

Date: 2023-04-05 09:20 am (UTC)
From: [identity profile] parakhod.livejournal.com
Ну так рекурсии должны быть tail-optimized.
Ушло бы по-человечески в infinite loop ))

December 2025

S M T W T F S
  12 3456
7 8 9 10 11 1213
14151617181920
21222324252627
28 29 3031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 31st, 2025 11:34 pm
Powered by Dreamwidth Studios