You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
<p>The Eve inspector shows what the browser devtools inspector could be with a more unified tech stack. When you click on a place in the UI, it can take you the various places in the code that could be relevant.</p>
60
+
<h2id="inspector">Intelligent Inspector</h2>
61
+
<p>When you "inspect" a place in the UI, it takes you the various places in the code that could be relevant.</p>
Copy file name to clipboardExpand all lines: catalog/glitch.html
+6-6Lines changed: 6 additions & 6 deletions
Original file line number
Diff line number
Diff line change
@@ -22,22 +22,22 @@
22
22
<section>
23
23
<h1id="glitch">Glitch</h1>
24
24
<em>Reviewed July 24, 2019</em>
25
-
<p>Glitch is a collaborative online IDE for creating NodeJS apps. It also features a community to explore and remix others' creations. There's no deploy button: the tool reloads itself every few keystrokes. It was founded by Fog Creek Software (Trello, StackOverflow) in 2017 and raised $30M. They company has a focus on diversity and inclusion, both on its internal team and Glitch's app community.</p>
25
+
<p>Glitch is a collaborative online IDE for creating NodeJS apps. It also features a community for exploring and remixing others' creations. There's no deploy button: the tool reloads itself every few keystrokes. It was founded by Fog Creek Software (Trello, StackOverflow) in 2017 and raised $30M.</p>
26
26
</section>
27
27
28
28
<section>
29
29
<h2id="productfeel">Product Feel</h2>
30
30
<ul>
31
31
<li>👍 Easy to get started and play around with community projects</li>
32
-
<li>👎 Hobbyist: toy version control, <ahref=""http://help-center.glitch.me/help/restrictions/">toy deployment</a></li>
33
-
<li>👎 Lame: childish graphics, tutorials and videos</li>
32
+
<li>👎 Hobbyist: toy version control, <ahref="http://help-center.glitch.me/help/restrictions/">toy deployment</a></li>
<p>The above video produces <ahref="https://glitch.com/edit/#!/stream-capybara">a simple webpage that counts the number of times its been loaded</a>. It demonstrates:</p>
40
+
<p>The above video produces <ahref="https://glitch.com/edit/#!/stream-capybara">a simple webpage that counts the number of times it's been loaded</a>. It demonstrates:</p>
41
41
<ul>
42
42
<li>automatic app reload every couple keystrokes</li>
<h2id="version-control">Visual Version Control</h2>
49
-
<p>Built on top of git, Glitch's visual version control tries to make it easier for beginners to rollback to earlier versions. They commit ("checkpoint") code every couple changes / minutes, but don't seem to handle forks. I found it confusing and would prefer either Google-docs-style revision history or Github-style branching diagram.
49
+
<p>Built on top of git, Glitch's visual version control tries to make it easier for beginners to rollback to earlier versions. It commits code every couple changes. It doesn't seem to handle forks. I found it confusing and would prefer either Google-docs-style revision history or a Github-style branching diagram.
<p>I can imagine this would be amazing for hackathons or other forms of close collaboration on a small project. However, I worry about larger projects with 2+ people working on different parts at the same time.</p>
62
+
<p>I can imagine this would be amazing for hackathons or other forms of close collaboration on a small project. However, I worry about larger projects with 2+ people working on different parts of a NodeJS app at the same time.</p>
Copy file name to clipboardExpand all lines: catalog/hazel.html
+3-9Lines changed: 3 additions & 9 deletions
Original file line number
Diff line number
Diff line change
@@ -22,7 +22,7 @@
22
22
<section>
23
23
<h1id="hazel">Hazel</h1>
24
24
<em>Reviewed July 24, 2019</em>
25
-
<p>While computer science theory normally analyzes complete and valid programs, the activity of programming consists mostly of incomplete and invalid programs. Hazel is an academic research project that is providing mathematical foundations for incomplete and invalid programs with the aim of improving the experience of programming through improved developer tool services. For example, Hazel provides a semantics for partially evaluating incomplete and invalid expressions. The Hazel project also features an experimental structured editor with a focus on fluid editing and rich input types.</p>
25
+
<p>While computer science theory normally analyzes complete and valid programs, the activity of programming consists mostly of incomplete and invalid programs. Hazel is an academic research project by Cyrus Omar that is providing mathematical foundations for incomplete and invalid programs with the aim of improving the experience of programming through improved developer tool services. For example, Hazel provides a semantics for partially evaluating incomplete and invalid expressions. The Hazel project also features an experimental structured editor with a focus on fluid editing and rich input types.</p>
26
26
</section>
27
27
28
28
<section>
@@ -36,21 +36,15 @@ <h2 id="type-data">Type errors with live data</h2>
36
36
<p>Type errors render as partially evaluated expressions with incompatible types being treated as "non-empty holes" and outlined in red.</p>
<h2id="guidance">Guidance for incomplete terms</h2>
42
-
<p>Eventually the semantic information Hazel will inform an "intelligent programmer’s assistant." <ahref="https://github.com/cyrus-/papers/blob/master/syzygy/syzygy.pdf">They found</a> "the use of type and context is several times more accurate...” and that 90% accuracy for variable predictions was "not uncommon".</p>
<p>Their structured editor will allow projections for various kinds of data (tables, inputs, pictures, JSON, etc). <ahref="https://www.youtube.com/watch?v=gOSlR62-rd8">A former project of Cyrus's</a> featured an IDE-embedded color picker and regex tester.</p>
42
+
<p>The Hazel structured editor allows for various kinds of rich data (tables, inputs, pictures, JSON, etc). <ahref="https://www.youtube.com/watch?v=gOSlR62-rd8">A former project of Cyrus's</a> featured an IDE-embedded color picker and regex tester.</p>
49
43
</section>
50
44
51
45
<section>
52
46
<h2id="fluid">Fluid Structured Editing</h2>
53
-
<p>Influenced by work by the mbeddr team, terms in Hazel can be constructed in any order (even from inside-out) and can be used before they are defined.</p>
47
+
<p>Influenced by work of the mbeddr team, terms in Hazel can be constructed in any order (even from inside-out) and can be used before they are defined.</p>
<p>Trying to bring programming to "the rest of us", HyperTalk is renowned for its English-like syntax. A common example of HyperTalk's readability is line: <code>put the first word of the third line of field "hello" into field "goodbye"</code>. The numbers <code>1</code> and <code>2</code> can also be referenced with <code>one</code> and <code>two</code> or <code>first</code> and <code>second</code>.</p>
60
+
<p>Trying to bring programming to "the rest of us", HyperTalk is renowned for its English-like syntax. A common example of HyperTalk's readability is the line: <code>put the first word of the third line of field "hello" into field "goodbye"</code>. The numbers <code>1</code> and <code>2</code> can be referenced with <code>one</code> and <code>two</code> or <code>first</code> and <code>second</code>.</p>
<p>It's extremely rare to see live-evaluated subexpression annotations, particularly in non-visual languages. Some non-visual languages, put the results of whole lines off to the side, but Lamdu is one of the first to publish a working implementation of underlined evaluation of all intermediate subexpressions. This goals a long way towards making functional programming understandable for beginners.
78
+
<p>It's extremely rare to see live-evaluated subexpression annotations, particularly in languages with a textual representation. Some non-visual languages put the results of whole lines off to the side, but Lamdu is one of the first to publish a working implementation of underlined evaluation of all intermediate subexpressions. This goes a long way towards making functional programming understandable for beginners.
Copy file name to clipboardExpand all lines: catalog/luna.html
+7-6Lines changed: 7 additions & 6 deletions
Original file line number
Diff line number
Diff line change
@@ -22,17 +22,18 @@
22
22
<section>
23
23
<h1id="luna">Luna</h1>
24
24
<em>Reviewed July 18, 2019</em>
25
-
<p>Luna is a Haskell-inspired functional programming language, with both node-and-wire and textual representations. Despite its visual environment, Luna is targeting a technical user base, and expects its users to be fluent in its textual language as well. Luna was designed with data processing in mind, for industries such as "data science, machine learning, IoT,Bioinformatics, computer graphics or architecture. The Luna Electron app was released and open-source in Jan 2018.</p>
25
+
<p>Luna is a Haskell-inspired functional programming language, with both a node-and-wire and a textual representations. Despite its visual environment, Luna is targeting a technical user base, and expects its users to be fluent in its textual language as well. Luna was designed with data processing in mind, for industries such as "data science, machine learning, IoT,Bioinformatics, computer graphics or architecture." The Luna Electron app was released and open-source in Jan 2018.</p>
<h2id="intermdiate">Strong visual metaphors for functions</h2>
55
-
<p>Inputs are to the left and output is to the right, in both the functions you’re using and defining. It feels like a fractal structure because every screen accepts inputs on the far-left and outs on the far-right, and in-between are function nodes that also accept their inputs on the left and outputs on the right.</p>
56
+
<p>Inputs are to the left and output is to the right, in both the functions you’re using and defining. It feels like a fractal structure because every screen accepts inputs on the far-left and ouputs on the far-right, and in-between are function nodes that also accept their inputs on the left and outputs on the right.</p>
<p>You can select a number of nodes and hit the f-key to abstract them into a function. Luna intelligently figures out what inputs and outputs there are to your function, and hooks them up correctly. Below is Luna program where we want to abstract the middle five nodes:</p>
<p>Live-updated intermediate values is a very compelling feature. The following video shows a stream of numbers which create an animation of a growing circle. Both the stream of numbers and the circle update live. In the vide, I mouse over both nodes to show their type signatures.</p>
66
+
<p>Live-updated intermediate values is a very compelling feature. The following video shows a stream of numbers which create an animation of a growing circle. Both the stream of numbers and the circle update live. In the video, I mouse over both nodes to show their type signatures.</p>
<p>Nodes in Luna can be arbitrary Luna expressions, which can be great for compactness. The following video demonstrates how their autocomplete pairs well with their dot-syntax which normally isn't found in functional languages. However, you may notice how selecting each autocomplete suggestion bounces me out of the textbox, and I have to scroll and double-click to resume typing.</p>
72
+
<p>Nodes in Luna can be arbitrary Luna expressions, which can be great for compactness. The following video demonstrates how their autocomplete functionality pairs well with their dot-syntax (which normally isn't found in functional languages). However, you may notice how selecting each autocomplete suggestion bounces me out of the textbox, and I have to scroll and double-click to resume typing.</p>
0 commit comments