22 ms·
VSCode is growing which is concerning, not from a competitive point of view but actually from the point of view that there is clearly a lack of understanding of
by kitd 6y ago
VSCode is growing which is concerning, not from a competitive point of view but actually from the point of view that there is clearly a lack of understanding of what an IDE gives you. VSCode is a code editor with some features that you’d find in an IDE, and extensions that can provide additional functionality – so if people are turning to VSCode for developing it may imply that developers don’t know what a fully-featured IDE can give them. In the web space it is understandable to use an editor as web developers are typically working with dynamic languages, and often use other tools like browser plugins to give them what they need.. But in Java, especially professional Java, you really get a lot out of a good tool that has integration with the application server and you can really use the analysis and refactoring and everything.
IME a lot of developers don't like their IDE heavily coupled to backend servers and environments, but actually prefer the "code editor + useful features" approach. It makes combining with CI/CD a lot simpler for one, since the activities run on a project can simply be the same as those run on the pipeline. A quick "mvn install" is often enough for many/most modules. Many devs only really want advanced editing + syntax highlighting + language server.
- rapsey 6y agoJava people always tout their advanced IDEs as a major benefit of working in Java. But the thing is that Java is a language that is unusable without a strong IDE and that is not an advantage.
- Traubenfuchs 6y ago"Needing an IDE" certainly isn't an advantage, but framing it as a disadvantage is luddite thinking.
- rapsey 6y agoOne should always strive to use the simplest tool that gets the job done. Java comes with an insane stack by default. Not only must you understand all those parts (the vm and IDE), you must have a strong enough computer to work with it. Java developers always need the beefiest most expensive machines to work.
- brazzy 6y agoBullshit. I can develop Java just fine using a desktop PC I built cheaply in 2010. And yes, I use IntelliJ for that.
- matthewmacleod 6y agoNo, I don’t think this is a supportable assertion. The “simplest tool that gets the job done” is obviously a ridiculous over-simplification, since even Notepad will allow you to write Java apps. The choice between different development tools is down to the specific environment, developer requirements, and preferences. Also it’s not 2000. A Java IDE will work fine on any computer you can buy.
- Traubenfuchs 6y agoWhat languages do you write and which tools do you use? How much assistance are you used to or do you consider worthwhile? Where do you draw the line?
- selfhoster11 6y agoIDEs can help to learn programming and can facilitate exploration. Step-by-step debugging and refactoring are a crapshoot in less advanced editors, but both are powerful learning aids if they are easy to access - which they are in IDEs. Both IntelliJ and Eclipse are very easy to explore - just point-and-click, no need to set anything up if your language is well supported. Experienced devs also benefit, since IDEs are made to manage and navigate complexity that will inevitably show up in any mature codebase. Your runtime and tooling will always be a dependency, and you will always have to learn enough to troubleshoot it regardless of the language. PHP, JavaScript, Ruby and Python are no different to Java - the SDK must also be installed and kept upgraded, you still have to fix your application to work with a newer runtime when the language changes or when fixes are backwards-incompatible, and your SDK version might still clash. Performance is not an issue in practice. I only ever noticed IntelliJ being slow on a machine that was too slow to run a web browser, and I don't think that such machines would be very common because people would just get rid of them. Resource use has ballooned over the past few years due to the rise of Electron, so your machine already needs to be powerful enough to run Discord, Slack, Postman, or whatever other applications you wish to run in parallel. Adding a JVM alongside that is not much of an ask, given that IntelliJ consumes around 500 MB with two fairly sizable projects open.
- brazzy 6y agoConversely I'd say that a language that doesn't enable an IDE to provide some of the features Java does (first and foremost: call graphs) is unusable, period.
- anonymoushn 6y agoJava developers seem to habitually use metaprogramming facilities that make it impossible to determine what code is calling what other code by hand, let alone using single command in an IDE. When not doing this, they are usually creating interfaces with a dozen implementations that wrap and delegate to one another. So I would very much like to know what calls what, and this is a reason I cannot use Java.
- The_Colonel 6y ago> Java developers seem to habitually use metaprogramming facilities make it impossible to determine what code is calling what other code by hand I assume you mean reflection - this would be very untypical for normal business logic code and would get smashed very quickly in any code review. It's also far from nice and easy code. You can program "dynamically" in Java, but it gets ugly quickly which in itself discourages you from doing that habitually. Reflection is used mostly in frameworks only. > When not doing this, they are usually creating interfaces with a dozen implementations that wrap and delegate to one another. Sure, Java devs have so much time that they don't implement the business logic once, they create dozen different implementations just for the fun of it. Again, this situation (one interface, many implementations) happens mostly in frameworks and rarely in business code. If you want to hate on Java, use some real arguments ...
- anonymoushn 6y agoThe main metaprogramming facility in Java is annotations. Some annotations work like higher-order functions, except that my advanced Java IDE is unable to find what function is wrapping the annotated function. Some other annotations work more like macros, but there's not a convenient way to evaluate the macro to have a look at the code it would generate. I previously asked in another forum about this sort of thing and heard that I should read the docs. I suppose when working at a big company ships internal libraries that expose annotations and use inheritance extensively, but do not have docs, I should just pretend that I am not actually in such a situation, or something.
- tannhaeuser 6y agoI don't think Java the language is particularly unusable without an IDE compared to eg ad-hoc approaches extending weakly-typed languages with type annotations such as TypeScript and Python (while not 100% relevant, I even refactored maven+ant driven builds into Makefiles calling plain javac *.java as recently as a couple months ago, using vim as code editor).
- indigo747 6y agoJava IDEs are so thorough that I learned Java from NetBeans autocomplete rather than any tutorial. Which is not to say that my understanding of Java extends to working professionally in it; I'm a functional programmer and broadly unfamiliar with modern Java's specific patterns.
- dmitriid 6y agoJava is perfectly usable without an IDE. Just like any other language is usable without one. The question is: why? Why would you not use an IDE? Looking at refactoring capabilities alone you'd want those for any language [1] And on the fly actionable code analysis [2]? Why would you not want that for a programming language? [1] https://www.jetbrains.com/help/idea/refactoring-source-code.html https://www.jetbrains.com/help/idea/refactoring-source-code.... [2] https://www.jetbrains.com/help/idea/list-of-java-inspections.html https://www.jetbrains.com/help/idea/list-of-java-inspections...
- discreteevent 6y agoUnusable? I wrote java with a text editor for three years and got a lot done. I wrote C++ for about 10 years with a text editor (It was called an IDE but it was a text editor with a debugger). But having a language that enables the functions of an IDE is a big advantage. A good text editor that manipulates characters efficiently is absolutely valid. But an IDE that treats code as an AST gives you a lot. After all when you think of code you think of it in trees/graphs: You go to fix a bug, one of the first things you will probably ask is "what calls this code?". Being able to do that, right up to the top of the call hierarchy, instantly, without having to run the system is a huge advantage. An IDE gives you the tools to reverse engineer the design (or lack of it) from the code.
- nicoburns 6y ago> You go to fix a bug, one of the first things you will probably ask is "what calls this code?". Being able to do that, right up to the top of the call hierarchy, instantly, without having to run the system is a huge advantage. This is indeed useful, and languages with semantic IDE tools are indeed better at it. But this works for me in JavaScript 90% of the time with just text-based (and I think it probably tracks imports) tooling.
- The_Colonel 6y ago> But the thing is that Java is a language that is unusable without a strong IDE and that is not an advantage. How does Java need strong IDE more than other languages? The only thing I can think of is the (long) import handling, but that's hardly a "strong" IDE feature, more like bare bones IDE feature.
- hibbelig 6y agoI guess it is partly the design of the application: Enterprise Java apps often contain lots and lots of classes and have deep inheritance trees. So if you have a piece of code that says "foo.save(a, b);", then which of the 132 different "save" methods that your codebase contains is being called here? And because Java is statically typed, this enables you to do things like changing the name of the "save" method in 83 of the different 132 instance, namely the method from class "Widget" and all its subclasses. And, of course, update the right callers. If you are doing Python or JavaScript, you often don't have much of a clue what the type of "foo" is in that "foo.save(a, b);" call, and so you don't know which of the "save" methods are being called. And you know that when creating your app, so you stay clear of class hierarchies that require this IDE functionality to untangle :-)
- The_Colonel 6y ago> I guess it is partly the design of the application: Enterprise Java apps often contain lots and lots of classes and have deep inheritance trees. So if you have a piece of code that says "foo.save(a, b);", then which of the 132 different "save" methods that your codebase contains is being called here? Deep inheritance trees came out of fashion (everywhere, not just in Java) long time ago. Inexperienced developers can misuse inheritance in Python just like in Java. > And because Java is statically typed, this enables you to do things like changing the name of the "save" method in 83 of the different 132 instance, namely the method from class "Widget" and all its subclasses. And, of course, update the right callers. As opposed to Python or JS where "we don't know for sure so it's gonna be safer to not refactor". > And you know that when creating your app, so you stay clear of class hierarchies that require this IDE functionality to untangle :-) That's an extremely optimistic view.
- bitwize 6y agoBull roar. I've only ever used Emacs and command-line tools to work with Java, whether on the job or writing my Android game.
- vips7L 6y agoThis is nonsense. I write multimodule Java in VSCode/vim every day.
- apta 6y agoAny non-trivial project will require an IDE to manage complexity regardless of language. It's tautological.
- hactually 6y agoi disagree. Look at the linux kernel. Throw something like eclipse/Jetbrains at it and the whole thing has an aneurysm . If your language requires an IDE, you've already failed
- drej 6y agoWhat if I understand what an IDE gives me (especially one from JetBrains) and _that's why_ I'm choosing VSCode/Sublime/vim? (Not for Java.)
- discreteevent 6y agoIn the comment you replied to, which qoutes the article: > In the web space it is understandable to use an editor as web developers are typically working with dynamic languages > But in Java, especially professional Java, you really get a lot out of a good tool
- _ZeD_ 6y agoumm... while I doubt there could be anyone in this scenario.. What are the reasons that make you intentionally "lose" the advantages of the IDEs? What do you have in return?
- dgellow 6y agoI can use the tool I’m already familiar with, that also supports other languages, that has a huge number of extensions and configuration settings, etc. I personally see this as more important than an IDE, that’s why I for example use VSCode instead of Visual Studio (on windows).
- dunefox 6y agoIntelliJ is slow on my PC and unusable on my Laptop. VS Code is fine. Also, I don't use Java.
- drej 6y agoPersonally, I've tried various IDEs for Python and Go and found them to be too clunky and bloated for comfortable use.
- pizza234 6y agoWhile they're very obviously in the "competition-induced" panic, there is still a point. The disconnected VSC model - main company in charge of the editor, and third parties in charge of certain language plugin[s] - puts some languages' support at risk of being insufficiently developed. I "only really want advanced editing + syntax highlighting + language server", and use VSC, but, while its support for "statically typed languge #1" is ok, the support for "dynamic language #2" is atrocious, to the point of being unusable (poor "go to definition", editor aggressively misaligning lines of code, etc.). I'm not sure it will ever reach sufficient support. On an IDE, this doesn't happen, because the developing company must, within a certain qualititative extent, take care of all the functionalities.
- kitd 6y agoYes, that is always the risk with nuturing an OSS community to provide the less-than-core functionality. OTOH: 1. it encourages the main company to simplify and/or extend the plugin API to make writing plugins v simple, or even possible in the first place. 2. it gives a smoother path for the inclusion of new trending technologies into the IDE. 3. it encourages devs to offer improvements to features that aren't high priority for the large IDE company. For the latter, I'm thinking of Lombok support which, via a plugin, is much better in VSCode than it is in either Intellij or Eclipse.
- int_19h 6y agoI'm not sure what your definition of an IDE is, but the notion of a core platform with language-specific extensions on top long predates VSCode. Visual Studio proper works in exactly the same way, for one; and then there's Eclipse, NetBeans etc. If anything, this has been the conventional way to do IDEs since early 00s or so.
- pjmlp 6y agoEven earlier, Turbo Pascal 6 came with the Turbo Vision framework which was used to create the IDE as well. Studying how the IDE made use of Turbo Vision was a good introduction to OOP ideas.
- 6y ago
- pjmlp 6y agoThe same ones that rather spend one day doing an UI in code than 1h in a RAD GUI tool.
- kitd 6y agoFor initial scaffolding, or long-term maintenance? Because I'd pick the RAD GUI for the former and code for the latter. You really don't want to add ephemeral designer tools to your list of hard project dependencies.
- pjmlp 6y agoBoth. The Delphi, C++ Builder, Forms/WPF/UWP, Swing/JavaFX soul in me begs to differ. In fact that is the biggest pain in Web projects to this day and I can hardly wait for stuff like Uno and Blazor to bring "Flash" back, if Web Components don't do it first.
- monsieurbanana 6y agoAfter reading your comment I've spent a good 10 minutes trying to find out what are RAD tools (seems to stand for Rapid Application Development tools). Still no idea. Seems to be a synonym of IDE, but not really?
- badsectoracula 6y agoThink Visual Basic, Lazarus, Delphi, C++ Builder, etc. RAD IDE is essentially an IDE which has deep knowledge about the language and allows for visual design of the GUI - among others. For example in Lazarus, Delphi and C++ Builder when you edit components in the visual editors (be it the form editor for making a GUI or a data module editor for non-visual components - e.g. editing the routing for HTTP requests in an fcl-web application) you are actually editing live objects which are serialized as part of your application when you save the project (contrast this to something like Qt Designer, Gtk's GLADE or wxFormBuilder for wxWidgets, which only create stand-in controls that pretend to be what you are designing). The IDE exposes the properties and events of those components by using their RTTI information of the object instances directly (instead of hardcoded knowledge of using some configuration file) and it has full knowledge of the source code you are editing so that it can automatically create event handlers, functions, variable declarations, etc for you (no need for special comments or whatever) as you edit the components and the code (this isn't just for component editing btw, in Lazarus you can do something like start writing a `for I:=0 to 100 do` loop, then move the cursor to the `I:=` part, press a key and have the IDE deduce the type and declare the `I` variable if it is missing). One way to think of it is like if you are making a game in Unreal or Unity where you also work with live objects, but instead of those objects being levels, pick up items and monsters, they are forms, modules and buttons for your application.
- Pandabob 6y agoThe last time I used a Java IDE was in university in 2012, and I've never really touched it since. I've been recently using VSCode with TypeScript (and Prettier/ESLint). TS is pretty neatly integrated with VSCode, and I've been wondering how similar the VSCode + TS combo is to writing Java on an IDE like IntelliJ?
- shawabawa3 6y agowow, literally "Is it us who are out of touch? No, it's the developers who are wrong"
- flohofwoe 6y agoInteresting, I'm not a Java dev (mostly C, C++ and Python) but I turned to VSCode exactly because it is more lightweight than Visual Studio. The many little pauses and delays in "Visual Studio proper" drive me nuts, and most of the features in VStudio each only serve a tiny section of users, while making the IDE slow for everyone (and TBH when I tried the various Jetbrains IDEs, they are even worse in terms of laggy UI than VStudio). VSCode with its flexible plugin system got this right. Even though it isn't a speed wonder itself, it's still better on average than most "heavy weight IDEs" I've seen).
- Kelteseth 6y agoHave you ever tried QtCreator? I tried CLion and VS but all feel slower in my CMake based c++ projects.
- flohofwoe 6y agoI did! Mainly on Linux because QtCreator is one of the very few Linux IDEs where the debugger worked out of the box (now I switched to VSCode too there, mainly because it allows the same development environment across Windows, Linux and Mac). True, QtCreator performance is fine. But I found the whole toolchain integration (Kits?) and cmake integration a bit weird if I remember right.
- secondcoming 6y agoI use it every day, but onyl for it's CMake support, syntax highlighting and 'go to definiton' etc functionality. I don't use it for building though, that's still done on the command line.
- hannofcart 6y agoDon't do C++ now, but when I used to QtCreator was such a joy to work with. The fact that it played so nicely with CMake was an added bonus.
- simion314 6y agoI always see my colleagues mistakes(or code smells) when I open their code in my Intellij and we work with JS/PHP.
- oaiey 6y ago> Analysis and Refactoring Seriously? They should have a look into what VS Code (and friends) can actually do! Once you outsource your refactoring machinery into something like TypeScript or Roslyn (C# Compiler) you suddenly have these features available everywhere. And in that regards, the should also just look what their Resharper Product is doing in Visual Studio and JetBrains Rider. I think the only lack in editors is visualizations. I think that will be soon a theme in VS Code ;)
- tasogare 6y agoI’m a big user of C# and no, despite the language and the editor being developed by Microsoft, the IDE support in VSCode is poor to say the least. For one it doesn’t even support solutions with multiple projects which requires to open another instance of the editor for debugging. Then there is the constant red highlighting that appears in valid files. Then the installation of Ionide tools in C# project... the list goes on, with extensions not working properly yet being required for basic things like XML formatting, the annoying default settings that require Googling because of their naming, the poor performance because it’s an Electron app, etc. VSCode, when it works, gives one a glimpse of what you be a good IDE (Visual Studio proper, JB Rider), yet is light-years away of being one.
- oaiey 6y agoWell it is still developed. It will get better over the years to come. I was addressing the c# refactoring s. They were delivered with roslyn to VS and exposed to VS Code via OmniSharp. The gap of C# refactoring in the VS 2008/2010 era is due to the Roslyn project blocking all other efforts. So C# refactoring are only realized via Roslyn Analyzers and with that available to VS Code. And VS Code is executing them nicely. There is no gap.
- achandlerwhite 6y agoIf you use the "duplicate workspace" command on an open solution with multiple projects then you can debug separately projects simultaneously.
- vbezhenar 6y agoIt is not heavily coupled to backend servers and environments. Disable all plugins and it'll be pure Java IDE. That's what I'm doing: I'm very careful about Idea plugins. For example I don't use any Spring plugins even when I'm developing Spring projects. Spring without XML is just Java code and I don't need anything else to be productive.
- tomp 6y agoIndeed. I hate it when my code runs in an IDE and not from command line, or vice versa. Maven, custom JAVA_HOME and JVM arguments, conda environments, ... are a pain to integrate across different environments, especially since every IDE does its own thing.
- nullsense 6y agoPretty easy to use and IDE to dev stuff and just run it on the command line. I used to do that all the time. You aren't forced to actually run the software through the IDE.
- tomp 6y agoThe IDE still needs to be able to resolve all the libraries / packages, so you do need to configure it appropriately.
- nullsense 6y agoDepends. IDE is usually just invoking the build tool chain. That usually can be invoked from CLI too. Like for Java the gradle or maven stuff or .NET the MSBuild stuff. I sort of mix and match depending on what works best for a given project.
- logicOnly 6y agoNot to mention this is coming from jet brains who's goal is to sell an IDE.
- djlewald 6y agoWhat an absolutely tone deaf thing to say. "It can't be our product that's using out dated philosophies. It's the users that don't know how to use it properly"
- realusername 6y agoYeah, they just don't get it, they have stayed for so long in the enterprise java world that they can't comprehend that everybody else moved on from those bloated IDEs. On my case if I had a choice even between Notepad++ and IntelliJ (to pick an extreme example), I would still use Notepad++. VScode is a very nice middle ground where the defaults make sense and you can get powerful extensions for everything else you want, there's a reason it's so popular.
- rob74 6y agoAm I the only one who finds it a little bit ironic to call IntelliJ bloated, and then recommend VS Code, which may not be that "bloated" feature-wise, but is based on a browser engine, so also not really light on resources? A VS Code-like product using the Sublime Text engine would be the ideal development tool for me. As long as that's not available, I'm using PHPStorm at work (my company is paying for it) and VS Code for my private projects in Go - still haven't tried out Goland, IntelliJ's Go IDE, but so far I'm happy with VS Code.
- realusername 6y agoI'm well aware that VSCode as a tech product is also full of bloat internally, the difference is that this bloat is mostly hidden to the user. What they have going for them is that it's a well designed text editor with sensible defaults in the first place, it "just works" and it's simple, that's also why it's so popular. You can add as much (or as little) as you want on top of it.
- Polylactic_acid 6y agoThe UI is also a lot cleaner. There are only a couple of icons and each of them does something I use regularly. Jetbrains products have 300 icons and I use about 5 of them. Once I worked out I could do everything I use rubymine for in vscode with plugins I stopped paying that license fee.
- throw_m239339 6y agoLanguages have evolved. Now developers EXPECT languages to come with a FREE suit of command line tools for linting, static analysis, formatting, package management and what not. FROM there ANY text editor should be able to take advantage of all these command line tools to provide a good developer experience. The time of bloated IDEs is over. And you're right, I need to be able to run all CI tools the same I do on my development machine and the CI server. Obviously, WYSIWYG and other graphical builders will always need a specific IDE in order to do RAD, but these are special cases, not the norm anymore. Nothing prevent jetbrains from selling CLI tools that perform all the tasks in their IDE, especially when many of their IDE do rely on open source CLI tools at first place. But If I'm developing say an Android app and I'm not the design integrator, I shouldn't have to fire an slow and heavy IDE just to write a bunch of Java classes. I have my maven manifest and it should be all I need to compile a project.
- rfoo 6y ago> Now developers EXPECT languages to come with a FREE suit of command line tools for linting, static analysis, formatting, package management and what not. The key selling point of Intellij IDEA is they come with semantic refactoring tools, for something like "move this method into its parent class" or "extract the selected methods to a new interface", which is still rarely seen in the wild, and didn't get mentioned at all in your list, but it saves real time.
- mumblemumble 6y agoIt saves real time if you write your code the way IntelliJ wants you to write your code. If you structure things differently - say, by steering clear of subclass inheritance, or keeping interfaces small, or not using the Bean pattern, then you can pretty quickly discover that there aren't all that many IDE refactorings that you actually use. At this point, most the refactorings and code actions that I'm actually using exist in vscode as well; IntelliJ's main advantage is that I'm (somewhat) more able to use them efficiently without taking my hands off the keyboard.
- 6y ago
- tasubotadas 6y agoI share the sentiment with IntelliJ and I'll never understand the crackheads who use VSCode/Sublime/Atom for strongly-typed languages instead of a proper IDE like Netbeans/IntelliJ/VS. It's absolute pain to write Rust/Java/C++ in any of those. No safe refactorings (moving classes? good luck), completely random code completion, 0 awares of available libs/SDKs, and so on. It would seem that most of the developers have no clue what's the difference between a lightweight editor and a full-featured IDE. I think it's just Dunning–Kruger effect on a scale. I understand that I'll be voted down into oblivion but it really rubs me the wrong way when people confuse some kind of server/application server (???) integrations with an IDE that can offer sophisticated refactorings, a proper type inference, and can infer which functions from which lib/SDK I am using.
- golergka 6y ago> No safe refactorings (moving classes? good luck), completely random code completion, 0 awares of available libs/SDKs, and so on. Seems like you haven't used VSCode in a long time. It is my primary everyday editor for Typescript, and it has all of those things you listed: I can move a class to a separate file in one click, code completion always follows type system, it is aware of all packages that I have in package.json and offers to import them, and so on. The IDE/editor distinction really doesn't have as much meaning as it once did.
- fendy3002 6y agoI use vscode daily and recommended it, but to be fair, it's heavily optimized for typescript. The feature may be not available for other language such as java.
- golergka 6y agoThis is true, but it demonstrates that VSCode extension model supports this, and nothing stops extension developers from attaining the same level in any other language. Hence my point about IDE/editor distinction.
- swiley 6y agoNo one liked eclipse and all the cool kids are using vim and vscode. Personally I really like the freedom to switch editors.
- MrBuddyCasino 6y ago> IME a lot of developers don't like their IDE heavily coupled to backend servers and environments I think the issue is more how snappy/bloated they are. I don't mind all the integrated features, but IntelliJ has gotten slower and slower over the years, and its starting to get annoying, especially on anemic laptops.
- stult 6y ago>IME a lot of developers don't like their IDE heavily coupled to backend servers and environments, but actually prefer the "code editor + useful features" approach Personally, I use VSCode for generic text editing, scripting, taking markdown notes, general purpose review/browsing repos (e.g., opening up a project to review a couple of python classes), etc. It's nice for switching between a variety of languages and use cases. I like the integrated terminal, the directory search feature (so much less clunky than the equivalent Mac Jetbrains IDEs' features), the multiselect text editing experience, the ease of configuration, and the general responsiveness. But if I need to do a deep dive on a language, I generally switch to a fully featured IDE. For example, if I need to refactor 10000 lines of C#, I'm definitely going to switch to Rider or VS with Resharper where the built-in refactoring, debugging, and static analysis tools are so much more powerful. So really I see them as different tools for different use cases. VS Code is nice for my fluffier, tech lead work, where I tend to bounce around between fifty disparate tasks in fifty different contexts. Rider, Pycharm, CLion, etc. are more useful for me when I have to fall back into doing deep dive technical work personally.
- GordonS 6y agoThis is pretty much exactly how I use VS Code and Rider too. I find VS Code great as a general text editor with syntax highlighting, and for searching files, writing markdown etc. But for real work, I want a real IDE (Rider) with a debugger, refactoring utils, cloud tooling, database tooling etc.
- cmiles74 6y agoI do a lot of work with Emacs and it's my preferred text editor. I think of myself as productive with it and I do a lot within Emacs; for instance using Magit to work with Git. Typically I'm working with Python or Clojure. That said, when I need to work on a Java or C# project I put Emacs aside and reach for my preferred IDE. There is overlap between a text editor and an IDE; certainly I can _make_ a text editor do _most_ of what I get from an IDE but is it really worth the effort? In my opinion, IntelliJ is on point here in some cases; I suspect developers coming from a background in front-end or a language like Python or Ruby are very comfortable with their text editor and tend to use these same tools for work with Java or C#. In this case it is likely that they are to some degree unaware of the benefits of a more integrated IDE. In terms of CI integration, in my experience this has never been a problem (I have never really used Eclipse). My Java IDE uses the Maven configuration to manage the project and the CI process calls Maven from the command line. In the C# environment, the command line tools works in a similar way.
- wry_discontent 6y agoThis is the place I'm in too. In projects more under my own control, I use Emacs for JS and Clojure. At work, I deal with JS, Python, and Java. I don't really care to spend the effort to configure Emacs to handle all the oddities of a super old codebase reliably. I just grab vscode or intellij. They're fine.
- aschatten 6y agoI am the same way. I use emacs for git, org notes, small adhoc scripts, but for actual project work – IDE, hand down. I have converted a long time emacs user to try PyCharm once. He was skeptical for a long time, then he switched.
- sigzero 6y agoI tried to use VSCode for Java. Horrible experience.
- cjohnson318 6y agoI use VSCode instead of IntelliJ products because it's lighter-weight and I don't have to learn about or fuss with settings. What am I missing out on? Can anyone give me a good blog or video? Not knowing what I'm missing, I'm willing to invest about two hours.
- szatkus 6y agoI was surprised how many things for Java just works in VSCode. Just few more features and I can see people leaving IntelliJ for that.
- carldaddy 6y agoVSCode is 100% free. IntelliJ has a free and enterprise license. I could download the free one, but I feel like I'm missing out on features and would rather go with the option that has everything free. Then I don't have to worry about it. Even though it may not be as good.
- brettnak 6y agoThe author clearly should have gone into the specific use-cases he was talking about. An IDE _is_ nothing more than a text editor with advanced features. There's a huge continuum from a basic text-editor like notepad to a full fledged IDE. I'd particularly like to see a use-case laid out where something like VSCode + Extensions wasn't actually enough. I've been using IntelliJ nearly every day for the past 4 years and I still don't understand how it is any different from a text editor + extensions. IntelliJ is even architected similarly with so many different "plugins" adding full fledged language support for other langages. Goland, Pycharm, etc, are basically extensions for the intellij text editor.
- estebank 6y agoA transcript of a talk by Charles Petzold that I think is relevant to the conversation in the replies to this comment: "Does Visual Studio Rot the Mind? Ruminations on the Psychology and Aesthetics of Coding"[1]. [1]: https://charlespetzold.com/etc/DoesVisualStudioRotTheMind.html https://charlespetzold.com/etc/DoesVisualStudioRotTheMind.ht...
- cmckn 6y ago100%, I'd much rather use the command line if I need to work with Docker, or a database, or the cloud. IDE integrations for these things are limited and have just never worked with real-world projects. I slept on debuggers for too long though; Java debuggers are brilliant. I still use Netbeans for Java. It's simply the best.
- mattlondon 6y agoI ditched intellij ultimate in favour of vscode. I personally saw no value in intellij compared to what vscode offers. VScode has won both the intellij Vs eclipse AND vi Vs Emacs holy wars for me. Nothing else matters anymore (unless you need to SSH directly into a box and make edits there of course, for which we have vi) - it really is an amazing editor in my view. I can't see the need for an IDE like intellij at all when you have an "editor" as capable as vscode.
- igneo676 6y agoThis is why it's worth contributing to your language's LSP server[0] and why I encourage every Kotlin dev I see to contribute to Kotlin's[1]. I personally find IDEs are way too complex and cluttered for my personal tastes. To boot, a code editor allows for unified workflows across a broad swathe of languages in ways that IDEs simply can't replicate. It's a pity Jetbrains has long held a dismissive attitude[2] toward developers that don't want a full blown IDE, but that's what you get when there are financial incentives attached. [0]: https://microsoft.github.io/language-server-protocol/ https://microsoft.github.io/language-server-protocol/ [1]: https://github.com/fwcd/kotlin-language-server https://github.com/fwcd/kotlin-language-server [2]: https://discuss.kotlinlang.org/t/any-plan-for-supporting-language-server-protocol/2471/5 https://discuss.kotlinlang.org/t/any-plan-for-supporting-lan...
- jbjohns 6y ago>you really get a lot out of a good tool that has integration with the application server I like the really powerful code completion and refactoring tools a good IDE brings to the table but this one strikes me as extremely odd. In 2020, I would want all IDEs to remove this kind of functionality because I don't want to deploy from my IDE ever and I don't want teams that work with/for me to ever use it either. I want to push my git commit and have everything building in my CI/CD pipeline.
- p1necone 6y agoThis is a pretty weird take. I've always used two tools - one full featured IDE for whatever project I'm working on, and a more lightweight plugin enabled text editor for SQL, writing notes, markdown etc etc. VS Code has become my goto for the latter, but I can absolutely see myself using it as the main editor for a project. About the only IDE I really can't tear myself away from is IntelliJ for Java - everything else is just ok.