Bitcoin and Nostr are different though, because Nostr doesn't have any consensus algorithm. If you stubbornly choose the wrong chain, you lose money or degrade your security. If you choose "the wrong nostr client" (which doesn't exist) your client is not interoperable with other clients. Factions emerge and social networks split, but there is no economical incentive to switch clients whatsoever.
Discussion
Those developer factions will not include their users. Users of the clients will always want to see messages from each other, no matter what client they are using. Users are not going to be ideologically split by the ideology of the authors of their favorite client.
This means that the client developers will find themselves under very intense pressure to cooperate and interoperate. They can stamp their feet all they want; and throw all the tantrums they like. But they WILL eventually be forced, by their constinuents, to work together.
They can do this the easy way, or the hard way, but they will eventually do it.
Because WE are nostr, not THEY.
>From: (cypherhoodlum) at 04/25/23 08:04:32 on wss://relay.damus.io
>---------------
>Bitcoin and Nostr are different though, because Nostr doesn't have any consensus algorithm. If you stubbornly choose the wrong chain, you lose money or degrade your security. If you choose "the wrong nostr client" (which doesn't exist) your client is not interoperable with other clients. Factions emerge and social networks split, but there is no economical incentive to switch clients whatsoever.
Relying on forkable universal consensus > Relying on the fragility of peer pressure
True, you have a point there. If a rogue dev breaks interoperability badly enough, no one will want to use the app anymore, forcing the dev(s) to either ensure interoperability or lose contributors and users. Nothing a single dev can do about it. That's the beauty of Nostr.
Sybil-resistant data discovery and decentralized data storage on untrusted computers is the true magic; it’s the heart of the cypherpunk. 🐝
A million Twitter clients isn’t innovation. Also, it’s quite confusing to normies when I tell them there are many apps for the same social media…
Hear, hear. Decentralised data storage on untrusted machines is exactly what the NostrGit project needs to succeed. Gotta host that code somewhere.
I can’t see many images people post now because of this Damus/Amethyst drama. Interoperability is already being destroyed. That was the entire point of my post. It’s the exact same principle. If you don’t get it, that’s fine..
Yeah my point was there's not as much incentive to mend the already breaking interoperability in Nostr than there is in Bitcoin. Although there will be enormous pressure to make apps on Nostr fully interoperable, it's not as clear who is in the right because there is no consensus mechanism like there is in Bitcoin. The longest chain wins. The fork with the highest hashrate wins. Which client implementation wins on Nostr? Who knows? What do you mean by universal consensus btw?
Universal consensus means a single set of rules everyone can rally behind. In Bitcoin, the longest change does not determine the consensus rules.
First, the consensus rules determine what can be a valid chain. Then, the longest chain following those consensus rules wins.
#Bitcoin Core has universal consensus because everyone rallied behind it as the ultimate full-node client. That’s what I’m suggesting here, with a multiplatform app.
nostr:note1rql5wuhmzxnt3kfxhltx6qzwcv98x7nua8s879jnl6z95328kkcs8cda72
There would still be many apps no matter how good the universal specifications are. As you said previously, the Nostr protocol is not only for social media, far from it. And even within the social media use case, the apps are noticeably more efficient when coded natively for one specific platform. For example Flutter vs. Kotlin or Swift.
Kotlin just released multiplatform, and you just said Kotlin works well like Swift. There is another option beyond Kotlin that is very efficient too…
As for your first point, that’s the very problem I’m going to solve. Watch the magic unfold this year.
Oh, that's very cool if the performance remains! I need to look into it.
More-speech is written in Clojure, which works on Mac, PC, and Linux. It's about as cross-platform as you can get.
That's great! But then there is mobile of course.
Yes, So far, to my knowledge, no mobile platform supports Linux, OSX, or Windows. (Though some used to run Windows CE). One day perhaps...
I would love the communities of #Nostr to comment on MAUI.
MAUI is no longer in beta, unlike Kotlin Multiplatform. MAUI only requires a single codebase to create an cross-platform app on Windows, Mac, iOS, and Android.
Here is an abandoned MAUI Nostr app by #[6] @djbyter
#[6] #[7] time to take Damus multi-platform?
This isn’t the right way of thinking about the problem. If you’re trying to draw parallels to Bitcoin Core development, what you’re looking for is not a multiplatform Nostr super app. What you actually want is a multiplatform Nostr SDK client library and relay library that people can use to build their own experiences that conform to the protocol.
Trying to build consensus through a multiplatform super app will fail and no one will rally around that. Consensus, in this case, is achieved through conversation, not technology. The reason why Nostr has worked up to this point is because it’s an open development environment. If you try to limit what developers can do with tooling, it will fail.
If you think Android needs a good Nostr client that doesn’t deviate from the protocol in a breaking way, there are already alternatives that exist. If they aren’t living up to expectations, send feature or issue requests or bounties to the developers. If you’re a developer yourself and the client is open source, contribute pull requests.
I can’t speak to Damus going to other platforms. That’s up to Will. But in my opinion, that’s the wrong way of thinking about the problems discussed in this thread.
Conversation doesn’t scale when the number of devs rises high — this isn’t a community village. That’s why the scope of conversation in #bitcoin is usually limited to softforks only.
Either way, regardless of my views there, a multi-platform app is a great idea for overall convenience. There could be multiple multi-platform apps.
I was simply asking what you thought of MAUI since you’ve been working with Kotlin Multiplatform recently.
The multiplatform app doesn’t create consensus by the way — it’s the superior rules that do. Everything else that isn’t backwards compatible with those rules is not allowed. That’s how rules work in #Bitcoin or #nostr, it appears.
The multiplatform app is just a bonus that increases reach.
I haven’t heard of MAUI. Looks like XML UI development, which some may or may not like. Regardless, I think multiplatform frameworks are great for developers who are willing to use non-native tools to build a uniform experience that everyone can use while minimizing code duplication, as long as the look and feel seem native feeling to the end users. If someone wants to build one, I’m all for it. More client implementations mean more choices for end users, it’s great for market competition and everyone wins. I think Plebstr is multiplatform but not sure what their stack is, they’re not open source.
I started building native iOS and Android for a new app because I wanted to have experience building purely native apps (I’m usually a backend developer)
We are using Flutter for multiplatform approach in Plebstr 😊
My opinion of flutter has just increased. The perf is impressive
Can be even better, we have things that need to get optimized.
I have been using flutter since 0.1.X version and it’s awesome, had issues, but those are being resolved and it’s getting better and better.
Thanks for sharing!
The note loading on Plebstr seems a little slower compared to Damus.
I’m truly not sure if Flutter is a better option than MAUI. Wish there were a more developed MAUI app to see. https://nostr.build/av/68e79ada592a37720ecdee593cc8264948cd5009c243d81b9aca8ec39fe88f3c.mov
Loading thread is not slow because of Flutter, it’s because it needs optimalization in our code tbh.
I have been using in past Android Native, Kotlin, Xamarin, Ionic, React Native and end up on Flutter.
Im sure that MAUI might be great, never heard of it before tbh, but I feel strong in Flutter and I enjoy using it 😊
Looking forward to seeing everything progress! 🎉
Apparently MAUI is an evolved version of Xamarin. Microsoft standardized it.
🌴
“MAUI represents an evolution of Xamarin.Forms, which Microsoft acquired in 2016. By integrating Xamarin into the .NET platform and rebranding it as MAUI, Microsoft aimed to provide developers with a unified .NET client application project model for building applications that can run on multiple platforms, including Android, iOS, macOS, and Windows.”
I'm working on it again after a nice chat yesterday. :)