I’m working on CodePerfect, an IDE for Go. It’s built like a video game: instant startup, GPU-rendered UI, near-zero latency, indexes large codebases quickly, relatively small resource footprint. It’s written in C/C++ and designed from the ground up for performance.
Currently it caters to users who code in Vim or Sublime Text, who just want a lightweight editor that gets out of the way, but still want IDE features without the hassle of writing configs and setting up plugins. CodePerfect provides the best of both worlds: the speed of Vim, with an entire batteries-included IDE out of the box. Among other things it supports:
- Go to definition
- Find usages
- Parameter hints
- Project-wide find/replace
- Rename identifier
- Find implementations/interfaces
- Generate implementation
- Integrated debugger/build
- AST-based navigation
- Postfix completions
- Vim keybindings
- Fuzzy search for everything
- Live project-wide search
- Command palette (cmd+k)
- and more
…all while running at 144 FPS with virtually no lag.
We achieve performance by:
(a) avoiding third-party code as much as possible, especially things like Electron, language servers, and other heavy dependencies;
(b) writing simple, linear-control-flow, “non-pessimized" code, without unnecessary abstractions or “patterns”; and
(c) amortizing memory allocation with arenas.
That’s basically it; there aren’t really any crazy 200 IQ optimizations or algorithms or anything like that. We do make use of appropriate data structures and things like multithreading and mmap, but the main driver of performance is just writing simple code and banking on modern computers being insanely fast.
If you want to play with it, there’s a free 7 day trial, no cc or signup needed (download link). After that, as mentioned, it’s a one-time fee for a perpetual license, and a subscription for ongoing updates. You can purchase either individually, or both.
I’d love to hear your feedback, questions, suggestions, and what you personally want/need in an IDE. We’re certain to still have bugs and missing features and any reports would be greatly appreciated. We also have a Discord.
Thank you for reading!