{"action":"created","issue":{"url":"https://api.github.com/repos/babelscript/rfcs/issues/1","labels_url":"https://api.github.com/repos/babelscript/rfcs/issues/1/labels{/name}","comments_url":"https://api.github.com/repos/babelscript/rfcs/issues/1/comments","events_url":"https://api.github.com/repos/babelscript/rfcs/issues/1/events","html_url":"https://github.com/babelscript/rfcs/pull/1","id":62509366,"number":1,"title":"Add initial RFC","user":{"login":"alexspeller","id":1217,"avatar_url":"https://avatars.githubusercontent.com/u/1217?v=3","gravatar_id":"","url":"https://api.github.com/users/alexspeller","html_url":"https://github.com/alexspeller","followers_url":"https://api.github.com/users/alexspeller/followers","following_url":"https://api.github.com/users/alexspeller/following{/other_user}","gists_url":"https://api.github.com/users/alexspeller/gists{/gist_id}","starred_url":"https://api.github.com/users/alexspeller/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alexspeller/subscriptions","organizations_url":"https://api.github.com/users/alexspeller/orgs","repos_url":"https://api.github.com/users/alexspeller/repos","events_url":"https://api.github.com/users/alexspeller/events{/privacy}","received_events_url":"https://api.github.com/users/alexspeller/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":11,"created_at":"2015-03-17T20:25:39Z","updated_at":"2015-03-19T23:23:50Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/babelscript/rfcs/pulls/1","html_url":"https://github.com/babelscript/rfcs/pull/1","diff_url":"https://github.com/babelscript/rfcs/pull/1.diff","patch_url":"https://github.com/babelscript/rfcs/pull/1.patch"},"body":"Initial PR for discussion"},"comment":{"url":"https://api.github.com/repos/babelscript/rfcs/issues/comments/83800765","html_url":"https://github.com/babelscript/rfcs/pull/1#issuecomment-83800765","issue_url":"https://api.github.com/repos/babelscript/rfcs/issues/1","id":83800765,"user":{"login":"ghempton","id":8994,"avatar_url":"https://avatars.githubusercontent.com/u/8994?v=3","gravatar_id":"","url":"https://api.github.com/users/ghempton","html_url":"https://github.com/ghempton","followers_url":"https://api.github.com/users/ghempton/followers","following_url":"https://api.github.com/users/ghempton/following{/other_user}","gists_url":"https://api.github.com/users/ghempton/gists{/gist_id}","starred_url":"https://api.github.com/users/ghempton/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ghempton/subscriptions","organizations_url":"https://api.github.com/users/ghempton/orgs","repos_url":"https://api.github.com/users/ghempton/repos","events_url":"https://api.github.com/users/ghempton/events{/privacy}","received_events_url":"https://api.github.com/users/ghempton/received_events","type":"User","site_admin":false},"created_at":"2015-03-19T23:23:50Z","updated_at":"2015-03-19T23:23:50Z","body":"I am going to play devil's advocate here and suggest that we *adopt as much ES6 syntax as possible* and attempt a best effort to create a proper *superset* of ES6. In my opinion, the main draw to CoffeeScript at this point isn't an alternative syntax, but really just a more concise syntax.\r\n\r\nAt each instance where there is a conflict between ES6 and CS, I think we should side with the former unless there is a really compelling reason. This will not only make the language easier to pick up, but if it were possible to create a near-superset of the language, we could just use ES6 code directly in babelscript without the need for back-ticks at all! One reason why [Stylus](http://learnboost.github.io/stylus/) is my favorite CSS preprocessor is because it allows for css-like syntax and makes omitting curly braces in favor of indentation based syntax optional.\r\n\r\n > Functions...It's probably worth keeping the CS behaviour here and enforcing the parens around single function arguments, as it's more consistent and will be less work, along with being more consistent.\r\n\r\nWhy not just use ES6 syntax here?\r\n\r\n> It might be worth changing the javascript embed syntax from backticks, as these are the ES6 template string syntax, but it doesn't really matter as CS already supports better template string syntax than ES6.\r\n\r\nIs CS really that much better at template strings? We could only support backticks here.\r\n\r\n> We need to review variable hoisting in CS and let behaviour - preferable to adopt let instead of var and use ES6 scoping semantics\r\n\r\nI am tempted here to just not have dynamic variable scope and require that people still use `let`/`var`/`const`. This will make supporting `const` trivial (which could otherwise be really complex, especially in light of variable shadowing).\r\n\r\nThis could also make the design of the language much simpler as we do not have to answer many questions up front, we can simply augment ES6 one feature at a time.\r\n"}}