{"action":"opened","issue":{"url":"https://api.github.com/repos/tc39/proposal-class-fields/issues/81","repository_url":"https://api.github.com/repos/tc39/proposal-class-fields","labels_url":"https://api.github.com/repos/tc39/proposal-class-fields/issues/81/labels{/name}","comments_url":"https://api.github.com/repos/tc39/proposal-class-fields/issues/81/comments","events_url":"https://api.github.com/repos/tc39/proposal-class-fields/issues/81/events","html_url":"https://github.com/tc39/proposal-class-fields/issues/81","id":294268700,"number":81,"title":"Consider re-separating Class proposals","user":{"login":"justsml","id":397632,"avatar_url":"https://avatars2.githubusercontent.com/u/397632?v=4","gravatar_id":"","url":"https://api.github.com/users/justsml","html_url":"https://github.com/justsml","followers_url":"https://api.github.com/users/justsml/followers","following_url":"https://api.github.com/users/justsml/following{/other_user}","gists_url":"https://api.github.com/users/justsml/gists{/gist_id}","starred_url":"https://api.github.com/users/justsml/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/justsml/subscriptions","organizations_url":"https://api.github.com/users/justsml/orgs","repos_url":"https://api.github.com/users/justsml/repos","events_url":"https://api.github.com/users/justsml/events{/privacy}","received_events_url":"https://api.github.com/users/justsml/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2018-02-05T04:11:04Z","updated_at":"2018-02-05T04:11:04Z","closed_at":null,"author_association":"NONE","body":"> **Some background:** I'm originally a hardcore C++/C#/Java fanboi. In 20 years since I've come to appreciate many very different languages/styles/patterns: x86 Assembly, OCaml, Python, SmallTalk, Ruby, JavaScript, Elm, Elixir, ReasonML. **I'M NOT A `class` HATER.**\r\n\r\nHere's my concern: If features keep getting added that are mostly tied to the `class` construct, we move **far away** from \"classes are just syntactic sugar for functions + prototypal inheritance\"\r\n\r\n> **I understand the included transpilers show this is technically still true.**\r\n\r\nThe new proposed features+syntax ratchet up the complexity considerably.\r\n\r\n### Think for a minute that Original ES2015 Classes could be 90% 'transpiled' **using only a few regex replaces.**\r\n\r\nWe have deviated so far from this 'simplicity' - there are so many new things in classes that all interact in different & exponentially more complex ways. `decorators`, `getters/setters`, `static`, `field declarations`, `private members`, et al. \r\n\r\nNow consider how `inheritance` plays w/ all this, what about the existing expectations around `Object.keys`, `Object.getOwnPropertyNames`, etc? Can I use all the new syntax in the context of a plain JS object/function?\r\n\r\n> Btw, I know this proposal doesn't tackle all the features I listed, it's more about the cumulative effect of yet more class features.\r\n\r\n---------------------\r\n\r\n#### Bottom line, if you want these sort of features added to JavaScript, **just stop. Use TypeScript instead.** It's world-view is much more inline w/ the proposed features.\r\n\r\nIf nothing else, I'd love to see the class proposals re-broken up. \r\nIt feels like TC39 is switching to a Waterfall/Log-roll style process to shove the lot of class proposals together into the spec. \r\n\r\n\r\n#### Granular features allow for more careful consideration, and more helpful/specific community feedback.\r\n\r\n-----------------\r\n\r\n### Kudos to all the super smart people behind these proposals, it's an amazing amount of work, I do appreciate trying to advance JS. 😻 \r\n\r\n\r\n"}}
{"actor":{"display_login":"justsml"}}