Hacker News new | past | comments | ask | show | jobs | submit login

Every time I am fighting with the Android SDK, and specially with the NDK since they deprecated Eclipse CDT or a new Support Library or Android Studio version comes out, I wonder how many of "the smartest engineers on the planet" do actually work on Android.

I know some of those Android engineers, and I've also done (and loathed) Android development, and I do think they are some of "the smartest engineers on the planet". The only problem is that they're optimizing for their success, not yours (which, if they're smart, is exactly what they would be doing).

At Google, you get promoted for launching something that is technically difficult. So most engineers will seek to implement the most technically difficult feature they have a chance of launching, and then do everything they can to ensure that it actually launches. Nobody gets promoted for not launching things and ensuring API stability. Nobody gets promoted for fixing bugs their managers doesn't know about. Few people get promoted for writing documentation (and if you do, you're probably a techwriter who doesn't call the shots on API design). Nobody gets promoted for doing mundane stuff that might improve the user experience, but isn't technically difficult.

It's the standard big-company modus operandi: hire the best, and incentivize them in ways where it's easy to define the incentives but those incentives don't necessarily add value to the customer. Usually by the time you get to that size, it doesn't matter anyway, since you're working on problems that no startup has the resources to tackle.

It's hilarious, I tried and failed to build an Android project that I'm pretty sure still built just fine 6 months ago. So much useless churn.

Then they announced the new CMake support and it's basically a CMake toolchain file they copied from an older OpenCV initiative and didn't notice it no longer worked with the new NDK, or anything other than GCC, which they have deprecated. It's insanity.

Yeah and apparently ndk-build support on the stable plugin is only meant for backwards compatibility purposes, but you don't see it described as such anywhere, only a few hints on commit messages.

I had to dig out how it all works with the new cmake plugin from their samples, because the new stable plugin still doesn't manage ndk-build properly.

Also there are quite a few features, like OpenMP, that the clang NDK doesn't support, yet GCC is already deprecated.

I think it's a question of culture. For as may things as people fault Microsoft for they sure do know how to build good tooling.

But yeah the NDK is a mess and the whole environment around it is incredibly painful. Android Studio improved things but they still have a long way to go.

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