Code completion is vital to a modern development environment, and the availability of code completion in Observable drastically improves its usability.
In all the IDEs I’ve worked with in the last few years, the display of code completion options is activated just by typing, without requiring the tab button. I’m a bit embarrassed to admit that, until the other day, I didn’t realize Observable supported code completion at all, and my interest was waning as a result. If an experienced developer like myself can overlook this, how likely is it that new programmers would find it?
And Observable is meant to be friendly to beginning programmers. A beginning programmer might be unaware that code completion is even a thing, and so wouldn’t think to ask if Observable supports it and how to use it. My hunch is that the large majority of inexperienced programmers on Observable are unaware that it supports code completion, and are experiencing much more frustration using the framework than they would otherwise.
My suggestion would be to make the availability of code completion much more prominent in the documentation, especially the parts geared to inexperienced programmers. For example, the notebook “Introduction to Code” would be a good candidate for describing this feature.
Thanks for the suggestion! We’re still sticking with tab-based autocomplete rather than always-on - while developing the feature, I did field research and found that it’s nearly an even split for auto-vs-trigger completion, and our personal preferences at the office were for triggered completion, because it puts less pressure on the performance of the method that gets hints, and it poses less of a usability issue if you have thousands of completions.
But the new tutorial series mentions autocompletion in the first tutorial, which I hope helps to draw more attention to it.
good call! best notebooks I’ve seen and deved just use vanilla JS.
I’d rather not have observablehq UI pull in the world when I code and have it do it only on tab key hit request.
my 2 kopek on this
Thanks for taking the time to read and respond to my feedback!
The decision you described does sound reasonable to me. I understand that both approaches have their advantages, and opinions were fairly split. It makes sense to go with the tiebreaker of “which option places a lower burden on the developers?”, especially considering how much you must have on your plates as you develop this young framework.
It’s not that I wanted to gripe about the choice of triggered completion, but more that I was concerned that it reduced the discoverability of the feature, especially for newcomers to programming who would not think to ask “how do I trigger completion?” But since you intend to draw attention to it in the documentation, it shouldn’t be a problem then.
Keep up the good work folks!