67 comments

[ 2.5 ms ] story [ 125 ms ] thread
not quite yet. Wait til they're selling you your own code back. I'm thinking something having to do with "software BoM" and OSen that can only run stuff from certified sources.
I thought this was going to be about hiring Poettering
Isn't Poettering already doing his own EEE in the linux ecosystem? FOSS is becoming harder and harder to port to other systems due huge amount of linux-specific code creeping into everything.
Do people not realize that Microsoft themselves produce a Linux distribution for Azure (both a cloud and IoT distro)? Microsoft has a lot of incentives to keep the Linux ecosystem thriving and folks like Poettering employed and working on systemd, etc.
I really wish we wouldn't give this chap a platform. He really is terrible.
As someone who there's a lot of programming with C# and loves it, are there any good alternatives?

This plus the stuff they're doing with Minecraft recently has me very much wanting to get away from them. They've made it clear that they will abuse any power they have.

However, none of the alternatives seem that good. Python is slow, dynamic, and a pain to write large projects in, JavaScript is reliant on typescript and TypeScript is Microsoft.

Go is Google. Enough said.

Rust seems cool, but I'm not really on the system's side of programming so it's not super suited to the sort of things I want to do.

Is the only alternative Microsoft doesn't have their fingers in right now Kotlin? It's going to be expensive, but jet brains even provides the IDE so I can get away from VS code.

What about Java?
Unless I'm wrong, my understanding is that Java is just kind of a bad language. What makes C# great is how heavily it has leaned towards functional programming.

Java, As far as I understand, is still very object-oriented and very clumsy.

Kotlin, as far as I understand, fixes those issues.

>> Java, As far as I understand, is still very object-oriented and very clumsy.

How much modern Java have you read or written recently?

Modern Java supports functional programming and is not as clumsy as it used to be:

https://betterprogramming.pub/functional-programming-in-java...

Java also has better cross-platform support than C#.

What is Java's equivalent of Xamarin or Avalonia? How do I run Java on iOS?
>> What is Java's equivalent of Xamarin or Avalonia?

Xamarin - RoboVM was a Java-based competitor to Xamarin which Xamarin acquired in 2015, but it was shutdown in 2017 after Microsoft acquired Xamarin. There are some Java-based toolkits such as https://www.codenameone.com/ that target mobile, but they are probably not as well funded as Xamarin has been under Microsoft. From what I hear Xamarin will be deprecated and replaced by MAUI.

Avalonia - Java has had multiplatform windowing for much longer than C# has. The Java Swing toolkit has been part of Java for more than a decade and is still supported in OpenJDK. JavaFX (https://openjfx.io/) is a newer toolkit that was originally part of Java and was later spun out into its own project.

How well are Xamarin and Avalonia supported if you are doing C# development on Mac or Linux?

>> How do I run Java on iOS?

As stated above, some tools such as https://www.codenameone.com/ and https://github.com/google/j2objc that convert Java code to target iOS.

I have never tried using those tools so I am not sure how good they are.

Xamarin was quite descent even before Microsoft. MAUI (from little I saw) looks like a rewrite of Xamarin Forms, but the rest is basically Xamarin with terrible name.

Neither codenameone nor j2objc seem to be anywhere close in terms of features (including tooling).

Codename One is more like flutter with a few other things tucked on top. Since it integrates with maven etc. it works with Javas native tooling out of the box. I'd argue it's way ahead of Xamarin.
How's debugging in Codename?
Just like debugging in Java since it works as a simulator. Everything you can do in the Java debugger you can do in Codename One. For on-device debugging you can translate the code to an OS native project and debug directly using the native tooling xcode/Android Studio.
I have heard it's catching up with C#, but the implementation in that link where you have a person model and you have to write a function just to get/set a string turns me away.

That said, there's actually some interesting stuff in that link. The ability to assign an anonymous class to an interface is super fascinating.

But if I'm starting new, My understanding is that Kotlin is superior in almost every way.

You don’t need to write your code in Java for it to run on the JVM. You can write functional code in Clojure and use libraries written in Java.
Ah, Oracle, the last bastion of restraint, good sense, and companionship with open source. /s
while i understand your sentiment, over the last few years java became a lot less oracle-centric. JavaEE moved to Eclipse Foundation, openjdk became a reliable open source alternative to the oracle version, a lot more companies are involved in the development process. yeah, oracle still provides a lot of manpower but it moves in an overall positive direction.
This is part of the reason I'd be all right to move to something that relies on the JDK. I had heard this before when people were talking about how c sharp has gone open source.
I understand and mostly agree, but as a solution to someone that stated "Go is Google. Enough said." they might not find it sufficient...
> JavaScript is reliant on typescript

How is Javascript reliant on Typescript? I've written an enormous volume of Javascript without ever having touched Typescript.

I guess I should say I don't want to code in a purely dynamic language, and because of that it is reliant on TypeScript.

I don't want to use JS without types. You 100% can do that, I just don't want to.

>> As someone who there's a lot of programming with C# and loves it, are there any good alternatives?

Java is probably one of the most similar in terms of capabilities and use cases.

Rust is popular, but targets more of the same use cases as C++ does. Unlike C# and Java, it does not use garbage collection which might be an advantage or disadvantage depending on what you are trying to do.

There are quite a few Microsoft contributors to Golang, some of whom also work on Rust (which is itself quite well suited to embedded use).

Not sure what the hate on Google is based on; solid engineering goes a long way.

Google is another one of those companies that controls people with whatever power you give them. I don't want to be reliant on them as much as I don't want to be reliant on Microsoft.

I'm sure their engineers are great, as is the code they write, but that makes them what you might call a tasty poison.

I mean, you like speed and compiled, C and C++, depending on what types of projects you're into. They aren't really replacements for backend systems, though.

I know people on HN are tired of hearing the same drumbeat over and over but Rust really is an exciting space and community to develop in right now.

As far as IDEs, you can try Atom or CodeBlocks or something (I'm not sure... I use VSCode because I used it before MS made it evil and I'm not going to let them make me stop).

Didn't Microsoft basically immediately clarify that the new policy is only meant to target developers with no affiliation with a project who are lazily repackaging open-source apps and trying to make a quick buck?

Edit: Yeah, see https://www.theregister.com/2022/07/08/microsoft_store_open_...:

> In response, Sardo, who oversees the Microsoft Store, insisted Microsoft is just trying to prevent abusive store listings, like app clones.

> "We absolutely want to support developers distributing successful OSS apps," he said. "In fact there are already fantastic OSS apps in the Store! The goal of this policy is to protect customers from misleading listings."

> Sardo said Microsoft would review the policy language to make sure its intent is clear.

(comment deleted)
Yeah this seems like something that should have been researched and run by press contacts at Microsoft before assuming it was as they (wrongly) describe in the blog post. It seems like the policy exists so a team like Krita can kick out anyone repackaging their open source tool on the app store and instead ship/sell it there directly themselves.
However this is not against most os licences. And no one called Microsoft to play gatekeeper or nanny.
Many, many people have been calling for MS to clean up their store since it was launched. It has been full of crapware for its entire existence; most devs have only used it to install WSL.
An average Store user will definitely benefit from not having to sort through dozens of spyware-laden clones of VLC
Microsoft was also clear with their intent when the policy changes were initially made 3 weeks prior to The Register article.
Even if they say they will not enforce it, here are the new terms/conditions.

Would it be normal for any project to depend on the good will of Microsoft for them not to enforce their conditions on them?

In addition, you have the right to sell most open source softwares, that is one of the right given by open source licenses.

Isn't it even against antitrust laws for Microsoft to decide of the financial conditions of third party software they don't own a right on?

If they have a problem with paid clones, they could just put a rules against parasitism, and put some apps as top in search results or with a special 'official' tag.

Is there a meaningful difference between depending on Microsoft not enforcing the T&C and depending on Microsoft not changing the T&C? As this whole thing shows, making money on the Windows app store has always been up to the whim of MS.
When they don't change the T&C, the rule is the same for everyone and you can complain.

When they change it, it is a favor they do to you, to not enforce it for you. You can't complain. They can hold you hostage to revoke this exception if you do something they don't like or if you offer an Oss stack that is in competition with their own things.

That's my devil's advocate take. This basically prevents another uBlock or $INSERT_ANY_CHEETAH_MOBILE_THING situation.
He’s right you know. Microsoft is getting very creative with their extinguishing on the open-source community.

This is just one of many ways of doing it. They are getting so clever at it, not many have seem to have noticed but instead played along and thought it was all fine, until the complaints finally came in.

More examples of recent ‘extinguishing’ or typical EEE: [0] [1] [2]

[0] https://news.ycombinator.com/item?id=29686076

[1] https://news.ycombinator.com/item?id=28829936

[2] https://news.ycombinator.com/item?id=31944138

Wait a sec, your 'proof' of this is a series of links to your own HN posts making similar accusations? I'm not sure that's how that's supposed to work...
Absolutely yes.

The funny thing is, it is still true to this day.

Did anybody actually read the article? It is clear FUD.

It's just a minor policy change on the Microsoft Store which says you can't create an "app" for a free open source product as if it's your own. So, you can't create an app of Ubuntu Linux and charge $5 for every download on the Microsoft Store.

Reasonable. Sound.

Who "owns" a free/open source program? Many of these programs are not trademarked.
Trademarks are for names. Copyright is what you're thinking of and it applies to a 'work' that you create like a program, source code, drawing, music, etc: https://www.copyright.gov/what-is-copyright/ So the person or people that wrote the code own the copyright to it and can control how it's licensed.
I know, but if the program is licensed with GPL somewhere, what is legally stopping another person from distributing it on the windows store or whatever (other than trademarks associated with the name, for example the "Ubuntu" trademark)?

If there is nothing legally stopping them from doing that, then how is Microsoft going to arbitrarily enforce these new rules?

Not sure about GPL, but this is one of the very few (2-4) restrictions of a BSD license:

"Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission."

I'm not talking about the names of the copyright holders or contributors. I'm talking about the name of the software.
There's no legal avenue, if the license allows distribution of the code/binaries then it can be distributed anywhere.

But Microsoft's store is a private marketplace (despite costing nothing in dollars to use/view). They can make whatever rules they want for the software they distribute or allow to be distributed there. First amendment, etc. doesn't apply. If Microsoft decided only software with unicorns and bunny rabbits could be distributed on their store, they are pefectly within their rights to mandate and enforce it.

Okay, but just because they can unfairly discriminate on "their" operating system doesn't mean that they should or that we shouldn't resist/discuss it.

I don't care if microsoft's store is a private marketplace. People should have the right to run whatever programs they want on their own hardware.

They absolutely should, but that's why we need to retain the ability to download and install outside of the store. As long as we have that ability, this isn't a concern.
I'm not sure how far that "whatever programs they want" goes - e.g. you can't legally run MacOS apps on non-Apple hardware. If MS decided the store was the only way to install apps into Windows, is that much different? Both platforms of course need to be able to support compiling from source and executing the resulting binary , which is sufficient to ensure OSS software will never be banished entirely.
In the EU, isn’t it the case that you can’t completely give up your rights as a creator? So in a way, GPL is not even completely compatible with EU-laws?

IANAL, just asking the question, I might be super wrong.

Good idea. There's a tonne of Linux AMIs on AWS that have a support charge even though support is non existent.
Reasonable, maybe, but in conflict with https://www.gnu.org/licenses/gpl-faq.html#DoesTheGPLAllowMon...:

“Does the GPL allow me to sell copies of the program for money?

Yes, the GPL allows everyone to do this. The right to sell copies is part of the definition of free software. Except in one special situation, there is no limit on what price you can charge. (The one exception is the required written offer to provide source code that must accompany binary-only release.)”

On the other hand, there’s https://www.gnu.org/licenses/gpl-faq.html#DoesTheGPLRequireA...:

“if someone pays your fee and gets a copy, the GPL gives them the freedom to release it to the public, with or without a fee. For example, someone could pay your fee, and then put her copy on a web site for the general public.”

App Store rules may make that difficult to do for the buyer.

That's outdated terminology from a time where physical media was needed. Or perhaps we could say that it's in a store's best interest to go beyond that into curation. Just like physical stores do. Consumer protection demands that we don't get OpenerOffice, EasyWords, LetterWriter, etc. as paid forks with no differentiation, generated in bulk by spammers in poorer countries. Meaningful code improvements should be required.
It’s not in conflict at all. The person may have the right to sell it, but not the right for Microsoft to list it.
Similarly apple gate keeps its own appstore to a much greater extend considering that there is no alternative or way to side load apps. I would agree with the article if the policy was enforced universally in Windows but this is just about selling via its store.
Looking at some of the other headlines from this guy's Substack (e.g. "Linus threatens to punish developers by including Rust in the kernel") he seems like a total crank and not worth taking seriously.
FOSS store required immediately

how much does mircrosoft have to do with steam beyond having an app? how could valve be made amenable to serviceing linux platforms in general, in addition to curating ported games? i know these guys were MS at one time but the past tense may be a benevolent condition.

https://en.wikipedia.org/wiki/Valve_Corporation

What other candidates for FOSS "store" exist beyond repositories? I dont think github is in that pool anymore.

if valve provided a linux onboarding platform, in addition to games and repos, that just may have beneficial consequences for FOSS and valve

There is a huge FOSS store. In fact, it’s been the default for obtaining software for over two decades now. It’s called “just download it from the website”.
that model works to onboard a sector of the pie, the experience of hunting and pecking through a store is a familiar experience, mimicking the array of icons UI so common to phones, and app stores. having a "store" brings all the various ...downloaditfroms... to a centralized place of one stop shopping. thats the level of convienience expected by general consumers, and thats required to make the wedge of the pie widen and become a little more stable. The bigger issue is that FOSS is seen as difficult, dangerous, what hackers do, etc due to marketing forces, and the effort to keep people safe from the internet
Yeah...no. I've been saying for a while that the current Windows kernel is not long for this world. I'm willing to be convinced otherwise, though pablum like this Schlubstack article is no place to start.
What a bullshit. By this account Paint.NET also can't ask for money in the MS Store because it is also software that is otherwise generally available for free.