I personally do not like the idea of syntax "skins" at all. It is actually one of the biggest issues I have with Javascript. When I'm looking at a project written with es2015 vs TypeScript vs CoffeeScript I have to try and imagine how it would look in regular old es5 just to get an understanding of what the code is actually doing. The alternative, of course, is to just learn the syntax of what I consider to be different Javscript implementations. Now, I don't have the time or the passion to do that. I know ES5 and es2015. Why should I need to learn typescript/coffeescript/whatever just to understand what a library or piece of software is doing when it's all just Javascript anyways?
_Aside: I know the advantages of Typescript and Coffeescript. But what the "skins" idea is proposing is the possibility of a single project to contain multiple language "implementations"._ I realize that what is being proposed isn't exactly equivalent to my Javascript complaints. However, I believe the "skins" idea is as unnecessary as it is useless. If Nim aims to be a toy language with no serious adoption, "skins" make sense. If Nim wants to actually be usable in real world production code, the community needs to enforce a syntactical standard. Consistency is key in large projects. I would personally be very miffed if I was working on someone's Nim code and it all looked like C++. Then we have the question of how the parser wants to enforce the various different "skins". If a user chooses to use braces in some places and no braces in another, will the parser catch this and warn at compile time? Will the parser not care? If the parser doesn't care, we then end up with a single project consisting of multiple different coding styles, and what may seem to some people, different languages entirely. I think Nim as a community would be better served promoting a strict reference syntax across the board. That way, we as a community, can work on Nim's stability and libraries. I believe this is the way to drive Nim adoption. I think that we as developers sometimes forget that code is read far more often than it is written. I think optimizing for others to be able to understand our code is more important than writing the code in the exact syntax that we prefer.