-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
prop(rhino-pkg): Drop rhinu-pkg in favour of a Go rewrite. #28
Comments
My first immediate thought is that nushell isn't a difficult language to learn. If you understand how bash pipes work, it's on the whole just that, with very clear builtin tools to parse input and pipe to output. I would go as far as to say that Nushell is easier to learn than bash. It's also based on Rust syntax, so if you know even a bit of rust, you won't have any trouble reading it. The reason that rhinu took so long is because I was refactoring the codebase into something more maintainable. Rhinu could've been released a long time ago if I pushed it all into one giant file like the original, but that's not maintainable. |
While you make a great point about it being easy to learn, the problem is that you are expecting people to learn something at all when developers already have knowledge of other languages such as Go, Rust and Bash. Just because Nushell is "easy to learn" doesn't mean people will always have the time to, open source is volunteer work and our utilities should be written in a way that anyone with experience in XYZ language should be able to pick up maintenance of the program without having to learn anything additional. People are busy, why would they contribute to our project when it's written in some obscure lang that they have to then teach themselves if they wish to contribute? |
Other than the barrier to entry & unfamiliarity with
Any package manager should have as little dependency as possible. I had written a more informal version at: https://discord.com/channels/1030820921235210371/1030820923198148640/1338192716152045649 |
I think it would be helpful to have a pros and cons list for each of the languages to help us determine which would be best. As we have discussed, really any of the 3 options (Go, Nushell, Rust) are more suitable than Bash is right now, but they all have their benefits and drawbacks. |
In my opinion:
|
Pros (non exhaustive list) for nushell are:
|
Pros of Go (non-exhaustive):
|
Just wanna mention two things:
|
Okay that is useful information, did not know that. Thank you. |
Also the pros list should be really about "how can your language specifically parse command output and work on that in a simple way". |
This I disagree with, there are more factors to weigh than just "how does the language do XYZ" because all languages are more than capable of being suitable for rhino-pkg, my concern is about long-term maintainability tbh. |
Please look at https://www.nushell.sh/, because those things are either listed on the landing page or docs. If you're asking to drop my implementation, at least look at the language features before asking, because it seems that you don't actually know what nu can do. |
I have taken a look at that before, I just forgot, however I do feel as though my point about go having a rich standard library & multiple additional packages, as well as ease of maintainability, to be paramount to the discussion. Considering the fact progress of rhinu-pkg was stalled significantly due to requiring us to create our own translation plugin for nu, it leads me to concerns about scalability. |
FWD of our conversation from Discord: @Elsie19 : tbf a lot of that was me being lazy; it took me a couple days to make the plugin, most of rhinu was either me being busy or burnt out. I completed it when I had free time. @oklopfer : that doesn't detract from AJ's point though. AJ's point was
because you were lazy and/or burnt out, and the only one who could rly work on it, this was exacerbated, and more importantly the point is that we had to create the plugin in the first place, it wasnt something that already existed (but should) - who knows how many more plugins we will end up having to write @Elsie19 : if the language I wrote it in was rust instead of nu would we be here now asking to change the language? because I don't understand why AJ says nu is hard, it's literally just bash + rust
also that was the last thing, the actual program was functionally done @oklopfer : no, we would not be, but thats because rust already has the support that nu doesnt
i think you're thinking of it in the wrong way - the actual program is not at all functionally done, it barebones works. we want to build on top of it and add a lot more features, and we need a language ready to support that. nushell is great for what rpk does right now, in its weak and futile state
again its more about the lack of support/plugins/community actively working on it @Elsie19 : but there is an active community, 5,000 in the discord alone @oklopfer : you cant possibly say that the community size of nu is anywhere near bash, rust, or go; the point is that there are endless forums you can get community support from for everything else. nu is extremely niche - the others do not at all suffer from this, because they all have an insanely large community and user base |
Yeah this is basically the exact point I wanted to make. |
What feature would you like to see included in Rhino Linux?
I have become convinced that a rewrite of rhino-pkg in Go, rather than Nushell is not only more feasible short-term, but more scalable long term. Currently the development of rhino-pkg 2 (which we've dubbed rhinu-pkg) is currently being handled by a sole maintainer, @Elsie19, in Nushell. No other member of the Rhino Linux team knows Nushell to a confident enough ability to continue the development if @Elsie19 were to cease maintenance of it.
In contrast to this, multiple members of the Rhino Linux team, including myself and @oklopfer have knowledge of Go, and I would be more confident in the continued maintenance of rhino-pkg going forward.
Describe alternatives you've considered
The alternatives to this proposal would be to either continue with the development of rhinu-pkg, or to create it in another language such as Rust.
Additional context
rpkgo
rhinu-pkg
Lastly, I want to recognise the effort that @Elsie19 has put into the development of rhinu-pkg thus far, and this proposal is not intending to detract from that, rather I just have concerns about the long-term maintainability of the project if the rewrite in nushell were to continue ahead.
Please note: This is currently a proposal, and is subject to change. It is pertinent that if you have an opinion on the matter, that you comment and share it with us, as this could shape the future of Rhino Linux development.
The text was updated successfully, but these errors were encountered: