{"id":8158,"date":"2021-02-07T23:12:16","date_gmt":"2021-02-07T22:12:16","guid":{"rendered":"https:\/\/monodes.com\/predaelli\/?p=8158"},"modified":"2021-02-07T23:15:37","modified_gmt":"2021-02-07T22:15:37","slug":"the-v-programming-language","status":"publish","type":"post","link":"https:\/\/monodes.com\/predaelli\/2021\/02\/07\/the-v-programming-language\/","title":{"rendered":"The V Programming Language"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">I&#8217;ve just read &#8220;<a href=\"https:\/\/erik-engheim.medium.com\/is-zig-the-long-awaited-c-replacement-c8eeace1e692\">Is Zig the long awaited C replacement<\/a>&#8221; and it cites: <em><a href=\"https:\/\/vlang.io\/compilation_speed\">The V Programming Language<\/a><\/em> seems to be a &#8220;fastly compiling&#8221; language.<\/p>\n\n\n\n<blockquote><p>Compilation speed benchmark<\/p><ul>\n<li>C 5.2s gcc test.c<\/li>\n<li>C++ 1m 25s g++ test.cpp<\/li>\n<li>Zig 10.1s zig build-exe test.zig<\/li>\n<li>Nim 45s nim c test.nim<\/li>\n<li>Rust Stopped after 30 minutes rustc test.rs<\/li>\n<li>Swift Stopped after 30 minutes swiftc test.swift<\/li>\n<li>D Segfault after 6 minutes dmd test.d<\/li>\n<li>V 0.6s v test.v<\/li>\n<\/ul><p>I wrote a small program that generates 400 000 lines of code in several languages to benchmark their compilation speed.<\/p><\/blockquote>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">#!\/bin\/bash\necho &quot;\nclass FOO\ncreate make\nfeature make\nlocal i: INTEGER\ndo&quot;\nlet i=0\nwhile (( $i &lt; 200000 ))\ndo\necho &quot;\ni := &quot;$((++i))&quot;\ni.print_on(std_output) &quot;\ndone\necho &quot;\nend\nend -- class FOO\n&quot;<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"\" data-line=\"\">class FOO\ncreate make\nfeature make\nlocal i: INTEGER\ndo\n\n  i := 1\n  i.print_on(std_output) \n\n  i := 2\n  i.print_on(std_output) \n....\nend\nend --class <\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Liberty Eiffel is a trans-compile you know. It didn&#8217;t take too much to turn it into C but it run the C compiler underneath  after 8 minutes is still compiling a 20mb behemoth it produced&#8230;.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But the most urgent problem is that bootstrapping Liberty is still a mono-core script&#8230; <\/p>\n","protected":false},"excerpt":{"rendered":"<p class=\"excerpt\">I&#8217;ve just read &#8220;Is Zig the long awaited C replacement&#8221; and it cites: The V Programming Language seems to be a &#8220;fastly compiling&#8221; language. Compilation speed benchmark C 5.2s gcc test.c C++ 1m 25s g++ test.cpp Zig 10.1s zig build-exe test.zig Nim 45s nim c test.nim Rust Stopped after 30 minutes rustc test.rs Swift Stopped&hellip;<\/p>\n<p class=\"more-link-p\"><a class=\"more-link\" href=\"https:\/\/monodes.com\/predaelli\/2021\/02\/07\/the-v-programming-language\/\">Read more &rarr;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":4,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"","footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false,"_members_access_role":[],"_members_access_error":""},"categories":[118,34,98],"tags":[],"class_list":["post-8158","post","type-post","status-publish","format-standard","hentry","category-comparisons","category-eiffel","category-liberty-eiffel"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p6daft-27A","jetpack-related-posts":[{"id":11120,"url":"https:\/\/monodes.com\/predaelli\/2024\/01\/07\/yet-another-missing-eiffel-%f0%9f%98%a2\/","url_meta":{"origin":8158,"position":0},"title":"Yet another missing Eiffel \ud83d\ude22","author":"Paolo Redaelli","date":"2024-01-07","format":false,"excerpt":"On https:\/\/github.com\/attractivechaos\/plb2 there is yet another programming language benchmark. And yet another not having Eiffel.... In addition to C, there is Nim, V, Rust.... that's very sad \ud83d\ude22","rel":"","context":"In &quot;Eiffel&quot;","block_context":{"text":"Eiffel","link":"https:\/\/monodes.com\/predaelli\/category\/eiffel\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":10303,"url":"https:\/\/monodes.com\/predaelli\/2023\/03\/12\/modern-c-replacements\/","url_meta":{"origin":8158,"position":1},"title":"Modern C replacements?","author":"Paolo Redaelli","date":"2023-03-12","format":false,"excerpt":"These days I was just wondering if anyone has compiled a list of \"Modern C replacement\" languages when Slashdot almost read my mind: Meet Zig: the Modern Alternative to the C Programming Language - Slashdot Systems-oriented developers already have programming languages like C, C++, Rust, and Go, notes InfoWorld. But\u2026","rel":"","context":"In &quot;Senza categoria&quot;","block_context":{"text":"Senza categoria","link":"https:\/\/monodes.com\/predaelli\/category\/senza-categoria\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1286,"url":"https:\/\/monodes.com\/predaelli\/2016\/04\/17\/eiffel-a-viable-candidate-as-a-language-for-the-gnome-platform\/","url_meta":{"origin":8158,"position":2},"title":"Eiffel: A viable candidate as a language for the Gnome platform ?","author":"Paolo Redaelli","date":"2016-04-17","format":false,"excerpt":"Eiffel: A viable candidate as a language for the Gnome platform ? It was 2004. Linux were labelled as a cancer by Ballmer, Android and iPhone didn't existed. Multi-core CPU were still high-end. It was a different world. From archive.org, before it got lost.... Twelve years ago. And it was\u2026","rel":"","context":"In &quot;Eiffel&quot;","block_context":{"text":"Eiffel","link":"https:\/\/monodes.com\/predaelli\/category\/eiffel\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":297,"url":"https:\/\/monodes.com\/predaelli\/2015\/06\/12\/javascript-other-languages\/","url_meta":{"origin":8158,"position":3},"title":"JavaScript + Other Languages","author":"Paolo Redaelli","date":"2015-06-12","format":"link","excerpt":"JavaScript+OtherLanguages Those slides JavaScript + Other Languages are really useful to implement an eventual Eiffel to JavaScript compiler. Well, actually it should be called transcompiler.... We could just feed the C files made by current Liberty compiler but it seems to me that passing throught C which is a procedural\u2026","rel":"","context":"In &quot;Eiffel&quot;","block_context":{"text":"Eiffel","link":"https:\/\/monodes.com\/predaelli\/category\/eiffel\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":8181,"url":"https:\/\/monodes.com\/predaelli\/2023\/03\/12\/replacing-c\/","url_meta":{"origin":8158,"position":4},"title":"Replacing C","author":"Paolo Redaelli","date":"2023-03-12","format":false,"excerpt":"Do We Need a Replacement for C? I found this old draft that cites Zig programming language... time to undraft it... :) C is a widely used language used to program anything from OS kernels to cryptography libraries. Is it time for a replacement? Erik EngheimNov 25, 2020\u00b75 min read\u2026","rel":"","context":"In &quot;Senza categoria&quot;","block_context":{"text":"Senza categoria","link":"https:\/\/monodes.com\/predaelli\/category\/senza-categoria\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":11037,"url":"https:\/\/monodes.com\/predaelli\/2023\/12\/17\/haxe-the-cross-platform-toolkit\/","url_meta":{"origin":8158,"position":5},"title":"Haxe &#8211; The Cross-platform Toolkit","author":"Paolo Redaelli","date":"2023-12-17","format":"quote","excerpt":"Watabou's Procgen\u00a0Arcana is is a collection of free map generators for tabletop role-playing games and worldbuilding. Currently, it consists of six generators, all of them are in active development. They are proprietary but free to use and they are made with Haxe Haxe - The Cross-platform Toolkit Haxe is an\u2026","rel":"","context":"In &quot;Eiffel&quot;","block_context":{"text":"Eiffel","link":"https:\/\/monodes.com\/predaelli\/category\/eiffel\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/posts\/8158","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/comments?post=8158"}],"version-history":[{"count":0,"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/posts\/8158\/revisions"}],"wp:attachment":[{"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/media?parent=8158"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/categories?post=8158"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/tags?post=8158"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}