13 ms·
Can someone from the Google team comment on what's going on - https://techcrunch.com/2019/05/07/kotlin-is-now-googles-preferred-language-for-android-app-develop
by sandGorgon 8y ago
Can someone from the Google team comment on what's going on - https://techcrunch.com/2019/05/07/kotlin-is-now-googles-preferred-language-for-android-app-development/ https://techcrunch.com/2019/05/07/kotlin-is-now-googles-pref...
>Android development will become increasingly Kotlin-first,” Google writes in today’s announcement
https://techcrunch.com/2019/05/07/google-launches-jetpack-compose-an-open-source-kotlin-based-ui-development-toolkit/ https://techcrunch.com/2019/05/07/google-launches-jetpack-co...
>Google today announced the first preview of Jetpack Compose, a new open-source UI toolkit for Kotlin developers who want to use a reactive programming model similar to React Native and Vue.js.
This is massively confusing. Do we invest in Kotlin ...or do we invest in Dart ? Remember I'm talking about developing nations like India - where startups like ours invest in training college graduates . These guys can't afford 10$ courses on udacity and Coursera.
But even if it was not India, having this parallel signalling for Android based startups is very confusing. Atleast Apple was very clear about Swift .
Where will Android be in 2 years : Dart or Kotlin ?
- seabrookmx 8y agoThere's been activity porting the Android Java components to Fuschia. I have no inside information (not a Googler) but that leads me to believe that if Fuschia becomes the next mobile OS from Google it will support both. So same goes for Android I would assume. Why does an OS need to have a single stack? You can write desktop apps in a zillion different languages and Frameworks after all.
- chupasaurus 8y agos/Fuschia/Fuchsia/ And also it hints that you don't know what are you writing about. > You can write desktop apps in a zillion different languages and Frameworks after all. You can but the portability would be an issue. Each major OS has their own set of API/ABI, vastly different from each other, and Fuchsia isn't an exemption. You can write with QT for desktops but it wouldn't work on mobiles, you can write for Electron/CEH but lose performance and still have to do a lot of trickery, and so on.
- seabrookmx 8y agoMe not knowing how to spell the name of a plant/colour/operating system has something to do with my recollection of recent tech journalism? I appreciate the correction of my spelling (honestly) but this is a bit of a stretch. Your API/ABI point is also completely off topic. My comment points out that on the _same_ OS you can use different technologies, like Electron or Qt. I'm trying to point out that having both Kotlin and Dart/Flutter as options isn't bad or unprecedented like the parent comment seems to allude to.
- tylerhou 8y ago> s/Fuschia/Fuchsia/ And also it hints that you don't know what are you writing about. Is this necessary? Also, you definitely shouldn't be throwing stones while living in a glass house. s/mobiles/mobile > You can but the portability would be an issue. Each major OS has their own set of API/ABI, vastly different from each other, and Fuchsia isn't an exemption. You can write with QT for desktops but it wouldn't work on mobiles, you can write for Electron/CEH but lose performance and still have to do a lot of trickery, and so on. ABI only matters if you're linking code or directly running bytecode on another platform. If you're targeting another platform, you're almost certainly going to recompile libraries/your application to target the new platform, so you won't run into ABI issues. Especially because most desktop platforms (read: x86) have bytecode incompatible with mobile platforms (read: ARM). Also, Qt and Electron are abstraction layers over OS interfaces. As long as the OS supports the required primitives you could presumably rewrite Qt and Electron to target the new platform. Although it might take a fair bit of work, people have done so. In fact, a quick Google search reveals that you're completely wrong about Qt not working on mobile: https://doc.qt.io/qt-5/android.html https://doc.qt.io/qt-5/android.html
- tracker1 8y agoAside: Would love to see electron and Cordova bridge the gap together for mobile targets. If they can establish a few common interop libraries, you could come very close to the same code for both.
- 8y ago
- skavi 8y agoThere's a chance that in the future, Android will just be a legacy environment within Fuchsia. Fuchsia's main UI framework will be Flutter.
- zengid 8y agoI don't mean to be cynical, but the answer may be 'whichever language wins'. Maybe Google wants to support Dart because its built in-house, while simultaneously supporting Kotlin because it is so well loved by developers. Just a guess.
- sandGorgon 8y agoNo. Mobile Dev is not anything close to web dev : developers don't have control of run time devices. Google is now mandating 64 bit APK for its apps (after years and years of trying) - that's a end device support issue. React native has had 64 bit problems for years. Viewmodel is a lifecycle aware component. Android Q will come with foldable-aware SDK. Will that be supported both on Dart & AndroidX/Kotlin ? Someone has to explain to Google management that an ecosystem that has gazillion different devices , that are not in developer control is a far different beast than web dev . Microsoft understands this better than anyone else. Look at their bug-compatibility spanning 30 years. We cannot afford a fight-to-the-finish when my customers are on a gazillion different devices with different hardware. NBU markets like India operate at a very different level of complexity than the two-device markets of North America.
- bsaul 8y agoAs a developer you cannot expect that the technology you learned at university will be used forever ( or actually at all) in your professional life. Schools are supposed to teach you enough of the fundamentals to be able to adapt and learn the tech du jour on your own. The sooner your students learn that lesson the better.
- sandGorgon 8y agothis is not an issue with two languages targeting the same SDK. you are mistaken on these aspects - I'm not sure if you are an android dev, so please forgive me if I'm pedantic. Kotlin vs Java is the situation you described. They both target the same underlying SDK. For example Pyspark vs Spark-scala. You can program in either, but you are still using the same paradigms - RDD, Graphframes, Dataframes. Flutter and AndroidX are not even the same paradigm - the lifecycle management is completely different. Android development forces you to think in terms of Activities and Fragments since they are a lifecycle model. Flutter changes it entirely. I'm pretty sure I can learn it fast, but the issue im asking is about investment. If you are running a company with 100 android devs, where will you invest your training and future architecture research. Or do you believe that the code of an app that's being used by a couple of million users for financial transactions can be ported to a new framework in a jiffy ? Just the testing and validation impact is huge. The issue is that we are just coming out of a Java -> Kotlin transition that required significant investment on our part. Because of Google making their stand very clear that Kotlin was the future. So now, this is very confusing.
- dikei 8y agoYou can't avoid learning Kotlin & Java, that's the native language for Android platform. Even if you use Flutter, leaky abstraction mean you will probably have to dig down to the native layer as your apps get more complicated.
- christocracy 8y agoThat’s right. I’m a professional plugin developer. I’ve got my hands in both worlds, making dart APIs into the Obj-c/Java bridge where I’m implementing native APIs. And several universes as well...I do plugins for React Native and Cordova, as well: same thing but JavaScript APIs into the Obj-c/Java bridge.
- elliotec 8y agoNot to mention all the weight put behind Progressive Web Apps, including being in the Google play store, and has most of the features as native android... https://developers.google.com/web/progressive-web-apps/ https://developers.google.com/web/progressive-web-apps/
- pas 8y agoHow cross platform can this be? What's the fallback plan if you need some API that's unavailable? Simply having a lightweight native wrapper around the webview allows a lot of oomph.
- fopen64 8y agoI'd say Flutter/Dart.
- christocracy 8y agoAnd what do you think those plugins implementing the native sensors or CLLocationManager / FusedLocationProviderClient is written with? Obj-c/Swift and Java/Kotlin.
- tananaev 8y agoI don't think anyone has a definite answer, not even Google itself. Google placed several bets on different technologies and community will ultimately decide which of them is the winning one. Personally I think native Android (Kotlin) and iOS (Swift) development is here to stay. I have tried many cross-platform frameworks and on any non-trivial mobile app, all of them cause more problem than they solve.
- rohan1024 8y ago> all of them cause more problem than they solve I know what you mean. But have you tried flutter? Try it and you might change your opinion just like me.
- la_fayette 8y agoI tried flutter. The available plugins cannot compete with the cordova or react native plugin system. For most apps a PWA or cordova-based web app is enough... Many apps are data-intensive and don't require fancy animations... My clients are more than happy with what the web has to offer.
- tracker1 8y agoThat's mostly my opinion as well... Your better off with a mostly portable web based codebase, or dedicated or hybrid apps. Say what you will of Facebook, their ux approach with react send the most pragmatic.
- coldtea 8y ago>I tried flutter. The available plugins cannot compete with the cordova or react native plugin system. The "available plugins" are not the right way to compare old frameworks and new ones. Of course a new framework like Flutter will have fewer. But also not everybody needs to use "available plugins", you can do a hell of a lot with just the SDK.
- la_fayette 8y ago
- on_and_off 8y agoedit : I am not a Googler, but that's what I gathered from talking with them Here is what is happening : A couple of years ago, when the dart team failed at getting their runtime embedded into the browsers, they started searching for a problem to solve. They thought they had hit jackpot with multiplatform development. So they started working on Flutter. This is all entirely independent from the Android team at Google. The Android Team at Google continuously improves their own framework, hence the jetpack set of libraries. One of the new libraries they have been working on and that is now public in pre-alpha stage is JetPack Compose. They have hired one of the engineers behind React and had them work inside of the Android Team on a "React like UI framework for Android". The official direction of the platform is what the Android Team is doing. Flutter is interesting, with all the advantages and caveats shared with other multiplatform tools like ReactNative.
- expliced 8y ago>A couple of years ago, when the dart team failed at getting their runtime embedded into the browsers, they started searching for a problem to solve. I thought that flutter was started outside of Google.
- Hixie 8y ago(I'm the Flutter TL.) As far as the bit about Flutter goes: Flutter was started by engineers from the Chrome team, and myself (who worked in the open source team as editor of the HTML standard). We had no relationship with the Dart team at all until some times into the project, when we were looking around for a language to replace JavaScript in our project (codenamed Sky at the time). We considered a large number of languages but ended up picking Dart because it was the best fit (see the Flutter FAQ for more details). We then had to learn Dart and made friends with the Dart team, with whom we now work very closely.
- achikin 8y agoWhat other Javascript replacements did you consider?
- 8y ago
- dethac 8y agoInvest in Kotlin. Kotlin is useful for Android NOW. Whenever Dart starts becoming more mainstream, you'll know and have enough time to react to it.
- RegicidalManiac 8y agoIf you are a serious developer the best is always to use platform native frameworks. Write a swift app for iOS and Kotlin for Android. Flutter will always be for casual/simple apps that do not run into super corner cases. They might be used for MVPs and proof of concept sort of products not necessarily for Million dollar backed startups.
- pjmlp 8y agoInternal politic wars at Google, with management having popcorns to see who wins at the end. If you are confortable with Qt, JavaFX, Xamarin, there is hardly anything to see with Flutter, plus they are based on programming languages that you actually want to have on your CV, instead of one that was dropped from Chrome and rescued at last minute by AdWords team. Plus, even Fuchsia is not so focused on Flutter anylonger. Android userspace is being ported to Fuchsia, and now they have a UI Framework agnostic layer, Scenic, with examples in C++ and Rust.
- mindentropy 8y agoFor embedded devices the only good toolkit is Qt and the licensing costs are pretty high. Flutter for embedded is interesting in this regard.
- pjmlp 8y agoGluon, PTC and Aicas also license JavaFX. Qt licensing costs are quite standard to market prices of similar products. Also if one doesn't want to pay for Qt, it is free to do themselves the same they want to do with upstream developers.
- sievebrain 8y agoJavaFX is fully open source, it doesn't need licensing. It also supports hardware acceleration, embedded usage on Linux, animation framework etc. Also, fits well with kotlin.
- pjmlp 8y agoGood luck getting JavaFX working out of the box in the embedded hardware supported by those vendors with the code at the open source repository. Who do you think does the porting and OEM certification work?
- _pmf_ 8y agoPlease link me to an image for RPi or BBB that has working HW accelerated JavaFX. I'm not being sarcastic, I'd actually like to know.
- jaabe 8y agoIf you want to do android development, Kotlin. If you want to do multi platform development, flutter. I think flutter will be an amazing tool for smaller teams, especially in non-tech-primary organisations. I work in the public sector of Denmark, we do in-house development, our main focus is the public services we provide though. So there is just no way we can do mobile, desktop and web without something like Flutter, or severely increased funding. The latter won’t happen, but flutter might.
- rattray 8y agoWhy not React / React Native?
- toan3rd 8y agoIf i understood it correctly, React Native basically gives you a JS runtime environment that handles communication with native APIs of the system and is shipped with your app. Flutter (and Dart) will transpile into native code and compile natively for your platform. So on React Native you will have that abstraction layer add runtime latency and package size of your app, while Flutter (Dart) really outputs native code.
- ptx 8y agoFlutter gives you native code but not native UI. It reimplements and draws everything itself (mimicking the native look), like Swing or Qt. React Native is the other way around - real native widgets backed by interpreted/jitted JavaScript code.
- fauigerzigerk 8y agoAs I understand it, Flutter/Dart is compiled to native code but not using any of the native UI widgets. To get native code plus native UI widgets plus some cross platform reuse you'd have to go with something like Xamarin.
- bacro 8y agoWhen React Native's fabric rearchitecture is available you will see much better performance. The thing that hurts performance today is that damn bridge communication between javascript and native that will be severely improved in fabric.
- StreamBright 8y agoAnd you think that anybody can answer that from Google? There are different factions in every company, they are fighting over things constantly. This is why Google has many similar products.
- tangue 8y agoInvest in Kotlin. It's been created by Jetbrain and they are showing clear support for it. I can't say the same about Dart. Google won't support Dart, GWT, Angular, Polymer ... eternally. Yes different purpose, tech and ambitions but too much overlapping. In case of a "more wood behind a fewer arrows" situation, you'll have to pray that the Google gods didn't choose to sunset the stack you bet on.
- macspoofing 8y ago>This is massively confusing. Do we invest in Kotlin ...or do we invest in Dart ? Oh come on. Pick one. That's what you do for every other platform. Hell, even for web development, you'll have to make framework and transpilation decisions. This is no different. >These guys can't afford 10$ courses on udacity and Coursera. Yeah, too bad there are no free ways to learn programming languages on the internet. But there is something arrogant about stating that programmers in developing nations somehow aren't capable of reasoning about tool choices for Android development.
- gremlinsinc 8y agoYeah, get out of business if you can't afford to send your offshored $5/hour indian developers to a 1-time $10 course to learn a new paradigm... Not sure I'm for flutter, react native, or some other (shopping around now for a good cross platform solution, quasar + cordova might be enough for my needs as I prefer vue), but these people need not be in business if they have no money to run their business properly. They'll just get shitty code that someonee else will eventually have to rewrite.
- douglaswlance 8y agoFlutter != Android Android will be Kotlin Flutter will be Dart.
- theWheez 8y agoI asked this exact question at the Android Dev summit this last year, and was laughed at https://youtu.be/FV3iN4PIB5U?t=902 https://youtu.be/FV3iN4PIB5U?t=902
- KonkeyDong69 7y agoHey. Clicked the link. Watched the video. It appears, that you were not laughed at.
- theWheez 7y agoBy Googlers? No, but by the audience around me, yes
- vinothvino42 7y agoDart