Brendan Eich (2013-12-13T07:41:26.000Z)
forbes at lindesay.co.uk (2013-12-16T15:11:55.959Z)
> I guess angle brackets in general are trouble however, I recall some issues with html and JS. Probably best to avoid `<>`, although in HTML, only `</` followed by certain letters would be a problem ;-). > Yes, ~ and | have meanings, but ! is so so much more common. I want to point out this example of http://sweetjs.org/ -- a sweet.js macro for let async: https://gist.github.com/disnet/7934003 (contents below) Sweet.js has come a long way. This makes me wonder just how much built-in async syntax we need to hardcode into ES7. /be ----- ```js let let = macro { rule { async $vars ... = $fname ... ($params ...); $rest ...} => { $fname ... ($params ..., function (err, $vars ...) { if (err) throw err; $rest ... }) } } var buffer = new Buffer(1024); let async infile = fs.open("/tmp/in.txt"); let async outfile = fs.open("/tmp/out.txt"); let async bytesRead, buffer = fs.read(infile, buffer, 0, 1024, 0); let async bytesWritten, buffer = fs.write(outfile, buffer, 0, 1024, 0); console.log("We read " + bytesRead + " bytes and wrote " + bytesWritten + " bytes."); // compiles to: var buffer$188 = new Buffer(1024); fs.open('/tmp/in.txt', function (err$190, infile$191) { if (err$190) throw err$190; fs.open('/tmp/out.txt', function (err$193, outfile$194) { if (err$193) throw err$193; fs.read(infile$191, buffer$188, 0, 1024, 0, function (err$196, bytesRead$197, buffer$188) { if (err$196) throw err$196; fs.write(outfile$194, buffer$188, 0, 1024, 0, function (err$200, bytesWritten$201, buffer$188) { if (err$200) throw err$200; console.log('We read ' + bytesRead$197 + ' bytes and wrote ' + bytesWritten$201 + ' bytes.'); }); }); }); }); ```