From owner-freebsd-hackers@FreeBSD.ORG Mon Sep 1 13:35:27 2003 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4C1C516A4BF; Mon, 1 Sep 2003 13:35:27 -0700 (PDT) Received: from fledge.watson.org (fledge.watson.org [204.156.12.50]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4C29143FE1; Mon, 1 Sep 2003 13:35:26 -0700 (PDT) (envelope-from robert@fledge.watson.org) Received: from fledge.watson.org (localhost [127.0.0.1]) by fledge.watson.org (8.12.9/8.12.9) with ESMTP id h81KYlrO075166; Mon, 1 Sep 2003 16:34:47 -0400 (EDT) (envelope-from robert@fledge.watson.org) Received: from localhost (robert@localhost)h81KYlMf075163; Mon, 1 Sep 2003 16:34:47 -0400 (EDT) Date: Mon, 1 Sep 2003 16:34:47 -0400 (EDT) From: Robert Watson X-Sender: robert@fledge.watson.org To: Denis Troshin In-Reply-To: <29508631.20030901165843@mail.ru> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: freebsd-hackers@freebsd.org cc: freebsd-questions@freebsd.org Subject: Re: Ugly Huge BSD Monster X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 01 Sep 2003 20:35:27 -0000 On Mon, 1 Sep 2003, Denis Troshin wrote: > Almost every package I install requires a few other packages. This 'idea > of using dependent packages' turns FreeBSD (and other unix-systems) to > an ugly monster. > > For example, I don't need Perl or Python but a few packages I install > require them. > > Does exist a programming under unix without these dependencies? > > P.S. Under Windows it is possible to write not bad applications which > depend just on libraries (KERNEL32, USER32, GDI32). And these libs > exist on every base system!!! > > Is it possible in unix? > > Before I thought that unix programs very compact, but they are huge! You've already got a boatload of responses, but I figured I'd throw in mine: it depends on the application. If applications require a scripting language, by virtue of what they do or how they are written, well, you get a scripting language in the dependencies. To get a Windows-like environment on FreeBSD, you need to layer the X server and then a toolkit/windowing environment on top -- my personal leaning right now is to stick QT/KDE on top. Once you have those pieces in place, you have a lot of what you need to write general-purpose applications interacting with users, the network, multimedia, etc. If you look at some of the "key" UNIX software packages, however, you'll see that they tend not to have a lot of dependencies -- Apache, Postgres, MySQL, etc. These applications avoid dependencies through less reliance on scripting, GUI elements, etc. One of the upsides, and downsides, of the open source world is a strong dependence on scripting, and the resulting diversification of scripting languages and rapid prototyping tools. This occurs in the Windows world also, though -- if you rely on Java, you need the JVM. If you have TCL applications, you need the TCL environment as well. Many web sites running on Windows use Perl for CGI just as they do in UNIX, in which case you need Perl... One of the nice things about this package-oriented approach is that the dependencies are generally very explicit: you want to write a gui app, so you need the gui pieces. Your application requires a back-end database, so a database dependency is introduced. In Windows, you have a larger "base" but less ability to decompose as a result. I'm also a bit alarmed when I install a new application and pick up two new scripting languages along the way -- I tend to avoid installing applications that pull in scripting as a dependency. However, sometimes that's unavoidable. In Windows, I think you'll find applications depend on more in the way of libraries than you think, though... Upgrades to system dlls when you build and install applications are not infrequent -- application vendors tend to "quietly bundle" all the dependent runtime components and quietly install them.... Robert N M Watson FreeBSD Core Team, TrustedBSD Projects robert@fledge.watson.org Network Associates Laboratories