That’s a fantastic post by Fred! I think what he’s written helps highlight what I’ve been saying about gateways - particularly:
But killer apps on their own are never really sufficient.
I definitely agree. There are two main types of killers apps that are important to languages: those that are great examples of what you can do with the language (eg: WhatsApp) and those that enable you to easily do things with that language (i.e gateways, like Rails or Phoenix).
I clearly remember that when I first got into programming and discovered Ruby, despite falling in love with it, I almost certainly would not have ended up using it if it weren’t for Rails. Same with Elixir - Phoenix was the gateway (and continues to be the biggest gateway into it) and what gives you an easy route into it and keeps you into it.
Some things I think would help Erlang are:
Better BEAM interop so we can make use of the best of the BEAM world - depending on who you are (so things like Phoenix if you’re someone who’s used to frameworks like Rails).
Some sort of way/framework that makes it easy to create good or cutting edge apps in Erlang.
On the latter point, that could be something like OTPF, and rather than it being a web framework, it could perhaps be something that echoes the sentiment behind Umbrella Apps in Elixir or what Dave Thomas describes in his course about component based development, where you have the base app then add services/layers. I think this is especially important today - where you’ll often have a web app, a mobile app, etc.
Having a framework that makes all the tough decisions so you don’t have to is extremely appealing - especially for those new to that technology/language. I cover some of this in my post about Rails:
One of the biggest draws to Rails is that it saves you a heap of trouble having to spend weeks or months researching/agonising over which technologies to adopt or methodologies to follow. If you’ve ever wanted someone to just tell you what the best are, then consider yourself told!
I think something like OTPF also falls in line with what Kenneth said a while back, that one of the Erlang/OTP team’s goals is to help show developers how to make good software… what better way to do that than a prescriptive framework
This surfaces so often that I think of writing an adapter for Erlang distribution to use protobuf/gRPC/Thrift/JSON format (+have a way to make binary_to_term use corresponding serialisation provider).
I would say you could use Nova to build cutting edge apps. From creating app to deploy a release is very fast.
Issue here it is some kind of ghosts that Erlang can’t be easy to use. And that syntax is bad and so on. And you gett all kind of magic from elixir that solves this for you. Have discussed so many times around moving code from Erlang to Elixir in companies.
I would say in the last couple of years much things have happened in the community and OTP. Rebar3 with plugins is really great. More people start to use hex. Even if it is not always optimal for Erlang. But in general Erlang have very little footprint when it come to commercial/social media then say Elixir.
You should post a thread to explore this further Maxim
That’s awesome although what I had mind when I posted was something like OTPF, i.e something that sits in-between OTP (which Kenneth mentioned needs to avoid external dependencies) and frameworks like Nova. What exactly OTPF would include could depend on the conversations in this thread (and the other one: What do you think should be in OTP?) and whatever else the community thinks such a ‘framework’ needs (that could even be it including some of what, for instance, some web frameworks currently include - and then those web frameworks could slim down to only include their respective specialist parts). Again I refer to Dave Thomas’s ideas in his course, but I have no doubt there are many others with other ideas worth exploring too (which is why I’d love to see a book or course from people like @max-au - to see how successful teams go about putting together modern/massive apps like WhatsApp).
If you’re referring to how this has impacted Nova adoption, I sympathise - because it’s not easy for web frameworks to take off as there is fierce competition in the space.
José and Chris (and their respective teams) made some very smart decisions when creating Elixir and Phoenix - there is very good reason (/value) with Elixir being Ruby-like and Phoenix Rails-like - because Ruby was one of the most loved languages around and Rails was one of the most prominent web frameworks around - I would even go as far as to say it was the industry standard due to how widely it was used and how it influenced so many other frameworks. Phoenix marketed itself as a better Rails, and with Ruby like syntax to boot it paid massively imo.
So in terms of Nova and general adoption you would need to ascertain what your USP is, why someone should use Nova over leading web frameworks and would those reasons be enough for someone to choose or move to Erlang because of it? (And if not, what could you do to make that more likely to happen? Highlight the benefits of Nova? Create some screencasts to show how easy it is to create apps in it (and so by extension that Erlang isn’t so hard after all)?) Only you can decide what path it takes and who you want it to appeal to