Hacker Newsnew | past | comments | ask | show | jobs | submit | Ragnarork's commentslogin

What's odd and strange about this? Author clearly specifies this at the start:

> To summarise for yous there are three main issues for me and the last one happened today and is what pushed me through the threshold.

The compounding led to this, not that individual issues existed (and have been a problem) for a while.


> nearly everyone has some niche thing they like, some 5% that isn't covered by the FOSS

I'm interested in where that estimate + number are coming from. And I'd like to point out that I don't nearly see as many people pushing back against say MacOS for "not being Windows", despite the fact that the same issue would be there. I wonder why Linux gets special treatment in that regards, when modern distros make usage very accessible.

> And that doesn't even get into gaming.

Gaming on Linux works very well. And if something doesn't, it's usually by choice (e.g. BattleEye customers not enabling it on Linux) or by sheer incompetence / malevolence (e.g. EA Games and their shitty EA App that breaks often even on Windows, and even worse on Linux in a Wine environment).


Linux unfortunately needs to be a Windows that's better than Windows to a lot of people unfortunately. It must support all their hardware and software perfectly and can never have any issues, only then will it be an accepted alternative. Probably because it's free and they want it to work on their existing setup.

Mac users paid money for their choice, so ironically they are more forgiven for the inability to run some Office VBA macros, work with that random MST dual display dongle or whatever. They rationalize their expensive purchase as a good decision and that it's good enough and possible to solve issues encountered like spending 5 times as much on Thunderbolt dock to do what the $30 MST dongle did or learn some entirely new $10 app to do what they did on Windows with something else.


MacOS has the software people need, hence why there's not that same push back.

Just as nobody is pushing back against Linux when it comes to server software, or pushing back against PlayStation when it comes to games.


Also, "perceived" or "real"?


Both


This reasoning is flawed in my opinion, because at the end of the day, the software still has to be paid for (for the people that want/need to make a living out of it), and customers wallet are finite.

Our attention is also a finite resource (24h a day max). We already see how this has been the cause for the enshittificaton of large swathes of software like social media where grabbing the attention for a few seconds more drives the main innovation...


Most software is paid for by businesses, not consumers.


> Libraries written in C++ or Java can generally only be used by applications written in the same language. It is difficult to get an application written in Haskell or Java to invoke a library written in C++. On the other hand, libraries written in C are callable from any programming language.

Not saying they should have picked C++ but that's a bit untrue. It's quite easy given some thought into the API to invoke C++ code in basically any language which can invoke C code, since you can wrap a C++ implementation in a C interface. I've done it multiple time throughout my career (that ended up being called from Python, Swift, Objective-C/C++, Swift, Java, and Kotlin).

And as a side note, you don't have to do object-oriented programming in C++ if you don't want to.


Yeah, it's not a very convincing argument imho. You can write C libraries in C++ or Rust or D or Zig, and people do it all the time.

In fact, some popular C++ libraries don't even have a stable C++ API, only a C API. LLVM comes to mind. DuckDB is another example


> It's quite easy given some thought into the API to invoke C++ code in basically any language which can invoke C code, since you can wrap a C++ implementation in a C interface

Is it easy to write a nice C interface for C++ that makes heavy use of templates, smart pointers, and move semantics?

I've only seen it done for C++ that is more C than C++, or for libraries that were designed to "bail out" to a C interface.


> Is it easy to write a nice C interface for C++ that makes heavy use of templates, smart pointers, and move semantics?

If the interface itself has or leaks those features, no that's not easy indeed. But if those do not leak, then they can be used internally yes.

My point was not that it's easy to wrap a currently existing C++ library that has modern features in its interface in a C interface, especially post-C++11.

But that if you design something from the ground up, then it's rather easy (with a certain set of constraints). My bad for not conveying that better.


Then the statement "Stuff can't interoperate with c++" is true. Nothing from c++ ever gets exposed. You have to explicitly write a C interface yourself, or avoid using c++ features (write C in c++) so everything looks like C in the first place and all you need is #ifdef __cplusplus extern "C" #endif. But then you're not writing c++ either.


> Then the statement "Stuff can't interoperate with c++" is true

Where is that statement? The statement I reacted to (and with some caveats) was the following: "Libraries written in C++ or Java can generally only be used by applications written in the same language. It is difficult to get an application written in Haskell or Java to invoke a library written in C++."

Which in my opinion is not true for the reason I mentioned.

> Nothing from c++ ever gets exposed

Depends what's your definition for "getting exposed". If you mean "no C++ feature from the language gets exposed" then it's mostly true (you can still wrap certain things like allocators, though painful, but there's certain C++ features that have no real equivalent in some target languages indeed). But you can definitely expose the functionality of C++ code through a C interface.


That's definitely true. Can't have generics / compile time evaluation across languages. Need to design your code around that restriction ahead of time. SQLite being dynamically typed luckily doesn't have any problems with that.

I've actually run into a similar problem with a C library before, because it heavily used macros as part of its API. Glad most developers don't do that.


You lose most of the advantages of C++ if you can't use vector, unique_ptr and the like in your APIs. Classes are also useful for a lot of things.


You do lose the ability to use some features, that's true. Mostly RAII around the interface. You can still leverage it internally in the implementation, and if using context objects it would be even easier. The main pain point is if you want to let client of the library use their own allocators. It's still doable, but quite a pain.

Classes can be wrapped with a bit of effort. You do need to write the constructors and the destructors manually and invoke a pair of new/delete on the C side, but it's just as you would handle a type allocated by a C library itself. You'd use it the same way. You just have the liberty to have the implementation use (mostly) C++.


You can still use them inside your code, just not as arguments or return values from the API.

And it's not like that's a point in favor of C, since C doesn't have vector or unique_ptr either


What happens when your values are strongly at odds with lying and being dishonest?


Sooner or later you get tired of eating crap and counting pennies. We live in a world with a pedophile president, do what you need to survive


Find a job with a high enough paycheck that makes lying worthwhile.

Alternatively, you can live like Diogenes of Sinope.


> a high risk of being disrupted by those clients just using AI agents instead of paying $2-5000/day for a team of 20 barely-qualified new-grads in some far-off country

Is there any concrete evidence of that risk being high? That doesn't come from people whose job is to sell AI?


In a way, they really condensed perfectly a lot of what's silly currently around AI.

> Codex, Opus, Gemini try to build Counter Strike

Even though the prompt mentions Counter Strike, it actually asks to build the basics of a generic FPS, and with a few iterations ends up with some sort of minecraft-looking generic FPS with code that would never make it to prod anywhere sane.

It's technically impressive. But functionally very dubious (and not at all anything remotely close to Counter-Strike besides "being an FPS").

Fitting.


It's not even technically impressive to anybody who has worked on first person shooters. It's literally trash.


This reminded me instantly of Every Frame a Painting's video "Vancouver never plays itself"[0].

[0] https://www.youtube.com/watch?v=ojm74VGsZBU


> Gee, how hard is to find SE experts in that particular combination of available ops tools?

You find expert in Ops, not in tools. People that know the fundamentals, not just the buttons to push in "certain situations" without knowing what's really going on under the hood.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: