Just be careful with your long term investment in jQuery - it has a dangerous habit of discouraging acquisition of “proper” JavaScript skills (much in the same way many JS frameworks discourage acquisition of “proper” web application (solution) design skills ).
I don’t buy this. People that hate on jQuery forget that just a few years ago it was the cure to the madness that were different browser standards and APIs. It became a victim of its own success as browsers started to converge[1]. Obviously, you should know a bit of JS before using it (though not too much if you just want a basic site), but it’s definitely worth it and it may save Red a lot of trouble.
jQuery doesn’t discourage proper JS skills any more than Phoenix discourages OTP and Elixir knowledge or Rails does with Ruby knowledge. It’s not jQuery’s fault that people too lazy to learn JS call themselves JS devs when all they know is jQuery
That said, your last link is great and there are smaller alternatives like Zepto and fetch (for Ajax) that do the job well. I just don’t like to see jQuery being bullied for the wrong reasons!
I’m partial to React, but if you’re looking for more of a framework, I suggest Ember. The performance improvements in their somewhat-recent 2.0 release have put it back on the map.
Not necessary. Especially a website similar to Hacker News. You can just use plain Elixir/Phoenix (server rendered). This will also helps easier indexing by search engine.
In case you want an easy JS framework/library. I suggest React + MobX. I came from Angular, React/Redux, and I feel React + MobX has a nice balance between those two.
As others have suggested. Keep the brunch for now. It’ll come in handy
There is little demand for elm work, so if a person is looking to learn 1 framework and be able to make a living programming using it Elm is not an ideal candidate.
There is fairly strong uptake of Elixir compared to Elm you have places like DockYard and Erlang solutions and Plataformatec and large projects like bet365 and quite a few others using it. A good chunk of Ruby consulting shops is looking into adopting it. You have a very compelling value proposition with Elixir/Phoenix. I am not saying there will not be more production deployments of Elm but again if you need to make a living right now only knowing Elm would be really problematic vs you can actually get a day job doing Elixir.
You may also want to look at Elm-lang.org for the frontend, it plays really well with Elixir and Phoenix, it is a functional programming language that compiles to Javascript and is a lot quicker that a lot of the existing JS frameworks out there. You can use it with Material Design too. Josh at Daily Drip has a few episodes that show you how to integrate the two. You are going to end up with a lot less errors too as Elm catches them at compile time unlike JS giving you all the cryptic messages. Chris McCord talks about using Elm and Phoenix here https://www.youtube.com/watch?v=XJ9ckqCMiKk
Agree with Andre—honestly Elm is really cool and all but it’s not in any way in the same size has Elixir (and Elixir isn’t that big either). Elixir has had a handful of conferences and like four books on it and a big forum like this, not to mention a lot of adoption from the Rails crowd. Elm has just one book which isn’t finished and the language itself it still changing and maturing. Elm got lucky with NoRedInk and they’ll definitely help prove it’s a real language to work with though, I am rooting for them.
That said, if I were going to write a business (not a side project for fun) that needed a JS frontend, I wouldn’t go with Elm. There’s just way less help and resources for it out there. Honestly, JS isn’t that bad any more (I’ve actually never had a problem with it, but meh) and there’s a good amount of frameworks/libraries to help you out as well as type checking stuff like Flow or TypeScript.
And yes, this forum runs on Ember!
Also, @StefanHoutzager that link is interesting until I read this part:
It took us a year or more to write these libraries. With these in place we set about writing the app.
This is ridiculous. No way any sane person spends a year writing their own versions of libraries before starting their app. Learn the JS ecosystem and what is good vs what isn’t (for example, lodash’s padStart vs left-pad)—plenty of successful apps millions use everyday rely on the libraries they said were bad and had to modify to make “more robust”. Shrug. Sorry, just seems really stupid to me.
Not every business is a startup, so priorities can shift considerably depending on the situation.
Startups can’t afford any delays getting to market so writing something from scratch is out of the question - and often they’ll re-write a lot of it anyway once the business proves viable and they have a better idea of what they really need (example: NoRedInk started with a React-based solution and then proceeded expand and replace with Elm). SmartDraw already had a desktop based flagship product that was sustaining the business for the time being but they wanted to extend their reach with a web-based version. So their emphasis was on (a) getting it right “the first time”, i.e. having a feature-comparable web-product that wouldn’t tarnish the reputation of the existing product (and the company) and (b) having a web-product that can evolve alongside the desktop-product without costly technical divergence.
Established businesses do not like change for change sake - to them the churn in the JavaScript ecosystem seems absolutely insane - when do you get the “real work” done if you constantly have to learn the next “tool du jour”. You mention lodash, well before that underscore was king, “which was doing it wrong” so other people moved on to ramdajs - and the entire JavaScript ecosystem is like that; npm scripts, grunt, then gulp, screw it, webpack is way better, what brunch you say? Whatever you adopt today may be an unsupported tomorrow (even if it is open sourced by giants like Google, Facebook etc. - and they have they own agenda anyway (which they are entitled to as they are paying for it)). So one way to create stability is by building your own stuff - which tends to be much slower (and expensive - at least in the short run).