[[!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"]] # Editor Integrated REPL Driven Development for all languages Musa Al-hassy (he/him) - Pronunciation: moo seh, , [[!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 🔁 [1] REPL Driven Development :: Teaching a JavaScript runtime, incrementally, to be a web server 🍽️ 🔁 � 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"]]