:: Topo :: doCoding :: Linguagens de Programação

Scala

  • Scala (programming language) - Scala is a multi-paradigm programming language designed to integrate features of object-oriented programming and functional programming.

Learning

Training Courses

Books

Resources

Blogs & Wikis

Articles

  • First Steps to Scala - In this article, you'll follow twelve steps that are designed to help you understand and gain some basic skills in the Scala programming language.
  • Scala: A Scalable Language - In this article, which is based on Chapter 1 of the book, Programming in Scala, you'll get an overview of the Scala language and insights into its design.
  • Twitter on Scala - Three Twitter developers, Steve Jenson, Alex Payne, and Robey Pointer, talk with Bill Venners about their use of Scala in production at Twitter.
  • How Scala Changed My Programming Style - Learning a new programming language sometimes influences how you code in other languages, too. In this essay, Bill Venners shares how learning Scala influenced his programming style.
  • The Origins of Scala - Martin Odersky talks with Bill Venners about the history that led to the creation of the Scala programming language.
  • The Goals of Scala's Design - Martin Odersky talks with Frank Sommers and Bill Venners about the compromises and most important goals in Scala's design, its object-oriented innovations, and what's in it for you.
  • The Purpose of Scala's Type System - Martin Odersky talks with Bill Venners and Frank Sommers about the design motivations behind Scala's type system.
  • The Point of Pattern Matching in Scala - Martin Odersky talks with Bill Venners and Frank Sommers about the mechanics and purpose of pattern matching in Scala.

Java

Assorted

  • Static typing and Scala - I’ve been looking at the Scala programming language recently. If you’re not familiar with it, Scala is a statically typed language with functional programming that runs on the Java Virtual Machine. Although I have always strongly favored statically typed languages, I have to admit that Scala might be one of the most persuasive arguments yet that the whole notion of static typing is fundamentally unsound.
  • My verdict on the Scala language - The Scala language is intriguing, quite powerful, but tends toward being illegible when written “properly”. I’m not at all convinced that the average software developer is able to grasp Scala. At least, not beyond the basic abilities that could just as easily be expressed in Java. Heck, from what I can tell there are a lot of software developers who find Java to be beyond their full comprehension. Since I don’t have any confidence that the average software developer could understand Scala code that was written to actually take advantage of Scala, I can’t recommend it for application development.
  • Are Scala' Case Classes a Failed Experiment? - From my understanding of Scala's history, case classes were added in an attempt to support pattern matching, but after thinking about the consequences of the points I just gave, it's hard for me to see case classes as anything but a failure. Not only do they fail to capture the powerful pattern matching mechanisms that Prolog and Haskell have made popular, but they are actually a step backward from an OO standpoint, something that I know Martin feels very strongly about and that is a full part of Scala's mission statement.

Actors

Monads

Presentations

Tutorials

  • Using Flex with Scala - Having to write less code to implement a given feature often improves developer productivity: less code means less bugs, less tests to write, and less artifacts to maintain. Just as recent advances in rich-client technologies reduce boilerplate code on the client, new languages targeting the Java Virtual Machine can yield similar benefits on the server. This article illustrates how Flex on the client, combined with Scala on the server, results in a highly effective client-server development model. The article also shows a way to use the Java Persistence API (JPA) from Scala code.

TDD

  • Rehersal - Rehersal is a testing framework for Scala, intended as an easier-to-use replacement for SUnit in the standard library.
  • ScalaCheck - ScalaCheck is a powerful tool for automatic unit testing of Scala and Java programs. It features automatic test case generation and minimization of failing test cases. ScalaCheck started out as a Scala port of the Haskell library QuickCheck, and has since evolved and been extended with features not found in Haskell QuickCheck.
  • specs - specs provides a BDD framework for the Scala language.

Web Frameworks

  • Lift - Lift is an expressive and elegant framework for writing web applications. Lift stresses the importance of security, maintainability, scalability and performance, while allowing for high levels of developer productivity.
  • sweetscala - A Scala framework for building dynamic web applications.
  • slinky2 - Slinky is a HTTP library for web applications using the Scala Programming Language.

Libraries and Toolkits

  • vscaladoc - A variation of scaladoc : an API generator for project written in Scala.

Concurrency

  • scala-otp - The Scala OTP project implements a platform and runtime for deployment, execution and management of Scala Actors, similar to Erlangs OTP platform, for implementation of highly fault-tolerant, distributed actor-based enterprise systems.
  • clustered-fold - A Scala Actors based parallel-Fold that uses Terracotta for clustering.
  • scala-stm - An implementation of a software transactional memory framework in Scala.
  • smr - Scala Map Reduce
  • scala-dataflow - Oz-style dataflow (single-assignment) variables and streams for Scala.

DataBase

Collections

  • scala-javautils - A set of utilities for dealing with Java and Scala collections.
  • scala-collections - A number of collection implementations for Scala (including a few ported from Clojure).
  • CompactHashMap - Fast and memory-compact (especially on primitive types) scala HashMap and HashSet.

Logging

  • slog - A high performance central logger in Scala (as wrapper around log4j).
  • tlf - Trivial Logging Framework for Scala.

Building

  • sbt - simple-build-tool - A build tool for Scala.
  • scala-build - Ant/Ivy build scripts to automate building scala projects.
  • scala-buildr-base - A skeleton project structure for developing with scala, testing with specs and building with buildr.
 
docoding/languages/scala.txt · Modificado em: 2010/04/23 21:33 por straider     Voltar ao topo