updated
authorChristian Urban <christian.urban@kcl.ac.uk>
Thu, 10 Nov 2022 09:52:40 +0000
changeset 441 3bfe81972674
parent 440 f3bfc496d6ca
child 442 c86e7dd198bf
updated
handouts/pep-ho.pdf
handouts/pep-ho.tex
Binary file handouts/pep-ho.pdf has changed
--- a/handouts/pep-ho.tex	Wed Nov 09 20:51:29 2022 +0000
+++ b/handouts/pep-ho.tex	Thu Nov 10 09:52:40 2022 +0000
@@ -124,7 +124,7 @@
 
     
 \begin{document}
-\fnote{\copyright{} Christian Urban, King's College London, 2017, 2018, 2019, 2020, 2021}
+\fnote{\copyright{} Christian Urban, King's College London, 2017, 2018, 2019, 2020, 2021, 2022}
 
 %\begin{tcolorbox}[breakable,size=fbox,boxrule=1pt,pad at break*=1mm,colback=cellbackground,colframe=cellborder]
 %  abd
@@ -170,7 +170,7 @@
 \noindent\alert
 Just make sure you are downloading the ``battle tested'' version of
 Scala \textbf{2.13} This is the one I am going to use in the lectures and
-in the coursework. The newer Scala 3.0 \& 3.1 still have some
+in the coursework. The newer Scala 3.1 \& 3.2 still have some
 features not fully implemented.\bigskip
 
 \noindent
@@ -221,7 +221,18 @@
 \end{boxedminipage}
 \end{figure}  
 
-What I like most about VS Code is that it provides easy access to the
+ Actually \alert last year I switched to VS Codium, which is VS Code minus
+all the telemetry that is normally sent to Microsoft. Apart from the
+ telemetry,  it works pretty much the same as the original but is driven
+by a dedicated community, rather than a big company. You can download
+VS Codium from
+
+\begin{quote}
+\url{https://vscodium.com}
+\end{quote}
+
+
+What I like most about VS Code/Codium is that it provides easy access to the
 Scala REPL. But if you prefer another editor for coding, it is also
 painless to work with Scala completely on the command line (as you might
 have done with \texttt{g++} in the earlier part of PEP). For the
@@ -239,8 +250,9 @@
 But you should be careful if you use them for your coursework: they
 are meant to play around, not really for serious work. 
 
-As one might expect, Scala can be used with the heavy-duty IDEs Eclipse and IntelliJ.
-A ready-made Scala bundle for Eclipse is available from
+As one might expect, Scala can be used with the heavy-duty IDEs
+Eclipse and IntelliJ.  A ready-made Scala bundle for Eclipse is
+available from
 
 \begin{quote}
 \url{http://scala-ide.org/download/sdk.html}
@@ -447,7 +459,7 @@
 example, that Java will at some point in the future support
 pattern-matching, which has been used for example in SML for at least
 40(!) years. See
-\url{http://cr.openjdk.java.net/~briangoetz/amber/pattern-match.html}.
+\url{https://openjdk.org/projects/amber/design-notes/patterns/pattern-matching-for-java}.
 Automatic garbage collection was included in Java in 1995; the
 functional language LISP had this already in 1958. Generics were added
 to Java 5 in 2004; the functional language SML had it since 1990.
@@ -458,11 +470,13 @@
 yesteryear.}\medskip
 
 \noindent
-If you need any after-work distractions, you might have fun reading this
-about FP (functional programming):
+If you need any after-work distractions, you might have fun reading
+this about FP (functional programming) --- you
+might have to disable your browser cookies though if you want to read
+it for free. And spoiler alert: This is tongue-in-cheek \texttt{;o)}
 
 \begin{quote}
-\url{https://medium.com/better-programming/fp-toy-7f52ea0a947e}
+\url{https://betterprogramming.pub/fp-toy-7f52ea0a947e}
 \end{quote}
 
 \subsection*{The Very Basics}
@@ -478,7 +492,7 @@
 
 \begin{lstlisting}[language={},numbers=none,basicstyle=\ttfamily\small]
 $ scala
-Welcome to Scala 2.13.6 (OpenJDK 64-Bit Server VM, Java 17).
+Welcome to Scala 2.13.9 (OpenJDK 64-Bit Server VM, Java 17.0.1).
 Type in expressions for evaluation. Or try :help.
 
 scala>
@@ -1715,7 +1729,7 @@
 \end{lstlisting}
 
 \noindent
-In Scala, we use the \code{=>} symbol:
+In Scala, we use the \code{=>} symbol for the same:
 
 \begin{lstlisting}[language=Scala]
 list.foreach(item => println(s"* $item"))/*!\annotation{Scala}!*/
@@ -1784,12 +1798,17 @@
 Scala often introduced incompatibilities in old code. Also the Java
 language is lately developing at lightening speed (in comparison to the past) 
 taking on many
-features of Scala and other languages, and it seems even it introduces
+features of Scala and other languages, and it seems it even introduces
 new features on its own.
 
 
 Scala is deep: After many years, I still continue to learn new technique
-for writing more elegant code.
+for writing more elegant code. Unfortunately, I have not yet managed to
+switch over my code to Scala 3.0 due to time constraints. Scala 3 seems
+to iron out a number of snags from Scala 2, but why on earth are they
+introducing Python-esque intendation and why on earth are they
+re-introducing the \texttt{then}-keyword in Scala 3, when I just about got
+comfortable without it? 
 
 %So all in all, Scala might not be a great teaching language,
 %but I hope this is mitigated by the fact that I never require