It's a great language, I've been working with it for 10 years now. Full stack Scala with Scala.js on the frontend is so very nice. My experience is mostly in fintech & healthcare startups where the language helped us get correctness, refactorability, clarity, and high velocity at the same time without blowing up the team size.
Initially I learned Scala on the job, but I've been writing open source Scala for years since then. It's a cool language to learn and explore ideas in, since it has lots of elegantly integrated features (especially FP + OOP).
Scala may not be the #1 most popular language, and that's fine. Popular stuff surely gets the benefits of funding and attention, and sometimes lacking such support is really annoying, like a few years ago when Scala 3 was first released, the IDEs took a looong time to catch up. But I still choose Scala despite those occasional annoyances, even though I also have years of experience in JS / TS and other languages. It's just a much better tool for my needs.
^ This meme is from 10+ years ago when Scala was at the peak of its hype driven by the FP craze. Nobody seriously writes cryptic-symbolic-operator code like that nowadays. Scalaz, the FP library most notorious for cryptic operator/method names, hasn't been relevant for many years. Today everyone uses Cats, ZIO, or plain Tapir or Play, all of which are quite ergonomic.
The main reason for populism is that the incumbent governments do a consistently poor job satisfying their constituents' preferences and interests, so people get desperate to find something / someone different that might work better. Always has been, always will be, social media or not.
We haven't invented a governance structure yet that would be immune to this, although some are better than others. I'm sure the current social media algorithms are harmful as well. You can ban viral algorithms, but the hostile actors whose literal job it is to drive polarization / populism will just find other strategies to effectively deliver their message.
"Education" is nice and all, but millions of people keep smoking despite the obvious harm and decades of education, not to mention the many limitations, taxes, and bans. I mention smoking as an obviously-bad-thing that everyone knows is bad. Education succeeded, and yet, here we are, still puffing poison. But you can also look already-polarized political topics. There's been no shortage of education on those topics either, but if that worked well enough, we wouldn't be decrying populism right now.
> "Education" is nice and all, but millions of people keep smoking despite the obvious harm and decades of education
I think there’s a missed opportunity for media to make it explicit that by giving their time and attention to these platforms, people are directly generating profit. Way too many assume their involvement has no real effect, but it does. I suspect people would be far less willing to log in if it were clear that each session generates, on average, X dollars in revenue. It’s a business model most people still haven’t fully digested.
I know all about their business models, yet I couldn't care less how much money Facebook gets from ad clicks. Them making a profit is not directly harming me.
The things that are harming me are a lot more complicated than that, but people don't have the attention span to be educated about such complex issues. It's easier than ever to spread "education" now. The fact that it doesn't stick is not some grand conspiracy – most people simply don't care.
How is MacOS as enshittified as Windows? It doesn't have ads, doesn't push AI on you, their online services are trivial to ignore once and never think about again, etc. I haven't tried Tahoe, and sure, its new glass UI is shit, but merely incompetent UI design is not "enshittification" and is not in any way equivalent to what Microsoft does in Windows.
Buy a new Apple Watch and notice that the settings app with have a [1] badge trying to upsell you to buy AppleCare+. They obscure dismissing these by clicking the "Add AppleCare Coverage" button and then having a button that says actually no.
The undissmissable badges in settings irk me to no end. Using language like “finish setting up” in iOS to describe me opting out of Apple Intelligence by choice as leaving MY device in some sort of “unfinished state” is user hostile too. With the amount of effort it takes me to push back constantly on these dark patterns, I know for a fact all my less tech savvy friends and family just aren’t bothering and that’s what they count on.
Not as egregious as what windows is doing with copilot everywhere or sneakily flipping user-toggled options during updates, but it’s all some degree of gross.
This, on top of the nonstop onslaught of advertisements for F1. It seemed like every one of Apple's services were pushing for that movie. They even put it into maps, wallets, into CarPlay (while people were driving!) It was surprisingly shameless.
It's certainly not as bad _right now_ as what you'll see on Windows 11, but this is something that will almost certainly only get worse over time.
> their online services are trivial to ignore once and never think about again
The workarounds to get rid of the nag to log into your icloud account on macOS are far more difficult than the workarounds to avoid using an MS account in Windows.
Surely we can distinguish MacOS – the operating system – from the online services provided by Apple that happen to have a native app?
If you are choosing to use Apple online services, sure, you'll get upsells I guess, as with any other online service. I don't use any of Apple's online services, and never see those ads.
macOS does have ads, their online services are worse than Windows, and installing basic software like Homebrew and Git is like having teeth pulled.
Windows is absolutely miserable, but with WSL installed it's far and away the better dev environment. I say that as someone who dailies Linux and hates all three OSes.
The authenticity of old fashioned forums is often outweighed by their poor UX and in general terrible ergonomics. It's no wonder that so few people want to use them anymore. Reddit's "nested, collapsible comments sorted by upvotes" format is simply superior.
20 years after Reddit started, the best that the forums can offer is perhaps discourse.org, which is barely any better than traditional forums – sleeker UI for sure, but it's still fundamentally the same unworkable linear format. It's like sticking to magnetic tapes in the age of SSDs.
Even Facebook, one of the dumbest discussion platforms, has nested comments. Terribly implemented of course, but how does the platform designed for the lowest-common-denominator kind of user have more advanced discussion features than forums made for discussion connoisseurs? It is utterly baffling.
I strongly disagree. But maybe because of a difference of perspective. If you're imagining a Reddit-scale forum, with millions of people with no sense of community and no knowledge of the content they're consuming, then yeah a traditional forum format is awful.
Forums shine as spaces for focused communities, where people have reputations and care about the subject matter. Time-sorted discussions are great because that's what's happening - a discussion in the community. You don't want to read someone's quip first, you want to get the whole context. You don't want there to be upvotes that people try to earn - there's already your reputation in the community. If someone's a troll or gives bad advice or is wrong, they'll get called out, or banned, or simply ignored as everyone knows they aren't respected.
Forums just aren't meant for generic content and it's not because of the UI, it's because the entire concept is not compatible with masses of semi-anonymous users with no commonalities.
"Nested comments sorted by upvotes" is, for free and frank discussion, inherently far worse than non-nested in-line comments. With the latter there's no hive-mind effect, no consensus-seeking, no dopamine/approval-chasing. Also, traditional forums tended to encourage longer-form posts (which you can still see in places like Spacebattles), which naturally contained quite a lot of technical detail and pictures, whereas Reddit (and HN) are optimized for very short comments. In Reddit's case, smarmy one-liners, usually.
But the main problem, to repeat for emphasis, is that the upvote/downvote system (even if it's fair and used virtuously, and it usually isn't,) stifles disagreement and debate.
When I append "reddit" to my google search query, I'm not looking for "disagreement and debate". I'm looking for specific information on non-political topics, such as repairing my car, finding a good product in the sea of garbage, or learning new techniques. Such topics are typically discussed cooperatively rather than adversarially. For this stuff, consensus-seeking is a feature not a bug, and where the consensus appears inadequate, I'm well capable of looking past the top post. Reddit's format is not perfect, but it's better than having to read through a 30-page thread in which most messages are irrelevant to most other messages. Such threads are linear only artificially through a UI that hides the structure of the underlying conversations.
If you don't like the upvotes aspect of reddit, we could settle on the same nested format but without sorting by upvotes. But with forums, we don't even have that.
Reddit's comments aren't one-liners because Reddit's format encourages that, it's because it's the most popular site where everyone goes. If forums were as widely popular, they would see the same people making the same comments there too.
> If you don't want that, you gotta bring a wrapper or another reactivity library/framework.
Being able to use a different library with a component, instead of the component being tied to React, is the whole point.
React isn't 100x more popular because its reactivity system or any other feature is 100x better. Half the reason it's popular is network effects – too many frontend components / libraries are made React-only even though they don't need to be React-specific.
Those network effects are the trap, not the reactivity system that's as good as any other for the purpose of writing a Web Component. If you don't want to use simple and small tools like Lit.js, that's fine, but that's your choice, not a limitation of Web Components.
The point of Web Components is not to provide a blessed state management or virtual DOM implementation that will have to stay in JS stdlib forever, it's to make the components you author compatible with most / all UI libraries. For that goal, I don't know of a better solution.
I get your point. I'm fully with you that it makes no sense to use React and write React apps if you can achieve the same without React. I hate the fact that many great frontend components only work with React, especially considering that React didn't properly support Web components for ages, whereas almost every other framework had no problems with them.
However, out of the box, Web components don't come with almost anything. Comparing React to Web components is comparing apples to oranges.
Lit is great, but Lit is a framework. Now you're comparing React with Lit. Different story than React vs. vanilla Web components.
Lit is not a framework. Lit only helps you make standard web components that you can use anywhere *because they are web components*.
You could take a Lit-based web components a rip Lit out and you would still have the same component that you can still use anywhere. Lit is just an implementation detail.
Lit is a framework, that's the whole point of it. Lit is a framework that happens to generate web components, but the goal of Lit is to provide the rendering and state management necessary to actually write those components. That's the framework bit.
If you take a Lit-based web component and rip Lit out, you have dead code that won't work because it's dependent on a framework that you have removed.
You could take a Lit-based web component and replace it with a non-Lit-based web component and that would be fine, because Lit uses web components as its core interface, but Lit itself is still a framework.
> Comparing React to Web components is comparing apples to oranges.
I mean, yes, but you're the one making this comparison, saying that WCs lack reactivity etc.
Web Components are an extension of the DOM – a low level browser API. They are similarly low level. That's expected. I don't need or expect them to be something more.
I am happy that I can use any reactivity system I want to implement a Web Component. That's a feature, not a bug. Having implemented a reactivity system myself, I know that there isn't a perfect one, the design is full of tradeoffs, and I'd rather not have a blessed implementation in the browser, because it will inevitably turn out to be flawed, yet we won't be able to retire it because "we can't break the web". A blessed implementation like that would benefit from network effects just like React does, and would have all the same problems as React, plus the inability to rapidly innovate due to the browser's unique backwards compatibility concerns. I'd rather ship an extra 3KB and avoid all those problems.
Fair enough. I agree with you. It occured to me that the comment I originally replied to that claimed "Web components are the way out of this trap" doesn't mean that you can't add helpers for reactivity.
Except the problem with compatibility is almost always the reactivity element, right? Getting, say, Vue's reactivity system to compose properly with Svelte's, or React's with Angular's. And that's not going to work well when Vue is using signals to decide when to rerender a component, React is using its props and state, and Svelte isn't even rerendering components in the first place.
This is especially difficult when you start running into complicated issues like render props in JSX-based frameworks, context for passing state deeply into a component, or slots/children that mean reactivity needs to be threaded through different frameworks.
Preferred syntax is whatever looks nicer to you. It's not really two different syntaxes, just one more flexible syntax where if you choose to go full braceless, it ends up looking like python. I personally like the new braceless python-like syntax.
Scala has two main camps, one is purist FP (cats / zio / etc.), another is plain Scala, banking on ergonomic OOP+FP fusion. Neither of those is the default. FP advocates are more vocal online but that's because they need a bunch of libraries (thus more OSS work) to make that approach work, whereas the other camp just uses plain Scala and simpler libraries that aren't reinvented every 5 years, so their online presence is not as apparent.
Scala is very much alive, it's just past the initial hype stage, well into the slope of enlightenment / plateau of productivity depending on which style of Scala one is into. It's now growing slower but based on more sustainable pragmatism instead of just hype.
It became less popular a long time ago as the hype of actors as a programming paradigm died down, and then eventually akka adopted non-OSS BSL license which made many users including us switch to Pekko (a community fork) which is still developed and maintained, but again, this branch of Scala evolution is quite past its prime. Scala offers more and arguably better libraries for working with concurrency now, and even cooler stuff is on the horizon with kyo / ox / caprese.
I have been working on adding Pekko-based data pipeline into my side project, and it's an incredibly powerful system. The "bare" actors are rarely used. With streams, you can control parallelism, backpressure, add batching, retries, and so on. This is why this is so popular with systems ingesting massive amounts of data - log processing, IoT telemetry.
Which libraries are you referring to that do the same? Just curious.
I meant FP libraries like Cats Effect / FS2 / ZIO et al. – they don't really do the things that Akka / Pekko is very good at, such as multi-machine parallelism, but the conventional wisdom nowadays seems to be that it's easier to start with those libraries and progress to Pekko if you ever need that, rather than architect the system with Pekko from the start when you don't need its power.
I don't know if I personally agree with that, I've had a better experience with Akka (even raw actors) than with FP libraries, but what I mentioned is definitely the general vibe in the publicly active part of the community that's I'm observing. We gotta keep in mind that there are lots of companies and devs that never talk about what they're doing in public, so of course my perception is biased by that.
My own expertise is shifting more and more to the frontend / Scala.js these days, so please forgive/correct any inaccuracies.
The assumption that Cats Effect / FS2 / ZIO is easier than Akka / Pekko is questionable. There's the assumption that the Akka ecosystem requires the entire system to be built using the various features the ecosystem offers, when in reality it easily scales down to simple microservices just as well, if that's the only option or the overall preference.
One reason to reach for the pure functional libraries is a desire to avoid some of the many footguns Akka / Pekko has. For a long time, using Akka meant not being able to rely on the Scala type system for checking messages sent between actors, and for the people attracted to Scala due to the advanced type system, this was a deal-breaking drawback.
All in all, the FP libraries and the actor system libraries are almost direct opposite approaches to problem solving.
Well, Akka/Pekko is typed now. There is a learning curve to Akka, but it took me 3-4 weeks to get my system working. I can't imagine doing it with pure FP, it would break my brains.
As someone said - these are very cool but niche capabilities that companies do not talk about. It's almost like a secret weapon in the sea of over-engineering and hype.
It's a great language, I've been working with it for 10 years now. Full stack Scala with Scala.js on the frontend is so very nice. My experience is mostly in fintech & healthcare startups where the language helped us get correctness, refactorability, clarity, and high velocity at the same time without blowing up the team size.
Initially I learned Scala on the job, but I've been writing open source Scala for years since then. It's a cool language to learn and explore ideas in, since it has lots of elegantly integrated features (especially FP + OOP).
Scala may not be the #1 most popular language, and that's fine. Popular stuff surely gets the benefits of funding and attention, and sometimes lacking such support is really annoying, like a few years ago when Scala 3 was first released, the IDEs took a looong time to catch up. But I still choose Scala despite those occasional annoyances, even though I also have years of experience in JS / TS and other languages. It's just a much better tool for my needs.