Enter the exciting world of Julia, a high-performance language for technical computingAbout This BookWork with Julia in a multi-core, distributed, and networked environmentLearn the techniques to create blazingly fast programs with JuliaThe book walks you through various practical examples to get to grips with JuliaWho This Book Is ForThis book is for you if you are a data scientist or working on any technical or scientific computation projects. The book assumes you have a basic working knowledge of high-level dynamic languages such as MATLAB, R, Python, or Ruby.
What You Will LearnSet up your Julia environment to achieve the highest productivitySolve your tasks in a high-level dynamic language and use types for your data only when neededCreate your own types to extend the built-in type systemVisualize your data in IJulia with plotting packagesExplore the use of built-in macros for testing, debugging, benchmarking, and moreApply Julia to tackle problems concurrently and in a distributed environmentIntegrate with other languages such as C, Python, and MATLABIn DetailJulia is a new open source programming language that is used in the field of data science computing. It was created to solve the dilemma between high-level slow code and fast but low-level code, and the necessity to use both to achieve high performance. This book will give you a head start to tackle your numerical and data problems with Julia. Your journey will begin by learning how to set up a running Julia platform before exploring its various built-in types. You will then move on to cover the different functions and constructs in Julia. The book will then walk you through the two important collection types—arrays and matrices. Over the course of the book, you will also be introduced to homoiconicity, the meta-programming concept in Julia.
Towards the concluding part of the book, you will also learn how to run external programs. This book will cover all you need to know about Julia to leverage its high speed and efficiency.
I was interested in learning/reading about Julia language and I happily accepted the invitation to review this book (for PacktPub).
Before I get into the review of the book, I should mention that I was impressed by the features of Julia. Its syntax similar to Python. It supports homoiconicity/metaprogramming as in Lisp and data frames as in R/Pandas. It is flexible in admitting both static and dynamic typing. It has nice support for async tasks and map-reduce operations. Given these features, I am eager to use Julia in a weekend data analysis project.
That said, I learned all of the above about Julia from this book. While I suspect that there are tons of features/nuances of Julia not covered in the book, I am impressed by the features covered in the book and the way it was covered. Instead of providing redundantly long code listing, the authors refer the reader to listing and only provide short snippets required to explain/understand the feature. This keeps the book sharply focused on the language and its features.
Reading the book with decent programming experience, it was an easy read. I doubt if this will be the case if you have very little programming experience.
My only disappointment with the book was that it did not discuss probabilistic programming with Julia, which I was expecting based on information from other sources about Julia. May be, I was mistaken. May be, Julia language doesn't support probabilistic programming. I'll have to dig into this on my own.
Overall, in contrast with my recent experience with PacktPub books, I was really happy with this book. If you are looking for a breezy no-nonsense introduction to Julia, then read this book.
An awesome book on an awesome language conceived by brilliant MIT computer scientists!
The author clearly a technically savvy, mature professional who understands Julia very well.
Besides, the language itself beats everything I have ever seen to date (e.g. Python, C, and more). It beats every language because it is simple, friendly and elegant, and it is not built to be a data manipulation language only, but a replacement to just any programming language. How you can do the 21st century programming using GPU, parallel processing, streams and more is both astonishing and easy. The language has the type system which is very flexible and the language can call other languages or its own code or libraries or be even embedded. Database connectivity is via ODBC though looks like only. Julia is very worth starting learning. I anticipate the release 0.4 as stated by the author in the book to be even better. The book allows to set your development shop on any OS (even though using Linux implies) and smooth sailing through numerous topics and examples of high quality and code on the web for grabs. The book covers enough to start developing about any programs. Where you need to do some home work is probably in finding relevant to the task at hand libraries (that grow in number weekly).
5 out of 5, a winning combination of a superb language, good book, and author!