DataTables / Editor-NET

.NET Framework and .NET Core server-side libraries for Editor
Other
15 stars 12 forks source link

Golang Port #13

Closed SharkFourSix closed 7 months ago

SharkFourSix commented 7 months ago

Any plans to port to Go?

AllanJard commented 7 months ago

Not in the short term. Python is the next target platform, which is in progress. After that, Go is an option (although you are the first to ask for it), and it is a language I'd like to learn at some point, so maybe... :). It won't be until the latter part of this year if it does happen though, as I've got plans for other aspects of DataTables and Editor that need attention first.

SharkFourSix commented 7 months ago

Well, do you have design docs? I could start working on a golang port. It's urgently required :smile:

AllanJard commented 7 months ago

Design docs in what sense? The client / server protocol that Editor uses is fully documented.

I don't know Go (yet), but ideally if we published libraries for it, then the API would be similar to the existing .NET / Node.js / PHP packages (assuming that the principles used in them would be applicable to Go).

SharkFourSix commented 7 months ago

Right, thanks for the link. I was asking in case there might have been some design philosophy/core tenets stuff. I know some devs are very serious about such things. But if that's all there is to it then it's simple enough.

One last question, do you have a front-end test codebase that you use to test all the bindings to ensure consistency?

AllanJard commented 7 months ago

I generally try to follow the best / common practices of the language being used along with keeping the API similar through the platforms (e.g. mainly the "fluent" / chaining aspect of it and the method names. The .NET method names use leading capitals, while Node.js uses lowercase, etc). Using fmt in Go might help with some of that.

One last question, do you have a front-end test codebase that you use to test all the bindings to ensure consistency?

Yes, but not open source I'm afraid. We use a Selenium script that runs the frontend against the various backends. I can look at options to integrate any library you might create if you did want to go down that route. Also if you were okay with open sourcing it and possibly me using it as a basis for our own Go package, I'd be very happy to set you up with an Editor license. Our backend libraries are all open source under the MIT license.