background preloader

Scala

Facebook Twitter

Functional thinking: Functional design patterns, Part 1. Some contingents in the functional world claim that the concept of the design pattern is flawed and isn't needed in functional programming.

Functional thinking: Functional design patterns, Part 1

A case can be made for that view under a narrow definition of pattern — but that's an argument more about semantics than use. The concept of a design pattern — a named, cataloged solution to a common problem — is alive and well. However, patterns sometimes take different guises under different paradigms. Because the building blocks and approaches to problems are different in the functional world, some of the traditional Gang of Four patterns (see Resources) disappear, while others preserve the problem but solve it radically differently. This installment and the next investigate some traditional design patterns and rethink them in a functional way. In the functional-programming world, traditional design patterns generally manifest in one of three ways: (1) What is Haskell notably good for?

ScalaCheck. The reactive manifesto. Organisations working in disparate domains are independently discovering patterns for building software that look the same.

The reactive manifesto

These systems are more robust, more resilient, more flexible and better positioned to meet modern demands. These changes are happening because application requirements have changed dramatically in recent years. Only a few years ago a large application had tens of servers, seconds of response time, hours of offline maintenance and gigabytes of data. Today applications are deployed on everything from mobile devices to cloud-based clusters running thousands of multi-core processors. Users expect millisecond response times and 100% uptime. We believe that a coherent approach to systems architecture is needed, and we believe that all necessary aspects are already recognised individually: we want systems that are Responsive, Resilient, Elastic and Message Driven.

Systems built as Reactive Systems are more flexible, loosely-coupled and scalable. Scalacheat. Introduction. Scala is a modern multi-paradigm programming language designed to express common programming patterns in a concise, elegant, and type-safe way.

Introduction

It smoothly integrates features of object-oriented and functional languages. Scala is object-oriented Scala is a pure object-oriented language in the sense that every value is an object. Types and behavior of objects are described by classes and traits. Classes are extended by subclassing and a flexible mixin-based composition mechanism as a clean replacement for multiple inheritance.

The Scala Programming Language. Programming in Scala, 2nd Edition. The first edition of Programming in Scala won the 2009 Jolt Productivity Award in the Technical Books category.

Programming in Scala, 2nd Edition

Programming in Scala is clearly written, thorough, and easy to follow. It has great examples and useful tips throughout. It has enabled our organization to ramp up on the Scala language quickly and efficiently. This book is great for any programmer who is trying to wrap their head around the flexibility and elegance of the Scala language. - Larry Morroni, Owner, Morroni Technologies, Inc.

The Programming in Scala book serves as an excellant tutorial to the Scala language. I have found the book really easy to work through, and it is probably one of the better written technical books I have read recently. . - Matthew Todd I am amazed by the effort undertaken by the authors of Programming in Scala. To all readers: No matter what your programming background is, I feel you will find programming in Scala liberating and this book will be a loyal friend in the journey.

The Goals of Scala's Design. The Goals of Scala's DesignA Conversation with Martin Odersky, Part IIby Bill Venners and Frank SommersMay 11, 2009 Summary 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 Goals of Scala's Design

Scala is an emerging general-purpose, type-safe language for the Java Platform that combines object-oriented and functional programming. It is the brainchild of Martin Odersky, a professor at Ecole Polytechnique Fédérale de Lausanne (EPFL). In this multi-part interview series, Artima's Frank Sommers and Bill Venners discuss Scala with Martin Odersky. In Part I, The Origins of Scala, Odersky gives a bit of the history that led to the creation of Scala. Frank Sommers: You mentioned earlier that you wanted to create a language that would exist in the Java ecosystem and integrate with the Java infrastructure. Martin Odersky: There were fortunately not very many compromises we had to make.