• Complain

Ecky Putrady - Practical Web Development with Haskell: Master the Essential Skills to Build Fast and Scalable Web Applications

Here you can read online Ecky Putrady - Practical Web Development with Haskell: Master the Essential Skills to Build Fast and Scalable Web Applications full text of the book (entire story) in english for free. Download pdf and epub, get meaning, cover and reviews about this ebook. year: 2018, publisher: Apress, 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.

Ecky Putrady Practical Web Development with Haskell: Master the Essential Skills to Build Fast and Scalable Web Applications
  • Book:
    Practical Web Development with Haskell: Master the Essential Skills to Build Fast and Scalable Web Applications
  • Author:
  • Publisher:
    Apress
  • Genre:
  • Year:
    2018
  • Rating:
    3 / 5
  • Favourites:
    Add to favourites
  • Your mark:
    • 60
    • 1
    • 2
    • 3
    • 4
    • 5

Practical Web Development with Haskell: Master the Essential Skills to Build Fast and Scalable Web Applications: summary, description and annotation

We offer to read an annotation, description, summary or preface (depends on what the author of the book "Practical Web Development with Haskell: Master the Essential Skills to Build Fast and Scalable Web Applications" wrote himself). If you haven't found the necessary information about the book — write in the comments, we will try to find it.

Learn how to advance your skill level of Haskell, and use this language for practical web development. This book uses a direct, no nonsense approach, so you no longer need to spend extra time reading the documentation, blog posts, and forums to understand how to use Haskell all that knowledge is provided in one coherent resource.

Youll start by reviewing how multiple facets of web development are done in Haskell, such as routing, building HTMLs, interacting with databases, caches, and queues, etc. Youll then move on to using notable libraries, such as scotty for routings, digestive-functor for input validation, and postgresql-simple for interacting with databases.

In the later chapters, youll learn how all of these libraries can be used together by working on a fully functioning project deployed on Heroku.

What Youll Learn

  • Set up a productive Haskell development environment
  • Review basic tasks that are encountered when building web applications.
  • Explore how to interact with external systems, such as databases, queues, and RESTful APIs.
  • Build a RESTful API, website, building views and form validation.

Who This Book Is For

Software developers familiar Haskell and would like to apply the knowledge on real world applications and software developers new to Haskell.

Ecky Putrady: author's other books


Who wrote Practical Web Development with Haskell: Master the Essential Skills to Build Fast and Scalable Web Applications? Find out the surname, the name of the author of the book and a list of all author's works by series.

Practical Web Development with Haskell: Master the Essential Skills to Build Fast and Scalable Web Applications — 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 "Practical Web Development with Haskell: Master the Essential Skills to Build Fast and Scalable Web Applications" 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
Contents
Landmarks
Ecky Putrady Practical Web Development with Haskell Master the Essential - photo 1
Ecky Putrady
Practical Web Development with Haskell Master the Essential Skills to Build Fast and Scalable Web Applications
Ecky Putrady Singapore Singapore Singapore Any source code or other - photo 2
Ecky Putrady
Singapore, Singapore, Singapore

Any source code or other supplementary material referenced by the author in this book is available to readers on GitHub via the books product page, located at www.apress.com/9781484237380 . For more detailed information, please visit www.apress.com/source-code .

ISBN 978-1-4842-3738-0 e-ISBN 978-1-4842-3739-7
https://doi.org/10.1007/978-1-4842-3739-7
Library of Congress Control Number: 2018962969
Ecky Putrady 2018
This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation, broadcasting, reproduction on microfilms or in any other physical way, and transmission or information storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now known or hereafter developed.
Trademarked names, logos, and images may appear in this book. Rather than use a trademark symbol with every occurrence of a trademarked name, logo, or image we use the names, logos, and images only in an editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the trademark. The use in this publication of trade names, trademarks, service marks, and similar terms, even if they are not identified as such, is not to be taken as an expression of opinion as to whether or not they are subject to proprietary rights.
While the advice and information in this book are believed to be true and accurate at the date of publication, neither the authors nor the editors nor the publisher can accept any legal responsibility for any errors or omissions that may be made. The publisher makes no warranty, express or implied, with respect to the material contained herein.
Distributed to the book trade worldwide by Springer Science+Business Media New York, 233 Spring Street, 6th Floor, New York, NY 10013. Phone 1-800-SPRINGER, fax (201) 348-4505, e-mail orders-ny@springer-sbm.com, or visit www.springeronline.com. Apress Media, LLC is a California LLC and the sole member (owner) is Springer Science + Business Media Finance Inc (SSBM Finance Inc). SSBM Finance Inc is a Delaware corporation.
Introduction
Why Haskell

I was instantly hooked into Haskell when I stumbled upon this piece of code:

quicksort :: (Ord a) => [a] -> [a]
quicksort [] = []
quicksort (x:xs) =
let smallerSorted = quicksort [a | a <- xs, a <= x]
biggerSorted = quicksort [a | a <- xs, a > x]
in smallerSorted ++ [x] ++ biggerSorted

It is indeed not the most efficient implementation of a quicksort algorithm, but it is so terse while fully capturing the main idea of quicksort. I find it to be elegant.

Haskell is infamously known as a difficult programming language to learn. It is true, but only if you are accustomed to OOP or an imperative way of thinking. If you are already familiar with Java, you can spend a weekend learning C# and be productive with it. Its because they are quite similar enough. The same thing cannot be said for Haskell. Haskell is significantly different from those programming languages. You need to think differently. And this way of thinking takes time to learn. In my experience, learning Haskell is like learning Java or C# for the first time when you have no prior knowledge of programming.

So why would one want to invest time to build applications in Haskell? What makes it worth the initial learning curve?

Haskell is a statically typed programming language. Statically typed languages are languages in which the types are checked at compile time. It prevents you from doing stupid things, like passing in a string to a function that expects an integer. It is always better to catch these problems up front rather than three days later in production when a specific input is sent to the system. You might have lost the context already and you are supposed to enjoy your weekend!

Most statically-typed programming languages are correlated with verbosity. It is a sound statement. Since you are required to annotate the types, you are indeed writing more code. For example, in Java, you would write something like this:

public String hello(String name) {
return "Hello, " + name + "!";
}

See the String there? Its a type that you need to tell the compiler so that it can check your code for correctness.

Fortunately, Haskell has type inference. Type inference allows you to omit the types almost entirely. The compiler will still be able to tell you if your code is not correct. The same example can be rewritten in Haskell as:

hello name = "Hello, " ++ name ++ "!"

In this example, the compiler knows that name must be a string because the operations being applied to it are string operations.

The preceding example also shows how Haskell code could be so terse. Besides the syntax, there are many other features in Haskell that help you write concise code, such as higher order function and partial function applications. These features, for example, allow you to replace loops with a one-liner. Its powerful for processing and transforming data.

Learning Haskell did change the way I think about programming. In OOP, I used to think in terms of long-lived organisms called objects interacting with each other. I used to think about how to structure my objects into the correct hierarchy. Thats how OOP is taught. Remember the Cat extends Animal in OOP 101?

After learning Haskell, I think in terms of data transformation. What I usually do in my work so far can be boiled down to just transforming one kind of data into another kind of data. Its straightforward. I notice that I now write less code to achieve the same amount of functionalities with fewer defects.

Nowadays, you might have noticed that mainstream programming languages include more and more functional programming constructs. Java 8, for example, introduces Optional (from Haskells Maybe), and most importantly, lambda function. Recently created programming languages like Swift, Kotlin, or Scala also favor immutability, a concept from functional programming. Its more apparent now where the industry is heading.

So, again, why would one want to invest time to build applications in Haskell? The short answer is, Haskell lets you write applications faster and more correctly.

What This Book Is About

As I have said earlier, Haskell is infamously difficult to learn. Part of it is because there are not many resources on the subject yet, especially if you want to apply Haskell to your day-to-day job. If you investigate mainstream programming languages, there are a lot of resources that teach you how to use them.

This book is about being practical with Haskell. I learned that there are a lot of resources about Haskell aimed at beginners of the language. They teach you how to read and write Haskell code. However, there is almost no resource once you are familiar with Haskell and want to tackle bigger projects. I was struggling with these:
Next page
Light

Font size:

Reset

Interval:

Bookmark:

Make

Similar books «Practical Web Development with Haskell: Master the Essential Skills to Build Fast and Scalable Web Applications»

Look at similar books to Practical Web Development with Haskell: Master the Essential Skills to Build Fast and Scalable Web Applications. 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 «Practical Web Development with Haskell: Master the Essential Skills to Build Fast and Scalable Web Applications»

Discussion, reviews of the book Practical Web Development with Haskell: Master the Essential Skills to Build Fast and Scalable Web Applications 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.