Development Workflows in Haskell.

avatar

Posted by Robert Bobbett - 17 October, 2018

Development Workflows in Haskell

Our monthly webinar series is really starting to take off and judging by the registration numbers we might be forced into allowing more than 500 people to register for our next webinar which could be about Rust - Don't hold us to that ;)  For Roman's, Development Workflows in Haskell, we had 434 registrants which makes this our most popular webinar so far.  

About the Webinar

In this month's webinar, Roman Gonzalez will help you take your workflow skills to the next level by exploring different approaches to Haskell development. From compiling a full application whenever you save a file, to experiment with in-progress code drafts over a REPL, we will explore the benefits of REPL driven development and how to integrate this to your everyday routine easily.

Coming from classic typed programming languages like Java, you get to learn about the benefits of types on large code bases, and with dynamic type languages like Python, you get to experience the benefits of a quick feedback loop using a REPL, interacting with the code as you develop it. In this webinar, Roman will demonstrate how you can get to use these two essential aspects of development using Haskell tooling.

Topics to be covered:

  • Differences between interpreted and compiled workflows
  • Haskell development using Stack
  • Haskell development using GHCi
  • How to customize and extend GHCi
  • Running your application test-suite over the REPL
  • Running applications over the REPL
  • Demo the usage of a couple of text editors and what workflows they provide 
Watch the Webinar

 

The slides to this webinar are also available at Development Workflows in Haskell. We decided to include the chat log for this webinar and it can be seen at the end of this blog post.

We want your feedback for webinar topics

We would like to hear your suggestions for future webinar topics. The simplest way to accomplish this is to add a comment to this blog post with your suggestion. Alternatively, send your suggestion via email to socialmedia@fpcomplete.com.

Check out our new Explainer Video

At FP Complete, we do so many things to help companies it's hard to encapsulate our impact in a few words.  They say a picture is worth a thousand words, so a video has to be worth 10,000 words (at least). Therefore, to tell all we can in as little time as possible, we recently produced a new explainer video. Check it out by clicking the video link below. It's only 108 seconds to get the full story of FP Complete. One last thing. We have a home page a facelift, and you can check it out here.

In case you haven't read it yet

Our State of Haskell Report 2018 has proven to be an excellent read for those that are interested where the language is heading, and its rate of adoption for commercial applications.  You can download the report by clicking the image below. Also, Aaron was recently interviewed by InfoQ about the report, and you can find that article here - Haskell Adoption and User Satisfaction Growing.
 
  New Call-to-action  
 

Finally - Fix your DevOps Challenges

If you haven't heard, we just published an ebook about DevOps and the 5 strategies you can implement now to help your IT Projects. Click the picture below to get your free copy today.

  5 Reasons Your Project is Failing  

 

Webinar Chat Log

10:00:58 From Michael Snoyman : Hi everyone, welcome to the webinar, we'll be getting started in a few minutes once everyone's had a chance to join.
10:01:32 From Nick Linker to All panelists : Hello everyone!
10:03:18 From Coury Ditch : Hey Michael & Roman! Thanks for doing this webinar, and thanks FP Complete for the great learning resources.
10:03:30 From Jingjing Duan : yea thanks!
10:03:34 From Samuel Castro to All panelists : :)
10:03:47 From Michael Snoyman : Feel free to drop questions here and in the Q&A, I'll pass them along to Roman at appropriate break points
10:08:41 From Barry Moore to All panelists : Can slides be shared at end?
10:09:13 From Michael Snoyman : I believe so Barry, I'll confirm with Roman after the webinar
10:10:36 From Nick Linker : The bash prompt is awesome :-P
10:14:41 From Nick Linker : Guys, is there anyone who is recording the video?
10:14:50 From Edmund Cape : Is there a way to show modules without the file name?
10:14:54 From John Soo to All panelists : Spacemacs <3
10:15:08 From Edmund Cape : I use it a lot, but find the filename obfuscates the list
10:16:23 From Edmund Cape : thank you.
10:17:28 From Nick Linker : How to unload a module then?
10:18:25 From Daniel Leones to All panelists : Usually, in next days, they release a video recoding of this webinar.
10:19:03 From Michael Snoyman : Daniel: that's correct, we intend to release a video in the near future.
10:19:10 From Michael Snoyman : Nick: Question noted
10:22:51 From Nick Linker : How to execute only one (or several) test, not the whole suite?
10:24:17 From Nick Linker : Thanks, this answers the question.
10:24:25 From Jyothish Joshi : Is “stack repl” same as “stack ghci”?
10:25:41 From Casey Allred to All panelists : is there a way for the repl to recognize changes in the package.yaml and possibly pull and compile the new dependencies without exiting and building?
10:25:43 From Edmund Cape : does `:m -<module name>` not unload a specific module?
10:26:44 From Edmund Cape : before leaving this section: can we list the steps to link the test dependencies?
10:27:03 From Michael Snoyman : What do you mean by link?
10:27:26 From Edmund Cape : we get import errors
10:27:56 From Benito Haskelitto : :m - <module name> works for :l name
10:27:58 From Michael Snoyman : I don't think we'll be able to get into that kind of debugging in this webinar
10:28:18 From Nick Linker : What is BCO?
10:28:44 From Michael Snoyman : Byte Code Object if I'm not mistaken
10:29:00 From Nick Linker : Thanks, Michael.
10:29:07 From Michael Snoyman : :)
10:30:52 From Niklas Hambuechen : Another benefit of object code is that you can turn on -O flags. A drawback is that object code loads much slower than byte code (unless already cached on disk).
10:36:00 From Nick Linker : this is cool trick
10:36:00 From Michael Xavier : what is :seti again? as opposed to :set
10:36:09 From Michael Xavier : haha nm
10:36:23 From Michael Snoyman : Roman is psychic
10:36:40 From Michael Xavier : haha clearly
10:36:41 From Daniel Leones to All panelists : haha
10:37:32 From sdf asdf : half a megabyte to add up numbers?
10:37:39 From Nick Linker : half of megabyte to calculate 5 :-D
10:40:17 From Pankaj Godbole : Can you please mention where .ghci resides? Thanks.
10:40:59 From Daniel Leones to All panelists : In slides, I guess.
10:41:05 From Nick Linker : Roman, how do I make multiline definitions in repl?
10:41:13 From Han Joosten to All panelists : this is a neat .ghci file. Can it be shared?
10:41:54 From Jingjing Duan : can you share your ~/ghci file?
10:41:57 From Nick Linker : (... they usually require correct indentation)
10:42:04 From Pankaj Godbole : OK, got it! :-)
10:42:13 From Jyothish Joshi : Is `stack ghci` exactly same as the underlying `ghci` or are there any additional functionalities (do all the commands mentioned over here like :seti etc work on plain `ghci` as well) ?
10:42:38 From Michael Snoyman : You can use `stack ghci --verbose` to see the extra flags passed to `ghci`. It also sets some environment variables such as GHC_PACKAGE_PATH
10:42:51 From Casey Allred to All panelists : :{ and :} for multi line GHCI
10:42:56 From Michael Snoyman : Thanks Casey :)
10:43:06 From Michael Xavier : IIRC git can't preserve the permissions on a .ghci file and checks it out with too-open permissions for ghci
10:52:35 From Samuel Castro to All panelists : Are you guys going to share this video?
10:52:39 From Coury Ditch : *clap*
10:52:48 From Nick Linker : Ah DEBUGGING is not touched, ugh...
10:52:49 From Jingjing Duan : great webinar!
10:52:50 From Pankaj Godbole : Thanks Roman
10:52:54 From John Askew : thanks!
10:52:55 From Nick Linker : But thanks anywhay
10:52:57 From Jörn Gersdorf : Thank you, Roman!
10:52:57 From Anton Latukha to All panelists : Great lecture.
10:52:59 From Karl Berger : Thanks Roman!
10:52:59 From Samuel Castro to All panelists : Good job!
10:53:00 From Rich Beerman : Thank you!
10:53:01 From Michael Xavier : Thanks!
10:53:02 From Jan Stranik to All panelists : thanks.
10:53:03 From Alexei Pastuchov to All panelists : thank you
10:53:04 From Anton Latukha to All panelists : Thank you!
10:53:04 From Jameo Jones to All panelists : Thanks; I learned a lot.
10:53:07 From Casey Allred to All panelists : thanks!
10:53:07 From Samuel Castro to All panelists : thanks!
10:53:08 From Nikolay Artamonov to All panelists : Thanks! )
10:53:08 From Alex Bielen : thanks roman!
10:53:09 From Edmund Cape : thank you!!
10:53:11 From Han Joosten to All panelists : Great, very inspiring. This is going to save a lot of time!
10:53:13 From Jyothish Joshi : Thanks!!!
10:53:15 From Han Joosten to All panelists : Thanks!!
10:53:19 From Bulent Basaran : Thank you :-)
10:53:20 From NILESH MESHRAM : no
10:53:20 From John Soo to All panelists : thanks!!
10:53:20 From Pablo Adames to All panelists : thanks
10:53:21 From Franck Rasolo : Thanks Roman & Michael!
10:53:21 From David Nicholaeff to All panelists : Danke
10:53:24 From NILESH MESHRAM : thanks
10:53:30 From Vassil Keremidchiev : Thank you!
10:53:32 From Yifan Yu : thanks!
10:53:33 From Dan Banta : Thank you.
10:53:34 From Aleksandr Lisenko : Thank you!
10:53:38 From John Askew to All panelists : Seems like ghcid completely replaces the `stack build —fast —file-watch approach`, is there any reason to use the former?

Topics: Haskell Development Workflows, GHCi, Haskell DevOps, Compiled Workflows, Interpreted Workflows, Haskell Software

Contact us for a devops consultation

Recent Posts

Is Rust functional?

read more

Development Workflows in Haskell

read more

2018 Haskell Survey Results

read more