Hacker News new | past | comments | ask | show | jobs | submit login

I'm really wishing that the innovation that language server brought to the editor ecosystem can be expanded to other dev tools.

I'd love for dependancy management and build systems to be a solved problem and not reinvented by every new programming language that has gained enough popularity that some volunteer decides to build these basic dev tools.

Imagine learning one tool and using it for every language. They all solve the same problem. What's the common interface?




The common interface is dependencies and dependents, but the problem with existing build systems is that they make assumptions about those two things. They also place other restrictions.

For example, the Go build system assumes you set up the project according to the Go standard. Cargo sets things up a certain way too.

They also assume certain build tools, like the Go compiler and `rustc`.

Restrictions for ease of implementation are the reasons why every build system sucks. Figure out how to remove the restrictions and implement that, and you will have a universal build system.

Source: I am building such a build system, so whether I'm right will only become clear over time.


One difficulty is that dependency resolution need to be language-aware, to understand the semantics of #include, import, require, CLASSPATH, compiler -i flags etc etc.

Best would be if compiler could export this in a standard format for consumption by a build system. Like the language server.

Looking at build tools that try to be cross language, you have Bazel probably being the most serious contender, which often requires you to vendor your dependencies and rewrite the build files entirely in a different mindset than how upstream packaged it.


You are absolutely right, especially about understanding the semantics of importing code in each language. Fortunately, with few restrictions, it is possible to use hacks to simulate the effect, mostly.


Nix sounds like it could be such a tool. But it seems to also suffer from Linux's wizard syndrome


I agree with this. With Nix I can finally stop using nightmarish tools like nvm and rvm. I have my development tools where I need them: my projects. There's no reason for me to have, say, node or eslint available anywhere else.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: