Search Unity

[RELEASED] Howl - The Symbolic Notation for C# Programming

Discussion in 'Assets and Asset Store' started by eelstork, Aug 21, 2020.

  1. eelstork

    eelstork

    Joined:
    Jun 15, 2014
    Posts:
    221
    Howl is a new dev platform using symbolic notations - http://u3d.as/206b
    Here is an example:



    A Unity Integration (build, asset database, configuration) is now on the Asset Store.

    - Convert to/from C# (bi-directional)
    - Builds without hassle (same as C#)
    - Code editor support (Atom, VSCode) with syntax highlighting (Atom only)
    - Easy input via snippets.
    - Take the best, leave the rest (you can still write "return", "public" or anything you like)

    Initially, made available free of charge (some limitations, which do *not* apply to the asset store release).
    Also on GitHub:
    https://github.com/active-logic/uta

    May post a video later on showing the workflow.
    As to the feedback request... didn't get a chance to install this on a clean box, let alone Linux. So if you're interested in this please let me know what does (not) work and I'll rejoice (/ fix it).

    I will extend my thanks to @MostHated for suggesting the throw syntax (╯°□°)╯and (a possibly unintended side effect) the whimsy new ⌢ operator.

    Remember, in C# nobody will hear you Howl.
     
    Last edited: Sep 25, 2020
    MostHated likes this.
  2. eelstork

    eelstork

    Joined:
    Jun 15, 2014
    Posts:
    221
    Howl is now released! Thanks to the Asset store team for super-quick reviews and good communication (yes, there has been delays, which were mostly on me).
    Asset store URL: http://u3d.as/206b
     
  3. JoNax97

    JoNax97

    Joined:
    Feb 4, 2016
    Posts:
    611
    Ok I'm gonna bite. How do you to type in those symbols??
     
  4. eelstork

    eelstork

    Joined:
    Jun 15, 2014
    Posts:
    221
    Via snippets. Indeed there is no need to type symbols. Type "return" or "ret", get ⮐

    Supported in VSCode, Atom; I do recommend Atom because syntax coloring is supported, and chromium bugs affect a few symbols in VSCode.
     
  5. JoNax97

    JoNax97

    Joined:
    Feb 4, 2016
    Posts:
    611
    So I type normal C# and get something less readable, with limited support and that I can't past in most places without getting a bunch of missing characters.

    Sorry but I can't see the appeal
     
  6. eelstork

    eelstork

    Joined:
    Jun 15, 2014
    Posts:
    221
    @JoNax97 and that is totally fine : D

    "Less readable" is in the eye of the beholder here but uh... if this does not appeal to you in any way, what did you bite into?

    Sure, any symbolic notation initially looks confusing. That is about familiarity, not readability. The best I can say is my experience (going a month now) using this is positive. Learning the notation by typing snippets is easy, and there is no requirement to use all notations ever (C# verbose notations are still valid everywhere).

    Re: character support, it isn't about missing characters per se. Upstream bug:
    https://github.com/microsoft/vscode/issues/105045#issuecomment-686295784
     
    JoNax97 likes this.
  7. eelstork

    eelstork

    Joined:
    Jun 15, 2014
    Posts:
    221
    Howl 1.1 will be submitted soon with added notations:
    • Maths and physics - perhaps a dozen added notations, mainly to make vector maths more readable (see below)
    • Coroutines, with a macro for
      yield return null;
      (⟆)
    • Active Logic integration (see below)


    For vector maths 1.1 allows · for * and notations like t˙ (transform.position) or vec¹ (vec.normalized), along with shorthands for time () and conversions (∠ʳ for Mathf.deg2Rad).

    As with all other notations in Howl, type "pos" for position..., get symbols via snippets, learn the notations as you type.

    Screen Shot 2020-10-21 at 4.46.08 PM.png

    Above are samples of the Active Logic (AL) integration. AL was designed as a wholesome, C# friendly Behavior Tree (BT) integration, and it is already very concise without Howl. It was also designed to be used everywhere real time, so perhaps the symbolic notations are welcome here. For comparison:

    Screen Shot 2020-10-21 at 5.00.20 PM.png

    My favorite addition here is of course the ❰task❱ notation which decorates a stateless task, and retains its latest value. In the above example, a stone throw is spec'd in one line of code: equip the item, face towards the throw direction, play anim and release with a delay. Stateful node (Once) is needed since we don't want to reparent the projectile while the animation is still playing.

    As a reminder, Howl comes with an option to configure snippet generation, and plain C# is always supported.
     
  8. eelstork

    eelstork

    Joined:
    Jun 15, 2014
    Posts:
    221
    Howl v1.1 is now submitted to the store; thanks for your patience!
    Edit: release also available on Github
     
    Last edited: Nov 5, 2020