5 ms·
I personally don't understand the hangup on the existence of an IDE. Don't get me wrong - IDEs are great, especially for beginners. But "one-editor-per-languag
by ivanbakel 6y ago
I personally don't understand the hangup on the existence of an IDE.
Don't get me wrong - IDEs are great, especially for beginners. But "one-editor-per-language" is an increasingly outdated mode of thinking. The culture shock of having to download a whole new IDE for a new language is a distinct negative. Beginners benefit from new languages slotting neatly into existing tools, which is exactly what the language server efforts in Haskell have yielded.
A (perhaps) valid criticism would be "the Haskell community has not done enough to make sure the language server is easy usable" - and I wouldn't even say that that was the case.
- Supermancho 6y ago> I personally don't understand the hangup on the existence of an IDE. I don't understand the lack of a hangup. It's obvious from using an IDE to going back to a text editor. It hurts adoption, it hurts beginners, it hurts the ecosystem...ie disparate tools grouped with known interactions are not necessary to fully understand when creating a program, leave those details in the IDE as a simplified interaction (eg checkbox to run a lint every save). Lack of tooling (erlang and lua's lack of a comprehensive package manager comes to mind) stunts language maturity. It's a pain point.
- ivanbakel 6y agoMy point is there's no "lack" of tooling. Nowadays, the Haskell IDE engine is good enough for general use. It's pretty trivial to plug into every general-purpose editor. More and more beginners nowadays do not want to install a whole new IDE. They don't want to have to configure it, learn it, and understand all of its nuances and foibles. They prefer using their existing setup (VSCode, Atom, vim, emacs, etc.) with a nice slot-in for the new language - which is exactly what the Haskell tooling supports. By comparison, a custom IDE is a massive undertaking, and a relatively fruitless one. It takes a tremendous effort to do well, and up until that point it actually negatively impacts the learning experience: if you encourage beginners to use a mediocre IDE, they will experience the language in a mediocre way.
- johnday 6y ago> Nowadays, the Haskell IDE engine is good enough for general use. Sadly I am unconvinced of this. If it were true, there would not be an immediate and significant push to make `haskell-language-server`. Having tried many times to get `hie` working, I can say that it's a pain in the bum. Suppose I have 12 projects, one made every month for the last year. Each of these 12 will be using a different stack resolver, possibly with different ghc versions. As a result, I will need to compile and use up to twelve different versions of hie, and make sure that the correct one is on my $PATH depending on which project I have open.
- smichael 6y agoI don't think it's quite that bad. Most likely you could easily use 1-2 ghc versions for those, and you need one build of IDE tools per ghc version, not per resolver, no ?
- johnday 6y agoSure, I'm outlining a worst-case. But realistically, even having two different hie versions is enough to make switching environments a Hard Problem.
- Supermancho 6y ago> My point is there's no "lack" of tooling. All the more reason to have an IDE. > More and more beginners nowadays do not want to install a whole new IDE That's incommensurate with reality, to put it mildly. IntelliJ is out of control, partly because java itself is horrendously convoluted, but that's an exception. A beginner would rather have a tool to support their learning curve than not. I guess it's a matter of what constitutes a "beginner". I do not disagree that people prefer to keep their own IDEs, but that's impractical across all languages. You're going to lose tooling along the integration path, naturally.
- ivanbakel 6y ago> All the more reason to have an IDE No, all the less reason. The path existing Haskell tools are taking makes sense. An IDE would be a massive community undertaking to do well, and still a waste of massive community effort to do poorly. > IntelliJ is out of control, partly because java itself is horrendously convoluted, but that's an exception. ...and partly because Java is many users' first language, and partly because its ecosystem is notoriously complicated to configure and use, and partly because IntelliJ is so mature, and.... I think IntelliJ doesn't prove your point at all. It is essentially nothing like what a hypothetical Haskell IDE would be, either in users or use-cases. I appreciate that beginners want tooling, but I am arguing that an IDE is precisely not what that tooling should be.
- nilkn 6y agoPersonally I don't want an IDE, just solid integration with existing editors. I didn't fully understand the power of this until I started working with Rust and VS Code. It's a really first-class experience. Hints and type errors show up so immediately and responsively in the editor with complete contextual information that I can develop essentially an entire library or application without ever running a build once. It makes me feel like I can just tear through hundreds or thousands of lines of code because I'm getting so much constant feedback on everything I write.
- Koshkin 6y agoWhat you are saying is that you do not want an Integrated DE, just a DE with Integration.
- nilkn 6y agoI get the snark, but the comment I was replying to was talking about per-language IDEs, as has been common in the past, and I was saying I don't care about an IDE developed specifically for Haskell and in fact don't want anything separate. I've never been able to productively use HIE with any editor despite claims here in this thread that it works and is ready for general use. Whenever I have managed to get it mostly working, it breaks as soon as I try to use it with a different Haskell project.
- Koshkin 6y agoWhy, a good IDE is an example of something that is a powerful tool. It increases your productivity, whether you are a beginner or not. (The problem arises when it becomes easier not to use the IDE.)