Rich_Morin

Rich_Morin

Musings on some recent videos by Dave and José

Background

I just watched a thought-provoking video by Dave Thomas:

The Best OO Language is a Functional One

https://github.com/pragdave/diet
https://github.com/pragdave/jeeves

The talk brings together ideas that Dave Thomas has been working on for a while. It touches on functional and object-oriented programming, hardware speed and power consumption, state, time, transformations, etc. Quite interesting and tasty…

I’m particularly pleased by the continuing evolution of Dave’s tooling, eg:

  • Diet supports architecting programs as sets of transformation recipes.
  • Diet.Debug allows time-traveling debugging over trees of execution paths.
  • Jeeves wraps (sets of) GenServers in a tasty OO-like DSL.

I also watched a (predictably) interesting talk by José Valim:

Introducing HDD: Hughes Driven Development

This talk brings together the topics of code formatting and property-based testing (aka generative testing). I like the fact that José (like Dave) encourages folks to forage through odd corners of computer science lore, pulling out cool and useful ideas (and giving credit freely and generously to the lore’s originators).

The implementation of these ideas in Elixir is already raising the level of discourse and practice; it will continue to do so in the future. As it becomes easier to create and manage distributed sets of processes, we’ll find more need for features such as back pressure (ie, GenStage), truth maintenance (ie, Phoenix Presence), etc.

Notion

FWIW, Diet and Jeeves look like a nice way to solve a problem I’ve been considering. I’m putting together a system (AxAp) that tries to make various kinds of documents more accessible. For example, it currently handles EPUB3 and some text file formats. Obviously, this involves a lot of transformations. More to the point, many of the transformations can be used in multiple processing chains.

Assuming that the necessary transformations have been encoded, it should be possible to perform dependency analysis and generate a recipe for any producible output. Of course, DIET and Jeeves would be on hand to handle the ugly details…

-r

Most Liked

Rich_Morin

Rich_Morin

Thanks for the pointer. At $30, it’s a no-brainer.

I was very pleased by the fact that José responded quite positively to the notion of bringing Clojure.spec over to Elixir. The Clojure folks have done (and continue to do) some fine work; well worth stealing! For example, I’d love to have an Elixir version of Transit (GitHub - cognitect/transit-format: A data interchange format. · GitHub).

AstonJ

AstonJ

Yep, it really is a no brainer - and thats actually why I asked Dave to drop the price, to make it too good to refuse :lol:

I don’t think Clojure Spec is coming btw - the gains may be too marginal.

AstonJ

AstonJ

Nice thread :023:

I love this too :purple_heart: and I think it’s a big reason why so many of us are so attracted to Elixir - for a better way of doing things (sometimes with a modern take on old ideas).

Not sure if you’ve seen it, but I highly recommend Elixir for Programmers (PragDave) - it made the hairs on the back of my neck stand up :003:

I haven’t seen the videos or looked at Diet or Jeeves yet, but I am sure I will at some point - I always pay attention when Dave, José and Chris get excited about something :slight_smile:

Where Next?

Popular in Discussions Top

thojanssens1
It would be nice to be able to define a redirect from one route to another from the router.ex file. E.g.: redirect "/", UserController, ...
New
AstonJ
I’ve just started the Phoenix part of the utterly brilliant online course by @pragdave. On generating the Phoenix app he uses the --no-ec...
New
Ankhers
Just a little information upfront. Generally speaking, if I feel like I need to either break a pipe chain or use an anonymous function in...
New
rower687
Hi all, I’ve been reading a lot about the “let it crash” term and how supervising processes and the whole messaging passing make an elixi...
New
jer
I’ve been using umbrellas for a while, and generally started off (on greenfield projects at least) by isolating subapps based on clearly ...
New
PragTob
Hey everyone, this has been on my mind for some time and I’d love your input on it! TLDR: I feel like maps are superioer for storing and...
New
eteeselink
Hi all, In the last days, two things happened: A blog post titled “They might never tell you it’s broken” made the rounds. It’s about ...
New
MarioFlach
Hello, I want to share a project I’ve been working on for a while: https://github.com/almightycouch/gitgud Background Some time ago I ...
New
jesse
Hi everyone, I hesitated to post this here because I don’t want you to think I’m spamming, but I’ve been working on a Platform-as-a-Serv...
New
axelson
Decided against including more info in the title, but the gist is that Plataformatec sponsored projects will continue with the assets bei...
New

Other popular topics Top

sen
Hi All, I set a environment variables in dev.exs , like below code. when i start server, how can i set the ${enable} value? thanks. d...
New
danschultzer
None of the current solutions worked well for me, so I went ahead and built a user management system from scratch. This project took far...
548 29603 241
New
baxterw3b
Hi guys, i’m new in the Elixir world, and i have to say, that i love it! i’m having some problem to understand anonymous functions with ...
New
greenz1
I have a phoenix application from which a user can download multiple(5-6) files of size 1MB. I couldn’t find anything related to sending ...
New
jononomo
I am trying to figure out how Mix knows whether the environment is test, dev, or prod – where is this set? Thanks.
New
belgoros
I’m not a pro in using Regex and can’t figure out why the following behaviour happens, especially if we take into account the difference ...
New
Qqwy
Original source of discussion: This topic on the Pragmatic Programmers’ Functional Web Development with Elixir, OTP, and Phoenix forum. ...
New
alice
Hey, Just curious what are the main benefits of Elixir compared to Clojure? When is Elixir more useful than Clojure and vice versa? Th...
New
boundedvariable
I am going through the kafka architecture. All the features what the kafka is providing are already in Erlang. I would like hear your opi...
New
joaquinalcerro
Hi there, I am working with Ecto-Postgresql and I need to call all of the records from a specific table but the table has 40,000 records...
New

Latest on Elixir Forum

Elixir Forum

We're in Beta

About us Mission Statement