Здравствуйте, kaa.python, Вы писали:
KP>Да ладно, когда у тебя любое S-выражение можно выполнить на лету, это куда как удобнее. В языках с компиляцией это еще пересборка
Это только в языках курильщика требуется полная пересборка, и эта пересбока занимает существенное время.
KP>, написание теста
Зачем для REPL написание теста?
KP> и т.д., что куда как более трудоемкие задачи на фоне "выполнить S-выражение".
Трудоемкие для кого?
KP> но только REPL до сих пор вне конкуренции в отличие от остальных возможностей.
Ну сделали в дотнете REPL, и? Никто им не пользуется.
Здравствуйте, Ночной Смотрящий, Вы писали:
KP>> но только REPL до сих пор вне конкуренции в отличие от остальных возможностей. НС>Ну сделали в дотнете REPL, и? Никто им не пользуется.
Ожидаемо, REPL действительно хорош только при наличии S-выражений. Во всех остальных случаях лучшее будет уровня Jupyter, что хорошо, но не великолепено.
Здравствуйте, kaa.python, Вы писали:
KP>Ожидаемо, REPL действительно хорош только при наличии S-выражений. Во всех остальных случаях лучшее будет уровня Jupyter, что хорошо, но не великолепено.
Но все равно не пользуются. А Jupyter — пользуются. Так может REPL языкам с проверкой типов не так уж и нужен?
Здравствуйте, Ночной Смотрящий, Вы писали:
НС>Но все равно не пользуются. А Jupyter — пользуются. Так может REPL языкам с проверкой типов не так уж и нужен?
Здравствуйте, kaa.python, Вы писали:
EP>>Есть Hy. Это Lisp с двусторонней совместимостью с Python. Ему доступны все Python'овские библиотеки by-design. KP>Не знаю, Python все же и сам имеет просто прекрасный синтаксис и возможности с одной стороны и улучшения тут врятли нужны
Нормальных лямбд например нет — без них использование ФВП становится более громоздким. В Python либо однострочные lambda, либо многострочные не-лямбда замыкания def fun. В Hy соответственно есть нормальные лямбды.
Ну и макросы конечно же. Собственно во время написания очередной типовой синтаксической конструкции на Python, которую хотелось бы вынести за скобки, а нормально на Python'е никак — поймал себе на мысли что хорошо бы Python с Lisp'омподружить (а-ля Clojure), пошёл в Google и обнаружил Hy
KP>плюс он и так дико тормозной с другой стороны и делать его еще медленнее за счет дополнительной прослойки та еще идея.
Там где Python используется это обычно рояли не играет. Да и макросы в итоге вполне могут быть быстрее встроенных аналогов.
Здравствуйте, kaa.python, Вы писали:
EP>>По части обратной связи при "игре с кодом", юнит тесты (в том числе на C++, ага) ничем не уступают — написал строчку, нажал кнопку (или настроил авто-запуск) и через мгновение получаешь результат KP>Да ладно, когда у тебя любое S-выражение можно выполнить на лету, это куда как удобнее.
Не любое, так как у него может быть много параметров — и весь этот контекст нужно воссоздать.
KP>В языках с компиляцией это еще пересборка,
Переборка одного юнит-теста это обычно очень быстро, даже на C++.
KP>написание теста и т.д.,
Так его и не нужно писать. У тебя либо уже есть готовая песочница в которую ты переходишь по одной кнопке/команде.
Либо если этот тест планируется оставить — запускаешь одну команду которая спросит имя и весь этот boilerplate создаст за тебя, да ещё и курсор в нужное место переведёт.
Здравствуйте, Dair, Вы писали: D>Хотел было в веб-программирование, но там трут за фронтенд, решил сюда. D>Я в основном умею в C++, но пишу ещё на Swift и Kotlin.
"хорошо ложка к обеду"
написать на kotlin ,потом, если нужно будет, нанять обезьян которые перепишут на ноде
Здравствуйте, Evgeny.Panasyuk, Вы писали:
EP>Так его и не нужно писать. У тебя либо уже есть готовая песочница в которую ты переходишь по одной кнопке/команде. EP>Либо если этот тест планируется оставить — запускаешь одну команду которая спросит имя и весь этот boilerplate создаст за тебя, да ещё и курсор в нужное место переведёт.
Здравствуйте, kaa.python, Вы писали:
KP>А что такие волшебные вещи в Emacs умеет делать!? EP>>У тебя либо уже есть готовая песочница в которую ты переходишь по одной кнопке/команде.
Это обычные закладки.
EP>>Либо если этот тест планируется оставить — запускаешь одну команду которая спросит имя и весь этот boilerplate создаст за тебя, да ещё и курсор в нужное место переведёт.
Это 5-10 строчек Lisp'а — спрашиваешь у пользователя название теста, копируешь файл-шаблон теста в нужное место, заменяешь плейсхолдеры в шаблоне на то что ввёл пользователь, и переходишь на нужную строчку.
Вместо файла-шаблона можно открыть пустой файл и вставить нужный yasnippet.
Но это можно и без Emacs — обычным внешним скриптом, последней командой которого отрываешь файл теста на нужной строке в нужном редакторе.
Здравствуйте, Ночной Смотрящий, Вы писали:
НС>Ты не в ту степь пошел совсем. Причина намного проще — почти всегда клиентов у сервера существенно больше, чем имеет смысл делать потоков выполнения.
При условии тяжеловесности переключения потоков ср-вами ОС, иначе не принципиально.