Привет, автобусным айтишникам и прочим линуксоидам, анимешникам и энтузиастам. Помогайте!
Никто не знает из вас такого сайта, который бы позволял:
1) написать snippet кода
2) не быть просто тупым терминалом реализованным на вебе, иметь хотя бы базовые возможности ввода, html форм связанных с кодом. И, опционально, вывода: картинки, html/markdown-таблицы.
3) иметь из этого ссылку, которая позволит потом любому мимокрокодилу запустить этот код со своим input-ом.
По backend'y этого самого кода. Устроит хоть js браузера, хоть nodejs, Ruby. Но не грёбанный Python.
Я не знаю, непривычен к питону, не знаком с его инфраструктурой "батареек" (pip), мне не нравятся его типы данных, не нравятся эти ужасающие list comprehensions и лямбды, превращающие код в какую-то обратно-закрученную спираль со вложенностями, не нравится то, что мануипуляции с простыми типами данных реализованы функциями, будто в php, например:
Ruby: 5.to_s => "5"
Javascript: (5).toString() => "5"
Python: str(5)
Ruby: [...].filter{тут лямбда (блок)}
Javascript: [...].filter(тут лямбда)
Python: filter(lambda, [...])
Это опять создаёт убогую вложенность в скобочки там, где не надо. Ну вы поняли про питон.
Так что приходит на ум? Очевидный Jupyter notebooks. Для публикаций в интернет — есть MyBinder.
Но с ним проблема, он питонячий до мозга костей.
Одним из самых больших недостатков Jupyter является то, что все фишки блокнота, формы ввода и прочее зависят от kernel языка. Если он ограничено-рализован, например, это не такой популярный язык, как Python, то вы не сможете получить даже простую функциональность ввода и передачи текстовых строк в вашу функцию/метод. Все это есть только в Python, поэтому нет никакого смысла запускать свой код в Jypter, потому что он превращается просто в тупой терминал, реализованный на вебе.
Например, для единственного kernel для Ruby реализован IRuby::Input и IRuby::Form, костылики напоминающие ipywidgets.
И оно не работает в свежем Jupyter Lab.
Есть вот такое, https://vatlab.github.io/blog/post/sos-notebook/.
Поддерживает и js и ruby, вместе с python-ом. Умеет передавать данные между языками. Тут моя идея в том, что python Будет рисовать виджеты, а данными будет манипулировать другой язык. Должно работать...
Но интеграции в одно как-то нет или я не знаю где лежит такой docker-файл.
Есть отдельно Ruby: https://github.com/RubyData/binder/blob/master/Dockerfile
Отдельно SOS: https://github.com/vatlab/jupyterlab-sos
В sos-блокноте выше приходится отдельно вручную включать kernelspec, а других языков нет.
Надо как-то объединить одно с другим. Но рубишный блокнот собирается из докер-образа rubydata/datascience-notebook:24c07e436ac4 (https://github.com/RubyData/binder/blob/master/Dockerfile). Не понимаю, как посмотреть, что там внутри, чтобы модифициовать. Застрял.
Дальше приходят на ум проприетарные Jupyter'ы. Google colab, Azure notebooks. Почему не подходят, очевидно. $регистрация @ авторизация @ sms.
Кроме jupyter, есть штуки вроде online html-css-js repl: codesandbox.io, repl.it. С ними проблема другая. Там вообще нет "средств ввода" кроме javascript:prompt(), лол. То есть всё делать самому, заканчивая даже css для своей формочки. А это погружение в чудесный мир фронтенда, что бррр.
Собственно, вопрос. Шо делать?