The Cathedral and the Bazaar by Eric S. Raymond $Date: 1998/08/11 20:27:29 $ Óôï ðáñüí áíáëýù Ýíá åðéôõ÷çìÝíï project áíïé÷ôïý êþäéêá (open source), ôï fechmail. Áõôü Þôáí ðïõ Ýðáéîå ôï ñüëï åíüò åóêåììÝíïõ ôåóô ìåñéêþí åêðëçêôéêþí èåùñéþí ãýñù áðü ôçí ôå÷íïëïãßá ëïãéóìéêïý (software engineering) üðùò õðïäåß÷ôçêáí áðü ôçí éóôïñßá ôïõ Linux. Ðñáãìáôåýïìáé áõôÝò ôéò èåùñßåò ìå ôïõò üñïõò äõï èåìåëéáêÜ äéáöïñåôéêþí óôõë áíÜðôõîçò, ôï Êáèåäñéêü ìïíôÝëï (cathedral) õéïèåôçìÝíï áðü ôï ìåãáëýôåñï êïììÜôé ôïõ åìðïñéêïý êüóìïõ åíáíôßïí ôïõ Ðáæáñéþôéêïõ ìïíôÝëïõ (bazaar) ôïõ êüóìïõ ôïõ Linux. Äåß÷íù üôé áõôÜ ôá ìïíôÝëá êáôåõèýíïíôáé áðü áíôßèåôåò õðïèÝóåéò ãéá ôçí öýóç ôçò äéáäéêáóßáò áðïóöáëìÜôùóçò ëïãéóìéêïý. Óôçí óõíÝ÷åéá äçìéïõñãþ Ýíá õðïóôçñéêôéêü åðé÷åßñçìá áðü ôçí åìðåéñßá ôïõ Linux ãéá ôçí õðüèåóç "Ý÷ïíôáò áñêåôÜ ìÜôéá, üëá ôá bugs åßíáé ñç÷Ü", ðñïôåßíù ðáñáãùãéêÝò áíáëïãßåò ìå Üëëá áõôü-äéïñèþóéìá óõóôÞìáôá áðü åãùéóôéêïýò óõíôåëåóôÝò êáé êëåßíù ìå åîåñåýíçóç ôùí óõíåðåéþí áõôÞò ôçò äéüñáóçò ãéá ôï ìÝëëïí ôïõ ëïãéóìéêïý. ______________________________________________________________________ Table of Contents 1. Ï Êáèåäñéêüò êáé ôï ÐáæÜñé. 2. Ôï ÌÞíõìá ÐñÝðåé íá ÐåñÜóåé. 3. Ç Óðïõäáéüôçôá ôïõ íá ¸÷åéò ×ñÞóôåò. 4. Åêäüóåéò Íùñßò, Åêäüóåéò Óõ÷íÜ. 5. Ðïôå ¸íá ÔñéáíôÜöõëëï äåí Åßíáé ÔñéáíôÜöõëëï? 6. Ï Popclient Ãßíåôáé Fetchmail. 7. Ôï Fetchmail Åíçëéêéþíåôáé. 8. ÌåñéêÜ Áêüìç ÌáèÞìáôá áðï ôï Fetchmail. 9. ÐñïûðïèÝóåéò ãéá ôï Óôõë Ðáæáñéïý. 10. Ôï Êïéíùíéêü Ðëáßóéï ôïõ Ëïãéóìéêïý Áíïé÷ôïý Êþäéêá. 11. Åõ÷áñéóôßåò. 12. Ãéá ÐåñáéôÝñù ÌåëÝôç. 13. Åðßëïãïò: Ç Netscape ÁãêáëéÜæåé ôï ÐáæÜñé! ______________________________________________________________________ [1m1. Ï Êáèåäñéêüò êáé ôï ÐáæÜñé.[0m Ôï Linux åßíáé áíáôñåðôéêü. Ðïéïò èá óêåöôüôáí, áêüìç êáé ðñéí áðü ðÝíôå ÷ñüíéá , üôé Ýíá ëåéôïõñãéêü óýóôçìá ðáãêüóìéáò åìâÝëåéáò èá öôéá÷íüôáí, óáí áðü ìáãåßá, áðü ôìçìáôéêÜ hacking ðïõ Ýêáíáí ÷éëéÜäåò ðñïãñáììáôéóôÝò óêïñðéóìÝíïé ó' üëï ôïí ðëáíÞôç, åíùìÝíïé ìüíï ìå ôá áäýíáìá íÞìáôá ôïõ Internet; Êáíåßò, âÝâáéá. Ôçí þñá ðïõ ìÜèáéíá ãéá ôï Linux óôéò áñ÷Ýò ôïõ 1993, áó÷ïëïýìïõíá Þäç ìå ôï Unix êáé ôïí ðñïãñáììáôéóìü áíïé÷ôïý êþäéêá [open source]åðß äÝêá ÷ñüíéá. ¹ìïõí áðü ôïõò ðñþôïõò äéáíåìçôÝò ôçò GNU óôá ìÝóá ôçò äåêáåôßáò ôïõ '80. Åß÷á êáôáóêåõÜóåé êáé äéáèÝóåé Ýíáí óåâáóôü áñéèìü ëïãéóìéêïý áíïé÷ôïý êþäéêá óôï äßêôõï, áíáðôýóóïíôáò Þ óõíáíáðôýóóïíôáò ðïëëÜ ðñïãñÜììáôá (nethack, Emacs VC êáé GUD modes, xlife êáé Üëëá) ðïõ ðáñáìÝíïõí óå åõñåßá ÷ñÞóç Ýùò óÞìåñá. Íüìéæá ðùò Þîåñá ðþò åß÷áí ãßíåé üë' áõôÜ. Ôï Linux áíÝôñåøå ðïëëÜ áð' áõôÜ ðïõ íüìéóá üôé Þîåñá. ÕðïóôÞñéæá ôï "ÅõáããÝëéï" ôùí ìéêñþí åñãáëåßùí ôïõ Unix, ôçí ãñÞãïñç áíÜðôõîç ðñùôïôýðùí êáé ôïí åîåëéêôéêü ðñïãñáììáôéóìü [evolutionary programming] ãéá ÷ñüíéá. Ðßóôåõá, üìùò, üôé õðÜñ÷åé ìéá óõãêåêñéìÝíç êñßóéìç ðïëõðëïêüôçôá ðÜíù áðü ôçí ïðïßá áðáéôïýíôáí ìéá ðåñéóóüôåñï êåíôñéêÞ, áðñéüñé ðñïóÝããéóç. Ðßóôåõá üôé ôá ðéï óçìáíôéêü ëïãéóìéêü (ëåéôïõñãéêÜ óõóôÞìáôá êáé ðñáãìáôéêÜ ìåãÜëá åñãáëåßá üðùò ôï Emacs) Ýðñåðå íá ÷ôéóôïýí óáí êáèåäñéêïß íáïß, ðñïóå÷ôéêÜ öôéáãìÝíïé áðü ìåìïíùìÝíïõò åéäéêïýò [wizards] Þ ìéêñÝò ïìÜäåò áðü "ìÜãïõò" [mages] ðïõ íá äïõëåýïõí óå áðüëõôç áðïìüíùóç, ÷ùñßò íá äçìïóéåýïíôáé ïé beta ðñéí ôçí þñá ôïõò. Ôï óôõë ðñïãñáììáôéóìïý ôïõ Linus Torvalds- ðñþéìåò êáé áíÜ ìéêñÜ äéáóôÞìáôá åêäüóåéò ëïãéóìéêïý, ìåôáâéâÜóåéò ôïõ êÜèå ôé, áíï÷Þ óôï æÞôçìá ôçò åôåñïãåíïýò ìåãÜëçò áíÜìåéîçò - Þôáí Ýêðëçîç. Äåí Ýìïéáæå ìå èñçóêåõôéêü êáèåäñéêü íáü - ç êïéíüôçôá ôïõ Linux Ýìïéáæå ðåñéóóüôåñï ìå Ýíá ìåãÜëï öëýáñï ðáæÜñé äéáöïñåôéêþí ðñáêôéêþí êáé ðñïóåããßóåùí (ðïõ óõìâïëßæïíôáé ìå áñ÷åéïèÞêåò [sites] ëïãéóìéêïý ãéá Linux, óôá ïðïßá ìðïñåß íá óõíåéóöÝñåé ï [4mêáèÝíáò[24m) áðü ôï ïðïßï Ýíá óõíåðÝò êáé óôáèåñü óýóôçìá ìðïñïýóå íá öôéá÷ôåß ìüíï ìåôÜ áðü ìéá áêïëïõèßá èáõìÜôùí. Ôï ãåãïíüò üôé áõôü ôï ðáæÜñé Ýäåé÷íå íá äïõëåýåé êáé íá äïõëåýåé êáëÜ, Þôáí Ýíá îåêÜèáñï óïê. Êáèþò ï êáéñüò ðåñíïýóå êé åãþ ìÜèáéíá, äïýëåõá óêëçñÜ ü÷é ìüíï óå óõãêåêñéìÝíá projects, áëëÜ êáé ðñïóðáèþíôáò íá êáôáëÜâù ãéáôß ï êüóìïò ôïõ Linux ü÷é ìüíï äåí Ýðåöôå óå óýã÷õóç áëëÜ Ýäåé÷íå íá äõíáìþíåé óõíå÷þò, ìå ìéá ôá÷ýôçôá ðïõ äåí ôçí öáíôÜæïíôáí ïé áñ÷éôÝêôïíåò êáèåäñéêþí íáþí. Óôá ìÝóá ôïõ 1996 Üñ÷éóá íá êáôáëáâáßíù. Ìïõ äüèçêå ç åõêáéñßá íá äïêéìÜóù ôçí èåùñßá ìïõ ìå ôçí ìïñöÞ åíüò project áíïé÷ôïý êþäéêá ðïõ èá ðñïóðáèïýóá íá èÝóù óå ëåéôïõñãßá ìå ôï óôõë ôïõ ðáæáñéïý. ¸ôóé êé Ýêáíá - êáé ç åðéôõ÷ßá Þôáí ìåãÜëç. Óôï õðüëïéðï ìÝñïò áõôïý ôïõ Üñèñïõ èá áöçãçèþ ôçí éóôïñßá áõôïý ôïõ project êáé èá ôï ÷ñçóéìïðïéÞóù ãéá íá ðñïôåßíù êÜðïéåò èÝóåéò ãéá ôçí áðïôåëåóìáôéêÞ áíÜðôõîç ðñïãñáììÜôùí áíïé÷ôïý êþäéêá. ÐïëëÜ áðü áõôÜ äåí ôá ðñùôïÝìáèá ìÝóá áðü ôï êüóìï ôïõ Linux, áëëÜ èá äïýìå ðþò áõôüò ôïõò äßíåé Ýíá éäéáßôåñï íüçìá. Áí åßìáé óùóôüò óôéò áðüøåéò ìïõ, èá óáò âïçèÞóïõí íá êáôáëÜâåôå ôé áêñéâþò åßíáé áõôü ðïõ êÜíåé ôçí êïéíüôçôá ôïõ Linux ìéá ðçãÞ ôüóï êáëïý ëïãéóìéêïý-êáé èá óáò âïçèÞóåé íá ãßíåôáé êáé åóåßò ïé ßäéïé ðéï ðáñáãùãéêïß._ [1m2. Ôï ÌÞíõìá ÐñÝðåé íá ÐåñÜóåé.[0m Áðü ôï 1993 Ý÷ù ôçí åõèýíç ôçò ôå÷íéêÞò ðëåõñÜò åíüò ìéêñïý Ðáñï÷Ýá åëåýèåñçò ðñüóâáóçò, ðïõ ïíïìÜæåôáé Chester County InterLink (CCIL) óôï Äõôéêü ÔóÝóôåñ ôçò ÐåíóõëâÜíéá (åßìáé óõíéäñõôÞò ôïõ CCIL êáé êáôáóêåýáóá ôï äéêü ìáò ìïíáäéêü ðïëõ÷ñçóôéêü bulletin-board software --ìðïñåßôå íá ôï äåßôå êÜíïíôáò telnet óôï locke.ccil.org <telnet://locke.ccil.org>. ÓÞìåñá õðïóôçñßæåé ó÷åäüí ôñåéò ÷éëéÜäåò ÷ñÞóôåò óå ôñéÜíôá ãñáììÝò). ÁõôÞ ç äïõëåéÜ ìïõ åðÝôñåðå åëåýèåñç ðñüóâáóç óôï äßêôõï åðß 24þñïõ âÜóåùò ìÝóù ôçò 56Ê ãñáììÞò ôïõ CCIL. in fact, it practically demanded it! ÅðïìÝíùò, Þìïõí ìáèçìÝíïò óôçí ÷ñÞóç ôïõ Üìåóïõ çëåêôñïíéêïý ôá÷õäñïìåßïõ. Ãéá êÜðïéïõò ðåñßðëïêïõò ëüãïõò Þôáí äýóêïëï íá óõíäÝóù ìå SLIP ôïí õðïëïãéóôÞ ðïõ Ý÷ù óôï óðßôé ìïõ (snark.thyrsus.com) êáé ôïí CCIL. ¼ôáí, ôåëéêÜ ,ôá êáôÜöåñá áíáêÜëõøá üôé ðñÝðåé íá óõíäÝïìáé (telnet) ðåñéïäéêÜ óôïí "locke" ãéá íá ðáñáëáìâÜíù ôçí áëëçëïãñáößá ìïõ. Áõôü ðïõ Þèåëá ãéá ôçí áëëçëïãñáößá ìïõ Þôáí íá ðáñáäßäåôáé óôïí snark Ýôóé þóôå íá ìðïñþ íá åéäïðïéïýìå üôáí öôÜíåé êáé íá ìðïñþ íá ôçí ÷åéñéóôþ ÷ñçóéìïðïéþíôáò üëá ôá ôïðéêÜ åñãáëåßá ìïõ. Ç áðëÞ ðñïþèçóç ìçíõìÜôùí ìå ôï sendmail äåí äïýëåõå, åðåéäÞ ï ðñïóùðéêüò õðïëïãéóôÞò ìïõ äåí åßíáé óõíå÷þò óôï äßêôõï êáé äåí Ý÷åé óôáôéêÞ äéåýèõíóç IP. Áõôï ðïõ Þèåëá Þôáí Ýíá ðñüãñáììá ðïõ èá Ýðáéñíå ôïí Ýëåã÷ï ðÜíù áðü ôçí SLIP óýíäåóç ìïõ êáé èá ìåôÝöåñå ôçí áëëçëïãñáößá ìïõ íá ôçí ðáñáëÜâù ôïðéêÜ. ¹îåñá üôé ôÝôïéá ðñïãñÜììáôá õðÞñ÷áí êáé üôé ôá ðåñéóóüôåñá ÷ñçóéìïðïéïýóáí Ýíá áðëü ðñùôüêïëëï ðïõ ëÝãåôáé ÑÏÑ(Post Office Protocol). Êáé Þìïõí áñêåôÜ óßãïõñïò üôé õðÞñ÷å Ýíáò ÑÏÑ3 óÝñâåñ ðïõ óõìðåñéëáìâÜíåôáé óôï BSD/OS ëåéôïõñãéêü ðïõ âñéóêüôáí óôïí "locke". ×ñåéáæüìïõí Ýíáí ÑÏÑ3 client. ¸ôóé, óõíäÝèçêá óôï äßêôõï êáé âñÞêá Ýíáí. Óôçí ðñáãìáôéêüôçôá ÂñÞêá ôñåéò ôÝóóåñéò. ×ñçóéìïðïßçóá pop-perl ãéá ëßãï, áëëÜ Ýëëåéðå ìéá óçìáíôéêÞ äõíáôüôçôá, Ç äõíáôüôçôá íá ìåôáôñÝðïíôáé ïé äéåõèýíóåéò ôùí ðáñáëáìâáíüìåíùí ìçíõìÜôùí þóôå ç äõíáôüôçôá áðÜíôçóçò [reply] íá äïõëåýåé óùóôÜ. Éäïý ôï ðñüâëçìá: õðïèÝóôå üôé êÜðïéïò ðïõ ëÝãåôáé "joe" óôïí "locke" ìïõ Ýóôåéëå Ýíá ìÞíõìá [mail] Áí ðáñáëÜâù ôï ìÞíõìá óôïí snark êáé ìåôÜ åðé÷åéñÞóù íá áðáíôÞóù, ôï ðñüãñáììá çëåêôñïíéêïý ôá÷õäñïìåßïõ èá ðñïóðáèÞóåé íá ôï óôåßëåé ó' Ýíáí "joe" ðïõ äåí õðÜñ÷åé óôïí snark. Ç ôáêôéêÞ ìåôáôñïðÞò ìå ôï óåñß ôùí äéåõèýíóåùí ðñïò áðÜíôçóç [Reply addresses] óôïí "@ccil.org" ãñÞãïñá áðïäåß÷èçêå ðïëý äýóêïëç. ¹ôáí êÜôé ðïõ ï õðïëïãéóôÞò Ýðñåðå ïðùóäÞðïôå íá êÜíåé ãéá ìÝíá. ÊáíÝíáò, üìùò, áðü ôïõò õðÜñ÷ïíôåò ÑÏÑ clients äåí Þîåñå ðþò! Êé åñ÷üìáóôå óôï ðñþôï ìáò ìÜèçìá: [4m1)[24m [4mÊÜèå[24m [4mêáëÞ[24m [4mäïõëåéÜ[24m [4móôïí[24m [4m÷þñï[24m [4môïõ[24m [4mëïãéóìéêü[24m [4máñ÷ßæåé[24m [4mìå[24m [4môçí[0m [4mðñïóùðéêÞ[24m [4möáãïýñá[24m [4môïõ[24m [4mðñïãñáììáôéóôÞ.[0m ºóùò áõôü èá Ýðñåðå íá åßíáé ïëïöÜíåñï (áðü ðáëéÜ Ý÷åé åéðùèåß, "Ç áíÜãêç åßíáé ç ìçôÝñá ôçò åöåýñåóçò") áëëÜ, ðïëý óõ÷íÜ, ïé ðñïãñáììáôéóôÝò îïäåýïõí ôéò ìÝñåò ôïõò ðáó÷ßæïíôáò ãéá Ýíá ìåñïêÜìáôï öôéÜ÷íïíôáò åöáñìïãÝò ðïõ ïýôå ÷ñåéÜæïíôáé ïýôå ôïõò åíäéáöÝñïõí. ¼÷é, üìùò, êáé óôïí êüóìï ôïõ Linux--ðñÜãìá ðïõ åîçãåß ãéáôß ç ìÝóç ðïéüôçôá ôïõ ëïãéóìéêïý ãéá Linux åßíáé ôüóï õøçëÞ. Ôé íïìßæåôå, ëïéðüí; ¼ôé âïýôçîá óôçí äßíç ôçò êùäéêïðïßçóçò åíüò ïëïêáßíïõñãéïõ ÑÏÑ3 client ãéá íá áíôáãùíéóôåß ôïõò õðÜñ÷ïíôåò; Ìå ôßðïôá óôïí êüóìï! ¸ñéîá ìéá ðñïóåêôéêÞ ìáôéÜ óôá ÑÏÑ utilities ðïõ åß÷á óôá ÷Ýñéá ìïõ, êáé áíáñùôÞèçêá "ðïéü áð' üëá åßíáé ðëçóéÝóôåñï óå áõôü ðïõ èÝëù;". [4m2)[24m [4mÏé[24m [4mêáëïß[24m [4mðñïãñáììáôéóôÝò[24m [4mîÝñïõí[24m [4môé[24m [4míá[24m [4mãñÜøïõí.[24m [4mÏé[24m [4móðïõäáßïé[0m [4mîÝñïõí[24m [4môé[24m [4míá[24m [4mîáíáãñÜøïõí[24m [4m(êáé[24m [4míá[24m [4mîáíá÷ñçóéìïðïéÞóïõí).[0m Áí êáé äåí éó÷õñßæïìáé üôé åßìáé óðïõäáßïò ðñïãñáììáôéóôÞò, ðñïóðÜèçóá íá ìïéÜóù ôÝôïéïò. ¸íá óçìáíôéêü ãíþñéóìá ôùí óðïõäáßùí ðñïãñáììáôéóôþí åßíáé ç åããåíÞò ôïõò ôåìðåëéÜ. ÎÝñïõí üôé ÷ñåéÜæåôáé Ýíá ðñüãñáììá ü÷é ãéá íá ðåñíÜíå ïé ÷ñÞóôåò ôçí þñá ôïõò áëëÜ ãéá íá Ý÷ïõí êÜðïéá áðïôåëÝóìáôá êáé üôé åßíáé ó÷åäüí ðÜíôá åõêïëüôåñï íá îåêéíÜò áðü ìéá ìåñéêÞ ëýóç áðü ôï íá îåêéíÜò áðü ôï ìçäÝí. Ï Linus Torvalds <http://www.earthspace.net/~esr/faqs/linus>, ãéá ðáñÜäåéãìá, äåí Ýãñáøå ôï Linux áð' ôçí áñ÷Þ. Áíôßèåôá ,îåêßíçóå íá îáíá÷ñçóéìïðïéåß êþäéêá êáé éäÝåò áð' ôï Minix, Ýíá ìéêñü Unix-ïúäÝò ëåéôïõñãéêü ãéá ìç÷áíÝò 386. ÔåëéêÜ, ï êþäéêáò Minix áðïìáêñýíèçêå Þ îáíáãñÜöôçêå åíôåëþò--üóï, üìùò, Þôáí åêåß ëåéôïõñãïýóå óáí ç óêÜëá ãéá ôï âñÝöïò ðïõ, ôåëéêÜ, Ýãéíå ôï Linux. Óôï ßäéï ðíåýìá, Üñ÷éóá íá øÜ÷íù ãéá Ýíá ÑÏÑ utility ðïõ èá åß÷å êáëü êþäéêá, ãéá íá ìïõ ÷ñçóéìåýóåé óáí âÜóç ðñïãñáììáôéóìïý. Ç ðáñÜäïóç åëåýèåñïõ êþäéêá ôïõ Unix Þôáí ðÜíôá öéëéêÞ ðñïò ôçí åðáíá÷ñçóéìïðïßçóç êþäéêá (ãé' áõôü ôïí ëüãï ôï GNU project åðÝëåîå ôï Unix óáí âáóéêü ëåéôïõñãéêü, ðáñÜ ôéò óïâáñÝò íïìéêÝò åðéöõëÜîåéò ãéá ôï ßäéï ôï ëåéôïõñãéêü). Ç êïéíüôçôá ôïõ Linux þèçóå áõôÞ ôçí ðáñÜäïóç ó÷åäüí óôá ôå÷íïëïãéêÜ ôçò üñéá. ÐñïóöÝñåé óå üëïõò terabytes åëåýèåñïõ êþäéêá. ¸ôóé, ôï íá áöéåñþíåéò ëßãï ÷ñüíï ãéá íá âñåéò ôçí êáôÜëëçëç åöáñìïãÞ êÜðïéïõ Üëëïõ åßíáé ðåñéóóüôåñï ðéèáíü íá äþóåé èåôéêÜ áðïôåëÝóìáôá óôïí êüóìï ôïõ Linux, ðáñÜ ïðïõäÞðïôå áëëïý. ¸ôóé Ýãéíå êáé óôçí äéêÞ ìïõ ðåñßðôùóç. Ìáæß ìå áõôÜ ðïõ âñÞêá íùñßôåñá, ç äåýôåñç ÝñåõíÜ ìïõ êáôÝëçîå ì' Ýíá óýíïëï åííÝá õðïøÞöéùí--ôï fetchpop, ôï PopTart, ôï get-mail, ôï gwpop, ôï pop- perl, ôï pimp, ôï popc, ôï popmail êáé ôï upop. Áõôü ðïõ åãêáôÝóôçóá ðñþôï Þôáí ôï 'fetchpop' ôïõ Seung-Hong Oh. ¸âáëá ôï ÷áñáêôçñéóôéêü header rewrite ó' áõôü êé Ýêáíá êáé êÜðïéåò Üëëåò âåëôéþóåéò ôéò ïðïßåò ï äçìéïõñãüò ôïõ óõìðåñéÝëáâå óôçí Ýêäïóç 1.9. Ëßãåò âäïìÜäåò áñãüôåñá, üìùò, óêüíôáøá óôïí êþäéêá ôïõ 'popclient' ôïõ Carl Harris êáé áíáêÜëõøá üôé åß÷á ðñüâëçìá. Áí êáé ôï 'fetchpop' åß÷å ìåñéêÝò êáëÝò éäÝåò óôïí êþäéêÜ ôïõ (üðùò ôçí ëåéôïõñãßá óå êáôÜóôáóç daemon), ìðïñïýóå íá äéá÷åéñéóôåß ìüíï ÑÏÑ3 êáé Þôáí åñáóéôå÷íéêÜ êùäéêïðïéçìÝíï (ï Seung-Hong Oh Þôáí Ýíáò Ýîõðíïò áëëÜ Üðåéñïò ðñïãñáììáôéóôÞò êáé ôá äýï áõôÜ ÷áñáêôçñéóôéêÜ ôïõ åêäçëþèçêáí óôï ðñüãñáììá áõôü). Ï êþäéêáò ôïõ Carl Þôáí êáëýôåñïò, áëçèéíÜ åðáããåëìáôéêüò êáé óôáèåñüò, áëëÜ áðü ôï ðñüãñáììÜ ôïõ Ýëåéðáí ðïëëÜ óçìáíôéêÜ êáé ìÜëëïí äýóêïëá óôçí õëïðïßçóÞ ôïõò ÷áñáêôçñéóôéêÜ ðïõ Þäç åß÷å ôï fetchpop (óõìðåñéëáìâáíïìÝíùí êé áõôþí ðïõ êùäéêïðïßçóá åãþ). Íá ôá ðáñáôÞóù Þ íá åðéìåßíù; Áí ôá ðáñáôïýóá, èá Ýðñåðå íá ðåôÜîù ôïí êþäéêá ðïõ åßxá Þäç öôéÜîåé óå áíôÜëëáãìá ìéáò êáëýôåñçò ðñïãñáììáôéóôéêÞò âÜóçò. ¸íá ðñáêôéêü êßíçôñï ãéá íá ôá ðáñáôÞóù Þôáí ç ðáñïõóßá õðïóôÞñéîçò ðïëëáðëþí ðñùôïêüëëùí. Áðü ôá ðñùôüêïëëá ðïõ ÷ñçóéìïðïéïýí ïé äéáìåôáêïìéóôÝò ôá÷õäñïìåßïõ ôï ÑÏÑ3 Þôáí ôï ðéï êïéíü, áëëÜ ü÷é ôï ìïíáäéêü. Ôï fetchpop êáé ïé Üëëïé áíôáãùíéóôÝò ôïõ äåí õðïóôÞñéæáí ÑÏÑ2, RPOP Þ APOP êáé óêåöôüìïõí, Þäç, íá ðñïóèÝóù IMAP (Énternet Message Access Protocol, ôï ðéï êáéíïýñéï êáé ðéï éó÷õñü ðñùôüêïëëï ôá÷õäñïìåßïõ) IMAP <http://www.imap.org>, ìüíï êáé ìüíï ãéá ôçí åõ÷áñßóôçóç ìïõ. ¼ìùò, åß÷á Ýíáí ðéï èåùñçôéêü ëüãï ãéá íá ðéóôåýù üôé, ôï íá ôá ðáñáôÞóù èá Þôáí êáëÞ éäÝá, êÜôé ðïõ Ýìáèá ðïëý ðñéí ôï Linux. [4m3)"Ó÷åäéÜæåéò[24m [4míá[24m [4máðïññßøåéò[24m [4mêÜðïéï[24m [4mðñüãñáììá;[24m [4mÈá[24m [4môï[24m [4mêÜíåéò,[24m [4mïýôùò[24m [4mÞ[0m [4mÜëëùò".[24m [4m(Fred[24m [4mBooks,[24m [4m"The[24m [4mMythical[24m [4mMan-Month",[24m [4mchapter[24m [4m11)[0m ¹, ãéá íá ôï ðù áëëéþò, óõíÞèùò äåí êáôáëáâáßíåéò ôï ðñüâëçìá ìÝ÷ñé ôç óôéãìÞ ðïõ õëïðïéåßò ìéá ëýóç. Ôçí äåýôåñç öïñÜ ßóùò îÝñåéò ðåñéóóüôåñá ãéá íá ðñÜîåéò óùóôüôåñá. ¸ôóé, áí èÝëåéò íá åßóáé óùóôüò, åôïéìÜóïõ íá áñ÷ßóåéò áð' ôçí áñ÷Þ [4môïõëÜ÷éóôïí[24m ìéá öïñÜ. Ëïéðüí (åßðá óôïí åáõôü ìïõ) ïé áëëáãÝò ðïõ Ýêáíá óôï fetchpop Þôáí ç ðñþôç ðñïóðÜèåéá. ¸ôóé, ôá ðáñÜôçóá. ÌåôÜ ôçí ðáñÜäïóç ôïõ ðñþôïõ óõíüëïõ äéïñèùôéêþí ðáêÝôùí êþäéêá ãéá ôï popclient [popclient paches] ðïõ Ýóôåéëá óôïí Carl Harris óôéò 25 Éïõíßïõ 1996, áíáêÜëõøá üôé åßxå ÷Üóåé ôï åíäéáöÝñïí ôïõ ãéá ôï popclient ëßãï êáéñü ðñéí. Ï êþäéêáò Þôáí ëßãï óêüñðéïò, ìå ìéêñÜ bugs åäþ êé åêåß. Åß÷á ðïëëÝò áëëáãÝò íá êÜíù êáé êáôÝëçîá ãñÞãïñá óôï üôé ôï ðéï ëïãéêü ðñÜãìá ðïõ Ýðñåðå íá êÜíù Þôáí íá áíáëÜâù ôï ðñüãñáììá. Ó÷åäüí ÷ùñßò íá ôï ðñïóÝîù, ôï project êëéìáêþèçêå. Äåí èá êáôáðéáíüìïõí Üëëï ìå áóÞìáíôá äéïñèùôéêÜ ðáêÝôá [patches] ãéá ôïõò õðÜñ÷ïíôåò ÑÏÑ clients. Îåêßíçóá íá äïõëåýù ðÜíù ó' Ýíáí áð' áõôïýò êáé ïé éäÝåò óôñéìþ÷íïíôáí ìÝóá óôï ìõáëü ìïõ êáé Þîåñá üôé, ðéèáíüí, íá ïäçãÞóïõí óå ìåãÜëåò áëëáãÝò. Óå ìéá êïõëôïýñá ëïãéóìéêïý ðïõ åíèáññýíåé ôçí áðü êïéíïý êùäéêïðïßçóç [code-sharing], áõôüò åßíáé Ýíáò öõóéêüò ôñüðïò áíÜðôõîçò åíüò ó÷åäßïõ. Åíåñãïýóá ùò åîÞò: [4m4)[24m [4mÁí[24m [4mç[24m [4móõìðåñéöïñÜ[24m [4móïõ[24m [4måßíáé[24m [4móùóôÞ,[24m [4mèá[24m [4móõíáíôÞóåéò[24m [4måíäéáöÝñïíôá[0m [4mðñïâëÞìáôá.[0m Ç óõìðåñéöïñÜ ôïõ Carl Harris, üìùò, Þôáí áêüìç ðéï óçìáíôéêÞ. ÁíôéëÞöèçêå üôé [4m5)[24m [4m¼ôáí[24m [4mÝíá[24m [4mðñüãñáììá[24m [4mðáýåé[24m [4míá[24m [4mó'[24m [4måíäéáöÝñåé,[24m [4môï[24m [4môåëåõôáßï[24m [4móïõ[24m [4mêáèÞêïí[0m [4måßíáé[24m [4míá[24m [4môï[24m [4mðáñáäþóåéò[24m [4mó'[24m [4mÝíáí[24m [4méêáíü[24m [4mäéÜäï÷ï.[0m ×ùñßò ðïôÝ íá ÷ñåéáóôåß íá ôï óõæçôÞóïõìå, ï Carl êé åãþ îÝñáìå üôé åß÷áìå ôïí êïéíü óôü÷ï íá äþóïõìå ôéò êáëýôåñåò ëýóåéò. Ôï ìüíï åñþôçìá êáé ôùí äýï, Þôáí áí Þìïõí êáôÜëëçëïò ãé' áõôÞ ôçí äïõëåéÜ. Ìéá öïñÜ ðïõ ôïõ Ýäåéîá üôé Þìïõí, áíôÝäñáóå ãåííáéüäùñá. ¹ëðéæá íá áíôéäñÜóù êé åãþ Ýôóé, üôáí èá åñ÷üôáí ç óåéñÜ ìïõ._ [1m3.[0m [1mÇ Óðïõäáéüôçôá ôïõ íá ¸÷åéò ×ñÞóôåò.[0m ¸ôóé, êëçñïíüìçóá ôï popclient. Ôï ßäéï óçìáíôéêü Þôáí üôé êëçñïíüìçóá êáé ôïõò ÷ñÞóôåò ôïõ. Åßíáé ðïëý êáëü íá Ý÷åéò ÷ñÞóôåò êé ü÷é ìüíï åðåéäÞ äçëþíïõí ðùò éêáíïðïéåßò ìéá áíÜãêç ôïõò, Þ üôé êÜíåéò êÜôé óùóôü. Áí áíôéìåôùðéóèïýí êáôÜëëçëá, ìðïñïýí íá ãßíïõí óõíåñãÜôåò óôçí áíÜðôõîç ôçò åöáñìïãÞò. Ìéá Üëëç äýíáìç ôçò ðáñÜäïóçò ôïõ Unix, ðïõ ôï Linux ùèåß óôá üñéÜ ôçò, åßíáé üôé ðïëëïß ÷ñÞóôåò åßíáé åðßóçò êáé hackers. ÅðåéäÞ ï ðçãáßïò êþäéêáò åßíáé åëåýèåñïò, ìðïñïýí íá ãßíïõí [4máðïôåëåóìáôéêïß[0m hackers. ÊÜôé ôÝôïéï ìðïñåß íá áðïäåé÷èåß åîáéñåôéêÜ ÷ñÞóéìï ãéá ôçí ìåßùóç ôïõ ÷ñüíïõ áðïóöáëìÜôùóçò [debugging]. Ìå ëßãç åíèÜññõíóç, ïé ÷ñÞóôåò óáò èá äéáãíþóïõí ðñïâëÞìáôá, èá ðñïôåßíïõí äéïñèþóåéò êáé èá âïçèÞóïõí óôçí âåëôßùóç ôïõ êþäéêá, ðïëý ðéï ãñÞãïñá áðü ôï íá ôï êÜíáôå ìüíïò óáò ÷ùñßò âïÞèåéá. [4m6)[24m [4mÇ[24m [4máíôéìåôþðéóç[24m [4môùí[24m [4m÷ñçóôþí[24m [4móáí[24m [4móõíåñãÜôåò[24m [4mðñïãñáììáôéóôÝò[24m [4måßíáé[24m [4mï[0m [4mëéãüôåñï[24m [4måðéêßíäõíïò[24m [4mäñüìïò[24m [4mðñïò[24m [4môçí[24m [4mãñÞãïñç[24m [4mâåëôßùóç[24m [4môïõ[24m [4mêþäéêá[24m [4mêáé[0m [4môçí[24m [4máðïôåëåóìáôéêÞ[24m [4máðïóöáëìÜôùóç.[0m Ç äýíáìç áõôÞò ôçò Üðïøçò åýêïëá ìðïñåß íá õðïåêôéìçèåß. Óôçí ðñáãìáôéêüôçôá, ðïëëïß áðü åìÜò óôïí êüóìï ôïõ áíïé÷ôïý êþäéêá õðïåêôéìïýìå óå äñáìáôéêü âáèìü ôï ðüóï êáëýôåñá èá áõîáíüìáóôáí óå áñéèìü ÷ñçóôþí êé åíÜíôéá óôçí ðïëõðëïêüôçôá ôùí óõóôçìÜôùí, ìÝ÷ñé üôïõ ï Linus Torvalds ìáò Ýäåéîå üôé ôá ðñÜãìáôá ìðïñïýí íá åßíáé êáé äéáöïñåôéêÜ. Íïìßæù üôé ôï ðéï Ýîõðíï êáé áðïôåëåóìáôéêü êáôüñèùìá [hack] ôïõ Linus, äåí Þôáí ç êáôáóêåõÞ ôïõ ßäéïõ ôïõ ðõñÞíá ôïõ Linux áëëÜ, ìÜëëïí, ç åöåýñåóç ôïõ ìïíôÝëïõ áíÜðôõîçò Linux. ¼ôáí, ðáñïõóßá ôïõ, åîÝöñáóá áõôÞ ôçí Üðïøç åêåßíïò ÷áìïãÝëáóå êáé óéãáíÜ åðáíÝëáâå êÜôé ðïõ óõ÷íÜ Ýëåãå: "ÂáóéêÜ, åßìáé ðïëý ôåìðÝëçò Üíèñùðïò ðïõ ôïõ áñÝóåé íá ôïõ áíáãíùñßæïõí ðñÜãìáôá ðïõ Üëëïé Üíèñùðïé Ýêáíáí". ÔåìðÝëçò óáí ãÜôïò. ¹, üðùò èá Ýëåãå ï Robert Heinlein, ðïëý ôåìðÝëçò ãéá íá áðïôý÷åé. Åê ôùí õóôÝñùí, Ýíá ðñïçãïýìåíï ôçò ìåèüäïõ êé åðéôõ÷ßáò ôïõ Linux ìðïñåß íá èåùñçèåß ç áíÜðôõîç ôçò âéâëéïèÞêçò GNU Emacs Lisp êáé ôùí áñ÷åßùí êþäéêá Lisp [Lisp code archives]. Óå áíôßèåóç ìå ôï êáèåäñéêü-ìåãáëåéþäåò óôõë ôïõ C ðõñÞíá ôïõ Emacs êáé ôùí ðåñéóóüôåñùí õðüëïéðùí åñãáëåßùí FSF, ç åîÝëéîç ôïõ êþäéêá ôçò Lisp Þôáí ñåõóôÞ êáé åîáñôçìÝíç áðü ôïõò ÷ñÞóôåò. ÄéÜöïñåò éäÝåò êáé ëåéôïõñãßåò ðñùôïôýðùí óõ÷íÜ îáíáãñÜöïíôáí ôñåéò Þ ôÝóóåñéò öïñÝò ðñéí êáôáëÞîïõí óå ìéá óôáèåñÞ ìïñöÞ. Êáé ïé ÷áëáñÝò óõíåñãáóßåò, ìÝóù ôïõ Internet, áëá Linux, Þóáí óõ÷íÝò. ÐñáãìáôéêÜ, ôï ðéï åðéôõ÷Ýò ðñïóùðéêü êáôüñèùìá ìïý, ðñéí áðü ôï fetchmail, Þôáí ßóùò ôï Emacs VC mode, ìéá Linux-ïúäÞò óõíåñãáóßá ìÝóù çëåêôñïíéêïý ôá÷õäñïìåßïõ ôñéþí áíèñþðùí, åê ôùí ïðïßùí ìüíï Ýíáí (ôïí Richard Stallman, ôïí êáôáóêåõáóôÞ ôïõ Emacs êáé éäñõôÞ ôïõ FSF <http://www.fsf.org>) ãíþñéæá ùò åêåßíç ôç ìÝñá. ¹ôáí ìéá ëåéôïõñãßá front-end ãéá SCCS, RCS êáé, áñãüôåñá, CVS ìÝóá áðü ôï Emacs, ðïõ åðÝôñåðå ÷åéñéóìïýò åëÝã÷ïõ Ýêäïóçò "ìå Ýíá Üããéãìá" ["one-touch"]. Áíáðôý÷èçêå áðü ìéá ìéêñÞ, Ü÷áñç ëåéôïõñãßá sccs.el, ðïõ åß÷å ãñÜøåé êÜðïéïò Üëëïò. Êáé ç áíÜðôõîç ôïõ VC ðÝôõ÷å, åðåéäÞ, áíôßèåôá ìå ôï ßäéï ôï Emacs, ï êþäéêáò ôïõ Emacs Lisp ìðïñïýóå íá ðåñÜóåé ãñÞãïñá ìÝóá áðü äéáäéêáóßåò Ýêäïóçò / äïêéìÞò / âåëôßùóçò. ¸íá áíáðÜíôå÷ï, äåõôåñåýùí áðïôÝëåóìá ôçò ðïëéôéêÞò ôïõ FSF ãéá íüìéìç óýíäåóç êþäéêá ìÝóá óôï GPL Þôáí üôé, ãéíüôáí äéáäéêáóôéêÜ üëï êáé ðéï äýóêïëï ãéá ôçí FSF íá ÷ñçóéìïðïéÞóåé ôçí ÷áëáñÞ / ðáæáñéþôéêç ëåéôïõñãßá, áöïý ïé Üíèñùðïé ôçò FSF ðßóôåõáí üôé ðñÝðåé íá áðïêôÞóïõí copyright åöáñìïãÞò ãéá êÜèå îå÷ùñéóôÞ äéáíïìÞ ðåñéóóüôåñùí áðü åßêïóé ãñáììþí êþäéêá, þóôå íá ðñïóôáôÝøïõí ôïí êþäéêá GPL áðü ôïõò íüìïõò ãéá ôï copyright. ¼óïé Üóêçóáí ðíåõìáôéêÜ äéêáéþìáôá ÷ñçóéìïðïéþíôáò ôéò Üäåéåò ôùí êïíóüñôóéá BSD êáé MIT X äåí Ý÷ïõí ôÝôïéá ðñïâëÞìáôá. Äåí ðñïóðáèïýí íá åîáóöáëßóïõí äéêáéþìáôá, ðïõ ï êáèÝíáò èá ìðïñïýóå íá Ý÷åé êßíçôñá íá ðñïêáëÝóåé. [1m4. Åêäüóåéò Íùñßò, Åêäüóåéò Óõ÷íÜ.[0m Ïé ðñþéìåò êáé áíÜ ìéêñÜ ÷ñïíéêÜ äéáóôÞìáôá åêäüóåéò åßíáé êñßóéìï ìÝñïò ôïõ ìïíôÝëïõ áíÜðôõîçò ôïõ Linux. Ïé ðåñéóóüôåñïé ðñïãñáììáôéóôÝò (óõìðåñéëáìâáíüìåíïõ êáé åìÝíá) ðßóôåõáí üôé áõôü åßíáé ìéá êáêÞ ðïëéôéêÞ ãéá ìåãáëýôåñá áðü ôá ôåôñéììÝíá projects, åðåéäÞ ïé ðñþéìåò åêäüóåéò åßíáé ó÷åäüí åî ïñéóìïý ãåìÜôåò bugs êáé ôï ìüíï ðïõ äåí åðéèõìåßò åßíáé íá åîáíôëåßò ôçí õðïìïíÞ ôùí ÷ñçóôþí óïõ. ÁõôÞ ç Üðïøç åíßó÷õå ôçí ãåíéêÞ áðïäï÷Þ åíüò "êáèåäñéêïý" åßäïõò áíÜðôõîçò. Áí ï êýñéïò óôü÷ïò åßíáé íá óõíáíôïýí ïé ÷ñÞóôåò üóï ôï äõíáôüí ëéãüôåñá bugs, ôüôå ãéáôß íá åêäßäåéò ìéá öïñÜ êÜèå Ýîç ìÞíåò (Þ êáé ëéãüôåñï óõ÷íÜ) êáé ìåôÜ íá äïõëåýåéò óêëçñÜ (like a dog) ãéá íá áðáëëá÷èåßò áð' ôá bugs; Ï ðõñÞíáò ôïõ Emacs C öôéÜ÷ôçêå ì' áõôü ôïí ôñüðï. Åíþ áíôßèåôá, ç âéâëéïèÞêç Lisp ü÷é, áõôü óõíÝâç åðåéäÞ õðÞñ÷áí åíåñãÜ áñ÷åßá Lisp Ýîù áð' ôïí Ýëåã÷ï ôïõ FSF, óôá ïðïßá ìðïñïýóå êáíåßò íá áíáôñÝîåé ãéá íá âñåé íÝåò åêäüóåéò ôïõ êþäéêá, áíåîÜñôçôá áð' ôïõò êýêëïõò åêäüóåùí ôïõ Emacs. Ç ðéï óçìáíôéêÞ áð' áõôÝò ôéò áñ÷åéïèÞêåò, ç elisp ôïõ Ï÷Üéï, ðñïÝâëåðå ôï ðíåýìá êáé ðïëëÜ áð' ôá ÷áñáêôçñéóôéêÜ ôùí óçìåñéíþí ìåãÜëùí áñ÷åéïèçêþí ôïõ Linux. ÁëëÜ ëßãïé áðü ìáò óêÝöôïíôáí ðñáãìáôéêÜ ðïëý ãéá ôï ôé êÜíáìå, Þ ãéá ôï ôé óÞìáéíå ç ýðáñîç áõôþí ôùí áñ÷åéïèçêþí ãéá ôï ðñüâëçìá ôïõ "êáèåäñéêïý" ìïíôÝëïõ áíÜðôõîçò ôïõ FSF. ¸êáíá ìéá óïâáñÞ ðñïóðÜèåéá ãýñù óôï 1992 íá ðñïóáñôÞóù ìåãÜëï ìÝñïò ôïõ êþäéêá ôïõ Ï÷Üéï óôçí åðßóçìç âéâëéïèÞêç ôïõ Emacs Lisp. ÌðÞêá óå ðïëéôéêïýò ìðåëÜäåò êáé ç áðïôõ÷ßá ìïõ Þôáí ìåãÜëç. ¼ìùò, Ýíá ÷ñüíï ìåôÜ, êáèþò ôï Linux ãéíüôáí åõñýôåñá ãíùóôü, Ýãéíå îåêÜèáñï üôé êÜôé äéáöïñåôéêü êáé õãéÝóôåñï óõìâáßíåé. Ôï áíïé÷ôü ìïíôÝëïõ áíÜðôõîçò ôïõ Linus Þôáí ôï Üêñùò áíôßèåôï ôïõ "êáèåäñéêïý" ìïíôÝëïõ. ¸êáíáí ôçí åìöÜíéóÞ ôïõò ïé áñ÷åéïèÞêåò sunsite êáé tsx-11 êáèþò êáé ðïëëáðëÝò äéáíïìÝò. Êé üë' áõôÜ ïäçãïýìåíá áðü ìéá áíáðÜíôå÷ç óõ÷íüôçôá åêäüóåùí ôïõ ðõñÞíá ôïõ óõóôÞìáôïò. Ï Linus áíôéìåôþðéæå ôïõò ÷ñÞóôåò ôïõ óáí óõí-ðñïãñáììáôéóôÝò ìå ôïí êáëýôåñï äõíáôü ôñüðï: [4m7.Åêäüóåéò[24m [4míùñßò,[24m [4måêäüóåéò[24m [4móõ÷íÜ[24m [4mêáé[24m [4mÜêïõ[24m [4môïõò[24m [4m÷ñÞóôåò[24m [4móïõ.[0m Ç êáéíïôïìßá ôïõ Linus äåí Þôáí ôüóï áõôü (êÜôé ôÝôïéï óõíÝâáéíå ãéá ðïëý êáéñü óôïí êüóìï ôïõ Unix), áëëÜ ç êëéìÜêùóÞ ôïõ óå âáèìü ðïõ ðëçóßáæå ôçí ðåñéðëïêüôçôá ôçò ðñïò áíÜðôõîç åöáñìïãÞò. Åêåßíç ôç ÷ñïíéÜ (ðåñß ôï 1992) äåí ôïõ Þôáí Üãíùóôç ç ôáêôéêÞ íá åêäßäåé íÝï ðõñÞíá êÜèå ìÝñá! ÁõôÞ ç ðñïóðÜèåéá ðÝôõ÷å åðåéäÞ áíÝðôõóóå ôçí âÜóç ôùí óõí-ðñïãñáììáôéóôþí ôïõ êáé ÷ñçóéìïðïéïýóå ôçí äýíáìç ôïõ Internet ãéá óõíåñãáóßá ðéï êáëÜ áðü êÜèå Üëëïí. ÁëëÜ [4mðþò[24m ôá êáôÜöåñå; Êáé Þôáí êÜôé ðïõ ìðïñïýóá íá ìéìçèþ Þ âáóéæüôáí óå êÜðïéá ìïíáäéêÞ åõöõßá ôïõ Linus Torvalds; Ï Linus Þôáí Ýíáò ðïëý êáëüò hacker (ðüóïé áðü åìÜò èá êáôáóêåýáæáí Ýíáí ðáñáãùãéêÜ ðïéïôéêü ðõñÞíá ëåéôïõñãéêÜ óõóôÞìáôïò;). Ôï Linux äåí Þôáí êáíÝíá ôñïìåñü Üëìá ðñïò ôá åìðñüò. Ï Linus äåí åßíáé (Þ ü÷é áêüìá) êáìéÜ éäéïöõßá óôï íá ó÷åäéÜæåé üðùò, áò ðïýìå, ï Richard Stallman Þ ï James Gosling (NeWS êáé Java). ÅìÝíá ìïõ öáßíåôáé üôé ï Linus åßíáé Ýíáò åõöõÞò ðñïãñáììáôéóôÞò, ìå ìéá Ýêôç áßóèçóç íá áðïöåýãåé ôá bugs êáé ðñïãñáììáôéóôéêÜ áäéÝîïäá êáé åýêïëá âñßóêåé ôï ðéï óýíôïìï äñüìï áð' ôï óçìåßï Á ðñïò ôï óçìåßï Â. ÐñáãìáôéêÜ, ïëüêëçñïò ï ó÷åäéáóìüò ôïõ Linux áðïðíÝåé áõôÞ ôçí ðïéüôçôá êáé áíôáíáêëÜ ôçí ïõóéáóôéêÜ óõíôçñçôéêÞ êáé áðëïðïéçôéêÞ ðñïóÝããéóç ôïõ Linus. Áí, ëïéðüí, ïé ãñÞãïñåò åêäüóåéò êáé ç ðëÞñçò ÷ñÞóç ôïõ Internet äåí Þóáí ôõ÷áßá ãåãïíüôá áëëÜ ïëïêëçñùìÝíá ìÝñç ôçò äéïñáôéêüôçôáò ôïõ Linus, ðïéá Þôáí ç ðñùôïôõðßá ôïõ; Ãéá íá ôï ðù áðëÜ, ç åñþôçóç áðáíôÜôáé ìüíç ôçò. Ï Linus êñáôïýóå ôïõ hackers/÷ñÞóôåò óõíå÷þò óå õðåñÝíôáóç êáé ôïõò áíôÜìåéâå-óå õðåñÝíôáóç ìÝóù ôïõ project Þ äéáôçñþíôáò Ýíá åãùéóôéêü êïììÜôé ôçò üëçò äñÜóçò êáé ôïõò áíôÜìåéâå ìå ôçí óôáèåñÜ (ó÷åäüí [4mêÜèå[24m [4mìÝñá[24m) âåëôßùóç ôçò åñãáóßá ôïõò. Ï Linus óêüðåõå Üìåóá óôçí ìåãéóôïðïßçóç ôïõ áñéèìïý áíèñùðïùñþí óôçí êáôÜñãçóç ôùí bugs êáé óôçí áíÜðôõîç, áêüìç êáé ìå ðéèáíü êüóôïò ôçí áóôÜèåéá ôïõ êþäéêá Þ ôçí á÷ñÞóôåõóç ôçò âÜóçò ôùí ÷ñçóôþí ôïõ, áí Ýíá óïâáñü bug áðïäåéêíõüôáí áôßèáóï. Ï Linus óõìðåñéöåñüôáí óáí íá ðßóôåõå óôï åîÞò: [4m8.[24m [4mÄåäïìÝíçò[24m [4mìéá[24m [4mìåãÜëçò[24m [4mâÜóçò[24m [4mäïêéìáóôþí[24m [4mbeta[24m [4mêáé[0m [4móõí-ðñïãñáììáôéóôþí,[24m [4mó÷åäüí[24m [4mêÜèå[24m [4mðñüâëçìá[24m [4mãñÞãïñá[24m [4mèá[24m [4måíôïðéóèåß[24m [4mêé[24m [4mÝíá[0m [4mfix[24m [4mèá[24m [4mêÜíåé[24m [4môçí[24m [4måìöÜíéóÞ[24m [4môïõ.[0m ¹ , ëéãüôåñï ôõðéêÜ, "Ý÷ïíôáò áñêåôÜ ìÜôéá, üëá ôá bugs åßíáé ñç÷Ü". Ôï Üëëáîá óå: "Ï Íüìïò ôïõ Linus". Ç áñ÷éêÞ ìïõ óêÝøç Þôáí üôé, êÜèå ðñüâëçìá "èá ãßíåé öáíåñü óå êÜðïéïí". Ï Linus áðÜíôçóå ëÝãïíôáò üôé, ôï ðñüóùðï ðïõ êáôáëáâáßíåé êáé äéïñèþíåé ôï ðñüâëçìá äåí åßíáé áíáãêáßá Þ óõíÞèùò ôï ðñüóùðï ðïõ ðñþôï ôï ÷áñáêôçñßæåé. "ÊÜðïéïò âñßóêåé Ýíá ðñüâëçìá", ëÝåé, "êáé êÜðïéïò [4mÜëëïò[24m ôï êáôáëáâáßíåé. Êáé ç áíáêÜëõøç ôïõ ðñïâëÞìáôïò åßíáé ç ìåãáëýôåñç ðñüêëçóç". Ôï æÞôçìá, üìùò, Þôáí üôé êáé ôá äýï Ýôåéíáí íá ãßíïíôáé ôá÷ýôáôá. Åäþ, ðéóôåýù, üôé âñßóêåôáé ç êåíôñéêÞ äéáöïñÜ ðïõ õðïãñáììßæåé ôá äýï óôõë ðñïãñáììáôéóìïý, ôï êáèåäñéêü êáé ôï óôõë ðáæáñéïý. Áðü ôçí Üðïøç ôïõ êáèåäñéêïý ðñïãñáììáôéóôÞ, ôá bugs êáé ôá Üëëá ðñïâëÞìáôá ðñïãñáììáôéóìïý åßíáé áðñüâëåðôá, ýðïõëá, âáèéÜ öáéíüìåíá. ×ñåéÜæïíôáé ìÞíåò ëåðôïìåñïýò åîÝôáóçò áðü ìåñéêïýò áöïóéùìÝíïõò áíèñþðïõò ãéá íá êáôáóêåõÜóïõí Ýìðéóôï êþäéêá. Ãé' áõôü êáé ôá ìåãÜëá äéáëåßììáôá ìåôáîý ôùí åêäüóåùí êáé ç áíáðüöåõêôç áðïãïÞôåõóç üôáí ïé åêäüóåéò áõôÝò, ðïõ ôüóï êáéñü ðåñéìÝíåéò, äåí åßíáé ôÝëåéåò. Áð' ôçí Üðïøç ôïõ óå "óôõë ðáæáñéïý" ðñïãñáììáôéóìïý, ôá bugs åßíáé ãåíéêÜ åðéðüëáéá öáéíüìåíá-Þ, ôïõëÜ÷éóôïí, êáôáëÞãïõí íá ãßíïõí åðéðüëáéá üôáí åêôßèåíôáé óå ÷ßëéïõò áíõðüìïíïõò óõí-ðñïãñáììáôéóôÝò ðïõ ìåëåôïýí êÜèå íÝá Ýêäïóç. ¸ôóé, êÜíåéò óõ÷íÝò åêäüóåéò ãéá íá êåñäßóåéò ðåñéóóüôåñåò äéïñèþóåéò êáé óáí äåõôåñåýïí êÝñäïò, Ý÷åéò ëéãüôåñá íá ÷Üóåéò áí ðáñïõóéáóôåß êÜðïéá ðåñéóôáóéáêÞ ôóáðáôóïõëéÜ Áí ï "Íüìïò ôïõ Linus" åßíáé åóöáëìÝíïò, ôüôå êÜèå óýóôçìá ðïõ åßíáé ôüóï ðåñßðëïêï üóï ï ðõñÞíáò ôïõ Linux, ðïõ "ìáóôïñåýåôáé " áðü ôüóá ÷Ýñéá, èá Ýðñåðå íá êáôáññÝåé êÜôù áðü ôï âÜñïò ôùí áðñüâëåðôùí êáêþí áëëçëåðéäñÜóåùí êáé êáëÜ êñõììÝíùí bugs. Áí, áðü ôçí Üëëç åßíáé óùóôüò, åîçãåß éêáíïðïéçôéêÜ ôçí ó÷åôéêÞ áðïõóßá bugs áðü ôï Linux. Ùò ðñïò áõôü, äåí èá Ýðñåðå íá áðïôåëåß Ýêðëçîç. Ïé êïéíùíéïëüãïé ðñéí áðü ÷ñüíéá áíáêÜëõøáí üôé ç ìÝóç ãíþìç åíüò óõíüëïõ éóïäýíáìá åéäéêþí (Þ éóïäýíáìá áíßäåùí) ðáñáôçñçôþí åßíáé ëßãï ðåñéóóüôåñï áîéüðéóôç áðü åêåßíç åíüò ìïíáäéêïý ôõ÷áßá åðéëåãìÝíïõ ðáñáôçñçôÞ. Áõôü áðïêáëåßôáé "Öáéíüìåíï ôùí Äåëöþí". Öáßíåôáé üôé, áõôü ðïõ áðÝäåéîå ï Linus åßíáé üôé ôï öáéíüìåíï áõôü âñßóêåé åöáñìïãÞ óôçí áðïìÜêñõíóç ôùí bugs áðü Ýíá ëåéôïõñãéêü óýóôçìá - üôé ôï Öáéíüìåíï ôùí Äåëöþí ìðïñåß íá åëÝãîåé ôçí ðñïãñáììáôéóôéêÞ ðïëõðëïêüôçôá, áêüìç êáé óôï åðßðåäï ðïëõðëïêüôçôáò åíüò ðõñÞíá ëåéôïõñãéêïý óõóôÞìáôïò. Åßìáé õðï÷ñåùìÝíïò óôïí Jeff Dutky (dutky@wam.umd.edu) ðïõ õðÝäåéîå üôé ï Íüìïò ôïõ Linus ìðïñåß íá ðáñáöñáóèåß óå "Ç ÊáôÜñãçóç ôùí Bugs Ìðïñåß íá Ðáñáëëçëéóèåß". Ï Jeff ðáñáôçñåß üôé, áí êáé ç êáôÜñãçóç ôùí bugs áðáéôåß áðü áõôïýò ðïõ ôï ðñáãìáôïðïéïýí íá åðéêïéíùíïýí ìå êÜðïéïí óõíåñãáæüìåíï ðñïãñáììáôéóôÞ, äåí áðáéôåß óçìáíôéêü óõíôïíéóìü ìåôáîý ôùí ðñþôùí. ¸ôóé, ç êáôÜñãçóç ôùí bugs äåí ðÝöôåé óôçí ðáãßäá ôçò ßäéáò äåõôåñïâÜèìéáò ðïëõðëïêüôçôáò êáé åîüäùí management ðïõ êáèéóôïýí ôçí áýîçóç ôùí ðñïãñáììáôéóôþí óôçí åñãáóßá ðñïâëçìáôéêÞ. Óôçí ðñÜîç, ç èåùñçôéêÞ áðþëåéá áðïôåëåóìáôéêüôçôáò åîáéôßáò ôïõ äéðëáóéáóìïý ôçò åñãáóßáò ôùí ðñïãñáììáôéóôþí ãéá ôçí êáôÜñãçóç ôùí bugs ó÷åäüí ðïôÝ äåí áðáó÷ïëåß ôïí êüóìï ôïõ Linux. ¸íá áðïôÝëåóìá ôçò "ðïëéôéêÞò óõ÷íþí êáé ðñùßìùí åêäüóåùí" åßíáé ç åëá÷éóôïðïßçóç ôÝôïéùí äéðëáóéáóìþí ìå ôçí ãñÞãïñç áíáäñáóôéêÞ [fed-back] äéÜäïóç ôùí äéïñèþóåùí. Ï Brooks Ýêáíå ìéá ðáñáôÞñçóç ó÷åôéêÜ ìå åêåßíç ôïõ Jeff: "Ôï óõíïëéêü êüóôïò óõíôÞñçóçò åíüò åõñÝùò ÷ñçóéìïðïéïýìåíïõ ðñïãñÜììáôïò åßíáé, ôõðéêÜ, ôï 40% Þ êáé ðåñéóóüôåñï ôïõ êüóôïõò êáôáóêåõÞò ôïõ. Áõôü ôï êüóôïò åðçñåÜæåôáé ðïëý áðü ôïí áñéèìü ôùí ÷ñçóôþí. [4mÐåñéóóüôåñïé[0m [4m÷ñÞóôåò[24m [4mâñßóêïõí[24m [4mðåñéóóüôåñá[24m [4mbugs[24m". Ðåñéóóüôåñïé ÷ñÞóôåò âñßóêïõí ðåñéóóüôåñá bugs, åðåéäÞ ç ðñïóèÞêç ðåñéóóüôåñùí ÷ñçóôþí ðñïóèÝôåé ðåñéóóüôåñïõò äéáöïñåôéêïýò ôñüðïõò äïêéìþí ôïõ ðñïãñÜììáôïò. Áõôü ôï öáéíüìåíï åíéó÷ýåôáé üôáí ïé ÷ñÞóôåò åßíáé óõí-ðñïãñáììáôéóôÝò. ÊÜèå ðñïãñáììáôéóôÞò ðñïóåããßæåé ôçí åñãáóßá ÷áñáêôçñéóìïý ôïõ bug ìå åëáöñÜ äéáöïñåôéêÜ áíôéëçðôéêÜ êé áíáëõôéêÜ åñãáëåßá, áðü äéáöïñåôéêÞ ãùíéÜ, óå óýãêñéóç ìå Üëëïõò. Ôï "Öáéíüìåíï ôùí Äåëöþí" öáßíåôáé íá Ý÷åé éó÷ýåé áêñéâþò åîáéôßáò áõôÞò ôçò ðïéêéëßáò. Óôï ðëáßóéï ôçò êáôÜñãçóçò ôùí bugs ç ðïéêéëßá áõôÞ ôåßíåé åðßóçò íá ìåéþóåé ôïí äéðëáóéáóìü ôçò ðñïóðÜèåéáò. ¸ôóé, ç ðñïóèÞêç ðåñéóóüôåñùí äïêéìáóôþí ßóùò äåí ìåéþíåé ôçí ðïëõðëïêüôçôá ôïõ äýóêïëïõ bug, áðü ôçí óêïðéÜ ôïõ [4mðñïãñáììáôéóôÞ[24m, áõîÜíåé üìùò ôçí ðéèáíüôçôá üôé ôá åñãáëåßá êÜðïéïõ ðñïãñáììáôéóôÞ èá ôáéñéÜîïõí ìå ôï ðñüâëçìá ìå ôÝôïéï ôñüðï þóôå ôï bug íá êáèßóôáôáé åðéðüëáéï [4mãé'[24m [4máõôü[24m [4môï[24m [4mðñüóùðï.[0m Ï Linus, üìùò, öõëÜåé êáé ôá ñïý÷á ôïõ. Óå ðåñßðôùóç ðïõ [4mõðÜñ÷ïõí[0m óïâáñÜ bugs, ç Ýêäïóç ôïõ ðõñÞíá áñéèìåßôáé ìå ôÝôïéï ôñüðï þóôå ïé ÷ñÞóôåò íá åßíáé óå èÝóç íá åðéëÝîïõí åßôå ôçí åãêáôÜóôáóç ôçò ôåëåõôáßáò "óôáèåñÞò" Ýêäïóçò Þ íá ñéóêÜñïõí ìå bugs ãéá íá áðïëáýóïõí íÝá ÷áñáêôçñéóôéêÜ. ÁõôÞ ç ôáêôéêÞ äåí âñßóêåé ìéìçôÝò áíÜìåóá óôïõò hackers ôïõ Linux, áëëÜ ßóùò èá Ýðñåðå. Ôï ãåãïíüò üôé êáé ïé äýï åðéëïãÝò åßíáé óôçí äéÜèåóç ôùí ÷ñçóôþí ôéò êÜíåé åëêõóôéêÝò._ [1m5. Ðïôå ¸íá ÔñéáíôÜöõëëï äåí Åßíáé ÔñéáíôÜöõëëï?[0m ¸÷ïíôáò ìåëåôÞóåé ôçí óõìðåñéöïñÜ ôïõ Linus êáé ó÷çìáôßóåé ìéá èåùñåßá ãéá ôïí ëüãï ðïõ Þôáí åðéôõ÷Þò, ðÞñá ôçí óïâáñÞ áðüöáóç íá äïêéìÜóù ôçí èåùñåßá ìïõ óôï íÝï ìïõ ó÷Ýäéï (ðïëý ëéãüôåñï ðåñßðëïêï êáé öéëüäïîï). ÁëëÜ ôï ðñþôï ðñÜãìá ðïõ Ýêáíá Þôáí íá ïñãáíþóù åê íÝïõ êáé íá áðëïðïéÞóù ðïëý ôïí popclient. Ç õëïðïßçóç ôïõ Carl Harris Þôáí ðïëý ç÷çñÞ áëëÜ ðáñïõóßáæå ìéá ìç áíáãêáßá ðïëõðëïêüôçôá, êïéíÞ óå ðïëëïýò ðñïãñáììáôéóôÝò C. Ìåôá÷åéñßóôçêå ôïí êþäéêá óáí íá åßíáé ôï êÝíôñï êáé ôéò äïìÝò äåäïìÝíùí óáí õðïóôÞñéîç ôïõ êþäéêá. Ìå áðïôÝëåóìá ï êþäéêáò íá åßíáé üìïñöïò áëëÜ ïé äïìÝò äåäïìÝíùí ó÷åäéáóìÝíåò ad hoc êáé ìÜëëïí Üó÷çìåò (ôïõëÜ÷éóôïí óýìöùíá ìå ôá õøçëÜ óôÜíôáñ áõôïý ôïõ ðáëéïý LISP hacker). Åß÷á êé Ýíá Üëëï åðéðëÝïí óêïðü åêôüò ôçò âåëôßùóçò ôïõ êþäéêá êáé ôïí ó÷åäéáóìü ôçò äïìÞò ôùí äåäïìÝíùí ôçí åðáíåããñáöÞ ôïõ êþäéêá ôçò åöáñìïãÞò. Áõôüò Þôáí ãéá íá åìðëáêþ óå êÜôé ðïõ êáôáëÜâáéíá ðëÞñùò. Äåí åßíáé äéáóêåäáóôéêü íá Ý÷åéò ôçí åõèýíç ãéá äéüñèùóç ôùí bugs ó' Ýíá ðñüãñáììá ðïõ äåí êáôáëáâáßíåéò. Ôïí ðñþôï ìÞíá áêïëïõèïýóá ôçí õëïðïßçóç ôïõ âáóéêïý ó÷åäéáóìïý ôïõ Carl. Ç ðñþôç óïâáñÞ áëëáãÞ ðïõ Ýêáíá Þôáí íá åéóÜãù õðïóôÞñéîç ÉÌÁÑ. Áõôü ôï Ýêáíá ìå ôçí åê íÝïõ ïñãÜíùóç ôùí ðñùôïêüëëùí ó' Ýíáí ãåíéêü driver êáé óå ôñåéò ðßíáêåò ìåèüäùí (ãéá ÑÏÑ2, ÑÏÑ3 êáé ÉÌÁÑ). ÁõôÞ êáé ç ðñïçãïýìåíç áëëáãÞ áðåéêïíßæïõí ìéá ãåíéêÞ áñ÷Þ ðïõ åßíáé êáëü íá Ý÷ïõí êáôÜ íïõ ïé ðñïãñáììáôéóôÝò, éäéáßôåñá óå ãëþóóåò üðùò ç C ðïõ êáíïíéêÜ äåí äéáèÝôïõí äõíáìéêÞ äáêôõëïãñÜöçóç. [4m9.[24m [4m¸îõðíç[24m [4mäïìÞ[24m [4mäåäïìÝíùí[24m [4mêáé[24m [4mêïõôüò[24m [4mêþäéêáò[24m [4mäïõëåýïõí[24m [4mêáëýôåñá[24m [4máð'[24m [4môï[0m [4máíôßóôñïöï.[0m Brooks, ÊåöÜëáéï 9: "Áí ìïõ äåßîåéò ôïí êþäéêÜ óïõ êáé êñýøåéò ôçí äïìÞ ôùí äåäïìÝíùí óïõ, èá ðáñáìåßíù óå óýã÷õóç. Áí ìïõ äåßîåéò ôçí äïìÞ ôùí äåäïìÝíùí óïõ, äåí èá ÷ñåéáóôþ ôïí êþäéêÜ óïõ. Óýíôïìá èá ôïí ìÜèù". Óôçí ðñáãìáôéêüôçôá ï Brooks, óôçí ðáñáðÜíù ðáñÜãñáöï, áíáöÝñåôáé óå "äéáãñÜììáôá ñïÞò" êáé "ðßíáêåò". ×ñçóéìïðïéþíôáò, üìùò, ôñéÜíôá ÷ñüíùí ïñïëïãéêÞò /ðïëéôéóôéêÞò ìåôáëëáãÞò, åßíáé ó÷åäüí ôï ßäéï. Ó' áõôü ôï óçìåßï (áñ÷Ýò ÓåðôÝìâñç 96, Ýîé ìÞíåò áðü ôçí þñá ìçäÝí) Üñ÷éóá íá óêÝöôïìáé üôé ìéá áëëáãÞ ïíüìáôïò ßóùò åßíáé åðéèõìçôÞ-óôï êÜôù ôçò ãñáöÞò, äåí Þôáí ðéá áðëÜ Ýíáò POP client. Äßóôáóá, üìùò, åðåéäÞ ôßðïôá óôïí ó÷åäéáóìü äåí Þôáí ãíÞóéá êáéíïýñéï. Ç Ýêäïóç ôïõ popclient ìïõ Ýðñåðå íá áðïêôÞóåé äéêÞ ôçò ôáõôüôçôá. ÁõôÞ ç êáôÜóôáóç Üëëáîå ñéæéêÜ üôáí ôï fetchmail Ýìáèå ðþò íá ðñïùèåß ôá ðáñáëçöèÝíôá ìçíýìáôá óôçí èýñá SMTP. Èá ìéëÞóù ãé' áõôü óå ëßãï. Åßðá ðñïçãïõìÝíùò üôé åß÷á áðïöáóßóåé íá ÷ñçóéìïðïéÞóù áõôü ôï ó÷Ýäéï ãéá íá äïêéìÜóù ôçí èåùñßá ìïõ ó÷åôéêÜ ìå ôçí óõìâïëÞ ôïõ Linus Torvalds. Áõôü ôï Ýêáíá ùò åîÞò: 1. ÅîÝäéäá íùñßò êáé óõ÷íÜ (ÔïõëÜ÷éóôïí ìéá öïñÜ óôéò äÝêá ìÝñåò. Óôç äéÜñêåéá ðåñéüäùí Ýíôïíïõ ðñïãñáììáôéóìïý, êÜèå ìÝñá). 2. ÌåãÜëùóá ôçí ëßóôá ôùí äïêéìáóôþí beta ðñïóèÝôïíôáò ó' áõôÞ êÜèå Ýíáí ðïõ åðéêïéíùíïýóå ìáæß ìïõ ãéá ôï fetchmail. 3. ¸óôåëíá öéëéêÝò áíáêïéíþóåéò óôá ìÝëç ôçò ëßóôáò ìåôÜ áðü êÜèå Ýêäïóç, åíèáññýíïíôáò ôïí êüóìï íá ðÜñåé ìÝñïò óôï åã÷åßñçìá. 4. Üêïõãá ôïõò äïêéìáóôÝò ìïõ, óöõãìïìåôñþíôáò áíÜìåóÜ ôïõò ãéá ôéò áðïöÜóåéò ôïõ ó÷åäéáóìïý, åõ÷áñéóôþíôáò ôïõò êÜèå öïñÜ ðïõ áðáíôïýóáí êé Ýóôåëíáí äéïñèþóåéò. Ôï áðïôÝëåóìá áõôþí ôùí áðëþí ìÝôñùí Þôáí Üìåóï. Áð' ôçí áñ÷Þ ôïõ ó÷åäßïõ åëÜìâáíá áíáöïñÝò ãéá bugs, ôéò ïðïßåò ïé ðåñéóóüôåñïé ðñïãñáììáôéóôÝò èá Ýäéíáí ôá ðÜíôá ãéá íá Ý÷ïõí, óõ÷íÜ ìå ðñïóêïëëçìÝíá êáëÝò äéïñèþóåéò. ËÜìâáíá óõëëïãéóìÝíç êñéôéêÞ, äéáóêåäáóôéêÜ ìçíýìáôá, Ýîõðíåò ðñïôÜóåéò. ¼ë' áõôÜ ïäÞãçóáí óôï: [4m10.[24m [4mÁí[24m [4möÝñåóáé[24m [4móôïõò[24m [4mäïêéìáóôÝò[24m [4móïõ[24m [4móáí[24m [4míá[24m [4måßíáé[24m [4mç[24m [4mðéï[24m [4mðïëýôéìç[24m [4mðçãÞ[0m [4móïõ,[24m [4mèá[24m [4máíôáðïêñéèïýí[24m [4móáí[24m [4mç[24m [4mðéï[24m [4mðïëýôéìç[24m [4mðçãÞ[24m [4móïõ.[0m ¸íá ìÝôñï ôçò åðéôõ÷ßáò ôïõ fetchmail åßíáé ôï óðïõäáßï ìÝãåèïò ôçò ëßóôáò ôùí äïêéìáóôþí, ôùí ößëùí ôïõ fetchmail. ÌÝ÷ñé óôéãìÞò Ý÷åé 249 ìÝëç êáé ðñïóôßèåíôáé äýï Þ ôñåéò êÜèå âäïìÜäá. ¼ðùò äéáðßóôùóá óôá ôÝëç ÌáÀïõ 1997, ç ëßóôá Üñ÷éóå íá ÷Üíåé áðü ôá ðåñßðïõ 300 ìÝëç ôçò, ðïõ åßíáé êáé ï ìåãáëýôåñïò áñéèìüò ôïõò, ãéá Ýíáí óçìáíôéêü ëüãï. Ðïëëïß Üíèñùðïé ìïõ æÞôçóáí íá ôïõò äéáãñÜøù áðü ôçí ëßóôá åðåéäÞ ôï fetchmail äïýëåõå ôüóï êáëÜ ãé' áõôïýò ðïõ äåí ÷ñåéÜæïíôáí ðëÝïí íá åßíáé óôç ëßóôá! ºóùò, êÜôé ôÝôïéï åßíáé ìÝñïò ôïõ öõóéêïý êýêëïõ æùÞò êÜèå þñéìïõ ó÷åäßïõ ðïõ õéïèåôåß ôï óôõë "ðáæáñéïý". [1m6. Ï Popclient Ãßíåôáé Fetchmail.[0m Ôï ðñáãìáôéêü óçìåßï êáìðÞò ôïõ ó÷åäßïõ Þôáí üôáí ï Harry Hochheiser ìïõ Ýóôåéëå ôï ðñïó÷Ýäéï ôïõ êþäéêÜ ôïõ ãéá ðñïþèçóç ôá÷õäñïìåßï óôçí èýñá SMTP ôïõ õðïëïãéóôÞ ðïõ èá öéëïîåíïýóå ôïí client. Ó÷åäüí áìÝóùò êáôÜëáâá üôé ìéá óùóôÞ õëïðïßçóç áõôïý ôïõ ÷áñáêôçñéóôéêïý èá êáèéóôïýóå êÜèå Üëëç ìÝèïäï ðáñÜäïóçò ôá÷õäñïìåßïõ áðáñ÷áéùìÝíç. Ãéá ðïëëÝò åâäïìÜäåò åìâÜèõíá óôï fetchmail üëï êáé ðéï ðïëý êáé, ôáõôü÷ñïíá, Ýíéùèá üôé ôï interface Üíôå÷å óôçí ÷ñÞóç áëëÜ Þôáí áðåñéðïßçôï, Üêïìøï êáé ìå ðÜñá ðïëëÜ ìéêñÜ options åäþ êé åêåß. Ç åðéëïãÞ äéï÷Ýôåõóçò ôïõ ôá÷õäñïìåßïõ ðïõ åß÷å Þäç ðáñáëçöèåß óôï áñ÷åßï mailbox Þ óôçí óôÜíôáñ Ýîïäï ìå åíï÷ëïýóå, áëëÜ äåí êáôáëÜâáéíá ãéáôß. Áõôü ðïõ åßäá, üôáí óêÝöôçêá ôçí ðñïþèçóç ìçíõìÜôùí ìÝóù SMTP, Þôáí üôé ï popclient ðñïóðáèïýóå íá êÜíåé ðÜñá ðïëëÜ ðñÜãìáôá. Åß÷å ó÷åäéáóôåß íá åßíáé Ýíá ðñüãñáììá ìåôáöïñÜò ôá÷õäñïìåßïõ (MÔÁ) êé Ýíá ðñüãñáììá ôïðéêÞò äéáíïìÞò ôá÷õäñïìåßïõ (MDA). Ìå ôçí ðñïþèçóç SMTP èá ìðïñïýóå íá áðáëëáãåß áð' ôçí ëåéôïõñãßá MDA êáé íá åßíáé Ýíá áðëü MTA, ìåôáöÝñïíôáò ôá ìçíýìáôá óå Üëëá ðñïãñÜììáôá, ãéá ôïðéêÞ ðáñáëáâÞ, üðùò áêñéâþò ôï sendmail. Ãéáôß íá ðåñéðëÝêù ôá ðñÜãìáôá ñõèìßæïíôáò Ýíá ðñüãñáììá äéáíïìÞò ôá÷õäñïìåßïõ Þ íá åöáñìüæù ôçí ëåéôïõñãßá lock-and-append ó' Ýíá mailbox, ôç óôéãìÞ ðïõ ç èýñá 25 åããõçìÝíá õðÜñ÷åé óå êÜèå ðëáôöüñìá ìå õðïóôÞñéîç TCP/IP áð' ôçí áñ÷Þ; Éäéáßôåñá üôáí áõôü óçìáßíåé üôé, ç áëëçëïãñáößá ðïõ ðáñáëáìâÜíåôáé ìïéÜæåé óßãïõñá ìå Ýíá êáíïíéêü ôá÷õäñïìåßï SMTP ðïõ åíåñãïðïéåßôáé áð' ôïí áðïóôïëÝá, ðñÜãìá ôï ïðïßï åßíáé áõôü ðïõ æçôÜìå. Ôá ìáèÞìáôá åäþ åßíáé ðïëëÜ. Ðñþôïí, áõôÞ ç éäÝá ðñïþèçóçò ìÝóù SMTP Þôáí ôï óçìáíôéêüôåñï ðïõ êÝñäéóá áð' ôçí óõíåéäçôÞ ðñïóðÜèåéÜ ìïõ íá åîïìïéþóù ôéò ìåèüäïõò ôïõ Linus. ¸íáò ÷ñÞóôçò ìïõ Ýäùóå áõôÞ ôçí ðïëý êáëÞ éäÝá-áõôü ðïõ Ýðñåðå íá êÜíù Þôáí íá êáôáëÜâù ôéò åðéðëïêÝò. [4m11.[24m [4mÔï[24m [4mðéï[24m [4móðïõäáßï[24m [4mìåôÜ[24m [4máðü[24m [4môï[24m [4míá[24m [4mÝ÷åéò[24m [4mêáëÝò[24m [4méäÝåò,[24m [4måßíáé[24m [4míá[0m [4máíáãíùñßæåéò[24m [4môéò[24m [4mêáëÝò[24m [4méäÝåò[24m [4môùí[24m [4m÷ñçóôþí[24m [4móïõ.[24m [4mÌåñéêÝò[24m [4möïñÝò[24m [4môï[0m [4môåëåõôáßï[24m [4måßíáé[24m [4mêáëýôåñï.[0m Óýíôïìá èá êáôáëÜâåéò üôé, áí åßóáé åíôåëþò åéëéêñéíÞò ãéá ôï ðüóá ÷ñùóôÜò óôïõò Üëëïõò êáé êÜíåéò áõôïêñéôéêÞ, ï êüóìïò èá óïõ óõìðåñéöÝñåôáé óáí íá åßíáé äéêÞ óïõ ç åðéíüçóç êáé èá åßíáé ìåôñéüöñïíåò ãéá ôçí Ýìöõôç åõöõßá óïõ. ¼ëïé ìðïñïýìå íá äïýìå ðüóï êáëÜ áõôü ëåéôïýñãçóå ãéá ôïí Linus! (¼ôáí Ýäùóá áõôü ôï êåßìåíï óå Ýíá óõíÝäñéï ìå èÝìá ôçí Perl ôïí Áýãïõóôï ôïõ 1997, Ï Larry Wall êÜèïíôáí óôçí ðñþôç ãñáììÞ. ÅðåéäÞ åãþ êáèüìïõí óôçí ôåëåõôáßá óåéñÜ ìïõ öþíáîå, ìå óôõë èñçóêåõôéêÞò áíáæùðýñùóçò [religious-revival style], "ÐÝóôá, ðÝóôá, áäåñöÝ!". ¼ëï ôï áêñïáôÞñéï ãÝëáóå , åðåéäÞ Þîåñáí üôé ïé áðüøåéò ìïõ åß÷áí äïõëÝøåé êáé ãéá ôïí äçìéïõñãü ôçò Perl.) ÌåôÜ áðü ëßãåò åâäïìÜäåò äïõëåýïíôáò óôï ó÷Ýäéï ìå ôï ßäéï ðíåýìá Üñ÷éóá íá ðáßñíù ðáñüìïéïõò åðáßíïõò ü÷é ìüíï áðü ôïõò ÷ñÞóôåò ìïõ, áëëÜ êé áðü Üëëïõò áíèñþðïõò ðïõ Ýìáèáí üë' áõôÜ. Öýëáîá óáí èçóáõñü êÜðïéá áðü áõôÜ ôá Email, ìåñéêÝò öïñÝò ôá îáíáêïéôÜù üôáí áñ÷ßæù íá áíáñùôéÝìáé áí ç æùìïý áîßæåé ôïí êüðï :-) ¼ìùò, åäþ õðÜñ÷ïõí Üëëá äýï èåìåëéþäç ìç ðïëéôéêÜ ìáèÞìáôá, ðïõ åöáñìüæïíôáé óå êÜèå åßäïò ó÷åäéáóìïý. [4m12.[24m [4mÓõ÷íÜ,[24m [4mïé[24m [4mðéï[24m [4möáíåñÝò[24m [4mêáé[24m [4mêáéíïôïìéêÝò[24m [4mëýóåéò[24m [4måìöáíßæïíôáé[24m [4müôáí[0m [4mâëÝðåéò[24m [4müôé[24m [4mç[24m [4máíôßëçøç[24m [4mðïõ[24m [4mÝ÷åéò[24m [4mãéá[24m [4môï[24m [4mðñüâëçìá[24m [4måßíáé[24m [4mëÜèïò.[0m Ðñïóðáèïýóá íá ëýóù ëÜèïò ðñüâëçìá ìå ôï íá óõíå÷ßæù íá áíáðôýóóù ôïí popclient óáí Ýíá óõíäõáóìü MTA/MDA, ìå üëá ôá åßäç ìåèüäùí ôïðéêÞò äéáíïìÞò ôá÷õäñïìåßïõ. ¸ðñåðå íá óêåöôþ ðÜëé ôï fetchmail áð' ôçí áñ÷Þ, óáí Ýíá êáèáñü MTÁ, óáí ìÝñïò ôïõ êáíïíéêïý SMTP Internet ôá÷õäñïìåßïõ. ¼ôáí öôÜíåéò óå áäéÝîïäï-üôáí íïìßæåéò üôé äõóêïëåýåóáé íá óêåöôåßò ôï åðüìåíï patch-óõ÷íÜ åßíáé êáéñüò íá óêåöôåßò ü÷é áí Ý÷åéò ôçí óùóôÞ áðÜíôçóç, áëëÜ áí ñùôÜò ôçí óùóôÞ åñþôçóç. ºóùò ðñÝðåé íá ôï ðñüâëçìá íá äéåõèåôçèåß åê íÝïõ. Áõôü êé Ýêáíá. ÎåêÜèáñá, áõôü ðïõ Ýðñåðå íá êÜíù Þôáí (1) íá åéóÜãù õðïóôÞñéîç ðñïþèçóçò SMTP óôïí ãåíéêü driver, (2) íá ôçí ñõèìßóù ùò åî ïñéóìïý ëåéôïõñãßá êáé, (3) íá áðáëëáãþ áðü üëåò ôéò Üëëåò ëåéôïõñãßåò äéáíïìÞò, éäéáßôåñá ôçí áðïèÞêåõóç ôùí ìçíõìÜôùí óå áñ÷åßï êáé ôçí ìåôáâßâáóç óôçí óôÜíôáñ Ýîïäï. ÊáèõóôÝñçóá ãéá ëßãï óôï óôÜäéï (3), öïâïýìåíïò íá áíáóôáôþóù ôïõò ÷ñÞóôåò ðïõ ÷ñçóéìïðïéïýóáí ãéá ìåãÜëï äéÜóôçìá popclient êáé Þóáí åîáñôçìÝíïé áð' ôïõò åíáëëáêôéêïýò ìç÷áíéóìïýò ðáñáëáâÞò. ÈåùñçôéêÜ, èá ìðïñïýóáí íá ìåôáâáßíïõí óôá áñ÷åßá .forward Þ óôá non-sendmail éóïäýíáìÜ ôïõò, êáé íá Ý÷ïõí ôï ßäéï áðïôÝëåóìá. Óôçí ðñÜîç, ç ìåôÜâáóç áõôÞ öáéíüôáí áêáôÜóôáôç. ¼ôáí, üìùò, ôá êáôÜöåñá ôï êÝñäïò áðïäåß÷ôçêå ìåãÜëï. Ôá äõóêïëüôåñá ìÝñç ôïõ driver åîáöáíßóôçêáí. Ç ñýèìéóç Ýãéíå ñéæéêÜ áðëïýóôåñç-ôÝñìá ç áíáæÞôçóç ãéá ôï MDA ôïõ óõóôÞìáôïò êáé ôï mailbox ôïõ ÷ñÞóôç, ôÝëïò óôéò áíçóõ÷ßåò ãéá ôï åÜí ôï ëåéôïõñãéêü ðñüãñáììá õðïóôçñßæåé êëåßäùìá ôùí áñ÷åßùí [file locking]. Åðßóçò, ï ìüíïò ôñüðïò íá ÷Üóåéò ìçíýìáôá åîáöáíßóôçêå. Áí Ý÷åéò ïñßóåé ç ðáñáëáâÞ ôùí ìçíõìÜôùí íá ðñïóêïëëçèåß ó' Ýíá áñ÷åßï êé ï äßóêïò åßíáé ãåìÜôïò, ôá ìçíýìáôÜ óïõ ÷Üíïíôáí. Áõôü äåí óõìâáßíåé ìå ôçí ðñïþèçóç ìÝóù SMTP, åðåéäÞ ï SMTP listener äåí èá åðéóôñÝøåé ÏÊ ìÝ÷ñéò üôïõ ôá ìçíýìáôá ðáñáëçöèïýí Þ, ôïõëÜ÷éóôïí, ìðïõí óôçí óåéñÜ ãéá ðáñÜäïóç êÜðïéá Üëëç óôéãìÞ. Áêüìç, âåëôéþèçêå ç áðüäïóç (áí êáé äåí èá ôï ðñïóÝîåé êáíåßò ìå ìéá áðëÞ ÷ñÞóç ôïõ ðñïãñÜììáôïò). ¸íá Üëëï ü÷é áóÞìáíôï üöåëïò áõôÞò ôçò áëëáãÞò Þôáí üôé ôï åã÷åéñßäéï ÷ñÞóçò Ýãéíå áðëïýóôåñï. Áñãüôåñá, Ýðñåðå íá ñõèìßóù ôçí ðáñáëáâÞ ôùí ìçíõìÜôùí ìÝóù åíüò ôïðéêïý MDA êáèïñéóìÝíï áðü ôïí ÷ñÞóôç, þóôå íá åðéôñÝøù ôïí Ýëåã÷ï êÜðïéùí óêïôåéíþí êáôáóôÜóåùí ó÷åôéêÜ ìå ôçí dynamic SLIP. ÂñÞêá, üìùò, Ýíáí ðéï áðëü ôñüðï ãéá íá ôï êÜíù. Çèéêü äßäáãìá; Ìçí äéóôÜæåéò íá ðåôÜîåéò ðáñù÷çìÝíá ÷áñáêôçñéóôéêÜ üôáí ìðïñåßò íá ôï êÜíåéò ÷ùñßò áðþëåéåò óôçí áðïôåëåóìáôéêüôçôá. Ï ÁíôïõÜí Óáéíô-Åîðåñý (ðïõ Þôáí ðéëüôïò êáé ó÷åäéáóôÞò áåñïóêáöþí, üôáí äåí Ýãñáöå êëáóéêÜ âéâëßá ãéá ðáéäéÜ) Ý÷åé ðåé: [4m13.[24m [4mÇ[24m [4môåëåéüôçôá[24m [4m(óôïí[24m [4mó÷åäéáóìü)[24m [4måßíáé[24m [4mäõíáôÞ[24m [4mü÷é[24m [4müôáí[24m [4mäåí[24m [4mõðÜñ÷åé[0m [4mêÜôé[24m [4mãéá[24m [4míá[24m [4mðñïóèÝóåéò,[24m [4máëëÜ[24m [4mìÜëëïí[24m [4müôáí[24m [4mäåí[24m [4mõðÜñ÷åé[24m [4mêÜôé[24m [4mãéá[24m [4míá[0m [4máöáéñÝóåéò.[0m ¼ôáí ï êþäéêÜò óïõ ãßíåôáé êáëýôåñïò êáé áðëïýóôåñïò, ôüôå [4mîÝñåéò[24m üôé åßíáé óùóôüò. Êáé óôçí ðïñåßá ôï fetchmail áðÝêôçóå äéêÞ ôïõ ôáõôüôçôá, äéáöïñåôéêÞ áð' ôïí ðñüãïíü ôïõ popclient. ¹ôáí þñá ãéá ôçí áëëáãÞ ôïõ ïíüìáôïò. Ôï íÝï ðñüãñáììá Ýìïéáæå ðåñéóóüôåñï ì' Ýíá äéðëü sendmail ðïõ äéÝèåôå ï ðáëéüò poclient. Êáé ôá äýï åßíáé MTA, áëëÜ åêåß ðïõ ôï sendmail óðñþ÷íåé ôçí ðáñÜäïóç ôïõ ôá÷õäñïìåßïõ, ï íÝïò popclient ôçí åëêýåé. ¸ôóé, ìåôÜ áðü äýï ìÞíåò ëåéôïõñãßáò ÷ùñßò åìðüäéá, ôïí ïíüìáóá fetchmail. [1m7. Ôï Fetchmail Åíçëéêéþíåôáé.[0m Íá ìéá, ëïéðüí, ì' Ýíá êáëïöôéáãìÝíï êáé íÝï ó÷åäéáóìü, ì' Ýíáí êþäéêá ðïõ Þîåñá üôé åðåîåñãÜóôçêá êáëÜ åðåéäÞ ôïí ÷ñçóéìïðïéïýóá êÜèå ìÝñá, êáé ìßá ëßóôá äïêéìáóôþí ðïõ ìåãÜëùíå. Âáèìéáßá Üñ÷éóá íá êáôáëáâáßíù üôé äåí Ýêáíá ðëÝïí êÜðïéïí ôåôñéììÝíï ðñïóùðéêü ðñïãñáììáôéóìü ðïõ ßóùò íá Þôáí ÷ñÞóéìïò ãéá ìåñéêïýò áíèñþðïõò. Åß÷á óôá ÷Ýñéá ìïõ Ýíá ðñüãñáììá ðïõ êÜèå hacker ìå Unix êáé óýíäåóç SLIP/PPP ÷ñåéáæüôáí óô' áëÞèåéá. Ìå ôï ÷áñáêôçñéóôéêü ôçò ðñïþèçóçò ìÝóù SMTP, ôï ðñüãñáììá ìðÞêå ðñþôï óôïí óõíáãùíéóìü êé Ýãéíå ï "öïíéÜò" ôçò êáôçãïñßáò ôïõ, Ýãéíå Ýíá êëáóéêü ðñüãñáììá ðïõ ãåìßæåé ôüóï êáëÜ ôçí ãùíéÜ ðïõ êáôáëáìâÜíåé þóôå ôá åíáëëáêôéêÜ ðñïò áõôü ðñïãñÜììáôá ü÷é áðïññßöèçêáí áëëÜ ó÷åäüí îå÷Üóôçêáí. Åßíáé äýóêïëï íá Ý÷åéò ôÝôïéá áðïôåëÝóìáôá. ÐñÝðåé íá óðñù÷ôåßò ó' áõôÜ ìå ôï íá ó÷åäéÜæåéò íÝåò éäÝåò ôüóï éó÷õñÝò þóôå, óôï ôÝëïò, ôá áðïôåëÝóìáôá íá öáßíïíôáé áíáðüöåõêôá, öõóéêÜ. Ï ìüíïò ôñüðïò ãéá íá Ý÷åéò ôÝôïéåò éäÝåò åßíáé íá Ý÷åéò ðïëëÝò éäÝåò-Þ íá Ý÷åéò ôçí ó÷åäéáóôéêÞ êñßóç íá ïäçãåßò ôéò êáëÝò éäÝåò Üëëùí áíèñþðùí ðÝñá áð' ôï óçìåßï ðïõ ïé åìðíåõóôÝò ôïõò èá ìðïñïýóáí íá ôï ïäçãÞóïõí. Ï Andrew Tanenbaum åß÷å ôçí áñ÷éêÞ éäÝá íá äçìéïõñãÞóåé Ýíá áðëü ôïðéêü óýóôçìá Unix ãéá 386, ãéá íá ôï ÷ñçóéìïðïéÞóåé óáí äéäáêôéêü åñãáëåßï. Ï Linus Torvalds þèçóå ôçí éäÝá ôïõ Minix ðéï ðÝñá áð' ôïí Andrew. Ìå ôïí ßäéï ôñüðï (áí êáé óå ìéêñüôåñç êëßìáêá) ðÞñá ìåñéêÝò éäÝåò ôùí Carl Harris êáé Harry Hochheiser êáé ôéò þèçóá óôá Üêñá. Êáíåßò ìáò äåí Þôáí "ãíÞóéá" éäéïöõßá. Ôá áðïôåëÝóìáôá Þóáí ìåèõóôéêÜ-Þôáí áêñéâþò ç åðéôõ÷ßá ðïõ êÜèå ðñïãñáììáôéóôÞò ëáôñåýåé! Ç åðéôõ÷ßá áõôÞ óÞìáéíå üôé Ýðñåðå íá èÝóù ôá óôÜíôáñ ìïõ øçëüôåñá. Ãéá íá êÜíù ôï fetchmail üóï êáëü Ýâëåðá üôé ìðïñåß íá ãßíåé, Ýðñåðå íá ôï êáôáóêåõÜóù ü÷é ìüíï ãéá ôéò äéêÝò ìïõ áíÜãêåò, áëëÜ åðßóçò íá óõìðåñéëÜâù êáé íá õðïóôçñßîù ÷áñáêôçñéóôéêÜ ÷ñÞóéìá ãéá Üëëïõò, Ýîù üìùò áðü ôçí äéêÞ ìïõ ôñï÷éÜ. Êé áõôü íá ôï êÜíù äéáôçñþíôáò ôï ðñüãñáììá áðëü êáé ãåñü. Ôï ðñþôï êáé ðïëý óçìáíôéêü ÷áñáêôçñéóôéêü, ðïõ óõìðåñéÝëáâá ìåôÜ áð' üë' áõôÜ, Þôáí ç õðïóôÞñéîç multidrop-ç äõíáôüôçôá ðáñáëáâÞò ôïõ ôá÷õäñïìåßïõ áðü ôá mailboxes ðïõ Ý÷ïõí óõóóùñåýóåé üëá ôá ìçíýìáôá ìéáò ïìÜäáò ÷ñçóôþí êáé ç äñïìïëüãçóç ôïõ êÜèå ìçíýìáôïò óôïí ðáñáëÞðôç ôïõ. ÁðïöÜóéóá íá êÜíù ìåñéêÞ ðñïóèÞêç õðïóôÞñéîçò multidrop åðåéäÞ ìåñéêïß ÷ñÞóôåò äéáìáñôýñïíôáí, áëëÜ êõñßùò åðåéäÞ íüìéæá üôé èá îåêáèÜñéæå ôá åëáôôþìáôá ôïõ êþäéêá single-drop áíáãêÜæïíôÜò ìå íá áó÷ïëçèþ åîïëïêëÞñïõ ìå ôçí äéáäéêáóßá äéåõèõíóéïäüôçóçò / êáôá÷þñçóçò. Êé Ýôóé áðïäåß÷èçêå. ÐÞñá ôï RFC 822 <http://www.internic.net/rfc/rfc822.txt> êáé ç åéóáãùãÞ áõôÞò ôçò ðáñáìÝôñïõ óôçí õðïñïõôßíá ìå êáèõóôÝñçóå áñêåôü ÷ñüíï, ü÷é åðåéäÞ ôá îå÷ùñéóôÜ êïììÜôéá ôçò åßíáé äýóêïëá, áëëÜ åðåéäÞ åíÝðëåêå Ýíá óùñü áðü áëëçëïåîáñôþìåíåò êáé éäéüôñïðåò ëåðôïìÝñåéåò. ¼ìùò, ç äéåõèõíóéïäüôçóç multidrop êáôÝëçîå íá ãßíåé ìéá ðïëý êáëÞ ó÷åäéáóôéêÞ áðüöáóç. [4m14.[24m [4mÊÜèå[24m [4måñãáëåßï[24m [4mèá[24m [4mðñÝðåé[24m [4míá[24m [4måßíáé[24m [4m÷ñÞóéìï[24m [4mìå[24m [4mêÜèå[24m [4máíáìåíüìåíï[0m [4môñüðï,[24m [4máëëÜ[24m [4mÝíá[24m [4mðñáãìáôéêÜ[24m [4móðïõäáßï[24m [4måñãáëåßï[24m [4mðñïóöÝñåôáé[24m [4mãéá[24m [4m÷ñÞóåéò[0m [4mðïõ[24m [4mðïôÝ[24m [4mäåí[24m [4mèá[24m [4mðåñßìåíåò.[0m Ç áíáðÜíôå÷ç ÷ñÞóç ôïõ multidrop fetchmail åßíáé ç äõíáôüôçôá ëåéôïõñãßáò ìéáò ëßóôáò áëëçëïãñáößáò (mailing lists) ðïõ äéáôçñåßôå óôçí ðëåõñÜ ôïõ [4mclient[24m ôçò óýíäåóçò SLIP/PPP, êáé ôáõôü÷ñïíá ó' áõôÞ Ý÷åé ãßíåé ç åðÝêôáóç ôïõ alias. Áõôü óçìáßíåé üôé, êÜðïéïò ðïõ ÷ñçóéìïðïéåß Ýíáí ðñïóùðéêü õðïëïãéóôÞ, ìÝóù åíüò ëïãáñéáóìïý óå êÜðïéïí ISP, ìðïñåß íá ÷åéñéóôåß ôçí ëßóôá áëëçëïãñáößáò ÷ùñßò íá äéáôçñåß óõíå÷þò ôçí ðñüóâáóÞ ôïõ óôá áñ÷åßá øåõäùíýìùí ôïõ ISP. Ìéá Üëëç åíäéáöÝñïõóá áëëáãÞ ðïõ áðáßôçóáí ïé äïêéìáóôÝò Þôáí ç õðïóôÞñéîç ëåéôïõñãßáò 8-bit MIME. Áõôü Þôáí åýêïëï íá ôï êÜíù, åðåéäÞ åß÷á ðñïóÝîåé íá äéáôçñÞóù ôïí 8-bit êþäéêá êáèáñü. ¼÷é åðåéäÞ ðñïÝâëåøá ôçí áðáßôçóç ãé' áõôü ôï ÷áñáêôçñéóôéêü, áëëÜ ìÜëëïí õðáêïýïíôáò óå Ýíáí Üëëï êáíüíá: [4m15.[24m [4m¼ôáí[24m [4mêáôáóêåõÜæåéò[24m [4mgateway[24m [4mëïãéóìéêü[24m [4mïðïéïõäÞðïôå[24m [4måßäïõò,[0m [4mðñïóðÜèçóå[24m [4míá[24m [4máëëïéþóåéò[24m [4môï[24m [4mstream[24m [4môùí[24m [4mäåäïìÝíùí[24m [4müóï[24m [4môï[24m [4mäõíáôüí[0m [4mëéãüôåñï-êáé[24m [4mÐÏÔÅ[24m [4mìçí[24m [4mðåôÜò[24m [4mðëçñïöïñßåò[24m [4máí[24m [4mïé[24m [4mðáñáëÞðôåò[24m [4móïõ[24m [4mäåí[24m [4móå[0m [4máíáãêÜóïõí![0m Áí äåí õðÜêïõá ó' áõôü ôïí êáíüíá ç õðïóôÞñéîç 8-bit MIME èá Þôáí äýóêïëç êáé ãåìÜôç bugs. ¼ðùò Þôáí ôþñá, áõôü ðïõ Ýðñåðå íá êÜíù Þôáí íá äéáâÜóù ôï RFC 1652 <http://www.internic.net/rfc/rfc1652.txt> êáé íá ðñïóèÝóù ôåôñéììÝíá bits ãéá äçìéïõñãßá êåöáëßäùí. $Ìåñéêïß Åõñùðáßïé ÷ñÞóôåò ìïõ æçôïýóáí íá ðñïóèÝóù ìéá åðéëïãÞ ðåñéïñéóìïý ôïõ áñéèìïý ôùí ìçíõìÜôùí ðïõ ðáñáëÜâáéíáí óå êÜèå ÷ñÞóç ôïõ fetchmail (þóôå íá åëÝã÷ïõí ôá Ýîïäï óýíäåóÞò ôïõò óôá áêñéâÜ ôçëåöùíéêÜ äßêôõá). ÁíôéóôÜèçêá ó' áõôÞ ôçí áðáßôçóç ãéá áñêåôü êáéñü, êáé äåí ìðïñþ íá ðù üôé åßìáé ÷áñïýìåíïò ãé' áõôü. ÁëëÜ üôáí ãñÜöåéò ãéá ôïí êüóìï ðñÝðåé í' áêïýò ôïõò ðåëÜôåò óïõ-áõôü äåí áëëÜæåé åðåéäÞ äåí óå ðëçñþíïõí ìå ÷ñÞìáôá. [1m8. ÌåñéêÜ Áêüìç ÌáèÞìáôá áðï ôï Fetchmail.[0m Ðñéí åðéóôñÝøïõìå óå èÝìáôá ãåíéêïý åíäéáöÝñïíôïò ðáñáãùãÞò ëïãéóìéêïý, õðÜñ÷ïõí áêüìç ìåñéêÜ ìáèÞìáôá áð' ôçí åìðåéñßá ôïõ fetchmail ãéá íá ìåëåôÞóïõìå. Ç óýíôáîç ôùí áñ÷åßùí rc ðåñéëáìâÜíåé ðñïáéñåôéêÝò äåóìåõìÝíåò ëÝîåéò "èïñýâïõ" [noise keyword] ðïõ áãíïïýíôáé ðëÞñùò áðü ôïí ðñïãñáììáôéóôÞ. Ç óýíôáîç Áããëéêïý ôýðïõ ðïõ ðñïôéìïýí åßíáé ðïëý ðéï áíáãíþóéìç áð' ôá ðáñáäïóéáêÜ ëéôÜ æåýãç ôéìþí äåóìåõìÝíùí ëÝîåùí ðïõ ðáßñíåé êáíåßò üôáí áðïãõìíþóåé áõôÝò ôéò äåóìåõìÝíåò ëÝîåéò. Áõôü Üñ÷éóå óáí Ýíá ðåßñáìá, üôáí ðñüóåîá ðüóï ðïëý ïé áíáêïéíþóåéò ôùí áñ÷åßùí rc Üñ÷éæáí íá ìïéÜæïõí ìéá åðéâåâëçìÝíç ìéêñÞ ãëþóóá. (Áõôüò åßíáé ï ëüãïò ðïõ Üëëáîá ôçí áñ÷éêÞ äåóìåõìÝíç ëÝîç ôïõ popclient áðü "server" óå "poll"). Ìïõ öáéíüôáí üôé áí ðñïóðáèïýóá íá êÜíù áõôÞ ôçí åðéâåâëçìÝíç ìéêñÞ ãëþóóá íá ìïéÜæåé ìå ôá ÁããëéêÜ èá ãéíüôáí ðéï åý÷ñçóôç. ¼ìùò, áí êáé åßìáé áöïóéùìÝíïò ïðáäüò ôçò ó÷ïëÞò ó÷åäéáóìïý ðïõ áðïêáëåßôå "êÜíåôï ìéá ãëþóóá", üðùò ìáò ðáñáäåéãìáôßæïõí ôï Emacs ç HTML êáé ðïëëÝò ìç÷áíÝò âÜóåùí äåäïìÝíùí, äåí åßìáé óðïõäáßïò ïðáäüò ôçò óýíôáîçò Áããëéêïý ôýðïõ. Ïé ðáñáäïóéáêïß ðñïãñáììáôéóôÝò Ýôåéíáí íá åõíïïýí óýíôáîç åëÝã÷ïõ ðïõ åßíáé ðïëý áêñéâÞò êáé óõìðáãÞò êáé äåí åß÷áí êáèüëïõ ðåñéôôÝò åðáíáëÞøåéò. Áõôü åßíáé ìéá ðïëéôéóìéêÞ êëçñïíïìéÜ áðü ôçí åðï÷Þ ðïõ ïé ðüñïé ôùí õðïëïãéóôþí Þóáí áêñéâïß, þóôå ç áíÜëõóç ôùí óôáäßùí íá åßíáé üóï ôï äõíáôüí ðéï öôçíÞ êé áðëÞ. Ôá ÁããëéêÜ, ìå ðåñßðïõ 50% ðåñéôôþí åðáíáëÞøåùí, öáéíüôáí ôüôå ðïëý áêáôÜëëçëï ìïíôÝëï. Äåí åßíáé áõôüò ï ëüãïò ðïõ áðïöåýãù ôçí óýíôáîç Áããëéêïý ôýðïõ. Ôçí áíáöÝñù åäþ ìüíï ãéá íá ôçí êáôáñãÞóù. ¸÷ïíôáò öôçíïýò êýêëïõò êáé ðõñÞíá ç ëáêùíéêüôçôá äåí èá Ýðñåðå íá åßíáé áõôïóêïðüò. ÓÞìåñá, åßíáé ðéï óçìáíôéêü ç ãëþóóá íá åßíáé âïëéêÞ ãéá ôïõò áíèñþðïõò áðü ôï íá åßíáé öôçíÞ ãéá ôïõò õðïëïãéóôÝò. ÕðÜñ÷ïõí, üìùò, óïâáñïß ëüãïé íá áíçóõ÷ïýìå. ¸íáò, åßíáé ôï êüóôïò ðïõ äçìéïõñãåß ç ðåñéðëïêÞ ôùí áíáëõìÝíùí óôáäßùí-êáíåßò äåí èÝëåé íá áõîÞóåé áõôÞ ôçí ðåñéðëïêÞ óôï óçìåßï íá åßíáé ðçãÞ bugs êáé óýã÷õóçò ôùí ÷ñçóôþí. ¸íáò Üëëïò åßíáé üôé, ðñïóðáèþíôáò íá êÜíïõìå ìéá ãëþóóá óýíôáîçò íá ìïéÜæåé ìå ÁããëéêÜ óõ÷íÜ áðáéôåßôáé ôá "ÁããëéêÜ" ðïõ ìéëÜ áõôÞ íá îåöåýãïõí áñêåôÜ áðü êÜèå ãíùóôÞ ìïñöÞ, ôüóï þóôå ç åðéöáíåéáêÞ ïìïéüôçôá ðñïò ôçí öõóéêÞ ãëþóóá íá åßíáé ôüóï óõã÷õôéêÞ üóï ìðïñåß íá åßíáé êÜèå ðáñáäïóéáêÞ óýíôáîç. (Áõôü ôï óõíáíôÜ êáíåßò óå ðïëëÝò åìðïñéêÝò ãëþóóåò ðïõ åöáñìüæïõí áíáæÞôçóç ìÝóù âÜóåùí äåäïìÝíùí êáé ôéò ëåãüìåíåò ãëþóóåò "ôÝôáñôçò ãåíéÜò". Ç óýíôáîç åëÝã÷ïõ ôïõ fetchmail öáßíåôáé íá áðïöåýãåé áõôÜ ôá ðñïâëÞìáôá, åðåéäÞ ï ÷þñïò êõñéáñ÷ßáò ôçò ãëþóóáò ôïõ åßíáé ðïëý ðåñéïñéóìÝíïò. Äåí åßíáé ìéá ãåíéêÞ ãëþóóá. Ôá ðñÜãìáôá ðïõ ëÝåé áõôÞ äåí åßíáé ôüóï ðåñéðëåãìÝíá, þóôå õðÜñ÷åé ìéêñÞ ðéèáíüôçôá óýã÷õóçò üôáí êéíïýìáóôå ìåôáîý åíüò ìéêñïý õðïóõíüëïõ ôçò ÁããëéêÞò êáé ôçò ðñáãìáôéêÞò ãëþóóáò åëÝã÷ïõ. Åäþ õðÜñ÷ïõí åõñýôåñá äéäÜãìáôá: [4m16.[24m [4m¼ôáí[24m [4mìéá[24m [4mãëþóóá[24m [4mäåí[24m [4måßíáé[24m [4mðëÞñçò[24m [4mêáôÜ[24m [4mTuring[24m [4m(Turing-complete),[0m [4môüôå[24m [4mç[24m [4mêáëýôåñç[24m [4mëýóç[24m [4måßíáé[24m [4mç[24m [4móõíôáêôéêÞ[24m [4mæÜ÷áñç.[0m ¸íá Üëëï ìÜèçìá åßíáé ãéá ôçí áóÜöåéá ôçò áóöÜëåéáò. Ìåñéêïß ÷ñÞóôåò ôïõ fetchmail ìïõ æÞôçóáí íá êÜíù áëëáãÝò óôï ðñüãñáììá þóôå íá áðïèçêåýåé êñõðôïãñáöçìÝíïõò êùäéêïýò óôï áñ÷åßï rc, þóôå íá ìçí ìðïñïýí íá ôïõò äïõí ôõ÷áßá ïé áäéÜêñéôïé. Äåí ôï Ýêáíá, åðåéäÞ êÜôé ôÝôïéï äåí ðñïóöÝñåé áóöÜëåéá. ÏðïéïóäÞðïôå Ý÷åé Üäåéá íá äéáâÜóåé ôï áñ÷åßï rc èá ìðïñåß íá ÷ñçóéìïðïéÞóåé ôï fetchmail-êé áí øÜ÷íïõí ôïí êþäéêÜ óáò èá ìðïñïýí íá áðïìïíþóïõí ôïí áðïêùäéêïðïéçôÞ ìÝóá áðü ôïí ßäéï ôïí êþäéêá ôïõ fetchmail. ¼ðïéá êñõðôïãñÜöçóç êþäéêá óôï áñ÷åßï .fetchmailrc êé áí åðé÷åéñçèåß äßíåé ìéá åóöáëìÝíç áßóèçóç áóöÜëåéáò. Ï ãåíéêüò êáíüíáò åßíáé ï åîÞò: [4m17.[24m [4m¸íá[24m [4móýóôçìá[24m [4máóöáëåßáò[24m [4måßíáé[24m [4môüóï[24m [4máóöáëÝò[24m [4müóï[24m [4måßíáé[24m [4mêáé[24m [4môï[24m [4mìõóôéêü[0m [4môïõ.[24m [4mÐñïóï÷Þ[24m [4móôá[24m [4møåõäï-ìõóôéêÜ.[0m [1m9. ÐñïûðïèÝóåéò ãéá ôï Óôõë Ðáæáñéïý.[0m Ïé ðñþôïé áíáãíþóôåò áõôïý ôïõ êåéìÝíïõ Ýèåôáí åñùôÞóåéò ãéá ôéò ðñïûðïèÝóåéò ãéá Ýíáí åðéôõ÷çìÝíï ðñïãñáììáôéóìü óå óôõë ðáæáñéïý, óõìðåñéëáìâáíïìÝíùí ôüóï ôùí ðñïóüíôùí ôïõ åðéêåöáëÞ ôïõ åã÷åéñÞìáôïò, üóï êáé ôçí êáôÜóôáóç ôïõ êþäéêá êáôÜ ôç óôéãìÞ ðïõ êÜðïéïò, äçìüóéá, îåêéíÜ ôçí ðñïóðÜèåéá ïñãÜíùóçò ìéáò ïìÜäáò óõí-ðñïãñáììáôéóôþí. Åßíáé îåêÜèáñï üôé êáíåßò äåí ìðïñåß, ìå ôï ðáæáñéþôéêï óôõë, íá äçìéïõñãÞóåé êþäéêá åê ôïõ ìçäåíüò óôï Ðáæáñéþôéêï óôõë. Ìðïñåß êáíåßò íá äïêéìÜóåé, íá âåëôéþóåé êáé íá êÜíåé debug êÜðïéïõ êþäéêá, áëëÜ èá Þôáí ðïëý äýóêïëï íá [4mäçìéïõñãÞóåé[24m åê íÝïõ Ýíá project ì' áõôÞ ôç ìÝèïäï. Ïýôå åãþ ïýôå êé ï Linus ôï äïêéìÜóáìå. Ç ïìÜäá ðñïãñáììáôéóìïý ðïõ ìüëéò äçìéïõñãÞóáôå Ý÷åé áíÜãêç êÜôé ðïõ åßíáé ÷ñçóéìïðïéÞóéìï êáé äïêéìáóìÝíï, ãéá íá îåêéíÞóåé. ¼ôáí îåêéíÜ êáíåßò ôçí äçìéïõñãßá ôçò ïìÜäáò ðñïãñáììáôéóìïý ðñÝðåé íá ìðïñåßôå íá [4mðáñïõóéÜóåôå[24m [4máëçèïöáíåßò[24m [4mõðïó÷Ýóåéò[24m. Ôï ðñüãñáììÜ óáò äåí ÷ñåéÜæåôáé íá äïõëåýåé éäéáßôåñá êáëÜ. Ìðïñåß íá åßíáé áñãü, üëï bugs, áôåëÝò êáé öôù÷Ü ôåêìçñéùìÝíï. Åêåß ðïõ äåí ðñÝðåé íá áðïôý÷åôå åßíáé íá ðåßóåôå ôïõò ðéèáíïýò óõí-ðñïãñáììáôéóôÝò óáò üôé ìðïñåß íá åîåëé÷èåß óå êÜôé ðåôõ÷çìÝíï ìÝóá óôï ðñïâëåðôü ìÝëëïí. Ôï Linux êáé ôï fetchmail äçìïóéïðïéÞèçêáí Ý÷ïíôáò óôéâáñü, åëêõóôéêü ó÷åäéáóìü. Ðïëëïß Üíèñùðïé ðïõ óêÝöôïíôáé ìå ôï ìïíôÝëï ôïõ ðáæáñéïý üðùò ôçí ðáñïõóßáóá, Ý÷ïõí ëÜâåé óïâáñÜ õðüøç áõôü ôï êñßóéìï óçìåßï êáé êáôÝëçîáí óôï óõìðÝñáóìá üôé åßíáé áðüëõôá áíáãêáßï ï åðéêåöáëÞò ôïõ ó÷åäßïõ íá äéáèÝôåé ó÷åäéáóôéêÞ äéáßóèçóç êé åõöõßá. $ÁëëÜ ï Linus ðÞñå ôá ó÷ÝäéÜ ôïõ áðü ôï Unix. Åãþ ðÞñá ôá äéêÜ ìïõ áñ÷éêÜ áð' ôï popclient (áí êáé áñãüôåñá èá Üëëáæå ðÜñá ðïëý êáé ðåñéóóüôåñï áíáëïãéêÜ ìå ôï Linux). ÐñÝðåé, ëïéðüí, ï åðéêåöáëÞò, óõíôïíéóôÞò ìéáò ðñïóðÜèåéáò ðáæáñéþôéêïõ óôõë íá Ý÷åé åîáéñåôéêü ó÷åäéáóôéêü ôáëÝíôï, Þ ìðïñåß íá ðñï÷ùñÞóåé åíéó÷ýïíôáò ôï ó÷åäéáóôéêü ôáëÝíôï Üëëùí; Äåí íïìßæù üôé åßíáé óçìáíôéêü ï óõíôïíéóôÞò íá ìðïñåß íá äçìéïõñãåß ó÷Ýäéá åîáéñåôéêÞò åõöõÀáò, áëëÜ åßíáé áðüëõôá óçìáíôéêü íá ìðïñåß íá [4máíáãíùñßóåé[24m [4môéò[24m [4mêáëÝò[24m [4mó÷åäéáóôéêÝò[24m [4méäÝåò[24m [4mÜëëùí[24m. Áõôü ôï áðÝäåéîáí ôá project ôïõ Linux êáé ôïõ fetchmail. Ï Linus, åíþ äåí Þôáí (üðùò åßðáìå êáé ðñéí) Ýíáò ãíÞóéïò ó÷åäéáóôÞò, åðÝäåéîå äåîéüôçôá óôï íá áíáãíùñßæåé ôá êáëÜ ó÷Ýäéá êáé íá ôá ïëïêëçñþíåé óôïí ðõñÞíá ôïõ Linux. Êé Ý÷ù Þäç ðåñéãñÜøåé ðþò ç ðéï éó÷õñÞ ó÷åäéáóôéêÞ éäÝá ãéá ôï fetchmail (äçëáäÞ, ç ðñïþèçóç ìÝóù SMTP) ðñïÞëèå áðü êÜðïéïí Üëëï. Ïé ðñþôïé áíáãíþóôåò áõôïý ôïõ êåéìÝíïõ ìå êïëáêåýïõí õðáéíéóóüìåíïé üôé Ý÷ù ðñïäéÜèåóç íá õðïåêôéìþ ôçí ó÷åäéáóôéêÞ ãíçóéüôçôá ó÷åäßùí ðáæáñéþôéêïõ óôõë, åðåéäÞ äéáèÝôù ï ßäéïò áñêåôÞ áðü áõôÞ êáé, Ýôóé, ôçí èåùñþ äåäïìÝíç. ºóùò áõôü íá áëçèåýåé. Ï ó÷åäéáóìüò åßíáé óßãïõñá ç êáëýôåñç éêáíüôçôÜ ìïõ. Ôï ðñüâëçìá, üìùò, üôáí êáíåßò åßíáé åõöõÞò óôïí ó÷åäéáóìü ëïãéóìéêïý åßíáé üôáí êÜôé ôÝôïéï áñ÷ßæåé íá ãßíåôáé óõíÞèåéá-áñ÷ßæåéò íá êÜíåéò ðñÜãìáôá ðåñßðëïêá üôáí èá Ýðñåðå íá åßíáé äõíáôÜ êáé áðëÜ. ÐïëëÜ ðñïãñÜììáôá êáôÝññåõóáí åðåéäÞ Ýêáíá áõôü ôï ëÜèïò, áëëÜ ôï áðÝöõãá óôï fetchmail. Ðéóôåýù, ëïéðüí, üôé ôï project ôïõ fetchmail ðÝôõ÷å åí ìÝñåé åðåéäÞ åìðüäéóá ôçí ôÜóç ìïõ íá åßìáé Ýîõðíïò. ÊÜôé ôÝôïéï Ýñ÷åôáé óå áíôßèåóç ìå ôçí ó÷åäéáóôéêÞ ãíçóéüôçôá ðïõ åßíáé ïõóéþäçò ãéá Ýíá åðéôõ÷çìÝíï ðáæáñéþôéêï project. ÕðïèÝóôå üôé ï Linus ðñïóðáèïýóå íá ðåôý÷åé èåìåëéþäçò êáéíïôïìßåò êáôÜ ôç äéÜñêåéá ôïõ ðñïãñáììáôéóìïý. Öáßíåôáé áðßèáíï üôé ï ðõñÞíáò ðïõ èá Ýðáéñíå ì' áõôü ôïí ôñüðï íá Þôáí óôáèåñüò êáé ðåôõ÷çìÝíïò ; ¸íá óõãêåêñéìÝíï åðßðåäï ó÷åäéáóôéêÞò êáé ðñïãñáììáôéóôéêÞò éêáíüôçôáò åßíáé áðáñáßôçôï, âÝâáéá, áëëÜ áíáìÝíù üôé üëïé üóïé óêÝöôïíôáé óïâáñÜ íá áó÷ïëçèïýí ìå ôçí ìÝèïäï ðáæáñéïý íá åßíáé Þäç ðÜíù áð' áõôü ôï ìßíéìïõì. Ç åóùôåñéêÞ áãïñÜ ôçò êïéíüôçôáò áíïé÷ôïý êþäéêá áóêåß ëåðôÝò ðéÝóåéò óôïõò áíèñþðïõò íá ìçí áóêïýí ðñïãñáììáôéóôéêÝò ðñïóðÜèåéåò ôéò ïðïßåò äåí ìðïñïýí íá áêïëïõèÞóïõí ùò ôï ôÝëïò. Ùò ôþñá áõôÞ ç óõìâïõëÞ åéóáêïýåôáé. ÕðÜñ÷åé êé Ýíá Üëëï åßäïò éêáíüôçôáò ðïõ êáíïíéêÜ äåí óõíäÝåôáé ìå ôçí áíÜðôõîç ëïãéóìéêïý ç ïðïßá, íïìßæù, åßíáé ôüóï óçìáíôéêÞ ãéá ôï ðáæáñéþôéêï project üóï êáé ç ó÷åäéáóôéêÞ åõöõßá-êáé ßóùò ðåñéóóüôåñï. ¸íáò óõíôïíéóôÞò ÷áëáñïý ó÷åäßïõ ðñÝðåé íá Ý÷åé êáëïýò óõíåñãÜôåò êáé éêáíüôçôåò åðéêïéíùíßáò. Ãéá íá ïñãáíþóåéò ìéá ïìÜäá ðñïãñáììáôéóôþí ðñÝðåé íá Ýëîåéò ôïõò áíèñþðïõò, íá ðñïêáëÝóåéò ôï åíäéáöÝñïí ôïõò óå ü,ôé êÜíåéò êáé íá ôïõò ðñïêáëåßò ôçí åõ÷áñßóôçóç ãéá ôçí ðïóüôçôá åñãáóßáò ðïõ êÜíïõí. Ôá ôå÷íéêÜ óêáìðáíåâÜóìáôá èá åßíáé ðïëëÜ ìÝ÷ñéò üôïõ íá ôï êáôáöÝñåôå, áëëÜ äåí åßíáé áõôü ôï èÝìá ìáò. Ç ðñïóùðéêüôçôá ðïõ ðñïâÜëåôå Ý÷åé óçìáóßá. Äåí åßíáé óýìðôùóç ðïõ ï Linus åßíáé êáëü Üôïìï êáé êÜíåé ôïõò áíèñþðïõò íá èÝëïõí íá ôïí âïçèÞóïõí. Äåí åßíáé ôõ÷áßï ðïõ åßìáé Ýíáò åíåñãçôéêüò åîùóôñåöÞò ôýðïò ðïõ ôïõ áñÝóåé íá äïõëåýåé ìå Üëëïõò. Ãéá íá Ý÷åé áðïôåëÝóìáôá ôï ðáæáñéþôéêï ìïíôÝëï, âïçèÜåé áí ìðïñåßò íá óõíåñãáóôåßò ìå åõ÷Üñéóôïõò áíèñþðïõò. [1m10. Ôï Êïéíùíéêü Ðëáßóéï ôïõ Ëïãéóìéêïý Áíïé÷ôïý Êþäéêá.[0m Áõôü ðïõ ëÝíå åßíáé óùóôü: ïé êáëýôåñåò ðáñåìâÜóåéò óôï ëïãéóìéêü [hacks] îåêéíïýí óáí ðñïóùðéêÝò ëýóåéò óôá êáèçìåñéíÜ ðñïâëÞìáôá ôïõ ðñïãñáììáôéóôÞ êé åîáðëþíïíôáé åðåéäÞ áõôÜ ãßíïíôáé ôõðéêÜ ãéá ìåãÜëï áñéèìü ÷ñçóôþí. Áõôü ìáò ðáñáðÝìðåé óôï èÝìá ôïõ êáíüíá (1), ðïõ ìðïñåß íá äéáôõðùèåß ìå ðéï ÷ñÞóéìï ôñüðï: [4m18.[24m [4mÃéá[24m [4míá[24m [4mëýóåéò[24m [4mÝíá[24m [4måíäéáöÝñïí[24m [4mðñüâëçìá,[24m [4mâñåò[24m [4mÝíá[24m [4mðñüâëçìá[24m [4mðïõ[24m [4måßíáé[0m [4måíäéáöÝñïí[24m [4mãéá[24m [4móÝíá.[0m Áõôü óõíÝâç ìå ôïí Carl Harris êáé ôï ðáëéü popclient, áõôü óõíÝâç êáé ìå ìÝíá êáé ôï fetchmail. ÁëëÜ áõôü Þäç ôï Ý÷ïõìå êáôáëÜâåé. Ôï åíäéáöÝñïí óçìåßï, ôï óçìåßï óôï ïðïßï ïé éóôïñßåò ôïõ Linux êáé ôïõ fetchmail öáßíåôáé íá áðáéôïýí íá åóôéÜóïõìå åðÜíù ôïõò, åßíáé ôï åðüìåíï óôÜäéï-ç åîÝëéîç ôïõ ëïãéóìéêïý ðáñïõóßá ìéáò ìåãÜëçò êáé äñáóôÞñéáò êïéíüôçôáò ÷ñçóôþí êáé óõí-ðñïãñáììáôéóôþí. Óôï âéâëßï ôïõ "The Mythical Man-Month" ï Fred Brooks ðáñáôçñåß üôé, ï ÷ñüíïò ôïõ ðñïãñáììáôéóôÞ äåí åßíáé áíôáëëÜîéìïò. Ç ðñïóèÞêç ðñïãñáììáôéóôþí ó' Ýíá êáèõóôåñçìÝíï project ëïãéóìéêïý ôï êáèõóôåñåß ðåñéóóüôåñï. Éó÷õñßæåôáé üôé, ôï êüóôïò ôçò ðïëõðëïêüôçôáò êáé ôçò åðéêïéíùíßáò åíüò project áõîÜíïíôáé ãåùìåôñéêÜ, åíþ ç åñãáóßá ðïõ ïëïêëçñþíåôáé áõîÜíåôáé áñéèìçôéêÜ. ÁõôÞ ç Üðïøç Ýãéíå ãíùóôÞ óáí "ï Íüìïò ôïõ Brooks" êáé áíáãíùñßæåôáé áðü ðïëëïýò óáí êÜôé ôåëåßùò ðáóéöáíÝò. ÁëëÜ áí ï Íüìïò ôïõ Brooks áðÝäéäå ôçí üëç åéêüíá ôï Linux èá Þôáí áäýíáôï íá õðÜñîåé. Ôï êëáóéêü êåßìåíï "Ç Øõ÷ïëïãßá ôïõ Ðñïãñáììáôéóìïý ìå Çëåêôñïíéêü ÕðïëïãéóôÞ", ôïõ Gerald Weinberg, ìáò äßíåé ìéá æùôéêÞ äéüñèùóç ôçò Üðïøçò ôïõ Brooks. Óôçí óõæÞôçóÞ ôïõ ãéá ôïí "÷ùñßò åãùéóìü" ðñïãñáììáôéóìü ï Weinberg ðáñáôçñåß üôé, óå åñãáóßåò ðïõ ðñïãñáììáôéóôÝò äåí áðáéôïýí "åäáöéêÜ äéêáéþìáôá" ãéá ôïí êþäéêá ôïõò êáé åíèáññýíïõí Üëëïõò áíèñþðïõò íá áíáæçôÞóïõí bugs êáé ðéèáíÝò âåëôéþóåéò, ç âåëôßùóç óõìâáßíåé äñáìáôéêÜ ãñçãïñüôåñá áðü ïðïõäÞðïôå áëëïý. Ïé åðéëïãÝò ïñïëïãßáò ðïõ Ýêáíå ï Weinberg ßóùò åìðïäßæïõí ôçí áíÜëõóÞ ôïõ íá êåñäßóåé ôçí áðïäï÷Þ ðïõ ôçò áîßæåé-êÜðïéïò èá ÷áìïãåëïýóå óôïí ÷áñáêôçñéóìü ôùí hackers ôïõ Internet óáí "÷ùñßò åãùéóìü". ÁëëÜ ðéóôåýù üôé ïé éó÷õñéóìïß ôïõ ìïéÜæïõí óÞìåñá ðåñéóóüôåñï åðéâëçôéêïß áðü ðïôÝ. Ç éóôïñßá ôïõ Unix èá Ýðñåðå íá ìáò Ý÷åé ðñïåôïéìÜóåé ãéá ü,ôé ìáèáßíïõìå áð' ôï Linux (êáé ãéá üôé Ý÷ù åãþ äéáðéóôþóåé, ðåéñáìáôéêÜ êáé óå ìéêñüôåñç êëßìáêá üôáí óêüðéìá áíôÝãñáøá ôéò ìåèüäïõò ôïõ Linus). ¼ôé, äçëáäÞ, åíþ ç óýíôáîç êþäéêá ðáñáìÝíåé ìéá ïõóéùäþò ìïíá÷éêÞ äñáóôçñéüôçôá, ïé ðñáãìáôéêÜ êáëÝò ðñïãñáììáôéóôéêÝò åñãáóßåò ðñïÝñ÷ïíôáé üôáí ÷ñçóéìïðïéåßôáé ç ðñïóï÷Þ êáé ç äéáíïçôéêÞ äýíáìç ôçò ïìÜäáò. Ï ðñïãñáììáôéóôÞò ðïõ ÷ñçóéìïðïéåß ôï ìõáëü ôïõ ôïõ ìüíïò Þ ìüíç ó' Ýíá êëåéóôü project èá ìåßíåé ðßóù áð' ôïí ðñïãñáììáôéóôÞ ðïõ îÝñåé ðþò íá äçìéïõñãÞóåé Ýíá áíïé÷ôü, åîåëéêôéêü ðëáßóéï óôï ïðïßï ï åíôïðéóìüò ôùí bugs êáé ç åðßôåõîç âåëôéþóåùí êáôáöÝñïíôáé áðü åêáôïíôÜäåò áíèñþðùí. ¼ìùò, ï ðáñáäïóéáêüò êüóìïò ôïõ Unix åìðïäßóôçêå óôçí ðñïóðÜèåéÜ ôïõ íá ùèÞóåé áõôÞ ôçí ðñïóÝããéóç óôçí ôåëéêÞ ôçò öÜóç áðü ðïëëïýò ðáñÜãïíôåò. ÔÝôïéïé Þôáí ïé íïìéêïß ðåñéïñéóìïß äéáöüñùí áäåéþí ÷ñÞóçò ðíåõìáôéêþí äéêáéùìÜôùí, åðáããåëìáôéêÜ ìõóôéêÜ êáé ôá åìðïñéêÜ óõìöÝñïíôá. ¸íáò Üëëïò Þôáí üôé ôï Internet äåí Þôáí áêüìç áñêåôÜ êáëü. Ðñéí áðü ôçí Ýëåõóç ôïõ öôçíïý Internet õðÞñ÷áí êÜðïéåò ãåùãñáöéêÜ óõìðáãåßò ïìÜäåò ôùí ïðïßùí ç êïõëôïýñá åíåèÜññõíå ôïí "ìç åãùéóôéêü" ðñïãñáììáôéóìü ôïõ Weinberg êé Ýíáò ðñïãñáììáôéóôÞò ìðïñïýóå ÷ùñßò äõóêïëßá íá ðñïóåëêýóåé ðïëëïýò éêáíïýò ðáñáôçñçôÝò êáé ðñïãñáììáôéóôÝò. Ôá Bell Labs, MIT AI Lab, ôï UC Berkeley Ýãéíáí ïßêïé èñõëéêþí êáéíïôïìéþí ðïõ åßíáé áêüìç óå éó÷ý. Ôï Linux Þôáí ôï ðñþôï project ðïõ Ýêáíå óõíåéäçôÝò êáé åðéôõ÷åßò ðñïóðÜèåéåò íá áîéïðïéçèåß ïëüêëçñïò ï [4mêüóìïò[24m óáí ç äéêÞ ôïõ äåîáìåíÞ ôáëÝíôùí. Äåí íïìßæù üôé åßíáé óýìðôùóç üôé ç ãüíéìç ðåñßïäïò ôïõ Linux åìöáíßæåôáé ôçí ßäéá ðåñßïäï ìå åêåßíç ôçò ãÝííçóçò ôïõ Ðáãêüóìéïõ Éóôïý (World Wide Web-WWW) êáé üôé ôï Linux åãêáôÝëåéøå ôçí ðáéäéêÞ ôïõ çëéêßá êáôÜ ôçí ðåñßïäï 1993-1994 ç ïðïßá åßäå ôçí áðïãåßùóç ôçò âéïìç÷áíßáò Ðáñï÷Ýùí Õðçñåóéþí Internet (ISP) êáé ôçò Ýêñçîçò ôïõ ìåãÜëïõ ñåýìáôïò åíäéáöÝñïíôïò ãéá ôï Internet. Ï Linus Þôáí ï ðñþôïò Üíèñùðïò ðïõ Ýìáèå ðþò íá ðáßæåé ìå ôïõò íÝïõò êáíüíåò ðïõ äçìéïõñãïýóå ôï Internet. Åíþ ôï öôçíü Internet Þôáí ìéá áíáãêáßá óõíèÞêç ãéá ôçí áíÜðôõîç ôïõ ìïíôÝëïõ Linux, íïìßæù ðùò áðü ìüíï ôïõ äåí Þãáí ìéá åðáñêÞò óõíèÞêç. ¸íáò Üëëï æùôéêüò ðáñÜãïíôáò Þôáí ç áíÜðôõîç åíüò çãåôéêïý óôõë êé åíüò óõíüëïõ óõíåñãáôéêþí óõíçèåéþí ðïõ åðÝôñåøáí óôïõò ðñïãñáììáôéóôÝò íá ðñïóåëêýóïõí óõí-ðñïãñáììáôéóôÝò êáé íá áðïêïìßóïõí ôçí ìÝãéóôç éó÷ý. Ôé åßíáé, üìùò, áõôü ôï çãåôéêü óôõë êáé ïé óõíÞèåéåò; Äåí ìðïñïýí íá âáóßæïíôáé óå ó÷Ýóåéò åîïõóßáò-áêüìç êé áí ìðïñïýóáí, ç åîáíáãêáóôéêÞ åîïõóßá äåí ìðïñåß íá ðñïêáëÝóåé ôá áðïôåëÝóìáôá ðïõ äéáðéóôþíïõìå. Ï Weinberg ðáñáèÝôåé ôçí áõôïâéïãñáößá ôïõ Ðéïôñ ÁëåîÝéåâéôò Êñïðüôêéí, Ñþóïõ áíáñ÷éêïý ôïõ 19ïõ áéþíá, "Ïé áíáìíÞóåéò åíüò ÅðáíáóôÜôç". "¸÷ïíôáò áíáôñáöåß áðü ìéá ïéêïãÝíåéá ðïõ åß÷å óôçí éäéïêôçóßá ôçò äïõëïðÜñïéêïõò îåêßíçóá ôçí æùÞ ìïõ, üðùò üëïé ïé íÝïé ôçò åðï÷Þò ìïõ, ìå ðßóôç ìåãÜëç óôçí áíáãêáéüôçôá ôïõ íá äéáôÜæåéò, íá ìáëþíåéò, íá ôéìùñåßò, êáé üë' áõôÜ. ÁëëÜ üôáí, áñêåôÜ íùñßò, Ýðñåðå íá ëåéôïõñãÞóù óïâáñÝò åðé÷åéñÞóåéò êáé íá óõó÷åôéóôþ ìå [åëåýèåñïõò] áíèñþðïõò, êáé üôáí ôï ðáñáìéêñü ëÜèïò ìðïñïýóå íá ïäçãÞóåé óå ïäõíçñÝò åðéðôþóåéò, Üñ÷éóá íá åêôéìþ ôçí äéáöïñÜ ìåôáîý ôçò äñÜóçò âÜóåé ôùí áñ÷þí ôçò åíôïëÞò êáé ôçò ðåéèáñ÷ßáò êáé ôçò äñÜóçò âÜóåé ôçò áñ÷Þò ôçò êïéíÞò êáôáíüçóçò. Ïé ðñþôåò åöáñìüæïíôáé èáõìÜóéá óå ìéá óôñáôéùôéêÞ ðáñÝëáóç, áëëÜ äåí áîßæåé ôï ðáñáìéêñü óôçí ðñáãìáôéêÞ æùÞ üðïõ ï óôü÷ïò ìðïñåß íá åðéôåõ÷èåß ìüíï ìå ôéò óêëçñÞ ðñïóðÜèåéá ðïëëþí óõãêëéíïõóþí èåëÞóåùí" Ç "óêëçñÞ ðñïóðÜèåéá ðïëëþí óõãêëéíïõóþí èåëÞóåùí" åßíáé áêñéâþò áõôü ðïõ áðáéôåß ôï project ôïõ Linux-êáé ç "áñ÷Þ ôçò äéáôáãÞò" åßíáé áäýíáôïí íá åöáñìïóôåß ìåôáîý åèåëïíôþí, ìÝóá óôïí áíáñ÷éêü ðáñÜäåéóï ðïõ ëÝãåôáé Internet. Ãéá íá ëåéôïõñãÞóïõí êáé óõíáãùíéóôïýí áðïôåëåóìáôéêÜ, ïé ðñïãñáììáôéóôÝò ðïõ èÝëïõí íá çãçèïýí åíüò óõíåñãáôéêïý project ðñÝðåé íá ìÜèïõí íá óôñáôïëïãïýí êáé íá åíåñãïðïéïýí áðïôåëåóìáôéêÝò ïìÜäåò ðñïãñáììáôéóôþí ìå ôïí ôñüðï ðïõ ðñïôåßíåé ç "áñ÷Þ ôçò êáôáíüçóçò" ôïõ Êñïðüôêéí. ÐñÝðåé íá ìÜèïõí íá ÷ñçóéìïðïéïýí ôïí Íüìï ôïõ Linus. Íùñßôåñá áíáöÝñèçêá óôï "öáéíüìåíï ôùí Äåëöþí" ùò ìéá ðéèáíÞ åîÞãçóç ôïõ Íüìïõ ôïõ Linus. ÕðÜñ÷ïõí, üìùò, êé Üëëåò åîçãÞóåéò üðùò ïé éó÷õñÝò áíáëïãßåò ôùí ðñïóáñìüóéìùí óõóôçìÜôùí óôçí âéïëïãßá êáé ôçí ïéêïíïìßá. Ï êüóìïò ôïõ Linux óõìðåñéöÝñåôáé áðü ðïëëÝò áðüøåéò óáí ìéá åëåýèåñç áãïñÜ Þ Ýíá ïéêïóýóôçìá, óáí Ýíá óýíïëï åãùéóôéêþí äõíÜìåùí ðïõ ðñïóðáèïýí íá ìåãéóôïðïéÞóïõí ôçí ùöÝëåéá ç ïðïßá, óôçí äéáäéêáóßá, äçìéïõñãåß ìéá áõôü-äéïñèùôéêÞ áõèüñìçôç ôÜîç ðåñéóóüôåñï ðåñßôå÷íç êáé áðïôåëåóìáôéêÞ áðü êÜèå ôÝôïéá ðïõ ìðïñåß íá êáôáöÝñåé ïðïéïäÞðïôå ðïóüôçôá êåíôñéêïý ó÷åäéáóìïý. ÌåôÜ, ó' áõôü ôï óçìåßï ðñÝðåé íá áíáæçôÞóïõìå ôçí "áñ÷Þ ôçò êáôáíüçóçò". Ç "ùöÝëéìç ëåéôïõñãßá" ðïõ ðñïóðáèïýí íá ìåãéóôïðïéÞóïõí ïé ðñïãñáììáôéóôÝò Linux äåí åßíáé ïéêïíïìéêÞ áëëÜ ìéá áðñïóäéüñéóôç éêáíïðïßçóç ôïõ åãþ êáé ôçò öÞìçò ôïõò ìåôáîý ôùí Üëëùí ðñïãñáììáôéóôþí. (ÊÜðïéïò ìðïñåß íá ïíïìÜóåé ôï êßíçôñü ôïõò "áëôñïõéóôéêü", áëëÜ èá áãíïåß üôé ï áëôñïõéóìüò åßíáé ï ßäéïò åßíáé ìéá ìïñöÞ éêáíïðïßçóçò ôïõ åãþ ôùí áëôñïõéóôþí). Ç åèåëïíôéêÞ êïõëôïýñá ðïõ ëåéôïõñãåß ì' áõôü ôïí ôñüðï óôçí ðñáãìáôéêüôçôá åßíáé óõíçèéóìÝíç. Ìéá Üëëç êïõëôïýñá, óôçí ïðïßá óõììåôåß÷á êé åãþ, åßíáé ïé ïðáäïß ôçò åðéóôçìïíéêÞò öáíôáóßáò ðïõ, áíôßèåôá ìå ôïõò ðñïãñáììáôéóôÝò áíáãíùñßæåé "ôïí ìðáìðïýëá ôïõ åãþ" (ôïí åìðëïõôéóìü ôçò öÞìçò êÜðïéïõ ìåôáîý Üëëùí ïðáäþí) óáí ôï âáóéêü êßíçôñï ðßóù áð' ôçí åèåëïíôéêÞ äñáóôçñéüôçôá. ¸÷ïíôáò ìå åðéôõ÷ßá âÜëåé ôïí åáõôü ôïõ óôç èÝóç ôïõ öýëáêá ôïõ project êáôÜ ôï ïðïßï ç áíÜðôõîç ôïõ ëïãéóìéêïý ãßíåôáé áðü Üëëïõò êáé êáëëéåñãþíôáò ôï åíäéáöÝñïí ãéá ôï project ìÝ÷ñéò üôïõ áõôü Ýãéíå áõôïóõíôçñïýìåíï, ï Linus åðÝäåéîå ìéá ïîõäåñêÞ áíôßëçøç ôçò "áñ÷Þò ôçò êïéíÞò êáôáíüçóçò" ôïõ Êñïðüôêéí. ÁõôÞ ç çìé-ïéêïíïìéêÞ üøç ôïõ êüóìïõ ôïõ Linux ìáò áíáãêÜæåé íá åîåôÜóïõìå ðþò åöáñìüæåôáé áõôÞ ç êáôáíüçóç. Ìðïñïýìå íá äïýìå ôéò ìåèüäïõò ôïõ Linus óáí Ýíá ôñüðï óýíäåóçò ôïõ åãùéóìïý ôïõ îå÷ùñéóôïý ðñïãñáììáôéóôÞ üóï ôï äõíáôüí ðéï óôåíÞò ìå äýóêïëïõò óôü÷ïõò, ðïõ ìðïñïýí íá åðéôåõ÷èïýí ìüíï ìå ðáñáôåôáìÝíç óõíåñãáóßá. Ìå ôï project ôïõ fetchmail áðÝäåéîá (ìïëïíüôé óå ìéêñüôåñç êëßìáêá) üôé áõôÞ ç ìÝèïäïò ìðïñåß íá åðáíáëçöèåß ìå êáëÜ áðïôåëÝóìáôá. ºóùò ôá êáôÜöåñá ëßãï ðéï óõíåéäçôÜ êáé óõóôçìáôéêÜ áðü åêåßíïí. Ðïëëïß Üíèñùðïé (éäéáßôåñá åêåßíïé ðïõ ðïëéôéêÜ äõóðéóôïýí åíþðéïí ôçò åëåýèåñçò áãïñÜò) èá ðåñßìåíáí áðü ìéá êïõëôïýñá áõôü- äéåõèõíüìåíùí áôüìùí íá åßíáé êåñìáôéóìÝíç, ôïðéêÞ, Ü÷ñçóôç, ðåñéôôÞ êé å÷èñéêÞ. ÁõôÝò ïé ðñïóäïêßåò, üìùò, áêõñþíïíôáé áðü ôçí åêðëçêôéêÞ ðïéêéëßá, ðïéüôçôá êáé âÜèïò ôçò ôåêìçñßùóçò ôïõ Linux, ãéá íá áíáöÝñù Ýíá ðáñÜäåéãìá. Ïé ðñïãñáììáôéóôÝò [4máðå÷èÜíïíôáé[24m ôçí ôåêìçñßùóç. Ðþò, ôüôå, ïé ðñïãñáììáôéóôÝò ôïõ Linux ðáñÜãïõí ôüóç ðïëý; Ðñïöáíþò, ç åëåýèåñç áãïñÜ óôï Linux äïõëåýåé ðáñÝ÷ïíôáò êáëÞ, äéáöïñåôéêÞ óõìðåñéöïñÜ áðü åêåßíç ôùí ìáæéêÜ ÷ñçìáôïäïôïýìåíùí åñãáóôçñßùí ðáñáãùãÞò ôåêìçñßùóçò ôùí åìðïñéêþí ëïãéóìéêþí ðñïúüíôùí. Ôüóï ôï project ôïõ ðõñÞíá ôïõ fetchmail üóï êáé ôïõ Linux äåß÷íïõí üôé, áíôáìåßâïíôáò êáôÜëëçëá ôïõò ðñïãñáììáôéóôÝò Ýíáò êáëüò ðñïãñáììáôéóôÞò/óõíôïíéóôÞò ìðïñåß íá ÷ñçóéìïðïéÞóåé ôï Internet ãéá íá åêìåôáëëåõôåß ôá ïöÝëç üôáí Ý÷åé ðïëëïýò ðñïãñáììáôéóôÝò ÷ùñßò, ôáõôü÷ñïíá, íá êáôáóôñÝöåôáé ôï project ìÝóá óå ìéá ÷áïôéêÞ áíáêáôùóïýñá. ¸ôóé, óôïí Íüìï Brooks áíôéðñïôåßíù ôï åîÞò: [4m19.[24m [4mÌå[24m [4môïí[24m [4müñï[24m [4mï[24m [4móõíôïíéóôÞò[24m [4mðñïãñáììáôéóôÞò[24m [4míá[24m [4mÝ÷åé[24m [4mÝíá[24m [4mìÝóïí[0m [4môïõëÜ÷éóôïí[24m [4môüóï[24m [4mêáëü[24m [4müóï[24m [4môï[24m [4mInternet[24m [4mêáé[24m [4mãíùñßæïíôáò[24m [4mðþò[24m [4míá[24m [4mçãçèåß[0m [4m÷ùñßò[24m [4mêáôáðßåóç,[24m [4mðïëëÜ[24m [4mìõáëÜ[24m [4máíáðüöåõêôá[24m [4mãßíïíôáé[24m [4mêáëýôåñá[24m [4máðü[24m [4mÝíá.[0m Ðéóôåýù üôé, ôï ìÝëëïí ôïõ [4mëïãéóìéêïý[24m [4máíïé÷ôïý[24m [4mêþäéêá[24m áíÞêåé üëï êáé ðåñéóóüôåñï óôïõò áíèñþðïõò ðïõ îÝñïõí ðþò íá ðáßîïõí ôï ðáé÷íßäé ôïõ Linus, óå áíèñþðïõò ðïõ áöÞíïõí ðßóù ôïõò ôï êáèåäñéêü óôõë êé áãêáëéÜæïõí ôï óôõë ðáæáñéïý. Ì' áõôü äåí åííïïýìå üôé ç Üðïøç êáé ç åõöõßá ôïõ êáèåíüò äåí Ý÷ïõí óçìáóßá. ÁëëÜ ìÜëëïí üôé, ç áé÷ìÞ ôïõ ëïãéóìéêïý áíïé÷ôïý êþäéêá èá áíÞêåé óå áíèñþðïõò ðïõ îåêéíïýí áð' ôçí áôïìéêÞ Üðïøç êé åõöõßá êáé ìåôÜ ôéò åíéó÷ýïõí ìå ôçí áðïôåëåóìáôéêÞ äçìéïõñãßá åèåëïíôéêþí ïìÜäùí êïéíïý åíäéáöÝñïíôïò. Êáé ßóùò ü÷é ìüíï ôï ìÝëëïí ôïõ ëïãéóìéêïý áíïé÷ôïý êþäéêá. ÊáíÝíáò ðñïãñáììáôéóôÞò êëåéóôïý êþäéêá ìðïñåß íá óõãêåíôñþóåé üëá áõôÜ ôá ôáëÝíôá ðïõ ç êïéíüôçôá ôïõ Linux ìðïñåß íá áðáó÷ïëÞóåé ãéá ôçí åðßëõóç êÜðïéïõ ðñïâëÞìáôïò. Ðïëëïß ëßãïé ìðïñïýí íá áíôåðåîÝëèïõí óôï ïéêïíïìéêü Ýîïäï ðñüóëçøçò ôï ðïëý äéáêïóßùí áíèñþðùí, üóùí óõíåéóÝöåñáí óôï fetchmail! ºóùò, óôï ôÝëïò, ç êïõëôïýñá ôïõ áíïé÷ôïý êþäéêá èñéáìâåýóåé ü÷é åðåéäÞ ç óõíåñãáóßá åßíáé çèéêþò ïñèÞ Þ ç "öñáãÞ" ôïõ ëïãéóìéêïý åßíáé çèéêþò ëáíèáóìÝíç (õðïèÝôù üôé èá óõìöùíåßôå ìå ôï ôåëåõôáßï), áëëÜ áðëÜ åðåéäÞ ï êüóìïò ôïõ êëåéóôïý êþäéêá äåí ìðïñåß íá êåñäßóåé Ýíáí åîåëéêôéêü áãþíá ìå ôéò êïéíüôçôåò áíïé÷ôïý êþäéêá, ðïëý ðåñéóóüôåñï êé Ýìðåéñï ÷ñüíï ãéá ôçí åðßëõóç åíüò ðñïâëÞìáôïò. [1m11. Åõ÷áñéóôßåò.[0m Áõôü ôï êåßìåíï âåëôéþèçêå óõæçôþíôáò ôï ìå ìåãÜëï áñéèìü áíèñþðùí, ðïõ âïÞèçóáí óôçí áðïóáöÞíéóÞ ôïõ. Åõ÷áñéóôþ éäéáéôÝñùò ôïí Jeff Dutky <dutky@wam.umd.edu> ðïõ ðñüôåéíå ôïí êáíüíá "ôï îåêáèÜñéóìá åßíáé ðáñáëëçëÞóéìï" êáé âïÞèçóå óôçí åðåîåñãáóßá ôçò áíÜëõóçò ðïõ åîÜãåôáé áðü áõôüí. Åðßóçò, åõ÷áñéóôþ ôçí Nancy Lebovitz<nancyl@universe.digex.net> ãéá ôçí ðñüôáóÞ ôçò üôé ìéìïýìáé ôïí Weinberg ðáñáèÝôïíôáò ôïí Êñïðüôêéí. Ïîýíïõò êñéôéêÞ Üóêçóáí ç Joan Eslinger <wombat@kilimanjaro.engr.sgi.com> êáé ç Marty Franz <marty@net-link.net> ôçò ëßóôáò General Technics. Ï Paul Eggert <eggert@twinsun.com> ðáñáôÞñçóå ôçí óýãêñïõóç ìåôáîý ôïõ áíïé÷ôïý êáé ôïõ GPL ìïíôÝëïõ. Åßìáé åõãíþìùí óôá ìÝëç ôïõ PLUG, ïìÜäá ×ñçóôþí Linux ôçò ÖéëáäÝëöåéá, ðïõ ðñþôïé äéÜâáóáí ôçí ðñþôç äçìïóßåõóç ôïõ ðáñüíôïò. ÔÝëïò, ôá ó÷üëéá ôïõ Linus Torvalds ìå âïÞèçóáí ðïëý êáé ìå åíèÜññõíå ç ðñþéìç õðïóôÞñéîÞ ôïõ. [1m12. Ãéá ÐåñáéôÝñù ÌåëÝôç.[0m ÐáñÝèåóá ðïëëÜ ôìÞìáôá ôïõ âéâëßïõ "[4mThe[24m [4mMythical[24m [4mMan-Month[24m", ôïõ Frederick P. Brooks. ÈåñìÜ ðñïôåßíù ôçí Ýêäïóç ôçò 25 åðåôåßïõ áðü ôéò åêäüóåéò Addison-Wesley (ISBN 0-201-83595-9) óôçí ïðïßá Ý÷åé ðñïóôåèåß ôï êåßìåíï ôïõ 1986 "[4mNo[24m [4mSilver[24m [4mBullet[24m". Ç Ýêäïóç åßíáé åìðëïõôéóìÝíç ìå ìéá áíåêôßìçôç 20÷ñïíç áíáäñïìÞ, óôçí ïðïßá ï Brooks åõèÝùò ðáñáäÝ÷åôáé ôçí êñéôéêÞ ôïõ áñ÷éêïý êåéìÝíïõ ôï ïðïßï äåí Üíôåîå ôçí äïêéìáóßá ôïõ ÷ñüíïõ. ÄéÜâáóá ãéá ðñþôç öïñÜ ôçí áíáäñïìÞ ìåôÜ ôçí ïõóéáóôéêÞ óýíôáîç áõôïý ôïõ êåéìÝíïõ êáé åîåðëÜãçí üôáí äéáðßóôùóá üôé ï Brooks áðÝäéäå ðñáêôéêÝò óå ðáæáñéþôéêï óôõë óôçí Microsoft! Ôï "[4mThe[24m [4mPsychology[24m [4mof[24m [4mComputer[24m [4mProgramming[24m" ôïõ Gerald M. Weinberg åéóÞãáãå ôçí ìÜëëïí êáêþò åííïïýìåíç áíôßëçøç ôïõ "ðñïãñáììáôéóìïý ÷ùñßò åãùéóìü". Áí êáé äåí Þôáí ï Üíèñùðïò ðïõ èá áíáãíþñéæå ôçí ìáôáéüôçôá ôçò "áñ÷Þò ôçò åíôïëÞò", Þôáí ßóùò ï ðñþôïò ðïõ áíáãíþñéóå êáé äéáöþíçóå ìå áõôü ôï óçìåßï, óõíäÝïíôÜò ôï éäéáßôåñá ìå ôçí áíÜðôõîç ëïãéóìéêïý. Ï Richard P. Gabriel ìåëåôþíôáò ôçí êïõëôïýñá ôïõ Unix óôçí ðñï-Linux åðï÷Þ, ìå áðñïèõìßá äéáöùíïýóå ìå ôçí õðåñï÷Þ åíüò ðñùôüãïíïõ ðáæáñéþôéêïõ óôõë óôï êåßìåíü ôïõ "[4mLisp:[24m [4mGood[24m [4mNews,[24m [4mBad[24m [4mNews,[24m [4mand[24m [4mHow[0m [4mTo[24m [4mWin[24m [4mBig[24m". Áí êáé ðáëáéü áðü ìåñéêÝò áðüøåéò, áõôü ôï äïêßìéï äéêáßùò åîõìíåßôáé áðü ôïõò ïðáäïýò ôïõ Lisp (ìåôáîý áõôþí êé áðü åìÝíá). ¸íáò áëëçëïãñÜöïò ìïõ õðåíèýìéóå üôé ôï êåöÜëáéï ìå ôßôëï "Worse Is Better" åßíáé óáí ðñüâëåøç ãéá ôï Linux. Ôï êåßìåíï âñßóêåôå óôï Internet, <http://www.naggum.no/worse-is-better.html>. Ôï âéâëßï [4mPeopleware:[24m [4mProductive[24m [4mProjects[24m [4mand[24m [4mTeams[24m (New York; Dorset House, 1987; ISBN 0-932633-05-6), ôùí De Marco êáé Lister, âéâëßï ðïõ äåí åêôéìÜôáé üðùò ôïõ áíáëïãåß, ôï ïðïßï ìå åõ÷áñßóôçóç åßäá íá ôï ðáñáèÝôåé óôçí áíáäñïìÞ ôïõ ï Brooks. Áí êáé ëßãá áð' üóá ëÝíå ïé óõããñáöåßò ôïõ åßíáé åöáñìüóéìá óôï Linux Þ óôïí áíïé÷ôü êþäéêá, ç âáèéÜ ãíþóç ôïõò ãéá ôéò áíáãêáßåò óõíèÞêåò ãéá äçìéïõñãéêÞ äïõëåéÜ åßíáé ïîõäåñêÞò êé áîßæåé ãéá êÜèå Ýíáí ðïõ ðñïóðáèåß íá åéóÜãåé êÜðïéåò áîßåò ôïõ ìïíôÝëïõ ðáæáñéïý óôï åìðïñéêü ëïãéóìéêü. ÔÝëïò, ïöåßëù íá ðáñáäå÷ôþ üôé åß÷á ïíïìÜóåé áõôü ôï êåßìåíï ó÷åäüí "Ï Êáèåäñéêüò êáé ç ÁãïñÜ", üðïõ ï ôåëåõôáßïò üñïò óçìáßíåé ôçí ÅëëçíéêÞ áðüäïóç ìéáò áíïé÷ôÞò áãïñÜò Þ åíüò äçìüóéïõ ÷þñïõ óõíåýñåóçò. Ïé ãüíéìåò åñãáóßåò ãéá ôá "áãïñáßá óõóôÞìáôá" ôùí Marc Miller êáé Eric Drexler, ðåñéãñÜöïíôáò ôéò åìöáíéæüìåíåò éäéüôçôåò ôùí áãïñáßùí õðïëïãéóôéêþí óõóôçìÜôùí ìå âïÞèçóáí íá ðñïåôïéìáóôþ íá óêåöôþ îåêÜèáñá ãéá áíÜëïãá öáéíüìåíá óôçí êïõëôïýñá ôïõ áíïé÷ôïý êþäéêá ôïõ Linux, ôá ïðïßá äéáðßóôùóá ðÝíôå ÷ñüíéá áñãüôåñá. ÁõôÜ ôá äïêßìéá âñßóêïíôáé óôï Internet, <http://www.agorics.com/agorpapers.html>. [1m13. Åðßëïãïò: Ç Netscape ÁãêáëéÜæåé ôï ÐáæÜñé![0m Åßíáé ðáñÜîåíï íá íéþèåéò üôé âïçèÜò íá ãñáöôåß éóôïñßá... Óôéò 22 Éáíïõáñßïõ 1998, ðåñßðïõ åöôÜ ìÞíåò ìåôÜ ôçí ðñþôç äçìïóßåõóç áõôïý ôïõ êåéìÝíïõ, ç Netscape Communications, Inc. åîÞããåéëå ôçí ðñüèåóÞ ôçòíá äçìïóéåýóåé ôïí êþäéêá ôïõ Netscape Communicator <http://www.netscape.com/newsref/pr/newsrelease558.html>. ÌÝ÷ñé ôçí çìÝñá ôçò åîáããåëßáò äåí ðßóôåõá üôé èá ãéíüôáí êÜôé ôÝôïéï. Ï Eric Hahn, áíôéðñüåäñïò êáé ÄéåõèõíôÞò Ôå÷íïëïãßáò ôçò Netscape ìïõ Ýóôåéëå, áìÝóùò ìåôÜ, ôï åîÞò ìÞíõìá: "Óôï üíïìá üëùí õìþí óôçí Netscape, èÝëù íá óáò åõ÷áñéóôÞóù ðïõ ìáò âïçèÞóáôå íá öôÜóïõìå ðñþôïé ó' áõôü ôï óçìåßï. Ïé óêÝøåéò êáé ôá ãñáðôÜ óáò Þóáí èåìåëéþäçò åìðíåýóåéò ãéá ôçí áðüöáóÞ ìáò". Ôçí åðüìåíç åâäïìÜäá ðÞãá óôçí Silicon Valley, ìåôÜ áðü ðñüóêëçóç ôçò Netscape ãéá ìéá çìåñßäá (óôéò 4 Öåâñïõáñßïõ 1998), ìáæß ìå êïñõöáßá óôåëÝ÷ç êáé ôå÷íéêïýò. Ó÷åäéÜóáìå ôçí óôñáôçãéêÞ Ýêäïóçò ôïõ êþäéêá êáé ôçò Üäåéáò êáé åðåîåñãáóôÞêáìå êÜðïéá Üëëá ó÷Ýäéá ðïõ åëðßæïõìå üôé ôåëéêÜ èá Ý÷ïõí ìáêñüðíïåò êáé èåôéêÝò åðéðôþóåéò óôçí êïéíüôçôá ôïõ áíïé÷ôïý êþäéêá. Åßíáé ðïëý íùñßò ãéá íá ìðù óå ëåðôïìÝñåéåò. Óå ëßãåò åâäïìÜäåò èá õðÜñ÷ïõí íåüôåñá. Ç Netscape ðñüêåéôáé íá ìáò ðáñá÷ùñÞóåé ìéáò ìåãÜëçò êëßìáêáò áëçèéíÞ äïêéìáóßá ôïõ ðáæáñéþôéêïõ ìïíôÝëïõ óôïí åìðïñéêü êüóìï. Ç êïõëôïýñá ôïõ áíïé÷ôïý êþäéêá ôþñá áíôéìåôùðßæåé Ýíá êßíäõíï: áí ôï ó÷Ýäéï ôçò Netscape áðïôý÷åé, ç éäÝá ôïõ áíïé÷ôïý êþäéêá èá õðïâéâáóôåß êáé ï åìðïñéêüò êüóìïò äåí èá ôçí îáíáóêåöôåß ãéá Üëëç ìéá äåêáåôßá. Áðü ôçí Üëëç, áõôü åßíáé ìéá èåáìáôéêÞ åõêáéñßá. Ç áñ÷éêÞ áíôßäñáóç ôïõ ×ñçìáôéóôçñßïõ Þôáí óõãêñáôçìÝíá èåôéêÞ. Äïêéìáæüìáóôå êé åìåßò, åðßóçò. Áí ç Netscape êåñäßóåé óçìáíôéêü ìåñßäéï áãïñÜò áðü áõôÞ ôçí êßíçóç ßóùò åêäçëùèåß ìéá êáèõóôåñçìÝíç åðáíÜóôáóç óôçí âéïìç÷áíßá õðïëïãéóôþí. Ôï åðüìåíï Ýôïò èá åßíáé ðïëý äéäáêôéêü êé åíäéáöÝñïí.