CINXE.COM
artima - Products
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <!-- Global site tag (gtag.js) - Google Analytics --> <script async src="https://www.googletagmanager.com/gtag/js?id=G-B2CLFJWCBX"></script> <script defer src='/assets/javascripts/911233778c7e40ab284a8383dbf0ce54-gtag.js'></script> <script src='/assets/lib/fontawesome/5.13.0/js/all.js'></script> <title>artima - Products</title> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous"> <link rel="stylesheet" media="screen" href='/assets/stylesheets/685adae4497816438b7f1566b2f845c8-common.css'> <link rel="stylesheet" media="screen" href='/assets/stylesheets/4dcd7eb1e46a0f8ad1f8d63d4aaaae3c-main.css'> <link rel="apple-touch-icon" sizes="180x180" href="/assets/images/favicons/58ea8e9e1387316e74776b9a0fdbd5c0-apple-touch-icon.png"> <link rel="icon" type="image/png" sizes="32x32" href="/assets/images/favicons/2aacd015ca6870a74bcb1c6d5a814a29-favicon-32x32.png"> <link rel="icon" type="image/png" sizes="16x16" href="/assets/images/favicons/01580a1aa0cd6d5a0e5b773265668377-favicon-16x16.png"> <link rel="manifest" href="/assets/images/favicons/bcade84921610883ceb971b8ac2b7258-site.webmanifest"> <link rel="mask-icon" href="/assets/images/favicons/226a80af1de564e2444107757521636d-safari-pinned-tab.svg" color="#5bbad5"> <meta name="msapplication-TileColor" content="#00aba9"> <meta name="theme-color" content="#ffffff"> <script src='/assets/lib/fontawesome/5.13.0/js/fontawesome.js'></script> <!-- this is primarily for Froala editor stuff but also serves for non-Froala Authoring-launching-pages --> <link rel="stylesheet" media="screen" href='/assets/stylesheets/1532e633a8ae989b3ee6e6a4b15a172c-artimaFroala.css'> <!-- the media=print thing is essential to having our printout directives handled properly --> <!-- in theory this could go into a separate print.css eventually --> <link rel="stylesheet" type="text/css" media="print" href='/assets/stylesheets/685adae4497816438b7f1566b2f845c8-common.css' /> <link rel="stylesheet" type="text/css" media="print" href='/assets/stylesheets/4dcd7eb1e46a0f8ad1f8d63d4aaaae3c-main.css' /> </head> <body> <div class="otherpage-body"> <div class="container-fluid"> <!-- this is essential towards getting edge-to-edge front page image --> <div class="artima-alert-wrapper"> </div> <div class="artima-print-logo hidden-screen"> <img src='/assets/images/526ee520d7c96f8941f4e6c09e5092ec-artima_printlogo_20pct.jpg' alt="Artima Logo"> </div> <!--<div class="mt-4"> removed as part of effort to get edge-to-edge front page image --> <div class="artima-subpage"> <div class="thin-photo-under-navbar"> <div class="short-panorama-photo-shader"> </div> </div> <div class="artima-brochurepage-body"> <div class="container"> <div class="offset-md-1"> <div class="col-md-8"> <div class="artima-brochurepage-content"> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <h1> Products </h1> <p>Artima has been a part of the Scala community for over 13 years, sharing our love of Scala through books, tools, and training. We want to help programmers become more productive, and hope these books and tools will help you do just that.</p> <p> Our Scala books: </p> <ul> <li><a href="/shop/programming_in_scala_5ed">Programming in Scala, Fifth Edition (Updated for Scala 3)</a> (co-authored by the language's designer, Martin Odersky)</li> <li><a href="/shop/programming_in_scala_4ed">Programming in Scala, Fourth Edition (Updated for Scala 2.13)</a> (co-authored by the language's designer, Martin Odersky)</li> <li><a href="/shop/advanced_programming_in_scala_5ed">Advanced Programming in Scala, Fifth Edition (PrePrint)</a> (co-authored by the language's designer, Martin Odersky)</li> <li><a href="/shop/modern_mathematics">Modern Mathematics (PrePrint)</a></li> <li><a href="/shop/akka_concurrency">Akka Concurrency</a></li> <li><a href="/shop/scala_puzzlers">Scala Puzzlers</a></li> <li><a href="/shop/scalacheck">ScalaCheck: The Definitive Guide</a></li> </ul> <p> Artima has a long history of developing tools for the Scala community, both open source libraries and advanced products for customers. These include: </p> <ul> <li><a href="http://www.scalatest.org">ScalaTest</a> - The Scala world's leading test harness, used for a wide range of products and environments.</li> <li><a href="http://www.scalactic.org">Scalactic</a> - Utilities related to quality and functional programming, to help you keep your code clear and correct.</li> <li><a href="/supersafe_user_guide.html">SuperSafe</a> - A Scala Compiler plugin to detect certain types of bugs early, before they can slip into production.</li> </ul> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> </div> </div> </div> </div> </div> <div class="short-light-gray-section"> </div> </div> <!-- </div> --> <div class="hidden-print"> <div class="artima-subpage-section" id="lots-o-links"> <div class="artima-links-body"> <div class="container"> <div class="row"> <div class="col-sm-4"> <img src="/assets/images/17d52b15efe484d5af9b249730b36d75-artima_web_logo_171211b_20pct_dim.png" alt="Artima Logo"> <div class="links-blurb-tinytext"> <p> <br/> Artima provides consulting and training services to help you make the most of Scala, reactive and functional programming, enterprise systems, big data, and testing. </p> Artima, Inc.<br/> 2070 N Broadway Unit 305<br/> Walnut Creek CA 94597<br/> USA<br/> <br/> (925) 918-1769 (Phone)<br/> <br/> </div> <div class="tiny-outlink-glyphs"> <a href="https://github.com/scalatest"><i class="fab fa-github fa-2x"></i></a> <a href="https://twitter.com/ArtimaInc"><i class="fab fa-twitter fa-2x"></i></a> <a href="https://www.linkedin.com/company/artima/"><i class="fab fa-linkedin fa-2x"></i></a> </div> </div> <div class="col-sm-1"> </div> <div class="col-sm-2"> <div class="artima-link-category">Company</div> <div class="artima-link"><a href="/about">About</a></div> <div class="artima-link"><a href="/contact">Contact</a></div> <div class="artima-link-category">Services</div> <div class="artima-link"><a href="/consulting">Consulting</a></div> <div class="artima-link"><a href="/training">Training</a></div> <div class="artima-link-category">Products</div> <div class="artima-link"><a href="/shop/supersafe">SuperSafe</a></div> <div class="artima-link"><a href="/shop/catalog">Books</a></div> <div class="artima-link-category">Open Source</div> <div class="artima-link"><a href="http://www.scalatest.org/">ScalaTest</a></div> <div class="artima-link"><a href="http://www.scalactic.org/">Scalactic</a></div> </div> <div class="col-sm-2"> <div class="artima-link-category">SuperSafe</div> <div class="artima-link"><a href="/shop/supersafe">Free Trial</a></div> <div class="artima-link"><a href="/supersafe_user_guide.html">User Guide</a></div> <div class="artima-link"><a href="/supersafe_license.html">License</a></div> <div class="artima-link-category">ScalaTest</div> <div class="artima-link"><a href="http://www.scalatest.org/quick_start">Quick Start</a></div> <div class="artima-link"><a href="http://www.scalatest.org/install">Installing</a></div> <div class="artima-link"><a href="http://www.scalatest.org/user_guide">User Guide</a></div> <div class="artima-link"><a href="http://www.scalatest.org/at_a_glance/FlatSpec">At A Glance</a></div> <div class="artima-link"><a href="http://www.scalatest.org/scaladoc">Scaladoc</a></div> <div class="artima-link-category">Scalactic</div> <div class="artima-link"><a href="http://www.scalactic.org/quick_start">Quick Start</a></div> <div class="artima-link"><a href="http://www.scalactic.org/install">Installing</a></div> <div class="artima-link"><a href="http://www.scalactic.org/user_guide">User Guide</a></div> <div class="artima-link"><a href="http://www.scalactic.org/scaladoc">Scaladoc</a></div> </div> <div class="col-sm-3"> <div class="artima-link-category">Training</div> <div class="artima-link"><a href="/training/stairway-to-scala-applied-fundamentals">Stairway to Scala Applied Fundamentals</a></div> <div class="artima-link"><a href="/training/stairway-to-scala-advanced">Stairway to Scala Advanced</a></div> <div class="artima-link"><a href="/training/effective-scala">Effective Scala</a></div> <div class="artima-link"><a href="/training/concurrent-scala">Concurrent Scala</a></div> <div class="artima-link-category">Books</div> <div class="artima-link"><a href="/shop/programming_in_scala_4ed">Programming in Scala</a></div> <div class="artima-link"><a href="/shop/scala_puzzlers">Scala Puzzlers</a></div> <div class="artima-link"><a href="/shop/scalacheck">ScalaCheck: The Definitive Guide</a></div> <div class="artima-link"><a href="/shop/akka_concurrency">Akka Concurrency</a></div> <div class="artima-link"><a href="/shop/agile_hiring">Agile Hiring</a></div> </div> </div> </div> </div> </div> </div> <!-- div hidden-print --> <!-- Footer --> <div class="artima-display-footer hidden-print"> <a href="/copyright">Copyright</a> © 1996-2025 Artima, Inc. All Rights Reserved. - <a href="/privacy">Privacy Policy</a> - <a href="/terms-of-use">Terms of Use</a> </div> <div class="artima-print-footer hidden-screen"> Copyright © 1996-2025 Artima, Inc. All Rights Reserved. </div> </div> <!-- for container-fluid div --> </div> <!-- for indexpage-frame and otherpage-frame, end of div here --> <nav class="navbar navbar-expand-lg navbar-dark bg-dark fixed-top"> <div class="container"> <a class="navbar-brand artima-navbar-brand" href="/"><img src="/assets/images/247172fe4a64de4f65e7f3cbbf41d1c9-artima_web_logo_171211b_20pct.jpg" alt="Artima Logo"></a> <button class="navbar-toggler" style="margin-top: 0.3rem;" type="button" data-toggle="collapse" data-target="#artima-navbar-collapse-1" aria-controls="artima-navbar-collapse-1" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"> <i class="fas fa-bars fa-lg" style="padding-top: 0.3rem" aria-hidden="true"></i> </span> </button> <div class="collapse navbar-collapse" id="artima-navbar-collapse-1"> <ul class="navbar-nav mr-auto mt-2 mt-lg-0"> <li class="nav-item"><a class="nav-link" href="/consulting">Consulting</a></li> <li class="nav-item"><a class="nav-link" href="/training">Training</a></li> <li class="nav-item active"><a class="nav-link" href="/products">Products<span class="sr-only"> (current)</span></a></li> <!-- <li class="nav-item"><a class="nav-link" href="events">Events</a></li> <li class="nav-item"><a class="nav-link" href="articles">Articles</a></li> --> <li class="nav-item"><a class="nav-link" href="/about">About</a></li> <li class="nav-item"><a class="nav-link" href="/contact">Contact</a></li> </ul> <ul class="nav navbar-nav navbar-right"> <li class="nav-item"><a class="nav-link" href="/sign-in?d=%2Fproducts">Sign in</a></li> </ul> </div> </div> </nav> <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.3/umd/popper.min.js" integrity="sha384-vFJXuSJphROIrBnz7yo7oB41mKfc8JzQZiCq4NCceLEaO4IHwicKwpJf9c9IpFgh" crossorigin="anonymous"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script> <script src="/assets/artimaclient-opt/43f10bd0aa85f1d541e60f9d01a650bb-main.js"></script> <!-- end to the index/other page body div --> </body> </html>