1,604 karma · joined January 25, 2015
There's an enormous gap in complexity, required skill, etc between creating these Scrappy applications and building the whole app in React, and then getting it deployed, complete with real time syncing, authorization (as they've implemented with their "frames" and everything. It's at least an order of magnitude greater in effort.
> software, unlike a meal or a home-made sweater, comes with an implicit support contract that lasts forever
I don't think it always has to. It tends to be that way because so far, the lift to create a functioning cross-device multi user application has been high enough that the economics of it requires centralized teams of specialists to build an application for many hundreds of people.
If you lower the stakes really low to the point where the app is as serious as a spreadsheet, then compare it to spreadsheets. Almost everyone has dozens of really casual spreadsheets, many households have shared google sheets for particular, short-lived or casual or constantly changing use-cases. When you slap together a spreadsheet with your partner, you aren't making a promise about long term support and compatibility with the spreadsheet.
Or an other similar thing would just be paper and pen and tape, up on a whiteboard. All kinds of little "hand made" "applications" like this exist in households and in offices. Kanban boards are an example of this but there's and endless different kinds of "board-based physical apps" like chore charts and weekly meal plans. When someone writes on their fridge a list of chores and starts tallying who does what, that is not an eternal promise to maintain the piece of paper with chores and tally marks protocol/system.
The comments about being a SAAS, walled garden, and about the specific implementation here wrt where data's stored etc, this is just a prototype. A POC.
They would rather have the $100 in efficient redistribution rather than the government spend $100 so that they can benefit by $1.
I think all of these frameworks - Laravel, Rails, Django, Next.js, Spring - require deep familiarity to get the best out of them.
> Honestly I struggle to see how they could've done it without making the compiler and build tool much faster
Well, Lightbend literally was the owner of Play, SBT, and Scalac. They were in a perfect position to make the build tool and compiler much faster. Or even if SBT can't be made much faster, ditch it and make integration with gradle and/or maven really great.
Totally agreed, Slick is definitely not a good way to access the database. It massively over complicates things and was a massive oil spill that destroyed the maintainability of many codebases. But that's not really Play, specifically, just a library that lots of people used with Play. I personally was always more a fan of https://scalikejdbc.org/, if not just plain JDBC
> It was in state of semi-abandonment for several years
Yes, this is my main complaint. I remember on the front page for like 5 years after TypeSafe Activator had been totally removed from the internet, the Play website was still showing Activator commands. To this day, the Play site still hasn't removed their line about how they support CoffeeScript and Less.
> Guice (in 2.4 afaik) was a terrible mistake, completely unnecessary and at odds with the Scala philosophy > Play-JSON depends on Jackson > Standard library Futures are not so nice
Well, it turned out that the Scala Philosophy wasn't the be-all and end-all anyways, and was always changing (at some point DSL's were in, then they were out. The way people encode TypeClasses changed over the years, selectDynamic/applyDynamic were in and then they were out, symbols were everywhere and then deprecated, implicit conversions were in and then "best practice" switched to Converters) and there was always at least 2 camps who had very different philosophies. Guice is probably the most popular DI tool in the JVM world so seems to make sense to use it.
The Jackson dependency and Scala Future's shortcomings might be annoying to many, but I don't think they really hindered adoption. Even in your case, what happened? At your company they're ripping out Play and replacing it with Spring, which uses DI very similar to Guice, probably depending on Jackson, and using java Futures (if they're doing async at all).
I feel like the biggest misstep that the Scala ecosystem and Typesafe/Lightbend did was that they didn't invest more in Play Framework. 10 or 12 years ago, Play had a lot of energy and momentum, and it's a kind of thing that has broad enterprise/start up appeal. But focus was always more on Akka and what seemed like really niche architecture astronaut stuff like Actors and Actor System Clusters and Event Sourcing etc, rather than getting the basics to be super ergonomic or productive.
If they had keep just making Play Framework better and better and focusing on the practical problems that every web service faces, they could be in a similar great position as Laravel is in today or any of the many Rails/Laravel consultancies.
When people buy bonds, stocks, commodities, or purchase a car, a house, or even an Xbox, they are taking into account the resale value of that asset. If you supposed that when you're done with your house, it would be worth $0, you would be willing to pay a lot less for it. There's nothing fundamentally different here wrt Bitcoin.