{"id":15039,"date":"2025-12-26T11:08:07","date_gmt":"2025-12-26T18:08:07","guid":{"rendered":"https:\/\/jasonsblog.ddns.net\/?p=15039"},"modified":"2025-12-26T11:09:12","modified_gmt":"2025-12-26T18:09:12","slug":"phoenix-a-new-x-server-written-from-scratch-with-zig","status":"publish","type":"post","link":"https:\/\/jasonsblog.ddns.net\/index.php\/2025\/12\/26\/phoenix-a-new-x-server-written-from-scratch-with-zig\/","title":{"rendered":"Phoenix: A New X Server Written From Scratch With Zig"},"content":{"rendered":"\n<p>I&#8217;m not that familiar with Zig, so I included a second article below with a nice overview. So beyond <a href=\"https:\/\/jasonsblog.ddns.net\/?s=XLibre&amp;ct_post_type=post%3Apage\" target=\"_blank\" rel=\"noreferrer noopener\">XLibre<\/a> which I run on my computers instead of X.Org&#8217;s X11 implementation, we have another project trying rewrite X11 in Zig from scratch, to include some of the security and improvements that Wayland is supposed to bring. Since IBM\/Red Hat has used underhanded methods, even bragging about it, to kill X.Org to force Linux to Wayland, I just don&#8217;t trust them of their Wayland myself. It&#8217;s really a modern approach for integrating agentic AI bossware, and then full on spyware so your Linux system will be as much a spying platform as Windows, MacOS, iOS and Android. But it remains to be seen where Phoenix written in Zig will fall with agentic AI integration, though more X11 options might be a good thing if you want to live in a Wayland free world.<\/p>\n\n\n\n<p><a href=\"https:\/\/www.phoronix.com\/news\/Phoenix-X-Server\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.phoronix.com\/news\/Phoenix-X-Server<\/a><\/p>\n\n\n<div class=\"wp-block-ub-divider ub_divider ub-divider-orientation-horizontal\" id=\"ub_divider_9c40a6b5-a30d-4dbf-aa40-e1941c453975\"><div class=\"ub_divider_wrapper\" style=\"position: relative; margin-bottom: 2px; width: 100%; height: 2px; \" data-divider-alignment=\"center\"><div class=\"ub_divider_line\" style=\"border-top: 2px solid #ccc; margin-top: 2px; \"><\/div><\/div><\/div>\n\n\n<p>Written by <a href=\"https:\/\/www.michaellarabel.com\/\">Michael Larabel<\/a> in <a href=\"https:\/\/www.phoronix.com\/linux\/X.Org\">X.Org<\/a> on 25 December 2025 at 09:45 AM EST. <a href=\"https:\/\/www.phoronix.com\/forums\/node\/1601662\">76 Comments<\/a><\/p>\n\n\n\n<figure class=\"wp-block-image alignright\"><img decoding=\"async\" src=\"https:\/\/www.phoronix.com\/assets\/categories\/xorg.webp\" alt=\"X.ORG\"\/><\/figure>\n\n\n\n<p>For X11\/X.Org fans there is a new Christmas surprise: Phoenix as an in-development X Server written from scratch using the Zig programming language.<br><br>Phoenix is a new X Server written from scratch in the Zig programming language for providing better safety. Phoenix hopes to become a modern alternative to the X.Org Server but admittedly right now is &#8220;not ready to be used yet&#8221; although it can render simple applications with GLX, EGL or Vulkan.<br><br>Phoenix hopes to be simple, secure, better designed for modern technology like variable rate refresh (VRR) and HDR, better graphics handling, allow for more easily extending the X11 protocol, and to provide Wayland compatibility.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img decoding=\"async\" src=\"https:\/\/www.phoronix.net\/image.php?id=2025&amp;image=phoenix_x\" alt=\"Phoenix X Server\"\/><\/figure>\n\n\n\n<p>Those wishing to learn more about this in-development Phoenix X Server effort can do so via <a href=\"https:\/\/git.dec05eba.com\/phoenix\/tree\/README.md\">the Git repository<\/a>.<\/p>\n\n\n<div class=\"wp-block-ub-divider ub_divider ub-divider-orientation-horizontal\" id=\"ub_divider_c3235f61-bc67-4f49-83d8-28b5e092728d\"><div class=\"ub_divider_wrapper\" style=\"position: relative; margin-bottom: 2px; width: 100%; height: 2px; \" data-divider-alignment=\"center\"><div class=\"ub_divider_line\" style=\"border-top: 2px solid #ccc; margin-top: 2px; \"><\/div><\/div><\/div>\n\n\n<p><a href=\"https:\/\/leaddev.com\/career-development\/why-zig-one-hottest-programming-languages-learn\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/leaddev.com\/career-development\/why-zig-one-hottest-programming-languages-learn<\/a><\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Why Zig is one of the hottest programming languages to learn<\/h1>\n\n\n\n<p>A recent Stack Overflow survey revealed Zig is highly-admired and developers are highly-paid \u2013 but why?<\/p>\n\n\n\n<h6 class=\"wp-block-heading\">By Chris Stokel-Walker<\/h6>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/leaddev\/image\/upload\/f_auto\/q_auto\/dpr_auto\/c_limit,w_768\/next\/2024\/07\/A-guide-to-Tech-Strategy-1.png\" alt=\"A guide to Tech Strategy (1)\"\/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-your-inbox-upgraded\">Your inbox, upgraded.<\/h2>\n\n\n\n<p>Receive weekly engineering insights to level up your leadership approach. Email address(Required)<\/p>\n\n\n\n<p>The level of pay someone can earn shouldn\u2019t be the primary reason that developers decide on which programming language to learn. Nor is how much they\u2019re admired by your peers. But both are useful factors when deciding where to invest your time.&nbsp;<\/p>\n\n\n\n<p>This makes&nbsp;<a href=\"https:\/\/survey.stackoverflow.co\/2024\/technology\">the recent Stack Overflow survey<\/a>&nbsp;and its suggestion that&nbsp;<a href=\"https:\/\/ziglang.org\/\">Zig<\/a>&nbsp;is among the more admired programming languages around, as well as a high-earning skill \u2013 all the more interesting.&nbsp;<\/p>\n\n\n\n<p>The average Zig developer can earn $75,332 a year according to the survey \u2013 more than those that code in more established languages like C++, JavaScript, and SQL. It also came in as the third-most admired language amongst developers, sitting just behind Rust and Elixir.<\/p>\n\n\n\n<p>Although the language is only used by about 1% of the respondents, it\u2019s trending upwards, fast. \u201cZig\u2019s appeal lies in its simplicity, modern design, and the balance it strikes between low-level control and runtime safety,\u201d says Ali Cheragi, an advocate of the language and a FOSS developer.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-why-zig\">Why Zig?<\/h2>\n\n\n\n<p>Cheragi picked up Zig as a young programmer after researching which language was most suited to his needs. \u201cI chose Zig as my daily language because of its unique combination of features and goals,\u201d he says. \u201cI was drawn to Zig\u2019s safety, while letting me control the lowest level pieces.\u201d<\/p>\n\n\n\n<p>The programmer was also a fan of how the language approached errors, using error unions and defer \u2013 which caught his attention as an improvement over more traditional methods. \u201cAdditionally, the clear and consistent syntax, along with powerful compile-time capabilities, made Zig an attractive choice for me,\u201d he says.<\/p>\n\n\n\n<p>For Stephen Gutekanst, who is building Mach, a game engine written in Zig, the choice was also clear. \u201cUnlike a lot of other languages, Zig has really seamless interoperability with existing C code,\u201d he says. That\u2019s vital for a number of reasons.<\/p>\n\n\n\n<p>\u201cZig is basically overhauling a lot of programming infrastructure that nobody dared to touch in like 40 years,\u201d explains Loris Cro, vice president of community at the Zig Software Foundation. \u201cC and C++ are programming languages that are famous for being core programming languages where you get to have full control over the hardware. But at the same time, those languages have horrible tool chains.\u201d Zig allows users to dabble with those core programming languages, but to use better tool chains that are compatible with languages and a richer set of features.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-an-overhaul-in-programming\">An overhaul in programming<\/h2>\n\n\n\n<p>\u201cA lot of other languages are structured in such a way that interacting with the code is extraordinarily painful,\u201d adds Gutekanst. But you don\u2019t need to interact with them through standard means; you can use Zig.&nbsp;<\/p>\n\n\n\n<p>This interoperability is crucial in an industry where&nbsp;<a href=\"https:\/\/leaddev.com\/tech\/6-steps-addressing-legacy-enterprise-code\">legacy code is omnipresent<\/a>. Zig allows developers to gradually adopt the language without necessitating a complete overhaul of existing systems \u2013 giving it a significant advantage for companies looking to modernize their codebases over time.<\/p>\n\n\n\n<p>But Zig\u2019s appeal isn\u2019t just that it plays nicely with old code. It also nullifies a major issue for those in the world of traditional C\/C++ development: how difficult it is to compile code for different platforms.<\/p>\n\n\n\n<p>\u201cLet\u2019s say you\u2019re making a tiny indie game, and you want to give it to a friend that has a Mac. Good luck compiling your game from Windows to Mac,\u201d Cro says. \u201cWith Zig, where everything is written in Zig, or in C or C++, or even a mix, you can always cross-compile it for macOS or Linux, and vice versa. And it works.\u201d<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-deeper-thinking\">Deeper thinking<\/h2>\n\n\n\n<p>Gutekanst is also a fan of Zig because of how different it is to a lot of programming languages these days. Zig\u2019s design forces developers to think about how their code interacts with the underlying system, leading to more efficient and performant applications.<\/p>\n\n\n\n<p>\u201cThere aren\u2019t many other languages that force you to think about and care about how your code is actually interacting with the machine,\u201d he says. \u201cYou\u2019re actually caring about performance, and your code kind of ends up being simpler.\u201d&nbsp;<\/p>\n\n\n\n<p>And for that reason, companies big and small are starting to adopt Zig \u2013 building it up from that small 0.83% representation in the Stack Overflow community. Cro highlights two startups, Bun and Tiger Beetle, that are betting big on Zig. Bun is developing a competitor to Node.js, while Tiger Beetle is building a distributed financial database where precise control over resources is critical.<\/p>\n\n\n\n<p>Cheragi also highlights Uber, which uses Zig \u2013 not as a primary language \u2013 but as a build tool chain for its C and C++ code, leveraging Zig\u2019s superior compilation capabilities.&nbsp;<\/p>\n\n\n\n<p>That adoption makes sense, says Gutekanst, who believes other companies will soon follow suit. \u201cI think that if you\u2019re not looking at [Zig] in your organization, at least for the build tool chain, then you\u2019re really missing out.\u201d<\/p>\n\n\n\n<p>In last year\u2019s&nbsp;<a href=\"https:\/\/survey.stackoverflow.co\/2023\/\">Stack Overflow survey<\/a>, Zig burst onto the scene and started to grab more attention. The question many in the industry had was whether it would have staying power. The fact it still ranks high in people\u2019s minds for the 2024 iteration of the survey suggests that it\u2019s no flash in the pan \u2013 making Zig a smart bet to learn.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;m not that familiar with Zig, so I included a second article below with a nice overview. So beyond XLibre which I run on my computers instead of X.Org&#8217;s X11 implementation, we have another project trying rewrite X11 in Zig from scratch, to include some of the security and improvements that Wayland is supposed to [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6,7],"tags":[],"class_list":["post-15039","post","type-post","status-publish","format-standard","hentry","category-tech","category-world"],"blocksy_meta":[],"featured_image_src":null,"author_info":{"display_name":"Jason","author_link":"https:\/\/jasonsblog.ddns.net\/index.php\/author\/jturning\/"},"_links":{"self":[{"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/posts\/15039","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/comments?post=15039"}],"version-history":[{"count":2,"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/posts\/15039\/revisions"}],"predecessor-version":[{"id":15041,"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/posts\/15039\/revisions\/15041"}],"wp:attachment":[{"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/media?parent=15039"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/categories?post=15039"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/tags?post=15039"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}