7 ms·
At this point, I feel no language can compensate for the platform's out-of-date java libraries. I think Google has its priorities wrong: first should be recent
by clumsysmurf 7y ago
At this point, I feel no language can compensate for the platform's out-of-date java libraries. I think Google has its priorities wrong: first should be recent java, second should be kotlin.
- navidr 7y agoThat was always the problem with google. Look at chrome os fiasco. They had it for 6,7 years? They didn’t realized it until Microsoft did put effort to make their OS developer friendly that they should make chromeos developer friendly. Imagine how good chromeos was today if they have started to make it developer friendly in 2010 instead of 2017.
- sidlls 7y agoI disagree: they should just dump the whole ecosystem. Kotlin is a shabby bandaid, not because the language isn’t good (no comments there) but because the substrate is a mess of bloated, terrible, OO Java nonsense. Android development is just awful no matter the language.
- braindongle 7y agoIn this context of disparaging the state of Android development, I must plead: take a hard look at Flutter/Dart. There are quite a few wins with it, including a pleasant developer experience. Declarative, composable, JIT compilation in dev, AOT compilation in production. The list goes on.
- craftinator 7y ago+1 for Flutter. Fast iteration, few gotchyas, decent documentation, a growing community, very fine control, but forgiving to those learning the framework.
- nl 7y agoI wish they'd dump Dart and replace it with basically anything else (Typescript? Swift? Kotlin?). I'm not going to learn a new language which isn't used anywhere else AND a new UI toolkit just because Google's internal team structure has put them in a position to keep Dart going. Back when Dart came out, it made sense. But Typescript came along, filled basically the same niche and got significant mindshare.
- thosakwe 7y agoThis horse has been beaten to death. They wrote an article about their choice of language, anyways: https://hackernoon.com/why-flutter-uses-dart-dd635a054ebf https://hackernoon.com/why-flutter-uses-dart-dd635a054ebf
- pjmlp 7y agoAnd now, Swift, C# and naturally Kotlin are coming up with similar tooling, which kind invalidates the reasoning why it had to be Dart, above all languages. Not to mention that Flutter experience isn't nothing more than cute to anyone that has experience doing UI design on Common Lisp or Smalltalk environments, which I reckon all of us are quite old for SV standards. EDIT: Or if you really want to be amazed go play with SELF.
- brabel 7y ago> And now, Swift, C# and naturally Kotlin are coming up with similar tooling... That may be true, but right now, none of them has something as polished and usable as Flutter. And it looks like it will be many years before they do, all the while Flutter keeps getting better. So, if you have time to wait for these other platforms to catch up, go ahead while people who need to write code right now can enjoy something else. > EDIT: Or if you really want to be amazed go play with SELF. Oh come'on, are you really suggesting something that looks straight out of the early 90's is something that would amaze anyone today? Or there's something that actually looks and behaves modern out of the Self and Smalltalk world (certainly was not the case last time I checked, a few years back)?
- pjmlp 7y agoYes they have, language ecosystems with decades of battle field deployments in production, while Dart still tries to make itself relevant. What I am suggesting is that the reasoning why Dart instead of something else is flawed and can only be naively bought by those that lack experience in UI domain. How pretty those UIs used to look like is secondary. Flutter is being positioned to rescue Dart, and make it meaningful beyond the AdWord team, the place where it landed when all Dart designers eventually left Google. Where is the "Google's Commitment to Dart" blog post?
- batterystd 7y agoI'm seriously not astrotrufing (for once!) but isn't Android itself shitty all round? Really complex OS that does a million things and all wrong. I have a phone where no fb is installed but fb services that cannot be stopped are running in the background. I'm waiting for a Linux phone
- sliken 7y agoEr, if you want pure android why don't you buy a pixel?
- pjmlp 7y agoI guess because they are only available in a couple of countries, are expensive, and Google isn't any better than their OEMs keeping old devices updated.
- sliken 7y agoHadn't noticed the expensive side. They typically got half off within a month or two of announce. Got my Pixel 4XL 128GB for under $500 because of the Google Fi deal. I still have a pixel 1 from 4 years ago that I think just stopped getting major upgrades. Not great, but not bad. My samsung note 4 was around a year behind on updates, and felt very slow because of all the crapware. I switched to a nexus 5, with a much lower spec and it felt MUCH better. Even simple things like hitting the home button had much less lag. I did end up installing Cyanogen on the Note 4 which made it feel quite a bit snappier.
- anonuser123456 7y agoWell, if your OEM installed crapware in the system/vender/OEM partition, that's not really Android's problem. All other apps/services are very removable.
- cle 7y agoIt is the customer’s problem, so it is jointly a problem for Android and the OEM. Google may try to abrogate responsibility here as usual, but it doesn’t make it any less their problem.
- giancarlostoro 7y agoWhats sadder is they could invest resources into Kotlin Native and then build a Kotlin Native SDK (maybe built on top of NDK).
- pjmlp 7y agoTo paraphrase them, "it looks interesting and it is something that we are following on", which means nothing to me. In any case Kotlin/Native doesn't bring nothing to Android itself. ART makes use of AOT/JIT with code cache, which is much better than straight AOT on languages with reflection, dynamic dispatch and dynamic loading everywhere. This is why they gave up on pure AOT introduced during Android 5 and 6 lifetime. Then the NDK is tailored for writing native libraries for consumption from ART, only exposing C bindings, even though most of the code is actually C++. So hardly a win having Kotlin/Native there.
- RivieraKid 7y agoSome of the newer stuff seems mostly well-designed, e.g. Room, LiveData. Lot of the older stuff is horrible. Kotlin is just slightly better than Java in my experience. Overall I wouldn't say Android development is aweful, I think it's iOS is just marginally better. Swift is a nicer language than Kotlin but creating UI layouts sucks on iOS.
- sidlls 7y agoThe documented examples showing how LiveData “should” be used comprise a masterclass on overengineering.
- saagarjha 7y agoEven with SwiftUI?
- todd3834 7y agoI’ve been working on a MacOS app with Swift UI and I can say it has never felt easier. I love it.
- izacus 7y agoHow well does it scale in complexity though? These easy declarative UIs tend to have a hard ceiling in complexity and then you're forced to rewrite everything. How does SwitftUI scale to complex and animation heavy UIs?
- cerberusss 7y agoAnimation is very well thought out, and quite easy. As for complexity, you hit the ceiling very fast, and the solution is to break up in smaller and smaller custom views and modifiers.
- todd3834 7y agoI haven’t gone too far down the rabbit hole yet but I find it similar to React in complexity ceiling. I’ve built some extremely complicated UIs in React. You just have to break up your views as complexity grows.
- izacus 7y ago> I disagree: they should just dump the whole ecosystem. Kotlin is a shabby bandaid, not because the language isn’t good (no comments there) but because the substrate is a mess of bloated, terrible, OO Java nonsense. Android development is just awful no matter the language. They should dump the most widespread mobile operating system ecosystem... because some people think API's are "OO nonsense"? Would you also want Microsoft to abandon whole Windows ecosystem just because WinAPI dates back to Win16? This is insanity and completely ignores the reasons why ecosystems get popular.
- pjmlp 7y agoOn Android's case, free beer for OEMs above all.
- sidlls 7y agoThe Android ecosystem got popular primarily for two reasons: the massive marketing effort by google and the plentiful dirt-cheap labor market in the kind of development paradigm Android is (awful, bloated Java where desperate $5/hr devs are plentiful).
- jrempel 7y agoKotlin has its own stdlib which runs on multiple platforms other than JVM. I've used Java, Python, Ruby, Go and Kotlin. Kotlin is def my favorite and goto. Do you have any specific examples/complaints?
- RivieraKid 7y agoInteresting, I find Kotlin just marginally better than Java. It doesn't have checked exceptions which is annoying. You can't use a simple return in lambda functions. As for other languages: Python is ok for smaller stuff. I don't like Go. My favourite languages are probably Swift and Julia. And recently, I've grown to really like C++ although I used to hate it.
- phreack 7y agoWhat do you mean by simple return? If you need granularity you can `return@scope`
- vips7L 7y ago> Kotlin has its own stdlib Barely. You can't even read a file without java.io.
- erikdared 7y agoThey just announced a bunch of additions to the stdlib (including I/O) at KotlinConf in order to better support multiplatform
- HenriNext 7y agoAgreed. I don't have any secret insider facts, but perhaps Oracle rubbed Google in a way that was not entirely pleasurable with the 10-years-and-still-going-on Java lawsuit..
- pjmlp 7y agoThen adopting a JVM language is probably not the cleverest idea.
- rohan1024 7y agoThey also have Flutter and it uses Dart and is not dependent on old java libraries.
- jrempel 7y agoFlutter has similar tradeoffs as other cross platform tech such as React Native. Its great for simple apps that don't need platform specific UI or services.
- zelly 7y ago<speculation> Android is going the way of Google Reader. Kotlin is just to keep developers happy in the meantime before explicit deprecation. Fuchsia + Flutter is the new platform. Android Runtime will be emulated to allow backward compatible Android apps at a performance penalty, but Fuchsia will only have first class support for native compiled languages like Dart, Go, C++, Swift, similar to iOS. </speculation>
- izacus 7y agoYou're assuming Flutter has buy-in from the Androidd team. Nothing shows that's true though.
- pjmlp 7y agoI think it is more management having fun and watching which dog fights better, what Android team thinks is less relevant. Jetpack Composer is obviously they fighting back to the continuous flow of Flutter questions at Android conferences.
- pjmlp 7y agoWorse of all it that they don't acknowlege how bad it is for Kotlin as well. What good is Kotlin's FFI to Java, if everything that you have at your disposal are out-of-date java libraries? Even the new desugaring being done in R8 and D8 can only go as far as what ART is capable of, sometimes with worse performance, because the Java libraries rely on new JVM bytecodes and intrisic APIs. So the only long term solution, assuming they keep ignoring modern Java, is to rewrite the world in Kotlin. Arriving there, means that they could just rename ART into KVM and be done with it.
- izacus 7y ago> At this point, I feel no language can compensate for the platform's out-of-date java libraries. I think Google has its priorities wrong: first should be recent java, second should be kotlin. Kotlin works on all Android versions. Java updates don't. That doesn't mean Google shouldn't update the JVM on Android, it does however mean that any update to Kotlin immediately translates to wins across whole ecosystem, including people supporting Androids back to versions like 4.x, while Java updates don't. It's a significantly better tradeoff - similarly like using TypeScript and polyfills gives you more powerful language on the web without restricting you only to newest browsers.