summaryrefslogtreecommitdiffstats
path: root/2021/talks/imaginary.md
blob: a5416c28a9e10f6abefb37c3d4b90ba309ecf85a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
[[!meta title="Imaginary Programming"]]
[[!meta copyright="Copyright © 2021 Shane Mulligan"]]
[[!inline pages="internal(2021/info/imaginary-nav)" raw="yes"]]

<!-- You can manually edit this file to update the abstract, add links, etc. --->


# Imaginary Programming
Shane Mulligan



[[!inline pages="internal(2021/info/imaginary-schedule)" raw="yes"]]

Imaginary Programming (IP) is both methodology and paradigm. It is an
extension of literate programming and a way of creating software without
the use of imperative, functional or even declarative code. Yet IP employs
all disciplines to achieve the miraculous. The only contingency is on one
or more language models, known as foundation models. The real value of IP
is not found by abandoning sound logic altogether, but in weaving the real
with the imaginary. The future of imaginary programming is one in which
almost all of computing is inferred. I have built a suite of tools based on
emacs for interfacing real programming languages with imaginary ones; all
of this in order to demonstrate what I mean; a ‘complex’ terminal that lets
you imagine what happens no matter how nested you are within interpreters,
an example-oriented language, a file format that encodes the provenance of
text and a library for imaginary functional programming primitives called
iLambda. It is important to recognise IP because, for lack of a better
term, it has far-reaching implications for intellectual property and the
GPL. Please keep an open mind.

# Discussion

IRC nick: libertyprime

- What Shane is saying right now reminds me a lot of the SICP opening words, about how programming, and computing ideas in general are all about dreams and magic. Creating an idealized solution from abstractions and building blocks.
- This also reminds me of the concept of Humane Tech. Technology, and frameworks that are inherently conducive to human curiosity, intelligent, and all the best traits. <https://github.com/humanetech-community/awesome-humane-tech>
- I think this is like semantic auto-complete on steroids, like tab completion of whatever your typing, or translation of something you've written into code for instance.
- If you're worried about these kind of advances in AI, just remind yourself of how easily technology breaks
- oh my god, executing code derived directly from GPT-3?! that's *lunatic*  curl | bash, eat your heart out
- idefun definitely helped by a docstring
  - yeah that's a use-case, gen from docstring
- Man, I really think it would be awesome to have shane be able to explain some of these ideas more in depth as they are obviously very deep topics. I'd love to help contribute next year to possibly creating a way to have multiple talks going on at once so people have more time to speak. I believe it was sachac who mentioned it yesterday.
- This vaguely reminds me of that one Python package that generates a CLI parser from the help string except that that python package actually made sense
-  re slide 27, would it mean that 2 such "idefined" function would be the "same", meaning do the same thing the same way, given that they are defined without a "body"?
- the full abstraction would look something like an interactive proof program where you could repeatedly refine the results until it matched what the user wanted
- it started incomprehensible and then moved straight to impossible magic.
- wow...mind blown even though that went by a bit too quick.
- Hmm, I do think we could do test-driven imaginary programming tho i.e. you only define the ERT testcases and then do the rest with idefun
- So `(imacro with-clifford-algebra (p q r))` would just "work"... this does feel too magical
- I am really happy that someone is trying Deep Learning stuff *with* emacs and not just for writing Python code :D
- well I've had pretty good success with GPT-3, I think this also supports GPT-j which is I think free/libre.
- most users of GPT-3 do it via calls to a web api
- is it still invite only?
  - no, it's been opened recently



# Outline

-   5-10 minutes:
-   a 5 minute introduction to imaginary programming, followed by
    -   a demonstration of iLambda.
        -   iλ, a family of imaginary programming libraries
        <https://mullikine.github.io/posts/designing-an-imaginary-programming-ip-library-for-emacs/>

<!--20 minutes:

-   a 5 minute introduction to imaginary programming, followed by
    
    -   a 5 minute introduction and demonstration of Pen.el.
        -   <https://semiosis.github.io/pen/>
    -   a 5 minute org-babel and emacs lisp demonstration of iLambda.
        
        -   iλ, a family of imaginary programming libraries
        
        <https://mullikine.github.io/posts/designing-an-imaginary-programming-ip-library-for-emacs/>
    -   a 5 minute demonstration of ‘cterm’ (complex term) and ‘ii’
    
    (imaginary interpreter).
    
    -   <https://mullikine.github.io/posts/imaginary-real-codex-complex/>
    -   <https://semiosis.github.io/ii/>
    
    -

40 minutes:

-   a 10 minute introduction to language models, their capabilities and
    imaginary programming.
    
    -   a 10 minute introduction to creating prompts with Pen.el.
    -   a 5 minute org-babel and emacs lisp demonstration of iLambda.
        
        -   iλ, a family of imaginary programming libraries
        
        <https://mullikine.github.io/posts/designing-an-imaginary-programming-ip-library-for-emacs/>
    -   a 5 minute demonstration of ‘cterm’ (complex term) and ‘ii’
    
    (imaginary interpreter).
    
    -   <https://mullikine.github.io/posts/imaginary-real-codex-complex/>
    -   <https://semiosis.github.io/ii/>
    
    -   A 5 minute brief on examplary and advanced prompt programming.
        -   <https://semiosis.github.io/examplary/>
    -   5 minutes for Prompting Requests and Q&A

Availability

(during the conference days (Nov 27 and 28))

All hours.

How you’d like to handle questions

Live web conference

--->

IRC libertyprime at #emacs on libera

Shane Mulligan

## Links

- Pen.el Tutorial: <https://semiosis.github.io/posts/pen-el-tutorial/>

[[!inline pages="internal(2021/captions/imaginary)" raw="yes"]]

[[!inline pages="internal(2021/info/imaginary-nav)" raw="yes"]]