summaryrefslogtreecommitdiffstats
path: root/2023/talks/eval.md
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--2023/talks/eval.md77
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 &#x2014;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"]]
+
+