Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Are there any clauses in the Roslyn license that prevents third parties for using it for writing code that directly competes with Microsofts own products such as Visual Studio?


Roslyn is released under the Apache license - https://github.com/dotnet/roslyn/blob/master/License.txt


they have their own compiler. See: https://blog.jetbrains.com/dotnet/2014/04/10/resharper-and-r...

> Will ReSharper take advantage of Roslyn? The short answer to this tremendously popular question is, no, ReSharper will not use Roslyn. There are at least two major reasons behind this.

The first reason is the effort it would take, in terms of rewriting, testing and stabilizing. We’ve been developing and evolving ReSharper for 10 years, and we have a very successful platform for implementing our inspections and refactorings. In many ways, Roslyn is very similar to the model we already have for ReSharper: we build abstract syntax trees of the code and create a semantic model for type resolution which we use to implement the many inspections and refactorings. Replacing that much code would take an enormous amount of time, and risk destabilizing currently working code. We’d rather concentrate on the functionality we want to add or optimize, rather than spend the next release cycle reimplementing what we’ve already got working.

The second reason is architectural. Many things that ReSharper does cannot be supported with Roslyn, as they’re too dependent on concepts in our own code model. Examples of these features include Solution-Wide Error Analysis, code inspections requiring fast lookup of inheritors, and code inspections that require having the “big picture” such as finding unused public classes. In cases where Roslyn does provide suitable core APIs, they don’t provide the benefit of having years of optimization behind them: say, finding all derived types of a given type in Roslyn implies enumerating through all classes and checking whether each of them is derived. On the ReSharper side, this functionality belongs to the core and is highly optimized.

The code model underlying ReSharper features is conceptually different from Roslyn’s code model. This is highlighted by drastically different approaches to processing and updating syntax trees. In contrast to ReSharper, Roslyn syntax trees are immutable, meaning that a new tree is built for every change.

Another core difference is that Roslyn covers exactly two languages, C# and VB.NET, whereas ReSharper architecture is multilingual, supporting cross-language references and non-trivial language mixtures such as Razor. Moreover, ReSharper provides an internal feature framework that streamlines consistent feature coverage for each new supported language. This is something that Roslyn doesn’t have by definition.


They have a parser , not a entire compiler


Nope. And they aren't using Roslyn from what I'm aware.


I assume they aren't, because their Resharper codebase already had the bits needed. Still, if you start writing a C# IDE from scratch, wouldn't the obvious choice be using Roslyn for everything from autocomplete to refactorings? Easily half to 90% of the work going into an IDE has to be in the language services (if you want to do the really tricky things well, like completing broken syntax).


It's not built from scratch. It makes full use of the existing ReSharper code base.


>It makes full use of the existing ReSharper code base.

R# is written in C# while their IDEs is in Java. Most likely they "convert" some of the C# code to Java. It'll be ugly...


Yet it indeed makes full use of resharper:

"instead of reimplementing ReSharper’s features on the IntellIJ Platform, which runs on the JVM, we’re using ReSharper in a headless mode, out of process, and communicating with it via a very fast custom binary protocol. "


No, it's mentioned in the article that their new IDE is just a frontend for R#.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: