Hacker News new | ask | show | jobs
by jstgord 1316 days ago
Borland manuals were a pure delight..

as was the speed of Turbo Pascal compilation and the elegance of their text mode windowing object system.

I remember scouring all the possible BBS dialup file servers to find a compiler for my first 8086 machine .. I knew there had to be something better than GW Basic .. I could not find a compiler for free, but did happen up on A86 assembler, so got an intro to how the machine really worked.

Was so happy when I could afford Turbo Pascal back in the day. best product ever.

4 comments

I was 14 years old, only ever programmed in Commodore Basic by typing in programs from the manual (in German) without understanding them, didn't understood English much.

I got pirated Turbo Pascal 7 and Turbo Basic with included manuals and I've learned programming from them (in a foreign language, with no internet).

That's how good they were.

Similar story but I bought the original box of TP7 in 1993. The manuals structured in an exemplary way with so many technical details and even with part of the Turbo Vision source code. It made me a better programmer for sure. I even sent them a registration card. I still have the confirmation letter from my product registration giving me access to the support hotline and BBS.
I remember being maybe 13 years old or so and asking my parents for Turbo Pascal for Christmas haha. I think it was Turbo Pascal 3? I eventually upgraded to the nicer one with the windowed system. Good times!
I don't understand why the TUI of old text-mode IDE's (from Microsoft as well as Borland) has yet to be replicated in modern terminal environments. You can kinda get a menubar in Emacs but it's quite clunky, and grabbing mouse input in the terminal requires a separate incantation. And even Emacs doesn't allow for floating windows/dialogs, nor does it show text-mode scrollbars or windowing widgets.

You'd think that many devs would want something like this, to code via SSH while logged on a remote dev system, or perhaps from a mobile device app. Is it really that hard?

The IBM PC text mode buffer was mapped into memory, so you could quickly update any part of the screen and easily do things like double-buffering (for rock-solid screen updates), composing the screen out of floating windows held in separate memory buffers, etc.

The Unix terminal is derived from line printers (teletype), a fundamentally different kind of TUI.

I don’t know how much this realistically affects today’s terminals since we have extremely fast connections. But it’s the original reason why those DOS text UIs had such a distinct snappy feel.

There are some *nix programs with complex TUI's, where a "snappy feel" is sought after (e.g. the `aptitude` TUI for package management in Debian and its derivatives) and they're just as snappy as any old DOS app. The overhead from using a terminal-based API is just too low to matter.
As it ought to be since the lowliest Raspberry Pi is tens of thousands of times faster than the IBM PC. Filling a screen shouldn’t be an issue regardless of the protocol in the middle.

But design decisions made in the 1980s still linger in a lot of Unix software.

Still, back on the Slackware 2.0 days there were plenty of TUI applications.

Here for the younger generations, https://en.wikipedia.org/wiki/Ncurses

This is exactly correct.

As far as affecting the state of TUI/CLI programs today, it becomes part of the culture as well as part of the overall look and feel of the system.

Yet, there are programs that break from convention: JOE, Dit, irssi, etc.

I think it is partly fashion (little UI is more "hackerish" after all) and partly lack of exposure (a lot of programmers nowadays who have worked on TUI applications might have little to no exposure to DOS programs of yesteryear).

It is technically possible though, as an example here is Free Pascal's text-mode IDE[0] running inside an xterm window under Linux. The IDE uses Free Vision[1], a TUI framework originally based on Borland's Turbo Vision, that is nowadays part of Free Pascal itself (though the framework uses the TP7-style "object" types for OOP instead of the Delphi-style "class" types).

[0] https://i.imgur.com/QZWt9lC.png

[1] https://wiki.freepascal.org/Free_Vision

Yeah but FPIDE is the exception that proves the rule. Why can't we have a VSCode work-alike in text mode, with LSP, tree-sitter and DAP support? That stuff is even getting added to Emacs these days, so it has a proper free-software pedigree even though it comes from M$.
Isn't that neovim, emacs -nw and helix?
emacs -nw?
There are some. One of my favourites is Terminal.Gui[0], but you have to be in the .NET world in order to use it.

[0] https://github.com/gui-cs/Terminal.Gui

> And even Emacs doesn't allow for floating windows/dialogs, nor does it show text-mode scrollbars or windowing widgets.

However, the floating window had its downsides. They hid what was behind the window and modals, so if you started a dialog box and changed your mind about the text behind it, you have to close the dialog box, change the text and restart your dialog box.

Emacs and Vim avoid these problems by turning everything into a buffer. So all of your interactions with the editor are done through buffers which can be opened side by side.

There are attempts at similar things - https://www.willmcgugan.com/tag/textual/
Interestingly, menues and scrollbars are the first things I turn off on new Emacs installs.
Me too, like as it used to be in those days, we could get all kinds of software in Portuguese bazars at the cost of the material being copied.

However when I could afford the student editions of Borland products available to high school students, I bought TPW and Turbo C++ 3.1 for Windows, first TPW, and then TC++ an year later.

I think it was already called BC backe then?
There were Turbo C++ and Borland C++ variants.

Turbo was something like standard or community cutted down versions.

I am sure of the boxes I still have lying around. :)

I remember as a 17 year old spending 50 Irish pounds on a copy of Turbo Pascal and being giddy with excitement when the brightly colored box and manuals arrived. I pretty much memorized them, and of all the things from the late 80s its the one I wish I had kept!