Earlier quoted context omitted.
One of the things that baffles me is the rust-Lang support. Rust-lang has an official dual-licensed MIT/Apache language server protocol implementation (RLS) under active development. In my view it’s currently a better experience than the custom IntelliJ one. Instead of collaborating though I see IntelliJ continuing on the path of their custom implementation. Every week RLS gives an update on their progress and so doe…
Besides Typescript, I haven't seen any language server do better in syntax completion and introspection better than the JetBrains equivalent. They probably don't want to work on it because 1. If they write their own they can make it work to exactly what they need, and 2. They would probably not leverage as much working on the OSS version as they'd lose by open sourcing and doing the bulk of the work on what makes the…
Reflections on IDEA vs VS Code
311–320 of 413 posts
Re: Reflections on IDEA vs VS Code
#312I've been programming with various IDEs and text editors for over 30 years. In my formative programming years (1990s) I relied heavily on Borland and Microsoft IDEs. In the 2000s it was a combination of Visual Studio (C/C++/C#) and various editors (PHP, HTML/CSS/JS). In the 2010s I started working across multiple languages: C#, Java, Python, Ruby, Elixir, Scala, JavaScript (also dabbled with Lisp, Go, and Rust); usin…
What do you think Visual Studio is lacking the most compared to JetBrains?
Re: Reflections on IDEA vs VS Code
#313Earlier quoted context omitted.
One of the things that baffles me is the rust-Lang support. Rust-lang has an official dual-licensed MIT/Apache language server protocol implementation (RLS) under active development. In my view it’s currently a better experience than the custom IntelliJ one. Instead of collaborating though I see IntelliJ continuing on the path of their custom implementation. Every week RLS gives an update on their progress and so doe…
> Instead of collaborating though I see IntelliJ continuing on the path of their custom implementation. I haven't checked in a while, but RLS was sub-par for a long time (feature- and latencywise). Tight integration has its benefits if you can afford it (and apparently they can). So I guess as soon as they can get the same properties from RLS as from their own implementation they'd switch. But if it meant having to r…
Re: Reflections on IDEA vs VS Code
#314Earlier quoted context omitted.
Part of it feels like it comes from a different development philosophy. Vscode is a "text editor" or a "code editor". Usually this means that it's fairly lightweight, supports every language under the sun, is highly configurable and extensible, but doesn't have a lot of very in-depth features, and also partially relies on third-party extensions for deeper functionality. Jetbrains on the other hand works on IDEs built…
I wonder if you have had the chance to use a Jetbrains IDE with a professional license. Doing so gives you access to more or less the content of all the other "flavors" as plugins (it's basically all IntelliJ underneath). For example, I've been using PyCharm for both our python backend _and_ our React + Typescript frontend, all in the same project window, with the same features regarding syntax, linting, refactoring,…
Re: Reflections on IDEA vs VS Code
#315In my opinion, one killer feature of VSCode is the ability to connect to WSL, remote server and Docker container. As someone mainly developing on WSL2, I use this feature everyday. I only use Idea when I need to use Java or Kotlin, because its language support is really good.
> or Kotlin, because its language support is really good. I've been using Kotlin for about a year now at work. I feel that "IDEA has good Kotlin support" isn't quite the right way to say it. It's become clear to me that the language is explicitly designed to be read and written in IDEA. Receivers (changing `this` per-scope) and `it` (to a lesser degree) are really poor syntax features to read in plaintext. But IDEA a…
This is a direction jetbrains has been going in for a while. Have a look at the failed https://www.jetbrains.com/mps/
Re: Reflections on IDEA vs VS Code
#316Earlier quoted context omitted.
> or Kotlin, because its language support is really good. I've been using Kotlin for about a year now at work. I feel that "IDEA has good Kotlin support" isn't quite the right way to say it. It's become clear to me that the language is explicitly designed to be read and written in IDEA. Receivers (changing `this` per-scope) and `it` (to a lesser degree) are really poor syntax features to read in plaintext. But IDEA a…
Or, less cynically, it's time we moved beyond designing languages for the lowest common denominator in editors. Sure I should be able to make tweaks in notepad, but I'm totally fine with that being the less happy path. This is a direction jetbrains has been going in for a while. Have a look at the failed https://www.jetbrains.com/mps/
The syntax features I mention only make any sense period within IDEA. But it's just a syntax feature. The value-add is very low! But it's pervasive in Kotlin. That creates the lock-in. In fact, pumping IDEA's seeming value is those features' biggest impact on the average Kotlin developer.
The majority of the valuable code I've written in my life has been Haskell. I do just use emacs, but I heavily use ghci (free and flexible) to aid my understanding.
But most of that Haskell was conceived while I was doing the dishes. So far, my Kotlin has been too tbh.
So IDEA isn't solving the actual critical path of software problem solving. Kotlin and IDEA are sugar for the masses. Nothing more. And I'm pretty sure they know what they're doing when they aren't drunk on their kool-aid.
Re: Reflections on IDEA vs VS Code
#317I used to think VS Code was going to be a threat to JetBrains IDEs considering how fast its iterative development was (thanks in large part to the productivity of JS + Web renderer) but its never seems to quite be able to reach the feature-set, polish & intelligence of JetBrains IDEs. Every IDE function appears to be better implemented in JetBrains, whether it's Code Analysis, Refactoring, Navigation, Running/Debuggi…
Simple stuff like code formatting and structure of files isn't well respected by vscoders .
IntelliJ got a bad wrap I guess because it all started with Java. I'm glad I had a short gig in Java to discover IntelliJ back then. I really think their software, although getting quite complex now, and the plugins can be a little sketch, is the best IDE out there .
Re: Reflections on IDEA vs VS Code
#318Earlier quoted context omitted.
Or, less cynically, it's time we moved beyond designing languages for the lowest common denominator in editors. Sure I should be able to make tweaks in notepad, but I'm totally fine with that being the less happy path. This is a direction jetbrains has been going in for a while. Have a look at the failed https://www.jetbrains.com/mps/
That's not exactly what I'm complaining about though. The syntax features I mention only make any sense period within IDEA. But it's just a syntax feature. The value-add is very low! But it's pervasive in Kotlin. That creates the lock-in. In fact, pumping IDEA's seeming value is those features' biggest impact on the average Kotlin developer. The majority of the valuable code I've written in my life has been Haskell.…
I think whether you care strongly about syntax is just personal preference. For example, I prefer Elixir to Erlang, TypeScript to JavaScript, and Kotlin to Java even though they could be/are implemented by transforming source code to source code.
On receiver scopes specifically, they make simple DSLs very easy to implement. Arguably needing a DSl is a symptom of design flaws, but Android has a lot of those so receiver scopes makes Android programming a lot nicer.
Edit: I would call this more than syntactic sugar:
interface MyScope {
fun frob()
}
fun foobar(content: MyScope.() -> Unit) {
let scope = MyScopeImpl()
scope.apply(content)
scope.getResultInternal()
}
fun user() {
foobar {
frob()
}
}Re: Reflections on IDEA vs VS Code
#319Earlier quoted context omitted.
IntelliJ user here. Both on Windows (personal) and Mac OS (work). I never understood why people use the terminals built into their IDE. Can you explain the use case for this? Genuine question. I do certain stuff via the command line and other stuff via the IDE. But switching between windows and just using the native tool for its own job seems the most natural to me. Is there some sort of awesome integration or someth…
One reason is to be able to full screen the IDE and use its built-in windowing/paneling for editing and terminal.
Is this windowing support somehow superior to using regular windowing and shortcuts? I ask because I personally find that getting used to a new set of shortcuts takes considerable time and creates frustration when you mix em up. I switched to IntelliJ from eclipse and wanted to learn IntelliJ native shortcuts instead of using eclipse settings. There's something to be said for everyone to 'speak the same language' when interacting and helping each other.
Anyhow back to windowing, I personally like to just have whatever application I use to be open full screen (minus any menu bars, docks etc). and having the same set of shortcuts to interact with any window (CMD-TAB or CMD-~ works the same on all of them - substitute CTRL-TAB for Windows) is awesome. Similarly I know some people use a tiling window manager and I would gather that it would even be beneficial if each internal window in IntelliJ could be detached and arranged by that window manager (sort of like Photoshop/Gimp does on Mac) using its own shortcuts.
An example in frustration for me is the debugger in Chrome. The times I've closed the Chrome tab because I wanted to close the open file (which looks like a tab to me) with CMD+TAB is staggering ;)
Caveat: I might be biased by seeing people awkwardly click around to find the right internal window and then the terminal or other tool is way too small to be useful if you ask me.
Another 'integration' into IDEs that I don't understand is the source control. They also in many cases rename functions which makes for awkward conversations. Though they seem to learn e.g. people have an easier time now to find the function in IntelliJ if I ask the to show me the 'git blame' as it's called "Annotate with git blame" now. Whether a current employer gives me Windows, Linux or Mac OS, I work on Java and have IntelliJ or do whatever else, using command line git and gitk and Kdiff3 will always look and behave the same.
Re: Reflections on IDEA vs VS Code
#320I almost use always vscode via it's ssh remote development feature. In my experience this thing is flawless and indistinguishable from local development. It's hardly believable how good they've made it. The idea vs. code is something i don't buy. Each has its use cases. Idea has great tools for android development, it's just tightly geared towards that, which is especially good for someone that is not a main android…
Just curious but what is the use case for needing to have your source code on a remote server while you’re editing it?
It can be a remote workstation you'd otherwise have to RDP into it. Sometimes RDP is annoying due to network conditions. Via vscode this works great, even at the worse case scenarios of connection drops. Mind you, it's not just source code editing, but debugging, local server management during iterative development. Experience is just like if it was local. Can have multiple projects (directories) opened at the time via a single vscode instance, or multiple instances of vscode running different projects (or modules of the same project) all connected to the same ssh target.
It can be a local container filled with tons of prerequisites/deps, like application server runtimes, support files, all that stuff that i don't necessary want (or need) to pollute my host just because of that one thing right now i will be working on. I just destroy that container when i don't need it, or do anything with it without fear of consequences on the main host. Another case would be a container that perfectly mimics final production environment with all its config.