[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"doc-detail-81608-en":3,"doc-seo-81608-105":30,"detail-sidebar-cat-0-en-105":92},{"code":4,"msg":5,"data":6},0,"success",{"doc_id":7,"user_id":8,"nickname":9,"user_avatar":10,"doc_module":4,"category_id":11,"category_name":12,"doc_title":13,"doc_description":14,"doc_content":15,"file_id":16,"file_url":17,"file_type":18,"file_size":19,"view_count":20,"is_deleted":4,"is_public":21,"is_downloadable":21,"audit_status":21,"page_count":22,"language":23,"language_code":24,"site_id":25,"html_lang":24,"table_of_contents":26,"faqs":27,"seo_title":13,"seo_description":14,"update_tm":28,"read_time":29},81608,34359740700684,"Finn","https://ap-avatar.wpscdn.com/avatar/1f400023980c374ae676?_k=1777273430885731487",8,"Research & Report","Mixing visual and textual code","Dominant programming languages express domain-specific geometric ideas using only linear text, limiting clarity for inherently visual concepts. The work proposes hybrid languages that combine textual and visual syntactic constructs on equal footing without disturbing typical developer workflows. The extensions act as composable language features and preserve static reasoning about programs. The paper introduces Hybrid ClojureScript, enabling embedded visual interactive syntax rendered as mini-GUIs in an enhanced IDE while remaining editable text elsewhere.","Mixing visual and textual code  \nLEIF ANDERSEN  \nUniversity of Massachusetts Boston, USA  \n(email: [leif@leifandersen.net](leif@leifandersen.net))  \nMICHAEL BALLAN TYNE  \nNortheastern University, USA  \n([email:](email: ballantyne.m@northeastern.edu)[ ballantyne.m@northeastern.edu](email: ballantyne.m@northeastern.edu))  \nCAMERON MOY  \nNortheastern University, USA  \n(email: [camoy@ccs.neu.edu](camoy@ccs.neu.edu))  \nMATTHIAS FELL EISEN  \nNortheastern University, USA  \n([email:](email: matthias@ccs.neu.edu)[ matthias@ccs.neu.edu](email: matthias@ccs.neu.edu))  \nSTEPHEN CHANG  \nUniversity of Massachusetts Boston, USA  \n(email: [stephen.chang@umb.edu](stephen.chang@umb.edu))  \nAbstract  \nThe dominant programming languages support nothing but linear text to express domain-specific geometric ideas. What is needed are hybrid languages that allow developers to create visual syntactic constructs so that they can express their ideas with a mix of textual and visual syntax tailored to an application domain. This mix must put the two kinds of syntax on equal footing and, just as importantly, the extended language must not disrupt a programmer’s typical workflow. This means that any new visual syntax should be a proper language extension that is composable with other language features. Furthermore, the extensions should also preserve static reasoning about the program. This paper presents Hybrid ClojureScript, the first such hybrid programming language. Hybrid ClojureScript allows programmers to add visual interactive syntax and to embed instances of this syntax within a program’s text. An enhanced hybrid IDE can then display these embedded instances as mini-GUIs that programmers interact with, while other IDEs will show a textual representation of the syntax. The paper argues the necessity of such an extensibility mechanism, demonstrates the adoptability of the design, and discusses what might be needed to use the design in other languages.  \n1 Textual code is insufficient, visual code might be too  \nProgramming languages help programmers communicate their ideas, both to computers and to other programmers. Linear text suffices for this purpose most of the time, but many ideas are inherently geometric and better expressed visually.  \n1. 1 Background and research landscape  \nVisual programming languages [10] offer a potential solution, but many require all parts of a program to be visual, even though not all code is best understood this way. Further, as decades of programming history shows, developers will never completely give up textual  \n© 2026 Copyright held by the owner/author(s) .  \nThis work is licensed under a Creative Commons Attribution 4 .0 International License.  \nJournal of Functional Programming, Volume 36, Article 4 Submitted August 2024; accepted December 2025  \nDOI: 10.46298/jfp.17766  \n2 Leif Andersen, Michael Ballantyne, Cameron Moy, Matthias Felleisen, and Stephen Chang  \nlanguages—so any graphical syntax must supplement, not displace, textual syntax. Another issue is that many visual languages are not extensible or ”rich” [34]; that is, programmers cannot tailor the graphical syntax to a domain.  \nThe extensive work on live programming [7, 34, 62, 66, 72] has done much to advance code beyond static text, into the visual world. These systems typically allow code to be edited visually with feedback from runtime behavior of the program (thus moving away from both the ”static” and ”text” part of ”static text”) . While this enables a multitude of new applications, it also comes with the well-understood tradeoffs—e.g., in security or static reasoning ability—of overly dynamic code (see the extensive warnings that have been written about using eval in JavaScript [15, 64]) .  \nThis paper, a substantial revision and extension of the authors’ prior work [2], presents a novel solution: the design and implementation of a hybrid visual-textual language, Hybrid ClojureScript, that is both extensible and preserves static reasoning. The","cbCaiaBEFKECNbj8","https://ap.wps.com/l/cbCaiaBEFKECNbj8","pdf",2472232,6,1,39,"English","en",105,"# Abstract\n# Textual code is insufficient, visual code might be too\n## Background and research landscape","[{\"question\":\"Why are linear text-only programming languages considered insufficient for some geometric ideas?\",\"answer\":\"Many domain problems are inherently geometric and are better expressed visually than through purely linear text. The paper argues that text alone often fails to communicate these ideas clearly.\"},{\"question\":\"What is VIsx in Hybrid ClojureScript?\",\"answer\":\"VIsx (visual interactive syntax) is a hybrid syntax that is both interactive and editable as text. GUI edits via clicks or gestures update the underlying code, while a textual representation always remains available for editing.\"},{\"question\":\"How does the proposal keep visual extensions usable and safe for reasoning?\",\"answer\":\"Visual syntax is implemented as proper, composable language extensions rather than ad-hoc visualizations. Being linguistic extensions helps preserve static reasoning and keeps refactoring and analysis tools working.\"}]",1784174755,98,{"code":4,"msg":31,"data":32},"ok",{"site_id":25,"language":24,"slug":33,"title":13,"keywords":34,"description":14,"schema_data":35,"social_meta":87,"head_meta":89,"extra_data":91,"updated_unix":28},"mixing-visual-and-textual-code","",{"@graph":36,"@context":86},[37,54,69],{"@type":38,"itemListElement":39},"BreadcrumbList",[40,44,48,51],{"item":41,"name":42,"@type":43,"position":21},"https://docshare.wps.com","Home","ListItem",{"item":45,"name":46,"@type":43,"position":47},"https://docshare.wps.com/document/","Document",2,{"item":49,"name":12,"@type":43,"position":50},"https://docshare.wps.com/document/research-report/",3,{"item":52,"name":13,"@type":43,"position":53},"https://docshare.wps.com/document/mixing-visual-and-textual-code/81608/",4,{"url":52,"name":13,"@type":55,"author":56,"headline":13,"publisher":58,"fileFormat":61,"inLanguage":24,"description":14,"dateModified":62,"datePublished":63,"encodingFormat":61,"isAccessibleForFree":64,"interactionStatistic":65},"DigitalDocument",{"name":9,"@type":57},"Person",{"url":41,"name":59,"@type":60},"DocShare","Organization","application/pdf","2026-07-23","2026-07-16",true,{"@type":66,"interactionType":67,"userInteractionCount":20},"InteractionCounter",{"@type":68},"ViewAction",{"@type":70,"mainEntity":71},"FAQPage",[72,78,82],{"name":73,"@type":74,"acceptedAnswer":75},"Why are linear text-only programming languages considered insufficient for some geometric ideas?","Question",{"text":76,"@type":77},"Many domain problems are inherently geometric and are better expressed visually than through purely linear text. The paper argues that text alone often fails to communicate these ideas clearly.","Answer",{"name":79,"@type":74,"acceptedAnswer":80},"What is VIsx in Hybrid ClojureScript?",{"text":81,"@type":77},"VIsx (visual interactive syntax) is a hybrid syntax that is both interactive and editable as text. GUI edits via clicks or gestures update the underlying code, while a textual representation always remains available for editing.",{"name":83,"@type":74,"acceptedAnswer":84},"How does the proposal keep visual extensions usable and safe for reasoning?",{"text":85,"@type":77},"Visual syntax is implemented as proper, composable language extensions rather than ad-hoc visualizations. Being linguistic extensions helps preserve static reasoning and keeps refactoring and analysis tools working.","https://schema.org",{"og:url":52,"og:type":88,"og:title":13,"og:site_name":59,"og:description":14},"article",{"robots":90,"canonical":52},"index,follow",{"doc_id":7,"site_id":25},{"code":4,"msg":5,"data":93},[94,98,102,106,111,115,120,123,128,131,135],{"id":21,"doc_module":4,"doc_module_name":46,"category_name":95,"show_sort_weight":96,"slug":97},"Story & Novel",90,"story-novel",{"id":47,"doc_module":4,"doc_module_name":46,"category_name":99,"show_sort_weight":100,"slug":101},"Literature",80,"literature",{"id":53,"doc_module":4,"doc_module_name":46,"category_name":103,"show_sort_weight":104,"slug":105},"Exam",70,"exam",{"id":107,"doc_module":4,"doc_module_name":46,"category_name":108,"show_sort_weight":109,"slug":110},5,"Comic",60,"comic",{"id":20,"doc_module":4,"doc_module_name":46,"category_name":112,"show_sort_weight":113,"slug":114},"Technology",50,"technology",{"id":116,"doc_module":4,"doc_module_name":46,"category_name":117,"show_sort_weight":118,"slug":119},7,"Healthcare",40,"healthcare",{"id":11,"doc_module":4,"doc_module_name":46,"category_name":12,"show_sort_weight":121,"slug":122},30,"research-report",{"id":124,"doc_module":4,"doc_module_name":46,"category_name":125,"show_sort_weight":126,"slug":127},9,"Religion & Spirituality",20,"religion-spirituality",{"id":126,"doc_module":4,"doc_module_name":46,"category_name":129,"show_sort_weight":126,"slug":130},"World Cup","world-cup",{"id":132,"doc_module":4,"doc_module_name":46,"category_name":133,"show_sort_weight":132,"slug":134},10,"Lifestyle","lifestyle",{"id":136,"doc_module":4,"doc_module_name":46,"category_name":137,"show_sort_weight":107,"slug":138},19,"General","general"]