Show HN: TRUST – Coding Rust like it's 1989

(github.com)

170 points | by wojtczyk 6 days ago

30 comments

  • GuB-42 5 days ago
    Looking at this makes me nostalgic in a way the author probably hasn't intended.

    Rust is notorious for its slow compile times, while Turbo Pascal was known to be blazingly fast. And the debugger, one of the most important part of the experience is "Not implemented". Dressing it as a 1989 IDE makes me painfully aware of what we have lost. Despite running on hardware that were orders of magnitudes slower than today, software used to be more responsive.

    By "more responsive" I mean that while modern systems are excellent at batch processing, latency is often not great, and because so much happens in parallel, also confusing.

    • pjmlp 5 days ago
      Some of us still haven't lost it thanks to Delphi, C++ Builder, .NET or even Java.

      However they aren't fashionable in the days of Electron and CLI nostalgia.

      So you end up with Go on vim, instead of FreePascal on Lazarus.

      • cwnyth 5 days ago
        Heck, some of us haven't even given up on Perl.
        • mpyne 5 days ago
          I don't use it very often anymore (except for oneliners or simple one-offs) but I still like it!
          • pjmlp 5 days ago
            Quite useful still.
        • wojtczyk 5 days ago
          It was intended to evoke emotions. I really consider this more of an art project than a developer tool.

          I will see about the debugger.

          • anta40 5 days ago
            >> Rust is notorious for its slow compile times

            Don't forget Haskell. And what's other... C++, OCaml, etc?

            I guess a language with complex/complicated design is difficult to be compiled "blazing fast"

            • GuB-42 5 days ago
              Rust is not alone to compile slowly. And yes, there are reasons, but if you want to pick a language to fit the Turbo Pascal vibes, that's not it.

              Zig and Go would probably be better modern languages for this. Also "Turbo Zig" and "Turbo Go" sound cool, "Trust" sounds too corporate :)

              • fithisux 4 days ago
                Or Blooshed Dev-Zig

                Heck, the UI is in Delphi.

              • pjmlp 5 days ago
                Not really, because contrary to Rust, Haskell, C++ and OCaml have faster alternatives, even though some people decide to ignore them to their own pain.

                Haskell has GHCi, where you can pre-compile modules and play around in the repl with code that is more in flow.

                OCaml has a bytecode interpreter, and a repl, thus you can compile only what you need, and do the full compilation for proper releases.

                C++, well, yes it is slow, if you don't make use of binary libraries, external templates, incremental compilation and incremental linking, parallel builds, hot code reloading (VC++ and Live++), or REPLs (ROOT/cling, Clang-Repl).

                • wojtczyk 5 days ago
                  Right, we can appreciate a lot of the heavy weight lifting by the compiler or blazing fast translations... in the latter case an assembler would do
                  • japgolly 4 days ago
                    Scala is painfully slow to compile too
                  • TacticalCoder 5 days ago
                    There are hardware reasons too, related to polling frequencies etc.

                    Great article for those interested in the matter:

                    https://danluu.com/input-lag/

                    • wojtczyk 5 days ago
                      Great article. Thanks for sharing.
                    • IshKebab 4 days ago
                      What do you mean the debugger is "not implemented"? I debug Rust code all the time with CodeLLDB. Works perfectly. Better than C++ in most ways.
                      • ameliaquining 4 days ago
                        That's referring to this specific retro-style IDE, which doesn't yet have a debugger UI; selecting the "Debug" menu item produces a "not implemented yet" error.
                    • pjmlp 5 days ago
                      Well not quite, unfortunely Rust still has a bit to catch up with 1989, it isn't only the Turbo Vision inspired IDE.

                      https://ia801901.us.archive.org/5/items/TurboPascal55/Antiqu...

                      > Fast! Compiles 34, 000 lines of code per minute

                      https://archive.org/details/bitsavers_borlandtur5.5Brochure1...

                      Measured on a a IBM PS/2 Model 60, meaning an Intel 80286 running at 10 MHz with 640 KB for MS-DOS, up to 8 MB depending on extenders and HMA configurations.

                      https://en.wikipedia.org/wiki/IBM_PS/2_Model_60

                      And if you feel using the language complexity excuse for 2026 hardware, see OCaml, Delphi, D, or C# AOT.

                      • wojtczyk 5 days ago
                        Thank you for the references!
                      • awhenderson 5 days ago
                        I haven't felt a lot of desire to code in Rust but I do now! Absolutely applaud this project - it's completely tugged on the retro nostalgia strings for my Turbo Pascal days. Also one of the reasons I enjoy the previously HN featured Microsoft Edit project immensely - https://github.com/microsoft/edit. Thank you OP
                        • wojtczyk 5 days ago
                          Thank you! I appreciate your feedback
                        • rob74 6 days ago
                          Cool! I assume TRUST stands for "Turbo Rust"? If yes, maybe it would be worth mentioning that in the readme. I doubt that Embarcadero Technologies (the current owners of the Delphi and C++ Builder IDEs, and probably also the owners of other former Borland trademarks) would mind - but then again, it doesn't hurt to stay on the safe side...
                        • nazgulsenpai 5 days ago
                          The blue CRT glow of Turbo C++ / QBasic 4.5 IDE at 12 AM when I've snuck up in the middle of the night to poke around on the family computer on a school night when I was ~10 years old... I love this.
                        • doubtfuluser 5 days ago
                          Thank you for that - I’m definitely going to look into it. I realize that I lost the fun in coding. I’m in a different career stage now as well, but just seeing this reminded me of how I started a long time ago implementing snake, learning about graphics mode, double buffering / page flipping etc.

                          Everything felt exciting and so close to really understanding what’s going on. And just seeing the blue text interface reminded me of how much fun that was…

                          • wojtczyk 5 days ago
                            I am glad to hear how the project resonates with you and other people here. I was reading an article about coding in the 90s and thought, the best time I had was on our first computer. Starting out with Basic, Pascal, Assembly and C++. Text mode, VGA mode, INT 10h ... what fun
                          • 0rbiter 5 days ago
                            The window screenshots are clearly from macOS 26, the rounded corners look so broken. If Rust ran in DosBox, we would have the perfect 1989 emulator.
                            • wojtczyk 5 days ago
                              Thanks for the feedback, maybe I'll redo the screenshots
                              • joshka 5 days ago
                                I recommend VHS generally for these (we use them for all the ratatui screenshots generally). I'm also playing around with doing a rust version of this (https://www.joshka.net/betamax/)
                                • wojtczyk 5 days ago
                                  Thanks, I was looking into a terminal recorder last night, but then it was kind of late. I will look into VHS.
                            • HackerThemAll 5 days ago
                              Turbo Vision library, which apparently inspired TRust, had a great object model, in which you could derive built-in classes implementing controls, windows, validators etc., extend them by adding custom functionalities and seamlessly plug them into the system. Imagine extending the built-in TEditor class to handle syntax highlighting, or extending TDialog to handle complex multi-tab option dialogs.

                              To beat 1989 and Turbo Pascal, TRust must do that (perhaps the Rust's way).

                              • 3836293648 5 days ago
                                This needs to have DOS builds available. Is it performant enough for 90s hardware? I know the rust compiler itself isn't really.
                              • anta40 5 days ago
                                Just noticed in cannot build a standalone Rust source file

                                "error: could not find 'Cargo.toml'"

                                I assume first need to create a project by "cargo new" ...?

                                Anyway, love the good ol' Turbo Pascal 7 Reference. Haven't touch it for more than 1 decade.

                                • wojtczyk 5 days ago
                                  Thanks for letting me know. I shall add that.
                                • segmondy 5 days ago
                                  I want an editor like this with proper vim support. Anyone know of any?
                                  • shreyas_p_238 5 days ago
                                    1989, this was the style of ide my school used to teach me C in 2015, so many frustrations, that turbo C was very very unpleseant to work with
                                    • wojtczyk 3 days ago
                                      Thanks for sharing. Though, in the 80s and 90s this was cutting edge and so much better than what we had before.
                                    • fithisux 4 days ago
                                      I like it. I will posdibly use it just for the nostalgia.
                                      • wojtczyk 3 days ago
                                        Thank you! That is what it was meant for :D
                                      • eithed 5 days ago
                                        Ah, Norton Commander takes me back
                                        • wojtczyk 5 days ago
                                          Same here. I need to fire up my PC AT again.
                                        • kaant 6 days ago
                                          Because Rust deserves a blue-screen IDE from the olden days and someone had to do this...
                                        • WiSaGaN 5 days ago
                                          Maybe I should start a project rewriting pctools 5.0 in rust!
                                        • whalesalad 5 days ago
                                          My first experience with programming was QBASIC in like 1997 - looked just like this. Minus the anti-aliased fonts, and a far lower resolution.
                                          • vunderba 5 days ago
                                            To me it looks more like the early versions of Borland C++ for MS-DOS but yes similar TUIs.

                                            https://imgur.com/a/qspuIBj

                                            • wojtczyk 5 days ago
                                              I very much remember QBASIC. It created a lot of joy for me. But I went for something slightly different here.
                                            • joshka 5 days ago
                                              Ha - I see it's Ratatui based. Nice work there :D
                                              • wojtczyk 5 days ago
                                                Thank you! Ratatui was super helpful
                                              • forinti 5 days ago
                                                If only it would fit on a floppy.
                                                • wojtczyk 5 days ago
                                                  Well, in release mode it is currently 1048KB. Works for a 3.2" HD
                                                • sourcegrift 5 days ago
                                                  Embed nvim in the right pane!
                                                  • wojtczyk 5 days ago
                                                    Thank you for the feedback. I may actually add that option.
                                                  • vsgherzi 6 days ago
                                                    Honestly the experience looks pretty nice. Which is crazy to say for such an old style of program but I kind of like it. Perhaps just nostalgia for a time I never got your experience.
                                                    • q3k 5 days ago
                                                      A year or so ago I spent half a day writing some Rust on an actual DEC glass teletype (VT520) connected to a Debian box. I used vim and shell job control (^Z, jobs, fg, etc.) to switch between tooling and a persistent text editor. It made me feel things.
                                                      • wojtczyk 5 days ago
                                                        I can imagine. Thank you for sharing! I just saw one in the Computer History Museum.
                                                      • I'm not mad at this at all. It probably runs with like 20kb if RAM.

                                                        I realize the author is probably just having fun, but if a few modern features added to this and I would probably try it.

                                                        Multi cursor, a little terminal window, some way to do code hints or intelligence. This would be a dream boat lol

                                                        • boxed 5 days ago
                                                          https://github.com/boxed/TurboKod

                                                          I started this just for the lulz, but now I've got:

                                                          copy/paste/undo

                                                          multiple cursors

                                                          debuggers

                                                          syntax highlighting (even nested languages with jetbrains style comments!)

                                                          find-in-files

                                                          integrated documentation

                                                          integrated git client (roughly modeled after lazygit)

                                                          spell checking

                                                          and tons more that I can't even remember

                                                          • It's pretty awesome and inspires me more than lulz. Highly successful art project if you ask me
                                                            • boxed 5 days ago
                                                              Thanks.

                                                              I'm thinking it could be a sort of reference implementation to build your own custom IDE the way you like it. I'm going to attempt to get TurboKod to be good enough to be my daily driver, we'll see how it goes.

                                                            • wojtczyk 5 days ago
                                                              OP here. Thanks for sharing! I love your project. Looks very polished and true to the experience.

                                                              And yes, TRUST got started for the lulz and feels.

                                                            • staplung 5 days ago
                                                              Have you tried Fresh? Has everything you listed and more

                                                              https://getfresh.dev/

                                                              • wojtczyk 5 days ago
                                                                Thank you! I may build this out further. I just wanted to get started and feel like back then; share and see what happens. If I am the only one who is excited about this.
                                                              • wojtczyk 5 days ago
                                                                Thank you! It was meant to evoke emotions.
                                                              • RivoLink 4 days ago
                                                                Love it, congrats.
                                                                • wojtczyk 3 days ago
                                                                  Thank you! I am surprised about all the feedback.
                                                                • AbuAssar 5 days ago
                                                                  nice (and clever) name!
                                                                  • ahartmetz 5 days ago
                                                                    I actually expected an unsafe-only Rust because of the name and the "archaic" date (of course, "safe" languages did exist at the time, if not low-level and safe ones).

                                                                    Still, cool project.

                                                                    • wojtczyk 5 days ago
                                                                      unsafe-only Rust ... good idea!
                                                                    • wojtczyk 5 days ago
                                                                      Thank you!
                                                                    • Nation3Labs 5 days ago
                                                                      [dead]
                                                                      • rockscy 5 days ago
                                                                        [dead]
                                                                        • handsometong 5 days ago
                                                                          [dead]
                                                                          • [dead]
                                                                            • applex1025 5 days ago
                                                                              [dead]
                                                                              • kilakulusu 3 days ago
                                                                                [dead]
                                                                                • vladsiu 5 days ago
                                                                                  [dead]