* 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, through practical, real-world applications
* Get this step-by-step guide packed with pragmatic examples
BOOK more » DESCRIPTION
Scala is a modern, multiparadigm programming language designed to express common programming patterns in a concise, elegant, and type-safe way. Scala smoothly integrates the features of object-oriented and functional languages.
In this second edition, you will find updated coverage of the Scala 2.12 platform. The Scala 2.12 series targets Java 8 and requires it for execution. The book 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.
The book then walks you through different high-level concurrency abstractions, each tailored toward a specific class of programming tasks, while touching on the latest advancements of async programming capabilities of Scala. It also covers some useful patterns and idioms to use with the techniques described. Finally, the book presents an overview of when to use which concurrency library and demonstrates how they all work together, and then presents new exciting approaches to building concurrent and distributed systems.
WHAT YOU WILL LEARN
* Get to grips with the fundamentals of concurrent programming on modern multiprocessor systems
* Build high-performance concurrent systems from simple, low-level concurrency primitives
* Express asynchrony in concurrent computations with futures and promises
* Seamlessly accelerate sequential programs by using data-parallel collections
* Design safe, scalable, and easy-to-comprehend in-memory transactional data models
* Transparently create distributed applications that scale across multiple machines
* Integrate different concurrency frameworks together in large applications
* Develop and implement scalable and easy-to-understand concurrent applications in Scala 2.12
ABOUT THE AUTHOR
Aleksandar Prokopec, who also authored the first edition of this book, is a concurrent and distributed programming researcher. He holds a PhD in computer science from the Ecole Polytechnique Federale de Lausanne, Switzerland. He has worked at Google and is currently a principal researcher at Oracle Labs.
As a member of the Scala team at EPFL, Aleksandar actively contributed to the Scala programming language, and he 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, Promises, and ScalaSTM. Aleksandar is the primary author of the reactor programming model for distributed computing.
TABLE OF CONTENTS
2. Concurrency on the JVM and the Java Memory Model
3. Traditional Building Blocks of Concurrency
4. Asynchronous Programming with Futures and Promises
5. Data-Parallel Collections
6. Concurrent Programming with Reactive Extensions
7. Software Transactional Memory
9. Concurrency in Practice
10. Reactors « less
Master the fundamentals of Gradle using real-world projects with this quick and easy-to-read guide
ABOUT THIS BOOK
* Write beautiful build scripts for various types of projects effortlessly
* Become more productive by harnessing the power and elegance of the Gradle DSL
* Learn how to use Gradle quickly and effectively with this step-by-step guide
WHO THIS BOOK IS FOR
This book is for Java and more » other JVM-based language developers who want to use Gradle or are already using Gradle on their projects.
No prior knowledge of Gradle is required, but some familiarity with build-related terminologies and an understanding of the Java language would help.
WHAT YOU WILL LEARN
* Master the Gradle DSL by identifying the building blocks
* Learn just enough Groovy for Gradle
* Set up tests and reports for your projects to make them CI ready
* Create library, stand-alone, and web projects
* Craft multi-module projects quickly and efficiently
* Migrate existing projects to a modern Gradle build
* Extract common build logic into plugins
* Write builds for languages like Java, Groovy, and Scala
Gradle is an advanced and modern build automation tool. It inherits the best elements of the past generation of build tools, but it also differs and innovates to bring terseness, elegance, simplicity, and the flexibility to build.
Right from installing Gradle and writing your first build file to creating a fully-fledged multi-module project build, this book will guide you through its topics in a step-by-step fashion.
You will get your hands dirty with a simple Java project built with Gradle and go on to build web applications that are run with Jetty or Tomcat. We take a unique approach towards explaining the DSL using the Gradle API, which makes the DSL more accessible and intuitive.
All in all, this book is a concise guide to help you decipher the Gradle build files, covering the essential topics that are most useful in real-world projects. With every chapter, you will learn a new topic and be able to readily implement your build files.
STYLE AND APPROACH
This step-by-step guide focuses on being productive with every chapter. When required, topics are explained in-depth to give you a good foundation of the Gradle fundamentals. The book covers most aspects of builds required for conventional JVM-based projects, and when necessary, points you towards the right resources. « less
Over 100 recipes to get the best performance from your Oracle SOA Suite 11 g infrastructure
Featuring over 100 recipes, this handy cookbook will walk you through the different ways to optimize the performance of the Oracle SOA Suite 11g. Essential reading for administrators, developers, and architects.
* Tune the Java Virtual Machine to get the best out of the underlying platform
* more » Learn how to monitor and profile your Oracle SOA Suite applications
* Discover how to design and deploy your application for high-performance scenarios
* Identify and resolve performance bottlenecks in your Oracle SOA Suite infrastructure
Oracle SOA Suite 11g forms the heart of many organisations’ Service Oriented Architecture. Yet for such a core component, simple information on how to tune and configure SOA Suite and its infrastructure is hard to find. Because Oracle SOA Suite 11g builds on top of a variety of infrastructure components, up until now there has been no one single complete reference that brings together all the best practices for tuning the whole SOA stack.
Oracle SOA Suite 11g Performance Cookbook contains plenty of tips and tricks to help you get the best performance from your SOA Suite infrastructure. From monitoring your environment so you know where bottlenecks are, to tuning the Java Virtual Machine, WebLogic Application Server, and BPEL and BPMN mediator engines, this book will give you the techniques you need in a easy to follow step-by-step guide.
Starting with how to identify problems, and building on that with sections on monitoring, testing, and tuning, the recipes in this book will take you through many of the options available for performance tuning your application.
There are many considerations to make when trying to get the best performance out of the Oracle SOA Suite platform. This performance Cookbook will teach you the whole process of tuning JVM garbage collection and memory, tuning BPEL and BPMN persistence settings, and tuning the application server. This book focuses on bringing together tips on how to identify the key bottlenecks in the whole SOA Suite infrastructure, and how to alleviate them.
The Oracle SOA Suite 11g Performance Cookbook will ensure that you have the tools and techniques to get the most out of your infrastructure, delivering reliable, fast, and scalable services to your enterprise.
What you will learn from this book
* Monitor your SOA Suite environment
* Configure the memory available to the Java Virtual Machine
* Tune the Java garbage collector
* Configure a WebLogic server to handle large loads
* Tune BPEL, BPMN, and Mediator engines
* Performance test your application
* Design your SOA Suite components for maximum performance
* Configure a cluster of SOA Suite servers
* Tune the operating system and virtualization layers for SOA Suite
This is a Cookbook with interesting, hands-on recipes, giving detailed descriptions and lots of practical walkthroughs for boosting the performance of your Oracle SOA Suite.
Who this book is written for
This book is for Oracle SOA Suite 11g administrators, developers, and architects who want to understand how they can maximise the performance of their SOA Suite infrastructure. The recipes contain easy to follow step-by-step instructions and include many helpful and practical tips. It is suitable for anyone with basic operating system and application server administration experience. « less
Immersing students in Java and the Java Virtual Machine (JVM), Introduction to Compiler Construction in a Java World enables a deep understanding of the Java programming language and its implementation. The text focuses on design, organization, and testing, helping students learn good software engineering more » skills and become better programmers.
The book covers all of the standard compiler topics, including lexical analysis, parsing, abstract syntax trees, semantic analysis, code generation, and register allocation. The authors also demonstrate how JVM code can be translated to a register machine, specifically the MIPS architecture. In addition, they discuss recent strategies, such as just-in-time compiling and hotspot compiling, and present an overview of leading commercial compilers. Each chapter includes a mix of written exercises and programming projects.
By working with and extending a real, functional compiler, students develop a hands-on appreciation of how compilers work, how to write compilers, and how the Java language behaves. They also get invaluable practice working with a non-trivial Java program of more than 30,000 lines of code. Fully documented Java code for the compiler is accessible at http://www.cs.umb.edu/j--/ « less
Scala is a modern programming language for the Java Virtual Machine (JVM) that combines the best features of object-oriented and functional programming languages. Using Scala, you can write programs more concisely than in Java, as well as leverage the full power of concurrency. Since Scala runs on the more » JVM, it can access any Java library and is interoperable with Java frameworks.
Scala for the Impatient concisely shows developers what Scala can do and how to do it. In this book, Cay Horstmann, the principal author of the international best-selling Core Java™, offers a rapid, code-based introduction that’s completely practical. Horstmann introduces Scala concepts and techniques in “blog-sized” chunks that you can quickly master and apply. Hands-on activities guide you through well-defined stages of competency, from basic to expert. Coverage includes
* Getting started quickly with Scala’s interpreter, syntax, tools, and unique idioms
* Mastering core language features: functions, arrays, maps, tuples, packages, imports, exception handling, and more
* Becoming familiar with object-oriented programming in Scala: classes, inheritance, and traits
* Using Scala for real-world programming tasks: working with files, regular expressions, and XML
* Working with higher-order functions and the powerful Scala collections library
* Leveraging Scala’s powerful pattern matching and case classes
* Creating concurrent programs with Scala actors
* Implementing domain-specific languages
* Understanding the Scala type system
* Applying advanced “power tools” such as annotations, implicits, and delimited continuations
Scala is rapidly reaching a tipping point that will reshape the experience of programming. This book will help object-oriented programmers build on their existing skills, allowing them to immediately construct useful applications as they gradually master advanced programming techniques. « less
An Introduction to Object-Functional Programming
Scala is a highly expressive, concise and scalable language. It is also the most prominent method of the new and exciting methodology known as object-functional programming. In this book, the authors show how Scala grows to the needs of the programmer, whether professional or hobbyist. They teach Scala more » with a step-by-step approach and explain how to exploit the full power of the industry-proven JVM technology. Readers can then dive into specially chosen design challenges and implementation problems, inspired by the trials of real-world software engineering. It also helps readers to embrace the power of static typing and automatic type inference. In addition, the book shows how to use the dual-object and functional-oriented natures combined at Scala's core, and so write code that is less 'boilerplate', giving a genuine increase in productivity. « less