[HN Gopher] Modern Turbo Vision 2.0
       ___________________________________________________________________
        
       Modern Turbo Vision 2.0
        
       Author : begoon
       Score  : 189 points
       Date   : 2022-03-19 08:59 UTC (14 hours ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       | michaelsbradley wrote:
       | See also Final Cut:
       | 
       | https://github.com/gansm/finalcut
        
       | simonjgreen wrote:
       | Wow, this is a throwback. I'm suddenly sat in front of my Amstrad
       | PC as an early teenager poking around DOS tools I don't
       | understand.
        
         | pantulis wrote:
         | My throwback is reading through sheets and sheets of continuous
         | form paper printed with the Turbo Vision demos and being
         | utterly unable the wrap my head around the object oriented
         | code. Still I learned a lot by annotating that source code.
        
       | bananaboy wrote:
       | Hah I was just looking at this recently. I was looking for a C#
       | version. I couldn't find anything nice though. There's this
       | https://github.com/elw00d/consoleframework but it looks like it
       | hasn't been updated in a long time.
        
         | v-yadli wrote:
         | C#? Tick.
         | 
         | Console? Tick.
         | 
         | TurboVision theme? Tick. (lol)
         | 
         | https://github.com/jinek/Consolonia
         | 
         | > TUI (Text User Interface) (GUI Framework) implementation for
         | Avalonia UI
         | 
         | > Supports XAML, data bindings, animation, styling and the rest
         | from Avalonia.
        
         | pantulis wrote:
         | Have you tried Miguel de Icaza's gui.cs?
         | 
         | https://github.com/migueldeicaza/gui.cs
        
           | bananaboy wrote:
           | I looked at that but it didn't look enough like Turbo Vision
           | for me :)
        
       | richardfey wrote:
       | This is awesome! I would prefer to use it with Pascal though;
       | will give it a try anyways!
        
         | magiblot wrote:
         | If you want Pascal, this might be what you want:
         | https://wiki.freepascal.org/Free_Vision
        
       | chajath wrote:
       | Can rhide be built with this new tv? If so that will be the only
       | ide I'll use and I'll never leave
        
         | magiblot wrote:
         | No, it can't. RHIDE needs specifically this one:
         | https://github.com/set-soft/tvision. If it may interest you,
         | there's a precompiled RHIDE binary in https://github.com/set-
         | soft/tvision/tree/master/rhide_bin/li....
        
       | rezaprima wrote:
       | IIRC C++'s TurboVision is port of Pascal's one. Like the
       | #define Uses_TKeys
       | 
       | line is from something like                 uses Tkeys
       | 
       | in Pascal
        
       | abotsis wrote:
       | This is great! A Python wrapper would be awesome!
        
       | owl57 wrote:
       | _I am confident that Turbo Vision can now meet many of the
       | expectations of modern users and programmers._
       | 
       | Probably needs help with porting to node.js though:
       | https://github.com/magiblot/tvision/issues/27#issuecomment-8...
        
       | digisign wrote:
       | This looks awesome, but not packaged yet?
       | 
       | For a decade or two I waited for a good CUA editor on Unix. One
       | that took advantage of 1990s PC hardware. Like DOS Edit, but
       | better. Built my own striped-down SET/RHIDE editor in the early
       | 2000s, then hobbled along with "ne" from ~2010, but that niche
       | was fully taken by micro a few years ago. Would love a friendly
       | tvision-like competitor with real menus and dialogs.
       | 
       | But what about the color palette? I see one screenshot with an
       | extended palette, but the main shots that are using the original
       | eight-color palette. Maybe nostalgia shots, ok. Was acceptable to
       | have saturated dark blue and dark green backgrounds in ~1990 I
       | suppose, that's all there was. But no longer. A micro/sublime-
       | like dark grey color theme of at least 256 colors would attract
       | new folks more effectively. Backgrounds should have a low-
       | saturation imho.
        
       | jrm4 wrote:
       | Broadly, love seeing projects like this. Entirely too much wheel
       | reinvention going on, well, everywhere in software. Let's go
       | back, see what worked pretty well for a long while, and just
       | updated or rewrite it to similar specs. Any more things going on
       | like this?
        
       | Andrew_nenakhov wrote:
       | Btw those text based interfaces are better than most gui/web
       | interfaces of today.
        
         | protomyth wrote:
         | The accountants where I work felt all the GUI interfaces sucked
         | compared to their terminal. This led us to buy a new iSeries.
         | It will probably last the same 15 years as the last one.
        
           | bluedino wrote:
           | They're faster than web based apps that's for sure.
        
           | tonyedgecombe wrote:
           | I remember one place I worked where we ripped out all of the
           | dumb terminals on a UNIX system and replaced them with
           | Windows 3.1 PC's with terminal emulation. Productivity was
           | noticeably down after the change.
        
             | zozbot234 wrote:
             | > Productivity was noticeably down after the change.
             | 
             | Can't play much Solitaire or Minesweeper on a UNIX dumb
             | terminal... The most fun you can have is flying around in a
             | 3D-rendered filesystem.
        
               | pjmlp wrote:
               | MUDs say hello.
        
               | pajko wrote:
               | "It's a UNIX system! I know this!"
        
               | toast0 wrote:
               | 80x24 is plenty of room for solitaire, and an ok
               | minesweeper (bigger is nice though)
               | 
               | If you've got a graphical terminal, like you'd need for
               | your filesystem viewer, then you can do all sorts of
               | stuff, of course.
        
         | [deleted]
        
         | qbasic_forever wrote:
         | Definitely not as good as the web, if only for zero
         | accessibility. With the web you have a DOM of semantic elements
         | that are all carefully marked up by hand to describe the intent
         | and meaning of everything. With turbo vision and TUIs you have
         | a buffer of bytes with text, graphics, background, etc. all
         | using the same character set. Good luck if you're a screen
         | reader trying to make sense of it.
         | 
         | But you can have TUI style on the web, this tui.css project is
         | absolutely amazing IMHO:
         | https://github.com/vinibiavatti1/TuiCss
        
         | miohtama wrote:
         | Windows 95 was the peak of good UX, like the ancient Greek was
         | the peak of statue crafting. Some things were better in the
         | past.
        
           | rahoulb wrote:
           | Personally I'd say MacOS 9 was the peak (ignoring its
           | instability).
           | 
           | Things like:
           | 
           | * the filesystem root being the desktop - so you started
           | navigation from the first thing you saw when you switched the
           | computer on
           | 
           | * the way the finder remembered the exact layout of your
           | folder windows (if you've not experienced it, it's hard to
           | explain why it's better - but Windows Explorer and the
           | current Mac Finder are both file browsers, whereas the old
           | Mac Finder *was* your desktop in whatever state you left it)
           | 
           | * kernel extensions being switched on and off by dragging
           | them in and out of the extensions folder
           | 
           | These things made the GUI match the actual underlying system
           | - whereas I always felt that Windows 95 onwards (and now
           | OSX/macOS) hide the workings under pretty layers).
           | 
           | Having said that I also used Turbo Vision in the olden days
           | and it was fantastic.
        
           | toiletfuneral wrote:
        
           | tonyedgecombe wrote:
           | Windows 95 was unreliable, NT Workstation 4.0 was better.
        
             | qbasic_forever wrote:
             | Pre-internet windows 95 was fine, as long as your hardware
             | was good. A lot of folks had off-brand CPUs with bad
             | cooling, off-brand RAM with problems, etc. which lead to a
             | lot of instability. But on a plain old Intel pentium with
             | good RAM Windows 95 would run forever.
             | 
             | It was a hermetically sealed little environment--there were
             | no updates or changes unless you popped a floppy disk in
             | and made them. If you didn't do anything different it would
             | boot up the next day just like it did the days prior. It
             | wasn't until we started getting those machines on the
             | internet regularly and started running a lot more
             | background tasks, services, new software, etc. that they
             | really started to degrade.
        
               | LargoLasskhyfv wrote:
               | 49.7 days are _forever_?
        
               | qbasic_forever wrote:
               | Before the internet was on 24/7 with broadband
               | connections everywhere people didn't run their PC all the
               | time. It's not like you had a local wifi network to serve
               | data, etc. to your other devices. You turned the PC on,
               | played a game, did some spreadsheets, dialed in to AOL,
               | and then turned it off. Those PCs pulled 300+ watts of
               | power at idle too and were huge power hogs. Running your
               | windows 95 PC nonstop for days and months at a time was
               | not common at all.
        
               | LargoLasskhyfv wrote:
               | Maybe, maybe not. At the times W95 was usual, I mostly
               | ran NetBSD and later some Gentoo and Debian on my
               | assorted systems. Furthermore, most systems had PSUs
               | rated at 200 to 250 Watt, which they didn't even burn if
               | one used operating systems which knew what to do with the
               | CPUs HLT instruction during idle, or less load, also
               | spinning down disks was a thing.
               | 
               | BTW, there was software which made W95/98 use HLT too.
               | Rain, Waterfall, CPUidle, or something like that. Which
               | became obsolete with W2000 which did that by itself.
               | 
               | Shrug.
        
               | digisign wrote:
               | We downloaded the 95 betas from the internet to test them
               | before rolling them out.
        
             | [deleted]
        
       | pkaye wrote:
       | Now we replace it with fifty million JavaScript libraries for a
       | web interface.
        
         | qbasic_forever wrote:
         | Why not both? https://github.com/vinibiavatti1/TuiCss
        
       | dugmartin wrote:
       | Turbo Vision was very fun to use and I made a good bit of money
       | contracting on small projects in grad school in the early 90s
       | using it. It made writing text mode guis a breeze. Borland's
       | later Object Windows Library (OWL) was, in my opinion, much
       | clunkier but it was done in C++ compared to Turbo Vision's
       | Pascal.
       | 
       | Probably the most interesting app I did was a small quality
       | control/stats app for this book: "Quality Control 4th Edition"
       | (https://www.amazon.com/Quality-Control-Dale-H-
       | Besterfield/dp...). All the data entry used Turbo Vison and all
       | the graphs and charts used BGI (Borland Graphics Interface). It
       | was meant for student use but I found out later it was used by
       | Jim Beam on their whiskey distillery production line.
        
         | pjmlp wrote:
         | Turbo Vision and OWL started as Turbo Pascal frameworks and
         | were later ported to C++.
         | 
         | Delphi continues this tradition, most VCL components are
         | implemented in Delphi, even those shipped in C++ Builder.
        
         | tssva wrote:
         | There were Pascal and C++ versions of Turbo Vision. This
         | version is based upon the C++ version Borland released into the
         | public domain in 1997.
        
       | tluyben2 wrote:
       | Nice work!
        
         | magiblot wrote:
         | Thank you very much!
        
       | aghilmort wrote:
       | fun memories -- that + monochrome channel adapter was first dual-
       | monitor setup can actively recall using
        
       | andrewshadura wrote:
       | Unfortunately, I'm afraid, since this is based on the actual
       | source code of Turbo Vision, it's non-free, so it's unusable for
       | open source projects.
        
         | dvdkon wrote:
         | Wikipedia says there was an official Borland public domain
         | release of the source code, which this is probably based on:
         | https://en.wikipedia.org/wiki/Turbo_Vision
        
           | andrewshadura wrote:
           | Yes, you're right.
        
         | lproven wrote:
         | Very important point, this.
         | 
         | But of course Borland could fix that quite easily.
        
         | ilaksh wrote:
         | Man I hope you are wrong.. because I was literally planning to
         | build an IDE for Algorand/Python/PyTEAL with this (I know,
         | mentioning Algorand is an automatic downvote, oh well).
         | 
         | You might be right.. but I am not sure. Could Borland really
         | sue you or something, many years they release the full source
         | code "as is", "provided gratuitously", "no support", "no
         | updates"? I mean it doesn't explicitly say "public domain", but
         | if someone built software using this and then Borland tried to
         | claim ownership of it or something, would that not be some kind
         | of trap? It seems like any reasonable court would not allow
         | that.. I would like to believe anyway.
         | 
         | DISCLAIMER AND LIMITATION OF LIABILITY: Borland does not make
         | or give any representation or warranty with respect to the
         | usefulness or the efficiency of this software, it being
         | understood that the degree of success with which equipment,
         | software, modifications, and other materials can be applied to
         | data processing is dependent upon many factors, many of which
         | are not under Borland's control. ACCORDINGLY, THIS SOFTWARE IS
         | PROVIDED 'AS IS' WITHOUT EXPRESS OR IMPLIED WARRANTIES,
         | INCLUDING NO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
         | PARTICULAR PURPOSE, OR NONINFRINGEMENT. THIS SOFTWARE IS
         | PROVIDED GRATUITOUSLY AND, ACCORDINGLY, BORLAND SHALL NOT BE
         | LIABLE UNDER ANY THEORY FOR ANY DAMAGES SUFFERED BY YOU OR ANY
         | USER OF THE SOFTWARE. BORLAND WILL NOT SUPPORT THIS SOFTWARE
         | AND IS UNDER NO OBLIGATION TO ISSUE UPDATES TO THIS SOFTWARE.
         | 
         | WITHOUT LIMITING THE GENERALITY OF THE FOREGOING, NEITHER
         | BORLAND NOR ITS SUPPLIERS SHALL BE LIABLE FOR (a) INCIDENTAL,
         | CONSEQUENTIAL, SPECIAL OR INDIRECT DAMAGES OF ANY SORT, WHETHER
         | ARISING IN TORT, CONTRACT OR OTHERWISE, EVEN IF BORLAND HAS
         | BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES, OR (b) FOR
         | ANY CLAIM BY ANY OTHER PARTY. SOME STATES DO NOT ALLOW THE
         | EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES,
         | SO THIS LIMITATION AND EXCLUSION MAY NOT APPLY TO YOU. Use,
         | duplication or disclosure by the Government is subject to
         | restrictions set forth in subparagraphs (a) through (d) of the
         | Commercial Computer-Restricted Rights clause at FAR 52.227-19
         | when applicable, or in subparagraph (c) (1) (ii) of the Rights
         | in Technical Data and Computer Software clause at DFARS
         | 252.227-7013, and in similar clauses in the NASA AR Supplement.
         | Contractor / manufacturer is Borland International, Inc., 100
         | Borland Way, Scotts Valley, CA 95066.
        
           | andrewshadura wrote:
           | I hope I am wrong. But I don't see anywhere in the text of
           | this license any explicit permission to use it for any
           | purpose, it's basically only a warranty disclaimer, unless
           | some bits were omitted by accident.
        
             | ilaksh wrote:
             | Right. The question is, if I made a program, and for some
             | reason they wanted to extract a fee or make me delete it or
             | something, would a court take their side?
             | 
             | Because otherwise what is the utility of releasing the
             | source code of a programming library for free? Could they
             | argue that it was only for educational purposes or
             | something?
             | 
             | Again, seems like a trap if it's supposed to be interpreted
             | otherwise. In which case why should such a trap be legal.
        
           | andrewshadura wrote:
           | For anything Python, I recommend you try rich/textual.
        
           | magiblot wrote:
           | I very much doubt you can get into trouble for using Turbo
           | Vision as an external dependency. There are already projects
           | using it, e.g. https://github.com/electroly/tmbasic.
        
         | andrewshadura wrote:
         | I stand corrected, but the license statement should be updated
         | to clearly state the actual license, as it currently only
         | includes the warranty disclaimer.
        
       | enriquto wrote:
       | It reminds me of the great rhide, of djgpp fame. It was a similar
       | project.
        
         | magiblot wrote:
         | RHIDE uses this other Turbo Vision port:
         | https://github.com/set-soft/tvision. It depends on the custom
         | API extensions of that port, so it's not compatible with mine.
        
         | zozbot234 wrote:
         | AIUI, the FreeDOS project still maintains DJGPP and RHIDE.
        
       | MrYellowP wrote:
       | W o W ! :O
        
       | the-dude wrote:
       | I bought a mouse specifically for this. It was a Genius and came
       | with a holder which you could stick to the side of your monitor
       | or to a wall.
       | 
       | So you could store your mouse when not in use. I am not making
       | this up.
        
         | dual_dingo wrote:
         | Genius GM6000? I had that one and still use the cutting side of
         | the combined mousepad/cutting mat that came with it.
        
           | the-dude wrote:
           | Green. Outstanding quality.
        
             | jeffreygoesto wrote:
             | Can confirm. Mine was resting in a drawer for some years,
             | but seven i found it, I immediately started using it again.
             | Great mousepad since 1989.
        
         | WalterGR wrote:
         | Mouse holders are still manufactured, believe it or not.
        
         | vasac wrote:
         | I had the same one :) - https://youtu.be/GiFWLSdFAuA
        
         | sdfjkl wrote:
         | It also had a ball that you had to remove every third day or so
         | and then clean the friction rollers inside the mouse which the
         | ball was turning. All the dust the ball picked up transferred
         | onto those rollers and coagulated into dense felt around them
         | until they stopped turning.
         | 
         | Mine had three buttons though!
        
           | a_e_k wrote:
           | My standard kit still includes a pair of fine-point forceps
           | from my dad's lab that he gave to me for cleaning mice when I
           | went off to college. It's been a long time since I used them
           | for mice, but they're now really handy for charging ports.
        
       | wiz21c wrote:
       | I've already asked the question, but is there a way to embed this
       | in a regular app ? I mean, if I want to have a "retro" like GUI
       | _but_ I don 't want to bother my users with opening a
       | terminal/console, can I embed this ?
       | 
       | The thing I'm thinking about would be to extract the alacritty
       | render code and make it a library... But that's sure not easy to
       | do...
        
         | bonzini wrote:
         | You can use the vte library to embed a terminal in a GTK+
         | program. QEMU does it for example.
        
         | qbasic_forever wrote:
         | IMHO I would pop a web view and load an HTML page with tui.css.
         | It's seriously impressive looking and much easier to integrate
         | in a modern gui system, electron app, etc.:
         | https://github.com/vinibiavatti1/TuiCss
        
       | sdfjkl wrote:
       | Turbo Vision is odd. It's a backport of a graphical UI (Windows
       | 3.0) to text mode. It was exceptionally well done in both end
       | user and developer ease of use and caught on.
       | 
       | But I doubt it's the optimum for a text based UI, at least for
       | most applications. Keep evolving!
        
         | dual_dingo wrote:
         | IIRC both Windows and TV where modeled after the IBM Common
         | User Access
         | (https://en.wikipedia.org/wiki/IBM_Common_User_Access)
         | interface style, which was a somewhat big theme in the late 80s
         | and early 90s.
        
           | dugmartin wrote:
           | Its fun seeing some of the vestigial CUA key bindings in
           | modern apps. The one I probably use the most is F5 in the
           | browser to refresh the page. That is listed in your Wikipedia
           | page:
           | 
           | > If applicable to the page/screen in question F5 provides a
           | refresh function;
        
           | digisign wrote:
           | Also influenced by the original Mac UI, which influenced
           | Motif, which influenced later toolkits. It was a great time
           | for standard interfaces, which has gotten worse since, imho.
        
         | zozbot234 wrote:
         | There were text mode UIs well before Windows 3.0 - Microsoft
         | had their own TUIs, similar to Turbo Vision but with a subtly
         | different style. They even supported a "monochrome mode" option
         | that wouldn't look out of place on a VT-100 terminal.
        
           | digisign wrote:
           | Also reminded of the Norton DOS tools, which were interesting
           | in themselves.
        
         | qbasic_forever wrote:
         | You're not wrong, I remember a lot of turbo vision apps loved
         | to use the MDI, multiple document interface, paradigm where
         | each application was like a mini OS with unique windows you
         | could resize and place as you please. This was fine when you
         | were in DOS and could only run one application at a time,
         | entirely fullscreen. But nowadays MDI on a multitasking OS with
         | multiple things running at once is a weird anachronism, like
         | you're running an OS inside an OS. It's confusing and not good.
         | 
         | You can use turbo vision for good interfaces though. Just have
         | to be careful not to fall into the tropes of 30 year old pre-
         | multitasking OS application design.
        
           | zozbot234 wrote:
           | MDI is completely optional in TUI apps. It only enters the
           | picture _if_ you have multiple documents open within the same
           | terminal /app session, otherwise you simply get the single
           | document view. This applies to Emacs "windows" as much as any
           | TUI in DOS.
        
           | digisign wrote:
           | This is usually handled by tabs today... not sure that has
           | been ported back to libs like turbo vision yet. I don't think
           | so.
        
             | zozbot234 wrote:
             | Tab bars are not very TUI friendly though, since the
             | typical TUI has too little space to display a list of
             | usable tab names at all times. Instead there's simply a
             | hotkey which pops up a "window list" for the user to switch
             | to. (There are exceptions when space is genuinely abundant
             | and a side list of "views" or "tabs" to switch to can be
             | kept permanently visible, but they _are_ exceptions.)
             | 
             | Here the TUI designer profits from being able to _assume_
             | that the user can navigate using the keyboard, as opposed
             | to implementing  "keyboard shortcuts" as a purely
             | additional feature. (The GUI on the other hand can use
             | design 'tweaks' to minimize the wasted space and perhaps
             | distraction that would normally result from showing an
             | always-visible tab list.)
        
         | hdjjhhvvhga wrote:
         | > But I doubt it's the optimum for a text based UI, at least
         | for most applications.
         | 
         | Why do you think so? When I came across the first Newt apps
         | years later (Red Hat installer and tools) I was actually
         | surprised how less user-friendly and intuitive these newer TUIs
         | were wen compared to TV.
         | 
         | One big advantage of TV was that it was consistent: when you
         | learned how to use one app, you more or less knew how to use
         | all other TV-based apps.
        
       ___________________________________________________________________
       (page generated 2022-03-19 23:01 UTC)