Scala

Spark в действии - Жан-Жорж Перрен

2021
русский

 

 Анализ корпоративных данных начинается с чтения, фильтрации и объединения файлов и потоков из многих источников. Механизм обработки данных Spark способен обрабатывать эти разнообразные объемы информации как признанный лидер в этой области, обеспечивая в 100 раз большую скорость, чем например Hadoop. Благодаря поддержке SQL, интуитивно понятному интерфейсу и простому и ясному многоязыковому API вы можете использовать Spark без глубокого изучения новой сложной экосистемы. Эта книга научит вас создавать полноценные и завершенные аналитические приложения. В качестве примера используется полный конвейер обработки данных, поступающих со спутников NASA.


 Для чтения этой книги не требуется какой-либо предварительный опыт работы со Spark, Scala или Hadoop.

Перейти >

Scala. Профессиональное программирование. 4 изд - Одерски М., Спун Л., Веннерс Б.

2021
русский

 «Scala. Профессиональное программирование» — главная книга по Scala, популярному языку для платформы Java, в котором сочетаются концепции объектно-ориентированного и функционального программирования, благодаря чему он превращается в уникальное и мощное средство разработки.

 Программирования, благодаря чему он превращается в уникальное и мощное средство разработки. Этот авторитетный труд, написанный создателями Scala, поможет вам пошагово изучить язык и идеи, лежащие в его основе.

 Данное четвертое издание полностью обновлено. Добавлен материал об изменениях, появившихся в Scala 2.13, в том числе:

  •  новая иерархия типов коллекций;
  • новые конкретные типы коллекций;
  • новые методы, добавленные к коллекциям;
  • новые способы определять собственные типы коллекций;
  • новые упрощенные представления.
Перейти >

Scala for Java Developers - Toby Weston

2018
english

 The book is split into four parts: a tour of Scala, a comparison between Java and Scala, a closer look at Scala-specific features and functional programming idioms, and finally a discussion about adopting Scala into existing Java teams.

 In Part I, we’re going to take a high-level tour of Scala. You’ll get a feel for the language’s constructs and how Scala is similar in a lot of ways to Java, yet very different in others. We’ll take a look at installing Scala and using the interactive interpreter and we’ll go through some basic syntax examples.

 Part II talks about key differences between Java and Scala. We’ll look at what’s missing in Scala compared to Java, vice versa, and how concepts translate from one language to another.

 Then in Part III, we’ll talk about some of the language features that Scala offers that aren’t found in Java. This part also talks a little about functional programming idioms.

 Finally, we’ll talk about adopting Scala into legacy Java projects and teams. It’s not always an easy transition, so we’ll look at why you would want to, and some of the challenges you might face.

Перейти >

Practical Scala DSLs - Pierluigi Riti

2018
english

 Hello, and welcome to Practical Scala DSLs. Scala has become very popular, and with more companies adopting the language every day, its popularity and growth have swelled.

 DSLs, a way for designing software using its inherent techniques, is essentially a set of patterns that can describe software in “plain English.” This book does not attempt to cover all the theory behind DSLs. A fantastic book, Domain-Specific Languages, by Martin Fowler (Addison-Wesley Professional, 2010) provides a basic understanding of this.

 With this book, I wish to describe how to use DSLs in everyday projects. The scope of the book is to give the reader an idea of how to use a DSL on the job and, by the end of the book, see how DSLs can be used in different projects. What I intend to show is how to approach DSLs from a practical standpoint and teach the reader how to think about integrating DSLs in their daily work life.

 To better understand the book, the reader must be familiar with Scala, able to write a simple program in Scala, and have an idea about its architecture. Ideally, the reader will have in addition some familiarity with Java programming. This is because both Scala and Java use the Java virtual machine (JVM), and some examples discussed in the text highlight the differences between Scala and Java. Last, the reader should have an affinity for an editor. I use IntelliJ, but any editor would be fine.

Перейти >

Scala for the Impatient. 2nd Ed - Horstmann Cay S.

2017
english

 The evolution of traditional languages such as Java, C#, and C++ has slowed down considerably, and programmers who are eager to use more modern language features are looking elsewhere. Scala is an attractive choice; in fact, I think it is by far the most attractive choice for programmers who want to improve their productivity. Scala has a concise syntax that is refreshing after the Java boilerplate. It runs on the Java virtual machine, providing access to a huge set of libraries and tools. And Scala doesn’t just target the Java virtual machine. The ScalaJS project emits JavaScript code, enabling you to write both the server-side and client-side parts of a web application in a language that isn’t JavaScript. Scala embraces the functional programming style without abandoning object orientation, giving you an incremental learning path to a new paradigm. The Scala interpreter lets you run quick experiments, which makes learning Scala very enjoyable. Last but not least, Scala is statically typed, enabling the compiler to find errors, so that you don’t waste time finding them—or not—later in the running program.

 I wrote this book for impatient readers who want to start programming in Scala right away. I assume you know Java, C#, or C++, and I don’t bore you with explaining variables, loops, or classes. I don’t exhaustively list all the features of the language, I don’t lecture you about the superiority of one paradigm over another, and I don’t make you suffer through long and contrived examples. Instead, you will get the information that you need in compact chunks that you can read and review as needed. Scala is a big language, but you can use it effectively without knowing all of its details intimately. Martin Odersky, the creator of Scala, has identified levels of expertise for application programmers and library designers—as shown in the following table.

Перейти >

Object-Orientation, Abstraction, and Data Structures Using Scala. 2 ed - Lisa Lacher, Mark C. Lewis

2017
english

 Thank you for purchasing Object-Orientation, Abstraction, and Data Structures Using Scala. This book is intended to be used as a textbook for a second or third semester course in Computer Science. The contents of this book are an expanded second edition of the second half of Introduction to the Art of Programming Using Scala. The first half of that book became Introduction to Programming and Problem Solving Using Scala. This book assumes that the reader has previous programming experience, but not necessarily in Scala. The introductory chapter is intended to quickly bring the reader up to speed on the Scala syntax. If you already know Scala, you can skim this chapter for a refresher or skip it completely.

Перейти >

Building Applications with Scala - Diego Pacheco

2016
english

 Functional programming started in academia and ended up in the IT industry. The Scala language is a multi-paradigm language used by big players and large organizations that helps you get the correct (in the sense of pure functional programming) software and, at the same time, software that is practical and scalable.

 Scala has a very rich ecosystem, including Play Framework, Akka, Slick, Gatling, Finable, and more. In this book, we will start right from the basic principles and ideas on functional and ReactiveX programming, and through practical examples, you will learn how to code with the most important frameworks of the Scala ecosystem, such as Play, Akka, and Slick.

 You will learn how to bootstrap a Scala application with SBT and Activator, how to build a Play and Akka application step by step, and we cover the theory of how to scale massive Scala applications with cloud and the NetflixOSS stack. This book will help you to go from the basic subjects to the most advanced ones in order to make you a Scala expert.

Перейти >

Professional Scala - Alessandro Lacava, Aliaksandr Bedrytski, Benjamin Neil, Janek Bogucki, Matthew de Detrich

2016
english

 A working knowledge of Scala puts you in demand. As both the language and applications expand, so do the opportunities for experienced Scala programmers—and many positions are going unfi lled. Major enterprises across industries are using Scala every day, in a number of different applications and capacities. Professional Scala helps you update your skills quickly to start advancing your career.

 Scala bridges the gap between functional and object-oriented programming, and this book details that link with a clear discussion of both Java compatibility and the read-eval-print loop used in declarative programming. You’ll learn the details of Scala testing, design patterns, concurrency, and much more as you build the in-demand skill set required to utilize Scala in a real-world production environment.

Перейти >

Scala. Профессиональное программирование. 5 изд - Одерски Мартин, Спун Лекс, Веннерс Билл, Соммерс Фрэнк

2022
русский

 «Scala. Профессиональное программирование» — главная книга по Scala, популярному языку для платформы Java, в котором сочетаются концепции объектно-ориентированного и функционального программирования, благодаря чему он превращается в уникальное и мощное средство разработки.

 Этот авторитетный труд, написанный создателями Scala, поможет вам пошагово изучить язык и идеи, лежащие в его основе.

 Пятое издание значительно обновлено, чтобы охватить многочисленные изменения, появившиеся в Scala 3.

Перейти >

Programming Scala. 3 Ed - Dean Wampler

2021
english

 Get up to speed on Scala - the JVM, JavaScript, and natively compiled language that offers all the benefits of functional programming, a modern object model, and an advanced type system. Packed with code examples, this comprehensive book shows you how to be productive with the language and ecosystem right away. You'll learn why Scala is ideal for building today's highly scalable, data-centric applications while maximizing developer productivity.

 While Java remains popular and Kotlin has become popular, Scala hasn't been sitting still. This third edition covers the new features in Scala 3.0 with updates throughout the book. Programming Scala is ideal for beginning to advanced developers who want a complete understanding of Scala's design philosophy and features with a thoroughly practical focus.

Перейти >

Scala for Data Science - Pascal Bugnion

2016
english

 Data science is fashionable. Data science startups are sprouting across the globe and established companies are scrambling to assemble data science teams. The ability to analyze large datasets is also becoming increasingly important in the academic and research world.

 Why this explosion in demand for data scientists? Our view is that the emergence of data science can be viewed as the serendipitous collusion of several interlinked factors. The first is data availability. Over the last fifteen years, the amount of data collected by companies has exploded. In the world of research, cheap gene sequencing techniques have drastically increased the amount of genomic data available. Social and professional networking sites have built huge graphs interlinking a significant fraction of the people living on the planet. At the same time, the development of the World Wide Web makes accessing this wealth of data possible from almost anywhere in the world.

 The increased availability of data has resulted in an increase in data awareness. It is no longer acceptable for decision makers to trust their experience and "gut feeling" alone. Increasingly, one expects business decisions to be driven by data.

  Finally, the tools for efficiently making sense of and extracting insights from huge data sets are starting to mature: one doesn't need to be an expert in distributed computing to analyze a large data set any more. Apache Spark, for instance, greatly eases writing distributed data analysis applications. The explosion of cloud infrastructure facilitates scaling computing needs to cope with variable data amounts.

 Scala is a popular language for data science. By emphasizing immutability and functional constructs, Scala lends itself well to the construction of robust libraries for concurrency and big data analysis. A rich ecosystem of tools for data science has therefore developed around Scala, including libraries for accessing SQL and NoSQL databases, frameworks for building distributed applications like Apache Spark and libraries for linear algebra and numerical algorithms. We will explore this rich and growing ecosystem in the fourteen chapters of this book.

Перейти >

Конкурентное программирование на Scala - Александр Прокопец

2018
русский

 Scala – современный, мультипарадигменный язык программирования, позволяющий описывать типичные шаблоны программирования компактнее, выразительнее и безопаснее. Scala прекрасно сочетает в себе черты объектно-ориентированных и функциональных языков.

 Во втором издании книги рассматривается актуальная версии Scala 2.12, требующая для работы Java 8. Книга начинается с введения в основы конкурентного программирования в JVM и описания модели памяти в Java, а после демонстрирует основные строительные блоки для реализации конкурентных вычислений, такие как атомарные переменные, пулы потоков и конкурентные структуры данных. Затем рассматриваются разные высокоуровневые абстракции конкуренции, каждая из которых ориентирована на решение определенного класса задач, при этом затрагиваются самые последние достижения в поддержке асинхронного программирования. Также охватываются некоторые полезные шаблоны и способы использования описываемых приемов. В заключение дается краткий обзор применения разных библиотек поддержки конкуренции и демонстрируется возможность их совместного использования.

Перейти >

Learn Scala Programming - Slava Schmidt

2018
english

 As a software developer, you have a working knowledge of some imperative programming language, presumably Java.

 You've got some basic Scala knowledge and a bit of experience of using it in actual projects. As a Scala beginner, you are surprised by the richness of its ecosystem, and the multiplicity of ways in which it allows you to solve problems, as well as the number of libraries available. You want to improve your Scala skills to be able to fully utilize the potential of the language and its reworked standard library, optimally use its rich type system to formulate your programs as closely as possible to the problem domain, and profit from its functional capabilities by understanding underlying paradigms, using relevant language features and open source libraries.

Перейти >

Scala для нетерпеливых. 2-е изд - Кей Хорстманн

2017
русский

  Книга в сжатой форме описывает, что можно делать на языке Scala, и как это делать. Кей Хорстманн, автор всемирного бестселлера «Core Java», дает быстрое и практическое введение в язык программирования, основанное на примерах программного кода. Он знакомит читателя с концепциями языка Scala и приемами программирования небольшими «порциями», что позволяет быстро осваивать их и применять на практике. Практические примеры помогут вам пройти все стадии компетентности, от новичка до эксперта. 

  Второе издание было обновлено до поддержки версии Scala 2.12 и демонстрирует самые современные приемы использования языка. В него было добавлено описание последних нововведений в Scala, включая интерполяцию строк, динамический вызов, неявные классы и объекты Future.

 Издание предназначено для программистов на Java, C++ и C#, которые желают освоить язык Scala и в целом функциональное программирование.

Перейти >