4 ms·
Uhhmmm... am I the only one that noticed that the sole example in the article of "programs gain overlapping features over time" is of Microsoft software ... whi
by maratd 16y ago
Uhhmmm... am I the only one that noticed that the sole example in the article of "programs gain overlapping features over time" is of Microsoft software ... which, like, has nothing to do with Unix? My unix/linux box doesn't have overlapping software. Every piece of software is a specialist and does what it does well. It is easily replaceable and does not interfere with other software installed on the box. The unix/linux philosophy works extremely well. That's why it's popular.
- wtracy 16y agoI see the overlapping features bit pop up almost everywhere that people build GUIs. Your word processor features a WYSIWYG text editor (if you're on Linux this is probably AbiWord, OO.o Writer, or KWord). Meanwhile, if you have a modern web browser, it probably has a WYSIWYG formatted text editor as well. (Anything based on a recent version of Webkit or Gecko certainly will; on your Linux box that might be Firefox, Chrome, Epiphany, or Konqueror.) If truly none of your software features overlapping features, I would bet that either you don't have X11 installed, or you have Solaris or HP-UX installed with a bunch of ancient Motif applications. :-)
- lurker14 16y agoA WYSIWYG HTML editor (as in Writely/Gmail) isn't quote the same as a general WYSIWYG document editor, though. Unix programs, even GUI ones, share a ton of code, as you can easily see if you try to install an interesting GUI application like Shotwell or Digikam. Heck, I've never written an Instant Messenger application, but I know that "libpurple" is the name for the IM component that most Linux chat programs use. And hey, that's exactly how it is advertised: http://developer.pidgin.im/wiki/WhatIsLibpurple http://developer.pidgin.im/wiki/WhatIsLibpurple What is libpurple? libpurple is intended to be the core of an IM program. When using libpurple, you'll basically be writing a UI for this core chunk of code. Pidgin is a GTK+ frontend to libpurple, Finch is an ncurses frontend, and Adium is a Cocoa frontend.
- js2 16y agoJust as a for example: cat -n overlaps with: awk '{ print NR "\t" $0 }' http://harmful.cat-v.org/cat-v/unix_prog_design.pdf http://harmful.cat-v.org/cat-v/unix_prog_design.pdf
- koenigdavidmj 16y agoReminds me of http://www.feep.net/~roth/geek-humor/unix/unix-crash-recovery-story http://www.feep.net/~roth/geek-humor/unix/unix-crash-recover... , which talks a bit about the pains used to work around the lack of ls(1).
- BrandonM 16y ago> My unix/linux box doesn't have overlapping software Not really true at all. find is especially heinous. "find ... -delete" is equivalent to "find ... -print0 | xargs -0 rm --"
- lloeki 16y agoTo me that does not count as a duplicate, but as a usability and scalability feature. * "find ... -delete" probably just calls unlink, just as rm does, which is a libc feature. No subshell spawned thus lean and fast. * "find ... -exec 'rm {}'" allows to run a command without xargs, but does not allows you to filter and transform the stream. Propably will spawn a subshell for each call. * "find ... -print0 | sed 'bar' | grep -v foo | frobznicate qux | xargs -0 rm --" is where the power lies. A few more subshells created. This, to me, shows that 'find' actually does what it should do, and allows you to choose the best way you can do it WRT the task at hand.
- rtaycher 16y agoand massive gui programs are?
- vacri 16y agoI would had thought a much simpler and more direct example of functional overlap would have been 'more' and 'less'...
- lloeki 16y ago'less' is actually an improved reimplementation of 'more'. On my Mac, for example, 'less' and 'more‘ are hardlinked: $ find /usr/bin -samefile /usr/bin/less /usr/bin/less /usr/bin/more And invoking 'less' as 'more' most probably makes less drop into a compatibility mode. Also, 'man more' brings you to the less(1) page, which contains the following snippet: Less is a program similar to more (1), but which allows backward movement in the file as well as forward movement. Also, less does not have to read the entire input file before starting, so with large input files it starts up faster than text editors like vi (1). Less uses termcap (or terminfo on some systems), so it can run on a variety of terminals. There is even limited support for hardcopy terminals. (On a hardcopy terminal, lines which should be printed at the top of the screen are prefixed with a caret.)