A presentation designed to get someone started with a clojure development environment and on the path to learning clojure.

presentation.tex 3.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. \documentclass{beamer}
  2. \title{Beginning Clojure}
  3. \subtitle{from theory to code}
  4. \author{Lily Carpenter}
  5. \institute{https://gitlab.com/azrazalea/}
  6. \mode<presentation> {\usetheme{Dresden}}
  7. \date{}
  8. \usepackage[latin1]{inputenc}
  9. \usepackage{times}
  10. \usepackage[T1]{fontenc}
  11. \usepackage[english]{babel}
  12. \usepackage{hyperref}
  13. \usepackage{listings}
  14. \begin{document}
  15. \begin{frame}
  16. \titlepage
  17. \end{frame}
  18. \begin{frame}
  19. \frametitle{Summary}
  20. \tableofcontents
  21. \end{frame}
  22. \section{Clojure in Theory}
  23. \begin{frame}
  24. \frametitle{Reasons for Clojure}
  25. \begin{itemize}
  26. \item{A Lisp}
  27. \item{for Functional Programming}
  28. \item{symbiotic with an established Platform}
  29. \item{designed for Concurrency}
  30. \end{itemize}
  31. http://clojure.org/rationale
  32. \end{frame}
  33. \begin{frame}
  34. \frametitle{Fundamental Concepts of Clojure}
  35. \begin{itemize}
  36. \item{Simplicity}
  37. \item{Freedom to focus}
  38. \item{Empowerment}
  39. \item{Clarity}
  40. \item{Consistency}
  41. \end{itemize}
  42. \textit{The Joy of Clojure} by Michael Fogus
  43. \end{frame}
  44. \begin{frame}
  45. \includegraphics[keepaspectratio=true,width=.75\paperwidth]{clojure_foundations.png}
  46. \textit{The Joy of Clojure} figure 1.1
  47. \end{frame}
  48. \section{Development Environments}
  49. \begin{frame}
  50. \frametitle{Development Environments}
  51. In order of popularity.
  52. \begin{itemize}
  53. \item{Emacs (The one true operating system)[use CIDER]}
  54. \item{Cursive (IntelliJ plugin now, standalone in the future)}
  55. \item{Vim (fireplace.vim seems to be the popular plugin)}
  56. \item{Light Table (Default clojure support?)}
  57. \end{itemize}
  58. https://cognitect.wufoo.com/reports/state-of-clojure-2014-results/
  59. \end{frame}
  60. \begin{frame}
  61. \frametitle{Emacs}
  62. \begin{itemize}
  63. \item{Large learning curve if you haven't used it before.}
  64. \item{I generally recommend heavy use of emacs if and only if you plan on customizing your own config.}
  65. \item{Most popular clojure IDE by a large margin.}
  66. \item{Not specific to clojure.}
  67. \end{itemize}
  68. http://www.braveclojure.com/basic-emacs/
  69. \end{frame}
  70. \begin{frame}
  71. \frametitle{Cursive}
  72. \begin{itemize}
  73. \item{``Just works'', simple to setup and start using.}
  74. \item{May be better if you want to avoid the emacs learning curve.}
  75. \item{Narrowly the second most used clojure IDE over vim with fireplace.}
  76. \item{Not yet a 1. 0 release.}
  77. \item{IntelliJ is not specific to clojure.}
  78. \end{itemize}
  79. https://cursiveclojure.com/
  80. \end{frame}
  81. \begin{frame}
  82. \frametitle{Vim}
  83. \begin{itemize}
  84. \item{Well supported for vim veterans.}
  85. \item{Would not recommend personally if you don't already know vim (learn emacs instead).}
  86. \item{Not specific to clojure.}
  87. \end{itemize}
  88. https://github.com/tpope/vim-fireplace
  89. \end{frame}
  90. \begin{frame}
  91. \frametitle{Light Table}
  92. \begin{itemize}
  93. \item{Another ``just works'' kind of option.}
  94. \item{Don't have to install anything extra for clojure support (though you'll want a build environment).}
  95. \item{Not specific to clojure}
  96. \end{itemize}
  97. http://docs.lighttable.com/
  98. \end{frame}
  99. \section{Build Environments}
  100. \begin{frame}
  101. \frametitle{Build environments}
  102. \begin{itemize}
  103. \item{Leiningen (98\% of clojurists use per survey)}
  104. \item{Boot (cool newcomer to the scene, worth trying out probably)}
  105. \end{itemize}
  106. http://leiningen.org/
  107. https://github.com/tailrecursion/boot
  108. \end{frame}
  109. \section{Simple Examples}
  110. \section{Resources}
  111. \end{document}