-
Notifications
You must be signed in to change notification settings - Fork 4.2k
Closed
Description
Interactive Design Meeting Notes - 1/30/15
Definitions
- REPL: a read-eval-print-loop is a tool that allows developers to execute code snippets in a user-supplied context
- Scripting: a light-weight solution for writing simple and small programs. Includes an API for users to execute scripts in host-supplied applications
- Interactive Window: the Visual Studio component that will host the interactive modes of languages
- Design-time, also referred to as "standalone," includes scenarios that are not attached to a debugger process
- Debug-time, also referred to as the "immediate window," includes scenarios that are attached to a debugger process
Design Team
The following individuals are members of the dream team:
Anthony D. Green
Chuck Stoner
Dustin Campbell
Kasey Uhlenhuth
Kevin Halverson
Kevin Pilch-Bisson
Lincoln Atkinson
Manish Jayaswal
Matt Warren
Tomas Matousek
Special Guests:
Neal Gafter
Agenda: Language Semantics & REPL Features
Quotes of the Day:
"It’s all about Microsoft BOB--best of breed."
"Only Amazon can pull off One-Click"
Language Semantics
Last time, we did not get a chance to cover the additional directives that F# uses: '#l' and '#time'.
- #l: Allows a developer to add "some path" to assembly and script resolution search path.
- We don't see this as necessary. Our goal is to do this resolution automatically when developers #r a NuGet package.
- #time: Allows a developer to turn on simple perf stats, e.g. Real, CPU, GCU, for each evaluated command.
- We don't see this as a directive and it is low priority for now.
- @glennblock: Yes, we plan to allow 'await' at the top-level in scripts
REPL Features
We met to check out successful REPLs that exist today. The key insights we got were:
REPLs:
- IPython has a decoupled two-process that places the evaluation in its own process (the kernel). We have a similar model, but we lack a well-specified protocol (perhaps we should emulate IPython's).
- We should look into the "notebook" feature and see if it's something we think is valuable for C#/VB developers. Would be a great tool for documenting APIs and tutorials online.
- Inline visualizations are interesting, but any visualizations we have should be consistent with our debugging experiences today.
- Mathematica is powerful because it allows you to manipulate outputs and change their state. This would make C# data-scientist friendly.
- We should look into the possibility of integrating the ability to test UI behavior (possibly through WinForms).
Debugging:
There are two primary debugging scenarios with the REPL:
- Developers use the REPL to aid debugging within VS
- Developers use the REPL to debug script files within the console (hit F5 to debug in console)
Note:
There will be no meeting next week. We will be working on building Interactive!
Reactions are currently unavailable