C++ build times get high only if you start messing with the type system and ask for it to be recompiled every single time again and again.
Rust is slower overall, which is why people tend to complain. And if you start messing around like in C++, then you get even crazier times.
But in neither case it is a dealbreaker compared to other languages. Go proponents claim compilation speed is everything, which is suspicious. I do not need to run my code immediately if I am programming in C++ or Rust. And if I am really doing something that requires interactivity, I should be doing it another way, not recompiling every time...
I think it's fairly naive to say build times get long "only if you mess with the type system" whatever that means. It's pretty easy to tank your compile/edit/debug cycle just by adding or removing things to a header file. Maybe modules will improve things.
I've worked in C++ code bases with just a few 100k loc where one starts architecting the software to avoid long compile times. Think about how insane that is, you choose to write and structure code differently as punishment for the sin of writing new code. Not to improve the software performance or add new features.
The worst example of this is the pimpl pattern. You make th explicit choice to trade off compile times to hide everything behind a pointer dereference that is almost guaranteed to be opaque to the compiler, even after LTO, so the only "inlining" you may see is from the branch predictor on a user's machine. That's bonkers!
Of course compile times increase with code size, that is not what people are talking about when they say "X language compiles slowly". They are talking about time per code size.
Messing with the type system is using it for things you really should not in any reasonable project. For instance, some of the Boost libs with their overgeneralizations that 99% of users do not need.
Run the code (with some debug logging statements, very likely), find a small mistake, make a few characters worth of correction, press your IDE's keyboard shortcut for recompilation and re-running.
If the last step is slow you can lose momentum and motivation to iterate quickly on the problem at hand.
Sure it doesn't apply to a lot of projects, that's true. But it's not charitable to claim it only applies when learning.
it depends on the problem domain. when working on say a desktop app with graphical ui features it can be very useful to be able to change/experiment quickly.
with an n tier web application you wont often be able to do that anyway.
> ... web pages that talk to ... health devices ... there is no way to block ads in an app
Wait, what?? Why on earth would you use an app with ads for health devices?!?
Moreover, why on earth are you using apps with ads for anything?
Please, please, please, pay for your apps and games. Stop making everything an ad service. The race to the bottom in the web and mobile world is disturbing.
Would you want to pay for your house plumbing by being forced to watch an ad every time you shower? Think about how dystopian that sounds. There are even Black Mirror episodes on that.
> Wait, what?? Why on earth would you use an app with ads for health devices?!?
GP said they want to _write_ a web app that talks to health devices. And that they like the web platform because it's easy to block ads shown to you by other web apps.
I will add that it's also easier to detect/block tracking. Browsers such as Firefox even try to do this for you these days. And to generally examine what the app is doing (e.g. by running it in JS debugger).
Yes, paid apps usually (but not always) remove ads. They keep the telemetry, though.
On the privacy end of things, ads certainly aren't helping, but a pretty large number of even paid apps are happily vacuuming up data and sending them to the developer and often third parties (vendors of analytics/debugging platforms in particular). I tend to think of an app for most things as a loss of privacy and try to avoid using them when possible.
> a pretty large number of even paid apps are happily vacuuming up data and sending them to the developer and often third parties
Please name some examples. I certainly do not have not use nor know about any paid software that "vacuums" my actual data or tries to track me.
> analytics/debugging platforms
You cannot compare anonymous, aggregate details about overall usage of an app or crash stacktraces (which is what most paid/OSS apps do) to the kind of identification webs do for ads.
Again: native apps do not care about showing personalized ads to you nor their business depends on it.
> I tend to think of an app for most things as a loss of privacy
Mobile apps from vendors like Facebook definitely. Normal paid/OSS desktop software, no.
I would seriously consider any alternative vendor or simply living without the app. No serious health device will show you ads of any kind in their software.
There is a modern overreliance on apps for everything these days.
Why would you ever want a PWA when a native version exists?
And "heavy client" is a fallacy. Operating systems come with runtimes too. Very complex native app can be very small in size if it uses the native controls and APIs. They can be KB in size. Any asset is going to be bigger than the binary itself.
The web-as-native apps are the ones that are huge, because they embed a behemoth (a browser) which is akin to an entire operating system.
PWAs run from the browser sandbox which is generally much stricter than restrictions for native apps. Permission systems for native applications seems to be starting to follow browsers (flatpak, snap, .appx, etc.), but don't offer nearly the ability to restrict what a native app can do like the browser does.
In theory native apps are "trusted", but I think for the vast majority of users the trust between a companies website and app are equivalent, vetted the same, and probably do an equivalent amount of tracking if not more by the native app (facebook SDKs are pretty common in native mobile apps).
I talked about paid or open source productive software, usually desktop based, nor ad-riddled mobile apps with the Facebook SDK which by definition are not trusted.
Mobile apps are increasingly sandboxed too, like websites, precisely because of that.
Well, because native apps are intended to be trusted. They do not have a motivation to invade your privacy: proprietary apps are usually paid upfront and risk their future clients, open source can be inspected.
Instead, the overwhelming web business model is "free to use" (akin to f2p in games). That means ads and other monetization side channels become the priority of the app, not the app itself.
And that is for trusted web apps. Let's not even talk about the fact that you are executing random code every time you visit any webpage. That just does not happen with native apps.
That's not true at all! Free native apps abound. Web apps tied to subscriptions are also plentiful.
Open source is neither here nor there: both web sites and native apps can be open source. In fact, the web is unique in allowing you to actually inspect the source that is running on your machine, you have no way of verifying that the code in an open source repo is what actually runs inside your iOS app.
> In fact, the web is unique in allowing you to actually inspect the source that is running on your machine
To be fair, this is changing with WASM. On the other hand, there are tons of obfuscation opportunities with native executables that don't exist for WASM.
Yes? I haven't claimed there aren't free native apps.
> Web apps tied to subscriptions are also plentiful.
Fair, but most of the ones I know are usually technical apps or they offer something else that is not about software (for instance, storage more than the app).
> the web is unique in allowing you to actually inspect the source that is running on your machine
That is not unique, nor true.
Uniqueness: you have apps made in scripting languages everywhere. Even for compiled languages it is a decision not to give you the code, not a technical one.
Truthness: many webs are obfuscated on purpose like native apps are.
> you have no way of verifying that the code in an open source repo is what actually runs inside your iOS app.
False, you can definitely verify that a binary matches the source code in deterministic builds and even provide debugging symbols etc. The fact that many projects don't care about that does not mean there is "no way", it just means the overwhelming majority of users do not care.
The average customer is not paying 1000$ for getting "protection from those risks", and it is that customer that drives the price, not the average user in HN.
And that is assuming they are trying to "protect you", but that is a different discussion.
They certainly are trying to protect you but I am not naive to think it's out of the kindness of their corporate heart. It's because that's what many people want right now. Apple tried to compete with Google and Facebook at their own game, predictably lost, so changed the rules of the game. Which was a brilliant strategy and if next year they change their stance I will happily reconsider my opinion.
And people don't have to know explicitly every feature and how it's achieved technically. The phone is now almost a commodity, like toothpaste. You buy one because that manufacturer built a trust. You probably buy Colgate, Sensodyne, or OralB (Crest). But not because you carefully analyzed their chemical composition, or pored through study after study. You just trust one, a friend or dentist recommended it, it just works for you, and so on.
That protection the phone affords you may not be immediately apparent but enough people start noticing eventually even if they don't understand the underlying technical part.
A thousand dollars is 1/12 of the average Chinese annual salary
That's why they buy 99$ phones
You're comparing a few millions people living in SV with billions of people making less than 10 dollars a day and assuming that they have the same PPA and that they represent the entirety of the World's user opinions and/or will
This sounds good for developers all around, and a minor inconvenience for gamers who are free to buy from as many stores as they like on PC. Yet could benefit gamers long term as it motivates Steam to be more competitive.
Anti competitive would be buying up competing battle royale franchises to reduce consumer choice.
Except Intel was the behemoth in the case. Here Steam is the one with marketshare, mindshare, and no serious competition before Epic. These exclusives are also usually time limited. This isn't Facebook buying whole studios and locking up content indefinitely.
> How is obscene amounts of money forcing anything?
Indie game studios have a very hard time surviving.
Giving them instantaneous access to a huge pile of money that allows them to declare success even before releasing a project is something most people cannot reject.
> Anti competitive would be buying up competing battle royale franchises to reduce consumer choice.
That is what they are doing but with game stores. They are effectively buying everything to dry the rest of the stores, reducing other stores choice of customers.
> This sounds good for developers all around
Not really. Devs get money, but they lose the product. Indie devs are not independent anymore. Etc.
If Epic had success building the monopoly, everyone would have suffered, not just devs.
What monopoly? There is a monopoly today; it's called Steam. It has an immense userbase and plenty of user loyalty; it's not going anywhere. If Epic succeeds, there will be two major stores rather than one.
Are you a pc gamer? Because if you are, I don't understand how you can't see Steam as a massive monopoly.
Perhaps you don't because they have done almost all GOOD with their monopoly power. Offline mode, library sharing, massive sales, etc.. but they are quite a monopoly.
If 99% of my library is on Steam, why should I bother buying somewhere else? It's just an inconvenience to me. Ok I can buy off GOG and have no DRM.... how does that really help me? I can already play it on steam with no problems, my friends can play the shared game on steam, I don't have to worry about multiple platforms etc..
Anyway- steam is a massive monopoly and we are lucky they use their powers for good!
Network effects make Steam a practical monopoly. And it's probably no coincidence it has lower rates for AAA studios since Epic has gained a foothold in the market.
Steam has plenty of money and users. It also had little serious competition before Epic. While I'm a fan of well regulated markets, I don't think punishing Epic would benefit anyone except Steam shareholders.
Except gamers do not care about Steam being a monopoly (they are just a distributor and does not set prices), but would really be hurt if Epic and exclusivity of titles starts to take hold.
I can promise you, there will be more flavors and extensions in the next 20 years. And if I'm still alive then and we don't invent anything drastically different from keyboard input, I'd probably still be using Org-mode. Among thousands of others.
GFM, Gitlab and others you list are CommonMark plus extensions, which is what I said.
What is the problem? It is like saying JSON is useless because YAML exists, or that ISO C, C++, Fortran, IEEE 754, etc. are all useless because compilers and chip companies implement extensions.
You're still comparing just one aspect of Org-mode with Markdown. You're trying to convince me as if I was a pro-photographer and you'd tried to convince me that .jpeg is a fine format and everyone uses it and it's more popular, even though I'd still prefer RAW. Using .markdown is not appealing for me because .org allows me to do way more. If you're not convinced, then perhaps you don't need it. But don't expect me and thousands of other users of .org to switch, we'd be like: "Sorry, but you don't know what you're talking about". No offense.
Actually, YAML is probably worse than JSON, but JSON is really crappy compared to EDN. It's unfortunate that JSON has become the lingua franca for services, because it's really a stunted, primitive thing.
Rust is slower overall, which is why people tend to complain. And if you start messing around like in C++, then you get even crazier times.
But in neither case it is a dealbreaker compared to other languages. Go proponents claim compilation speed is everything, which is suspicious. I do not need to run my code immediately if I am programming in C++ or Rust. And if I am really doing something that requires interactivity, I should be doing it another way, not recompiling every time...