It’s a very popular JetBrains IDEs ( JetBrains IDEs: enjoy an exceptional developer experience ) for programming. Unfortunately, it doesn’t yet support the Crystal language. Try to negotiate with JetBrains at least a plugin for it that supports Crystal syntax.
Believe me, this could greatly contribute to Crystal’s popularity. I currently use RubyMine for writing programs on Crystal, but the syntax is still slightly different.
Who care?
A short-sighted assessment. Who cares about a language’s popularity?
Developing a language requires resources (finance), right? If a language is popular, it might be in demand in some commercial projects, and that would attract sponsors to support the language development team. Right? Or are young developers willing to carry on with their enthusiasm?
A language’s popularity, and the resulting multitude of developers, also leads to the development of numerous libraries for it, which in turn leads to greater ease of use and increased capabilities.
Or am I wrong?
So the development environment also plays a very significant role in a language’s popularity.
I think that adding Crystal to the JetBrains product lineup would be even more difficult than if you or I started a company, became its CEO, and earned money by using Crystal. This is only my rough Fermi estimate. Of course, I may be wrong, and I actually hope that I am ![]()
As far as I can tell, JetBrains’s IDE is quite versatile, and they should at least add syntax highlighting for Crystal as a plugin.
For example, they have a version of the RustRover editor that isn’t burdened by the complexities of Ruby on Rails as in RubyMine — the Rust project structure is quite simple. They could create an editor for Crystal similar to RustRover.
But the creators and developers of Crystal should at least approach JetBrains with this issue. Otherwise, this is just idle speculation.
Marketing exists for programming languages, after all. Not only is the language good in itself, but it also requires action to popularize it. Don’t expect a miracle that suddenly many will realize: “Crystal is great!”
As they say about people: “Talented people need help; the untalented will break through on its own!”
And now we’re seeing the incredible popularity of Python, for example. Is the language itself really that good?.. Of course not! It’s terrible! But look how it has taken off on the wave of AI popularity… But this isn’t the choice of programmers, it’s the choice of mathematicians — because they chose something simpler, and so they chose Python.
I’ve studied many programming languages, and Ruby is the best I’ve ever seen in programming languages, and, accordingly, so is Crystal. I use Ruby since 2011.
I think for business reasons, Jetbrains would see no motivation to make the IDE or plugin. I personally think it’s up to an enterprising person or group to make the quality plugin. For reference, look at Cursive - a highly-regarded Clojure plugin for Jetbrains IDE, with well thought-out free and commercial models. The developer saw a market to make something great, and went for it. I think Clojure devs appreciate its existence, and I’m sure it’d be the same if something like that existed for the Crystal community.
I have contact at JetBrains at the VP level, so when we are ready to build the plugin, they can give us some consultation on how to make that plugin right.
I’m sorry if I confused you.
AFAIK, using editors like JetBrains/RubyMine isn’t really that helpful for writing languages like Ruby. It’s also not used by many Rubyist or Crystallist, after all, Ruby isn’t like Java..
It’s true that many people use VSCode with LSP, Because of what @matz said, a few people even use Emacs just because @matz(the author of Ruby programming language) use it, but it seems like nobody really care JetBrains’ IDEs.
The support for Ruby on Windows is similar, I never see user use Ruby in the Windows, this is why I don’t get why the Crystal core team spends so much time making windows support (check form post, almost no one care in the community), instead of things that more people actually need.
I’m afraid I’ll have to disagree here.
Given a sufficiently large developer base there will be demand for IDEs for any piece of technology. At a particular time in history Rails (but maybe not ruby in itself) had such a developer base, making it completely logical for Jetbrains to develop RubyMine.
Crystal does not have this kind of momentum (for now). Therefore, there is no incentive for companies like Jetbrains to develop an IDE for Crystal. If Crystal becomes popular (or develops a library/framework/app that becomes as popular as Rails) such IDEs will most likely be developed.
I also think you shouldn’t make these broad assumptions about why people choose to use an IDE or a text editor for writing cod. Even though languages like ruby or crystal might have less need for a full IDE, the power of usage patterns is strong. If you use IntelliJ for writing your java code and PyCharm to write your python code, it’s sure is easier to pick up RubyMine when writing ruby code.
Lastly, I strongly disagree with the comments about Windows support. Even though I prefer Linux any day of the week (been using it since the late nineties) the world we live in doesn’t look that way. There are many people that use WIndows (especially in work environments). I think it’s a very good idea to make crystal work for all this people. Even though I’ve only had the pleasure of introducing a single crystal program (command line) at work so far, there is so much more potental. Crystal is an excellent general purpose language on any supported OS and the only thing I wish were better supported on WIndows is simpler tools for building GUIs.
@zw963 Some people do care in the community, be it for support for their favorite IDE (with or without a LSP), Windows or even OpenBSD. The core team definitely cares about tooling in general as it can improve the experience of everyone and especially to newcomers. Any initiative to improve tooling is very welcomed.
@zw963
Yes, some people boast about writing code in Notepad, implying a high level of professionalism, but this is more snobbery than professionalism, forgive me for making such conclusions.
Using a convenient IDE won’t hurt; on the contrary, it even improves code quality and speeds up development. I really like the colored syntax highlighting, and that doesn’t mean I’d write worse without it. I’m pleased to see my code like that—it makes development more comfortable. Besides, IDEs have a lot of convenient tools, for example, code search (but you certainly use grep exclusively, I understand).
You see, it’s also a matter of psychological perception. If the JetBrains IDE adds Crystal support, many will pay closer attention to this language. Arguments? Attention from authoritative IT companies and many developers! Google’s official editor for Android - Android Studio - is developed by JetBrains (this contrasts with your “… but it seems like nobody really cares about JetBrains’ IDEs,”, doesn’t it?). Does that mean anything to you? I hope I don’t need to tell you who Google is and their authority in the IT industry?
And don’t assume that everyone works exclusively on Linux—that’s also a kind of snobbery. For example, I develop programs for Linux, my server runs Linux, but my work computer runs Windows, and I write code on it. Yes, for comfortable work and use, I still prefer Windows on my work (and home) computer. I have both a computer and a server at home. So please, think a little broader than your own circle of perception of this World.
P.S. Incidentally, it’s precisely the snobbery of “professionals” that often discourages newcomers. And I’ve already explained that the more people use Crystal for development, the better the language will become—if only through the emergence of new libraries.
Okay, let’s just say the things related to editor which helping more people learn this language.
Do you think it’s more important to make a nice highlighting plugin for JetBrains IDE, or to support LSP for the community?
Crystal has been around for ten years,there is no a language with such a long life but with so poor LSP support, of course, I absolutely did not intend to belittle crystalline , As a personal project without official support, he has done very very good job . Although it is far rough compared to languages like Rust/Go, only usable.
The core team is just spending time on what they consider more important, I think you understand what I mean.
Of course, there have been some exciting changes since last year, e.g. multi-threaded support from ysbaddaden, but this should have started five years ago.
According to the importance of this priority, should we first solve the LSP support for Crystal before JetBrains IDE?
Where and when did I ever argue that you should stop developing LSP and switch your attention to JetBrains? What kind of ridiculous contrast (opposition) is this?
Let’s take Rust as an example. It doesn’t have the most elegant or clear syntax, but it’s popular for its safe code and concurrency.
Crystal: The first official release of the language took place in June 2014.
Rust: The first stable version (1.0) was released on May 15, 2015.
But Rust already has its own editor from JetBrains—RustRover. And that, among other things, attracts people.
As you say, the team can’t keep up with everything, taking everything into account, and is focused on developing the language itself, if I understand you correctly. This is partly due to the fact that Crystal isn’t yet popular enough, which means there aren’t enough developers. There aren’t enough developers – they can’t get everything done. It’s a vicious circle. But in fact, the entire army of Ruby developers already knows 90% of Crystal. But!.. I’m learning Crystal, but using RubyMine—the impression is a bit different.
I hope there are already some people interested in the JetBrains IDE for Crystal - and it will be implemented… maybe.
I think RubyMine is an excellent editor — I’m a big fan of JetBrains IDEs.
When it comes to support for the Crystal programming language, I believe the most practical and realistic approach right now would be to develop a plugin. It doesn’t necessarily have to come from JetBrains; it could just as well emerge from the community. As far as I remember, that’s how it started with other JetBrains IDEs too — first there was a plugin, then a growing user base, and eventually it made sense to turn the plugin into a dedicated IDE for that language.
The plugin could be community-driven and free, or perhaps come with a small fee.
The best approach would probably be to look at an existing open-source plugin for another language within the JetBrains ecosystem and learn from it to build a Crystal variant.
https://plugins.jetbrains.com/plugin/17578-crystal already exists, though I haven’t tried using it before.
For this plugin:
GitHub: GitHub - asedunov/intellij-crystal-lang: An IntelliJ plugin for Crystal language
Compatibility Range
RubyMine — 2023.2 — 2023.3.8
(Update Date: Jul 30, 2023)
For now, for example, the RubyMine version is already 2025.2.2
This plugin has 38 GitHub stars. For a Crystal library, that is quite a lot. However, I estimate there are at most around 100 active users. It seems to be maintained only by a single person, with no pull requests so far.
According to the code statistics, the Kotlin part alone has around 40,000 lines. It doesn’t seem realistic to maintain such a large codebase only with volunteers. If it were about 4,000 lines, maybe it could be maintained by personal effort.
Looking at the file structure, there are many different files, and the parser part is especially large. Was this copied and modified from somewhere else, like Ruby? Or is it an original implementation for Crystal?
I suspect much of that 40k was a one-time copy from another plugin. Assuming that the Kotlin plugins are running on top of JVM, there are probably several frameworks pulled in as dependencies that help build up to 40k. I’m not brave enough to peek …
These days I am but a simple VSCode peasant on Windows 11 with 2 linux distros via WSL2. If JetBrains revealed a Crystal IDE that gave us an integrated REPL window, LLVM debug integration with LLDB, and was able to fire off specs / tests via an F key - I’d buy a copy of that in a heartbeat. I do use AI, but tend to favor it as a rubber duck and code review. Both auto-completions and agentic features drive me crazy. fwiw
I do have experience with plugin development for JetBrains IDEs. And I have looked at this codebase before.
With this kind of language plugin, you are recommended to define the grammar for your language with JFlex, then, through a gradle plugin, it will generate a tokeniser, parser, AST and so on. I reckon that what the developer did was to migrate the Java generated code into Kotlin (This is mostly automatic in IntelliJ) and committed to GitHub.