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

Based on how universally horrible their video playback performance is (even in the iOS app), I can only assume incompetence.


This is a satisfying narrative but I feel like you are overestimating the technical competency and/or malice of these companies. The more likely explanation is that they have simply bitten off more complexity than they can chew.

Of the tech companies I've worked for, I can't even imagine how the web team would react if they were instructed to intentionally nerf their website.


Yes, I would also remove the automatic progression entirely. This should be driven by user input only.


I think it's part of the test to have to do it quickly.


Sorry, I meant I want to be able to do it faster. I don't want to be held up by an automatic progression.


This sort of pedantic need for correctness at the cost of clarity seems to also crop up as businesses become increasingly corporate and expand their offerings.

“The best tires” becomes “the best vehicular solutions”


Starting with an Atari 2600 is charming :)


> Orbital Mechanics Sim

Here's a little toy I made. Try to keep the comet on-screen by clicking to spawn a planet: https://ssl.pepas.com/gravity/gravity.html

Written in C / SDL 1.2: https://ssl.pepas.com/gravity/


A one-sentence description would be a great addition to these projects. "SOV|APP|VIDEO|SOURCE" doesn't really invite a click.


Took a minute to track that down (Oran is spelled Oram?) https://www.oreilly.com/library/view/beautiful-code/97805965...


Is it possible for an mp3 or mp4 to contain malware?



You can disguise something to look like an mp3/mp4 and it includes 2 parts. The media file and code that executes in the background.


But you would need something that interprets the MP4 or MP3 as an executable, or an exploit in whatever decoder software is being used that allows you to hijack execution and run your own code instead of decoding and playing the media?

Or you are talking about an executable that simply plays a media file but is still actually an executable...which is an unsophisticated "attack" that I'm pretty sure was last used 20 years ago for being so obvious?


If it were such an easy problem to fix, don’t you think they would have done so rather than rewriting in Swift?


Having been in development for a long time, no.

Frankly, it just takes some motivated senior devs and the tantalizing ability to put out the OP blog post and you've got something management will sign off on. Bonus points you get to talk about how amazing it was to use Apple tech to get the job done.

I don't think they seriously approached this because the article only mentioned tuning G1GC. The fact is, they should have been talking about ZGC, AppCDS, and probably Graal if pause times and startup times were really that big a problem for them. Heck, even CRaC should have been mentioned.

It is not hard to get a JVM to startup in sub second time. Here's one framework where that's literally the glossy print on the front page. [1]

[1] https://quarkus.io/


Yep, resume-driven development. I remember at a previous company a small group of people pushed a Go rewrite to speed everything up. The serious speed improvements came from re-architecting (elimination of a heavy custom framework, using a message queue instead of handling requests synchronously etc). They would have been better off fixing the original system so that everything could benefit from the improvements, not just the tiny bits that they carved off.

Then the next annual report talked about improved scalability because of this amazing technology from Google.


Resume driven development would be using some random ass Java framework to pad on resume. Apple using Apple technologies seems rather like corporate mandate.


If Apple does not dogfood their own technology for production systems what chance do they have to tell 3rd party users that Swift is ready for prime time.

Delving into Java arcana instead of getting first hand experience in developing in Swift would've been great opportunity wasted to improve Swift.


I agree if this was a brand new system.

However, they chose to replace an existing system with swift. The "arcana" I mentioned is start up options easily found and safe to apply. It's about as magical as "-O2" is to C++.

Sure, this may have been the right choice if the reason was to exercise swift. However, that shouldn't pretend like there was nothing to do to make Java better. The steps I described are like 1 or 2 days worth of dev work. How much time do you think a rewrite took?


Apple has explicitly stating that they want to try and move as much of their stuff to Swift as possible.

I’m sure you’re right, there must’ve been ways to improve the job of deployment. But if they wanted to reduce resource usage and doing it in Swift aligned with some other company goal it would make sense they might just go straight to this.


Once Amazon CEO was asked about new competitors trying to create cloud infrastructure fast. His reply was "You cannot compress experience"

Saving few weeks or months by learning 3rd party technology instead of applying and improving first party technology would be amateurish.

> However, that shouldn't pretend like there was nothing to do to make Java better.

This seems like constant refrain that Apple or anyone choosing their own tech over someone else's owe absolute fair shot to stuff they didn't choose. This is simply not the way world works.

Yes, there are endless stories companies spending enormous resources to optimize Java stack even up to working with Core Java team at Oracle to improve on JVM innards. But those companies are just (although heavy) user of core technology rather than developer of competing one. Apple is not one of those users, they are developers.


> Yes, there are endless stories companies spending enormous resources to optimize Java stack

And not what I'm advocating for. Sometimes rewrites are necessary.

What I'm advocating is exercising a few well documented and fairly well known jvm flags that aren't particularly fiddly.

The jvm does have endless knobs, most of which you shouldn't touch and instead should let the heuristics do their work. These flags I'm mentioning are not that.

Swapping g1gc for zgc, for example, would have resolved one of their major complaints about GC impact under load. If the live set isn't near the max heap size then pause times are sub millisecond.

> This seems like constant refrain that Apple or anyone choosing their own tech over someone else's owe absolute fair shot to stuff they didn't choose. This is simply not the way world works.

The reason for this refrain is because Java is a very well known tech, easy to hire for (which Amazon that you cite heavily uses). And Apple had already adopted Java and wrote a product with it (I suspect they have several).

I would not be saying any of this if the article was a generic benchmark and comparison of Java with swift. I would not fault Apple for saying "we are rewriting in swift to minimize the number of languages used internally and improve the swift ecosystem".

I'm taking umbridge to them trying to sell this as an absolute necessity because of performance constraints while making questionable statements on the cause.

And, heck, the need to tweak some flags would be a valid thing to call out in the article "we got the performance we wanted with the default compiler options of Swift. To achieve the same thing with Java requires multiple changes from the default settings". I personally don't find it compelling, but it's honest and would sway someone that wants something that "just works" without fiddling.


I remember the days when Apple developed their own JVM, ported WebObjects from Objective-C to Java, and even had it as the main application language for a little while, uncertain if the Object Pascal/C++ educated developers on their ecosystem would ever bother to learn Objective-C when transitioning to OS X.


Nothing at IBM is ever straightforward.

Decades ago, I was working with three IBM employees on a client project. During a discussion about a backup solution, one of them suggested that we migrate all customer data into DB2 on a daily basis and then back up the DB2 database.

I asked why we couldn't just back up the client's existing database directly, skipping the migration step. The response? "Because we commercially want to sell DB2."


You tune for what you have/can get. Machines with less memory tend to have slower CPUs. That may make it impossible to tune for (close to) 100% CPU and memory usage.

And yes, Apple is huge and rich, so they can get fast machines with less memory, but they likely have other tasks with different requirements they want to run on the same hardware.


No one gets promoted fixing bugs. Rewriting an entire system is a great way to achieve that.


But then you don’t get promo and “fun” work!


Consider applying for YC's Winter 2026 batch! Applications are open till Nov 10

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

Search: