From owner-freebsd-hackers Thu Dec 11 02:19:11 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.7/8.8.7) id CAA00854 for hackers-outgoing; Thu, 11 Dec 1997 02:19:11 -0800 (PST) (envelope-from owner-freebsd-hackers) Received: from d198-232.uoregon.edu (d198-232.uoregon.edu [128.223.198.232]) by hub.freebsd.org (8.8.7/8.8.7) with ESMTP id CAA00845 for ; Thu, 11 Dec 1997 02:19:03 -0800 (PST) (envelope-from mini@d198-232.uoregon.edu) Received: (from mini@localhost) by d198-232.uoregon.edu (8.8.5/8.8.5) id CAA17538; Thu, 11 Dec 1997 02:18:57 -0800 (PST) Message-ID: <19971211021856.61158@micron.mini.net> Date: Thu, 11 Dec 1997 02:18:56 -0800 From: Jonathan Mini To: "Jordan K. Hubbard" Cc: Jonathan Mini , The Classiest Man Alive , freebsd-hackers@FreeBSD.ORG Subject: Re: Why so many steps to build new kernel? Reply-To: Jonathan Mini References: <19971211013734.16942@micron.mini.net> <26106.881834408@time.cdrom.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Mailer: Mutt 0.88e In-Reply-To: <26106.881834408@time.cdrom.com>; from Jordan K. Hubbard on Thu, Dec 11, 1997 at 02:00:08AM -0800 X-files: The Truth is Out There Sender: owner-freebsd-hackers@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk Jordan K. Hubbard stands accused of saying: > > If I were to write another (smaller, and more acceptable) CUI > > would you be interested in using it in sysinstall also? > > YES! YES! Or, to put it another way, YES! :-) I thought so, but wanted to make ABOSLUTELY sure. :) > The alternative is TurboVision and, as much as I rather like it as a > CUI toolkit and find its look-and-feel to be second to none in the CUI > domain (in fact, I think I can say without fear of hyperbole that it > goes about as far as it's possible to go with a CUI, period), there's You and I are on the same bandwidth. I was brought into the event-driving UI world with Turbo Pascal's version of Turbo Vision 2.0 (which, btw, is _much_ better than the C++ version by far. It is cleaner, smaller, and more ellegant in implementation) Ever since then, I have been unimpressed with other GUI's, as my impression is always that they are bloated, half-functional, and ugly. :) > just this big huge problem with it. It's in C++. I hate C++ and so > do just about all of the other installation hackers, so we have > something of an impasse in the interface group right now (heck, for > the last 8 months even). I HATE C++. It has four problems that I consider unacceptable : 1) It's syntax does not remain constant. For example, a '<<' does not always mean "binary shift left." 2) It had a large number of puns, (Bison would call them Reduce/Reduce conflicts) that is situations where one construct can mean multiple things. This is made most annoying when it combines with #1, in that an operator can have several paths to reach it's goal, and the compiler picks among them implicitly. 3) C++ does not implement data hiding. Sure, you have opaque structs, but you cannoy make an opaque class. That is, you cannot have a class defined where you know how to interface with the functions, but not the details of the internal data. Because you have to define the private data within the same scope as the public interface, private datatypes aren't possible. 4) C++ does things without you knowing it, whether or not you are using classes at all. This goes along with the collision of #1 and #2. A good example is if you define a new data-type, say a fixed real. This fixed real is represented in memory by an integer, which causes problems with the automatic implcit casting code, especially in conjunction with 'overloading' (see #2) where a functino with the same name can handle multiple data types. When it is possible so implicitly cast a foreign data type to more than one function, the compiler gets to (basically) blow up, and the casting has to happen explicitly. But, implcit casting is supposed to be a big deal. :) There are my gripes with C++. > Give me something that's written in straight C and easy to wrap into > TCL (which should be possible unless you decide to pass all kinds of > nasty structures around and expose that in the C API) and I'll be your > friend for life. OK, so maybe that doesn't sound like such a treat, > so let me just say that I'd really really appreciate it and so would > many others. :) > > We basically just need: > > o Buttons - pushbutton, radio, checkbox. > > o Scrolling list menus (or scrolling arrays of buttons, > however you want to conceptualize it) > > o Entry fields with reasonably emacs-like character editing > support. ( ewww, emacs ) > > o Scrolling text boxes and simple text fields. > > o Checkbox / Radio > o Gauges. > > o Compound dialogs. > > o Simple forms entry. > > And we could do everything that sysinstall does messily with libdialog > today. Support for color and the mouse would be optional niceties, > but not strictly necessary. Would have to look reasonably decent in > at least syscons and xterm (vt100) display modes and that's about it. > > What do you think? I have another project which requires a nearly-exactly-identical system. I will spend a few days creating an API and then send you an overview for comments. Do you want me to send it to you personally, post it to hackers, or make the documents available via the web? (My system will be expandable to graphics modes, just FYI) -- Jonathan Mini Ingenious Productions Software Development P.O. Box 5693, Eugene, Or. 97405 "A child of five could understand this! Quick -- Fetch me a child of five."