What features should an (fictitious) IDE for Haskell have?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
46 messages Options
123
Reply | Threaded
Open this post in threaded view
|

What features should an (fictitious) IDE for Haskell have?

Haskell - Haskell-Cafe mailing list
Greetings,

Imagine that you can decide what functionality and features an
Integrated Development Environment for Haskell should get. You can
make this IDE with your wishlist similar in power as other IDEs for
Java for example.

Now list as many features as you can, what would make the life of a
Haskell developer as comfortable as possible!?

I am dying to know how this list of features at the end (of this
thread) will look like.
_______________________________________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
Only members subscribed via the mailman list are allowed to post.
Reply | Threaded
Open this post in threaded view
|

Re: What features should an (fictitious) IDE for Haskell have?

Alan & Kim Zimmerman
I would want to see moldable development[1] style search and visualisation.

Or something like [2]

Alan



On Mon, 30 Nov 2020 at 20:35, Gueven Bay via Haskell-Cafe <[hidden email]> wrote:
Greetings,

Imagine that you can decide what functionality and features an
Integrated Development Environment for Haskell should get. You can
make this IDE with your wishlist similar in power as other IDEs for
Java for example.

Now list as many features as you can, what would make the life of a
Haskell developer as comfortable as possible!?

I am dying to know how this list of features at the end (of this
thread) will look like.
_______________________________________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
Only members subscribed via the mailman list are allowed to post.

_______________________________________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
Only members subscribed via the mailman list are allowed to post.
Reply | Threaded
Open this post in threaded view
|

Re: What features should an (fictitious) IDE for Haskell have?

Tikhon Jelvis
Biggest feature I want is automated refactoring.

Changing a type definition and getting a bunch of errors to fix is one of the defining features of Haskell as a development experience—but the changes themselves are still pretty manual, and in larger codebases, this quickly gets painful. I would love a system where I make a change, get a bunch of errors and as much of the refactoring as possible is done for me automatically. This would include traditional refactorings like renaming functions and constructors, but it would also include more Haskell-specific refactorings, potentially with some amount of interactiveness. One example I ran into recently: I added a field to a constructor that was used pretty widely in my code, especially in lots of tests, and I had to manually update each pattern using that constructor to disregard the new field and add a default value (an empty string, in this case) everywhere the constructor was used to build a value. This was really tedious to do, and seems systematic enough that it could have been fully automated. In other scenarios, I would want my editor to cycle me through each location that needs to update and give me an automated suggestion I can accept or reject so that I could do a first pass quickly and only spend time on cases that require more manual intervention.

I have not used any Haskell refactoring tools yet, so I am not sure what exists today. Google around now, it looks like Facebook's retrie[1] project might be expressive enough to do the heavy lifting for a tool like this, so perhaps we just need a friendly frontend for it.


On Mon, Nov 30, 2020 at 12:49 PM Alan & Kim Zimmerman <[hidden email]> wrote:
I would want to see moldable development[1] style search and visualisation.

Or something like [2]

Alan



On Mon, 30 Nov 2020 at 20:35, Gueven Bay via Haskell-Cafe <[hidden email]> wrote:
Greetings,

Imagine that you can decide what functionality and features an
Integrated Development Environment for Haskell should get. You can
make this IDE with your wishlist similar in power as other IDEs for
Java for example.

Now list as many features as you can, what would make the life of a
Haskell developer as comfortable as possible!?

I am dying to know how this list of features at the end (of this
thread) will look like.
_______________________________________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
Only members subscribed via the mailman list are allowed to post.
_______________________________________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
Only members subscribed via the mailman list are allowed to post.

_______________________________________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
Only members subscribed via the mailman list are allowed to post.
Reply | Threaded
Open this post in threaded view
|

Re: What features should an (fictitious) IDE for Haskell have?

Henning Thielemann

On Mon, 30 Nov 2020, Tikhon Jelvis wrote:

> Biggest feature I want is automated refactoring.

Any such refactoring tool would require a (configurable) formatting and
indentation tool, because even simple search&replace will break your
layout. Thus, a good code formatter would be an even more important
feature of the IDE.
_______________________________________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
Only members subscribed via the mailman list are allowed to post.
Reply | Threaded
Open this post in threaded view
|

Re: What features should an (fictitious) IDE for Haskell have?

Alan & Kim Zimmerman
On Mon, 30 Nov 2020 at 21:42, Henning Thielemann <[hidden email]> wrote:

On Mon, 30 Nov 2020, Tikhon Jelvis wrote:

> Biggest feature I want is automated refactoring.

Any such refactoring tool would require a (configurable) formatting and
indentation tool, because even simple search&replace will break your
layout. Thus, a good code formatter would be an even more important
feature of the IDE.

The ghc-exactprint library (as used in retrie, hlint refactors and HaRe) makes it so you can change the AST in a refactoring and preserve formatting/layout in the result.

Alan


_______________________________________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
Only members subscribed via the mailman list are allowed to post.
Reply | Threaded
Open this post in threaded view
|

Re: What features should an (fictitious) IDE for Haskell have?

MarLinn
In reply to this post by Haskell - Haskell-Cafe mailing list

Most importantly: A good IDE is not a text editor, but an AST editor. If the AST happens to be presented as text, that's a choice of visualisation, nothing more. Better to start with a graph-like visualisation to free the mind, then think through the possible interactions. Maybe add the typical text-like visualisation later. But don't start there or you'll just re-invent notepad for the nth time.

Maybe don't even store the code as ascii text.



_______________________________________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
Only members subscribed via the mailman list are allowed to post.
Reply | Threaded
Open this post in threaded view
|

Re: What features should an (fictitious) IDE for Haskell have?

Gregory Guthrie-2

Sem like there are *many* standard examples around, IntelliJ, Eclipse, Netbeans, etc.

 

Are there specific reasons that a Haskell IDE would be different in features??

 

Is there something lacking in use of (say) the standard IntelliJ IDE for Haskell?

 

 

Dr. Gregory Guthrie

Maharishi International University

----------------------------------------------------------------

 

From: Haskell-Cafe <[hidden email]> On Behalf Of MarLinn
Sent: Monday, November 30, 2020 7:01 PM
To: [hidden email]
Subject: Re: [Haskell-cafe] What features should an (fictitious) IDE for Haskell have?

 

Most importantly: A good IDE is not a text editor, but an AST editor. If the AST happens to be presented as text, that's a choice of visualisation, nothing more. Better to start with a graph-like visualisation to free the mind, then think through the possible interactions. Maybe add the typical text-like visualisation later. But don't start there or you'll just re-invent notepad for the nth time.

Maybe don't even store the code as ascii text.

 


_______________________________________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
Only members subscribed via the mailman list are allowed to post.
Reply | Threaded
Open this post in threaded view
|

Re: What features should an (fictitious) IDE for Haskell have?

migmit-2
In reply to this post by MarLinn
Please DO store code as ascii text. At the very least that would allow the use of external tools — sed, diff, git, whatever. Non-ascii representations were tried multiple times, and largely failed, in particular because of terrible interaction with other tools.

Also, please make sure your IDE is a good text editor. Because that's what the code is — not AST, but text. Until it is finished (to a certain lax definition of "finished") it is likely to not even be representable in AST form.

Sent from my iPad

On 2020. Dec 1., at 2:02, MarLinn <[hidden email]> wrote:



Most importantly: A good IDE is not a text editor, but an AST editor. If the AST happens to be presented as text, that's a choice of visualisation, nothing more. Better to start with a graph-like visualisation to free the mind, then think through the possible interactions. Maybe add the typical text-like visualisation later. But don't start there or you'll just re-invent notepad for the nth time.

Maybe don't even store the code as ascii text.


_______________________________________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
Only members subscribed via the mailman list are allowed to post.

_______________________________________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
Only members subscribed via the mailman list are allowed to post.
Reply | Threaded
Open this post in threaded view
|

Re: What features should an (fictitious) IDE for Haskell have?

Branimir Maksimovic

I am pretty sure they all work iwth utf-8 files...

Greets, Branimir.

On 1.12.20. 3:06 пре подне, Mig Mit wrote:
Please DO store code as ascii text. At the very least that would allow the use of external tools — sed, diff, git, whatever. Non-ascii representations were tried multiple times, and largely failed, in particular because of terrible interaction with other tools.

Also, please make sure your IDE is a good text editor. Because that's what the code is — not AST, but text. Until it is finished (to a certain lax definition of "finished") it is likely to not even be representable in AST form.

Sent from my iPad

On 2020. Dec 1., at 2:02, MarLinn [hidden email] wrote:



Most importantly: A good IDE is not a text editor, but an AST editor. If the AST happens to be presented as text, that's a choice of visualisation, nothing more. Better to start with a graph-like visualisation to free the mind, then think through the possible interactions. Maybe add the typical text-like visualisation later. But don't start there or you'll just re-invent notepad for the nth time.

Maybe don't even store the code as ascii text.


_______________________________________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
Only members subscribed via the mailman list are allowed to post.

_______________________________________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
Only members subscribed via the mailman list are allowed to post.

_______________________________________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
Only members subscribed via the mailman list are allowed to post.
Reply | Threaded
Open this post in threaded view
|

Re: What features should an (fictitious) IDE for Haskell have?

Christopher Allen
In reply to this post by Haskell - Haskell-Cafe mailing list
It would suffice for me if it was as performant, featureful, and reliable as Intellij's Rust support.

On Mon, Nov 30, 2020 at 2:35 PM Gueven Bay via Haskell-Cafe <[hidden email]> wrote:
Greetings,

Imagine that you can decide what functionality and features an
Integrated Development Environment for Haskell should get. You can
make this IDE with your wishlist similar in power as other IDEs for
Java for example.

Now list as many features as you can, what would make the life of a
Haskell developer as comfortable as possible!?

I am dying to know how this list of features at the end (of this
thread) will look like.
_______________________________________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
Only members subscribed via the mailman list are allowed to post.


--
Chris Allen
Currently working on http://haskellbook.com

_______________________________________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
Only members subscribed via the mailman list are allowed to post.
Reply | Threaded
Open this post in threaded view
|

Re: What features should an (fictitious) IDE for Haskell have?

Gregory Guthrie-2

It might be good to update and refer to the wikihaskell.org page on Haskell IDEs.

     https://wiki.haskell.org/IDEs

 

(It only lists one IntelliJ option, of three)

 

Dr. Gregory Guthrie

Maharishi International University

----------------------------------------------------------------

 

From: Haskell-Cafe <[hidden email]> On Behalf Of Christopher Allen
Sent: Monday, November 30, 2020 8:50 PM
To: Gueven Bay <[hidden email]>
Cc: Haskell Cafe <[hidden email]>
Subject: Re: [Haskell-cafe] What features should an (fictitious) IDE for Haskell have?

 

It would suffice for me if it was as performant, featureful, and reliable as Intellij's Rust support.

 

On Mon, Nov 30, 2020 at 2:35 PM Gueven Bay via Haskell-Cafe <[hidden email]> wrote:

Greetings,

Imagine that you can decide what functionality and features an
Integrated Development Environment for Haskell should get. You can
make this IDE with your wishlist similar in power as other IDEs for
Java for example.

Now list as many features as you can, what would make the life of a
Haskell developer as comfortable as possible!?

I am dying to know how this list of features at the end (of this
thread) will look like.
_______________________________________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
Only members subscribed via the mailman list are allowed to post.


 

--

Chris Allen

Currently working on http://haskellbook.com


_______________________________________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
Only members subscribed via the mailman list are allowed to post.
Reply | Threaded
Open this post in threaded view
|

Re: What features should an (fictitious) IDE for Haskell have?

Haskell - Haskell-Cafe mailing list
In reply to this post by Gregory Guthrie-2
Typically, you programming with procedural mindset in an imperative language, but programming with mathematical mindset in a functional language. The difference in methodology would require difference in choices of methods / tactics.

On 2020-12-01, at 09:13, Gregory Guthrie <[hidden email]> wrote:

Sem like there are *many* standard examples around, IntelliJ, Eclipse, Netbeans, etc.
 
Are there specific reasons that a Haskell IDE would be different in features??
 
Is there something lacking in use of (say) the standard IntelliJ IDE for Haskell?
 
 
Dr. Gregory Guthrie
Maharishi International University
----------------------------------------------------------------
 
From: Haskell-Cafe <[hidden email]> On Behalf Of MarLinn
Sent: Monday, November 30, 2020 7:01 PM
To: [hidden email]
Subject: Re: [Haskell-cafe] What features should an (fictitious) IDE for Haskell have?
 

Most importantly: A good IDE is not a text editor, but an AST editor. If the AST happens to be presented as text, that's a choice of visualisation, nothing more. Better to start with a graph-like visualisation to free the mind, then think through the possible interactions. Maybe add the typical text-like visualisation later. But don't start there or you'll just re-invent notepad for the nth time.

Maybe don't even store the code as ascii text.

 
_______________________________________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
Only members subscribed via the mailman list are allowed to post.


_______________________________________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
Only members subscribed via the mailman list are allowed to post.
Reply | Threaded
Open this post in threaded view
|

Re: What features should an (fictitious) IDE for Haskell have?

Haskell - Haskell-Cafe mailing list
In reply to this post by migmit-2
Text is linear as it appears, but it is actually structured, and might be even more flexible. 

 In expressing structured ideas, I don't think it's easy to beat the ergonomics of text typing with certain graphics manipulation techniques, that'll be significant discovery in civilization of human beings once realized.

The Chinese word for civilization 文明 literally reads text and enlighten.

On 2020-12-01, at 10:06, Mig Mit <[hidden email]> wrote:

Please DO store code as ascii text. At the very least that would allow the use of external tools — sed, diff, git, whatever. Non-ascii representations were tried multiple times, and largely failed, in particular because of terrible interaction with other tools.

Also, please make sure your IDE is a good text editor. Because that's what the code is — not AST, but text. Until it is finished (to a certain lax definition of "finished") it is likely to not even be representable in AST form.

Sent from my iPad

On 2020. Dec 1., at 2:02, MarLinn <[hidden email]> wrote:



Most importantly: A good IDE is not a text editor, but an AST editor. If the AST happens to be presented as text, that's a choice of visualisation, nothing more. Better to start with a graph-like visualisation to free the mind, then think through the possible interactions. Maybe add the typical text-like visualisation later. But don't start there or you'll just re-invent notepad for the nth time.

Maybe don't even store the code as ascii text.


_______________________________________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
Only members subscribed via the mailman list are allowed to post.
_______________________________________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
Only members subscribed via the mailman list are allowed to post.


_______________________________________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
Only members subscribed via the mailman list are allowed to post.
Reply | Threaded
Open this post in threaded view
|

Re: What features should an (fictitious) IDE for Haskell have?

Joachim Durchholz
In reply to this post by MarLinn
That's one of the ideas that come up on a regular basis, but it doesn't
buy you anything in practice.

You want to be able to represent code in mails, websites, and books.
And you want that representation to be unambiguous, so you need to
define the whole parsing process.

In the past, having a binary representation would help with refactoring
and such, but modern CPUs are fast enough to create the AST on the fly.
Even in the presence of syntax errors.

Also, pure AST editors tend to be clunky. They disallow invalid syntax,
so the programmer is forced to do everything right. There are many
situations where you start writing down something vague and refine it,
dealing with those aspects first that you need.
In a sense, the problem is that an AST doesn't give you a scratchpad for
ideas and vagueness, everything has to be perfect from the get-go.

I first heard about such an idea in the 90s (when on-the-fly parsing
wasn't really doable). It was one of the things MS wanted to do, and
they even created a prototype. It failed.

Am 01.12.20 um 02:01 schrieb MarLinn:

> Most importantly: A good IDE is not a text editor, but an AST editor. If
> the AST happens to be presented as text, that's a choice of
> visualisation, nothing more. Better to start with a graph-like
> visualisation to free the mind, then think through the possible
> interactions. Maybe add the typical text-like visualisation later. But
> don't start there or you'll just re-invent notepad for the nth time.
>
> Maybe don't even /store/ the code as ascii text.
>
>
>
> _______________________________________________
> Haskell-Cafe mailing list
> To (un)subscribe, modify options or view archives go to:
> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
> Only members subscribed via the mailman list are allowed to post.
>

_______________________________________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
Only members subscribed via the mailman list are allowed to post.
Reply | Threaded
Open this post in threaded view
|

Re: What features should an (fictitious) IDE for Haskell have?

Joachim Durchholz
In reply to this post by Haskell - Haskell-Cafe mailing list
All IDEs mentioned have good, sometimes excellent support for
declarative languages like HTML, CSS, SQL, XML, you name it.

Sure, some things won't transfer easily. E.g. Haskell needs different
debugging tools, and different performance investigation tools.

But at the coding & code inspection level, Haskell isn't any different.
You code, you look up modules, you transform and refactor code. Modern
IDEs tend to struggle with dynamic languages where the lack of type
information makes them misidentify a lot of things, but Haskell isn't
one of these (type inference is easy to do on the fly with a modern CPU).

Am 01.12.20 um 07:53 schrieb YueCompl via Haskell-Cafe:

> Typically, you programming with procedural mindset in an imperative
> language, but programming with mathematical mindset in a functional
> language. The difference in methodology would require difference in
> choices of methods / tactics.
>
>> On 2020-12-01, at 09:13, Gregory Guthrie <[hidden email]
>> <mailto:[hidden email]>> wrote:
>>
>> Sem like there are **many** standard examples around, IntelliJ,
>> Eclipse, Netbeans, etc.
>> Are there specific reasons that a Haskell IDE would be different in
>> features??
>> Is there something lacking in use of (say) the standard IntelliJ IDE
>> for Haskell?
>> Dr. Gregory Guthrie
>> Maharishi International University
>> ----------------------------------------------------------------
>> *From:*Haskell-Cafe <[hidden email]
>> <mailto:[hidden email]>>*On Behalf Of*MarLinn
>> *Sent:*Monday, November 30, 2020 7:01 PM
>> *To:*[hidden email] <mailto:[hidden email]>
>> *Subject:*Re: [Haskell-cafe] What features should an (fictitious) IDE
>> for Haskell have?
>>
>> Most importantly: A good IDE is not a text editor, but an AST editor.
>> If the AST happens to be presented as text, that's a choice of
>> visualisation, nothing more. Better to start with a graph-like
>> visualisation to free the mind, then think through the possible
>> interactions. Maybe add the typical text-like visualisation later. But
>> don't start there or you'll just re-invent notepad for the nth time.
>>
>> Maybe don't even/store/the code as ascii text.
>>
>> _______________________________________________
>> Haskell-Cafe mailing list
>> To (un)subscribe, modify options or view archives go to:
>> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
>> Only members subscribed via the mailman list are allowed to post.
>
>
> _______________________________________________
> Haskell-Cafe mailing list
> To (un)subscribe, modify options or view archives go to:
> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
> Only members subscribed via the mailman list are allowed to post.
>

_______________________________________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
Only members subscribed via the mailman list are allowed to post.
Reply | Threaded
Open this post in threaded view
|

Re: What features should an (fictitious) IDE for Haskell have?

Haskell - Haskell-Cafe mailing list
In reply to this post by Joachim Durchholz
I wish this is being discussed in https://www.reddit.com/r/haskell/ so I can upvote this comment.

Do we have an alternative mechanism as with the mailing list?

I noticed Julia's community has some bots cross posting between a few of its sites, do we or can we have a similar mechanism?

On 2020-12-01, at 16:28, Joachim Durchholz <[hidden email]> wrote:

That's one of the ideas that come up on a regular basis, but it doesn't buy you anything in practice.

You want to be able to represent code in mails, websites, and books.
And you want that representation to be unambiguous, so you need to define the whole parsing process.

In the past, having a binary representation would help with refactoring and such, but modern CPUs are fast enough to create the AST on the fly. Even in the presence of syntax errors.

Also, pure AST editors tend to be clunky. They disallow invalid syntax, so the programmer is forced to do everything right. There are many situations where you start writing down something vague and refine it, dealing with those aspects first that you need.
In a sense, the problem is that an AST doesn't give you a scratchpad for ideas and vagueness, everything has to be perfect from the get-go.

I first heard about such an idea in the 90s (when on-the-fly parsing wasn't really doable). It was one of the things MS wanted to do, and they even created a prototype. It failed.

Am 01.12.20 um 02:01 schrieb MarLinn:
Most importantly: A good IDE is not a text editor, but an AST editor. If the AST happens to be presented as text, that's a choice of visualisation, nothing more. Better to start with a graph-like visualisation to free the mind, then think through the possible interactions. Maybe add the typical text-like visualisation later. But don't start there or you'll just re-invent notepad for the nth time.
Maybe don't even /store/ the code as ascii text.
_______________________________________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
Only members subscribed via the mailman list are allowed to post.

_______________________________________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
Only members subscribed via the mailman list are allowed to post.


_______________________________________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
Only members subscribed via the mailman list are allowed to post.
Reply | Threaded
Open this post in threaded view
|

Re: What features should an (fictitious) IDE for Haskell have?

Joachim Durchholz
In reply to this post by Haskell - Haskell-Cafe mailing list
I'm surprised nobody is looking at what's already there.

Haskell does have langserver support, which means it's easy to have a
plugin in any modern IDE that does code completion, cross-referencing,
on-the-fly diagnostics and such.

The more interesting question is: What's missing in the plugins for the
popular IDEs?


Am 30.11.20 um 21:34 schrieb Gueven Bay via Haskell-Cafe:

> Greetings,
>
> Imagine that you can decide what functionality and features an
> Integrated Development Environment for Haskell should get. You can
> make this IDE with your wishlist similar in power as other IDEs for
> Java for example.
>
> Now list as many features as you can, what would make the life of a
> Haskell developer as comfortable as possible!?
>
> I am dying to know how this list of features at the end (of this
> thread) will look like.
> _______________________________________________
> Haskell-Cafe mailing list
> To (un)subscribe, modify options or view archives go to:
> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
> Only members subscribed via the mailman list are allowed to post.
>

_______________________________________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
Only members subscribed via the mailman list are allowed to post.
Reply | Threaded
Open this post in threaded view
|

Re: What features should an (fictitious) IDE for Haskell have?

Sven Panne-2
Am Di., 1. Dez. 2020 um 09:48 Uhr schrieb Joachim Durchholz <[hidden email]>:
I'm surprised nobody is looking at what's already there.

Well, some time ago I actually did, and it was a slightly frustrating experience: I'm using Spacemacs, and when I had a look last time, the haskell-language-server project was very young, and so was lsp-haskell.el. It took quite some time to read HOWTOs/compile/set up things etc., and the result was a bit underwhelming: Slow, using tons of memory, buggy, etc. Somehow this was to be expected from a new project, nevertheless it was a bit demotivating. Although it had a much smaller feature set, I was much more happy with Intero, it worked basically out-of-the-box. For most other IDEs, setting up a language mode is often just ticking a checkbox or pressing a button in an extension manager.

Haskell does have langserver support, which means it's easy to have a
plugin in any modern IDE that does code completion, cross-referencing,
on-the-fly diagnostics and such.

Unless things have changed dramatically in the last few months, "easy" is definitely not the right word. Using the C++-LSP-Mode in Spacemacs takes a one-liner in the config ("Hey, please use clangd as the LSP backend") and an "apt install clangd" (if you don't have it already on your disk, which is very likely if you do development in C++ on Linux). I had a very different experience with Haskell and LSP.
 
The more interesting question is: What's missing in the plugins for the
popular IDEs?

You have probably already guessed my wish by now: A better end-user experience for setting up a Haskell IDE. Perhaps I should give haskell-language-server a new try, there seem to be precompiled binaries by now, and the Emacs Lisp part had quite a few fixes. Don't get me wrong: haskell-language-server is a great and important project, it's just that some months ago I wouldn't have recommended it to a newcomer. But this is a general problem in most Open Source projects: In their spare time, programmers like to program new features, not some packaging/deployment stuff, as important as the latter may be. This is probably only something for a person who gets paid to do this, and I'm not sure if there are such people in this project.

_______________________________________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
Only members subscribed via the mailman list are allowed to post.
Reply | Threaded
Open this post in threaded view
|

Re: What features should an (fictitious) IDE for Haskell have?

Georgi Lyubenov
Things *have* changed dramatically - you can install hls via ghcup, or clone+stack install.hs <desired-version>. For vim enabling it is literally one line for your lsp client. For vscode you don't even need to download/install it - there are static executables and installing the extension is enough.

It also fails much less often, automatic setup configuration is improved, and features are growing at a steady pace.

=======
Georgi

_______________________________________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
Only members subscribed via the mailman list are allowed to post.
Reply | Threaded
Open this post in threaded view
|

Re: What features should an (fictitious) IDE for Haskell have?

Sven Panne-2
Am Di., 1. Dez. 2020 um 16:36 Uhr schrieb Georgi Lyubenov <[hidden email]>:
Things *have* changed dramatically - you can install hls via ghcup, or clone+stack install.hs <desired-version>. For vim enabling it is literally one line for your lsp client. For vscode you don't even need to download/install it - there are static executables and installing the extension is enough.

Looking at https://taylor.fausak.me/2020/11/22/haskell-survey-results/#s2q1, stack is by far the most popular way to manage GHC installations. If I read https://github.com/haskell/haskell-language-server correctly and I don't want to compile hls for myself, I have the option of either using ghcup or manually downloading the prebuilt binaries. I have never used ghcup before, and I don't intend to do so in the future (stack user here ;-), but I gave it a try. It took me some tries and modifications to the script to install only hls (no need for additional GHC/Cabal installations) to an XDG-conformant path. Downloading the wrapper + some hls versions manually from https://github.com/haskell/haskell-language-server/releases is definitely doable, but still a bit fiddly. I guess Vim people need to do the same, only the VS Code extension does things more automagically.

In a nutshell: Much better than before, but a far cry from a one-liner for the most common installation/IDE combos. There is probably not much missing: Only a simple script to install the wrapper/all hls versions into an XDG-conformant path (optionally selecting only a subset of the versions, but this shouldn't be the default). Coupling this to ghcup doesn't look like a good idea, this tries to set up too many unneeded things, at least I wasn't able to figure out how to download *only* hls.
 
It also fails much less often, automatic setup configuration is improved, and features are growing at a steady pace.

Great! :-) I think I'll give it a real try soon. 

_______________________________________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
Only members subscribed via the mailman list are allowed to post.
123