• Complain

Aleksandar Prokopec - Learning Concurrent Programming in Scala

Here you can read online Aleksandar Prokopec - Learning Concurrent Programming in Scala full text of the book (entire story) in english for free. Download pdf and epub, get meaning, cover and reviews about this ebook. year: 2014, publisher: Packt Publishing - ebooks Account, genre: Computer. Description of the work, (preface) as well as reviews are available. Best literature library LitArk.com created for fans of good reading and offers a wide selection of genres:

Romance novel Science fiction Adventure Detective Science History Home and family Prose Art Politics Computer Non-fiction Religion Business Children Humor

Choose a favorite category and find really read worthwhile books. Enjoy immersion in the world of imagination, feel the emotions of the characters or learn something new for yourself, make an fascinating discovery.

Aleksandar Prokopec Learning Concurrent Programming in Scala
  • Book:
    Learning Concurrent Programming in Scala
  • Author:
  • Publisher:
    Packt Publishing - ebooks Account
  • Genre:
  • Year:
    2014
  • Rating:
    3 / 5
  • Favourites:
    Add to favourites
  • Your mark:
    • 60
    • 1
    • 2
    • 3
    • 4
    • 5

Learning Concurrent Programming in Scala: summary, description and annotation

We offer to read an annotation, description, summary or preface (depends on what the author of the book "Learning Concurrent Programming in Scala" wrote himself). If you haven't found the necessary information about the book — write in the comments, we will try to find it.

Learn the art of building intricate, modern, scalable concurrent applications using Scala

About This Book
  • Design and implement scalable and easy-to-understand concurrent applications
  • Make the most of Scala by understanding its philosophy and harnessing the power of multicores
  • Get acquainted with cutting-edge technologies in the field of concurrency, with a particular emphasis on practical, real-world applications
  • Step-by-step tutorial guide, which is full of pragmatic examples
Who This Book Is For

This book is a must-have tutorial for software developers aiming to write concurrent programs in Scala, or broaden their existing knowledge of concurrency.

This book is intended for Scala programmers that have no prior knowledge about concurrent programming, as well as those seeking to broaden their existing knowledge about concurrency. Basic knowledge of the Scala programming language will be helpful. Readers with a solid knowledge in another programming language, such as Java, should find this book easily accessible.

In Detail

This book will give you an insight into the best practices necessary to build concurrent programs in Scala using modern, high-level concurrency libraries. It starts by introducing you to the foundations of concurrent programming on the JVM, outlining the basics of the Java Memory Model, and then shows some of the classic building blocks of concurrency, such as the atomic variables, thread pools, and concurrent data structures, along with the caveats of traditional concurrency. It then walks you through different high-level concurrency abstractions, each tailored toward a specific class of programming tasks. Finally, the book presents an overview of when to use which concurrency library and demonstrates how they all work together.

Aleksandar Prokopec: author's other books


Who wrote Learning Concurrent Programming in Scala? Find out the surname, the name of the author of the book and a list of all author's works by series.

Learning Concurrent Programming in Scala — read online for free the complete book (whole text) full work

Below is the text of the book, divided by pages. System saving the place of the last page read, allows you to conveniently read the book "Learning Concurrent Programming in Scala" online for free, without having to search again every time where you left off. Put a bookmark, and you can go to the page where you finished reading at any time.

Light

Font size:

Reset

Interval:

Bookmark:

Make
Learning Concurrent Programming in Scala

Table of Contents
Learning Concurrent Programming in Scala

Learning Concurrent Programming in Scala

Copyright 2014 Packt Publishing

All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.

Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book.

Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.

First published: November 2014

Production reference: 1211114

Published by Packt Publishing Ltd.

Livery Place

35 Livery Street

Birmingham B3 2PB, UK.

ISBN 978-1-78328-141-1

www.packtpub.com

Credits

Author

Aleksandar Prokopec

Reviewers

Dominik Gruntz

Vladimir Kostyukov

Zhen Li

Lukas Rytz

Michel Schinz

Samira Tasharofi

Commissioning Editor

Kevin Colaco

Acquisition Editor

Kevin Colaco

Content Development Editor

Vaibhav Pawar

Technical Editor

Sebastian Rodrigues

Copy Editors

Rashmi Sawant

Stuti Srivastava

Project Coordinator

Kranti Berde

Proofreaders

Mario Cecere

Martin Diver

Ameesha Green

Indexer

Tejal Soni

Production Coordinator

Aparna Bhagat

Cover Work

Aparna Bhagat

Foreword

Concurrent and parallel programming have progressed from niche disciplines, of interest only to kernel programming and high-performance computing, to something that every competent programmer must know. As parallel and distributed computing systems are now the norm, most applications are concurrent, be it for increasing the performance or for handling asynchronous events.

So far, most developers are unprepared to deal with this revolution. Maybe they have learned the traditional concurrency model, which is based on threads and locks, in school, but this model has become inadequate for dealing with massive concurrency in a reliable manner and with acceptable productivity. Indeed, threads and locks are hard to use and harder to get right. To make progress, one needs to use concurrency abstractions that are at a higher level and composable.

15 years ago, I worked on a predecessor of Scala: "Funnel" was an experimental programming language that had a concurrent semantics at its core. All the programming concepts were explained in this language as syntactic sugar on top of "functional nets", an object-oriented variant of "join calculus". Even though join calculus is a beautiful theory, we realized after some experimentation that the concurrency problem is more multifaceted than what can be comfortably expressed in a single formalism. There is no silver bullet for all concurrency issues; the right solution depends on what one needs to achieve. Do you want to define asynchronous computations that react to events or streams of values? Or have autonomous, isolated entities communicating via messages? Or define transactions over a mutable store? Or, maybe the primary purpose of parallel execution is to increase the performance? For each of these tasks, there is an abstraction that does the job: futures, reactive streams, actors, transactional memory, or parallel collections.

This brings us to Scala and this book. As there are so many useful concurrency abstractions, it seems unattractive to hardcode them all in a programming language. The purpose behind the work on Scala was to make it easy to define high-level abstractions in user code and libraries. This way, one can define modules handling the different aspects of concurrent programming. All of these modules would be built on a low-level core that is provided by the host system. In retrospect, this approach has worked well. Scala has today some of the most powerful and elegant libraries for concurrent programming. This book will take you on a tour of the most important ones, explaining the use case for each, and the application patterns.

The book could not have a more expert author. Aleksandar Prokopec contributed to some of the most popular Scala libraries for concurrent and parallel programming. He also invented some of the most intricate data structures and algorithms. With this book, he created a readable tutorial at the same time and an authoritative reference for the area that he had worked in. I believe that Learning Concurrent Programming in Scala will be a mandatory reading for everyone who writes concurrent and parallel programs in Scala. I expect to also see it on the bookshelves of many people who just want to find out about this fascinating and fast moving area of computing.

Martin Odersky

Professor at EPFL, the creator of Scala

About the Author

Aleksandar Prokopec is a software developer and a concurrent and distributed programming researcher. He holds an MSc in Computing from the Faculty of Electrical Engineering and Computing, University of Zagreb, Croatia, and a PhD in Computer Science from the cole Polytechnique Fdrale de Lausanne, Switzerland. As a doctoral assistant and member of the Scala team at EPFL, he actively contributed to the Scala programming language, and has worked on programming abstractions for concurrency, data-parallel programming support, and concurrent data structures for Scala. He created the Scala Parallel Collections framework, which is a library for high-level data-parallel programming in Scala, and participated in working groups for Scala concurrency libraries, such as Futures and Promises and ScalaSTM.

Acknowledgments

First of all, I would like to thank my reviewers Samira Tasharofi, Lukas Rytz, Dominik Gruntz, Michel Schinz, Zhen Li, and Vladimir Kostyukov for their excellent feedback and valuable comments. They have shown exceptional dedication and expertise in improving the quality of this book. I would also like to thank the editors at Packt Publishing: Kevin Colaco, Sruthi Kutty, Kapil Hemnani, Vaibhav Pawar, and Sebastian Rodrigues for their help in writing this book. It was really a pleasure to work with these people.

The concurrency frameworks described in this book wouldn't have seen the light of day without a collaborative effort of a large number of people. Many individuals have, either directly or indirectly, contributed to the development of these utilities. These people are the true heroes of Scala concurrency, and they deserve thanks for Scala's excellent support for concurrent programming. It is difficult to enumerate all of them here, but I have tried my best. If somebody feels left out, he should ping me, and he'll probably appear in the next edition of this book.

It goes without saying that Martin Odersky is to be thanked for creating the Scala programming language, which was used as a platform for the concurrency frameworks described in this book. Special thanks go to him, to all the people who were a part of the Scala team at the EPFL for the last 10 or more years, and to the people at Typesafe, who are working hard to make Scala one of the best general-purpose languages out there.

Next page
Light

Font size:

Reset

Interval:

Bookmark:

Make

Similar books «Learning Concurrent Programming in Scala»

Look at similar books to Learning Concurrent Programming in Scala. We have selected literature similar in name and meaning in the hope of providing readers with more options to find new, interesting, not yet read works.


Reviews about «Learning Concurrent Programming in Scala»

Discussion, reviews of the book Learning Concurrent Programming in Scala and just readers' own opinions. Leave your comments, write what you think about the work, its meaning or the main characters. Specify what exactly you liked and what you didn't like, and why you think so.