I've already hit the problems. I'm trying to rebuild the successor to some past systems in Elm and one thing we learned on those systems was that to get good performance it was critical that we prioritize HTTP fetches so that we didn't ask for the low priority items at the same time as the high priority items. From a correctness standpoint, the particular fetches are a local problem and the Elm architecture provides a reasonable way to route those. But the prioritization is a global problem. To go with that, I need cancelation support because that's the other key piece in getting responsiveness and what that means in practice is that if something hasn't left the queue yet, I need a way to cancel it. What are the Elm design patterns to deal with this sort of local v global situation?
What I'm hearing is, "just build a big program and worry about it later". It may be that Elm manages to let things scale further than in the past but that wouldn't really be anything new. Wirth's Pascal had no modularity. But we've learned as an industry that the ability to modularize code helps with reasoning about it — a small module can be subjected to the sort of thorough code review that a large one can't — and helps with keeping programmers out of each others way. Team scale is a problem that I'm also already looking at. While Elm may scale up to monolithic code bases better than some languages, I strongly doubt that it's brought some new magic to the table that makes modularization and separation of concerns irrelevant. So, the question is, what practices should we be keeping in mind so that the codebase doesn't eventually just become so huge that it can't move and adapt? What patterns and architectures should apply to code written now so that it can be modularized down the road? Mark On Fri, Aug 26, 2016 at 12:02 PM, Josh Adams <josh.ruby...@gmail.com> wrote: > Before committing to a new framework like Elm, one would first like to >> know that it can be scaled, how it can be, what will be necessary to >> refactor code to make it scalable and what pitfalls one could have avoided >> in the first place that may become big problems later. I feel more >> comfortable about the start simple approach once I've got that figured out. >> > > So...it's super nice and scalable. Use us as arguments from authority > (not that I'm a huge authority on this or anything, but I've built enough > large systems (billions of dollars in transactions per year, etc) in other > languages and done enough elm that I'm entirely convinced. The problem > stems from people *really* wanting to invent a problem before they've hit > it. I did it too early on in Elm. And I was mad when I got responses like > this. > > Then I breathed a bit and though "huh these people have been doing it for > a while, why don't I just take their advice and see how it goes". And it > was glorious. > > -Josh > > -- > You received this message because you are subscribed to the Google Groups > "Elm Discuss" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to elm-discuss+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Elm Discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to elm-discuss+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.