Hacker News new | ask | show | jobs
by mebazaa 783 days ago
Meta has a lot of work to do on DevEx for non-gaming experiences. Say what you want with the Vision Pro, but it comes with a lot of niceities like SwiftUI. When you develop with the Quest, you're stuck with Unity or Unreal Engine -- it's almost too much freedom to develop simple productivity apps.
6 comments

It's all going to end up in JavaScript anyway.

I say this as a joke, yet: https://www.npmjs.com/package/react-unity-webgl

  Simply rendering your Unity Application within your React Application is just the beginning! The Unity Context exposes a lot more fun functions and properties to play around with such as two way communication or requesting fullscreen or a pointerlock. The possibilities are endless, what's next is up to you!
Love it or hate it. Everything ends up in JavaScript!
I don't hate it. JS has its worts, but so does every language. I don't think there is a single language even close to JS for lowering the bar of entry to software development. All of the bad things about it that "real computer science" folks complain about are the exact same features which give it a far more broad reach than Rust or Golang. Software development experiences the exact same problem that the internet at large has suffered. The lower and lower bar of entry invites less and less competent folks to create things they never before would have been able to create. Some of these things are genuinely useful and we benefit greatly by lowering the bar, and most of these things end up being shit because the people who made them really had no clue what they were doing.

Lowering the bar of participation greatly increases the amount of shit that is created, but also increases the amount of exceptional examples which can come from a domain. If 80% of everything created is almost complete garbage, then lowering the bar of entry for participating will exponentially increase the amount of shit out there. But it will also enable a few really great apps which wouldn't have existed otherwise. I think we need better filtering than to raise the bar so only true experts can participate.

Or it just happened to monopolise the browser at a time when the web was being invented, and has nothing to do with the features of the language.

As a language for new developers is terrible: 100 different ways to do anything, most of them a muddle of paradigms that's inexplicable to anyone without 2 decades of experience, and so on.

Imagine a new developer using ChatGPT to generate: python, C, go, etc. vs. generating javascript. Most of the generated js is incomphrensible to newbies, but for the others generally obvious.

> Or it just happened to monopolise the browser at a time when the web was being invented, and has nothing to do with the features of the language

But applets were doing a lot more in the 90's and Flash dominated into the 2010s. However you feel about JS today, it's difficult to say it was all "first-mover advantage".

Was Flash ever really good for anything close to normal programming?

And Java applets with their loading times and dependence on the visitor having Java installed ... nah, not really a competitor.

A video about their upcoming spatial SDK ("augments") already leaked [0] and you are correct, it's based on JavaScript, using their Spark toolkit [1] which is hardly surprising - when the company already ships a production AR dev kit, why would they not use it?

[0] https://www.youtube.com/watch?v=svlL_ndNdj0

[1] https://spark.meta.com/

Atwood's law
Reposting a comment I wrote on a comparison with Vision Pro here, which is very relevant here: https://news.ycombinator.com/item?id=39830713

> The biggest innovation with Vision Pro is visionOS. visionOS provides native app frameworks, so developers can build apps for it. That sounds ridiculously obvious, and yet its something Meta have failed to offer for years. Every app on Quest has to reinvent how buttons work, how a scroll view works, how far away from the user the content should be etc.. and every app works differently. On visionOS, all of this is handled by Apple, and every app looks and feels the same.

Meta does have standardized utilities for translating movement to touch/drag/etc. interactions on arbitrary virtual surfaces:

https://developers.facebook.com/blog/post/2022/11/22/buildin...

https://developer.oculus.com/documentation/unity/unity-isdk-...

But it doesn't seem (AFAIK) to answer the other side of this, which is the UI design system so apps have a consistent look and feel. Which is perhaps more common coming from a game development perspective, but ever since the Mac OS shareware days, Apple's understood that it's empowering to a certain kind of developer if you make it easy/the default path for them to build experiences that match a standardized look and feel. I'm honestly surprised that Meta didn't at least make an optional SDK for this.

OpenXR Mobile SDK is the native development option for the Quest devices:

https://developer.oculus.com/documentation/native/android/mo...

I skimmed through it, but can't find the programming language without downloading the whole SDK. Is it Java, or Kotlin? Or something else?
You can also use Godot (although def has the too much freedom issue) and a-frame as well. The latter might be more attractive to webdevs
At one point in time the React/React Native teams put out a blog post devoid of any actual details about “multi platform” support and mentioned VR in it. I’m surprised I haven’t hear anything else about it since.
Yeah it's kind of mind-boggling to me that the creators of React (which SwiftUI is ofc heavily inspired by) and the most successful cross-platform quasi-native library (React Native), have not managed to bring those powers to their biggest investment.

I truly don't get it.

I wonder if it's being used internally? Just looked back on the blog post and they actually say "Although most of the development for VR will still be internal, we hope to share more as soon as we can. We also anticipate that improvements to React Native for VR will surface in open source." Makes me wonder if possibly they are using it to create some app themselves, would be interesting to decompile some APKs and see.

https://reactnative.dev/blog/2021/08/26/many-platform-vision

Don’t they also have a web view wrapper for 2D tools?
for 2D you can also plain old android apps, they work here. the point though is that there's not that much room for 3D stuff without going through either unity or unreal or writing everything yourself from scratch.

if your goal is to make some sort of `spatial computing` tool, well there nothing here you can use. each app is it's own little silo that has little room for interaction. I'd love to be able to write my own custom apps that can exist in the home screen/environment and that can interact with each other in non trivial ways. it would make it feel more like a personal space rather than a 3D slideshow that I can use to launch games.