Switch branches/tags
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
101 lines (100 sloc) 7.36 KB
<!DOCTYPE html>
<meta content="text/html; charset=UTF-8" http-equiv="content-type">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="initial-scale=1, maximum-scale=1">
<link href=",700,900%7CRoboto+Mono" rel="stylesheet">
<style type="text/css">
body {
font-family: 'Roboto', sans-serif;
line-height: 1.6;
color: rgb(5,5,5);
background: rgb(255,255,255);
max-width: 60em;
header {
padding-bottom: 1em;
a {
color: darkslategrey;
a:hover {
color: darkslateblue;
<title>What are advantages of Scala over Kotlin?</title>
<meta name="twitter:title" content="What are advantages of Scala over Kotlin?">
<meta property="og:title" content="What are advantages of Scala over Kotlin?">
<meta itemprop="name" content="What are advantages of Scala over Kotlin?">
<meta property="og:url" content="/1705/advantages-of-scala-over-kotlin/">
<link rel="canonical" href="/1705/advantages-of-scala-over-kotlin/">
<meta property="og:type" content="article">
<meta property="article:published_time" content="2017-05-29">
<meta property="article:modified_time" content="2017-05-29">
<meta property="og:description" content="William Narmontas compares Scala against Kotlin, and other programming languages.">
<meta itemprop="description" content="William Narmontas compares Scala against Kotlin, and other programming languages.">
<meta name="description" content="William Narmontas compares Scala against Kotlin, and other programming languages.">
<meta name="twitter:description" content="William Narmontas compares Scala against Kotlin, and other programming languages.">
<meta property="og:site_name" content="Scala William">
<link rel="author" href="">
<link rel="publisher" href="">
<meta property="og:image" content="">
<meta itemprop="image" content="">
<meta name="twitter:image" content="">
<meta name="author" content="William Narmontas">
<meta name="twitter:card" content="summary">
<meta name="twitter:site" content="@ScalaWilliam">
<article class="h-entry">
<h1 class="p-name">What are advantages of Scala over Kotlin?</h1>
<h2>By <a href="/" class="u-author">William Narmontas</a>, <a href="/1705/advantages-of-scala-over-kotlin/" class="u-url"><time class="dt-published" datetime="2017-05-29">May 29, 2017</time></a></h2>
<p>This page can be <a href="">edited on GitHub</a>.</p>
<p>Original article at <a href="" class="u-syndication">Quora</a>.</p>
<section class="e-content">
<p>Scala leads, others follow. Scala offers:</p>
A far stronger and more sound type system
<li><a href="" target="_blank">Type classes &amp; implicits</a></li>
<li><a href="" target="_blank">Higher kinded types:</a> are types which take other types and construct a new type, mostly used for Functional and Generic programming, see libraries like <a href="" target="_blank">Cats</a>, <a href="" target="_blank">Scalaz</a> and <a href="" target="_blank">Shapeless</a>.</li>
<li>Still work in progress to build Scala 3 (Dotty) to have a language <a href="" target="_blank">based on sound theory</a></li>
<li>This enables an incredible amount of things such as automatically deriving information from your types, creating complex types from other types, and treating types almost as if they were values.</li>
Excellent, scalable tooling
SBT - Scalable Build Tool
<li><a href="" target="_blank">Custom, cheap plugins in-project</a> - you can extract common functionality from multiple projects for your team. Your build is code meaning you can publish it, transform it, factor it out, etc</li>
<li>Easy packaging and <a href="" target="_blank">deployment to Docker</a> and other targets</li>
<li>Strongly typed, as it is written in Scala, and with macros</li>
<li>Play Framework - <a href="" target="_blank">which actually scales in development</a>, unlike every other framework I’ve used</li>
Macros and code introspection (<a href="" target="_blank">scalameta</a>; <a href="" target="_blank">PDF slides</a>)
<li>Basically write code to analyse and generate other code</li>
<li>Enable automatic yet explicit type class derivation, such as for <a href="" target="_blank">JSON formats</a> (also done with generic programming)</li>
<li>Enables tools such as <a href="" target="_blank">shapeless</a>, <a href="" target="_blank">scalafmt</a>, <a href="" target="_blank">scalafix</a></li>
<p>I have not listed everything, but this is more than enough to start with.</p>
<p>Right now, Kotlin and Scala are not really competitors as they are in a different ballpark in terms of offerings. Different target markets.</p>
<p>The way I see it, Kotlin will make it possible for programmers <a href="/1705/scala-android-opportunity/">to appreciate what Scala has to offer</a>.</p>
<p>Make no mistake about it: Scala scales, hence the name.</p>