Project Rider – A C# IDE
blog.jetbrains.com
blog.jetbrains.com
This immediately gets me stoked for doing my Unity C# development with this.
* Edit. Initially thought this was an entirely new IDE, and not just a plugin. Less excited, but certainly worth a look.
- http://www.jetbrains.org/pages/viewpage.action?pageId=983889 - https://github.com/JetBrains/intellij-community/tree/master/...
Good news everyone!
So for me - Visual Studio 2015 is the best tool I've ever used for HTML/CSS/JS (and Node.js and C#). It simply outshines everything else I've tried. I guess if I was forced to use an OS X or Linux desktop, I'd resign myself to using JetBrains tools because they probably are the best thing you can find outside of Windows...but as someone who prefers Windows and who wants native Windows apps that behave idiomatically instead of just fulfilling the lowest common denominator - VS can't be beat IMO.
I should have just copy & pasted your comment.
Even as a Windows user myself, I can't quite articulate what has always bothered me about Visual Studio in general over the years. It seems to have it's own language, terminology, and way of doing things that you have to buy into. And I really don't like that. Let me pick a folder, have that be my project, and edit text really clever like. That's what I want.
You don't mention the two things together, but VS has the server explorer which you can use to hook in to a database and do administrative tasks (both design and data viewing)
Besides server explorer, VS also has SSDT (SQL Server Data Tools) obviously only for SQL Server, but I've never seen anything even in the same league as SSDT for any open source database.
For me it's a good balance between a straight up text editor and full IDE.
The C# dev aspect of this I'm more excited for colleagues that use OS X exclusively--they'll be able to collaborate much easier with a full IDE than the lesser methods they are using now.
I am using another JetBrains product, PHPStorm, on the Mac at the moment for some Front End Dev, which is another IntelliJ based product. This has recently become quite sluggish and is starting to annoy me, after all, who wants the tool to get in the way of the work. I hope this gets sorted soon.
That said, I think JetBrains do a great job focusing on develop tools and I've used their dotPeek product to untangle the mess left by the absence of release control in a recent contract.
You might as well be right: on OS X, Linux or *BSD however, it will be a completely different story due to the absence of Visual Studio.
At work I am using a Mac Pro 2008 with a WDC WD20EFRX-68AX9N0 in it (no idea of rotational rate, thanks Western Digital!!) and VMware is slow. Perhaps it is the antivirus I am forced to run inside Windows in a VM but it isn't snappy.
Developers not using SSDs is like a race car driver using an Impala off the car lot for a race.
(FWIW, I prefer VS to Xcode, despite preferring Mac to Windows. IntelliSense and editor tabs seem nicer to use than Xcode's UI, and Xcode with a Swift project only a little bigger than a toy demo hits periodic freezes. On my home iMac which does have an SSD.)
As a consultant and contractor this is the first thing I point out. However, it's their money, not mine.
BUT! we should not be quick to ignore hardware like this and suggest to upgrade as a solution. Since there is a lot of hardware in use with that spec, it is best to cater for it. You wouldn't recommend someone went and used a fibre Internet connection when your mobile web page takes too long to download, would you? You'd fix your massive mobile web page.
I do get the feeling that OSX developers are all using SSD at Apple, because they obviously don't realise how unbearably slow the experience is with the 5200 RPM drive they sold me...
You use a slow machine for testing, not building.
This is like saying my fucking carpenter shouldn't use power saws.
Maybe you should have gotten a better machine then. If by a few years ago you mean 2010, then sure. We're 1/2 a decade past that now.
I disagree as a developer who does (personal) development on a 2010 laptop (1st gen Westmere, upgraded to SSD). My laptop is perfectly adequate for my development work (Android, Python). Besides, no ones should have to run Windows via hypervisor in a multi-platform world such as the one Microsoft is promising for C#, this is what makes beefy machines 'necessary'.
So it's not 'necessary', it's a choice you're making.
The bottleneck is indeed the hard disk but everything else about the machine is perfectly acceptable. Unless I need more cores in my CPU and all software has suddenly been rewritten to do everything in parallel and nobody does queue based operations now?
It's a bit of a silly name in my opinion.
I don't think that MS have any plans to add debugging, or build tools into VS code.
For production there's a new command line tool to compile it.
Really? I feel MS has really dropped the ball with VS. VS2013 was OK, but not great. A lot of random lock-ups in really annoying situations where you can't even fathom why (like opening a text file). VS 2015 is actually awful - it wasn't until Update 1 that typing this (below) in C# would pop-up an on screen exception dialog:
class Foo : Bar
{
public Foo()
:
Pressing enter after the colon would throw the exception consistently. How on earth was that missed in testing? This is such a common C# pattern for invoking the base or this constructor.I often find myself staring at the screen, saying in my head 'What the hell are you doing now!'. The new DNX project system is unusably slow (compiling) and the tooling for it is non-existent. And for me it still crashes all of the time. Other devs on my team are having similar problems.
TFS and TFS explorer is a total joke. The 'offline mode' is slower than online mode, and also causes crashes. If I lose my VPN connection then I have to shutdown VS and restart before TFS will reconnect again (this has been an issue for every version of VS I've used). Luckily we're moving away from that travesty of a system to git very soon (the VS git integration is actually pretty good).
I used to feel that VS was a really solid piece of tooling, and I agreed with your sentiment that I quoted. I don't any more. I will check this out, and if it works then I'll happily drop VS, two years ago I couldn't ever imagine myself saying that.
Competition can only be a good thing here.
This has been the case for C++ for a while now. Every version of VS has gotten worse since, IDK, 2006 or something (and that's ignoring how long it takes them to finish new versions of the language). I had a suspicion that they had moved their A team over to work on C#, but hearing this... maybe they're just getting worse.
Sarcasm notwithstanding, that was a terrible decision that still annoys me almost daily when I want to automate a repetitive task in the text-editor.
I've been rather pleasantly surprised at how much support MS are giving git and github - they offer git hosting on Visual Studio Online and the Azure documentation is in github.
Edit: Added pleasantly! :-)
With 1 notable exception of 1 huge project.
On large, 40+ project, solutions it seems like Visual Studio just falls on its face. Our new team is redirecting toward microservice approaches in light of some of these frustrations.
Not that your arch should be dictated by your editor, but quality of life is what it is.
I suspect some of the problems are, for sure - our big internal project is a multi-million line app, maybe 70-80 csprojs. VS2013 dealt with it OK, but had its occasional problems (the TFS issues weren't occasional though), VS2015 is much worse in general. It's very unstable.
My open-source project LanguageExt [1] uses git and isn't that large. I still get crashes and lock-ups. It was the first project I migrated to DNX also. It takes an age to build (where the sln/csproj system doesn't), and nails the CPU (99% usage). Something is very wrong, and very unfinished.
I can see where MS is going with this new open-source tools approach, but at the moment the whole thing seems to be a mess, and VS just can't deal with it. The one ray of light is the git integration. That works for the most common scenarios. I only occasionally have to drop back to the cmd line.
It seems like every time there's a new project format the first version is just really awful. I think they really only test it on small almost toy-level projects thoroughly but fully conjecture.
That's a very cool project though - what got you going on that? If I could convince my coworkers to not kill me for doing so, I would try to introduce using that at work :-) I've definitely gotten them on to the immutability by default train of thought tho - a lot of people very happy with that mindset considering how much of work has become parallel processing. It's amazing how much faster you can do things like build invoices of thousands of items when you can process the whole thing in parallel :-D
My pref has always been command line tbh - getting away from TFS was the best thing that ever happened for me.
Thank you :)
> what got you going on that?
Heh, long story...
I'm a CTO of a healthcare software house in London, we've been developing a very large web-app in C# over the past 10 years. Over the years it has evolved as any project does, but I started noticing more and more that OO was really not the right tool for the job of managing large inter-dependant systems (well, the Java/C# brand of OO anyway). The promise of re-use, decoupling, composition, ... all seemed to be lies. On top of that I started to get a sense of the common bugs that were coming through: null-reference errors being by far the biggest. The in-your-face bugs like null-ref errors are relatively easy to spot though, what becomes more problematic over time is shared mutable state logic errors. They can remain buried for some time.
I'd already had an interest in functional programming piqued by LINQ and Erik Meijer's talks on Haskell. I spent some time learning Haskell and F#, and came to the understanding that the stability and reliability of a system could be massively improved if null didn't exist, if objects were immutable by default, and if functions were pure/referentially transparent. Expression oriented programming became my order-of-the-day, but C# kept getting in the way. Unfortunately I couldn't just drop it and move to F# because our code-base is huge and written in C#.
So that's when I started writing csharp-monad [1], it was my first attempt at bringing functional concepts into C#. It had a couple of problems though, and they were:
* The types were classes, and therefore if a function returned Option<T> then it could still be null
* It followed the '.NET BCL way' of having functions like GetValueOrDefault() - again breaking the safety net that an Option type (for example) is supposed to give.
It had benefits though, primarily that I could make composable computations with the various monads (using LINQ). The problem with that approach was that it quickly bumped up against the rest of the BCL. And, in my case, the rest of our multi-million line C# OO app.
So I mothballed that project to an extent. I'd use it now and again where I had control over a process end-to-end. But it got me thinking, that the main issues I had were:
1. Non-expression based C# constructs (if/else, switch, etc.)
2. OO-heavy core types, like List<T>, Dictionary<K,V>, etc.
3. Whenever I brought in 3rd party libraries that 'did functional', they wouldn't work with my Option type in csharp-monad, or any of my functional types - and they never could because there's no baseline for functional (other than LINQ) in C#.
4. The lack of more expressive LINQ grammar makes it less useful and sometimes more cumbersome than Haskell's 'do' notation or F#'s computation expressions.
1-3 cries out for an equivalent of a BCL for functional constructs. I was under no illusion how big a job that would be, but I could see real value in it: a unified set of types for Option, Either, Try as well as collections Lst, Map, etc.
"A functional prelude for C#"
And once I saw that C# 6 allowed 'using static' I saw that as an opportunity to really create a 'functional BCL' that actually looks like a functional language. A chance to take C# in a more Scala-like direction (which if you think about it, is where it's going, it just doesn't have the libraries to support it). So that's when language-ext [2] was born.Item 4 was more problematic. I couldn't create more LINQ grammar. So I started thinking about it in a different way. Mostly I wanted to create expression oriented code. It was just safer. But with C# OO you always hit that expression boundary. So I thought about how I could control the boundary. Some of that was to build 'matching' constructs into the core types, but that wouldn't deal with all boundary issues. That's where the actor system comes in (LanguageExt.Process [3] ). I'd looked at Akka.net and its very Java-like API horrified me - it looked like C# 1.0. So I took the idea that a LanguageExt Process (an actor) is a fold over a stream. That suddenly created a very powerful idea that I could create packets of pure computation and wrap them with their state, and each message would evolve that state. In one fell swoop it created a better and more controlled OO that can interact with pure functions - and all fully integrated with the functional BCL I'd developed. It also allowed us to start breaking up our monolithic app in a much more controlled way.
So yeah, that's the back story! Sorry if it turned into War & Peace.
Btw, I am in the market for two developers at the moment. So if none of what you just read horrified you, please drop me an email with your CV to plouth AT gmail :)
[1] https://github.com/louthy/csharp-monad
[2] https://github.com/louthy/language-ext
[3] https://github.com/louthy/language-ext/blob/master/LanguageE...
I had tons of problems with it when I was running it in a VM on a MacBook Pro though...
And I say that as a longtime VS fan and advocate!
(Of course, I guess JetBrains products would suffer exactly the same problem now with the new SaaS model - I just needed a rant about this particular issue.)
Having worked with VS for many years, things not so glorious in my opinion. The main criticism is an increasing lack of stability and error prone refactoring. I've basically given up on automatic renaming with VS2015. The IDE crashes more often as it should, especially during debugging.
Furthermore the solution/project-file concept (instead of using just folders to organize projects) is ancient and a real PITA when working in a team repository. I understand that this will hopefully be better in the future with .NET Core.
Another thing are licensing issues, which is really a uprising problem at MS (this is also the case for other MS products). You're not allowed to open your IDE when the license - falsely - expired.
I really enjoy working in VS code nowadays, which seems to be the more future oriented product.
Don't get me wrong, VS is still a solid IDE, but not as stellar as often claimed in my opinion. As others already said, competition is a good thing.
I've not been very impressed with Visual Studio 2015 so far. I particularly don't like being forced to sign in to what should be an offline piece of software. Also, be careful installing it on an existing system as it will mess up your settings. I'm sticking with VS 12/13 and ReSharper for now but if Rider looks good then I could be tempted to switch.
Android Studio is great and switching from Eclipse to IntelliJ was a good move by Google. Being able to do cross-platform development with .NET on a first class IDE is an alluring proposition. I doubt VS will ever be ported to Mac or Linux despite CoreCLR as it relies heavily on WPF which is tied to the Windows graphics system.
I assume Project Rider is just a code name. I wonder what the final product will be called. IntelliSharp?
>I particularly don't like being forced to sign in to what should be an offline piece of software.
With JetBrains moving to a subscription model for their software won't you end up with the same problem?I just had a quick glance at the ReSharper page [0] and it appears that they still use the same model. They also offer monthly subscriptions but say that "12 months of uninterrupted subscription payments qualify you for receiving a perpetual fallback license.". BTW the cookie law notice on that page is one of the best I've seen :).
I've used pretty much every version of Visual Studio and 2015 is the first to have issues with licensing. I originally signed in with my MSDN account to activate it (fair enough) and then signed out. Now it tells me that my license has "gone stale" and I can't use it until I sign in again. There is an option to enter a product key but MSDN tells me:
A product key is not offered with this edition of Visual Studio.
To unlock the product, you must sign in using the login associated
with your active Visual Studio subscription. By signing in, your
IDE settings will sync across devices, and you can connect to
online developer services.
My old versions of VS are still licensed with a key and work fine. It makes me worry whether I will still be able to use VS 2015 when my subscription expires. Maybe it's worth exploring the free community versions. I believe that they no longer have the limitations on plugins that they use to have. I don't mind paying for things but the time and cognitive overhead dwarfs the financial cost.Also, it's based on Electron but doesn't have anything to do with Atom.
Although C# should be a much easier language to deal with, so this one might turn out better.
(I love my ReSharper Ultimate license, and R#++ helps to fill in a lot of Visual Studio's blanks as far as C++ goes, but really it needs to spend another six months incubating.)
I doubt they use all the languages their IDEs support internally - there's just too many! (Java, PHP, Javascript, Python, C/C++, Ruby, Obj-C). The problems are probably because CLion is one of their least mature products.
The notable exception is anything based on clang, which is usually flawless (as you would expect). If CLion had been based on clang then they would have saved themselves a lot of work and ended up with a better performing product. Presumably the reason they didn't had something to do with licensing.
Great days.
"And when it's all running on .NET Core it should be even faster." The IDE is written in Java and obviously runs on the JVM.
https://github.com/JetBrains/intellij-community/search?l=kot...
I'm glad to see that now a switch to C# is viable for me. I need a good IDE, and nothing really comes close to the 'gold' standard, JetBrains products.
Bravo! Can't wait to use it.
It surely "comes close" ;)
Vs2015 somewhat improved on its predecessors on this front, but it still has plenty of ways where it drags.
In college, I assumed everyone loved Visual Studios just because everyone was told to use it and there were, in reality, no other options. I hope that in the next few years, with the open sourcing of some Microsoft software, that we can see better IDEs for the ecosystem being created.
- GUI editors
- Parallel code debugging
- GPU debugging
- Enterprise code navigation
- Edit-and-continue
- Debugging native code generated for .NET applications
- Mixed language debugging
- GUI Profiler
- Code Profiler
Just a few items on the top of my head.
Can you please clarify which part? The linked tweet talks about Roslyn. I'd expect that to be loaded because ... it's not third-party.
In general, anything that tries to pop-open a GUI and just drags makes me roll my eyes. EDMX files, I'm looking in your direction.
I do think it maxes out 1 CPU, it's just single-threaded.
People use Visual Studios because they are used to it.
For performance: If you ask me what is more expensive computationally: Crysis or an IDE; I say an IDE can at least as performance hungry. Nothing strange with that. Try writing code to perform syntax check and autocompletion on broken/incomplete syntax, for a few thousand files, then you'll see what I mean.
I'm very happy to use a monster gaming machine for coding (professionally) if it increases my productivity even just a little.
Isn't that functionally the same as being bloated?
So it's different from "feature bloat" in the regular sense, that is just tons of buttons for things you don't use.
I don't feel that is an appropriate reaction. Just because software is poorly optimized does not mean we should subject ourselves it.
For instance, eclipse does similar (in my opinion better) auto-completion than Visual Studios and it does not take the same resources, by a long shot.
Sure, I'd use an IDE that does what I need but does it faster than VS, in a heartbeat. Obviously. Also, a lot is happening and very few are working professionally in several environments, so compare what they do every day, with what they do occasionally or maybe a long time ago. When I say I think Eclipse is a dog, that probably because the last Eclipse I used was Ganymede (2008) on java 1.5, hitting "run" and getting coffee before my jboss monster had started. I suppose a lot has happened there too.
Most IDE's have much better navigation and autocomplete than VS does out of the box. When I say "VS" I really mean "VS+Resharper" as VS more or less useless without ReSharper. With ReSharper however, it's definitely one of the best IDE's there is, and almost surely the best one for C#, at least until this comes out.
If you look at something like Atom with the Omnisharp plugin, it achieves everything I need from VisualStudio with a tiny fraction of the resources. Then again, if you're one of these programmers who write more code by dragging & dropping around a UI than actually typing (Microsoft has created a whole generation of these coders), then you probably need a lot of the VisualStudio bloat.
"But bloat!" is never an argument. Point to what it actually does to harm your experience if you want to formulate an argument; "it exists" is a nonsensical kvetch.
The code analysis/improvements/suggestions is definitely great though, at least for a while.
- No substring completion (e.g., like emacs's ido-mode), no fuzzy completion (e.g., like various JS-based editors), no acronym completion (e.g., like emacs)
- Navigation bar searches are shit. You have to select namespace, then class, then symbol, and there seems to be no keyboard shortcut for any of this stuff. It should present a list of entities in the file, display fully-qualified name of each, and let one search that list using the search mechanisms
- Class view searches aren't great. They solve many of the above two problems (the full list of entity names is searched, and it finds by substring), but the results don't update in real time
- Very hard to find files. Say you have a massive project with loads of solution folders and you need to find that file that's got the name "ProductScreen" in it - well, good luck! There's something I've seen some people do with the toolbar-based Find in Files widget, but that only searches by prefix, which is useless, because so many projects have a mandatory prefix on their file names
When I was a regular Visual Studio user - less Windows work of late means I've mostly been using emacs - I used to use Visual Assist (http://www.wholetomato.com/), an addin that improves the above functionality a bit. Visual Assist's code completion is a bit intrusive, but it does the acronym completion thing; for navigation, its navigation bar replacement lets you search fully-qualified names by substrings, its class view-style functionality updates the symbol list (searched by substring) in real time, and you have something similar for finding files as well.
All of this stuff is great for finding your way quickly around an unfamiliar project - i.e., any project with more than 15 programmers, even after you've been working on it for 2 years. And even when you know exactly what you want, at least you don't have to keep typing in that stupid project-specific prefix everywhere.
(I'm happy for the Visual Assist people that MS hasn't just copied their functionality exactly and totally put them out of business in one go, but it does make me a bit mistrustful of the Visual Studio UI team's judgement.)
It does all the searching you want for filenames and symbols, substring searches, matching, you name it. It's fantastic, and they should highlight it way, way more.
As for your file finding problem, I don't know why you didn't start typing in the search field on top of the solution explorer. It filters everything in the solution explorer, and also does substring matching.
I'm not sure if I'm understanding all of your items exactly, but I just tried to do everything on your list. It seemed like each (except for acronym completion) was available right out of the box (I am using VS2013).
For example, both the class view search and find files are handled by searching solution explorer. It updates in real time and the keyboard shortcut is Ctrl + ;
I have been developing with Monodevelop the last 4 years when I switched to mono/ubuntu and I don't see here nothing that it doesn't have already: cross platform, excellent refactoring support, multiple targets. Maybe its because of my particular use case but I even prefer it to Visual Studio.
It's not perfectly stable, but out of my experience (a bit dated now I admit) neither was Visual Studio. Eg. its infamous XAML designer is still haunting me in my dreams.
As far as bread and butter of an IDE goes, meaning navigation, refactoring etc. JetBrains' software, along with its derivatives (Android Studio is a fork), is superior to VS imho.
Then again it's a bit of apples vs. oranges here, VS is more heavy-weight and powerful, with its SQL integration and many many other features.
Basic refactorings, like rename, don't work correctly every time and had to literally discard the whole commit once after renaming to make sure I don't screw up the app logic.
Also, editor often has visual glitches where letters get corrupted and I have to reopen the file to get it back to normal. Not something I expect from such a long time maintained application.
And yes... F# support is useless for anything larger than few files of code.
Not only Java, but Swing. Eclipse with SWT just feels so much faster than Swing. I don't understand why people praise the speed of IntelliJ vs Eclipse; it's not even in the same ballpark.
Even recent NetBeans releases are just as responsive, in my experience, as recent Eclipse versions.
It's a huge pain point of any Java app, and it certainly causes a headache for users, but have you checked and tweaked your maximum heap size? Typically when I get even a small project going in IntelliJ with a couple productivity plugins installed I'll start hitting GC churn because the default Xmx value is so low, setting it to 1GB makes a huge difference.
Ironic but great news.
:-)
There have been contenders over the years, monodevelop, sharpdevelop, most recently the OmniSharp plugin with atom.io. This is the first time I can realistically see myself being free from VisualStudio in a professional context.
I've been a .NET dev for over 10 years as well, and for all it's faults, VS is one of the best dev environments I've ever worked in.
They both use electron, but Microsoft is baaarely using it for some UI pieces. That's really the only similarity between them.
Even with customization its a bit bloated, but you can totally avoid a SQL Server Express installation.
But, more to the point: how, aside from disk space, does any of that stuff affect you? It's not like it's persistently running. Don't use it, remove it from your toolbars, whatever--you don't have to see it, let alone use it. (It's for this reason that "bloat! bloat! bloat!" always rings so hollow.)
So is your complaint basically that it's just taking up too much hard drive space? I can't see how the other stuff (TFS Explorer Winforms/WPF designers) could possibly be getting in your way, especially since you don't ever have to open them.
Very curious about some aspects:
How do they deal with Nuget, do they have a powershell (Pash) console integrated?
Do they plan to integrate Roslyn ("code fixes" for exemple, there would be some overlapping in functionnaly with their code but roslyn will probably become the "standard" to share these things)?
Can't wait!
God I'm happy. I'm using IntelliJ with Scala, Java, Python and sometimes golang. I'm waiting for IntelliJ Rust and for the C# IDE. Promising languages needs promising tooling. Currently this will help C# to spread around.
Not having used Visual Studio enough to compare thoroughly, Xamarin's not bad. I use Eclipse when writing a parallel set of tests for Java, and I generally prefer Xamarin to Eclipse.
One minor complaint is that Xamarin quietly increased the system requirements from OS X 10.9 to 10.0, so I'm stuck with an old version.
The idea of using a C# IDE written in Java seems a bit weird, but I might give it a shot. I'd also consider hooking up Emacs to OmniSharp.
Plus even they admit to the slowness[0]. But regardless I bet a certain core demographic of Resharper users are never going to admit to a problems (slowness/lag/slow startup/RAM usage/memory leaks).
[0] https://confluence.jetbrains.com/pages/viewpage.action?pageI...
But Resharper is an absolute hog. For as slow as Visual Studio can be, it quadruples it in all categories. Just look in this thread, you can see dozens of people saying the same thing: Resharper has massive performance problems.
In principle, only a small proportion of features need to be actively consuming cycles. Most require no resources until invoked by the user.
Only a small proportion of those features are actively involved with drawing and so need to block the UI thread sometimes.
And only a small proportion of those features perform some essential drawing operation and so need to block the UI thread every frame.
So while a badly designed IDE with fewer features will outperform a badly designed IDE with many features, both will be trounced by a well-designed IDE with many features. It's the design that matters.
Now VS2015 can refactor and inspect code by itself pretty darn good.
I keep giving ReSharper chances because of all the praise I see, and I always leave disappointed. I'm starting to suspect JetBrains is hitting these threads singing their own praises :).
That said, I do love some of their other products like dotTrace, dotMemory, etc.
- ctrl+shift+l
- ctrl+\
- ctrl+r+r
- ctrl+shift+t
- alt+insert
Honestly, I'm done giving ReSharper chances. Of all the times I've tried it, I've yet to encounter any feature that justifies the wet blanket thrown over the IDE. I've tried on large projects and small projects, across multiple computers. I've followed JetBrains' recommendations for improving performance. The performance impact is noticeable, and the UX drives me nuts.
Like I said, I like some other products from JetBrains, but ReSharper just isn't for me. If it works for you, and the impact is negligible enough to not matter, thats great.
Maybe it's due to the visual studio plugin environment? I suppose trying Rider out will show....
Should add that this is a vanilla C# sln, there is no C++, no web projs etc. Just C#. That could matter.
I feel like regular windows VS has been bogged down with so many features + ReSharper that it's getting to be a challenge to keep it responsive. I've already disabled a lot of nice features and extensions to be able to type quickly. It's the worst feeling when intellisence freezes typing in c# for sub second or re-writes correctly written javascript or keep hanging when doing any sort of web code. I am hoping this will be a hybrid of light weight editor such as VS Code with heavier refactoring features of ReSharper therefore powerful yet very responsive. Can't wait to try it out
It's well-written, and along with several other vim plugins and a decent configuration, it's miles ahead of any IDE (except emacs, not starting an editor war here).
Read here, http://farazdagi.com/blog/2015/vim-as-golang-ide/
Colleagues tell me that neovim alleviates some of this, but during the time before that was stable I switched to emacs (specifically Spacemacs) with evil mode instead.
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...
"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. "
> 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.
You have IntelliJ, PyCharm, RubyMine, CLion, and now this. That's excluding plugins for other IDEs. All of their IDEs basically look and feel the same.
It seems like a ripe opportunity to make a single, extensible IDE that isn't quite so ugly as Eclipse but isn't quite so barebones as Atom that then just has different chunks of support for specific languages, potentially with individual licensing, etc.
Maybe that doesn't further their business goals but it sure would be nice to get the IntelliJ treatment whether I'm writing Java, Ruby, Python, C#, C++, etc.
To my knowledge, IntelliJ + plugin = any other JetBrains IDE. It's a solved problem already: if you want multi-language support, purchase IntelliJ. However, the plugins lag behind the standalone IDEs on features.
I haven't noticed that. If I want the latest features, I can often find an EAP with them.
The biggest issue with using IntelliJ IDEA instead of one of the IDEs is you're forced to see Java-ish project conventions in a few places, and some of the functions are accessed a bit differently or need to be configured on every project.
I happen to use it also when a project is partly written in Java, e.g. a JRuby app.
* http://www.jetbrains.org/pages/viewpage.action?pageId=983889 * https://github.com/JetBrains/intellij-community/tree/master/...
Current project I'm using PHP and Python for different parts and it is absolutely flawless, also if anyone hasn't used them Facets and Aspects are incredible!