Drop #427 (2024-03-15): Beware The IDEs Of March

Theia; Replit Desktop; The IDEs We Left Behind

Trying to keep it both light and informative today with a (re)look at some integrated development environments (IDEs) that are new (or updated/refreshed), and even may be new to you! We also look at IDEs of days long gone bye and how AI is impacting the future of IDEs.

Programming Note: It looks like the midweek work crush that seems to be headed towards a becoming a regular thing means there will very likely be missing Wednesday editions until I can get a backlog of sections built up. Also, it’s likely been obvious that WPEs have now morphed into a weekend technical details-oriented post, as it gives me a bit more time to prep a deeper dive into a given piece of technology or framework.

Also: no TL;DR as two attempts at getting anything useful out of Perplexity were about as many as I was willing to do, today.

Theia

Theia IDE (GH) is a modern, open-source development environment from Red Hat that’s been getting some traction in some developer cirles. It’s a platform that lets us build tools and IDEs using web technologies for both cloud and desktop applications. So, Theia is not just another IDE; it’s a framework for creating custom IDEs tailored to specific workflows and needs.

It’s built with Visual Studio Code (VS Code) components, so it comes with support for VS Code extensions out-of-the box. Whether you need robust linting tools, interactive notebook editors, or any of the thousands of other VS Code extensions, Theia’s seamless compatibility means you can customize your development experience like never before.

The architecture is designed for flexibility deployment. Whether you require a web-based IDE that’s accessible from anywhere or a robust desktop application, Theia has you covered. You can develop one IDE and run it in a browser or as a native desktop application from a single source, which is a testament to its adaptable nature.

Theia takes advantage of many of the more modern conveniences of VS Code, so you have a flexible workbench layout, theming support, a dynamic toolbar, detachable views, and efficient tab management. The web-based interface is designed to adapt to your needs, streamlining your projects for optimal productivity.

Governed by the Eclipse Foundation, Theia is backed by a diverse and fairly healthy ecosystem; so, it should remain free from single-vendor decisions that could conflict with the interests of the community (though they are kind of at the whim of Microsoft for base functionality). This means that folks can deploy and enrich their toolsets on their own terms, without fear of sudden licensing changes or proprietary lock-ins (again, unless Microsoft changes up the game).

For those looking to get started with Theia, the platform offers comprehensive documentation, a cool community, and the ability to contribute to its ongoing development.

You should also check out the talks from last year’s Theiacon.

Replit Desktop

Folks may have heard about or even been given a link to a Replit, but you may not know about Replit Desktop. This standalone application, available for macOS, Windows, and Linux, extends the Replit experience beyond the browser, offering a distraction-free coding environment that feels both familiar and innovative.

By eliminating the distractions inherent to web browsers (I cannot stand coding in a browser, and it’s one big reason I despise Jupyter notebooks), we can immerse ourselves fully in our projects. The application supports multiple windows for different Repls, allowing for a seamless workflow between projects. This level of accessibility is further enhanced by the ability to launch Replit directly from the dock or home screen, making it easier than ever to dive into coding sessions.

Since it’s a desktop app, there are enhanced keyboard shortcuts. In a browser, certain shortcuts are reserved for browser functions, such as opening and closing tabs. Replit Desktop circumvents these limitations, offering shortcuts like Ctrl/Cmd + T to open a new pane and Ctrl/Cmd + W to close a pane, streamlining the development process and making the environment feel more intuitive and responsive.

Performance-wise, Replit Desktop mirrors the cloud-based IDE’s capabilities, with all compute resources running in the cloud. This ensures that the application’s performance is not limited by the hardware you happen to be typing on, with the only limitation being the Replit server tier you can afford. The app includes all the features of the browser IDE, such as collaborative coding, integrated debugging tools, and Git integration, providing a comprehensive development environment.

The use cases for Replit Desktop are varied. From individuals working on personal projects to educational settings where students learn to code, the application offers a pretty versatile platform that caters to a wide range of programming needs (and levels). Its ability to integrate with other development tools, such as (ugh) GitHub, also makes it a valuable addition to any toolkit.

Just to show it’s not limited to the “popular” languages, the section header is my local Replit Desktop showing off some (simple) work in R.

The IDEs We Left Behind

Integrated Development Environments (IDEs) have been the cornerstone of software development for decades, offering a unified interface that combines code editing, debugging, and other development tools. The evolution of IDEs over the past 30 years has been both significant and subtle, reflecting broader shifts in technology and programming practices. A recent reflection on this journey, highlighted in a spiffy piece, raises a fun question for you kids out there: despite the advancements, have IDEs fundamentally changed?

At first glance, modern IDEs seem leaps and bounds ahead of their predecessors. They boast more sophisticated refactoring tools, support a wider array of programming languages, and offer features that streamline the development process. These enhancements are not just incremental; they represent years of accumulated knowledge and technological progress. Yet, when we strip away the layers of new features and improvements, the core functionality of IDEs — facilitating code writing, testing, and debugging — remains largely unchanged. This observation isn’t a critique but rather an acknowledgment of the enduring value of the IDE’s original design principles.

However, the advent of AI-assisted coding marks a potential inflection point in the evolution of IDEs. This feature, often provided as a service by remote servers rather than the local IDE installation, represents a fundamental shift in how developers interact with their tools. AI assistance can offer suggestions, complete lines of code, and even help debug in real-time, transforming the coding process from a solitary endeavor into a collaborative one with an intelligent assistant. This development is not merely an incremental improvement but a reimagining of the role of IDEs in software development.

The integration of AI into IDEs is more than just a novel feature; it’s a reflection of the broader trend towards more intelligent, context-aware tools that enhance human capabilities. As software development becomes increasingly complex, the value of tools that can navigate this complexity and offer meaningful assistance cannot be overstated. AI-assisted coding has the potential to make development more efficient, reduce the incidence of errors, and even lower the barrier to entry for newcomers to the field.

The question whether IDEs have fundamentally changed over the past 30 years is a matter of perspective. In terms of core functionality, perhaps not much has changed. But if we consider the potential of AI-assisted coding to transform and democratize the development process, it’s clear that we are on the verge of heading into a new era for IDEs. This evolution reflects the dynamic nature of technology itself — always building on the past, yet continually pushing towards new frontiers. As developers, embracing these changes and exploring the possibilities they offer is not just beneficial; it’s essential to navigating the future of software development.

You’re still gonna have to pry vim from me at gunpoint, though.

FIN

Remember, you can follow and interact with the full text of The Daily Drop’s free posts on Mastodon via @dailydrop.hrbrmstr.dev@dailydrop.hrbrmstr.dev ☮️