From owner-freebsd-libh Mon Oct 23 12: 3:36 2000 Delivered-To: freebsd-libh@freebsd.org Received: from winston.osd.bsdi.com (winston.osd.bsdi.com [204.216.27.229]) by hub.freebsd.org (Postfix) with ESMTP id 97A4437B479 for ; Mon, 23 Oct 2000 12:03:33 -0700 (PDT) Received: from winston.osd.bsdi.com (jkh@localhost [127.0.0.1]) by winston.osd.bsdi.com (8.11.1/8.9.3) with ESMTP id e9NJ38407135; Mon, 23 Oct 2000 12:03:09 -0700 (PDT) (envelope-from jkh@winston.osd.bsdi.com) To: kientzle@acm.org Cc: Alexander Langer , libh@FreeBSD.ORG Subject: Re: BOF at BSDCon: FreeBSD Installer, Packages System In-Reply-To: Message from Tim Kientzle of "Sun, 22 Oct 2000 22:34:15 PDT." <39F3CDD7.15B889E7@acm.org> Date: Mon, 23 Oct 2000 12:03:08 -0700 Message-ID: <7131.972327788@winston.osd.bsdi.com> From: Jordan Hubbard Sender: owner-freebsd-libh@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG > However, I did talk to a few people about the installer > and came up with at least one very concrete suggestion: > > The installer must be scriptable. We're waaaaay ahead of you on that one. :) That's one of the major reasons that libh is TCL based and mandates a TCL API for all major functionality in addition to the C/C++ APIs already offered by various back-end libraries. You want to be able to compile up monolithic installer/package front-ends for embedded solution stuff (think flash) AND you want to be able to craft more comprehensive solutions, such as that which would go on a generic boot floppy, with a TCL interpreter embedded and lots of nice hooks for jumping to optional user scripts which can pretty much do anything they damn well please. > Since installer size is such a major concern, the > language needs to be something very compact to implement. > I know of three languages that have extremely compact > implementations: Forth, Lisp, and BASIC. My favorite Heh. Well, fortunately, TCL is both compact (at one of my last jobs we even got it into a telephone switch with only 64K of memory) and well-known to many. Forth, well, it's suited to boot loaders and such (being *really* compact) but has such an acceptance problem for more general programming that I don't think we could use it. I'm a big forth fan myself, don't get me wrong, but it's a really hard sell. Likewise lisp, even though you're starting to see more of it in window managers and such (I believe sawfish uses guile), is a pretty hard sell to people more used to procedural programming languages. I also like lisp and think it's a great language but, like forth, you usually hear little but loud whining when you adopt it for a mainstream project. The GIMP uses it, for example, and you see hardly anyone but the actual principal developers writing plug-ins for it. As to BASIC, well, ICK. It might be great for training neophytes in programming but it's got too many deficiencies as a general programming language unless you go all the way and attempt to write an HP business BASIC clone or something. There's no scoping, e.g. nothing like TCL's namespace mechanism, and the language itself is not very extensible. With TCL, for example, you can drop in one module and voila', you have a full OOP paradigm now available ([incr TCL]). There are quite a few other examples of this which make BASIC, especially a quick hand-rolled BASIC, simply way too simplistic for the job. Also, people tend to have a strong gag reflex when you mention BASIC and I'd rather not have to sell such a project over the sounds of gagging, fair or not. > This also implies that the installer must > be very modular. In particular, the major dialogs > need to be script language commands and the primary I think you really really need to look into libh. Much of what's on your wish list is already implemented, to say nothing of designed. :) - Jordan To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-libh" in the body of the message