top | item 32320531

Elixir Livebook now as a desktop app

326 points| cgarvis | 3 years ago |news.livebook.dev

108 comments

order

xcambar|3 years ago

The Elixir ecosystem is growing incredibly well. I am impressed both from an engineering and a product perspective.

It shows that they are playing the long game.

I think they are achieving what I wished happen to the Clojure ecosystem: productive, well designed, respected and popular. Clojure missed the last step, unfortunately.

didibus|3 years ago

It seems making a Lisp popular is an impossible task.

That said, I'm not sure if the data agrees with you. I think Clojure is more popular and widely used at this time. Not sure, but I think from what I remember of the few rankings, and just the fact I don't know an equivalent success story to NuBank for Elixir, I think maybe Clojure is at the moment more popular in practice.

But with the amazing learning material Elixir is putting out, maybe it won't last.

freedomben|3 years ago

I agree, and I think their move into ML is a genius move that is going to make elixir mainstream. I'm super excited for the future.

z9znz|3 years ago

> Clojure missed the last step

Oddly, it seems to me that Clojure (the established people in its community) don't really care if anyone is attracted to it.

It seems like the people who come to Clojure do so because they caught a glimpse of it somewhere, did some digging and searching, and decided to give it a try. Not exactly the same as Sun spending $500 million to market Java.

That's not to suggest the Clojure community is unwelcoming or silent, but they generally fly under the radar.

Several years ago I went to a few of the Amsterdam Clojure meetup group meetings, and at that time there were 10 to 20 people there.

Meanwhile, the Elixir meetup would have 20-40! And Elixir was still comparatively young. Of course the Ruby meetup group was even larger, but that's no surprise given the prevalence of Rails in business.

Scarbutt|3 years ago

Because of the Java ecosystem, in Clojure you are in much more advantageous position than with Elixir.

freedomben|3 years ago

No Linux download :-(

Nevertheless it's fairly easy to install[1]. If you have docker, you can just run the image to try it out:

     docker run -p 8080:8080 -p 8081:8081 --pull always livebook/livebook
You may want to configure some things, so check out the options[2].:

If you want a "native" install, after you have elixir installed you can use

     mix escript.install hex livebook
and start it with

     livebook server
Check out the readme for more configuration options[1]

[1]: https://github.com/livebook-dev/livebook#installation

[2]: https://github.com/livebook-dev/livebook#docker

ch4s3|3 years ago

> No Linux download :-(

They discussed it, but no one has taken it on yet. I think Wojtek Mach(the desktop initial author) is a mac user, and they actively wanted to provide a way for windows users to easily try it.

didibus|3 years ago

Props to the Elixir community, it seems for some reason they've attracted a lot of people who have the will, the free time and the talent to provide amazing educational content. I've never seen a language of this size have so much quality learning material and tooling.

frellus|3 years ago

I'm currently reading an Elixir Patterns book (https://elixirpatterns.dev) which releases a side-by-side Livebook for the material with each chapter.

It's a fantastic way to learn and a huge advantage over other languages, I think, to help build up the Elixir community.

akoutmos|3 years ago

Co-author of Elixir Patterns here :).

Really appreciate the kind words and happy to hear that you are enjoying the book! Hugo Baraúna and I have really enjoyed putting this book together and feel that Livebook has become pivotal in explaining certain topics and really understanding how things work under the hood. I wrote a blog post about some of my thoughts around Livebook as a learning tool on the DashBit blog: https://dashbit.co/blog/livebook-as-an-educational-tool

lvass|3 years ago

I love the concept of local Web servers as GUI substitutes, and hope we get many more of those. Tachidesk is my favorite example. Thanks to Phoenix Liveview, Elixir is becoming a great option in this space. This method gives us every benefit of Electron and almost none of the downsides.

chadrs|3 years ago

I have the opposite opinion. These things tend to get lost in my tabs.

sidpatil|3 years ago

This approach has been around a lot longer than Electron too. Privoxy, i2p, CUPS, etc. were/are all local-first software with Web-based interfaces.

auraham|3 years ago

I feel the same. Wonder if the author can provide a bare-bones repository/template with Elixir and WxWidgets to create similar apps.

codeptualize|3 years ago

This is awesome! Starting it up from the terminal and going to the url was not super convenient for quick tasks and scripts, this is much better.

Edit: one thing that would make it even nicer is if it would remember the folder and/or recently opened notebooks.

hugobarauna|3 years ago

Recently opened notebooks are on the roadmap. ;)

redrobein|3 years ago

Why would you use a notebook for quick scripts though

MarkMarine|3 years ago

This idea is incredible, and extensible beyond these notebooks. I’d like to see something like this as a general code authoring/collaboration tool, would be nice to see when I’m working in the same code as a co-worker, or supercharged pair programming. Obviously scaled too large this would be chaos, but on a 6 person team I think this would be killer.

adriancarrieres|3 years ago

A super cool notebook, you should give it a try even without knowing Elixir with the tutorials coming with it :D

throwawaymaths|3 years ago

It would be crazy awesome if someone could figure out how to layer python underneath this. There is a very nice feature set in livebook that doesn't really exist in jupyter.

auraham|3 years ago

As others pointed out, the app uses wxWidgets for the UI and Elixir for backend, along with Phoenix. I think similar apps can be created using wxWidgets with Python by replacing Phoenix with another framework, maybe Flask or Django.

varispeed|3 years ago

Any tips why would you want to learn Elixir or what would you use it for?

I tried to learn it a couple of years ago. Bought a book and couldn't shake the impression that it was created to be complex and hard to reason about or maybe I am wrong and it is "easy", but has a steep learning curve?

That being said, I looked at Go around the same time and I clicked instantly. Easy to read, simple and yet powerful.

stu2b50|3 years ago

It shines at creating highly concurrent applications with a great deal of built in features to provide reliability and resilience. Sounds a lot like a server, and that's what much of the modern use for Elixir is. In particular, one area where it shines is stateful, long-lived requests (e.g, websockets) where many other concurrency models will either rely much more on databases to track state or potentially get choked up.

If nothing else it's neat to learn as one of the few somewhat well used languages in modern times that actually adheres to Alan Kay's original conception of OOP.

turtlebits|3 years ago

Was excited for this. However on my M1 mac, it launched once, and now it won't open. Tried killing all processes and now nothing.

fleeno|3 years ago

As someone who also doesn't know Jupyter, what sort of fun and useful things would I do with this? It looks like I can add content and some code blocks that I can execute. I guess taking notes and tinkering?

I'm messing with Elixir just for fun, so this caught my eye.

wawjgreen|3 years ago

not sure what the livebook is--the landing page is not sufficiently clear or coherent.

kcartlidge|3 years ago

> not sure what the livebook is--the landing page is not sufficiently clear or coherent.

The difference between features and benefits. It's good at telling you the features (what it does) but not so much the benefits (why you would use it, how it can help you).

A common issue, but more understandable in this case than most as your average visitor to the Livebook site will likely know they have a need for it already, rather than end up there based on a 'random' link (like this thread).

CodeSgt|3 years ago

The headline on the landing page is "Write interactive & collaborative code notebooks in Elixir".

That's pretty clear and coherent to me.

chrismccord|3 years ago

> Write interactive & collaborative code notebooks in Elixir

Think Jupyter Notebooks (if you're familiar with the python world), but collaborative and for Elixir.

lytedev|3 years ago

You're correct that it's not really captured in the prose of the article, but the first image does inform you.

Existenceblinks|3 years ago

Related question: would people pay for this kind of localhost desktop app? I'd love to sell an elixir app without bothering Electron or Rust based engine.

aaaaaaaaaaab|3 years ago

Is it by any chance an Electron app?

lytedev|3 years ago

Since Livebook is a web app, I would assume so.

junwonapp|3 years ago

How is Livebook using iframes? Is each notebook cell an iframe?

bebrws|3 years ago

How many layers can we do!! I’m guessing elixir to JavaScript to v8 or whatever the js vm was called in chrome. Then jit then binary.

Communicating over a network or one of those chrome sockets to an elixir or erlang vm so someone else can manage your data.

Life is good

lvass|3 years ago

Not quite, this is just your standard server side rendering for providing a convenient GUI alongside your erlang vm. There's no layering here, just bundling of things that are usually distributed separately (editor and vm).