Skip to content

Commit

Permalink
Docs update - remove obsolete links and unmaintained tools, add new b…
Browse files Browse the repository at this point in the history
…ooks, tools, Youtube channels
  • Loading branch information
LarsWestergren committed Sep 3, 2022
1 parent dfbe08c commit 43f74b8
Show file tree
Hide file tree
Showing 6 changed files with 48 additions and 24 deletions.
18 changes: 12 additions & 6 deletions docs/INSTALLATION.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,18 @@
# Installing [Scala](http://www.scala-lang.org)

Scala can run on the JVM, but also has support for JS integration and even compilation to native code.
For help install various dependencies, consider using [Scala-CLI](https://scala-cli.virtuslab.org/)

In addition to the exercism CLI and your favorite text editor, practicing with Exercism exercises in Scala requires:
Another alternative is [SDKMAN](https://sdkman.io/)
to manage your Java and Java-adjacent development tools and libraries.

If you do wish to have full control over package installation, you need to manually install

* Java Development Kit (JDK) 17 or later. Use your preferred vendor or grab one from [Adoptium](https://adoptium.net/)
* [Scala 2.13.x](https://www.scala-lang.org/download/scala2.html)
* [Scala 3.1.x](https://www.scala-lang.org/download/)
* [sbt 1.7.x](https://www.scala-sbt.org/download.html)

If you don't want install these various dependencies by hand, consider using [SDKMAN](https://sdkman.io/) to manage your java and java-adjacent development tools and libraries.


---

Expand All @@ -20,7 +25,8 @@ To get started, see "[Running the Tests](https://exercism.org/docs/tracks/scala/
# Scala IDEs

* [IntelliJ IDEA with Scala Plugin](https://www.jetbrains.com/idea/)
* [ScalaIDE](http://scala-ide.org/index.html)
* [VS Code with Metals](https://scalameta.org/metals/docs/editors/vscode)
* [Vim or Neovim with Metals](https://scalameta.org/metals/docs/editors/vim)
* [Sublime with Metals](https://scalameta.org/metals/docs/editors/sublime)
* [Emacs with Metals](https://scalameta.org/metals/docs/editors/emacs)
* [NetBeans with Scala Plugin](https://netbeans.org/)
* [Metals with VS Code](https://scalameta.org/metals/docs/editors/vscode)
* [Metals with Vim or Neovim](https://scalameta.org/metals/docs/editors/vim)
24 changes: 20 additions & 4 deletions docs/LEARNING.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,30 @@
# Learning

## Online Courses


* [The Scala Center](https://docs.scala-lang.org/online-courses.html) - The Scala Center is an independent not-for-profit center focused on open source and
learning. They have a syllabus and links to various learning platforms.
* [Functional Programming Principles in Scala](https://www.coursera.org/learn/progfun1) - In this course you will discover the elements of the functional programming style and learn how to apply them usefully in your daily programming tasks. You will also develop a solid foundation for reasoning about functional programs, by touching upon proofs of invariants and the tracing of execution symbolically.
* [Functional Program Design in Scala](https://www.coursera.org/learn/progfun2) - In this course you will learn how to apply the functional programming style in the design of larger applications.

## Books

* [Learn Scala 3 the Fast Way - Alvin Alexander](https://alvinalexander.com/scala/learn-scala-3-the-fast-way-book/)
* [Hands on Scala Programming - Li Haoyi](https://www.handsonscala.com/)
* [Programming Scala - Dean Wampler, Ph.D.](http://shop.oreilly.com/product/0636920033073.do)
* [Programming in Scala - Oderksy, Spoon, Venners](http://www.artima.com/shop/programming_in_scala_3ed)
* [Functional Programming in Scala - Chiusano, Bjarnason](https://www.manning.com/books/functional-programming-in-scala)
* [Scala for the Impatient - Cay S. Horstmann](http://horstmann.com/scala/)
* [Hands on Scala Programming - Li Haoyi](https://www.handsonscala.com/)

## Online Courses
## Free Online Books

* [Functional Programming Principles in Scala](https://www.coursera.org/learn/progfun1) - In this course you will discover the elements of the functional programming style and learn how to apply them usefully in your daily programming tasks. You will also develop a solid foundation for reasoning about functional programs, by touching upon proofs of invariants and the tracing of execution symbolically.
* [Functional Program Design in Scala](https://www.coursera.org/learn/progfun2) - In this course you will learn how to apply the functional programming style in the design of larger applications.
* [EBook Foundations List of Free Programming Books](https://github.com/EbookFoundation/free-programming-books/blob/main/books/free-programming-books-langs.md#scala)

## Youtube channels

* [Dr Mark Lewis](https://www.youtube.com/user/drmarkclewis)
* [Scala In The City](https://www.youtube.com/c/ScalaintheCity/)
* [Rock the JVM](https://www.youtube.com/c/RocktheJVM/)
* [Konfy](https://www.youtube.com/c/Konfy/)
* [DevInsideYou](https://www.youtube.com/c/DevInsideYou)
15 changes: 11 additions & 4 deletions docs/RESOURCES.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,20 @@

Exercism provides exercises and feedback but can be difficult to jump into for those learning Scala for the first time. These resources can help you get started:

* [Scala - Getting Started](http://www.scala-lang.org/documentation/getting-started.html)
* [StackOverflow](http://stackoverflow.com/)
* [Scala - Getting Started](https://docs.scala-lang.org/getting-started/index.html)
* [StackOverflow](https://stackoverflow.com/)
* [Scala Exercises](https://www.scala-exercises.org/std_lib)
* [The Neophyte's Guide to Scala](https://danielwestheide.com/books/the-neophytes-guide-to-scala/)

## Linting

Scala projects can be linted for further code analysis via a third party tool - [Scalastyle](http://www.scalastyle.org/).
Scala projects can be linted for further code analysis via a third party tool

There are several ways of using Scalastyle including Maven, SBT, Gradle, IntelliJ and Eclipse. For instructions on usage visit [Scalastyle](http://www.scalastyle.org/).
* [Scalafix](https://scalacenter.github.io/scalafix/)
* [Scalafmt](https://scalameta.org/scalafmt/#Scalafmt-codeformatterforScala)

## REPLs and scripting

* [Scastie - browser REPL](https://scastie.scala-lang.org/)
* [Ammonite shell REPL and scripting tools](http://ammonite.io/)
* [ScribbleNinja - Scala.js in your browser](https://scribble.ninja/)
7 changes: 1 addition & 6 deletions docs/TESTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,4 @@ $ sbt
Note that all tests have been disabled except the first one for you to work on.
To continue, just remove the `pending` keyword from the beginning of each test case.

Tests can also be run within the following IDEs

* [IntelliJ IDEA with Scala Plugin](https://www.jetbrains.com/idea/)
* [ScalaIDE](http://scala-ide.org/index.html)
* [NetBeans with Scala Plugin](https://netbeans.org/)

Tests can also be run within the IDEs listed on the "Installing Scala Locally" page.
6 changes: 3 additions & 3 deletions testgen/build.sbt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name := "ExcercismScalaTestGenerator"

scalaVersion := "2.13.6"
scalaVersion := "3.1.3"

ThisBuild / scalacOptions ++= Seq("-deprecation")

Expand All @@ -10,8 +10,8 @@ lazy val root = (project in file("."))
Compile / TwirlKeys.compileTemplates / sourceDirectories
+= (baseDirectory.value.getParentFile / "src" / "main" / "twirl"))

libraryDependencies += "com.typesafe.play" %% "play-json" % "2.9.2"
libraryDependencies += "com.typesafe.play" %% "play-json" % "2.10.0-RC6"

libraryDependencies += "org.scala-lang.modules" %% "scala-parser-combinators" % "2.1.0"

libraryDependencies += "com.typesafe.play" %% "twirl-api" % "1.5.0"
libraryDependencies += "com.typesafe.play" %% "twirl-api" % "1.6.0-M6"
2 changes: 1 addition & 1 deletion testgen/project/build.properties
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
sbt.version=1.6.1
sbt.version=1.7.1

0 comments on commit 43f74b8

Please sign in to comment.