đď¸ clears throat
Is this thing on?
After over five years at Bleacher Report working on sports media technology, itâs time for another adventure. But first, please indulge me in looking back. Iâve worked with so many incredible people at B/R. Theyâve helped me grow as an engineer, as a leader, and as a person.
continue reading
Recently someone asked me: âwhatâs a hill in software that youâre willing to die on?â
After thinking for a minute, my answer was that âwrite once, run anywhereâ solutions are almost never worth the compromises. When I first started writing iPhone OS apps (in summer of 2008), I was working with someone who was advocating for a javascript and HTML solution to writing mobile apps, that would allow us to get ânear nativeâ appearance and performance without the overhead of learning Objective-C, and the potential payoff of deploying the app to other mobile platforms if it was desired down the line.
Letâs break that down.
Pros:
- Developers donât need to learn a new programming language
- Developers can potentially port the application to another platform with little work
Cons:
- Consumers receive an application that doesnât quite work like theyâre expecting based on environment norms
- Consumers receive an application that doesnât meet the performance of a native alternative, leading to potential battery and resource drain
In this hypothetical scenario, the consumer is the one making all of the compromises, while the developers reap all the [marginal] rewards. In our case, we experimented with the cross-platform solution, but as we looked objectively at the app from a consumer perspective, we decided the trade-offs in application performance and UI/UX consistency werenât worth the potential benefits to our workflows.
Now Iâll be the first to admit that cross-platform solutions have come a long way since 2008, with React Native, SwiftUI, Flutter, Electron, Xamarin, and others all competing in the space and delivering closer to native performance. Often, the pros and cons are much longer lists than the ones I presented above, but Iâd contend that the benefits are still largely inherited by the company/team/developers, and the compromises are generally passed on to the consumer.
I fundamentally believe thatâs a bad tradeoff.
Me: âWhy? Who wrote this?â
/me toggles git blame in Xcode, hoping it wasnât me đ¤đź
âŚ
/me closes git blame in shame đ
(In my defense, I wrote it three years ago⌠so while I donât like it now, itâs still doing the trick đ¤ˇââď¸)