I am Husk's lead developer here to clear up confusion and answer questions

Finally, some honest info. :expressionless:

3 Likes

Thanks for clearing the air on Husk. Honest competition is a good thing.
But I do feel the need to ask, what is the origin of this comment …?

Is this a fundamental difference in design philosophy, or some personal issue?
Generally, folk round here would rather bury the hatchet than carry on a pointless debate. Now the troll has had his card marked, common sense can prevail and we might get something productive out of discussing all this.

6 Likes

But you’re not locked into any one API with any implementation?

You could theoretically run Sponge on Bukkit, Bukkit on Sponge, Husk on Sponge on Bukkit, Bukkit on Canary on Sponge, and so on. That’s 100% possible with anything as long as you have programmers. It may be ugly in some cases, but that’s totally an implementation detail.

The main issue is whether there there is manpower to do it – whether someone is willing to put in the work to reach >95% compatibility. That’s the problem the from-scratch Minecraft servers face – there’s nothing stopping them from perfectly supporting everything in MC other than the lack of programmers to do it.

Right now Sponge rewrites MC and Forge byte code to make the Sponge API work. There’s no reason why we can’t make it support other APIs. Whether we have enough people to do it satisfactorily, however, is another question.

16 Likes

Thanks for clearing up some questions I have asked on the previous thread (link here)
I hope you do well! :blush:

But there are fundamental differences. Sponge and the Sponge API are inseparable and tightly bound. To get another API to work on Sponge, you’d have to write a Sponge plugin with the Sponge API. Husk, on the other hand, is not bound to any API. Huskd is completely decoupled from the Husk API. This makes it a lot easier to write another API implementation for Husk.

Isn’t Sponge just an api? Correct me if I’m wrong @sk89q, but as far as I know sponge is just a server side api for Forge and, eventually, Glowstone. There isn’t any “Sponge + Spongeapi” unless you actually meant “Forge + Spongeapi” are “tightly bound and inseparable.” But even then there are plans for it [not to be tied to any one platform,][1] so that isn’t correct either (It seems the devs are focusing on releasing it on forge first, just to get it running then making it independent later).

It seems like people think that husk and sponge are both trying to do the same thing but the two projects seem to have different core goals (Husk being a server daemon with the Huskapi optional and Sponge only being an api)

Sponge FAQ Summary
We want something easy to use for users.
Community-developed modding API.
Works with Forge mods.
Don’t need client mods if only used on the server.
Can be used to write client mods.
Not tied to any platform:
Can be used on a from-scratch server (i.e. Glowstone)
Planned & officially working with Glowstone team
Can be used on top of Forge
Planned & and officially working with Forge team
Can be injected into Minecraft directly
Not planned yet (this is a larger undertaking and we prefer something usable sooner)
An extremely open project.
No legal issues like that of Bukkit.
Bukkit plugins may run on Sponge without change due to efforts by the community.
Keeping performance as a high priority during development.
Lots of people involved with strong Java backgrounds and/or experience.

Highlighted the important points

Edit: corrections
Edit 2: formatting
Edit 3: more corrections yay
Last Edit: I just wanted to add my two cents so feel free to ignore. Looking at what Husk and Sponge both strive to be, it seems like a perfect storm for a port of Sponge for Husk to be developed once both of them are finished (officially or not). Then people would have the best of both worlds. Assuming everything goes according to plan of course.
[1]: Sponge FAQ - Google Docs

2 Likes

It is impossible to have an API work without an implementation.

? Er, I’m not a plugin dev or anything so bear with me as I only just gleaned what an api’s implementation means. Isn’t Sponge’s current mode of implementation as a forgemod? Of course it wont stay that way as I’ve already said (assuming I have my terms correct.) So, what does that have to do with the points I’ve just made? Particularly the fact that Sponge is only and api rather than a server itself like husk is (daemon technically but you know what I mean.)

Please correct me if I’m wrong I’d like to understand what you mean fully.

1 Like

Sponge itself has 2 parts, an API and implementation. An API has a one-way relationship with an implementation. Implementations absolutely need an API, but an API doesn’t care whether or not an implementation exists.

For an API to do anything at all, there must be an implementation. Sponge is both an API and implementation, and because of that, they are tightly bound internally. Let me reinforce the fact that an API does absolutely nothing by itself, and simply serves as a specification for an implementation.

Could you link me where or explain where in the github source it says that sponge is more than just an api for forge? I understand that for an api to do anything it needs implementation as that’s how it works but isn’t forge the implementation? I’m sorry if this is a dumb question but I’m honestly not fully understanding.

Sponge’s implementation is solely what interacts with Forge. It’s API is a blank skeleton of that with just methods intended for developers to use to extend it, although technically it’s possible we’re using the wrong terminology, but doubt it. The API itself has no function other than to tell developers what they can do.

2 Likes

Ahh okay I see! So it goes api -> implementation -> forge! Thanks for the clear explanation I had the wrong idea.

1 Like

No, that’s not quite right.

Sponge and Sponge API are easily separable. They are not completely decoupled though, because that’s not possible. Neither can Husk be 100% decoupled: there’s nothing in programming where two separate things work together thanks to magic. There still has to be coupling in at least one direction, which Sponge has and presumably Husk has too.

However, where we differ is which direction we decided to do the coupling. Our goal is one API on several platforms, while it appears Husk’s goal is several APIs on one platform.

I’d like to note that it’s also possible to decouple both ways by having an intermediary layer. There is no limit to abstraction; you can always add more abstraction at any time.

15 Likes

That is true. Perhaps I was oversimplifying.

Do people just follow you around, liking all your posts?

4 Likes

Maybe people read this thread and like his posts because it’s always on the front page and people actually agree with what he says.

Or maybe you’re right we just waste our time following him around everywhere he goes and like posts just to make ourselves feel better.

Edit: The fact that you’re alluding to people blindly following the main dev around like a pack of brainless dogs just because he’s getting more likes than you, makes you sound immature and puts a bad taste in my mouth for Husk and you as a dev. Honestly, at first I was excited for the project after seeing your reasonable response to the troll from before but now I couldn’t care less.

/rant

4 Likes

Given that these are the Sponge Forums, I’d be somewhat surprised if people didn’t agree with a Project Leader’s ideas, after all, it’s due to the fact that people like the ideas that they’ve decided to become a part of our community.

Trying to frame it as some kind of conspiracy seems to be just somewhat dull when you consider the facts. I also find it somewhat odd that you’ve resorted to belittling someone because other people agree with them, it just doesn’t seem mature in my view.

11 Likes

Is there are dislike button?

While it would be silly to assume that all the likes to @sk89q’s posts are simply because he’s staff, you’re either ignoring the fact that people do actually just like his posts because he’s staff, or new to popular online communities. :stuck_out_tongue: This goes for any staff member, really.

It sounded like his post was more of a joke based in fact than an insult, as you so exaggeratedly pointed out. You took something simple and turned it into “people blindly following the main dev around like a pack of brainless dogs just because he’s getting more likes than you”.

C’mon, guy. :smile:

EDIT: This is also, apparently, in reply to @Owexz.

2 Likes

I fail to see how any points I made are invalid, though you’re entitled to your opinion.

However, in order to prevent this thread from descending into personal attacks or hurling insults, I would appreciate it if people restrained themselves to civil discourse from now on.

I never said all the likes were just because of honest agreement. Just that he’s alluding to it. Joke or not. And if it was a joke, I’m sorry I took it the wrong way but it seemed like a random, unrelated, thing to say for laughs in the midst of a serious discussion.

I can’t see how I overcomplicated anything by taking what he said literally but shugs whatever.

1 Like

It sounded more like a friendly joke to me, than, as you stated “Trying to frame it as some kind of conspiracy”. :smile: I wasn’t really commenting on whether or not your point was valid, just that it seemed like something silly to get upset about.

@InvokeStatic and @brenhein appear as though they came here to lessen tensions between the projects, yet a majority of the posts here have been antagonistic, or overly sensitive.

1 Like