- 本カテゴリの商品を2500円以上購入で買取金額500円UPキャンペーン対象商品です。商品出荷時に買取サービスでご利用いただけるクーポンをメールにてご案内させていただきます。 詳細はこちら (細則もこちらからご覧いただけます)
Scala Cookbook (英語) ペーパーバック – 2013/8/23
Kindle 端末は必要ありません。無料 Kindle アプリのいずれかをダウンロードすると、スマートフォン、タブレットPCで Kindle 本をお読みいただけます。
Save time and trouble when using Scala to build object-oriented, functional, and concurrent applications. With more than 250 ready-to-use recipes and 700 code examples, this comprehensive cookbook covers the most common problems you'll encounter when using the Scala language, libraries, and tools. It's ideal not only for experienced Scala developers, but also for programmers learning to use this JVM language.
Author Alvin Alexander (creator of DevDaily.com) provides solutions based on his experience using Scala for highly scalable, component-based applications that support concurrency and distribution. Packed with real-world scenarios, this book provides recipes for:
- Strings, numeric types, and control structures
- Classes, methods, objects, traits, and packaging
- Functional programming in a variety of situations
- Collections covering Scala's wealth of classes and methods
- Concurrency, using the Akka Actors library
- Using the Scala REPL and the Simple Build Tool (SBT)
- Web services on both the client and server sides
- Interacting with SQL and NoSQL databases
- Best practices in Scala development
Alvin took the circuitous route to software development. He managed to get a degree in Aerospace Engineering from Texas A&M University, while all he was really trying to do was play baseball. Once he became a practicing engineer, he realized he liked software and programming more than engineering. So in approximate order he taught himself Fortran, C, Unix and network administration, sed, awk, Perl, Java, Python, Ruby, JRuby, Groovy, PHP, and Scala. During this process he started a software consulting firm, grew it to fifteen people, sold it, and moved to Alaska for a few years. After returning to the Lower 48, he self-published two books ( How I Sold My Business: A Personal Diary, and Zen and the Art of Consulting ). He also created devdaily.com, which receives millions of page views every year, and started a new software consulting business, Valley Programming."
The book is more of a reference manual than a reading book. It consists of a large number of practical problems and their solutions. But what I liked is that for every topic there is not only a solution, but also a paragraph called 'discussion' which goes a little deeper into the subject.
One could wonder why one would need such a book if you could just Google your question and find the answers on the Internet. But the trouble with that approach is that, in particular for Scala, for each problem there are many possible ways to solve it. And some of them might not be good practice, might be deprecated or just plain wrong.
This book gives solid answers, teaches about best practices and tries to tell you where to apply to solution and where not.
But I HAD heard of LISP, Haskell, C#, Java and my beloved Python. Little did I realize before the conference (3 years ago) that Scala actually COMBINES the best of all those, runs on the Java JVM, uses tools like Ant seamlessly, and has non-glue access to ALL the Java libraries.
But that's just the beginning. Scala is niether purely functional nor purely imperative, is static typed, yet works wonderfully in my real time robotics applications. Unlike even C#, let alone Java, you can do "quick" object compile commands without statics or class declarations, just like a script! You can access the JVM compiler, or .net. or scala's own interpreter, depending on your need. WOW. Scala has the functional bennies of pattern matching, macros, currying, tail recursion, immutability, algebraic types, lazy evaluation, pattern matching and many more; fixes the non unified type and type erasure as well as checked exceptions problems in Java (and many others); Scala has a unified type system (like C#) unlike Java, even though it is Java seamless!
So what do all these wonderful things have to do with this gem of a book? Easy: what good is a book if it just rehashes the Java features and misses the unique wonders of Scala? THIS TEXT DELIVERS! By that I mean it gives examples of ALL the differences, in English and code, that make this language a winner among winners.
At over 700 pages, you can frame this amazing book as a learning text, a reference, a cookbook, an encyclopedia, and for sure a valued friend for the library of every Java and C# jock. Because of parallel, concurrency and run time features (dear to the heart of roboticists, circuit folks like me), I believe that this text gives powerful evidence that Scala could not only be the next Java, but next C in circuits, Erlang in parallel (Early Scala used the Actor model, but that is being phased out for AKKA in the next few releases), and Lisp in functional!
You don't need to know Scala to benefit from this book, and in fact you CAN LEARN Scala just as well with this book as any of the intro Scala texts, and save yourself a ton of money and duplication, BUT like those many fine intro texts, you still have to understand basic OOP/ functional or both (in other words use it to learn your soon to be favorite language, but not to learn basic programming). In other words, if classes, functions, types, recursion, objects etc. still confuse you, this isn't the place to start. Another cool thing about both this text and Scala is that they get rid of the very silly "never use go to" that was supposedly the hallmark of imperative, and cut through all that baloney (can you say jump statements?) with very clear and simple switch and other alternatives. Both day to day coders like myself will love this cookbook, as well as "purists" who look down their noses at Java itself due to Prolog or Lisp. THIS TEXT AND THIS LANGUAGE truly blend all the best features of both worlds!
Highly recommended for coders of all skills, even advanced pros, and of course oddballs like me who are more into circuits, embedded and run - real time monsters, robotics, etc. If you're just getting out of High School and are considering which language to get started with, I'm not trashing Java (and still LOVE Lisp and Python), but I've got to say I wish I'd read this text when making those decisions! Due to being an O'reilly tome, the code also is relatively bulletproof and most of the snippets I tried ran flawlessly, but out of nearly 1,000 yummy pieces of this pie, I've only tried about 100, so take it in that context. Most authors (including this text) don't consider Scala a good language to use to "learn basic programming" -- but also concede that since Twitter, Netflix and LinkedIn run on it (among many others) it IS worth eventually learning.
ROBOTICIST/ INVENTOR EMAILER ANSWER: YES, I do think this also could be a C or C++ successor, including in embedded. Surely not as a "spice" circuit compiler, but more for very large, data intensive applications just as when you move from Arduino schemes to Linux as you evolve. If I were Apple, I'd be eyeing it in lieu of C++ right now. I mean, think about it, both .net and JVM are used in embedded bricks today. One of our most complex, 60 degrees of freedom pick and pack machines includes the JVM. There are Haskell and Scheme solutions that would make the Java used MUCH better, and Scala allows that "big data," parallel combination to happen ON the JVM, while adding the wonderfully robust Matlab/simulink like libraries of functional CAS approaches, and soon, AKKA.
Truly next decade's language in my opinion, granted after only using it for a few years (remember, fully stable versions are still coming out as this review is being written! If you're a patent type or circuit/ software developer, N.B.). If you also think the relatively new Oracle/Sun thing might mean bye bye Java innovation... well, here's a place to turn! We get a lot of requests to review books, and there seems to be a new Scala book coming out every month, so if that's any indication, here's a language that looks like a clear frontrunner for the Java throne.
Library Picks reviews only for the benefit of Amazon shoppers and has nothing to do with Amazon, the authors, manufacturers or publishers of the items we review. We always buy the items we review for the sake of objectivity, and although we search for gems, are not shy about trashing an item if it's a waste of time or money for Amazon shoppers. If the reviewer identifies herself, her job or her field, it is only as a point of reference to help you gauge the background and any biases.
This is by far my favorite book for properly learning what Scala has to offer.
(a) the content fully justifies the title (cookbook recipes): all recipes there are illustrated with lucid and relevant pieces of code.
(b) the content exceeds expectations: not only you can find numerous practical recipes; they are also augmented by discussion, which attempts to pour light on why the code is written the way it is, and this discussion is almost always helpful, sometimes even pretty deep as for the book that is supposed to provide... well - recipes.
You can't use the book to begin studying Scala - you have to be introduced to the language by some systematic approach first. But, if you already read about Scala just a little, and used it just a little, then it is a very useful reference book and also text enriching your horizons.