Programming with Types teaches you to design safe, resilient, correct software that’s easy to maintain and understand by taking advantage of the power of strong type systems. Designed to provide practical, instantly useful techniques for working developers, this clearly written tutorial introduces you to using type systems to support everyday programming tasks.
Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.
About the technology
Common bugs often result from mismatched data types. By precisely naming and controlling which data are allowable in a calculation, a strong type system can eliminate whole classes of errors and ensure data integrity throughout an application. As a developer, skillfully using types in your everyday practice leads to better code and saves time tracking down tricky data-related errors.
About the book
Programming with Types teaches type-based techniques for writing software that’s safe, correct, easy to maintain, and practically self-documenting. Designed for working developers, this clearly written tutorial sticks with the practical benefits of type systems for everyday programming tasks. Following real-world examples coded in TypeScript, you’ll build your skills from primitive types up to more-advanced concepts like functors and monads.
What's inside
Building data structures with primitive types, arrays, and references How types affect functions, inheritance, and composition Object-oriented programming with types Applying generics and higher-kinded types
About the reader
You’ll need experience with a mainstream programming language like TypeScript, Java, JavaScript, C#, or C++.
About the author
Vlad Riscutia is a principal software engineer at Microsoft. He has headed up several major software projects and mentors up-and-coming software engineers.
Book is short, sweet, structured and to the point. As a programmer you may have been exposed to some or all of the concepts in the book but the way they are explained and the examples using Typescript really consolidate everything together into what types are and what a type system should be. The explanations are technical enough for you to get it, but not over the top or math heavy as most materials that deal with this type of subject.
Even if you don't have any experience with TypeScript (as I am) the examples in the book and how he explains it is not an issue at all. It shows a lot of concepts like "what is a monad" or "what is a closure" or "why it is cool to send functions as parameters" and how to apply them in many cases.
I would love to have more examples over monads itself, but I loved the book.
Я был настроен очень положительно, но что то в этой книге не так. Возможно автор (как он сам пишет в начале) работал в основном на более сложных языках и брать TypeScript для примера было ошибкой, т.к. у автора опыт работы с более сложными языками. По содержанию вроде тоже все хорошо, но возможно слишком затянуто, я бы предпочёл увидеть реализацию какого-то одного проекта, а не множества разных примеров (как раз совпало бы с концепцией автора о практической пользе книги) Плюс вышло немного затянуто, но это скорее не минус, всё-таки если автор поделился всем своим опытом, то за это спасибо, но нужно понимать что обычным читателям всегда важно время, и один из главных факторов успешной книги, это её емкость, (за исключением худ.литературы, многие почему-то переносят это и на техническую) хотелось бы отметить что у автора есть свой блог, где как раз и соблюдается принцип - "краткость сестра таланта". может кому пригодится - https://vladris.com/blog/archive.html
A wide-ranging application of type systems, introduced via TypeScript. If you want to understand more about functional programming, generic programming, monoids, monads, functors, and other higher kinded types coming from imperative or object oriented programming, this might just be the book for you.
Fantastic book. This book goes from simple types all the way to higher kinded types but it is not just about types it goes over the relationship between types and popular patterns that programs use every day. This is one of those rare books which by working through it will level up your skills and give you insight into deeper understanding of logic and programming.
Accessible entry-level introduction into type systems. Using Typescript for code examples was a great choice as it allowed to introduce many basic concepts without overwhelming reader with the novelty of idiomatic non-mainstream programming languages like Haskell etc.