瀏覽代碼

WIP commit

Lily Carpenter 9 年之前
父節點
當前提交
072edac2e9
共有 4 個文件被更改,包括 516 次插入12 次删除
  1. 41 1
      auto/presentation.el
  2. 182 4
      presentation.org
  3. 二進制
      presentation.pdf
  4. 293 7
      presentation.tex

+ 41 - 1
auto/presentation.el

@@ -37,11 +37,51 @@
37 37
    (LaTeX-add-labels
38 38
     "sec-1"
39 39
     "sec-1-1"
40
+    "sec-1-2"
41
+    "sec-1-3"
40 42
     "sec-2"
43
+    "sec-2-1"
44
+    "sec-2-2"
45
+    "sec-2-3"
46
+    "sec-2-4"
47
+    "sec-2-5"
48
+    "sec-2-6"
49
+    "sec-2-7"
50
+    "sec-2-8"
51
+    "sec-2-8-1"
52
+    "sec-2-8-2"
53
+    "sec-2-9"
54
+    "sec-2-9-1"
55
+    "sec-2-9-2"
41 56
     "sec-3"
57
+    "sec-3-1"
58
+    "sec-3-2"
59
+    "sec-3-3"
60
+    "sec-3-4"
61
+    "sec-3-5"
42 62
     "sec-4"
63
+    "sec-4-1"
64
+    "sec-4-2"
65
+    "sec-4-3"
43 66
     "sec-5"
67
+    "sec-5-1"
68
+    "sec-5-2"
69
+    "sec-5-3"
44 70
     "sec-6"
45
-    "sec-7"))
71
+    "sec-6-1"
72
+    "sec-6-2"
73
+    "sec-6-3"
74
+    "sec-7"
75
+    "sec-7-1"
76
+    "sec-7-2"
77
+    "sec-7-3"
78
+    "sec-8"
79
+    "sec-8-1"
80
+    "sec-8-2"
81
+    "sec-9"
82
+    "sec-9-1"
83
+    "sec-9-2"
84
+    "sec-10"
85
+    "sec-10-1"))
46 86
  :latex)
47 87
 

+ 182 - 4
presentation.org

@@ -17,12 +17,190 @@
17 17
 #+LaTeX_CLASS_OPTIONS: [bigger]
18 18
 #+BEAMER_FRAME_LEVEL: 2
19 19
 #+COLUMNS: %40ITEM %10BEAMER_env(Env) %9BEAMER_envargs(Env Args) %4BEAMER_col(Col) %10BEAMER_extra(Extra)
20
+#+latex_header: \AtBeginSection[]{\begin{frame}<beamer>\frametitle{Topic}\tableofcontents[currentsection]\end{frame}}
20 21
 * Introduction
21
-** A simple slide
22
-I've got text baby
22
+** All about me
23
+- I do NOT use lisp at work. I write ruby (on rails) and javascript
24
+- I have only been part of the lisp community for a couple years
25
+- I am most experienced with Common Lisp, Emacs Lisp, and Clojure
26
+- I have played with Guile briefly
27
+- I have a blog at [[https://azrazalea.net][azrazalea.net]] and git repositories on [[https://gitlab.com/azrazalea/][gitlab]]
28
+- This presentation is on gitlab at [[https://gitlab.com/azrazalea/state-of-lisp-family]]
29
+** A very very brief history
30
+- Lisp(NOT common lisp) was first specified in 1958
31
+- Many many dialects of Lisp have appeared over the years. See [[https://en.wikipedia.org/wiki/Lisp_(programming_language)][wikipedia]]
32
+- The general hallmark of a Lisp is its s-expression based syntax (informally SO MANY PARENTHESES!!!)
33
+- Originally heavily used in academic circles and AI
34
+- Now, aside from Clojure, mostly limited to eccentrics
35
+** Why care about lisp?
36
+- First and foremost lisp is FUN
37
+- S expressions are very freeing once you get used to them (and have a good editor)
38
+- A very smart, though not always friendly, community
23 39
 * Common Lisp
24
-* CLASP
25
-* ECL
40
+** Brief History
41
+- Work started in 1981, draft published 1984, 2nd draft 1990, final standard 1994
42
+- The language itself has not changed since this standard was published
43
+- Language improvements done as implementation specific extensions
44
+- Many things can be implemented as macros/reader-macros and shipped as libraries
45
+- [[https://www.quicklisp.org/beta/][Quicklisp]] (a library manager) released in October 2010
46
+** Implementations
47
+- There are many different implementations of the CL standard
48
+- Commercial: Allergro CL, LispWorks
49
+- Open Source: ABCL, Clasp, Clozure CL, CLISP, CMUCL, ECL, MKCL, SBCL and more
50
+- Popular free ones are SBCL and CCL(Clozure CL). Both fast and cross platform
51
+** Features
52
+- CLOS (Common Lisp Object System)
53
+- Pretty much every standard data structure
54
+- Optional tail call optimization
55
+- Robust package (think namespace) system
56
+- Build manager (asdf)
57
+- Library manager (quicklisp)
58
+- Fast with the right implementation
59
+** Problems
60
+- Old and crotchety (community and language)
61
+- Sometimes large differences between implementations (usually patched over with a cross-implementation library)
62
+- Some simple things baked into most modern langs are implementation specific (threads, garbage collection, FFI, Networking stuff, OS stuff)
63
+** Projects
64
+- Pretty much everything new on my gitlab
65
+- Mcclim [[https://github.com/robert-strandh/McCLIM]] cross platform GUI/Windowing library
66
+- Lots of game programming libraries at [[https://github.com/lispgames]]
67
+- See [[http://eudoxia.me/article/common-lisp-sotu-2015]] "State of the Common Lisp Ecosystem, 2015"
68
+- Libraries for almost everything you'll want to do
69
+** Real world uses
70
+- Used at grammarly [[https://www.grammarly.com/]] [[http://tech.grammarly.com/blog/posts/Running-Lisp-in-Production.html]]
71
+- Open source Evernote alternative https://turtl.it/. Server is in Common Lisp
72
+- Commercial examples at [[http://franz.com/success/]] and [[http://www.lispworks.com/success-stories/index.html]]
73
+- There seems to actually be quite a bit of it, just not advertised and generally closed source.
74
+- See [[https://lispjobs.wordpress.com/]]
75
+** Resources
76
+- Practical Common Lisp [[http://gigamonkeys.com/book/]]
77
+- Common Lisp Recipes (for after PCL) [[http://weitz.de/cl-recipes/]]
78
+- Land of Lisp (fun alternative to PCL [love the comics]) http://landoflisp.com/
79
+- Common lisp hyperspec [[http://www.lispworks.com/documentation/HyperSpec/Front/index.htm]]
80
+- Duckduckgo hyperspec search with !clhs
81
+- For the love of lisp, use Emacs + SLIME(or the newer sly) as your REPL even if not your editor
82
+** CLASP
83
+*** Purpose
84
+- "Seamless" integration with C++ using LLVM.
85
+- Speed and power of existing C++ code combined with the rapid prototyping, incremental dev, and other common lisp advantages.
86
+*** Projects
87
+- Mostly academic use so far.
88
+- Read creator's blog here: [[https://drmeister.wordpress.com/]]
89
+- I don't know of any production use cases yet, but it is pretty cool!
90
+** ECL
91
+*** Purpose
92
+- Supports many platforms (Linux, FreeBSD, NetBSD, OpenBSD, OS X, Solaris, Windows on Intel, Sparc, Alpha, PowerPC, and Arm)
93
+- Extremely portable with small and fast binaries.
94
+- Can be called like a C library with no FFI
95
+- Can call C functions with no FFI
96
+*** Projects
97
+- ECL on Android with libsdl for 3d game programming [[https://gitlab.com/dto/ecl-android-games-src]]
98
+- Various people working on general purpose projects. ECL is a full common lisp
99
+- See [[https://common-lisp.net/project/ecl/]]
100
+* Clojure
101
+** Brief History
102
+- Created by Rich Hickey
103
+- Original public release 2007-10-16
104
+- First stable release (1.0) 2009-05-04
105
+- Latest version 1.8
106
+** Backends
107
+- Java, the original and most supported
108
+- Javascript, (clojurescript) official and run by David Nolen
109
+- Various others in various states of support
110
+** Purpose
111
+- See [[http://clojure.org/about/rationale]]
112
+- Basically wanted A lisp for functional programming symbiotic with Java and designed for concurrency.
113
+** Features
114
+- Immutability focused
115
+- Very good java/javascript interop
116
+- All the bells and whistles you'd expect with a modern language
117
+- Functional programming "only" (I consider this an anti-feature personally)
118
+** Projects
119
+- Can you think of it? Someone has probably done it in Clojure
120
+- Heavily used for backend web services so far
121
+- Climate Corporation (our location sponsor) is a heavy user for production
122
+- Walmart, Puppet Labs, Thoughtworks are some big companies using Clojure
123
+- Lot of the cool stuff is in Clojurescript land like Om and Reagent
26 124
 * Racket Scheme
125
+** Brief History
126
+- Originally PLT Scheme
127
+- First appeared in 1994
128
+- Renamed Racket 2010-06-07
129
+** Features
130
+- Lots and lots of friendly libraries and documentation
131
+- Ships with IDE Dr. Racket
132
+- Lots of learning/teaching resources, especially for kids
133
+- Designed to be very easy to get up and running and make simple programs
134
+- General purpose, does not force you into a particular paradigm
135
+** Projects
136
+- Naughty Dog uses Racket in Uncharted, The Last of Us, etc
137
+- Racket controls a huge telescope in New Mexico
138
+- Arc (see later slides) implemented in Racket
139
+- Watch the Racketcon videos or go to Racketcon for more information!
140
+- Racketcon is right after the STL Strangeloop Conference!
27 141
 * Guile Scheme
142
+** Brief History
143
+- Began work in 1993
144
+- Originally GEL or GNU Extension Language
145
+- Designed as a spiritual and cleaner successor to Emacs lisp
146
+- Development languished until Andy Wingo took over in 2009/2010
147
+- Guile 2.0 in 2011 revitalized the language with many improvements
148
+- Since 2.0 there have been many incremental improvements to the language
149
+** Features
150
+- Very embed-able, designed for a polyglot environment
151
+- Full featured, lots of batteries included libraries
152
+- Easy to use C API that goes both ways
153
+- Support for writing in other languages that compile to Guile including ecmascript, emacs lisp, and WIP for lua
154
+** Projects
155
+- Mostly GNU projects as it is the official GNU extension language
156
+- Project in progress to replace Emacs Lisp with guile, but community is split
157
+- GNU Guix & GuixSD (cool nix-like package manager and distribution)
158
+- GnuCash
159
+- gEDA
160
+- GDB
161
+- Artanis web framework (pretty new) [[http://web-artanis.com/]]
162
+- Sly game programming framework [[https://dthompson.us/pages/software/sly.html]]
28 163
 * Chicken Scheme
164
+** Purpose
165
+- Practical and portable
166
+- Wants to bring Scheme out of the academic world and into the industry
167
+- Focus on being simple, fast, and easy to learn
168
+** Features
169
+- Compiles to stand C using the GNU toolchain
170
+- Runs on x86, x86-64, ARM, MIPS, Sparc64, PowerPC, and more
171
+- Well documented in the wiki and manual
172
+- Plenty of libraries and a library manager
173
+- Good FFI
174
+** Projects
175
+- Tehila game engine [[https://wiki.call-cc.org/tehila]]
176
+- Wiki software qwiki [[https://wiki.call-cc.org/egg/qwiki]]
177
+- Really just see [[https://wiki.call-cc.org/Software]]
178
+* Emacs Lisp
179
+** Brief History
180
+- First appeared in 1985
181
+- Based off Maclisp (a now dead lisp dialect)
182
+- Has gradually gained more and more features over the years but no major revisions really
183
+- Considered outdated compared to modern Scheme or Common Lisp
184
+- Some in GNU want to replace with Guile
185
+** Purpose
186
+- Pretty much just for emacs
187
+- Allows easier extensibility than C (which the rest of emacs is written in)
188
+- Definitely NOT designed for general purpose programming
189
+** Projects
190
+- Emacs of course
191
+- Any of the hundreds (thousands?) of emacs packages
192
+- Org mode (this presentation is Org Mode -> Latex + Beamer -> PDF)
193
+- Web servers
194
+- Games
195
+- API glue
196
+- All kinds of fancy IDE features
197
+* Picolisp
198
+** Purpose
199
+** Projects
200
+* Shen
201
+** Purpose
202
+** Thoughts
203
+* Arc
204
+** General notes
205
+- Written by Paul Graham
206
+- Implements Hackernews ([[https://news.ycombinator.com][news.ycombinator.com]])

二進制
presentation.pdf


+ 293 - 7
presentation.tex

@@ -16,6 +16,7 @@
16 16
 \usepackage{amssymb}
17 17
 \usepackage{hyperref}
18 18
 \tolerance=1000
19
+\AtBeginSection[]{\begin{frame}<beamer>\frametitle{Topic}\tableofcontents[currentsection]\end{frame}}
19 20
 \author{Lily Carpenter}
20 21
 \date{2016-07-14}
21 22
 \title{State of the Lisp Family}
@@ -30,20 +31,305 @@
30 31
 
31 32
 \section{Introduction}
32 33
 \label{sec-1}
33
-\subsection{A simple slide}
34
+\subsection{All about me}
34 35
 \label{sec-1-1}
35
-I've got text baby
36
+\begin{itemize}
37
+\item I do NOT use lisp at work. I write ruby (on rails) and javascript
38
+\item I have only been part of the lisp community for a couple years
39
+\item I am most experienced with Common Lisp, Emacs Lisp, and Clojure
40
+\item I have played with Guile briefly
41
+\item I have a blog at \href{https://azrazalea.net}{azrazalea.net} and git repositories on \href{https://gitlab.com/azrazalea/}{gitlab}
42
+\item This presentation is on gitlab at \url{https://gitlab.com/azrazalea/state-of-lisp-family}
43
+\end{itemize}
44
+\subsection{A very very brief history}
45
+\label{sec-1-2}
46
+\begin{itemize}
47
+\item Lisp(NOT common lisp) was first specified in 1958
48
+\item Many many dialects of Lisp have appeared over the years. See \href{https://en.wikipedia.org/wiki/Lisp_(programming_language)}{wikipedia}
49
+\item The general hallmark of a Lisp is its s-expression based syntax (informally SO MANY PARENTHESES!!!)
50
+\item Originally heavily used in academic circles and AI
51
+\item Now, aside from Clojure, mostly limited to eccentrics
52
+\end{itemize}
53
+\subsection{Why care about lisp?}
54
+\label{sec-1-3}
55
+\begin{itemize}
56
+\item First and foremost lisp is FUN
57
+\item S expressions are very freeing once you get used to them (and have a good editor)
58
+\item A very smart, though not always friendly, community
59
+\end{itemize}
36 60
 \section{Common Lisp}
37 61
 \label{sec-2}
38
-\section{CLASP}
62
+\subsection{Brief History}
63
+\label{sec-2-1}
64
+\begin{itemize}
65
+\item Work started in 1981, draft published 1984, 2nd draft 1990, final standard 1994
66
+\item The language itself has not changed since this standard was published
67
+\item Language improvements done as implementation specific extensions
68
+\item Many things can be implemented as macros/reader-macros and shipped as libraries
69
+\item \href{https://www.quicklisp.org/beta/}{Quicklisp} (a library manager) released in October 2010
70
+\end{itemize}
71
+\subsection{Implementations}
72
+\label{sec-2-2}
73
+\begin{itemize}
74
+\item There are many different implementations of the CL standard
75
+\item Commercial: Allergro CL, LispWorks
76
+\item Open Source: ABCL, Clasp, Clozure CL, CLISP, CMUCL, ECL, MKCL, SBCL and more
77
+\item Popular free ones are SBCL and CCL(Clozure CL). Both fast and cross platform
78
+\end{itemize}
79
+\subsection{Features}
80
+\label{sec-2-3}
81
+\begin{itemize}
82
+\item CLOS (Common Lisp Object System)
83
+\item Pretty much every standard data structure
84
+\item Optional tail call optimization
85
+\item Robust package (think namespace) system
86
+\item Build manager (asdf)
87
+\item Library manager (quicklisp)
88
+\item Fast with the right implementation
89
+\end{itemize}
90
+\subsection{Problems}
91
+\label{sec-2-4}
92
+\begin{itemize}
93
+\item Old and crotchety (community and language)
94
+\item Sometimes large differences between implementations (usually patched over with a cross-implementation library)
95
+\item Some simple things baked into most modern langs are implementation specific (threads, garbage collection, FFI, Networking stuff, OS stuff)
96
+\end{itemize}
97
+\subsection{Projects}
98
+\label{sec-2-5}
99
+\begin{itemize}
100
+\item Pretty much everything new on my gitlab
101
+\item Mcclim \url{https://github.com/robert-strandh/McCLIM} cross platform GUI/Windowing library
102
+\item Lots of game programming libraries at \url{https://github.com/lispgames}
103
+\item See \url{http://eudoxia.me/article/common-lisp-sotu-2015} "State of the Common Lisp Ecosystem, 2015"
104
+\item Libraries for almost everything you'll want to do
105
+\end{itemize}
106
+\subsection{Real world uses}
107
+\label{sec-2-6}
108
+\begin{itemize}
109
+\item Used at grammarly \url{https://www.grammarly.com/} \url{http://tech.grammarly.com/blog/posts/Running-Lisp-in-Production.html}
110
+\item Open source Evernote alternative \url{https://turtl.it/}. Server is in Common Lisp
111
+\item Commercial examples at \url{http://franz.com/success/} and \url{http://www.lispworks.com/success-stories/index.html}
112
+\item There seems to actually be quite a bit of it, just not advertised and generally closed source.
113
+\item See \url{https://lispjobs.wordpress.com/}
114
+\end{itemize}
115
+\subsection{Resources}
116
+\label{sec-2-7}
117
+\begin{itemize}
118
+\item Practical Common Lisp \url{http://gigamonkeys.com/book/}
119
+\item Common Lisp Recipes (for after PCL) \url{http://weitz.de/cl-recipes/}
120
+\item Land of Lisp (fun alternative to PCL [love the comics]) \url{http://landoflisp.com/}
121
+\item Common lisp hyperspec \url{http://www.lispworks.com/documentation/HyperSpec/Front/index.htm}
122
+\item Duckduckgo hyperspec search with !clhs
123
+\item For the love of lisp, use Emacs + SLIME(or the newer sly) as your REPL even if not your editor
124
+\end{itemize}
125
+\subsection{CLASP}
126
+\label{sec-2-8}
127
+\begin{enumerate}
128
+\item Purpose
129
+\label{sec-2-8-1}
130
+\begin{itemize}
131
+\item "Seamless" integration with C++ using LLVM.
132
+\item Speed and power of existing C++ code combined with the rapid prototyping, incremental dev, and other common lisp advantages.
133
+\end{itemize}
134
+\item Projects
135
+\label{sec-2-8-2}
136
+\begin{itemize}
137
+\item Mostly academic use so far.
138
+\item Read creator's blog here: \url{https://drmeister.wordpress.com/}
139
+\item I don't know of any production use cases yet, but it is pretty cool!
140
+\end{itemize}
141
+\end{enumerate}
142
+\subsection{ECL}
143
+\label{sec-2-9}
144
+\begin{enumerate}
145
+\item Purpose
146
+\label{sec-2-9-1}
147
+\begin{itemize}
148
+\item Supports many platforms (Linux, FreeBSD, NetBSD, OpenBSD, OS X, Solaris, Windows on Intel, Sparc, Alpha, PowerPC, and Arm)
149
+\item Extremely portable with small and fast binaries.
150
+\item Can be called like a C library with no FFI
151
+\item Can call C functions with no FFI
152
+\end{itemize}
153
+\item Projects
154
+\label{sec-2-9-2}
155
+\begin{itemize}
156
+\item ECL on Android with libsdl for 3d game programming \url{https://gitlab.com/dto/ecl-android-games-src}
157
+\item Various people working on general purpose projects. ECL is a full common lisp
158
+\item See \url{https://common-lisp.net/project/ecl/}
159
+\end{itemize}
160
+\end{enumerate}
161
+\section{Clojure}
39 162
 \label{sec-3}
40
-\section{ECL}
41
-\label{sec-4}
163
+\subsection{Brief History}
164
+\label{sec-3-1}
165
+\begin{itemize}
166
+\item Created by Rich Hickey
167
+\item Original public release 2007-10-16
168
+\item First stable release (1.0) 2009-05-04
169
+\item Latest version 1.8
170
+\end{itemize}
171
+\subsection{Backends}
172
+\label{sec-3-2}
173
+\begin{itemize}
174
+\item Java, the original and most supported
175
+\item Javascript, (clojurescript) official and run by David Nolen
176
+\item Various others in various states of support
177
+\end{itemize}
178
+\subsection{Purpose}
179
+\label{sec-3-3}
180
+\begin{itemize}
181
+\item See \url{http://clojure.org/about/rationale}
182
+\item Basically wanted A lisp for functional programming symbiotic with Java and designed for concurrency.
183
+\end{itemize}
184
+\subsection{Features}
185
+\label{sec-3-4}
186
+\begin{itemize}
187
+\item Immutability focused
188
+\item Very good java/javascript interop
189
+\item All the bells and whistles you'd expect with a modern language
190
+\item Functional programming "only" (I consider this an anti-feature personally)
191
+\end{itemize}
192
+\subsection{Projects}
193
+\label{sec-3-5}
194
+\begin{itemize}
195
+\item Can you think of it? Someone has probably done it in Clojure
196
+\item Heavily used for backend web services so far
197
+\item Climate Corporation (our location sponsor) is a heavy user for production
198
+\item Walmart, Puppet Labs, Thoughtworks are some big companies using Clojure
199
+\item Lot of the cool stuff is in Clojurescript land like Om and Reagent
200
+\end{itemize}
42 201
 \section{Racket Scheme}
43
-\label{sec-5}
202
+\label{sec-4}
203
+\subsection{Brief History}
204
+\label{sec-4-1}
205
+\begin{itemize}
206
+\item Originally PLT Scheme
207
+\item First appeared in 1994
208
+\item Renamed Racket 2010-06-07
209
+\end{itemize}
210
+\subsection{Features}
211
+\label{sec-4-2}
212
+\begin{itemize}
213
+\item Lots and lots of friendly libraries and documentation
214
+\item Ships with IDE Dr. Racket
215
+\item Lots of learning/teaching resources, especially for kids
216
+\item Designed to be very easy to get up and running and make simple programs
217
+\item General purpose, does not force you into a particular paradigm
218
+\end{itemize}
219
+\subsection{Projects}
220
+\label{sec-4-3}
221
+\begin{itemize}
222
+\item Naughty Dog uses Racket in Uncharted, The Last of Us, etc
223
+\item Racket controls a huge telescope in New Mexico
224
+\item Arc (see later slides) implemented in Racket
225
+\item Watch the Racketcon videos or go to Racketcon for more information!
226
+\item Racketcon is right after the STL Strangeloop Conference!
227
+\end{itemize}
44 228
 \section{Guile Scheme}
45
-\label{sec-6}
229
+\label{sec-5}
230
+\subsection{Brief History}
231
+\label{sec-5-1}
232
+\begin{itemize}
233
+\item Began work in 1993
234
+\item Originally GEL or GNU Extension Language
235
+\item Designed as a spiritual and cleaner successor to Emacs lisp
236
+\item Development languished until Andy Wingo took over in 2009/2010
237
+\item Guile 2.0 in 2011 revitalized the language with many improvements
238
+\item Since 2.0 there have been many incremental improvements to the language
239
+\end{itemize}
240
+\subsection{Features}
241
+\label{sec-5-2}
242
+\begin{itemize}
243
+\item Very embed-able, designed for a polyglot environment
244
+\item Full featured, lots of batteries included libraries
245
+\item Easy to use C API that goes both ways
246
+\item Support for writing in other languages that compile to Guile including ecmascript, emacs lisp, and WIP for lua
247
+\end{itemize}
248
+\subsection{Projects}
249
+\label{sec-5-3}
250
+\begin{itemize}
251
+\item Mostly GNU projects as it is the official GNU extension language
252
+\item Project in progress to replace Emacs Lisp with guile, but community is split
253
+\item GNU Guix \& GuixSD (cool nix-like package manager and distribution)
254
+\item GnuCash
255
+\item gEDA
256
+\item GDB
257
+\item Artanis web framework (pretty new) \url{http://web-artanis.com/}
258
+\item Sly game programming framework \url{https://dthompson.us/pages/software/sly.html}
259
+\end{itemize}
46 260
 \section{Chicken Scheme}
261
+\label{sec-6}
262
+\subsection{Purpose}
263
+\label{sec-6-1}
264
+\begin{itemize}
265
+\item Practical and portable
266
+\item Wants to bring Scheme out of the academic world and into the industry
267
+\item Focus on being simple, fast, and easy to learn
268
+\end{itemize}
269
+\subsection{Features}
270
+\label{sec-6-2}
271
+\begin{itemize}
272
+\item Compiles to stand C using the GNU toolchain
273
+\item Runs on x86, x86-64, ARM, MIPS, Sparc64, PowerPC, and more
274
+\item Well documented in the wiki and manual
275
+\item Plenty of libraries and a library manager
276
+\item Good FFI
277
+\end{itemize}
278
+\subsection{Projects}
279
+\label{sec-6-3}
280
+\begin{itemize}
281
+\item Tehila game engine \url{https://wiki.call-cc.org/tehila}
282
+\item Wiki software qwiki \url{https://wiki.call-cc.org/egg/qwiki}
283
+\item Really just see \url{https://wiki.call-cc.org/Software}
284
+\end{itemize}
285
+\section{Emacs Lisp}
47 286
 \label{sec-7}
287
+\subsection{Brief History}
288
+\label{sec-7-1}
289
+\begin{itemize}
290
+\item First appeared in 1985
291
+\item Based off Maclisp (a now dead lisp dialect)
292
+\item Has gradually gained more and more features over the years but no major revisions really
293
+\item Considered outdated compared to modern Scheme or Common Lisp
294
+\item Some in GNU want to replace with Guile
295
+\end{itemize}
296
+\subsection{Purpose}
297
+\label{sec-7-2}
298
+\begin{itemize}
299
+\item Pretty much just for emacs
300
+\item Allows easier extensibility than C (which the rest of emacs is written in)
301
+\item Definitely NOT designed for general purpose programming
302
+\end{itemize}
303
+\subsection{Projects}
304
+\label{sec-7-3}
305
+\begin{itemize}
306
+\item Emacs of course
307
+\item Any of the hundreds (thousands?) of emacs packages
308
+\item Org mode (this presentation is Org Mode -> Latex + Beamer -> PDF)
309
+\item Web servers
310
+\item Games
311
+\item API glue
312
+\item All kinds of fancy IDE features
313
+\end{itemize}
314
+\section{Picolisp}
315
+\label{sec-8}
316
+\subsection{Purpose}
317
+\label{sec-8-1}
318
+\subsection{Projects}
319
+\label{sec-8-2}
320
+\section{Shen}
321
+\label{sec-9}
322
+\subsection{Purpose}
323
+\label{sec-9-1}
324
+\subsection{Thoughts}
325
+\label{sec-9-2}
326
+\section{Arc}
327
+\label{sec-10}
328
+\subsection{General notes}
329
+\label{sec-10-1}
330
+\begin{itemize}
331
+\item Written by Paul Graham
332
+\item Implements Hackernews (\href{https://news.ycombinator.com}{news.ycombinator.com})
333
+\end{itemize}
48 334
 % Emacs 24.5.1 (Org mode 8.2.10)
49 335
 \end{document}