Live data from Hacker News

Android, evolvability and Comcast

abe-winter.github.io

31–40 of 71 posts

Re: Android, evolvability and Comcast

#31
post #6

Amen! I find Android programming excessively verbose and convoluted. I thought Google was supposed to be staffed by geniuses. The whole thing feels designed by a committee - like something Microsoft would put out. Why didn't they use Python? (Yes I've tried Kivy - meh)

Probably historical reasons; when Android was created, was Python good enough? Particularly on underpowered processors with tight power requirements?

Re: Android, evolvability and Comcast

#33
post #5
post #4

The solution is called React Native. - Single file app: Check - Super fast rebuild: Check - Dynamic language (high reusability and one-liners): Check (Use ClojureScript to take this even further)

But there is a single problem with React Native: Javascript (and all languages that come from it). It's frequently one of the most hated ones as it is loved. Dynamic language is not necessary the best thing invented, if it were there wouldn't be any other kind of languages.

Doesn't it follow that static language is not necessarily the best thing invented, if it were there wouldn't be any other kind of languages?

Re: Android, evolvability and Comcast

#34
post #5
post #4

The solution is called React Native. - Single file app: Check - Super fast rebuild: Check - Dynamic language (high reusability and one-liners): Check (Use ClojureScript to take this even further)

But there is a single problem with React Native: Javascript (and all languages that come from it). It's frequently one of the most hated ones as it is loved. Dynamic language is not necessary the best thing invented, if it were there wouldn't be any other kind of languages.

Lots of great experiences with Typescript being reported and I am loving Flowtype lately so the era of only dynamic JS is fading out.

A lot of the JS hate goes out the window with ES6 and type systems.

Re: Android, evolvability and Comcast

#35
post #21

Man, I knew this was a troll when I clicked the link. I'll briefly vent my spleen and get on with a substantive comment. I get real tired of web soft boys coming into native and complaining about how complicated it is on the metal. This stuff is hard cause you're not just churning html. It's harder work than writing a web page. Sorry. Specifically, mobile is resource constrained in a way that server-side work just is…

Then don't switch to JS, switch to C++ as the primary dev language. The performance-sensitive parts of the OS are already in C++ and the NDK exists, so this isn't that big a jump in terms of support from the android maintenance team. C++ is not slower than java on constrained hardware, also is more respectful of memory. Is it harder to use? I don't think so but I may be in the minority here.

C/Java interop is pretty painful still, and the tooling for native debugging in android studio is notoriously unreliable. (I hear it's better now, but I haven't had to get into those libs recently, so I can't say definitively. Last go round I had to roll Eclipse to debug ndk libs. Yeah. Eclipse.)

Re: Android, evolvability and Comcast

#36
post #9

I'm not saying Android development or Java are that great but this guy spent two weeks on it. That's not enough time to get a feel for the environment. It doesn't matter what the language is, if you drop a developer into a completely unfamiliar one they will feel awkward annoyed and lost for at least a couple months.

It does matter what the language / ecosystem is; learning curves are not equal across all of them. Having learnt Go a while back, I was surprised at how short a period it took to feel at least reasonably comfortable & productive with it. I've seen the same with colleagues as well.

That might not be so easily possible for a GUI mobile app though; maybe there's more necessary complexity there. But aiming for simplicity is a good goal to have regardless.

Re: Android, evolvability and Comcast

#37

The Java problems the author complained about can be addressed by switching to Kotlin. I hope Google gives Kotlin 1st class support in android studio and even pushes it as the default language as it is more pleasant to use in my experience. Not sure single file creation of an Android app (with a user inferface) is possible/advisable though since the separation of view concerns and logic concerns can come in handy. Gr…

Kotlin is pretty cool generally, but I'm not so sure it would help the problems of Android development that much, since most of your time will be spent dealing with the plain-Java Android classes and how Android expects you to do things. You'd have to rearchitect the whole Android system in it to really make a difference, and if you're doing that already, it probably doesn't matter that much what language you're doing it in.

Re: Android, evolvability and Comcast

#38
post #5

Earlier quoted context omitted.

But there is a single problem with React Native: Javascript (and all languages that come from it). It's frequently one of the most hated ones as it is loved. Dynamic language is not necessary the best thing invented, if it were there wouldn't be any other kind of languages.

Doesn't it follow that static language is not necessarily the best thing invented, if it were there wouldn't be any other kind of languages?

Yes, but parent response suggested that dynamic langs are the answer to android development problems.

Adding more to the discussion: Android env is like a framework (as opposed to library), it is always harder to work in frameworks than using libraries - e.g. lots of stuff you will have trouble mocking out in unit tests.

Re: Android, evolvability and Comcast

#39
post #4

The solution is called React Native. - Single file app: Check - Super fast rebuild: Check - Dynamic language (high reusability and one-liners): Check (Use ClojureScript to take this even further)

There is something seriously wrong with our industry. How can this even be suggested as a solution?

Portability? With a little setup you can write your logic in one language with a reasonably low amount of extra work to handle different platforms. Staffing up two separate teams working in Objective-C and Java isn't ideal either.

Re: Android, evolvability and Comcast

#40
post #21

Man, I knew this was a troll when I clicked the link. I'll briefly vent my spleen and get on with a substantive comment. I get real tired of web soft boys coming into native and complaining about how complicated it is on the metal. This stuff is hard cause you're not just churning html. It's harder work than writing a web page. Sorry. Specifically, mobile is resource constrained in a way that server-side work just is…

> I get real tired of web soft boys coming into native and complaining about how complicated it is on the metal. I've done a lot of native development, real native development, not this fluffy Java stuff and Android is still overly complicated in both design and tooling. My needs as a developer on Android are far from cool and that shouldn't be unnecessarily hard -- but it is.

You talking about the pseudo-restful activity/intent design? Cause I'm not gonna defend that, haha. It's a neat idea that simplifies corner cases at the expense of making a lot of common cases very counterintuitive. If the article was bitching about that, I'd take it a lot more seriously.

I dunno, I have a soft spot for Java. Yes, the verbosity can be annoying, but compare that to the scavenger hunt that modern web languages put you on when you're trying to figure out exactly who is doing exactly what.

Post reply on HN