They have been pretty firm on wanting keeping it closed for the purpose of giving an edge to the Jetbrain IDE's
It was extremely shortsighted to think that a single language would sway people to IntelliJ instead of just limiting Kotlin’s growth.
I assume its will be a polyglot world for some time to come, and devs that decide to retool into another stack could use anything else, leaving Kotlin behind.
It's kinda like describing Apple as short sighted for not giving away the source code to all their frameworks. Doing so would maximise usage but that's not their goal.
It brings mindshare and brand value. And it brings direct revenue in business contracts (I hope they get a hefty fee for supporting Google with Android Studio).
It is also investment in the future. How many student curriculums, courses, tutorials use IntelliJ over VSCode? And how many of them convert to IntelliJ later? IntelliJ is always seen as that heavy industrial combiner for professional workers compared to nimble and hype VSCode.
> And sure it brings people to IntelliJ, more importantly, it keeps them there.
I might be a vocal minority here, but it keeps nothing but resentment in me.
> It's kinda like describing Apple as short sighted for not giving away the source code to all their frameworks. Doing so would maximise usage but that's not their goal.
Apple is trillion dollar hardware company with completely locked down ecosystem with millions (billion?) of people using their products. They can do whatever the f*k they want and developers will dance to their tune.
The comparison you’re looking for is Borland. Delphi was once far more popular than Kotlin right now, and look how it ended up.
Google are members of the Kotlin Foundation. I guess as part of that they contribute towards the cost of the yearly conference. They've also generously open sourced some of the frameworks they built for Android. But go review the commit logs for IntelliJ or Kotlin and you'll see they're nearly all JB employees.
As for the rest, words have meaning. "Brand value" means people are willing to pay for things associated with that brand. "Investment" means something that can potentially yield ROI. Something given away for free with no supporting business model isn't an investment, it's charity.
The internet is littered with bitrotting projects that were treated as charity and then abandoned when the authors got tired of it. Apache fills up with more every year. The right comparison is thus not with Delphi (which made Borland a ton of money and is still on sale today via Embarcadero), but with NetBeans and Eclipse, both codebases abandoned by their former sponsors when the novelty value of having lots of users wore off.
> I might be a vocal minority here, but it keeps nothing but resentment in me.
OK, so don't use it then. Kotlin, at least in the JVM or JS variants, isn't the sort of language that requires a huge level of buy-in. I started using it before Kotlin 1.0 even came out, used it for the next decade after that, and was happy with it at every point. Back in those days the community was tiny but that doesn't matter due to its excellent JVM interop. At no point did I ever have any fear other than JetBrains not making enough money with it and defunding it. Fortunately, being a smart company, they haven't fallen into that trap.
https://www.tiobe.com/tiobe-index/programminglanguages_defin...
This probably means that search results that state "<language> programming sucks" or "<language> programming blows" both increase the relevant score in the TIOBE Index.
There is a lot of legacy code out there that skews the benchmark, making the index an unreliable indicator of a programming language’s current popularity or the volume of active development in that language.
You'd be hard-pressed to find a job where you can program Fortran or Assembly Language all day. It's a lot easier to find one where you can do Kotlin or Rust.
Kotlin might not be as popular as one would hope, but that is not something you should conclude from the TIOBE Index.
Anyway, Anders left Borland and joined Microsoft and then .NET with VB and C# came out. In the beginning I was elated. After a few years building .NET apps, websites and services, I started digging for other things. Without even realizing, I slowly left the .NET behind me. Getting out, I recognized that the entire .NET stinked with an aura of some kind of "mental prison". I can't really describe the feeling now, but the entire community felt to me like needing some kind of approval all the time — from mothership company, from influencers like Scott Hanselman, from the Stack Overflow team, or some others like Pluralsight (which in the beginning was very .NET-centric).
I'm sure things perhaps have changed since then for the better — Satya has implemented some company-wide revolutionary changes, yet for me personally, the appeal of writing code targeting .NET has completely dissipated. I'm honestly not missing it a bit. Just a few months of coding something different taught me far more, improved my skills, and gave me invaluable perspective that I wouldn't find if I've stayed.
Like first result searching for .net brings you to this microsoft tutorial. Instruction for local development start with installing sdk that immediately offers linux install instructions and vscode also with direct links to .deb or .rpm packages
At this point I wouldn't consider it any more or less proprietary than any other Microsoft language, like TypeScript for instance.
The C# VSCode extension works in Microsoft's build of VSCode, not when someone else forks it and builds it themselves.
Thanks to Samsung of all companies, there's an open source C# debugger on GitHub (https://github.com/Samsung/netcoredbg). That seems to be the basis of the open source C# extension's debugging capabilities: https://open-vsx.org/extension/muhammad-sammy/csharp
The VSCodium C# community wants Microsoft to open source their debugger instead of having to maintain an open source version themselves, but that doesn't mean you need to use Microsoft's open source version. If anything, this forceful separation makes it so that there never will be only one implementation (like there is for languages like Rust which have always been open and therefore only have one way of doing things).
JetBrains have their own closed debugger, which doesn't really help.
Since Rust is native code, you can use pretty much any debugger for it, there is definitely not a single implementation. Yes, Rust has a single compiler, but does C# have any other compiler than Microsoft's Roslyn? (I don't think this is a problem, though)
The nice language on the CLR, F#, also doesn't seem to be very well liked by MICROS~1 anymore.
You won't be writing visual bootloaders in plain C# any time soon, but the GUI side of C# is fine
Do you want to age into an old, happy programmer? Avoid emotional attachment to any single programming language. Borrow good ideas from different sources, but don’t settle on a single PL, paradigm, or convention. Sure, you’ll probably end up hating each of them for different reasons, but you may find some that you don’t loathe so badly.
That said, I would much rather use AndroidStudio for Kotlin. Hands down. I use VSCode only when I can’t find something better. I recently switched my Elixir dev to Zed and am happy with that. Pretty much only thing I choose to use VSCode for these days is my ansible setups. Otherwise:
- Pycharm -> Python
- Xcode -> Swift
- Android Studio -> Kotlin
- Zed for Elixir/Phoenix
- Nova for embedded C code
- vim for scripts and quick edits of any of the above
VSCode for everything is like using a multitool to do woodworking in a garage. When you’re hiking or on a trip, a lightweight do it all tool has advantages. But I think it’s important to remember what IDE stands for.
The issue with the VSCode ecosystem is that extensions can conflict, die, etc, and that is very annoying when setting up environments takes a long time, IMO.
Truly not that different from IntelliJ!
You can use the JetBrains launcher to switch between projects in another JetBrains IDE though. Also, I think you can do single window mode in Ultimate to do a lot.
> The integration with the Language Server Protocol is created as an extension to the commercial IntelliJ-based IDEs. Therefore, plugins using Language Server integration are not available in JetBrains products like IntelliJ IDEA Community Edition and Android Studio from Google.
b) I thought IntelliJ code analysis is so much more superior? If you’re using LSP, what’s the point of IntelliJ anyway? Sluggish ui?
With Jetbrains, while there are plugins for other languages, it's hit and miss in my experience. Managing multiple IDE's was simply annoying, even things such as ensuring your settings are synced across everything was an issue. A different editor per language feels like a decision made for business needs and not user needs.
Which isn't to say that their IDE's are bad or anything, they are good. But they would be a lot better if they didn't take their product and split it up for each mainstream language.
Helix is awesome! I mostly love how fast it is. The world of JS editors is driving me crazy with lag.
Igniter is supposed to be able to but I haven't tried it: https://github.com/ash-project/igniter?tab=readme-ov-file#re...
The vertical integration from an Apple product tailored for a specific experience, versus the jigsaw from Linux desktop distributions.
i thought the mainly maintained editor plugin was the one on vs code
I think the overlap between "people who use Eclipse" and "people interested in Kotlin" is pretty small, though. I've only seen Eclipse in use with companies and teams stuck working on legacy applications.
As for the one year, last release was on 2018, Kotlin was announced as main Android language in May 2017.
Now re-read my comment.
The three years predating it was JetBrains trying to find a way to sell Kotlin adoption, then they went big and closed shop.
Now they are stuck with Kotlin being seen as an Android language for the most part, and Fleet isn't taking off.
Perhaps it’s different elsewhere, but here in Norway I’ve seen Kotlin used quite extensively in large backend codebases. It also comes up frequently in job postings—employers seem to actively ask for it when hiring.
https://trends.google.com/trends/explore?q=java,kotlin,scala...
https://senacor.blog/in-praise-of-kotlin-a-modern-programmin...
Most shops that use Kotlin on the backend also do Android development, as means to do core sharing between backend and Android, and there is the whole ART is not a JVM implementation anyway.
None of the companies that I wrote Kotlin for or that I applied to used Kotlin for code sharing between backend and Android. It seems as if you're making a lot of assumptions in this comment thread.
Can share more market research reports if you feel like, with similar numbers.
Also no idea how the links you posted are supposed to support your assertion that Kotlin is chosen due to code sharing considerations.
The links I posted, and others I can reach out for, support my assertions of 10% Kotlin market size in JVM deployments.
What you call my assertion, is my assumption about where those 10% are coming from.
We wanted the JVM for the JDBC ecosystem due to being a data tool, and Kotlin seemed like the "least bad" flavor.
No regrets.
I tried it for a few hours. I have no idea what I was supposed to notice.
Was the intent do be a new collaboration-first engine? Yes please.
What. the. fuck.
So, it's Apache 2 for the TypeScript, seems to ship an Apache 2 copy of IntelliJ (just like any Java language server), but smuggles some kind of binary. They truly have lost their way
The full quote ...
Instead of working on this behind closed doors for the next year or so and then open sourcing everything, they are releasing some open source now with the intention to open source the rest later. I see no problem with that. Seems pragmatic. More companies should do that.
Bottom line, you are getting free stuff now. Some of it OSS now. All of it OSS later. No need to get upset.
Red-Hat/Microsoft ship Eclipse headless, and Oracle ships Netbeans headless, they don't ship an Apache 2 copy of IntelliJ.
And really, just get the full deal instead of running them headless alongside Electron package.
Previous commenters nailed it -- it's much better to make the LSP generally accessible now -- to use it, to explore, to iterate on the actual feedback and not on the internal echo-chamber instead of cooking it internally for ~one year to make it fully OSS.
And not having to fight an uphill battle with the internal codebase (we have plenty of experience here -- Kotlin itself is fully OSS while IDEA part is mirrored through the internal monorepo) makes wonders.
> smuggles some kind of binary
These are basically IJ parts. No new dependencies, no statistics, no internet access from this code. It is also not obfuscated, so if you really worry about the contents -- any public bytecode decompiler will do.
> Error: Unable to install extension 'jetbrains.kotlin' as it is not compatible with VS Code '1.96.2'.
"The next thing is also fairly straightforward: we expect Kotlin to drive the sales of IntelliJ IDEA. We’re working on a new language, but we do not plan to replace the entire ecosystem of libraries that have been built for the JVM. So you’re likely to keep using Spring and Hibernate, or other similar frameworks, in your projects built with Kotlin. And while the development tools for Kotlin itself are going to be free and open-source, the support for the enterprise development frameworks and tools will remain part of IntelliJ IDEA Ultimate, the commercial version of the IDE. And of course the framework support will be fully integrated with Kotlin."
-- https://blog.jetbrains.com/kotlin/2011/08/why-jetbrains-need...
The part that you quote, is understood clearly that: for a company to do a thing (develop a programming language, for free), that thing need to tie back to their bottom line somehow.
That is not the same as "in order to sell more IDE licences, we need to create a programming language". That is such a roundabout way to think, why not just make more IDE variants for the uncovered languages, and not have to deal with promoting this entire new thing?
> an adoption problem outside Android
At this very moment I am working on a product with a kotlin back-end and flutter front-end.
Why? Two main reasons:
- On the projects I tend to work on, IntelliJ has a habit of breaking its internal configuration a few times a year—not just for me, but for my colleagues as well. When it does, it can take the better part of a day to sort out. Often I end up getting frustrated, deleting anything not under version control, reimporting the project, and end up having to reconfigure all the database connections and other bits manually.
- I also just prefer the more straightforward feel of NetBeans and VSCode. It’s a bit like my old car: less automation, fewer clever electronics. Sure, the new one is objectively better in many ways—but the old one was easier to get out of the snow, and it rarely surprised me.
Unfortunately, I’m a bit concerned it may have gone downhill since. It used to have dedicated full-time staff behind it, but now that it’s been handed over to the Apache Foundation, I suspect the budgets are tighter than they were under Oracle.
Same.
My impression is the project settings (all those XML configuration files under /.idea) are a gravity well that eventually implodes.
All project artifacts should be less Windows Registry and more like source code.
Which reminds me: I should be taking snapshots of known clean good settings. (Diffing those files, to cull unused stuff, is challenging.)
I begrudgingly use IDEA because it was the only option if you wanted a decent IDE experience. The fwcd VS Code LSP for Kotlin that existed somewhat works, but it's very barebones and hasn't seen much development.
Before there was VS Code, I used Atom, so I've been on the VSC train for about as long as you can get.
I’m not terribly enthused with VS Code either but I’ll probably give this plugin a try, and since this has a standalone LSP it should be reasonable to write Kotlin plugins for other editors.
As much as I love Kotlin and have a great deal of respect for JetBrains, I’ve always preferred the other Java IDEs over IntelliJ. The fact that choosing Kotlin—which I genuinely do prefer—effectively locks you into IntelliJ for the foreseeable future has been one of the main reasons I’ve hesitated to recommend it unreservedly for every project.
Just to be clear: I think IntelliJ and the rest of JetBrains’ tools are excellent and absolutely worth the price. I simply happen to prefer the alternatives—and they happen to be free. That said, I realise this is very much a personal preference, and one that most others don’t seem to share.
I really hope that this means that we can some day get a Jetbrains Java LSP. I would pay for an Intellij Ultimate subscription just to get access to such a thing.
so being strictly emacs, will really limit your choices, and honestly waste your time
It is really easy to navigate only from the keyboard. It uses vim-style keybindings for everything, so you don't have to do all the weird hand contortions that happen a more traditional emacs-style interface. When you do access functions, they are handled with multi-keystroke gestures while you're in command mode. The keystrokes are effectively navigating through a menu tree. There's a minibuffer at the bottom of the screen to help you navigate, so you don't have to rote memorize everything, but anything you do use often enough to memorize can be accessed in 2-4 keystrokes.
Some of the plugins are just amazing. Projectile - a project management and navigation sidebar - has really good ergonomics compared to what I'm used to with graphical IDEs. Magit is a fantastic and powerful git interface, and the only in-editor git interface I'll actually use; in any other IDE I'll just use git from the command line.
I've got to mention orgmode, of course. I'm not sure I can articulate why I like it so much; it's kind of like a vi-style editor interface where it's hard to grok without putting in some time, but those who do put in the time tend to fall in love.
I will agree that emacs's language support is spotty compared to vscode, but in this day and age that's true of any editor that isn't vscode. And it also lacks that really deep melding with the language that you get with IDEs that are all-in on one platform like IntelliJ IDEA and Visual Studio. But in general it's kind of an outlier in terms of popularity-to-polish ratio.
- Java handling of mutability of variables and collections
- Java is still more verbose and with less powerful utilities
- Much better for functional programming
-Some things were done right with all the learnt lessons. E.j. equals Vs ==
I respect preferring free languages. But I love Kotlin
From https://kotlinlang.org/docs/faq.html#is-kotlin-free:
Yes. Kotlin is free, has been free and will remain free. It is developed under the Apache 2.0 license, and the source code is available on GitHub.
In what sense is Kotlin a proprietary language? It's Apache 2.0 licensed AFAIK. And there are many projects that use Kotlin which are not legacy projects.
But to answer your question that is loaded to the brim with false assumptions/claims directly: https://kotlinlang.org/docs/comparison-to-java.html
Yes. Kotlin is free, has been free and will remain free. It is developed under the Apache 2.0 license, and the source code is available on GitHub.
Having to use Java again when Kotlin exist
Recent Java features like records, pattern matching, sum types via sealed interfaces have certainly made it a much more ergonomic and modern language.
But having to wrap everything in "class" feels ludicrous to me.
The other ones are lack of explicit null types (meant to be addressed by JEP "Null-Restricted and Nullable Types") and inability to write anonymous types for functions.
For example, something like:
fun withCallback(
handler: (A, B, C) -> D
)
In Java, you have "Function3<A, B, C>" etc- First class, fully functional closures. - Non-abstract classes and methods are final by default. - Named parameters. - Easy to write iterators via sequence { ... } - First class support for unsigned types.
"Important note: currently, only JVM-only Kotlin Gradle projects are supported out-of-the box."
Like all the 3rd party lsps atm.
Hopefully they add kmp support soon (it's on their roadmap), still worthless for my workflow without kmp.
flykespice•1mo ago
I know it's a difficult spot because such effort will also indirectly compete with their main product which is an IDE, so I'm not very optimistic it'll last.
lucasyvas•1mo ago
yonatan8070•1mo ago
someothherguyy•1mo ago
> As a backend, you can use a headless IntelliJ IDEA or a language server.
https://www.jetbrains.com/help/fleet/architecture-overview.h...
hocuspocus•1mo ago
Java and Kotlin are definitely not using the LSP but their proprietary backend.
mohamez•1mo ago
I would say this if this step was taking early while Kotlin is still a new language in the market, but I think their late decision to develop an official LSP for Kotlin is because of reasons you just mentioned, but maybe they changed their minds because they saw other benifits including a wide adoption of Kotlin.
wiseowise•1mo ago