I Could Rewrite Curl (2021)
daniel.haxx.se
daniel.haxx.se
Assuming this is the "99%" usage pattern:
curl -O foo.txt https://example.com/foo.txt
Then, yes.Also, it's not immediately obvious in the various libraries how to do something right. Most python/requests examples you'll find to do that simple "download a file", for example, would run out of memory on a large file.
curl -O $1 $2
Checkmate 100line python guy!
Sure if you want to fetch a file from the internet you could do it with one line (see the person I'm replying to);
I'd love to see the look on some of these people's faces when they find out that tool/software/whatever they use is actually using libcurl under the hood.
Good luck even getting on the internet in the first place without that router, switch, PC, modem or anything else that's also running curl/libcurl.
I don't know whether it's just my age showing, but thinking you could do anything remotely like curl in 3 days is .... well, my 1 year old probably talks more sense when he says "no".
Python dependencies (does not include curl)
https://devguide.python.org/getting-started/setup-building/i...
The "requests" module in Python (does not use curl)
that's perfect evidence that, no, a common developer cannot "re-write" curl in a few days.
No way would I run software in my car that someone hacked together in 3 days.
Your car probably wants to use some relatively pedestrian things like HTTPS, but do you think it should have any capability of doing GOPHER, SMBS, SFTP, POP3, LDAP, IMAP, TELNET, TFTP, SCP or any of the other stuff curl supports out of the box?
We can hope that the version of curl used for the car was compiled without support for some of these protocols. I don't even know if we have a good way to verify that. More likely is that whatever the stock configuration (all the protocols) is what is being used in most applications.
So no Tesla for you then.
like those 99% i never had a use for curl because wget covers all my use cases including some that curl doesn't.
but where curl is a swiss-army-knife, wget is a simple hunters or sailors knife. it cuts, and that's all it does.
everyone who complains about curl is not taking advantage of its features and should be using wget instead of complaining.
I've always felt really proud when contributing to an OS project and it's approved and merged etc. But never once have I thought to complain or even give my sometimes bad opinions on stuff. I don't know how OS providers and maintainers do it.
The part of FOSS I think would be demoralising for me would be dealing with all the people who assume that the maintainer of a piece of software is a customer service operative who exists solely to reply to them in a timely fashion.
Then maybe for kicks and giggles once a year: "Hi, just a quick followup...did you ever get around to rewriting Curl? Cause I know you could."
The best thing is to just ignore this completely though and focus on the stuff that you are doing.
https://daniel.haxx.se/blog/wp-content/uploads/2023/03/Scree...
It reminds me of a funny story from my university days (sorry I don't tell it too well); I'm in some electronics theory class, I forget the title, the lecturer is writing some equations on the board as he talks us through them;
the guy next to me nudges me and goes, what an idiot, that's not omega; he proceeds to put his hand up like a child, thrusting it repeatedly in the air, so he can share what an idiot this guy is with him and the class;
I ask him quietly not to do it, he ignores me, and carries on until he distracts the prof and the class; prof walks over and asks what's up?
Guy makes his point, loud enough for everyone to hear; prof smiles, hands him the chalk and sits down. Guy sits there for a minute looking confused so the prof gets back up, takes the chalk back and says loud enough for everyone;
"You don't want to teach this lecture? No? Ok. But you DO want to tell a Greek guy how to write Greek? grin" - Dr Ioannis Alexandrou
Great lecturer, cool guy, I hope he's doing well.
A person who knows Greek quite well once told me that I wrote some Greek letters wrongly. From her (linguistic) knowledge perspective about the Greek alphabet, she was surely right, but some Greek letters are very commonly written somewhat differently by mathematicians than by people who know Greek.
In this sense: I know quite well how some Greek letters are nearly always written by mathematicians, which can be a little bit different from how they are written by people who know Greek.
Of course, curl contains a lot more functionality, but the people who are very aware of it and actually use this functionality actively would not do such claims, because for their use cases, curl cannot be rewritten in a long weekend.
It's basically python httpie rewritten in rust. my only gripe is that i keep forgetting that it exists - and that "xh" is for http and "xhs" is for https.
So i frequently end up with curl anyway:)
Of course Curl has evolved into an enormous endeavor, just like the first kernels and browsers were tiny and now are impossible to rewrite because the scope has never stopped growing.
The critics are pointing out that the growth in scope is a smell. If your software went from "all features are used by 50% of users" to just 0.1% of users, then you're probably shaving yaks.