If this had been made an interface to libcurl, or added to a separate tool in the curl distribution, most of the novel functionality could have been adopted 3 years ago without the need to support a separate project and HTTP library.
Rephrase: If this was implemented with libcurl and bundled with cURL it would no longer need to exist as a separate project because cURL would develop and support it. Does that make more sense?
I think I understand what you're saying, but all it would be is a change of ownership/packaging. httpie is only an interface to lower level libraries which already exist (requests and therefore urllib3).
Whether it's an interface to requests or to libcurl matters fairly little. It'd be quite a drag if it were to libcurl in fact because syntax highlighting would be a lot harder, for example.
"all it would be" is a gigantic wealth of new functionality that requests/urllib3 does not have (compare libcurl and urllib3 features), along with greater support, developer base, test coverage, user base, and lower tco. httpie gains a wealth of advantages and cURL gets syntax highlighting. It's hard to overstate how advantageous to httpie it would be.
You are extremely confused at which level it is beneficial to merge projects.
You don't simplify things by going from one popular lib to another, especially when they both have legitimate use cases. Requests is one of Python's most highly regarded libs and a very popular one at that. Httpie is not its only user.
And what you are describing is not a simple process. Gaining tests and features (what features anyway?) is not good enough for it.
> You are extremely confused at which level it is beneficial to merge projects.
Not really, since if you read my comments I suggested they could have been merged into cURL three years ago (after starting four years ago). It wouldn't even be a new project, it would simply be an add-on tool. And that's the point.
Doesn't this assume the maintainers of both projects would be amenable to such a thing, and otherwise be perfectly in unison with regard to vision and goals?
Actually, it mainly just assumes the author knows C. If they had they could have simply taken cURL and written some wrapper functions to do the JSON query part and the syntax highlighting, then submitted their modifications. No extra project needed, no grand vision required.
> Why are you being weirdly insistent that there only exist exactly one tool for making HTTP requests on the command line?
I'm not. I'm being weirdly insistent that adding features to one good tool is better than having 10 kinda-ok tools all with different features.
Imagine if VLC or MPlayer was actually 10 different video players, all of which supported different media formats and had different features. That was actually somewhat the case for a while; kplayer supported some things, the five different GTK/Gnome players supported some things, they were all relatively buggy and playing video was always annoying. Except for VLC and MPlayer, which just did everything, and were mostly fantastic.
How did VLC and MPlayer do this? They designed their apps specifically so that they could expand in features, and allowed people to contribute new technology. They supported runtime codecs and extensions. And they had a large development and user base, and people saw the benefit in having one tool that supported as many ways possible of doing the one thing they wanted: playing a video.
Having one tool to handle all the weird uses of HTTP may not be reasonable, but having a toolkit that bundles all the weird uses of HTTP would be infinitely more useful than having to download 100 different projects just to munge HTTP requests. There are many such toolkits for other technologies. This is not a new or contentious idea.
Not only is this a contentious idea, it's positively absurd on its face. Your logic dictates that every tool with similar goals cannot be maintained separately, and that a single person or group should hold a complete monopoly on how we do any given thing in computing.
VLC and MPlayer were two of "10 different video players" when they were made, and a great many other video players, some significantly older and with higher support, were eventually supplanted by them (at least VLC, anywway).
In your little model here, that would never have happened. You'd utterly kill innovation and progress with this.
I cannot overstate how mistaken you are here, it is completely and wholly a terrible idea, at every turn. Maybe there's something I'm not getting, I certainly hope so.
I used MPlayer and VLC as an example of good development. You then say that if they had been developed the way I describe, they would not exist. But they were in fact developed the way I described. And they are not imaginary. And there is no free software monopoly on video players (not coincidentally because free software was designed to kill monopolies in the first place). If you can somehow re-state this incredibly convoluted argument maybe we can re-address it, but i'm pretty sure you only reinforced my point.
> You then say that if they had been developed the way I describe, they would not exist. But they were in fact developed the way I described.
This is literally false. They were not developed in a vacuum like you describe, but as one of a great many competing products, all of which were older. You claim they should have been folded in with other, older projects, but they weren't and because they weren't, they improved beyond those other projects, and are still here, having grown beyond the projects you claim they should have been absorbed by.
My argument was less than 50 words, if you can't parse it, I can't help you. This is also nearly a week old, has completely lost my interest, and likely the interest of everyone else on this site. Why are you still replying?
What makes you assume that the cURL project wants to support features like syntax highlighting, a second style of command line arguments, ... and would accept such contributions?