# Development resources for Julia ecosystem?

**URL:** <https://discourse.julialang.org/t/development-resources-for-julia-ecosystem/122907>\
**Category:** Community\
**Created:** [November 15, 2024, 4:03pm UTC](https://discourse.julialang.org/t/development-resources-for-julia-ecosystem/122907 "2024-11-15T16:03:23Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![PetrKryslUCSD](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/petrkryslucsd/32/215825_2.png) [@PetrKryslUCSD](https://discourse.julialang.org/u/PetrKryslUCSD)\
**Post date:** [November 15, 2024, 4:03pm UTC](https://discourse.julialang.org/t/development-resources-for-julia-ecosystem/122907/1 "2024-11-15T16:03:23Z")

</div>

Given the central role of the Julia extension for VS Code, I believe that the resources devoted to this project should be considerably increased. There is a commercial entity to promote Julia: Perhaps it should chip in? Devote one person full time to making this extension work so that newcomers are impressed. At this point, newcomers seem to be distinctly underwhelmed, given their experience with Matlab IDE or R Studio or Spyder.

PS: This is in no way a reflection on the efforts of @davidanthoff and @pfitzseb and the other fine contributors. It is just too big a job to do in a couple of hours on a weekend when there is some time to spare…

---

<div class="post-metadata">

**Author:** ![joa-quim](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/joa-quim/32/227_2.png) [@joa-quim](https://discourse.julialang.org/u/joa-quim)\
**Post date:** [November 15, 2024, 4:52pm UTC](https://discourse.julialang.org/t/development-resources-for-julia-ecosystem/122907/2 "2024-11-15T16:52:20Z")

</div>

And likewise, but to nth power, for the debugger usability.

---

<div class="post-metadata">

**Author:** ![davidanthoff](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/davidanthoff/32/223493_2.png) [@davidanthoff](https://discourse.julialang.org/u/davidanthoff)\
**Post date:** [November 15, 2024, 7:52pm UTC](https://discourse.julialang.org/t/development-resources-for-julia-ecosystem/122907/3 "2024-11-15T19:52:05Z")

</div>

> [@PetrKryslUCSD](#):
>
> Given the central role of the Julia extension for VS Code, I believe that the resources devoted to this project should be considerably increased.

I could not agree more! The resource allocation right now is really off, there are defacto two people working at best part time on the extension, when the extension is probably one of the most crucial pieces in the Julia ecosystem.

I think the two biggest areas are the language server and the debugger.

For the LS we just need some folks that really make it “their” project. Right now it is sort of limping along, because the main person that worked on it moved to other things years ago. I started a bit of a renovation of the core architecture, but overall it just is not one of my core interests, and I think @pfitzseb might be in a similar situation.

For the debugger the situation in my mind is largely unrelated to the VS Code extension, the core problem there is just that the underlying debugger engine is not at a stage where it can power the kind of smooth debugging experience that users want.

---

<div class="post-metadata">

**Author:** ![juliohm](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/juliohm/32/215266_2.png) [@juliohm](https://discourse.julialang.org/u/juliohm)\
**Post date:** [November 21, 2024, 1:26am UTC](https://discourse.julialang.org/t/development-resources-for-julia-ecosystem/122907/4 "2024-11-21T01:26:28Z")

</div>

Shall we start a dedicated thread to discuss this important issue? What is the role of JuliaHub with regards to the open source community? Does JuliaHub have a clear roadmap to support the ecosystem and open source tools that make up the Julia experience?

I feel that these questions are not officially addressed anywhere. It is good to see other people with similar concerns.

---

<div class="post-metadata">

**Author:** ![PetrKryslUCSD](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/petrkryslucsd/32/215825_2.png) [@PetrKryslUCSD](https://discourse.julialang.org/u/PetrKryslUCSD)\
**Post date:** [November 21, 2024, 4:44am UTC](https://discourse.julialang.org/t/development-resources-for-julia-ecosystem/122907/5 "2024-11-21T04:44:30Z")

</div>

Seems to me we have enough here already for Juliahub to start paying attention.

 ![image](https://global.discourse-cdn.com/julialang/original/3X/0/6/06490ec1f8ab74bc3a55c808f762a95442c66168.png)  
Perhaps we will hear from someone soon?

---

<div class="post-metadata">

**Author:** ![juliohm](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/juliohm/32/215266_2.png) [@juliohm](https://discourse.julialang.org/u/juliohm)\
**Post date:** [November 21, 2024, 3:17pm UTC](https://discourse.julialang.org/t/development-resources-for-julia-ecosystem/122907/6 "2024-11-21T15:17:11Z")

</div>

> [@mihalybaci](#):
>
> First, JuliaHub is still a comparatively small company, so it may not be the case that there is an “extra” full time employee to dedicate to the VSC extension.

Are you qualified to speak on behalf of JuliaHub? If you have intel on the company’s size, financial resources, then many of us will take your words on that.

My impression is that this is not about lack of financial resources, specially when you consider the hub in its entirety (i.e., JuliaHub, MIT, PumasAI, …).

---

<div class="post-metadata">

**Author:** ![ufechner7](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ufechner7/32/51363_2.png) [@ufechner7](https://discourse.julialang.org/u/ufechner7)\
**Post date:** [November 21, 2024, 4:59pm UTC](https://discourse.julialang.org/t/development-resources-for-julia-ecosystem/122907/7 "2024-11-21T16:59:18Z")

</div>

> [@mihalybaci](#):
>
> Julia is open source, YOU can do it!”. I think that applies here, folks who want the language server to be better,

This is not really true. The problem with language server is that it is not really documented, therefore it is very difficult for new open source developers to work on it. Perhaps we could get a “Google summer of code” like project where a student creates a stand-alone language server and documents it well?

---

<div class="post-metadata">

**Author:** ![mihalybaci](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mihalybaci/32/13528_2.png) [@mihalybaci](https://discourse.julialang.org/u/mihalybaci)\
**Post date:** [November 21, 2024, 5:12pm UTC](https://discourse.julialang.org/t/development-resources-for-julia-ecosystem/122907/8 "2024-11-21T17:12:53Z")

</div>

I know nothing about the language server, but regardless of employment (JuliaHub employee, grad student, random person, etc), _someone_ will have to sit down and do the hard work of learning its internals. So I don’t really see this as an argument for a paid position by necessity.

> [@ufechner7](#):
>
> Perhaps we could get a “Google summer of code”

I think this would be a great idea, possibility through the Julia Summer of Code (if that’s still going on), but that still requires someone knowledgeable with the language server to volunteer to be the mentor.

---

<div class="post-metadata">

**Author:** ![ufechner7](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ufechner7/32/51363_2.png) [@ufechner7](https://discourse.julialang.org/u/ufechner7)\
**Post date:** [November 21, 2024, 5:40pm UTC](https://discourse.julialang.org/t/development-resources-for-julia-ecosystem/122907/9 "2024-11-21T17:40:26Z")

</div>

> [@mihalybaci](#):
>
> someone knowledgeable

Well, there are exactly two people who could do that. If they do not find the time, then only a fork and starting from scratch would help.

---

<div class="post-metadata">

**Author:** ![fredrikekre](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/fredrikekre/32/1688_2.png) [@fredrikekre](https://discourse.julialang.org/u/fredrikekre)\
**Post date:** [November 21, 2024, 6:39pm UTC](https://discourse.julialang.org/t/development-resources-for-julia-ecosystem/122907/10 "2024-11-21T18:39:54Z")

</div>

It isn’t so difficult to work on the LanguageServer, you can even use [Revise](https://github.com/julia-vscode/LanguageServer.jl/blob/0da181a8e48da14c2ac46519311e01352c7c6fca/src/languageserverinstance.jl#L285-L286). I have [30+](https://github.com/julia-vscode/LanguageServer.jl/pulls?q=is%3Apr+author%3Afredrikekre+is%3Aclosed) merged PRs without any prior knowledge of LanguageServer or the LSP protocol. While LanguageServer might not be fully documented it is pretty simple: it gets requests, and handles them. That’s pretty much it. For example, the request handler to remove an unused variable is [just a couple of lines](https://github.com/julia-vscode/LanguageServer.jl/blob/0da181a8e48da14c2ac46519311e01352c7c6fca/src/requests/actions.jl#L334-L341). The language server protocol [is very well documented though](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/), so that is very useful. If anyone wants help setting up the development workflow feel free to message me or, better yet, ask in the [#vscode-dev](https://app.slack.com/client/T68168MUP/C013J5F9USH) channel on Slack.

To give some specific pointers on how to implement some new functionality:

- [https://github.com/julia-vscode/LanguageServer.jl/pull/1065](https://github.com/julia-vscode/LanguageServer.jl/pull/1065) implements a code action to replace unused variables (which the linter complains about) with `_`.
- [https://github.com/julia-vscode/LanguageServer.jl/pull/1075](https://github.com/julia-vscode/LanguageServer.jl/pull/1075) implements a code action to insert a license header at the top of the file.
- [https://github.com/julia-vscode/LanguageServer.jl/pull/1084](https://github.com/julia-vscode/LanguageServer.jl/pull/1084) implements inserting of docstring template with the function signature.
- [https://github.com/julia-vscode/LanguageServer.jl/pull/1082](https://github.com/julia-vscode/LanguageServer.jl/pull/1082) implements conversion between normal strings (`"..."`) and raw strings (`raw"..."`) while escaping/unescaping properly.
- …

To give a concrete suggestion for someone, it would be cool to support [inline local variable](https://rust-analyzer.github.io/manual.html#inline_local_variable) and the inverse [extract variable](https://rust-analyzer.github.io/manual.html#extract_variable).

---

<div class="post-metadata">

**Author:** ![Palli](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/palli/32/3380_2.png) [@Palli](https://discourse.julialang.org/u/Palli)\
**Post date:** [November 21, 2024, 6:42pm UTC](https://discourse.julialang.org/t/development-resources-for-julia-ecosystem/122907/11 "2024-11-21T18:42:17Z")

</div>

Positron, and Cursor.AI are VS Code-based, so I assume the VSCode Julia extension already works there, and all the other VS Code forks.

Other options are Zed and Pulsar editor I just discovered, both I believe based on Atom (the Zed people made Atom). Julia’s Atom-based Juno IDE is barely on life-support, merged into VS Code Julia extension. I think the extension is written in JavaScript, and Atom, and presumably Zed, use it too, and might have similar (but different) extension mechanism? Before spending a lot of money on the extension, I would want to know if needs or can support other IDE/editors, like Zed, and what would be the ideal to support if you has a choice?

> [@Editor Pulsar](https://discourse.julialang.org/t/editor-pulsar/121368/7):
>
> One successor. Another is Zed ([https://zed.dev](https://zed.dev)), which I’m marginally more excited by. I’ve got my nvim setup pretty locked in, so not looking to change in the near future, but that’s the one I’d move to if I were

> [@IDE: alternatives to VS Code?](https://discourse.julialang.org/t/ide-alternatives-to-vs-code/122526/41):
>
> hitching the wagon to VSCode too much doesn’t seem ideal. Julia should learn from the rise of LSP: the important issue is to make a clean API and a decent implementation of this API’s server which can then be adapted to any IDE. There are several facets to this API (and it is essentially a superset of the LSP API).

This seems most up-to-date for Emacs: [GitHub - gdkrmr/lsp-julia](https://github.com/gdkrmr/lsp-julia)

> Julia support for the [=lsp-mode=](https://github.com/emacs-lsp/lsp-mode) package using the [LanguageServer.jl](https://github.com/JuliaEditorSupport/LanguageServer.jl) package. For information on the features `lsp-mode` provides see their [git repository](https://github.com/emacs-lsp/lsp-mode).

---

<div class="post-metadata">

**Author:** ![ufechner7](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ufechner7/32/51363_2.png) [@ufechner7](https://discourse.julialang.org/u/ufechner7)\
**Post date:** [November 21, 2024, 6:49pm UTC](https://discourse.julialang.org/t/development-resources-for-julia-ecosystem/122907/12 "2024-11-21T18:49:29Z")

</div>

How is the relationship between LanguageServer and Linter?

One issue I find annoying (I cannot find the issue in the moment, there are more than 900 open issues in julia-vscode) is that goto-definition does not work for examples of a project that I checked out with git.

Is that a LanguageSever issue or a Linter issue?

---

<div class="post-metadata">

**Author:** ![fredrikekre](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/fredrikekre/32/1688_2.png) [@fredrikekre](https://discourse.julialang.org/u/fredrikekre)\
**Post date:** [November 21, 2024, 6:53pm UTC](https://discourse.julialang.org/t/development-resources-for-julia-ecosystem/122907/13 "2024-11-21T18:53:20Z")

</div>

LanguageServer depends on StaticLint (which does linting) but what you describe isn’t really a linting issue, but maybe a SymbolServer/LanguageServer issue. I don’t know why people keep having problems like that though – I never really experience them 🤷‍♂️.

---

<div class="post-metadata">

**Author:** ![mihalybaci](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mihalybaci/32/13528_2.png) [@mihalybaci](https://discourse.julialang.org/u/mihalybaci)\
**Post date:** [November 21, 2024, 2:20pm UTC](https://discourse.julialang.org/t/development-resources-for-julia-ecosystem/122907/14 "2024-11-21T14:20:24Z")

</div>

Not to derail the thread too much, but I think there are a couple things to keep in mind here.

First, JuliaHub is still a comparatively small company, so it may not be the case that there is an “extra” full time employee to dedicate to the VSC extension. Same goes for hiring a dedicated developer, is it worth using $100K (salary + benefits + etc) to improve it? Which leads to…

Second, JuliaHub is a company, and the purpose of a company is to make money. “Look how good our VS Code debugger is!” will not convince anyone to buy into JuliaHub as a company, or else their financial team would already have someone dedicated to the project.

> [@juliohm](#):
>
> What is the role of JuliaHub with regards to the open source community? Does JuliaHub have a clear roadmap to support the ecosystem and open source tools that make up the Julia experience?

Considering that many of the “core Julia devs” work directly for JuliaHub in some fashion, I would say that the company already plays a huge role in the community. As for the ecosystem, I would go back to my first two points, for a small company its not as easy as just “hire a new person”. The alternative to that option would be to make one of the other devs do it. So, then its a matter of priority. Better language server or static compilation? Better debugger or work on core language bug fixes? I’m obviously not privy to the internals of JuliaHub, but I can very well imagine that it is a zero-sum game where every hour spent on the VS Code extension is an hour not spent on something else.

I’ve been on this forum for a while and whenever a person comes by and says something like, “language X has this package, someone should implement this in Julia”, the overwhelming response is, “Julia is open source, YOU can do it!”. I think that applies here, folks who want the language server to be better, or the debugger to be better, YOU help, YOU contribute. Or, sign up for JuliaHub (the product) and pay them to hire a VS Code dev.

And for me personally, I am happy with the extension (a big thank you to all the devs!) and would much rather have JuliaHub focus “extra” resources on things like static compilation, TTFX, etc.

(some of this may come off as more combative than I intend, so please don’t take it that way, I just don’t know a simpler way to make my points)

---

<div class="post-metadata">

**Author:** ![mrufsvold](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mrufsvold/32/31600_2.png) [@mrufsvold](https://discourse.julialang.org/u/mrufsvold)\
**Post date:** [November 21, 2024, 5:30pm UTC](https://discourse.julialang.org/t/development-resources-for-julia-ecosystem/122907/15 "2024-11-21T17:30:09Z")

</div>

Maybe @gdalle or another mod could split the VSCode Extension maintenance question to a new thread?

---

<div class="post-metadata">

**Author:** ![stevengj](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stevengj/32/71_2.png) [@stevengj](https://discourse.julialang.org/u/stevengj)\
**Post date:** [November 21, 2024, 7:07pm UTC](https://discourse.julialang.org/t/development-resources-for-julia-ecosystem/122907/16 "2024-11-21T19:07:03Z")

</div>

> [@PetrKryslUCSD](#):
>
> I believe that the resources devoted to this project should be considerably increased.

Maybe I’m cynical, but these “Julia should get more resources” threads are not really actionable and never go anywhere useful.

There are some resources that are _relatively_ easy to get (e.g. a NumFocus small development grant, a summer student at a university, …) but are also fairly small and short term … and they still require nontrivial effort from someone (making a grant proposal, supervising a student…). They can be useful to add individual features or fix specific problems.

---

<div class="post-metadata">

**Author:** ![goerz](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/goerz/32/3269_2.png) [@goerz](https://discourse.julialang.org/u/goerz)\
**Post date:** [November 21, 2024, 7:33pm UTC](https://discourse.julialang.org/t/development-resources-for-julia-ecosystem/122907/17 "2024-11-21T19:33:59Z")

</div>

My opinion of the LanguageServer changed significantly when I set it up in Neovim. Before that, I would occasionally open VS Code to see whether it had any useful linting advice on my code base. It was always full of false positives, and totally useless. With Neovim, it works almost flawlessly, and is extremely useful. I think it really comes down to setting up the `project_path` correctly. With VS Code, that was a black box (or maybe my lack of experience). In Neovim, I can set it up [exactly the way that works for me](https://github.com/goerz/neovimrc/blob/master/helpers/julia_languageserver.jl).

With the obvious drawback that I _have_ to set it up exactly the way I want it, so there was a learning curve.

---

<div class="post-metadata">

**Author:** ![DNF](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dnf/32/10191_2.png) [@DNF](https://discourse.julialang.org/u/DNF)\
**Post date:** [November 21, 2024, 8:15pm UTC](https://discourse.julialang.org/t/development-resources-for-julia-ecosystem/122907/18 "2024-11-21T20:15:29Z")

</div>

> [@Palli](#):
>
> Other options are Zed and Pulsar editor I just discovered, both I believe based on Atom (the Zed people made Atom)

No, no. The Atom people made Zed, but it’s definitely not based on Atom or Electron. They were taking lessons from making Atom, and decided performance was a major factor.

They decided to make the fastest editor possible, built from scratch in Rust. It’s pretty promising.

---

<div class="post-metadata">

**Author:** ![juliohm](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/juliohm/32/215266_2.png) [@juliohm](https://discourse.julialang.org/u/juliohm)\
**Post date:** [November 21, 2024, 8:33pm UTC](https://discourse.julialang.org/t/development-resources-for-julia-ecosystem/122907/19 "2024-11-21T20:33:34Z")

</div>

My comments were moved in the wrong order in this thread. My second comment should come after @mihalybaci 's comment.

---

<div class="post-metadata">

**Author:** ![PetrKryslUCSD](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/petrkryslucsd/32/215825_2.png) [@PetrKryslUCSD](https://discourse.julialang.org/u/PetrKryslUCSD)\
**Post date:** [November 21, 2024, 8:42pm UTC](https://discourse.julialang.org/t/development-resources-for-julia-ecosystem/122907/20 "2024-11-21T20:42:46Z")

</div>

I may be wrong, but I think at least some of the people who work on Julia releases are paid. My second assumption is that the more people program in Julia, the better for Juliahub (and the community as a whole, of course).

I’m pretty happy with 1.10.4, but I understand at this point 1.10.5 and 1.10.6 are both out, and 1.11 is now also released.

I don’t think a newcomer to Julia will much appreciate the difference between these 1.10 releases. I certainly don’t care, I see no advantage in switching to an incrementally improved version.

What the newbies will consider crucial is a reasonable way of interacting with Julia. VS Code is usually recommended to such programmers, but often with the words “there are some things that don’t work so well” (debugger, for one). This is obviously not going to impress the newbies.

So, I don’t see a huge disadvantage to having a discussion among the pursers about what the tradeoffs are, only potential advantages: do we fund the development of a plethora of releases, or do we fund someone to make really usable and shiny IDE?

This is obviously just an example: There might be other targets for such a discussion.

[Next page](https://discourse.julialang.org/t/development-resources-for-julia-ecosystem/122907.md?page=2)
