I don't know if this changes anything, but I'm guessing a lawsuit is coming, so we shall see. But it would be great if people did some research before commenting on the story.
29,995 karma · joined September 15, 2008
I don't know if this changes anything, but I'm guessing a lawsuit is coming, so we shall see. But it would be great if people did some research before commenting on the story.
Patents are the most problematic. It's why it's important, for instance, for the OSS license to also include a patents-grant that applies to derived works as well, something that (at least in the past) companies like Microsoft and Facebook failed to provide.
Furthermore, even Open-Source foundations and non-profits have trademarks that they protect. Once upon a time, Debian had problems with patching Firefox, as Mozilla did not accept the modifications, leading to a Debian-specific rebranding:
https://en.wikipedia.org/wiki/Debian%E2%80%93Mozilla_tradema...
This issue is also about the free use of WordPress.org APIs. This is like expecting forks of Chromium or of Android to have continued (free) use of Google Play. Obviously, Google Play is not really included in the OSS deal, and it is only through the continued benevolence of Google that alternatives still have access to it.
And the quote is out of context.
The article also gives a timetable of conversations that happened between Automattic and WP Engine well in advance; therefore, the demands shouldn't have been a surprise, as claimed.
> overwhelmingly driven by existing large enterprise codebases
That happens with all mainstream languages, but it's a feedback cycle. The more popular a language is (in large enterprise codebases), the more it will get used in new projects, for obvious reasons. People want to get shit done and to have good ROI and maintenance costs. Therefore, the availability of documentation, tooling, libraries, and developers helps, in large and small projects alike.
And yes, Java is quite fresh, IMO.
Again, look at Java.
Ofc, there's always the question of what happens with a market that isn't constantly growing due to zero-interest rates phenomenon. I guess we'll see, but IMO, that's problematic for newer languages, not established ones.
I too am a contributor of very popular libraries and am very familiar with ecosystem. One thing to keep in mind is that the language's culture has evolved. When I picked up Scala, back in 2010, the Future pattern and Future-driven libraries were all the rage. Whereas nowadays people prefer alternatives which now includes blocking I/O (Loom), with Future-driven libs being a risk going forward.
https://redmonk.com/sogrady/2024/09/12/language-rankings-6-2...
The initial hype has died off and that's OK. The hype cycle is inevitable for all languages. Also, predictions rarely happen, mostly because the landscape has changed. Mainstream programming languages can no longer die like Cobol did.
E.g., Java has been dying ever since 2001, surviving the dotcom bubble, .NET, the P in LAMP, Ruby, JS, or Go. Python was supposed to die on its version 3 migration, with people supposedly moving to Ruby.
FWIW, Scala is the world's most popular FP language, it has good tooling, and libraries, and Scala 3 is a wonderful upgrade.
And you're saying that they targeted one user specifically ... I say, where's the problem?
To make a proper analogy, if Google abused Wikipedia or the Internet Archive, shouldn't these non-profits have the power to ban one specific user from abusing their free services?
And yes, Automattic pays WP.org's bills. I would prefer independence ... maybe if more companies contributed, that would happen.
And this issue of independence is separate, don't move the discussion...
Why is WP.org obligated to provide free services to WP Engine and their users? Why the entitlement?
There are many issues with how this was handled but this isn't one of them.
Bots are now blocked because they've been abusive. When you host content on the internet, it's not fun to have bots bring your server down or inflate your bandwidth price. Google's bot is actually quite well-behaved. The other problem has been the recent trend in AI, and I can understand blockers being put in place, since AI is essentially plagiarizing content without attribution. But I'd blame OpenAI more at this point.
I also don't think you can blame Google for the centralization behind closed gardens. Or for why people no longer link to other websites. That's ridiculous.
And you should be attributing them the fact that the web is still alive.
If anything, it is the indoctrination in Free Software that led many young people to believe that proprietary software is immoral. Coupled with zero-interest rates, this led to companies founded without sustainable business models. The companies making it work are usually doing so by selling products and services where the OSS parts are complementary and not the main product being sold, and it's a good thing they do.
I'd say that the doctrine part doesn't help at all.
And I was pointing out my preferences, thinking we may have an interesting discussion. It appears not.
Cheers mate,
Haskell, for example, is harder to pick, and I wouldn't pick Idris even if I founded my own company.
I, for one, prefer more static typing, rather than less. I prefer Scala, OCaml, F#, or Rust. And I've seen some difficult refactorings accomplished in Scala due to its expressive type system, although I can understand why it can be a turnoff.
The downside of having more static typing is a bigger learning curve, so you end up sacrificing horizontal scaling of software development (hiring juniors fast) over vertical scaling (doing more with fewer, more senior people).
Another downside is many times a slower compiler, which changes how you work. Once the code compiles, it may be correct, but then again, you end up doing less interactive development, so you work more in the abstract, instead of interactively playing with the code. I.e., Python's `pdb.set_trace()` is rarely available in static languages. I've always found this difference between dynamic and static languages quite interesting.
The application domain is not relevant because you rarely know the domain up-front. Even if the domain is fully known by business stakeholders, it's not known by the application developers, and those domains can be vast. Application development is a constant process of learning the domain and of extending the existing functionality.
This is why all the talk about how LLMs are going to make it possible to replace programmers with people using prompts in English doesn't make much sense. Because the act of programming is primarily one of learning and translating requirements that are initially confusing and context dependent into a precise language. Programming is less about making the computer dance, and more about learning and clarifying requirements.
Static typing helps with refactoring, A LOT!
So when your understanding of the domain changes, YOU WANT static typing because you want to safely change already existing code. You want static typing precisely because it gives you “fast adaptation”.
It's the same argument for why someone would pick Clojure over other dynamic languages. Clojure gives you some guarantees due to the pervasive use of immutability, such that it gives you a clearer view of the API's contract and how you can change it. But statically typed FP goes even further.
I've been involved in projects using dynamic typing (PHP, Perl, Ruby, Python) and with no exception, the code became a mess due to the constant evolution. This is one reason for why we preferred an architecture of microservices because it forces you to think of clear boundaries between services, and then you can just throw away or rebuild services from scratch. Large monoliths are much more feasible in statically typed languages, due to the ability for refactoring. And no, while unit testing is always required, IMO, it isn't the same thing.
I just logged into Kagi, and searched for “restaurants”. Kagi can see my country because their UI says so, yet it gave me “top 10 restaurants in Groningen Province” (Netherlands), as the first result and the second result was “top 10 restaurants in Barcelona”. And I don't live in the Netherlands or Spain.
I also searched for a programming question, an issue I recently had, with the query “slick breaks binary compatibility”. Google gave me fresh discussions describing the issue, whereas Kagi gave me a GitHub issue from 2021 that described issues with the previous major version.
I did not cherry-pick these searches.
---
Speaking of, Kagi doesn't have their own index, they just use Bing's API, enhanced with results from other sources, much like what DuckDuckGo does; and like DDG they tend to be disingenuous about it.
https://help.kagi.com/kagi/search-details/search-sources.htm...
What in the world are people paying for is a complete mystery to me, but YMMV.
---
So, again, I'm asking for that one competitor that's 30% better than Google.
There are 2 reasons freemium shared-source-style licenses are bad mouthed:
1. The products get advertised as open source; inviting people to look at it and contribute, the problem being that they are legal minefields, copyright or patents lawsuits that are waiting to happen. This was the biggest complaint against Microsoft's Shared Source initiative back in the day, and it's just as true now.
2. Some companies made their product popular via Open Source, like MongoDB, Redis, Elasticsearch, took all the contributions and the free marketing, then switched; such instances being a bait-and-switch. Elasticsearch in particular is interesting because what they wanted was to withhold security patches from the OSS version, and Amazon got on the way by pushing PRs for patches.
All these cases are more glaring examples of value extraction, benefiting from unpaid labor.
There is nothing wrong with developing proprietary software, but you need to be honest about what you're selling.
This may be so, but there is no competition that's even 10% better than Google.
Competition may win on some non-functional requirements, such as privacy (hardly), or UI controls (e.g., silencing certain domains), but that pales in comparison with Google's local search results. And most competition people talk about are just shells around Bing. There are very few independent, general purpose search engines, i.e., Yandex, Baidu, Brave Search. And Google is still the best.
And yes, Google's index has been going to shit, due to all the SEO spam and the content farms, but so has everyone else.
You made an assertion. Show me the Google competitor that's 30% better and you may have a point. There are none, so the market may be more rational than you give it credit for ;-)
So why in the world would people still buy phones from their mobile carriers?
Nokia and BlackBerry found that out as well.
The statement doesn't make sense because people don't keep 2 phones in their pocket, or 2 smart watches, and rarely have 2 tablets that are actively used. And people definitely move between ecosystems. Choosing one excludes the other, and they have equivalents for each product type.
Hence they are direct competitors.
---
The real problem is that the mobile OS & app store market is a stable duopoly.
Ask Microsoft, who tried developing Windows Mobile after the market was taken over by iOS and Android. Or who still tries competing with Chrome without much success, despite it being pushed on Windows as the default, with annoying settings and ads included. Nevermind that they gave up developing their own engine because they couldn't keep up.
Vertical tabs don't nest; however, you can group them using Chromium's native groups. In Brave, I can also assign custom keyboard shortcuts, so I have Ctrl+G for starting a new group, and Ctrl+T for opening a new tab in the same group.
I've also been a user of Firefox for years, and the tree-style tabs extension are all slightly broken, enough to make me disable them. I also never found much value in nesting.
Some cultural norms are outdated, but prostitution is still degrading and dangerous for those practicing it, especially for the women; who may not be doing so willingly, prostitution being the main incentive for human trafficking. And the online medium doesn't change that by much.
Some people may be willing to pay for sex, some people are willing to pay for many other things or activities that should be or are illegal.
Let me give you an example … in Gradle, the order in which you specify plugins matters, due to the side effects. Say, if you specify something complex, like Kotlin's multiplatform plugin, in the wrong order with something else, it can break your build definition. I bumped into this right off the gate, with my first Kotlin project.
In Sbt this used to matter as well, but because Sbt has this design of having the build definition as an immutable data structure that's fairly declarative, people worked on solving the problem (via auto-loading), and since then, I've never bumped again into ordering issues.
There are other examples as well, such as consistency. In Sbt there's only one way to specify common settings, and the keys used are consistent. Specifying Java's targeted version, for example, uses the same key, regardless if the project is a plain JVM one, or a multiplatform one.
Sharing settings and code across subprojects is another area where Gradle is a clusterfuck, whereas in Sbt it's pretty straightforward.
Don't get me wrong, Gradle doesn't bother me, and it has some niceties too. Other ecosystems would be lucky to have something like Gradle. But I find it curious to see so many people criticizing it when almost everything else is pretty terrible, with few exceptions.
---
Note that Li Haoyi has great taste, and Mill is looking good, actually. But he also likes reinventing the wheel, and the problem with that for build tools is that standardization has value.
Standardization has so much value for me that I would have liked for Scala to use Gradle as the standard build tool, and for Scala folks to work with Gradle's authors to introduce Scala as an alternative scripting language for it, despite me liking Gradle a lot less. Because it would've made switching and cross-language JVM development easier.
Everything we do is for selfish reasons and that's good actually, as it means we have real motivation to help others.
But we can talk specifics if you want. Name some compromises.