> "but writing in C-like Java can give you C performance while still letting you interact with Java libraries & APIs."
It really can't. Quite the opposite. Writing C-like Java is already doomed from the start. Java is faster than C when it comes to OOP. Unless you product is a highly complex OOP nightmare, C will always beat Java to the curb.
GC is not free. The problem with GC is that you pay asynchronously, while allocations are essentially free. But this asynchronous cost is very very hard to measure and to control.
Java does not offer the mechanism C/C++ offer for native resource management. It also doesn't do complex optimizations, most notably vectorization. Number crunching performance will always suck in Java. Even if they add all the optimizations in the world, the simple fact remains: Java as a language simply does not allow you to express code in a performant way. That leave the compiler at a double disadvantage. It needs to essentially "convert Java to C++ and guess the most performant interpretation" (we are decades away from this), and it needs to do that within milliseconds (because its a JIT).
It just makes no sense to talk about this. Use Java for the 99% of your product that is not a hotpath, use C for the remaining 1% where you need pure performance. Simple as that.
That's all well and good. However it still doesn't address three key factors:
* Everyone hates ads. You can try to shove it down their throats anyway by being a monopoly, but eventually this won't work anymore, since there is too much competition that doesn't rely on ad revenue and too many companies trying to block ads.
* Google doesn't have a solid revenue stream besides ads. And it's unclear how they are gonna get one. At least not in the magnitude they need to survive.
* Google faces strong competition on all fronts and all of them, except perhaps Facebook, don't count ad revenue as primary source of income. This puts Google at a substantial disadvantage, amplified by the first point: EVERYONE freakin hates ads
Everyone hates ads, but everyone hates paying for stuff even more.
Installing an ad blocker on desktop is easy, but about 90% of the planet still wouldn’t know how to do it.
Blocking ads on mobile is much harder and that’s where most of web traffic is coming from anyway.
Everyone hates ads, but everyone hates paying for content even more, and they don’t have the technical means to do anything about the ads. See where this is going?
Also, the claim that everyone hates ads is itself questionable. Everyone on HN hates ads, but Karen from Wisconsin or Rajit from Bangalore haven’t even so much as thought about it. They go on with their lives as they visit their favorite websites multiple times per hour, without realizing the atrocious UX and flagrant privacy violations they are being subjected to. Because the sites are free, and they provide value to them, and because they have other things to worry about.
> Blocking ads on mobile is much harder and that’s where most of web traffic is coming from anyway.
Most of the developing world (i.e. the market share that is growing) can't afford Apple products. On Android it is absolutely trivial to block adds:
- Firefox + ublock
- Brave
You can argue that these are unknown or have different user experiences compared to Chrome but you cannot argue that "blocking ads on mobile is much harder".
Those aren't key factors. They are petty nonsense.
> * Everyone hates ads.
Yet ads are everywhere.
> since there is too much competition that doesn't rely on ad revenue
What competition? What is the challenge to google search, youtube, chrome, etc?
> and too many companies trying to block ads.
Is that a joke? Google's problem is too many companies want to buy ads. But ads are never going to disappear. Actually, ads are only going to increase on the internet. More video ads especially.
> * Google doesn't have a solid revenue stream besides ads.
If you're argument is ads are going to disappear, then I guess you have a point.
> EVERYONE freakin hates ads
Right. And the article said the same nonsense you are saying. But it said that in 2017 and guess what? Turns out the article was wrong.
You just have 1 point. Nobody likes ads. Duh. But if that mattered, google wouldn't even exist.
Goog has search, Gmail, YT and Play store, GCP. All massive assets. Not all of them require ads. YT has a ad free version for subscription. The escape pods are there. I would pay $2 a month for my gmail. If pushed (I would be annoyed). But it looks like as of today digital ads is still a good business
Only search/ads make money. The rest are negligible profit or no profit.
So the article was right that Goog is all ads, but those don’t seem to be drying up.
I expect that maybe ad views are dropping but they just turn up the prices to compensate. I don’t think we get usage numbers out of them, just that they bring in more revenue and make more profit.
Maybe they are just squeezing a shrinking customer base, like cable. But the article doesn’t cover that.
>Google doesn't have a solid revenue stream besides ads. And it's unclear how they are gonna get one.
I'd pay more for ad-free access to Youtube than for a Netflix subscription. Maybe I'm suffering from the typical-mind fallacy, but because Netflix is a solid concern (current market cap, $214 billion), it looks to me like Youtube would continue to be a solid business if the hypothesized revolt by the common man and woman against ads materializes.
Amusing. It's like a cavemen saying "Yep, we are done. We made fire ourselves, what else could there possibly be?"
I mean we did a whole 200 years of scientific research. Of course, there is little else to discover. Humans are smart after all.
There are only a "few" obvious questions left:
* Can we generate a black-hole? If so how? If not, where is the proof?
* Can we move faster than light? If so how? If not, where is the proof?
* Are wormholes real? If so how? If not, where is the proof?
* Can we travel backwards in time and if so, how do we do it?
* Where did the universe come from?
* What is outside of the universe? I.e. where does it expand into?
* Are there other universes? Where is the evidence? Can we build a machine to go there? How do we build this machine?
* Can we prevent the sun from dying?
* Or let's start with the basics. How can we predict the weather of tomorrow reliably? How can we prevent our earth from becoming uninhabitable?
* Is the silicon really the best we can do for computers?
But sure, we are done with physics. Let's just bathe in our glory and praise ourselves as gods lol.
Humans are experts at forgetting that "Mathematics does not proof anything outside of mathematics". All we have are models. Are we at the end of our models? Perhaps? But all that means is that we need better models and perhaps even different mathematics.
Confirmation bias to the fourth power. A person just told you that an average truck of which you see plenty on the roads, does a couple thousand times the damage of a car and your response is: "Let's get all the cars of the road because a bicycle does no damage at all compared to cars"
A quick search suggests that a semi truck without trailer weighs between 10 and 25 tons[0]. Those are usually 3-axle, so that's between about 125 and 4800 units of damage. That's still a massive amount when compared to the 1 unit of damage for a sedan.
Add an empty trailer and you get 35 tons (5 axles, 2400 units of damage). US max allowed is 80 tons, for a whopping 65,536 units of damage.
I don't know how full they are, but I see 5-axle tractor-trailers on highways all the time in the US, and also locally doing last-mile deliveries to larger businesses like supermarkets and home improvement stores.
I guess the differences in allowed weights might account for why US roads are often in worse shape than many in Europe, though I assume vastly different maintenance schedules play a large part as well.
Nowhere did they suggest that they want to get rid of all cars ever.
The principle that shifting traffic from cars to bikes saves money for the government is a sound one. There'll always be a need for cars for some things -- probably not gonna have ambulance bikes, and of course deliveries for anything big needs a car/truck -- but you can certainly reduce the need. Especially with ebikes making biking more convenient and accessible.
Americans moving to Tokyo largely give up cars and switch to public transport and walking. This isn't because there's a welcome committee of Japanese people shaming them out of driving; it's because driving works less well there, and public transit much better.
The point isn't to individually shame unwilling people out of their cars. The point is to make biking a real, viable transportation mode for short/medium distance trips for most people in urban or suburban areas. It's entirely possible to do this with the right infrastructure.
Once you do that, people will choose biking of their own accord, because it makes sense.
I would argue: There is NO shortcut for experience. But not all experience is created equal. Telling someone HOW to do things right (we are talking soft skills, for hard skills its a bit different), is not helpful. You need to expose them to situations where they have weaknesses, and then coach them how to overcome the problems they face. I.e. there is a fine line between "telling people what to do", which is ineffective short-term and contraproductive long-term; and "exposing people to situations that make them behave wrong", which is the most effective learning tool, that doesn't have drawbacks, outside of the short-term (because you know that this person will not do the job right, but you also know they are not going to do it wrong another time, plus they will learn how to recognize other similar situations and avoid making this mistake there as well).
The best thing universities can do is to instill an understanding of soft skills in people. They should come out of university knowing:
* How important soft skills are
* That they are the differentiator between senior and junior
* How to best learn them (don't hunt highest pay, hunt highest experience gain)
> Privatizing seems to make for too much economic specialization
That alone isn't sufficient. Germany is built on private insurance (on top of something similar to Canada's government insurance) and it works just flawlessly. Usually they pay everything, you don't need to do anything. You skip all lines at the doctor, can directly go to specialists without asking anyone, etc. And on top of that private insurance in Germany is considerably cheaper than government insurance, while providing like 10 times the benefits.
If I had to name one thing I really miss from Germany, it's private health insurance. This was just like being in heaven.
Probably, but that's still about 10 million people with private insurance, which is 1/3 of Canada's population. The point is, private insurance doesn't have to be a nightmare. That is not the only factor. Actually I think private insurance generally had the potential to be much better than public insurance. However there seem to be a number of additional factors that make US private insurance such a nightmare.
> Actually I think private insurance generally had the potential to be much better than public insurance
Why? Maybe private care is better than public care, i don't know, but insurance? Swisslife (one of the best/most efficient in my country) reimburse 65 to 67% of their anual income, so roughly 33% of what you're giving them goes into administration/coordination fees. Public insurance? 20% of the money they receive via taxes are used for administration/coordination.
So if i had a choice, i would pay a premium on public insurance (more taxes, or instead, asking my bosses to give the 120€/mo to the public insurance instead of paying swisslife). Better ROI.
> That alone isn't sufficient. Germany is built on private insurance […]
The difference is profit motivation.
Germany does have private insurance, but there are regulations on what insurances companies can have margins on:
> As of 2020, salaried workers and employees who make less than €62,550 per year or €5,212.50[28] are automatically enrolled into one of currently around 105[29] public non-profit "sickness funds". The fund has a common rate for all members, and is paid for with joint employer-employee contributions. The employer pays half of the contribution, and the employee pays the other half.[30]
> Insurers are required to offer this basic insurance to everyone, regardless of age or medical condition. They are not allowed to make a profit off this basic insurance, but can on supplemental plans.[3]
> And on top of that private insurance in Germany is considerably cheaper than government insurance
Not at all. A significant portion of the government insurance is paid by the employer, so it ends up cheaper for the individuals. Also, children are included in the government insurance.
Any company that wants to survive long-term doesn't do that. So go work for those instead. Companies who treat code this way aren't software companies, and they ain't gonna stick around for the long-run. They just use software for some end, and given their apparent lack of attention to detail, they will go out of business pretty soon. That is the majority, unfortunately.
This is basically a red flag for mismanagement. Even startups can't work this way. You either need to hire engineers who have enough experience to make the right trade-offs under high pressure, or you will likely not survive the long race after initial MVP and funding. However, a lot of startups are not funded for the long run either, but rather to quickly make money for founders and potentially be bought by some large fish, who stamps out competition and replaces the product anyway. So there is that.
> Any company that wants to survive long-term doesn't do that.
I have a list of at least 6 large corporations who do just that. When I worked at Polaris, they re-developed all of their sites on a six month rotating basis so if some new fangled tech came up, it was easy to take advantage of it. They were one of the first companies I knew who were running full-stack JS apps in prod before most people were even considering it.
Even where I work now, its all about speed to market. Get it working, release it, and then all the execs and upper management types pat themselves on the back about how awesome they are because they got a janky ReactJs app for users to use in less than 6 months. Several months later of fixing all the problems, they start talking about just scrapping the whole thing and starting over.
Its maddening to think these people believe what they are doing is somehow groundbreaking in software development. When in reality, they're just releasing a really poor version of their software, spending more months fixing it than the time it took to get it released and then killing it or transitioning to some new shiny framework they want to use instead.
OP was spot on in what my experience has been the last 10 years of my working in large corporations and small agencies.
> Any company that wants to survive long-term doesn't do that. So go work for those instead. Companies who treat code this way aren't software companies, and they ain't gonna stick around for the long-run.
I wish this was true, but in my experience it's not. The company I currently work for has an old crufty codebase, large areas of which are not understood by anyone but the few remaining early hires. This codebase is going on 20 years old and is getting more complex with every release. And yet our revenue grows year after year because our competitors are far, far worse.
Another company I worked for years ago has by far the worst code and development practices I've ever seen. I'm talking about having the actual Visual Studio solution running live on the production server, and development was done by opening it in Visual Studio and hacking on it while it was running. I have never seen such towering incompetence before or since. I left partly because I was convinced the company would implode within a couple of years due to a developer accidentally nuking the production database or because the cost of developing new features would exceed any new revenue they could possibly bring in. Five years later, somehow they're still going strong.
> Companies who treat code this way aren't software companies, and they ain't gonna stick around for the long-run. They just use software for some end, and given their apparent lack of attention to detail, they will go out of business pretty soon
Most large companies in the world (e.g. banks) have appaling code and coding standards. As far as I know, none of them has yet gone bankrupt because of bad code.
I think we probably overestimate how important code is. The business world, esp. large companies, is very far from perfect (more of a big fat mess that somehow still works and produces money without its products killing people etc.) and it doesn't need perfect code, the same way it doesn
t need perfect accounting or perfect product design. In most cases, mediocrity will do, because the competition is just as mediocre.
If you want perfect (or even very good), become a hobbyist instead.
> I think we probably overestimate how important code is.
Or maybe the cost of swamp code is distributed over many people and non-programmers have difficulty understanding how much it slows down programmers. Programming is hard enough as it is because we need to translate human to very abstract, and work with very abstract on a daily basis. I think it's borderline genius to be able to do the translation both ways. That is, to make non-techies really understand the cost of messy code.
Obviously I'm not going to name my past employers or even hint by saying what industry it was. But people are skilled in presenting the next software trend as a cure-all. Agile, micro-services etc can be used as just distractions to avoid doing anything serious about present problems.
Yes and no. A lot such things are fads indeed but as you yourself noted, Rust gives you a lot of runtime stability just by the mere fact that the program has compiled.
There are some cure-almost-alls. Most are fashion. Sadly it's how it is in software and it doesn't seem like it's ever going to change.
Is it? Over the two years they saved, this is about the salary for 100 engineers. Can you replace and maintain all the cloud aspects that AWS provides you with (I mean the ones you actually use) with 100 engineers? Maybe, if they are good engineers (which is kinda implied by the 300k salary tag in the calculation). If it's worth it, remains to be seen. Definitely nothing for any medium sized company.
Dropbox is huge and has a relatively simple, highly optimized use-case, for which cloud perhaps doesn't offer too much. This is NOT the norm. For most companies, no matter the size, building their own cloud is a no go.
> those features are killed off and vanish from the face of the earth?
Don't use Google Cloud then ;).
> but if we consider the absurd premium charged by cloud providers for their services...
Do you have any data on backing this up? This "absurd premium" includes the salaries of engineers to develop it, maintain it, do DevOps, keep the hardware/data centers, do marketing, etc. etc. There is of course a margin, these companies aren't doing it as a social service... That margin is highly variable from service to service and also between cloud providers. Some may not have a margin at all, others may run at a loss. There is not easy "uh everything is overpriced". Most companies will have a VERY hard time providing the offering at the price of large cloud providers. And the simple "back of the envelope" calculations often miss all the work & cost that needs to be done, but you don't know about...
> Well, those "others" doing the work can be employed by your company and you still save money.
Yeah, if your company is really big, then yes. If your revenue is below 100 million, there isn't even room for any discussion on this: Don't run your own cloud, it's not gonna work. Most of the "cons" I see are about misunderstandings of the offerings and failure to navigate the pricing models and picking the cheapest offerings that do the job. If you fail to do even that, how on earth are you going to run your own cloud?
I work at a medium sized company. Depends on who you count, but let's say around ~30 devs.
Recently we basically did just this, and it's been a great success. We haven't fully migrated and still use AWS for prod, but have seen substantial savings already.
We spent $2k on servers, Dell r720s. We bought a UPS and mount, and racked them in our office. I installed OpenShift 4 on it, which is Red Hat's Kubernetes offering with a nice web GUI, and setup a few terabytes of NFS to automatically provision storage.
To be fair, installing OpenShift for the first time took a while, around 3 weeks. Since then it's been smooth. We still use AWS, but our usage has gone down dramatically. We are still only migrating dev and test environments, leaving prod in AWS (we don't want to be responsible for uptime SLAs, and clients pay prod hosting costs). Some of these projects are CPU heavy, machine learning and computer vision projects too. They're not just simple web-apps. I'm not privy to our entire AWS budget, but I know that one project which we migrated saved over $500/mo.
After installation, maintenance has taken barely any time. Around 10-20% of my time is dedicated to OpenShift cluster maintenance. The rest I do normal project work. I often go weeks without having to touch anything, and the most common task I do is onboard new users. We've had 2 outages in over 6mo, one was an expiring cert and one was an airflow issue on the rack. I've learnt a lot and am certainly not an expert. These were the firs rack servers I'd ever worked with personally, although I had been researching used models for home use for a while (shoutout to /r/Homelab).
In fact, I had such success doing this that I personally bought a Dell r720 and have used it to selfhost a bunch of stuff at home. A co-worker of mine hosts his self hosted lab on AWS. Things like Plex, private photo storage, a few other toys, etc. He says he pays $300/mo, which seems insane to me, but I guess people streaming 4K plex adds up. The used r720 server I bought was $1,500CAD and has way more horsepower than he's paying for. (There are also electricity costs I haven't factored in here, as I'm trying to control for other changes in my power bill. Might be $100/mo at most.)
You're not doing anything even remotely close to the features offered by cloud providers or even managed hosting providers.
Disaster recovery? Geographically separate redundant servers with failovers? Automated (and proven to work) backups? One-stop access control for infra maintenance? Audit controls for your database and storage objects? Tape backups?
Even today to support all those things you need a small army of specialists. Granted, a heck of a lot of things can get away with not having any of this. But the use cases are out there and hosting and maintaining all of that in-prem is another different level.
I understand your use case, but your is very, very far from the sheer and absolute complexity and features that enterprise data centers have.
> You're not doing anything even remotely close to the features offered by cloud providers or even managed hosting providers.
So what?
Who in their right mind believes in, say, you need to operate and maintain half a dozen types of RDBMS in three flavors along with two or four or eight different message brokers and your own convoluted infrastructure-as-code multiplied by three along with a repackaged FLOSS offering... And a ground station?
Let's not be mad, here. There are proper, full-blown, popular, global-scale cloud service providers. That. Only. Offer. VMs.
Are we so drunk with corporate kool-aid to believe that we are missing out because we are missing... What do you believe you're missing, actually?
I repeat: there are popular professional cloud service providers whose business consists of providing either VMs or access to bare metal. That's where real-world companies run their real-world businesses. Why are we supposed to believe that you need more to operate your own stuff?
You are assuming that that vast majority of shops have the capacity to impose a very limited number of technologies, and secure them through common best practices.
This is about as far from the truth as I have experienced in life.
Fortune 500 companies have an innumerable number of platforms for software, use hundreds of products from dozens of vendors, many dead long ago. Same thing with governments, at every level of scale. Telecoms? Utility providers? Medium-sized businesses who are not in tech? Specialist software that runs in a basement rack and that eventually gets moved to a datacenter and compliance requirements begin demanding all the bells and whistles I just mentioned.
Without a doubt there's a lot of gross compute power that lives on the VMs you just mentioned. But all their financial processing is probably about a fraction of what some AS/400 or mainframe doing a nightly batch job, with software running from decades ago and licensing costs going into 7 figures a year.
What you're asking for just doesn't exist. You can do what you're mentioning across, maybe, a single product line and a half-dozen teams. But even that company needs to use CRMs, ERPs, and custom stuff for which you cannot possibly define platform requirements on your own, limited, terms.
A customer that I used to admin their Unix servers on had software on IBM mainframes, IBM AS/400s, Solaris, AIX, two SCO Unix machines running some proprietary hardware control plane, a few thousand Windows machines, etc. You want a "real" ERP product? It's gonna run on Oracle or DB2, forget about Postgres. That app you made 15 years ago running on MySQL with the ISAM storage engine? Forget about ever upgrading that. Need to interact with banks? Holy smokes have I got bad news for you. You need software to interact with medical records that requires special legal compliance across multiple jurisdictions? Well, no one cares what that runs on as long as it keeps the millions rolling in.
>Disaster recovery? Geographically separate redundant servers with failovers? Automated (and proven to work) backups? One-stop access control for infra maintenance? Audit controls for your database and storage objects? Tape backups?
These are our dev+test setups, and we're looking far more carefully at prod for the reasons you touch on. Those aren't necessary for every project too, eg hosting computer vision demos.
For our government projects, the government hosts it on their own OpenShift cluster that they maintain (including their own data centre), due to requirements for all data to be hosted within our boarders. The OpenShift cluster I setup is no-where near as well maintained as the governments, they have multiple FTE and it runs most of the open source gov't code. They have tape backups, rolling on-call staff, public developer chat for support, the whole deal.
What I setup is far more simple. We have daily/weekly/monthly rolling backups of postgres pods. We store some backups of those on digital ocean, but that's just a cheapo litttle linux server.
But now a team of 30 developers can easily spin up their own projects using a web-based GUI from basically just providing a Dockerfile or a link to a git repo. One of the oft-touted organizational benefits of "cloud" is that you don't have to wait a week for Ops to provision a VM. We get all that.
>I understand your use case, but your is very, very far from the sheer and absolute complexity and features that enterprise data centers have.
My point is that many things people host in AWS do not need enterprise quality. If you're a startup, then almost by definition you do not need enterprise quality (though, as always, it depends). We made a tonne of savings. I'm sure many others would by self-hosting and learning a moderate amount of Linux / Kubernetes.
Apple has always been good at running ML on device, as opposed to Google's approach of sending everything to the cloud, then mining all your data, selling it, tracking it, etc. One example is iPhotos, which implements feature detection on-device, while Google implements it in the cloud.
Does it? What if the US had Iran's military and Iran had US' military?
The wars conducted by US are questionable at best and a poor example of how developed nations should behave. However, looking at the worst sides of a developed nation and comparing them to the best sides of a dictator state, isn't quite adding up.
It really can't. Quite the opposite. Writing C-like Java is already doomed from the start. Java is faster than C when it comes to OOP. Unless you product is a highly complex OOP nightmare, C will always beat Java to the curb.
GC is not free. The problem with GC is that you pay asynchronously, while allocations are essentially free. But this asynchronous cost is very very hard to measure and to control. Java does not offer the mechanism C/C++ offer for native resource management. It also doesn't do complex optimizations, most notably vectorization. Number crunching performance will always suck in Java. Even if they add all the optimizations in the world, the simple fact remains: Java as a language simply does not allow you to express code in a performant way. That leave the compiler at a double disadvantage. It needs to essentially "convert Java to C++ and guess the most performant interpretation" (we are decades away from this), and it needs to do that within milliseconds (because its a JIT).
It just makes no sense to talk about this. Use Java for the 99% of your product that is not a hotpath, use C for the remaining 1% where you need pure performance. Simple as that.