|
|
@@ -597,6 +597,22 @@ Now that we know the basics, let's clear up some common misconceptions about has |
|
|
|
\onslide<+-> |
|
|
|
You can! |
|
|
|
\end{frame} |
|
|
|
|
|
|
|
\begin{frame} |
|
|
|
\frametitle{Difficulties} |
|
|
|
Haskell is very powerful and can be used for pretty much anything. However, there are difficulties in any language. Let's name a few for haskell: |
|
|
|
\begin{itemize}[<+->] |
|
|
|
\item intellectual complexity? New way of thinking? |
|
|
|
\item although you rarely need it in haskell, debugging can be difficult at times |
|
|
|
\item because the type system is extremely powerful/complex, type error messages can be very confusing and don't always show the error you expected |
|
|
|
\item no premium-like IDE with every possible feature (yet) |
|
|
|
\item dynamic linking is sort of WIP yet, lots of ABI breakage |
|
|
|
\item because most of the world thinks in imperative style languages, it's often difficult to find pseudo-code for functional style languages, so you end up reverse-engineering algorithms |
|
|
|
\item some problems that are trivial in imperative languages, can be very difficult to solve in idiomatic haskell and vice versa |
|
|
|
\item practical cryptography is possible, but a difficult topic in haskell, see \url{https://mail.haskell.org/pipermail/haskell-cafe/2015-February/118059.html} |
|
|
|
\end{itemize} |
|
|
|
\end{frame} |
|
|
|
|
|
|
|
\begin{frame} |
|
|
|
\frametitle{Toolchain} |
|
|
|
You need: |
|
|
|