{"id":114449,"date":"2020-06-15T14:46:43","date_gmt":"2020-06-15T14:46:43","guid":{"rendered":"http:\/\/gamefromscratch.com\/post.aspx?id=993fa614-cbd9-4253-8ad7-561ffa685989"},"modified":"2020-06-15T14:46:43","modified_gmt":"2020-06-15T14:46:43","slug":"wren-programming-language","status":"publish","type":"post","link":"https:\/\/sickgaming.net\/blog\/2020\/06\/15\/wren-programming-language\/","title":{"rendered":"wren Programming Language"},"content":{"rendered":"<p>Very similar in scope and purpose to the <a href=\"https:\/\/www.gamefromscratch.com\/post\/2020\/06\/09\/Gravity-Embeddable-Programming-Language.aspx\">recently covered Gravity language<\/a>, today we are <a href=\"https:\/\/wren.io\/\">looking at wren<\/a>.&nbsp; wren is a class based programming language that aims to bring Smalltalk like programming to a Lua sized footprint, with the intention of being embedded in application code.&nbsp; Highlights of wren include:<\/p>\n<blockquote>\n<ul readability=\"7.4464500601685\">\n<li readability=\"1.6114285714286\">\n<p><strong>Wren is small.<\/strong> The VM implementation is under <a href=\"https:\/\/github.com\/wren-lang\/wren\/tree\/main\/src\">4,000 semicolons<\/a>. You can skim the whole thing in an afternoon. It&#8217;s <em>small<\/em>, but not <em>dense<\/em>. It is readable and <a href=\"https:\/\/github.com\/wren-lang\/wren\/blob\/93dac9132773c5bc0bbe92df5ccbff14da9d25a6\/src\/vm\/wren_value.h#L486-L541\">lovingly-commented<\/a>.<\/p>\n<\/li>\n<li readability=\"0.75\">\n<p><strong>Wren is fast.<\/strong> A fast single-pass compiler to tight bytecode, and a compact object representation help Wren <a href=\"http:\/\/wren.io\/performance.html\">compete with other dynamic languages<\/a>.<\/p>\n<\/li>\n<li readability=\"0.95625\">\n<p><strong>Wren is class-based.<\/strong> There are lots of scripting languages out there, but many have unusual or non-existent object models. Wren places <a href=\"http:\/\/wren.io\/classes.html\">classes<\/a> front and center.<\/p>\n<\/li>\n<li readability=\"0\">\n<p><strong>Wren is concurrent.<\/strong> Lightweight <a href=\"http:\/\/wren.io\/concurrency.html\">fibers<\/a> are core to the execution model and let you organize your program into an army of communicating coroutines.<\/p>\n<\/li>\n<li readability=\"3.6116504854369\">\n<p><strong>Wren is a scripting language.<\/strong> Wren is intended for embedding in applications. It has no dependencies, a small standard library, and <a href=\"http:\/\/wren.io\/embedding\/\">an easy-to-use C API<\/a>. It compiles cleanly as C99, C++98 or anything later.<\/p>\n<\/li>\n<\/ul>\n<\/blockquote>\n<p>Wren is open source under the MIT license with the <a href=\"https:\/\/github.com\/wren-lang\/wren\">source available on GitHub<\/a>.&nbsp; You can also try out the wren language in your browser using <a href=\"https:\/\/ppvk.github.io\/wren-nest\/\">this handy site<\/a>.&nbsp; You can learn more about wren in the <a href=\"https:\/\/youtu.be\/Zx9HPy2IjCU\">video<\/a> below.<\/p>\n<p align=\"center\"><iframe loading=\"lazy\" width=\"853\" height=\"480\" src=\"https:\/\/www.youtube.com\/embed\/Zx9HPy2IjCU\" frameborder=\"0\" allowfullscreen allow=\"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\">[embedded content]<\/iframe><\/p>\n<p class=\"under\"> <span class=\"categories\"><a href=\"https:\/\/www.gamefromscratch.com\/category\/GameDev-News.aspx\">GameDev News<\/a> <a href=\"https:\/\/www.gamefromscratch.com\/category\/Programming.aspx\">Programming<\/a><\/span> <span class=\"tags\"><\/span> <\/p>\n<hr>\n<p> <!--\n<script type=\"text\/javascript\"><!- - google_ad_client = \"ca-pub-5156240514307514\"; \/* GFS 720 Post above Comments *\/ google_ad_slot = \"5626844176\"; google_ad_width = 728; google_ad_height = 90; \/\/- ->\n<\/script>\n--><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Very similar in scope and purpose to the recently covered Gravity language, today we are looking at wren.&nbsp; wren is a class based programming language that aims to bring Smalltalk like programming to a Lua sized footprint, with the intention of being embedded in application code.&nbsp; Highlights of wren include: Wren is small. The VM [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[71,64],"tags":[72,73],"class_list":["post-114449","post","type-post","status-publish","format-standard","hentry","category-game-development","category-programming","tag-gamedev-news","tag-programming"],"_links":{"self":[{"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/posts\/114449","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/comments?post=114449"}],"version-history":[{"count":0,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/posts\/114449\/revisions"}],"wp:attachment":[{"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/media?parent=114449"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/categories?post=114449"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/tags?post=114449"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}