AstonJ

AstonJ

This is the Future of Webdev. Crazy, Right?

This was posted on the Elixir Forum and thought it was worth sharing here!

I love how the excitement of the author shines through and I think it does a great job highlighting the benefits of functional programming, Erlang/Elixir and Phoenix LiveView!

I’d be especially keen to hear what those of you who are using OOP languages think, and whether it’s enticed you to look at Elixir :sunglasses:

Most Liked

OvermindDL1

OvermindDL1

NaN === NaN; // -> false

This is actually correct, in any language. As per the floating point spec NaN equals nothing, not even itself. To return anything else would be failing the spec, so this is correct, not a javascript’ism (which has plenty of broken things to choose from).

As much as I want to agree with most of the article, it comes off a bit… high and mighty, and there are definitely some issues, like the fact it’s trying to go back to the ol’ RPC style calls from the long past.

And you don’t need immutability, you need either safe or no aliasing, which yes means you need immutability in most languages, but in languages like Rust you don’t, it has safe aliasing, even mutably, which means you can have both performance and safety of code where pure immutability has overhead you can’t get rid of. Pure functions are good though, to make a function impure in rust means you have to touch unsafe or something wrapping unsafe, lol, and of course without the aliasing issues then it’s safe to do as long as the unsafe code is written safe.

The Erlang VM is awesome though, especially as an orchestrational glue between parts written in native fast languages like rust. Rust can do what the Erlang VM does for its actor stuff, but it doesn’t have a great pattern for Erlang VM’s multi-node, not to say you can’t do it, just takes a lot more work.

Phoenix LiveView is just the old made new again, definitely harkens back to my Wt and N2o and such days, useful style to program pages in for server-driven code. ^.^

Phoenix channels are such a fascinating abstraction that even Rocket.rs is copying it, same names and terminology, lol.

SPA’s do still have their place however, especially if the client need to do a lot of its own calculations or little to no server communication or if it needs to run offline. It would be awesome to support both static, server side dynamic, (LiveView) and client-side dynamic (SPA) all in the same codebase though.

AstonJ

AstonJ

It’s always interesting to hear your thoughts ODL :blush:

I always think of Erlang/Elixir being the ‘brains’ of an app - basically co-ordinating everything else (like the muscle :joy:) however it’s great that you can get really far with Elixir itself (particularly with things like Phoenix and LiveView) :sunglasses:

Ah that’s interesting! A great indication that Phoenix got it right :smiley:

Rust is definitely cool - and so interesting! I can’t wait to start learning it, and I do wonder whether you should write a book about it one day!? Maybe even if it’s a Rust for Beginners or Get Started With Rust book that can be read before other books? :nerd_face:

OvermindDL1

OvermindDL1

If you ever have some time to burn I still recommend reading The Official Rust Book, lol. It’s just a bit of a crash course, the reference guide and docs are more comprehensive. of course ^.^

Where Next?

Popular Backend topics Top

New
New
First poster: bot
We all know how to teach recursion. We’ve done it for decades. We pick some honored, time-tested examples—Fibonacci numbers and factorial...
New
First poster: bot
Why Zig When There is Already C++, D, and Rust? No hidden control flow No hidden allocations First-class support for no standard library...
New
AstonJ
If you’re interested in Rust this is worth a read :smiley: Technology from the past come to save the future from itself Hi I have be...
New
paulanthonywilson
Post on using UDP multicasting with Elixir to broadcast presence, and listen for peers, on a local network. I have found this approach us...
New
First poster: Exadra37
Summary: I describe a simple interview problem (counting frequencies of unique words), solve it in various languages, and compare perform...
New
New
First poster: bot
Our blog has had a long standing interest in novel uses of the BEAM, or Erlang virtual machine, as shown by the many articles we have pub...
New
tonyxrandall
As DoorDash transitioned from Python monolith to Kotlin microservices, our engineering team was presented with a lot of opportunities to ...
New

Other popular topics Top

Devtalk
Reading something? Working on something? Planning something? Changing jobs even!? If you’re up for sharing, please let us know what you’...
1050 21151 394
New
wolf4earth
@AstonJ prompted me to open this topic after I mentioned in the lockdown thread how I started to do a lot more for my fitness. https://f...
New
Exadra37
Please tell us what is your preferred monitor setup for programming(not gaming) and why you have chosen it. Does your monitor have eye p...
New
PragmaticBookshelf
Tailwind CSS is an exciting new CSS framework that allows you to design your site by composing simple utility classes to create complex e...
New
AstonJ
In case anyone else is wondering why Ruby 3 doesn’t show when you do asdf list-all ruby :man_facepalming: do this first: asdf plugin-upd...
New
PragmaticBookshelf
Author Spotlight Jamis Buck @jamis This month, we have the pleasure of spotlighting author Jamis Buck, who has written Mazes for Prog...
New
PragmaticBookshelf
Author Spotlight: Peter Ullrich @PJUllrich Data is at the core of every business, but it is useless if nobody can access and analyze ...
New
sir.laksmana_wenk
I’m able to do the “artistic” part of game-development; character designing/modeling, music, environment modeling, etc. However, I don’t...
New
AstonJ
If you’re getting errors like this: psql: error: connection to server on socket “/tmp/.s.PGSQL.5432” failed: No such file or directory ...
New
AstonJ
Curious what kind of results others are getting, I think actually prefer the 7B model to the 32B model, not only is it faster but the qua...
New