diff options
Diffstat (limited to '')
-rw-r--r-- | 2023/talks/eval.md | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/2023/talks/eval.md b/2023/talks/eval.md new file mode 100644 index 00000000..0758cc7a --- /dev/null +++ b/2023/talks/eval.md @@ -0,0 +1,77 @@ +[[!meta title="Editor Integrated REPL Driven Development for all languages"]] +[[!meta copyright="Copyright © 2023 Musa Al-hassy"]] +[[!inline pages="internal(2023/info/eval-nav)" raw="yes"]] + +<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing --> +<!-- You can manually edit this file to update the abstract, add links, etc. ---> + + +# Editor Integrated REPL Driven Development for all languages +Musa Al-hassy (he/him) - Pronunciation: moo seh, <http://alhassy.com/> <https://github.com/alhassy>, <mailto:Alhassy@gmail.com> + +[[!inline pages="internal(2023/info/eval-before)" raw="yes"]] + +Emacs’ C-x C-e is arguably one of its killer features: The ability to run +arbitrary Lisp code, anywhere. We demonstrate that the **idea** is portable +to other languages [0, 1]. The result is an Emacs interface for any +language, where code of your choosing is evaluated, and results are echoed +at your cursor in overlays. We will demonstrate how to solve simple +problems such as FizzBuzz in a RDD style using, say, Java or any language +that the audience chooses. We will also look quickly at "growing programs" +such as a photo gallery application, starting from scratch. Along the way, +we discuss what features make a RDD system pleasant and how they can be +implemented with our system. Finally, we conclude with how this RDD setup +allows for inserting results of a computation as a use case for writing +tests —i.e., we we show how user-definitions of a read protocol (the 'R' +of 'REPL') can result in an analog of C-u C-x C-e. + +[0] 💐 Repl Driven Development: Editor Integrated REPLs for all languages 🔁 + +<http://alhassy.com/repl-driven-development> + +[1] REPL Driven Development :: Teaching a JavaScript runtime, +incrementally, to be a web server 🍽️ 🔁 � + +<https://youtu.be/b6Z3NQVn4lY?si=MTMJDSdzszhbA267> + +About the speaker: + +Musa is an Emacs afficando. His day job is with Java, but his heart is with +Lisp. His experience with interactive programming is only with Agda [2] +and Emacs Lisp [3], and both [4]. + +[2] Graphs are to categories as lists are to monoids + +http://alhassy.com/PathCat.html + +[3] A Life Configuring Emacs + +http://alhassy.com/emacs.d/ + +[4] Making Modules with Meta-Programmed Meta-Primitives +http://alhassy.com/next-700-module-systems/prototype/package-former.html + +# Discussion + +## Questions and answers + +- Q: I know that there are many packages for creating graphics with + Javascript, but I don't know how to use any of them... is it + possible to use your package to create graphics in Javascript step + by step from Emacs? + - A: +- Q: Can you summarize what languages your packages support and do you + have a common framework for interfacing to their interpreters? + - A: +- Q: Did you get the job? =) Did the interviewer have any feedback + about your screen-sharing-driven development? + - A: +- Q: Could you compare your package to Language Servers (LSP)? They + seem to have similar functionality to your package. + - A: + +[[!inline pages="internal(2023/info/eval-after)" raw="yes"]] + +[[!inline pages="internal(2023/info/eval-nav)" raw="yes"]] + + |