skysight-inc/HackerNews huggingface dataset:
There's not just one killer feature. Here's a few strong features that add up:

- optional static type annotations

- advanced object-oriented features (mixins, advanced constructors, etc)

- rich built-in libraries

- pub package manager

- 2X V8 performance w/ the Dart VM

- integrated tooling

- exceptions

- generics

- operator overloading...

I could go on, but basically I'm not sure what language you were looking at because Dart has a lot that plain vanilla JavaScript does not (although can have with extensions). It also doesn't inherit all of those flaws JavaScript got from being designed in a time crunch (10 days is really not enough time to design a language).

If I had to pick one though, it would probably be the fact that Dart is a platform (rich language, libraries, tools, and package manager) rather than hodge podge of frameworks on top of a lightweight language.
Etherpad V1.4.1 released, big performance improvements
Try:

#include <string.h>

void bar(void *s, size_t count)
{
memset(s, 0, count);
__asm__ ("" : "=r" (s) : "0" (s));
}

int main(void)
{
char foo[128];
bar(foo, sizeof(foo));
return 0;
}

gcc -O2 -o foo foo.c -g
gdb ./foo
...
(gdb) disassemble main
Dump of assembler code for function main:
0x00000000004003d0 <+0>:	sub $0x88,%rsp
0x00000000004003d7 <+7>:	mov $0x80,%esi
0x00000000004003dc <+12>:	mov %rsp,%rdi
0x00000000004003df <+15>:	callq 0x400500 <bar>
0x00000000004003e4 <+20>:	xor %eax,%eax
0x00000000004003e6 <+22>:	add $0x88,%rsp
0x00000000004003ed <+29>:	retq
End of assembler dump.
(gdb) disassemble bar
Dump of assembler code for function bar:
0x0000000000400500 <+0>:	sub $0x8,%rsp
0x0000000000400504 <+4>:	mov %rsi,%rdx
0x0000000000400507 <+7>:	xor %esi,%esi
0x0000000000400509 <+9>:	callq 0x4003b0 <memset@plt>
0x000000000040050e <+14>:	add $0x8,%rsp
0x0000000000400512 <+18>:	retq
End of assembler dump.
I'm originally from Israel, but have lived in London for 9 years and now in Berlin in the last 3+ years. I can't say I notice a vast difference. Especially if I look at middle-class, educated, well-earning people, which this kind of service targets.

There could be some cultural difference, sure. But I think it's relatively small. Other factors, some mentioned on other comments, can come into play. For example:

* much easier way to order fresh groceries online in the UK (including Sunday delivery, 1 hr delivery slot, mobile apps etc)

* execution, execution, execution (I can't tell about the OP, but the founder of Marley Spoon is also a founder of Delivery-Hero, which is well-established in the fast-food delivery online market)
Yeah I agree. Everyone has different schedules and ways to do things. It's a better experience for me to read it as a well thought out response than individual comments sometimes.
Seems like it could of worked..
> Clojure certainly isn't an OO language

Multi-methods and protocols
Anybody used Dart for serious web development?
Very interesting read, I did something similar[1] on a Microsoft site. I didn't think of creating a code object from scratch though, great idea.

I did a web app test once for an application created by IBM. They offered the ability for administrators to run Python code in a 'restricted' sandbox to manipulate data. The app was Java so it was run through Jython, and they locked down all the usual suspects like open(), file() etc. But because it was Jython you could just use the Java io.* classes and bypass all their restrictions.

1. http://tomforb.es/breaking-out-of-secured-python-environment...
If it compiles down to javascript then it does have the same flaws as javascript. 2x performance of v8 is bullshit, and "rich built-in libraries" and "integrated tooling" are just marketing drabble. If you understand what they actually mean please explain or gtfo.
I also am living in Berlin now and was wondering if you had some recommendations for online grocery deliveries?
What execution differences do you see?
Also, Android should really start restricting their users to a certain screen size. Preferably very very small. This is a basic design principle that they really should have done their homework on.
"Google" does not think that, a cofounder of the Dart project does.
Akademy 2014 Day 1
Why Are Developers So Afraid of SQL?
Sure, I'll explain each one.

Performance - Dart has its own VM which runs independently (on the server, or in special builds of Chrome, but soon to be mainline Chrome). So it's not just a language that trans-compiles to JavaScript, it's also a language with its own independent high performance VM that you can use on the server today and the browser tomorrow (hopefully). By the way the Dart VM was written by the same guys that created V8 - generally considered to be one of the highest performance JavaScript VMs - so I think we can believe them when they say it's higher performing.

Rich Built-in Libraries - Just take a look here: https://api.dartlang.org/
There's everything from a reflections API to a WebGL library. There's JavaScript interop libraries, concurrency libraries, and the equivalent of jQuery built-in. That's just scratching the surface.

Integrated Tooling - Dart has its own package manager (pub) which is quite nice as well as its own IDE (Dart Editor) which comes with a debugger, profiler, and all the niceties you'd expect (code completion, deployment help, etc).

It's also a new language (less than a year since 1.0) backed by a big company so these things are only going to continue to improve.
If you really want to blow his mind. Pick up on a REAL open source project that is already solving a REAL problem. Nothing you do in this class will matter. If the four of you can really contribute to a real world problem in three months, that'd certainly be worth an A+.
It's worth noting that the API you referenced is only available to Facebook games, and not other types of applications.
this talk didn't talk about server-side dart. does this mean the project is refocusing on client code ?

also another question : does anyone here using angulardart can talk about how much static type anotation helps ? i'm thinking of future<t> instead of $q and directive writing ( which i always found a bit confusing, so maybe types help).
Looking at the slides, I don't think this is accurate. You can compile Dart into Javascript, which will run on non-Chrome browsers.

The advantage is that (1) on Chrome, you get better performance, and (2) you get a nicer language that Javascript.
Super nice work. Thanks for posting.
It appears the Forbes author did not understand the underlying article, or the concepts well.
His graph axes of the Power Law distribution and comments regarding it show a lack of understanding.
The axes should be performance and one of probability or frequency.
He has the performance axis, but has substituted 'total number of people' for frequency/probability. Thus making this a CDF graph, not a PDF graph.
But the cincher is the author's comments "Roughly 10-15% of the population are above the average (often far above the average), a large population are slightly below average, and a small group are far below average"
The original research shows the largest group is the lowest performers, and a proper interpretation of the Power Law distribution applied here also indicates the same. The author states the largest group is "slightly below average". The graph comments reflect this misinterpretation also. His Power Law interpretation better reflects an interpretation of the Normal distribution, not a Power Law distribution.
It's the official name of the talk.
Ukraine War Crisis – FLYING BMP Mariupol
Here are people who do: https://www.dartlang.org/community/who-uses-dart.html
And now I have to support (and debug) two languages only because on a single browser one can perform slightly better, while the rest of the resources and frameworks for web clients are all written in javascript. No thanks
BitTorrent doesn't order file fragments by design. So how can you stream it without downloading the whole thing first (to the server at least)? Which defeats the purpose of streaming really.
> If it compiles down to javascript then it does have the same flaws as javascript.

That makes no sense whatsoever. As evidence, I submit that Haskell can be compiled to C (and to javascript these days).
I evaluated it. Didn't work in Firefox 31 Beta. Reported the bug. Was fixed in Dart around the time when Firefox 32 RC got released.

Please remember to recompile all your apps you deployed with Dart < 1.6. There are still some Firefox users out there. (Majority in Germany uses Firefox.)
of course all of duty solves a problem: entertainment

also why would people use a product they enjoy that doesn't solve a problem?
In regards to your question about server-side Dart, it seems that the space is just beginning to mature. A couple frameworks have solidified a fan base such as:

http://redstonedart.org

https://github.com/lvivski/start

There's also a Dart specific hosting service that's in beta: http://www.dartvoid.com

And there's been some success running Dart on Google Compute Engine through App Engine Managed VM (not sure if this is out of beta).
Just a couple of not-very-deep comments:

The service did nothing at all on Chrome with ad-block-plus installed.

On Firefox the service did show some very nice blue balls moving from left to right after I did a search on some common video content and selected it, but that was about it.
Nice! Why not create a different protocol then if they're not yet compatible? Adoption for a browser-based p2p streaming tool should be seamless. If the only problem is BitTorrent integration, go your own way.

ps: your site seems down.
TypeScript: The Bad Parts
If you have 18 months of savings put aside, are young, and hate your job, I think you'd be silly to not take 9 months off and try to do something fun.

You'll be just as employable - probably more so - when you're done, even if your projects don't take off at all.
"... The fastest airplane out there today is the 747. Not one of them has been able to match the cruise speed of the 747. That indicates to me that it’s a high-technology airplane ..." Joe Sutter [0]

wing sweep alone doesn't explain why the 747 is the fastest subsonic transport to date. If it did, competitors would have copied the idea. I'm curious why? Boeing describe it as a combination of wing design, engine, electro-mechanical systems. Maybe I should ask Boeing.

[0] http://www.boeingblogs.com/randy/archives/2006/08/father_kno...
Dart is presently broken by design for web browsers in general, because they have to ship a set of type mapping tables that contains names & information specific to individual browser versions. In the past, new releases of Firefox have broken it and those errors had to be pointed out to the dev team for a later fix.

Ideally in the future the Dart team will be more on top of things, but you will still have to recompile your Dart applications every time a new browser comes out. Many developers will probably not remember to do this - if they're maintaining their apps at all.

Dart2js is also an afterthought (in general) compared to the mainline dart vm, so it will be possible (if not common) for dart applications to end up only being compatible with Chrome's implementation. One of the main issues I'm aware of in this area is that integers larger than 53-bit will silently fail to work correctly, while native Dart will handle them.
You use a client which request fragments in a specific order.

This is not something new.
Recovering from chronic depression and documenting what helped me
He seems to be from Mozilla..
You can. BitTorrent doesn't order file fragments by design, but clients can choose to ignore this and request pieces in order. See Popcorn time and many other implementations out there.
From the project's GitHub page, some more details on what it actually does:

swift-x is a python script that simplifies the compiling of Swift and Objective-C(++) code into object files.

... [It] is a two stage wrapper for clang and the swift compiler that uses the Android NDK tools to produce android compatible .o files.

The first stage uses clang or swift to compile source code and emit LLVM-IR code which is passed to the Android second stage tools which compile the IR into .o files.

So you get working object code, but you still need to figure out how to get Android versions of the Cocoa Touch libraries if you use any of those APIs.
It's tool support and unsurprising semantics. Few other web frontend languages have that.

TypeScript comes close with the tool support, but it doesn't have the unsurprising semantics, and all in all it's a lot more limited, because it's designed to be a near-superset of JavaScript.

I'd be using Dart already if it was simpler to integrate with existing JS libraries. That's the part TypeScript got way better.

Tool support must be one of the most underrated language features these days. The enormity of blog posts about desiging your ruby code for "greppability" is just scary - I just want my tool to generate a call hierarchy for me, thank you. Dart has this covered.
Literally his first slide says that he works for Google on Dart. What is this nonsense?
Genes still patentable in Australia as appeal rejected
The wider adoption of Dart is a pipe dream, and the fact that it will remain confined to Chrome is a very good thing. The web community should reject this, or we'll soon have only one browser and one true master of the internet.

- No other browser can practically implement or support Dart. If they do their implementation will be slower than Google's, and will get classified as inferior. Google has in abundance the time and money to build and fix bugs, which Mozilla and Opera may not have in the near future.

- Google's engineering could have gotten JS much farther along, but from what I have read on Twitter the V8 team has been shuffled around and the focus of innovation on Chrome is Dart.

- See how Chrome trails Firefox in ES6 here: http://kangax.github.io/compat-table/es6/
(Thankfully, arrow functions are landing soon).

There is no other way this would be played out, and the plan from the outset must have been to push Dart forcefully using Google's distribution capability on the web and on devices. I am waiting for Servo to launch to become a full-time Mozilla cheerleader again, once again after Internet Explorer's heydays.
Yup! Thats much better, Thanks
Correct, However (when I get around to tearing out the VNC dependency) you could use this to SSHerize bare metal machines (using gPXE's GDB stack)
Based on that description, Dart sounds like Google's version of Adobe Flex.

I suspect that experience has shied people away from the idea of relying on a single-vendor platform for web apps. We tried "rich Internet applications" and they weren't a lasting solution; both Adobe and Microsoft gave up on their efforts.

Google's solution has a plain-JS fallback which Flex and Silverlight couldn't do, but otherwise the Dart world view seems similar: one vendor, one monolithic platform, one preferred runtime.
And that most compiled C programs have better performance than someone trying to code assembly by hand.
make it an ebook and you might get some money out of it ;)
Show HN: My first app – The minimalist distance-based transit alarm
Hi all!

I'm a 17-year old self-taught developer just starting to tap into the mobile world! :3

This summer, I've worked on a minimalist distance-based alarm clock app that wakes you up before you miss your stop!

Check it out here!
http://www.windowsphone.com/en-us/store/app/commuter-buddy/cb9b5107-41e0-4d2b-b0d6-110fe555fc3b

Feedback and comments are welcome, thanks :)
Why would you be supporting two languages? You can choose to write your app in JavaScript (that's not going away and that's one language) or you can choose to write your app in Dart (also just one language) which will run as Dart on the Dart VM and compiled-you-don't-touch-it JavaScript everywhere else. Sounds like FUD to me.
Notch (creator of Minecraft) uses it for some smaller WebGL games: http://blog.tojicode.com/2013/12/notch-webgl-dart-and-rampin... and on HN https://news.ycombinator.com/item?id=6841557
Breaking into your own house is not a crime.
Actually use of uninitialized memory is a reasonably common flaw and doesn't imply the process has been or can be hacked to execute arbitrary code.

So wiping that sort of information as soon as it becomes unneeded is good hygiene. And I still think it is reasonable to do the least you can to avoid ending up with sensitive data on the disk after a core dump.
I am mostly a Java developer. I guess I could write syntactically correct JavaScript but it's a bit alien to me. As is the whole tooling landscape of JavaScript (Grunt, Node, Angular, Backbone, etc.).

I'd like to do a few personal projects with server-side scripting and I need to learn a new language and ecosystem for it. From what I've seen I'd rather learn Dart because it is more familiar to me. What's been stopping me from doing that is missing integration and/or documentation in asset compilation toolchains for example in Play (i.e. no sbt-web plugin).
Depends on how you define OO. My own definition of object involves identity and corresponding encapsulated state, which is something that Haskell doesn't support directly (since identity isn't pure).
An enjoyable thread, so much good discussion, no trolls or stupid comments, mostly professionals and interested amateurs discussing a topic they love, and know lots about.
That seems the general skeptic's analysis - and it has some validity - but let me point out a few things that make Dart seem a bit more open:

- It compiles to JS (you mentioned this)

- It is standardized by ECMA

- The entire platform (VM, compiler, libraries, IDE, etc) is open source

I guess how you feel about Dart may depend on how you feel about Google and big corporations more generally. Just because a big company that has a lot of mindshare/marketshare creates a great platform, does that necessarily mean we should be afraid of it? Maybe, but if you're frustrated by JavaScript, it's certainly worth a look.
You can't just take a Swift app for iOS and compile it for Android, sure.

But this could be useful for people who enjoy Swift, and want to reuse blocks of logic from their iOS app to an Android port.

I'm wondering though, I thought Swift compiled down to code that uses things like the Foundation framework (NSString etc), which would also be missing on Android. It would be hard to do anything without these classes, wouldn't it?
Dart is often found to be very familiar by Java developers. In fact, on the mailing list, it is sometimes criticized for being too Java like. Java developers who feel disaffected by JavaScript are certainly a large niche that Dart appeals to.
One example is algorithms heavy code. There are already numerous resources(e.g [1]) that visualize algorithms and data structures. If those kinds of animations could be generated on the fly, it would be much easier to write that kind of code.

Being able to visualize code blocks (kind of like Light Table) and move them around between files, maybe even modify inheritance structures graphically could be useful too.

Seems like there are a lot of cool things you could do, but IMO the challenge is coming up with a few things that are actually useful for a significant amount of code and yet remain possible to build.

[1] http://www.comp.nus.edu.sg/~stevenha/visualization/
> Lets say I do not use Google-Analytics but my own server who just record custom events (anonymized IP Addresses) then the app will be considered private and secure.

Hahaha... No, of course it will not be. No app with phone-home analytics is private.
http://en.wikipedia.org/wiki/Muphry's_law
There are several independent open-source implementations of Foundation like GNUStep and Cocotron.

Once you have the Obj-C runtime and cross-compiler working, porting either of those to Android should be fairly simple... But I suspect that Swift may have dependencies on new or recent Foundation features which could be missing from the open-source versions (for understandable reasons, they lag behind Apple by several years).
JVM as primary target is the main selling point, just watch author's talks. Back then Rich Hickey described JVM as "the default platform of choice" for "serious development" (read - corporations). OK, I am paraphrasing a bit, but he explicitly praised JVM.)
Nearly all of the answers give the same answer: that Comic Sans is a fine typeface that is only inappropriate (sometimes) because it sets an inappropriate tone.

I don't believe that's the main problem at all. The problem is aesthetic[1]. Some letterforms are inherently unbalanced and create tension, notably the wild angles in the m, the serif in the s, and the tipping-over T. The wobbles in the I, n, and h distract as well. Beyond that, there are the subtler issues of different inclination on the verticals (j, t, l, h) and bad kerning for various character pairs.

If Comic Sans were truly convincing as handwritten font, it would probably be better; on the plus side it is sufficiently far from that that it avoids falling in the very bottom of a handwriting uncanny valley.

Now aesthetics doesn't necessarily impede legibility per se, but beauty and visual harmony are generally enjoyable, and use of Comic Sans eschews it. Compare it to the much better Comic Neue[2].

[1] example: http://kinkeaddesigns.com/wp-content/uploads/2014/03/Comic-S...

[2] http://comicneue.com/
I'm not sure exactly what I said that you're replying to (or if you're just replying to my Dart boosterism more generally) but what you seem to be addressing are political issues (who controls the Web, where resources are allocated) and not technical issues. Considering that Dart is open source, standardized by the same international body as JavaScript (ECMA), and compiles to JavaScript I think the argument against it would be weightier if it was made on technical merits.

But I agree that it would be dangerous for one company to control the web - but like you said it's a pipe dream that Dart will gain wider adoption - so why worry yourself by writing all that about it? You can't say it will never gain wider adoption and then also be worried about it gaining wider adoption at the same time. So either it has merit and will gain adoption and we should be worried about it, or it doesn't have merit and there's nothing to worry about.
Because if I choose dart I have still to deal with the derived javascript code implementation I must use to run in other browser that are not chrome and, as described by the post close to this, often that js is so broken it cause big bugs on firefox for example, and to understand and repair those you have to know js.
I wish they'd invest in Go for the frontend. If a project like GopherJS can get as far [1] as it is now with just 1 person working on it for a few months, imagine if it had more support. And then you could use a language as nice as Go for both frontend and backend.

[1] https://github.com/gopherjs/gopherjs#what-is-supported
You might try Adobe's editor, Brackets. It does a very good job at psudeo-intellisense, can even infer argument types, and has lots of nice plugins for working with JavaScript - including features that let you see the body of a function under the cursor, or the JSDoc (the equiv of JavaDoc). There is a JSHint plugin (linting is the closest JS gets to compilation). And of course the Theseus debugger, which is quite good. I think its neat that the editor is built on browser tech (Github's Atom is built like that, too).

Client side development is, ironically, somewhat more complex because of the lack of module standard. You'll almost certainly want to use require() in the browser, but that won't work without taking extra, confusing steps. 'Browserify' pre-processes your JavaScript, generating a single large bundle, but that introduces complexity both at build- and run-time. And that doesn't even address the ongoing saga of the lack of a module standard for the browser.

By contrast, writing simple programs or servers in Node is vastly more enjoyable than in Java.