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
AstonJ
Just listening to this now… Totally agree with @FrancescoC’s and @thompson_si’s comment “learn to learn” :sunglasses: In our talk we’...
New
paulanthonywilson
I had a bit of a mini-adventure following Sobelow’s advice on adding a CSP to a Phoenix App. If you want to follow along, or want to add ...
New
First poster: dimitarvp
I’ve spent the last year building keyboards, which has included writing firmware for a variety custom circuit boards. I initially wrote ...
New
First poster: bot
Over the last few years, due in large part to the hype surrounding blockchain and cryptocurrencies, decentralized applications have gaine...
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
CommunityNews
Functional programming is an increasing popular programming paradigm with many languages building or already supporting it. Go already su...
New
CommunityNews
Have you ever wanted to write a structurally typed function in Rust? Do you spend a lot of time and effort getting your Rust struct s jus...
New
brainlid
Episode 244 of Thinking Elixir. News includes the release of Elixir 1.18.2 with various enhancements and bug fixes, a new experimental SQ...
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’...
1052 22171 400
New
PragmaticBookshelf
Design and develop sophisticated 2D games that are as much fun to make as they are to play. From particle effects and pathfinding to soci...
New
AstonJ
You might be thinking we should just ask who’s not using VSCode :joy: however there are some new additions in the space that might give V...
New
Exadra37
Oh just spent so much time on this to discover now that RancherOS is in end of life but Rancher is refusing to mark the Github repo as su...
New
PragmaticBookshelf
Learn different ways of writing concurrent code in Elixir and increase your application's performance, without sacrificing scalability or...
New
mafinar
This is going to be a long an frequently posted thread. While talking to a friend of mine who has taken data structure and algorithm cou...
New
husaindevelop
Inside our android webview app, we are trying to paste the copied content from another app eg (notes) using navigator.clipboard.readtext ...
New
hilfordjames
There appears to have been an update that has changed the terminology for what has previously been known as the Taskbar Overflow - this h...
New
First poster: bot
zig/http.zig at 7cf2cbb33ef34c1d211135f56d30fe23b6cacd42 · ziglang/zig. General-purpose programming language and toolchain for maintaini...
New
PragmaticBookshelf
A concise guide to MySQL 9 database administration, covering fundamental concepts, techniques, and best practices. Neil Smyth MySQL...
New