This repository was archived by the owner on Oct 7, 2020. It is now read-only.

Description
This thought is inspired by Tim Ottinger's recent Dot-Programming your Object Oriented Code and some subsequent Twitter discussion. Tim paints a pretty accurate picture of how IDEs work to great advantage in OO langs.
When you write a program, you will not read the documentation. You don't have time and inclination for that. [...] You type the name of some object and you press the dot. The list that pops up is your guide to the world of the object whose name lives on the left side of the dot you just pressed.
The discoverability is so powerful that when you pick up a new library, you often only need to read the documentation far enough to instantiate one core object, and any IDE can walk you through the rest.
Coming to haskell from OO feels like there's just a soup of functions; no context-sensitivity...
--@doublehelix
There are two big reasons I see that a naive code completion feature doesn't easily fit Haskell:
- The workflow doesn't tend to proceed strictly left-to-right, so completion isn't as simple as just inserting at the cursor. In a haskell translation of my previous example, the code
z $ y x
would be written from right to left if x
leads to the discovery of y
and then to z
.
- What the IDE should suggest is a more complicated question. The OO case is trivial - just list the members of the type. With Haskell... I'm not even entirely sure what I'm asking for.
I think anything we can do to create a discovery experience akin to OO code completion would be a huge win.