Babylon 10 Poll

We went from “Yes but only if the perf improvement is massive” to something like “Yes and we also will rewrite the entire API”.

Breaking back compat once means extra work, right? Breaking the guarantee of back compat itself means even more wokr because now I need to guard against that. I have seen code out their using Babylon. I did not see unit tests in the repos. I also noticed calls to the Babylon api all over (no middle layer). If there is no TypeScript either, these repos are blind to breaking changes. Sure eventually it is a matter of trade-off: what do I get and what is the cost of extra work? So for sth like Houdini (aww could you imagine :exploding_head:) I probably would be willing to rewrite half of my code. But risking a runtime error for a change in some namespace?

Switching around a boolean default? This would be an absolute nightmare. How would I detect this (in a test; that I need to write now)?
Speaking of extra work: there also is someone on the Babylon team having to do that - rather than working on the critical bug fix or the next cool feature.

FYI, I deliberately wrote this post from a devil’s advocate perspective given the majority vote on yes. Personally, I mostly don’t care.

1 Like

Yes! At least someone is with me!! I totally aligned with that view:) (Am I the devil??:))

Maybe most of the people do not realize that changing half of the engine will take the team offline for months but this will also be a freaking shitshow for a lot of users. I’ve already seen several here not even being aware of the methods we already flagged as deprecated.

I’m not ready to change the core engine for the sake of making it more pleasing to the eye:) if I do a change it has to be a fair trade off for everyone time: it has to come with a massive improvement.

2 Likes

Haha, my guy, if the intention was to inform people of the risks then you wrote the blogpost wrong :smiley: To me this seemed like something that you guys have been carefully considering and now see an opportunity to try out. Doing this poll (with two ‘yes’ options and one ‘no’, also indicating you’re more positive than negative) to warn people in advance that it’s happening and why you are doing it.

If you’d described it in the blogpost as ‘a freaking shitshow’ I would not have voted yes :joy:

I read this as a Blender 2.8 kind of situation, where changes would be uncomfortable to get used to at first, but overall a big step forward.

It COULD be a shitshow:) it you are using TS, a linter or have a tons of tests that should be fine.

But I know the web developers:) every time we change a tiny thing we end up with a lot of questions even though everything is documented:)

Hence why I will be extremely cautious if we decide to break backward compatibility. Because I already know it will be a lot of work for us here in the forum and a lot of work for a lot of users on their codebase

1 Like

Name it something searchable. Prefixing searches with “bjs” can carry mixed results. (Especially with camera questions.)

I appreciate your perspective and we do need opposing views to think critically about the change.

I don’t think it was “we” (plural) that agrees with changing the API for non-performance reasons and I don’t agree with the entire API changing. Simply one person’s opinion only - and also not the entire API, but if we get to reimagine the API and throwaway the things that didn’t work out so well then I was simply saying that it’s an opportunity to do more than only performance improvements. Making the API friendlier and more intuitive for newcomers would be great. Lots of the API was also designed on a moving target like a changing XR spec and WebGPU didn’t exist when the API was created. Definitely if the API is holding back performance or growth even more reason. :smiley:

1 Like

Could it be possible that some kind of actual deprecation-level logging is added into the released JS versions of babylonJs?

For the cdn files, etc, so even those who do not use typescript or pay attention to playground strike-through would still get warnings…

perhaps it could mitigate (at least) some of the “shitshow” :joy:

Yes this is definitely an option. But I also wonder if we should not start fresh. Like we have a version 9 which is our LTS that we keep maintaining for bugs and we have a fresh new Babylon X with all the new features and a non-backward compatible API.

This way people can either stick wih the LTS and decide when they want to jump into the new pool.

Thoughts?

4 Likes

There are times where things will break backwards compatibility especially if it enables WebGPU or 6dof video (e.g. spacetime Gaussian Splat and NERFs).

Yeah that might be the best possible approach.

FTR, broken GLTF skeletons caused me tremendous waste of time. Took me a year to fix inverse kinematics, I’ve skipped the entire version 5 because of it.
There’s no drop-in code replacement, everything that used bones had to be changed to use transform nodes instead. Not even a readme that made sense.
From where I stand, your promise is long time broken.
But this effort is an actual improvement. Yes please, announce and discuss intended breaking changes, and/or provide old->new code snippets.

Did you try to reach out to us? I’m surprised

Yep, Inconsistent GLTF bone transformations

Well we replied and documented all of that based on the thread.

We are not perfect of course but we really try hard to live by our promises

3 Likes

Well, that’s my language buddy :joy: It’s how I can best identify to the framework (just read my posts and you’ll understand why :rofl:)

OK, so I voted ‘NO’ for two reasons:

First thing is I didn’t want @Deltakosh to be alone voting ‘no’ :hugs:. Although I believe I can suspect the reason why he did :thinking:.

…and then the Second (which for me, is likely this exact same reason I suspected :wink:) :
Backwards compatibility and overal ‘inclusivity’ and ‘reliability’ over time is a PILLAR of the framework. It’s part of the DNA :dna:. Means when touching these pillars that are the base for the building of ‘solid grounds’ for all the rest of it, One needs to be VERY CAREFUL :zap:

Yet, I’m not saying: 10 years is a hell of lot in this first emerging and next growing tech. At some point, there are some milestones and hard decisions to be made. I only want to make sure we are not giving up on the philosophy while making this (necessary) adjustments to 1) remain competitive 2) expand and conquer.

Of course, as always, my opinion only :sweat_smile: … and until then, take care and have a great day :sunglasses:

2 Likes

I didn’t know that! :slight_smile:
It used to be mine too but after a few years too many spent in Sweden, Swenglish has taken over :confused:

Maybe we could honor the legacy by adding a MagicBaguette(genAIPrompt: string) method?
@mawa FYI :smiley:

3 Likes

Going with the vibes of the recent posts, let me pitch you this:

If you liked the Babylon Frenglish API, get ready for

Le Babylon diX - Fully Frenchinated - Complètement françaisiner

  • LeVecteurTrois,
  • LeMèshD’Abstrait,
  • LaColeurQuatre,
  • and many more…
3 Likes