handouts/scala-ho.tex
changeset 231 47bcc2178f4e
parent 230 0fd668d7b619
child 232 2c512713f08a
equal deleted inserted replaced
230:0fd668d7b619 231:47bcc2178f4e
   896 hand using only the ``plain'' regular expressions from the
   896 hand using only the ``plain'' regular expressions from the
   897 inductive datatype.
   897 inductive datatype.
   898 
   898 
   899 \subsection*{More Info}
   899 \subsection*{More Info}
   900 
   900 
   901 
   901 There is much more to Scala, then I can possibly describe
       
   902 here. There are a number of free books about Scala and of 
       
   903 course lots of help online.
       
   904 
       
   905 While I am quite enthusiastic about Scala, I am happy to admit
       
   906 that it has more than a fair share of faults. The problem of
       
   907 having to give an explicit type to {\tt toSet}, but not {\tt
       
   908 toList} is one of them. There are also many ``deep'' things
       
   909 about types in Scala, which even to me seasoned functional
       
   910 programmer are puzzling. While implicits are great, they
       
   911 can also be a source of great head-aches, for example
       
   912 
       
   913 \begin{quote}
       
   914 \begin{alltt}
       
   915 scala>  List (1, 2, 3) contains "your mom"
       
   916 res1: Boolean = false
       
   917 \end{alltt}
       
   918 \end{quote}
       
   919 
       
   920 \noindent This should raise a typing-error, but it does not.
       
   921 
       
   922 While Scala has been a success in several high-profile
       
   923 companies, there is also a company, Yammer, which first used
       
   924 Scala in their production code but then moved away from it.
       
   925 According to Wikipedia, they did not like steep learning curve
       
   926 of Scala and also that new versions of Scala often introduced
       
   927 incompatibilities.
       
   928 
       
   929 So all in all, Scala might not be a great teaching
       
   930 language, but I hope this is mitigated by the fact that I
       
   931 never require from you to write any Scala code. You only
       
   932 need to be able to read it. In the coursework you can use
       
   933 any programming language you like. If you want to use
       
   934 Scala for this, be my guest; if you do not, stick with the
       
   935 language you are most familiar with.
   902 
   936 
   903 \end{document}
   937 \end{document}
   904 
   938 
   905 %%% Local Variables: 
   939 %%% Local Variables: 
   906 %%% mode: latex
   940 %%% mode: latex