Official support for Visual Studio Code


#21

JS interop for Kotlin/JS (navigation/completion between Kotlin and JS code) is simply a non-existing feature at this time.

You can code Kotlin on any device, using any IDE, anywhere, at any time, thanks to the fact that Kotlin source code is stored in plain text files and not in a proprietary binary format. You do have a language server for that. The language server happens to be not developed by JetBrains, but it doesn’t actually restrict you from being able to use it in any way.

In my book, “lock-in” means “you have to pay a single vendor or you can’t use the tool”. You seem to be defining it as “you have pay the vendor or live with maybe slightly worse code completion and no refactorings, until someone else supports these features in a free tool”. I don’t believe your definition to be justified.


#22

Really? It looks like I’m confusing IDEA Ultimate’s Typescript support with Kotlin support. https://www.jetbrains.com/help/idea/typescript-support.html

Maybe Kotlin is just too early to consider for production JS development. That’s fair. Sorry for my impatience :stuck_out_tongue:.

As for “Vendor lock in”. I think we can probably agree on Wikipedia’s definition:

Vendor lock-in, also known as proprietary lock-in or customer lock-in, makes a customer dependent on a vendor for products and services, unable to use another vendor without substantial switching costs.
https://en.wikipedia.org/wiki/Vendor_lock-in

If IDEA ends up being the only IDE that you can reliably develop Kotlin apps with, and switching to a 3rd party IDE involves implementing a risky or otherwise unsupported language server, then all Kotlin projects would be dependent on a vendor (JetBrains), unable to switch to another IDE without substantial risk and/or costs in time and development cost.

I know IDEA is a huge income stream for JB at the moment, and it’s a great product, but I think tying a language to any IDE is bad for the language, and bad for business.


#23

IntelliJ Ultimate may be the best experience for developing Kotlin (or any other language), but that does not make it JetBrain’s due diligence to provide that experience elsewhere. Even still, JetBrains does significantly reduce the risk of choosing their products by providing IntelliJ IDEA’s opensource platform and making the Kotlin language and tools opensource, as well as providing a plugin system to facilitate third-party support.

There is no tool or proprietary protocol of any kind stopping a third party from developing a language server or creating a better IDE for Kotlin. JetBrains does not restrict Kotlin in any way that would impede your use of or migration to other tools.

If IntelliJ became the only good IDE experience for Kotlin, then it would not be from any fault or lack of support from JetBrains but instead with a lack of interest in alternative tools for Kotlin. JetBrains has removed all of the blockers to creating tools or other IDE’s (even providing a completely opensource IDE platform).

EDIT: I think this is off topic. I’d love to see language server support for Kotlin. IMO talking about vender lock-in as the motivation for JetBrains to implement it won’t be effective.


#24

Before this discussion becomes repetitive (ok it kinda has already) I want to give my own opinion.

I can see where both sides come from. The truth is, right now Intellij is the only viable option for Kotlin development with an active development team behind it. There is a language server out there and it comes with a plugin for VSCode. I have however no idea about the quality of it.
IMO it is ok that the community is developing the language server. Would it be better if JetBrains would put resources into it? Probably, but I don’t think this is a good enough reason for JetBrains or any other company to invest in it yet.

I think the request for VSCode support comes from a wish to use Kotlin JS. I know that many JS developers use VSCode and therefor it’s understandable that they want to keep using VSCode. That makes me ask 2 questions?

  1. Is the current language server good enough? Ok, it’s not as good as Intellij but that’s not important. It will never be as good. Kotlin is build by the same developers that create Intellij (or at least same company). Getting the same level of support is impossible.
  2. Should JetBrains (or any other company interested in Kotlin/VSCode, that would be Google and Microsoft) start developing the language server as to improve VSCode-Kotlin support. Google is mostly interested in Kotlin for android so they are out. Microsoft (I think they are the ones mostly developing VSCode) is also probably not interested in developing it. They gain nothing by doing so. That leaves JetBrains.

So the question JetBrains has to ask themself is whether they think it’s worth it. They only have a limited number of resources and I guess even less resources they can use for no-profit open source development. A lot of this is spent on Kotlin directly. You could argue, that VSCode-Kotlin support would make more people switch to Kotlin which might bring them then to buy Intellij Ultimate later, because they see that it’s more feature rich. But this assumption rests on some facts I don’t see. I don’t have any data about how many people use Kotlin. I don’t know how many people might switch to Kotlin and then there is still the risk of people just sticking with VSCode.
Also there is this thing called opportunity cost. The resources spent developing a VSCode plugin could be spent improving Kotlin, so maybe that is a better way of getting more people to switch.

I don’t think Kotlin is vendor locked. As many people have pointed out JetBrains released all the tools necessary to use Kotlin without depending on them. The real reason why JetBrains is not working on VSCode IMO is that it’s just not a good idea for them to do so. I am sure they have and are constantly analyzing the market to see where they can spent their resources most effective and as far as I can tell right now it is by improving Kotlin itself.
Kotlin is becoming more and more suitable to target JS as there are more libraries being released bridging the gap between the Kotlin JVM and Kotlin JS ecosystem. The current focus is on mutliplatform and this will probably improve Kotlin far more than support for VSCode.

I still want to see support for VSCode, but I don’t think that it’s JetBrains job to deliver this support. Kotlin is open source and maybe the community can and should build the tools JetBrains can’t.


#25

typescript = vscode
javascript/nodejs = webstorm

i’m not too sure kotlin js can keep up with typescript especially with microsoft fully supporting typescript. i use typescript every day and vscode does what you typically need for projects deployed to the web. its also free and has more community support because of it. i also use android studio every day which is free and it is obvious there are some projects which would be too hard to manage with vscode.

supporting kotlin in vscode would only be logical for kotlin js which in my opinion will not survive against typescript. microsoft doesn’t always win but i think they have in terms of being the true superset of javascript.


#26

The kotlin-js have a different niche. It is not a “better JS” like type-script. It is different language with different paradigm (and much more universal in my opinion). In my opinion, the future of kotlin-js as well as kotlin-native lies mostly in the field of multi-platform builds which require fully fledged IDE.

For now, js and typescript users probably won’t go to kotlin just because they are good as they are. There are people who actually like JSX…


#27

The fact that VSCode is only intended to be used as a web development tool seems to be common misconception about VSC. Whilst it of course supports JS/TS out-of-the-box, it can be used as a lightweight, general-purpose IDE for just about any language.

And because it supports the language server protocol, the debug adapter protocol and TextMate grammars natively, we can (and do) build IDE-level support for every programming language whilst always keeping the “editor smartness” perfectly decoupled from the actual tool. This means, if you one day would decide to use Vim, Eclipse, Emacs or Atom instead, you will still get exactly the same great experience.

The main goal of the open-source Kotlin language server is to build a general-purpose IDE for Kotlin that is both tool-agnostic and provides deep support for the language and its backends (JVM/Android/JS/Native) with a main focus on JVM currently.


#28

I think most arguments have already been made. I’m currently using intellij community edition. It’s fine for java/kotlin development. I switched some years ago because IBM made a mess of eclipse and made it increasingly harder for me to do java development in it. The kotlin plugin is not very actively maintained and not in a usable enough state that I can open my gradle projects in eclipse and have a workable setup (i.e. stuff actually building).

The problem with the community edition is that it does not do kotlin native. IMHO Kotlin native is where the action is going to be in the near future. Except, if the only way to do it is by buying CLION, it’s not going to be an attractive move for a lot of people currently not using IDEA products that have plenty of other options for doing native development as well.

If CLION is the only way to get a decent developer experience for kotlin native, it’s going to have a hard time competing with languages that have more options

The fix is obvious and could benefit actually IDEA as well.

  • IDEA currently does not do anything with the language servers for different languages used in VS code and many other languages. Supporting that is probably a nice idea and could get them support for all sorts of stuff that people currently choose vs code for. Lets face, it all the JS kids are mostly ignoring Idea currently and there are a lot of nice new languages out there; most of which have some level of language server support. Wouldn’t it be nice if all of those worked in IDEA as well?
  • Kotlin as a mainstream full stack language cannot be an IDEA walled garden (as many argue above). Some minimal language server support is already available on github but not very actively maintained. Idea could put some effort on improving this and get some cheap success. Think of it as a gateway drug. It will allow people to start fiddling with kotlin code in vs code and then get an IDEA license when they figure out all those cool refactorings and other goodies are worth having. This is also great in projects where e.g. frontend developers are not necessarily very eager to fire up Intellij.

#29

I think they said that Intellij IDEA will support Kotlin Native with kotlins 1.3 release. I can’t find a link backing this up though.


#30

There was announcement from Breslav about it at kotlinconf keynote. It is not clear if it will support debugger, but IDEA will support K/N.


#31

@darksnake Given that Android Studio already supports C/C++ and is open source I would assume that native debugging support would be included for K/N in the community edition as well.


#32

BTW, there is decent debugging support for Kotlin in VSCode for both native (LLDB) and JVM.


#33

As a newby coming into this forum and looking with open eyes about the industry and this lack of cohesive direction from rivals, it seems to me that there’s need for underlying themes required to be collaborated for moving forward. All these many avenues to one destination that get convoluted by jibber jabber does not seem to me to be the best boast of resources, human and virtual. Imagine if languages actually worked across the board for the programmer programming. Kotlin is cross platform with JS, Python is multi-functional and text editors can handle many different languages. Is it now time for the leaders in the field to approach each other and NGO’s etc to lobby for code to be descriptive in everyday language terms?

It seems to me the technological know how is there to create an actual English version of a cross platform, ie Python boasts it’s easy to code with, Kotlin boasts it’s easily read. Where’s the industry headed in the next 5, 10, 20 years etc when the kernel of programming, as a learning tool as well as for development, seems to me to be misfiring in the potentiality of where coding can go. When there’s the will for taking coding in a respectful direction of what this millennium is, or can become. As Heidegger said: “People are thrown into this universe at birth and never take the time to take a step back and assess their environments.” Is it time for coders to bring an ultimate in coding facilities, or is it splintered productive values that are going to continue to drive the industry as a whole?