I think the age of AI has really cheapened work like this. It's clear this library was vibe-coded; it's clear enough that the python version of the library originally posted yesterday was vibe-coded; I didn't look at the original library but it would shock me not at all that it was vibe-coded. Often just one or two commits and a functional library, emoji all over the readme, "Clean and easy-to-use API", etc.
In many ways this is pretty amazing. Only a few years ago it would have been a huge pain in the ass to come across some valuable library only for it to be locked in some language I didn't understand or wasn't working in at that moment. But in other ways, maybe it feels a bit "cheap" now to do `claude -p "port this library to $LANG, make sure it works, do a good job" and I'm not sure there's a ton of... accomplishment? craft? care? in it.
moshib · 19h ago
At my $CORP job, I often see engineers enamored with creating new things. I completely understand the appeal -- it's fun to create something new, without preexisting constraints, with full ownership of the codebase.
However, the real challenge is what happens _later_, when the thing is done. Most people don't really think about maintenance, and move on to other things, making the thing they worked on stale and stagnant.
I think this applies here too: Vibe coding lets us create new _things_ quite easily, but we see value in places other than the sheer the existence of the project. We care about how the project is maintained, if it has a userbase, contributors, longevity. I think this is also part of why it feels so "cheap" and not genuine.
hebejebelus · 18h ago
Yes, indeed. I think that's why I haven't published much code in the last years since I vibe-code everything I build now and I have essentially no intention to maintain it once it's 'working'
teiferer · 19h ago
As an "AI" skeptic, let me ask an out-of-character question: Could such maintenance be automated or at least heavily simplified with coding agents? Looking over whether something breaks when gcc is upgraded, automatically updating if needed, updating best practices, automatically reproducing reported issues and proposing fixes ... too much of a dream?
hebejebelus · 18h ago
Yes, definitely some of it can be simplified or automated. I've been migrating various apps from a docker-compose to a kubernetes environment. Spending a day writing a solid prompt document and running some agent on the repos involved has drastically sped up my workflow.
The integration hell isn't much easier, but I spend _far_ less time actually writing configurations, yaml files, looking up docs, etc, which frees up my time so that I can deal with the workplace politics involved... actually, maybe I want to go back.
tobyhinloopen · 19h ago
AI also loves to explain what code does with stuff like this:
// Check if sensor is available
if (sensor.isAvailable()) {
// Read current angle
double angle = sensor.readAngle();
Which, to me, is a clear indicator of the author (being AI, I hope) not caring about code readability.
Aurelius108 · 18h ago
Unfortunately staff engineers at my company will demand annoying comments like this so I don't think it's necessarily a sign of vibe coding
And I get told all tests need a comment so I copy that line and add spaces between the words. WTF! >:(
saagarjha · 17h ago
One would hope that the principal engineers above them have more sense…
hackingonempty · 16h ago
What if a human wrote all of the comments in the function first then wrote the code? Should they then delete the comments?
bapak · 19h ago
I need to create an AI agent that comments on any PR when it finds useless comments
Aurelius108 · 18h ago
Oddly enough I find senior engineers at my company demand ridiculous comments like this oddly enough. I've found that a 1:3 comment:code ratio (basically a comment every 2-3 lines with a new line separating each block) is the only thing that will prevent some annoying code review comments asking for clarifications.
tobyhinloopen · 18h ago
Give them a copy of Robert C Martin’s Clean Code hah
walthamstow · 18h ago
I'm fighting this shit so hard at work every day, every PR review. The LLM writes comments like someone who can't read code is going to read it.
balamatom · 17h ago
Bold of you to assume the majority of developers can read code.
jay-barronville · 16h ago
> Bold of you to assume the majority of developers can read code.
Haha. Bold indeed.
ofrzeta · 19h ago
Yeah, it's typical for LLMs. A comment anti-pattern. I wonder if LLM explainability can deliver and answer on "why" they are doing it.
mort96 · 16h ago
I wouldn't be surprised if it improves the language model's ability to write code. By inserting useless comments like that, its context will contain a very recent "prompt" of what it's trying to do when it actually writes the code.
numpad0 · 19h ago
This one is hallmark of Arduino sample code, which consists a majority of materials found on the internet regarding sensors and code.
I think the original human intent is to inflate mental share on hardware and/or time domain issues as those are just routine occurences in Arduino projects.
numpad0 · 8h ago
There do seem to be some of young brilliant minds today taking "with AI you can be xxx" too literally, thinking the sole remaining distinction between them and all the rich geniuses in the world is willingness to prompt something. They're not incentivized to fix that skewed perceptions because they have nothing else to reinforce their self esteem and "LLM is AGI" is giving them the crutch they desperately need. They'll be hard to de-program when the time comes...
qq66 · 19h ago
On the other hand, this library probably wouldn’t exist without vibe coding, and you might never have known that the lid angle is readable.
hebejebelus · 19h ago
I think that's the thing I'm trying to say. _This_ library might not exist but anyone with an Anthropic account and the knowledge that there is a readable sensor can make it exist just as easily.
joenot443 · 16h ago
I completely agree.
I’d be so much more impressed if OP had come up with an interesting use case for this “library” rather than just writing a single prompt and firing up a Show HN
macOS has hundreds of APIs. I’m not really convinced every single one needs a Claude wrapper library, nor am I convinced OP did any amount of interesting engineering work here.
It’s a bit like releasing a music album comprised entirely of Suno tracks - sure, it’s there, you can press play, but is it something to be proud of?
numpad0 · 18h ago
This couldn't have existed until someone else done it manually in Python and posted here on HN. The author likely fed that code to Claude or free tier Gemini.
saagarjha · 17h ago
Did you see the link to the repo that inspired this?
bapak · 19h ago
> I'm not sure there's a ton of... accomplishment? craft? care? in it.
Who cares?
What's important is that now I have a useful library. The only complaint I'd give is that it might not be super optimized, but it's open source so you can instruct your agent to take it and optimize it for you :)
hebejebelus · 18h ago
This is pretty much what I'm trying to get at. Why would you even begin with _this_ library when you also have an agent that can build precisely the thing you want with the abstractions, constraints, etc that you want? What value does _this_ library have, considering that it takes you _exactly_ as much time and effort to build your own?
Fnoord · 16h ago
In my world, using Claude is not free as in beer. It might be in yours, but in mine it isn't. I can use LLMs locally and remotely but there's always a cost attached to it (privacy is also a cost).
I feel like it is a painter who devalues the works which can be made with tools like Photoshop and Illustrator. It feels like elitism, while you could also value the lower barrier point of entry.
hebejebelus · 16h ago
That's a very fair point in regards of the cost. I should have thought about that more.
The analogy is very interesting, but I think perhaps I didn't do a good job of articulating my point - I feel I was trying to say that everyone*, myself included, is a Photoshop user now, and we know how much work it is or isn't to achieve some goal with it (which was previously impossible or difficult when we all just had paintbrushes and easels). I'm not doing a good job of articulating my point now either unfortunately.
Perhaps I'm trying to say that we all* own photocopiers now? I'm not sure.
I appreciate you taking an opposing view. I will think about my opinion some more.
Fnoord · 14h ago
That's great, my previous post and this one are meant to ponder over not necessarily to convince.
I believe it is the (partly justified) worry that the craftmanship is devalued, or a tragedy of the commons scenario (the energy industry and meat industry are good examples here).
I've hold the same view about photocamera's (we all carry a digital one in pocket nowadays and can shoot as much as we want to), singing (autotune devalues singing putting more emphasis on the showbiz surrounding music artists), or VSTs (versus analog synths).
We end up with an overflow of information which we can no longer manually process. So we need tooling to do so (for example Spotify or Facebook algorithm).
But you still have people geeking over analog synths. In front row you will hear false notes of a singer. Entire websites and communities exist to filter out good pictures (the only thing I use Bing for is their daily wallpaper), and so on. I still use an analog synth because I love it, and 3 out of 4 family members are singing in leisure time (in an amateur group, but still). With regards to camera, I no longer appreciate such as much but pictures which win prizes I recognize (my father in 60s or 70s won a prize with a bw picture he developed in a dark room himself).
Programming long ago got devalued and it is a process. It perhaps started when delete/backspace got more common (as we no longer required punched cards) or even the succesors of the huge computer at Bletchley Park. But if people say it is all Python and JavaScript fault then I think about Visual Basic and believe something lowering the barrier point of entry was going to become popular. Same with MSDOS (cheap OS for PC), MS Windows (first GUI OS for many new PC users), iPhone (first popular capacitive touch smartphone). Each of these destroyed their predecessor, and such came with downsides which in hindsight seem obvious.
The history of GNOME (Gnome) and KDE is also interesting in this context. Both the licensing but also choice of programming languages. KDE comprising of C++ and GNOME of C, with something like Vala not taking up and GJS too late.
MangoToupe · 17h ago
Honest question, why bother publishing the code at all? Wouldn't it make more sense to publish the prompt?
hebejebelus · 17h ago
Yes, exactly. Unless you have a deep intention to maintain this library or somehow elevate it beyond the version anyone would get given a couple of minutes and Claude, what's even the point in publishing the code or submitting to HN? And what is the benefit for anyone to use _this_ library instead of getting Claude to build their own with whatever constraints and requirements they have?
Again I don't want to come across as criticising the OP, I am just struggling with this myself. I've vibe-coded a few great things for myself but the value is so personal (and the lack of intention to maintain is so strong) that I would rather others build their own version than use mine!
brettermeier · 17h ago
No, energy got used for LLM to produce this, why do it twice?
hebejebelus · 16h ago
Very good point. I only thought about it in terms of the individual effort rather than the actual physical energy being used.
MangoToupe · 17h ago
That's a fair point.
krapp · 17h ago
I mean, we're supposed to care? We're here on a forum of programmers and technical people ostensibly gathered because we want to satisfy our intellectual and technical curiosity.
Hacker News is already full of people too misanthropic and uncurious to engage with topics beyond the title. Now we don't even care about the art and science of programming. So why bother showing up? This place will be nothing but shitposting bots and self-promotion soon.
bapak · 7h ago
I mean, yeah, I care about my code and any code I have to read, but having to use a LLM-made library isn't the end of the world.
It's like complaining that the eggs at the supermarket are not homemade. It's an egg. Eat it. You can still raise your chickens.
krapp · 4h ago
The point of Show HN is to show off things you made. I'm not complaining about using this as a library - although the creeping ubiquity of vibe-coded libraries carries its own concerns. I'm complaining about going into an explicitly creative setting - yes, that's what HN is supposed to be - with an attitude that nothing matters but the pure utility of the end product. Just kind of sucks the joy out of all of it, and this place had precious little left to offer.
madduci · 17h ago
And the Hungary Notation, typical of Win32 APIs?
aa-jv · 19h ago
I think its easy to criticise vibe-coded work, if you're into programming for the sake of programming.
But if you're into programming for the sake of the user, none of this matters.
For me, I appreciate the clean, complete documentation and code generated for use in this project - I see nothing wrong with it, its useful and functional, and I can easily integrate this library into an app I'm building to get the screen angle. From this perspective, for the sake of the user/developer, I'd say things were definitely improved over Plain Ol' Human Code™ ...
hebejebelus · 19h ago
Ha, I'm not into programming for the sake of it. I vibe-code all the time now and don't think I've written a line of code by hand in over a year. I'm really not trying to criticise this library itself and I agree that in many ways it's quite good.
What I think I'm trying to say is that this specific kind of thing now takes everyone the same amount of time to create. It's "cheapened" this specific type of code. I'm not trying to say this particular library is bad or anything, just that converting some small library from one language to another no longer really holds much value, since essentially everyone can do exactly the same thing exactly the same way now, for the same time cost.
aa-jv · 17h ago
I think the point where we diverge is that this is a good thing:
>everyone can do exactly the same thing exactly the same way now, for the same time cost.
It doesn't have to be cool. It just has to work.
hebejebelus · 16h ago
I'm not sure we diverge in this sense, I also think that's a good thing, if not the most amazing thing about modern programming! The democratisation of hyper-personal computing is incredible. Now anyone(-ish) can build exactly(-ish) what they need to create whatever they want to create.
What I suppose I'm unsure about is the value of publishing utility code when the cost of bespoke creation is so low. But there are a couple of interesting perspectives in the responses so now I have to go away and think about it some more :)
boxed · 17h ago
A class for no reason is a bit weird too. This is just not idiomatic C++.
tos1 · 20h ago
Cool! I'm wondering why is the lid-opening angle a 16 bit value without any scaling? Can MacBooks be opened > 255°? :)
It's a low level library, it's probably just the register on the sensor itself is 16bit so that's what gets propagated up to the OS.
The most I can reach on mine is 132deg
GranPC · 18h ago
Technically yes - might have a bit of a hard time closing it back down tho.
mort96 · 16h ago
The underlying system API is a u16. Do you propose that this library should add logic to clamp the value between 0 and 255? What would be the point in that?
bboygravity · 15h ago
To save 1 byte in RAM for the 300MB electron app that will load this lib.
beardyw · 14h ago
Maybe use the lid as a foot pedal in a driving simulator?
I think the age of AI has really cheapened work like this. It's clear this library was vibe-coded; it's clear enough that the python version of the library originally posted yesterday was vibe-coded; I didn't look at the original library but it would shock me not at all that it was vibe-coded. Often just one or two commits and a functional library, emoji all over the readme, "Clean and easy-to-use API", etc.
In many ways this is pretty amazing. Only a few years ago it would have been a huge pain in the ass to come across some valuable library only for it to be locked in some language I didn't understand or wasn't working in at that moment. But in other ways, maybe it feels a bit "cheap" now to do `claude -p "port this library to $LANG, make sure it works, do a good job" and I'm not sure there's a ton of... accomplishment? craft? care? in it.
However, the real challenge is what happens _later_, when the thing is done. Most people don't really think about maintenance, and move on to other things, making the thing they worked on stale and stagnant.
I think this applies here too: Vibe coding lets us create new _things_ quite easily, but we see value in places other than the sheer the existence of the project. We care about how the project is maintained, if it has a userbase, contributors, longevity. I think this is also part of why it feels so "cheap" and not genuine.
The integration hell isn't much easier, but I spend _far_ less time actually writing configurations, yaml files, looking up docs, etc, which frees up my time so that I can deal with the workplace politics involved... actually, maybe I want to go back.
Haha. Bold indeed.
I think the original human intent is to inflate mental share on hardware and/or time domain issues as those are just routine occurences in Arduino projects.
I’d be so much more impressed if OP had come up with an interesting use case for this “library” rather than just writing a single prompt and firing up a Show HN
macOS has hundreds of APIs. I’m not really convinced every single one needs a Claude wrapper library, nor am I convinced OP did any amount of interesting engineering work here.
It’s a bit like releasing a music album comprised entirely of Suno tracks - sure, it’s there, you can press play, but is it something to be proud of?
Who cares?
What's important is that now I have a useful library. The only complaint I'd give is that it might not be super optimized, but it's open source so you can instruct your agent to take it and optimize it for you :)
I feel like it is a painter who devalues the works which can be made with tools like Photoshop and Illustrator. It feels like elitism, while you could also value the lower barrier point of entry.
The analogy is very interesting, but I think perhaps I didn't do a good job of articulating my point - I feel I was trying to say that everyone*, myself included, is a Photoshop user now, and we know how much work it is or isn't to achieve some goal with it (which was previously impossible or difficult when we all just had paintbrushes and easels). I'm not doing a good job of articulating my point now either unfortunately.
Perhaps I'm trying to say that we all* own photocopiers now? I'm not sure.
I appreciate you taking an opposing view. I will think about my opinion some more.
I believe it is the (partly justified) worry that the craftmanship is devalued, or a tragedy of the commons scenario (the energy industry and meat industry are good examples here).
I've hold the same view about photocamera's (we all carry a digital one in pocket nowadays and can shoot as much as we want to), singing (autotune devalues singing putting more emphasis on the showbiz surrounding music artists), or VSTs (versus analog synths).
We end up with an overflow of information which we can no longer manually process. So we need tooling to do so (for example Spotify or Facebook algorithm).
But you still have people geeking over analog synths. In front row you will hear false notes of a singer. Entire websites and communities exist to filter out good pictures (the only thing I use Bing for is their daily wallpaper), and so on. I still use an analog synth because I love it, and 3 out of 4 family members are singing in leisure time (in an amateur group, but still). With regards to camera, I no longer appreciate such as much but pictures which win prizes I recognize (my father in 60s or 70s won a prize with a bw picture he developed in a dark room himself).
Programming long ago got devalued and it is a process. It perhaps started when delete/backspace got more common (as we no longer required punched cards) or even the succesors of the huge computer at Bletchley Park. But if people say it is all Python and JavaScript fault then I think about Visual Basic and believe something lowering the barrier point of entry was going to become popular. Same with MSDOS (cheap OS for PC), MS Windows (first GUI OS for many new PC users), iPhone (first popular capacitive touch smartphone). Each of these destroyed their predecessor, and such came with downsides which in hindsight seem obvious.
The history of GNOME (Gnome) and KDE is also interesting in this context. Both the licensing but also choice of programming languages. KDE comprising of C++ and GNOME of C, with something like Vala not taking up and GJS too late.
Again I don't want to come across as criticising the OP, I am just struggling with this myself. I've vibe-coded a few great things for myself but the value is so personal (and the lack of intention to maintain is so strong) that I would rather others build their own version than use mine!
Hacker News is already full of people too misanthropic and uncurious to engage with topics beyond the title. Now we don't even care about the art and science of programming. So why bother showing up? This place will be nothing but shitposting bots and self-promotion soon.
It's like complaining that the eggs at the supermarket are not homemade. It's an egg. Eat it. You can still raise your chickens.
But if you're into programming for the sake of the user, none of this matters.
For me, I appreciate the clean, complete documentation and code generated for use in this project - I see nothing wrong with it, its useful and functional, and I can easily integrate this library into an app I'm building to get the screen angle. From this perspective, for the sake of the user/developer, I'd say things were definitely improved over Plain Ol' Human Code™ ...
What I think I'm trying to say is that this specific kind of thing now takes everyone the same amount of time to create. It's "cheapened" this specific type of code. I'm not trying to say this particular library is bad or anything, just that converting some small library from one language to another no longer really holds much value, since essentially everyone can do exactly the same thing exactly the same way now, for the same time cost.
>everyone can do exactly the same thing exactly the same way now, for the same time cost.
It doesn't have to be cool. It just has to work.
What I suppose I'm unsure about is the value of publishing utility code when the cost of bespoke creation is so low. But there are a couple of interesting perspectives in the responses so now I have to go away and think about it some more :)
(https://github.com/ufoym/mac-angle/blob/main/angle.cpp#L186)
The most I can reach on mine is 132deg