Welcome to Earth – our new IDE for Linux
This week, I am thrilled to formally announce the newest addition to our Elements family: Earth .<br>As you might know, until today we had two versions of our development environment for Elements:<br>It all started with Fire , a fresh reimagination of what a lightweight IDE could feel like – and designed purely and natively for the Mac, written in Cocoa.<br>A few years later, we took that codebase and made it truly cross-platform so that, based on the same codebase, we could introduce Water , for Windows. Water got all the great features and power of Fire, but in a bespoke IDE designed to feel native on Windows. Where Fire uses native Cocoa controls for its UI, Water uses Windows Presentation Foundation and runs 100% on .NET.<br>More importantly, over time as the codebase evolved, all the work we did came to both platforms automatically. Whether it was smarter IDE capabilities, new platforms or experiences, or entire new major initiatives, such as CodeBot.<br>Enter Earth<br>A short while ago (really short, all things considered), we thought: what if we could apply the same concept again, and local development to Linux? And so we did. The result is Earth .<br>Earth shares the same underlying codebase as Fire and Water, but this time compiled for Linux. On top, it got its own bespoke Linux-native GUI. No Electron. MAUI or Xamarin or weird cross-platform UI: truly native GTK.<br>The result is an IDE that feels truly Linux and looks and behaves natively in its natural habitat. Under the hood, it shares its smarts with Fire/Water, and since it's v0.1, it has already gotten dozens of new features "for free".<br>Writing Code<br>Earth comes with the same native code editor you know and love for Fire and Water. It renders as native GTK, but behind it, all the shared features for FireCodeEditor (FCE), as we call it internally, are there. From Code Completion to inline errors (which recently got much smarter and can take you straight to fixes for CodeBot assistance). Even a very cool new feature we haven't even announced yet but is available in Fire 3109: Code Canvases.<br>Just coding away...FCE has you covered for all your coding needs; it's fast and responsive, with syntax highlighting and many smart editing behaviors custom-tailored for the Elements languages. If you are used to it from Fire or Water, you'll feel right at home. If you are new to Elements, you'll love it.<br>Debugging<br>Of course, Earth comes with the same state-of-the-art debugging capabilities you expect from Elements, including local and remote debugging for all supported platforms.<br>You can debug native x64 and arm64 Linux projects, as well as .NET Core and Mono, and Java projects locally on your Linux PC. Debug Android apps on your devices and emulators, or connect to a Windows PC or Mac via CrossBox to debug native Windows and Mac apps or apps on Apple devices such as iPhones and iPads.<br>Of course, CodeBot is there to assist you with debugging as well:<br>CodeBot has full access to the debug stack and can run full interactive debugging sessions for you.<br>Just ask it "hey, I expect this function to print but returns instead, can you find out why?" and CodeBot will go off and do its thing.<br>Does your app break on an exception and you have no idea what it means? Simply ask CodeBot to investigate; it will inspect your code and, if needed, take over the paused debug session.<br>As mentioned before, any app that can run locally on your Linux PC can be run and debugged locally. This includes:<br>CPU-Native Linux apps (Intel x64 or ARM 64) written using our Island platform. You can think of these as the equivalent of apps written in C/C++ or other native languages.<br>.NET Core applications running on Microsoft's runtime, version 3 or later.<br>Classic .NET applications, if you have Mono installed.<br>Java /JVM applications, if you have Oracle Java, OpenJRE, or a similar Java runtime installed.<br>WebAssembly apps, in Chrome, a Chromium-compatible browser, or in Node.js<br>Android applications , in an emulator or a device attached to your PC.<br>Fuchsia applications , in an emulator or a Fuchsia device connected to your PC.<br>Earth also lets you connect remotely to other computers (Macs, Windows PCs, or other Linux machines) to remote-debug applications you cannot run locally. This includes<br>Native Mac or Windows apps.<br>Apps for iPhone, iPad, or other supported Apple devices, connected to a Maca.<br>an iPhone app in C# and a Fuchsia component in Mercury? Why not!Build and Deploy with EBuild<br>Building apps, of course, also means packing them for deployment. Earth's built-in toolchain, based on the same EBuild you know and love, takes care of that.<br>EBuild is the tool that runs every build for an Elements project. It gets everything in place before handing things over to the Elements compiler – such as making sure the right SDKs are installed and found – and it takes care of what needs to be done after the compiler is done. That might include linking a native binary, packaging up a .NET...