8 ms·
Why do people hate Dart?
by danvayn 9y ago
Why do people hate Dart?
- pknopf 9y agoMy sore-point is the lack of community and enthusiasm for it. The available resources and libraries are limited.
- mswift42 9y agoIs that reason enough to hate Dart ?
- pknopf 9y agoNo, not the language itself. But community involvement is important.
- coldtea 9y agoWell, having it as the language for Flutter will obviously only help in both regards.
- akerro 9y agoSet of C# libraries is nothing compared to number of libraries in Java or Python, is that a reason to hate C#? Look at this from different perspective, you have a chance to start one of the future most popular library in Dart.
- pknopf 9y agoIt IS a factor. Many people choose Python because of the libraries available. Many developers just want to ride the wave, not innovate.
- mlevental 9y agothere's nothing innovative about rolling auth flow yet again.
- sydd 9y agoC# has everything that an average project needs. With Dart you'd need to reinvent the wheel several times for something common as medium-size mobile game.
- akerro 9y agoI need good support for OpenCV and other image/color manipulation libraries. Two years ago C# totally sucked on this so I went with Java. Has it changed?
- pknopf 9y agoNope. However, it is easy to expose C methods (not entire opencv interface) to your app via PInvoke. I do this often, and allows me to quickly pop in any native library how I want.
- Hixie 9y agohttps://flutter.io/platform-channels/ https://flutter.io/platform-channels/ is intended to make it easy to integrate with many existing "native" (OEM-side) third-party libraries. There's also a surprisingly large number of pure Dart packages. See pub.dartlang.org.
- merlinsbrain 9y agoI tried to contribute to a couple of official Dart web projects. It was extremely poorly handled by the Angular Dart team and I learned the hard way that the “source code open to public” != “open source, contributions welcome”. I really wanted to use Dart over the JS ecosystem (it’s similar to TypeScript syntactically but with a package manager that’s not npm and none of the JS implementation baggage!) but the project is very clearly catering to internal customers at google with 0 care for any sort of community. I should emphasize that all my contributions were fixes and not some sort of feature requests - the latter would be straight up impossible to discuss I am sure. Good luck to both the Dart VM and Flutter team - solid engineering from what I can see, just a pity that community management was shit and put me off unless I get paid to work with them.
- eudora 9y agoI do wonder why Google doesn't take a more open, community approach to Dart. I mean, what do they have to lose? As a Googler said earlier, they've built the fundamentals quasi-privately already, do it seems they can only win by making it a community project. Is it any less community driven than Swift though?
- merlinsbrain 9y agoYou’re right they have the infrastructure almost all in place. I wish they did care about the community especially when communities like Go really are thriving. I do not have any experiences with how the Swift project is run, hoping someone else sees this and comments!
- ythn 9y agohttps://xkcd.com/927/ https://xkcd.com/927/
- Cyph0n 9y agoI don't get it either. I recall using it a few years back to build a simple in-browser OSM widget on top of Leaflet. It was a fairly enjoyable experience. I remember that once my code compiled without errors, the widget just worked. The only explanation I have is that it's just a "normal" language and doesn't really have a strong differentiating point unlike Rust, Elixir, etc.
- cookiecaper 9y agoI like Dart. They've just finished pushing out Dartlang 2.0. I'm hopeful that they'll be able to refocus now, especially on things like JavaScript interop, which really must be fleshed out to make Dart practical for general use. I am personally disappointed that they've reoriented to focus specifically on client-side development, but if it gives the language and ecosystem the attention and revitalization it needs, it'll be worth it.
- markdog12 9y ago> They've just finished pushing out Dartlang 2.0 Note that Dart 2 is only available in pre-release builds. Work is on-going.
- mswift42 9y agoLet's see. People hate Go, because it doesn't have generics and is missing dependency management. So, people hate Dart, because it has support for generics and comes with a package manager?
- akerro 9y agoWhat? One of the reasons I love Go is it doesn't have generics, and I say that after 7 years spent in Java. People don't like to be forced to think differently because they're lazy and can't motivate themself to change the way they think and program. Go is different, Rust is different, people throw shit on Go because it's not Java or C# or Python, because it doesn't do what they would like it to do, not because it doesn't have generics. Sure, occasionally generics would be useful, but it's not a reason to hate a language.
- mswift42 9y agoI was trying to say that one shouldn't expect a sober, reasonable discussion about pro / cons of any programming language here. (As every discussion of anything Go has amply shown)
- ergo14 9y agoGolang looks nice, but my problem with it is that it seems to have nothing even resembling python's sqlalchemy. As I understand lack of generics is the reason for that?
- greenhouse_gas 9y agoDifferent people hate different things. And I don't think that anyone hates Dart because it has generics.
- mswift42 9y agoDart is a perfectly fine opensource programming language with a familiar syntax. Is it perfect? No, but it's good enough. There is nothing about Dart itself that would remotely justify the shit it gets heaped upon here.
- childintime 9y agoDart was conceived as better than Javascript, but it ended up drawing the short straw in the browser. It ended up with shit on its face, so to say. So people identify Dart with that expression. But nothing could be further from the truth. It is a modern productivity language, like Kotlin. Anyone will be productive in a matter of a few days. With such a low barrier, why then carry on the legacy of Javascript with its weird edge cases? So I think Google made the right call.
- moocowtruck 9y ago>why then carry on the legacy of Javascript with its weird edge cases? but many languages could have done that, instead google chose the route to create another not much has improved here language, other than..they made it
- teen 9y agoWhat's wrong with using multiple languages?
- mamcx 9y agoHaving a scripting layer is ok-ish, but then you can't use your native lang (swift, .net/xamarin, java, etc). So this mean that to have "cross-platform UIs" you MUST commit to a inferior language glue. Js is bad, Dart is better, but Swift/C#/F# is WAY better.
- filiph 9y agoJust a note: one of Flutter's differentiators is that renders every pixel, straight to OpenGL / Vulkan. It doesn't do cross-platform the way RN or Xamarin does it. It's more like Unity. Since most featured mobile apps nowadays have very custom UIs, we hypothesize that this is a very important feature going forward.
- s73v3r_ 9y agoMost featured mobile apps are still using the native widgets. They're just styling them.
- mamcx 9y agoThis part I could agree, and for most of my apps make a lot of sense. I download the code and run the sample where is possible to integrate flutter with the "host" language. Is better than react native, but I wish it have a more ergonomic api.
- nikki93 9y agoDart compiles to machine code plus the rendering is mostly impl’d in Dart so you can change basic things about the rendering in Dart, FWIW. In general the dichotomy you’re painting b/w scripting and native languages can hold, but the details make the difference. One interesting thing in this case is having a single language that AOTs but also JITs. The hard thing is re: interfacing to platform APIs, which the OS usually provides in its blessed lang (Java / Obj-C).
- cwyers 9y agoDart was basically Google's CoffeeScript, a compile-to-JS language that was supposed to sand off JavaScript's rough edges while still running in any web browser with JavaScript support. It didn't catch on, and one of the reasons is that this is right around the time when CoffeeScript started to fall out of favor, JavaScript got a lot of new features that alleviated enough of the pain points that people didn't want to deal with debugging code that was compiled into JavaScript, and stuff like Emscripten and TypeScript moved into the space. So it feels like the state of JavaScript has moved on by where Dart was, it still have enough JavaScript influence that the JavaScript haters don't really want to touch it, it's not enough like JavaScript for JavaScript enthusiasts to really like it, and there's no community around it so if you want to work in it and Google hasn't provided a library or framework that does what you want you need to roll your own.
- nevir 9y agodart2js is a very small sliver of what Dart is.
- cwyers 9y agoThe original Dart announcement was a presentation entitled "Dart: A Structured Web Programming Language." Dart has evolved beyond that mostly by necessity; people weren't adopting it for web programming, and so if it was going to survive, it needed to adapt. http://gotocon.com/dl/goto-aarhus-2011/slides/GiladBracha_and_LarsBak_OpeningKeynoteDartANewProgrammingLanguageForStructuredWebProgramming.pdf http://gotocon.com/dl/goto-aarhus-2011/slides/GiladBracha_an...
- nevir 9y agoRight, but that legacy isn't a great reason to hate on what Dart is now
- cwyers 9y agoProgramming languages have killer apps that define how people engage with them. Perl was "instead of using shell scripts with sed/awk you can use a 'real' programming language." Java was "here's C without so many footguns." C# was "here's Java without having to deal with Sun/Oracle." Dart was supposed to have a killer app around web development and didn't make it. Even something like Flutter has incremental improvements over stuff like React Native, Xamarin Forms and other cross-platform UI toolkits. There's still no killer app there.
- stefano 9y agoThey could've made a C API, with a thin Dart wrapper around it, allowing multiple languages to create their own bindings, like GTK did. Instead, they decided to couple a UI framework with a language that almost no one is using. Maybe because it was easier for them to implement it that way, or as an attempt to make Dart popular after developers have been snobbing it for years. In the end, if flutter becomes the de-facto standard for mobile apps, developers will hate it for the same reason developers hate on javascript: it's not necessarily for its technical merits, although they do play a role, but because it's forced on you with no other choice.
- mixmastamyk 9y agoCan C talk directly to iOS and Android?
- plorkyeran 9y agoIt would be very unpleasant, but you could write a pure C iOS application which uses the standard platform GUI libraries.
- monyr75 9y agoWhy Dart was chosen for Flutter: https://hackernoon.com/why-flutter-uses-dart-dd635a054ebf https://hackernoon.com/why-flutter-uses-dart-dd635a054ebf
- m_fayer 9y agoI don't hate Dart. I hate Google's presumption that their new client GUI platform will be so irresistible that it will convince me to use an unloved no-community language that's not usable in any other context. And... why? There better be agood reason not to pick Kotlin, or C#, or Swift, or Go even? There better be something very special about Dart but... there isn't, so far as I can see. So it seems like Google is foisting this on us arbitrarily, or from internal political calculations. Which just taints the whole thing.
- markdog12 9y ago> not usable in any other context I'm using Dart for the web and on server side. Really loving the language. > seems like Google is foisting this on us arbitrarily It's been in the works for at least 2 years now. > There better be something special about Dart A good article on why Dart's a good fit for Flutter: https://hackernoon.com/why-flutter-uses-dart-dd635a054ebf https://hackernoon.com/why-flutter-uses-dart-dd635a054ebf > no-community language I think there's room to critique Dart with regard to how it's very much Google-driven vs community-driven. They mostly make decisions based on Google's internal customers. That's a problem if it wants to grow.
- riku_iki 9y ago> I think there's room to critique Dart with regard to how it's very much Google-driven vs community-driven. They mostly make decisions based on Google's internal customers. That's a problem if it wants to grow. From another hand you have language driven by needs of mature and complex products/company/engineers, and not by random people who decided to use dart today for some hobby project or soon-to-die startup, and then will switch to another hotness next month.
- munificent 9y ago> I think there's room to critique Dart with regard to how it's very much Google-driven vs community-driven. They mostly make decisions based on Google's internal customers. That's a problem if it wants to grow. I'm on the Dart team, and I agree. We have been pretty internally-focused the past year or two. As someone who cares a lot about open source, that makes me kind of sad. But, also, the reality is we had pretty good internal adoption and not great external adoption. If we're going to get to a million happy users someday, we need to first have thousands of really happy users — we need to fit our product really well to a customer base and then grow from there. If you look around, you'll notice that almost all successful open source projects start with a pretty solid base — often developed entirely privately inside an organization — before they grow to a larger ecosystem. Our internal users have been a great set of users to focus on for a while. They give us great feedback, have very large projects to work on, and, well, they pay the bills. I also think almost everything they deal with is relevant to external users too. (Except for some minor stuff around build systems and versioning where Google's monorepo system is quite different from the outside world.) I believe by working to make our internal users really happy, we've focused Dart into a product that will ultimately be much better for external users too. If you were to see the stuff they complained about and that we fixed, odds are you'd be right on board with them. Years ago, I felt like Dart was trying to be all things to all people with not enough coherent focus. The past couple of years (and some org changes) have helped improve that, I believe. Once Dart 2.0 is out the door, my hope is that we'll get back to working like a normal visible open source project. But we need to have a solid foundation we can build on before that makes sense. Communities are great for incrementally evolving a project, but not as much for answering fundamental existential questions about what the project is, like "Are types good?"