On 2013-06-26 10:54, Sönke Ludwig wrote:
I agree. Even though it may not be mentioned in books and many people
may never see the changes, it still *does* make the language more
complex. One consequence is that language processing tools (compilers,
syntax highlighters etc.) get updated/written with this in mind.
I don't think there will require much change for tools (non-compilers).
I see three "big" changes, non of them are at the lexical level:
extern (Objective-C)
[foo:bar:]
foo.class
Any tool that just deals with syntax highlighting (on a lexical level)
should be able to handle these changes. Sure, you might want to add a
special case for "foo.class" to not highlight "class" in this case.
This is why I would also suggest to try and make another pass over the
changes, trying to move every bit from language to library that is
possible - without compromising the result too much, of course (e.g. due
to template bloat like in the older D->ObjC bridge). Maybe it's possible
to put some things into __traits or other more general facilities to
avoid changing the language grammar.
I don't see what could be but in __traits that could help. Do you have
any suggestions?
On the other hand I actually very much hate to suggest this, as it
probably causes a lot of additional work. But really, we shouldn't take
*any* language additions lightly, even relatively isolated ones. Like
always, new syntax must be able to "pull its own weight" (IMO, of course).
I would say that for anyone remotely interested in Mac OS X or iOS
development it pull its own weight several times over. In my opinion I
think it's so obvious it pulls its own weight I shouldn't need to
justify the changes.
--
/Jacob Carlborg