18 ms·
I really want to like Flutter, but I someone really don't want to spend the time to learn Dart. I can't really quantify it--some mix of yet-another Proprietary
by yc-kraln 8y ago
I really want to like Flutter, but I someone really don't want to spend the time to learn Dart. I can't really quantify it--some mix of yet-another Proprietary Google Technology, yet another ecosystem, yet another X. I'm tired I just want to build stuff that solves problems.
- axaxs 8y agoYou could say the same about Objective C, and to a lesser extent Swift. While I respect your opinion, and somewhat agree on it being a weird choice to use Dart, I think there is value in learning it iff it becomes the ubiquitous way to write apps for mobile.
- pjmlp 8y agoObjective-C and Swift help sell Apple's hardware. Besides Ad Words, there is very little being sold by Dart.
- axaxs 8y agoHow so? Do you think apple sales would drop if they switched all development to using a more mainstream language?
- pjmlp 8y agoNaturally, who would port their apps without a monetary value behind it? Plus how much money would it cost to replace all the existing software stack?
- IshKebab 8y agoBesides the thing that provides nearly all of Google's income...
- nova22033 8y agoyet-another Proprietary Google Technology Dart is open source: https://github.com/dart-lang https://github.com/dart-lang It took me two minutes to find that using googles real proprietary technology..their search.
- jasonvorhe 8y agoThis is HN. Everything Google does is evil. Don't forget that.
- lima 8y agoThe litmus test is "will it survive if Google pulls the plug on it?", and I suspect the answer is "No". But this is true of so many widely used open source projects.
- tadzik_ 8y agoSure it is, but I can see why OP looks down on it – just like their web rendering engine, it may be open source, but it's Google holding all the cards and ultimately making all the decisions. It may be opensource now while it's useful for them, but it may end up just like Android over the years: more and more closed bit by bit.
- jonny_eh 8y agoIs Google any worse than some "benevolent dictator for life" like other open-source languages?
- neves 8y agoSure Google is worse. A BDFL usually started it as a personal project, has deep interest in making the software flourish in the most places possible. Google interest is their bottom line, and it will base their technical decisions.
- asutekku 8y agoGoogle has abandoned so many projects people (developers) don’t have that much of a faith in them anymore.
- rubber_duck 8y agoI've tried dart back in the Angular 2 beta days with Angular Dart and after using it I have the exact opposite feeling about it. It's a thing that solved a lot of very real problems that are still halfassed by NPM and Node ecosystem - package manager, build system, tooling around it - it was all a step above the quality of TypeScript/NPM/JS. Saner object semantics, good standard library, good tooling - it just got me to solving the problems I had. DOM wrappers it had were very nice, came with their own wrappers for Observable events (from standard library). They had proper async/await implementation working waay before TS. Dart feels like a better TypeScript and for me the learning curve was really low. One issue I had with it was using Dartium to debug the code - Chromium build that ran Dart VM naively to avoid transpiling to JS all the time - it was buggy as hell back then. Supposedly the dev compiler for JS is fast enough now that this isn't an issue - and in the case of Flutter you're running Dart natively so it's irrelevant. I'm looking forward to doing a new project in Flutter this weekend - I've played with a hello world app when it was in beta and I was very impressed with the dev experience - hopefully it lives up to it in practice.
- SlowRobotAhead 8y agoOk, but to parent’s point... is it going to last? Is it yet another thing Google will abandon? Is it worth learning, because learning another language has a real cost imo. If Google walks at any point, does Flutter or Dart survive? I’m with him, I want to like the idea, but I think the adoption has been slow and it doesn’t appear like it’s going to suddenly take off. I could be wrong, I just don’t see any successful indications yet.
- pier25 8y agoAFAIK Flutter will be the primary SDK for writing apps in Fuchsia. If this is true, and if the other rumors about Fuchsia replacing Android are also true, then I doubt Flutter and Dart are going anywhere.
- coldtea 8y agoExcept if Google gets bored with Fuchsia, like it has with tons of projects. Heck, from what you say, it already got bored with Android -- if Fucshia is to replace it in say 2022, it means that Android just lasted around 15 years as a platform.
- sbilstein 8y agoIf you are handy with Java, Typescript or Javascript, Dart is a breeze to learn. I didn't invest any time learning Dart to get productive with it while using flutter.
- egeozcan 8y agoI was just about to write more or less the same comment before I decided to refresh the page. I just started coding as if I was working with a version of Typescript. I only Google from time to time for the standard library docs.
- beckler 8y agofor me there were only some syntactic sugar things I had to learn.
- StreamBright 8y agoYes but there is also the question why don't I learn React, Rust or Clojure instead of Dart. Am I going to be better of knowing Dart?
- expliced 8y agoDart is based on js and flutter is based on react. Going from js+react to dart+flutter will not be that difficult. Learn both.
- Barrin92 8y agoSame here. it feels like a very generic algol family language, and if you're familiar with any of them it's almost trivial to pick up to the point where you can just sort of write it and figure things out as you go. That was in fact the most pleasant things about Flutter for me, the language was a non-barrier.
- rhodysurf 8y agoIs it really hard to learn a new language tho? Its not even a hard one, its like a if you mashed java and javascript together. Its pretty simple to pick up.
- vijaybritto 8y agoYou dont have to learn it for the sake of learning it. You can learn and use when there is the need!
- est31 8y agoSo what's your alternative? Java Swing? Proprietary Sun (now Oracle) technology. Qt? Proprietary Trolltech tech. Electron? You're back on square one of using Google technology. And winforms, WPF, application kit, etc are all far more proprietary than Flutter.
- krageon 8y agoThe done thing in Java now is JavaFX, and the last time I bothered to work with it (more than a year ago) I remember really liking it. Of course, to me any kind of web tech is a complete non-starter so I am comparing this to using Tcl and WxWidgets.
- lmm 8y agoFunnily enough Tklets worked on the web before even Java or Flash.
- skinnyasianboi 8y agoKotlin native/multiplatform projects is the answer
- supergilbert 8y agoExactly. Kotlin for all platforms is the best option for the future.
- Bahamut 8y agoKotlin is by JetBrains.
- brylie 8y agoWhat are some of the strengths you enjoy about Kotlin?
- expliced 8y agoYou still need some gui library/framework. What crossplatform options do you have?
- nradov 8y agoIn general it's just really disappointing that in 2019 the development frameworks we have available are still objectively worse in terms of developer productivity, reliability, and documentation than what we had with Microsoft Visual Basic or Borland Delphi back in 1996. I totally understand that these modern frameworks are superior when it comes to cross-platform compatibility and easy application distribution, but everything else seems like a step backwards, or at best sideways.
- osullivj 8y agoXerox Alto [1] had GUI, Smalltalk 72 dev env and TCP/IP networking in 1973. How much real progress has there been in software technology since then? [1] https://en.wikipedia.org/wiki/Xerox_Alto https://en.wikipedia.org/wiki/Xerox_Alto
- coldtea 8y agoConsidering I can do extraordinarily more complicated tasks today, and a whole more of them, a lot. But we also missed a lot of good stuff that we used to have.
- wtetzner 7y agoIs that an improvement in software, or just a result of hardware getting faster?
- coldtea 7y agoVery much an improvement in software too. Compare a 1980 compiler with the optimizations GCC and LLVM make. Or v8 with the best interpreter in 1990. Or video codecs (almost non existent then). Or cryptography code (immensely improved). Or the capabilities of InDesign compared to a 1990 DTP. Or Photoshop compared to crude editors in the 80s. Or modern GCs versus crude 80s and 90s GCs. Or a modern DAW compared to 1990s midi apps...
- winter_blue 8y ago
- edwnj99 8y agoI would've preferred dart to be more opinionated like golang but its not, you can literally write in almost any style and one advantage of that is if you have experience with any modern language, you should be able to write dart with ease.
- mraleph 8y agoDart was actually really opinionated right from the start. Type annotations that has no bearing on execution; reified generics and dynamic typing at the same time; mirrors and noSuchMethod... even having semicolon - as opposed to not having it. These are all strong opinions about language design. They might not align with what is considered "modern" these days, but they are all opinions nevertheless.
- nilsocket 8y agoAlmost every big open source project is going to be unsustainable, if it isn't supported by a company. Few exceptions do exist, where several companies support out of there need and importance.
- logrott 8y agoNot a good attitude to have. If you try a Hello World in Flutter you'll see it's amazing. Don't knock on it until you try it.
- danite 8y agoTo me Dart is pretty disappointing. Modern languages like Swift and Rust have shown the power of incorporating functional features like sum types and pattern matching. Dart just feels like the same sort of OO language we've been getting since Java became popular. Edit: Also the continued existence of null in new programming languages is a baffling choice to me.
- markdog12 8y agoI don't blame you for being underwhelmed. The original goal was an easy to learn language. But since Dart 2.0 was completed, they are working on adding many other language features, including NNBD (Non-null by default). https://github.com/dart-lang/language/issues https://github.com/dart-lang/language/issues
- 0x8BADF00D 8y agoIt’s just hard to be productive in Dart. The Flutter IDE and simulators were so resource intensive, they literally locked up my laptop the last time I tried using them. Dart is objectively a terrible language to be productive in for app development. The abstractions provided by the language are clunky to use for window elements on a device screen. Don’t get me started on Material Design, either. Swift, Objective-C/C++, or even Java is way easier to start building apps with, in comparison. The tooling is mediocre for Dart as well.
- filleduchaos 8y agoI'm not sure what you mean by Flutter IDE and simulators, as the SDK has neither.
- Kiro 8y agoWhat's wrong with null?
- coldtea 8y agoA null is not a string or an integer or a MyClass instance, etc. So why does it pollute variables of all those types? https://medium.com/@hinchman_amanda/null-pointer-references-the-billion-dollar-mistake-1e616534d485 https://medium.com/@hinchman_amanda/null-pointer-references-... https://www.infoq.com/presentations/Null-References-The-Billion-Dollar-Mistake-Tony-Hoare https://www.infoq.com/presentations/Null-References-The-Bill... https://www.quora.com/Why-was-the-Null-Pointer-Exception-in-Java-called-a-billion-dollar-mistake https://www.quora.com/Why-was-the-Null-Pointer-Exception-in-... https://www.lucidchart.com/techblog/2015/08/31/the-worst-mistake-of-computer-science/ https://www.lucidchart.com/techblog/2015/08/31/the-worst-mis...
- spaceheretostay 8y agoI'm personally excited about Flutter largely because it seems the preferred development environment for Fuchsia. People will complain that Google kills projects too soon and too often, but I feel like Google has an MO and when you figure it out you can guess which products will live and die. I think Fuchsia and Flutter are Google's primary likely plans for the future of their consumer platforms. I don't really know why, it's just a feeling. A lot of it comes from Google planning 10+ years out a lot of the time. Reader was a mistake to kill, but you could see how Google management thought it would not be a widely useful product in the long-term future (though let's repeat, they were wrong). I think Flutter+Fuchsia has that 10+ year plan to it. I'm on board with Dart because it seems likely to be a major ease on development along with a likely promising future.
- pjmlp 7y agoSorry to disapoint you, Flutter is now one option in Fuchsia among others.
- burtonator 8y agoI think Typescript is going to obliterate Dart... it's really amazing. I love working with it more than any other languages I've worked with. Python, Java, Go, Javascript, Lisp... I think there's some combination between it being typesafe, amazingly expressive, dynamic and also productive because you're on the web platform. Generics might be a bit much for some Javascript people because it's like a whole language in and of itself but it's worth it IMO.
- mattlondon 8y agoSame here - its a real shame they picked a niche language for this rather than the now universal Typescript like everything else. As such, I'll pass since this feels like a dead-end just like polymer was. It felt like polymer had the same hype cycle as flutter - was going to make development so much easier/faster/less error prone etc. It is now a semi-abandoned legacy hulk of a project that people hate working with (anecdote I know, but that has been my experience) because its totally different and alien to how people are used to working, for no/little obvious benefit apart from "this is from google! its got to be good!" I wish Google would just accept defeat and support existing common tools rather than suffering from "not-invented-here" syndrome and create something totally different and non-compatible, rather than contributing to the existing industry de facto standards to make them better. There may still be a few "google-scale problems", but UI frameworks and HTML libraries are not them.
- winter_blue 8y agoThis is exactly how I feel. The lack of freedom to choose your own language is appalling. I don't want to be locked into a single language. If they targeted the JVM platform instead, would have the choice of Clojure, Scala, Kotlin, JRuby, etc. Also, targeting the JVM makes a lot of sense of Android, since ART complies JVM bytecode down to super-efficient machine code (at installation). I was really disappointed by Google's decision to push those wanting to use Flutter to learn Dart. Fortunately, the Flutter Windows and Linux libraries provide C and C++ wrappers[1]; hopefully these become preeminent, and result in other language bindings for Flutter. I've been tired enough with the web being JavaScript-dominated for a long time that the rise of options like TypeScript, ReasonML, Elm, etc. (in industry) felt like a breath of fresh air to me. [1] https://github.com/flutter/flutter/wiki/Desktop-shells#c-wrapper https://github.com/flutter/flutter/wiki/Desktop-shells#c-wra...
- wstrange 8y agoThe JVM doesn´t run in a browser or on iOS. Both of these are targets for Flutter.
- raquo 8y agoWASM would be a much more suitable platform for Flutter since it's more portable (works on the web) and better matches Flutter internals (C++ can be compiled to LLVM and through that to WASM). Not to mention that Google might be a bit sensitive to anything JVM / Oracle right now, given the lawsuit they lost.
- jeffhuys 8y agoI would say get used to it. I don't mean that in a degrading way or something, but we're developers. Until the day you retire you will need to keep up with technologies.
- coldtea 8y ago>I really want to like Flutter, but I someone really don't want to spend the time to learn Dart. If you have the time to spend to build an app, learning Dart to do it will be the less of your concerns.
- mda 8y agoThis is a weird comment, Dart is open source and evolves as well, like Swift from Apple, Kotlin from Jetbrains, Typescript from Microsoft etc. What is the difference? Or you don't like any of these?
- weberc2 8y agoContext: I was a Qt developer in a past life. The alternatives for cross-platform GUI are 1. Electron 2. Frameworks like C++/Qt C/Gtk 3. Bindings to (2) Using frameworks like Qt in native C++ sucks because C and C++ are just terrible languages for GUI development, even with the bolted on object systems and language extensions (Qt extends the C++ language). Using bindings to those frameworks is nice in theory because you don't have to manually manage your own memory or use their type system, but in practice you still need to understand how their types bridge to your language's types and how their memory management bridges with your language's memory management (typically a GC). So while you're dealing with C types and manual memory management less frequently, when you do have to deal with it, it's more complicated than dealing with it in standard C/C++. So (3) is hardly better than (2). Electron is probably the most cost-effective option, but it has its own problems (notably the high resource consumption that comes from bundling a whole web browser). With those considerations in mind, learning a new high level language is the least of all problems, especially if the GUI framework is high-quality.
- beojan 8y agoYou've completely ignored QML / Qt Quick here. That's the actual best option. Though Qt Widgets in C++ isn't too bad if you use the designer instead of insisting on doing everything in code.
- weberc2 8y agoQML is in the category of "learning a new language", although last I tried it it was very much a work in progress. Can't speak to how good it is today.
- darpa_escapee 8y agoLast time I played around with QML, it was basically Javascript.
- weberc2 8y agoQML is a declarative language; it has curly braces like JS, but that's about it. It also allows you to extend it with (some old, possibly noncompliant version of) JS, but the declarative markup is a distinct language.
- dodyg 8y agoThis type of "why Dart" moans surface every time anything related to Flutter is announced. It's weird. Stop it. It's useless.
- losvedir 8y agoI'll chime in as well that learning Dart is totally trivial. I don't like it all that much, since it really feels like your average Java-based language, but I learned it in a day or two while working on a Flutter app. Flutter is a great framework, and Dart gets the job done. I'm not sure I'd learn Dart apart from Flutter, but if you just treat it as part of learning the framework (think learning ruby along with rails, or Vue's random HTML-esque DSL, which people do), the overall learning curve is not high.
- phkahler 8y ago>> I'm tired I just want to build stuff that solves problems. I can relate to this. While that's always been part of my motivation, there were other things in play too, like wanting to do something "better" than before. Or using new methods. Or applying X to Y just because. Now, as I get older, I don't want to deal with overly complicated shit, excessive dependencies, or unnecessary bling. As an example in the GUI space I keep wondering why GTK 4 is getting a scene graph. I've done GFX programming for years and scene graphs are almost never the right answer. Why does a GUI toolkit even need one? No GUI should be that complex. No GUI toolkit should provide one for applications - that's not their job. Don't get me wrong, GTK is my preferred toolkit (in spite of gnome), I just think people keep extending things for the wrong reason. If it works and isn't broke, don't change anything. If the world changed and wants multi-touch, fine, add that. But don't go around doing your science experiments in projects that lots of other people use as infrastructure or building blocks. Change is constant. Real progress is slow.
- jcelerier 8y ago> I've done GFX programming for years and scene graphs are almost never the right answer. Interesting, why would you say that ? I saw a bunch of projects go from "more-or-less smooth at 1080p" to "buttery 120fps smooth at 4k" by migrating to UI toolkits with a scenegraph architecture.
- christocracy 8y agoDart isn’t difficult to get productive with in a couple of days if you have experience with Java or Typescript.
- cbhl 8y agoOne of the things I love about React and React Native is that it's possible to use them from "plain old JavaScript" (React.createElement and friends). And I work at le Goog; my org has mandated Polymer 2+TypeScript for all new desktop web code. Sure, maybe in production you want to use JSX and/or TypeScript, but learning a new language and a new framework together is overwhelming, period. Pedagogically, it makes it hard to conceptually separate what is a language feature and what is a framework feature. (To this day, I still have trouble separating what parts are Ruby and what parts are Rails.)
- skalkin 8y agoI was productive in Dart after few hours, it really fells a lot more solid and thought-out compared to JS or TS. Everything just works immediately and as expected, and the language is super simple yet expressive.
- Dig1t 8y agoI completely agree. I use Flutter a lot, and even after getting used to Dart, I really hate it. It's not a fun language, and I just can't understand why they chose to use it.
- Dirlewanger 8y agoI'm convinced it's going the Google Way™ (i.e. will be abandoned) in 5 years tops. This company has repeatedly shown it can't commit to products that are slow burns and not entirely obvious where revenue may come from. It's part of the reason why I see Go as a fad too.
- avinium 7y agoAs someone in the process of picking up Flutter/Dart, the upside of Flutter significantly outweighs the downside of learning Dart. Flutter is the best-designed framework I've encountered (whether mobile, front-end, back-end or machine learning). The only downside is Dart, and while it's annoying, it's also very minor.