From owner-freebsd-chat Thu Feb 1 14:40: 4 2001 Delivered-To: freebsd-chat@freebsd.org Received: from smtp10.phx.gblx.net (smtp10.phx.gblx.net [206.165.6.140]) by hub.freebsd.org (Postfix) with ESMTP id 4880037B65D for ; Thu, 1 Feb 2001 14:39:41 -0800 (PST) Received: (from daemon@localhost) by smtp10.phx.gblx.net (8.9.3/8.9.3) id PAA33686; Thu, 1 Feb 2001 15:39:28 -0700 Received: from usr08.primenet.com(206.165.6.208) via SMTP by smtp10.phx.gblx.net, id smtpdZ0xXia; Thu Feb 1 15:39:21 2001 Received: (from tlambert@localhost) by usr08.primenet.com (8.8.5/8.8.5) id PAA17765; Thu, 1 Feb 2001 15:39:26 -0700 (MST) From: Terry Lambert Message-Id: <200102012239.PAA17765@usr08.primenet.com> Subject: Re: software development tools - microsoft and unix To: jcm@FreeBSD-uk.eu.org (j mckitrick) Date: Thu, 1 Feb 2001 22:39:25 +0000 (GMT) Cc: freebsd-chat@FreeBSD.ORG In-Reply-To: <20010201183650.C76922@dogma.freebsd-uk.eu.org> from "j mckitrick" at Feb 01, 2001 06:36:50 PM X-Mailer: ELM [version 2.5 PL2] MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: owner-freebsd-chat@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org > It seems if there is one thing Microsoft does well, it is providing powerful > development tools. If you ignore the fact that they use proprietary > language extensions, what is the problem with these tools? They have taken > the industry by storm, and even Kdevelop has tried to clone the Visual > studio look and feel. > > What have I missed? Is there any real flaw in the tools that explains why > similar tools have not appeared as open source in the unix world, or am I > just unaware of them? There are flaws in the system to which the tools are targetted, which /partially/ explains why similar tools have not appeared. The number one problem with Windows is that you can not post-mortem a failure. Without a core image at the time of the failure, you can't get a stack traceback at the failure point. In general, the Windows tools handle this by having the programmer remember where the failure was (step N), and repeat the process up to just before the failure (step N-1), and then examine things. This failing, by itself, drove simple debugger restart, region breakpoints, and similar debugger innovations. A secondary problem with Windows, which is _not_ common to all versions (which is why many shops choose to develope on NT), is that it is really not a true protected mode OS. Because of this, there are regions where it is possible for an application to corrupt the system itself, and cause a failure. At that point, knowing the start of the region where the failure was (which the Windows debugger normally tracks as a one-behind, through call traps) really does you no good: you are back to remembering the step of the failure, and going back to step N-1. A similar problem is a lack of failure on NULL pointer dereference, which is generally one of the most common coding errors -- most particularly, by the people who learned to program in environments where it is not uniformly fatal. Another Windows problem is the same as a VMS problem, which is that compilaton with debugging results in a serious preterbation of failure cases. In VMS, it was quite common to link something with debugging, and have the problem disappear. In general, this means that array overflows of stack variables, which would normally trash the stack to fatality on a UNIX system, and similarly, any dereferences which were out of data range, but which now return debugging data, now that the data space has increased, will shield another common programming mistake. This mistake is quite common for new programmers, who are not used to the concept of an option base of zero, or of NUL termination of strings requiring array space in the array (string) declaration. Finally, there is also the historical (and now defunct) competition in the tools space, which has driven them to be better than each other, where users would not have demanded it (and here we see a nice example of why the ability to wield monopolistic power in a market is bad for consumers). If I had to characterize the existance of such tools in one sentence, I would say that they were compensation for the failings of the target OS. > Are there any unix tools that are evolving as quickly, that allow easy > creation of COM objects, GUIs, etc.? There are some. Several good examples have actually been forced out of business (ask Warner about Object Interface Builder) through petty in-fighting among UNIX vendors. The big reason these thing don't show up often in Open Source is their relative cost, and compared to other tools in Windows, which the naieve will call "good tools", good tools in UNIX are very, very expensive, even relative to the cost of an OS license (BattleMap and Interactive Developement Environment's products are examples; for a single workstation license for BattleMap in 1990 or so, you were looking at $50,000 US). HP has a number of moderately good, if primitive, tools; so does DEC, though they are rather limited anywhere but VMS (guess that's Compaq, now). Web Methods has a number of tools; Rational software does as well. There are a couple of IDE offerings coming up in the UNIX space that are much cheaper, and appear as first-generation tries at a real IDE (look in the ports tree under developer tools for two of them). There is also a third generation/first generation hybrid, which is the Borland port of their environment to Linux, which I have not seen catching on. For the moral equivalent of COM object creation, etc., there are IDL compilers available for UNIX systems; they generally require, if your COM object equivalent is really an ActiveX control equivalent, use of MOTIF as the target for the code generation. Probably you should go to a search engine and look for the permutations of the terms "code generator", "code generation", "IDL", "IDE", "CASE", "UML", etc.. Terry Lambert terry@lambert.org --- Any opinions in this posting are my own and not those of my present or previous employers. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-chat" in the body of the message