Conversation

if you want to reinvent the agda editor experience (or have smaller ideas for how it could be improved atm), please reach out - usability is the #1 thing on my head. even if i'm focused on improving cubical, the rest of the language needs to be better, too :)
3
21
Honestly, buttons would go incredibly far, the keybinding approach to things is extremely counterintuitive to most students (and me, honestly)
2
7
We said this in 1997, and it'll be just as true in 2097. Every non-trivial language needs language levels, some are just slower to accept it and even slower to implement it than others.
A natural solution for all of these problems is to stratify the programming language into several levels. Each level should provide enough power to teach a new set of constructs and programming paradigms and it must not allow irrelevant language features to interfere with the goals of a teaching unit. In short, a pedagogic programming environment must be able to grow along with
the students through a course.
3
24
I believe it. I imagine it's also difficult to convince students of their value: I learned Racket with language levels, and in retrospect, it really forced me to understand what was happening, but at the time I just wanted to steamroll ahead to more exciting features.
1
6
Yeah, even starting with Agda is a way of pretending I have language levels? Because next exercise we do some of the same proofs in Coq, this time with access to tactics
1
8
If I could disable tactics entirely in Coq before adding them in, I'd love that. I really don't like how people think about proofs when they learn tactics before proof objects, be they ephemeral or explicit
1
12
Like super weird how many courses teach you metaprogramming via tactics before you learn the actual programming language you're doing metaprogramming for ...
2
22
I agree learning to prove things without tactics makes for a better way to understand what is going on. Tactics although convenient always made things opaque for me. One of the reason I am enjoying agda. Also I get really confused by the semantics of how some tactics are used
1
2
Also when I'm talking about semantics I'm talking about usage semantics where some tactics can use `by` and there are things like `[easy|]` when I want to use it on the first constructor and `[easy..|]` when I want to use on all constructors except the last. Maybe I suck at it.
1
Show replies