ცოდნა სინათლეა - Knowledge is light - Знание свет -
კენ ტომფსონი
(დ. 4 თებერვალი, 1943) — კომპიუტერული მეცნიერებების ამერიკელი მკვლევარი, პროგრამისტი. ცხოვრების დიდი ნაწილი ტომფსონმა Bell Labs-ში მუშაობას დაუთმო, სადაც მან შეიმუშავა და დანერგა პირვანდელი Unix ოპერაციული სისტემა. გარდა ამისა, მან შეიმუშავა პროგრამირების B ენა, რომლის საფუძველზე შემდგომ შეიქმნა პროგრამირების С ენა. იყო ოპერაციული სისტემა Plan 9-ის შემქნელი და ადრეული შემმუშავებელი. 2006 წლიდან მუშაობდა კომპანია Google-ში, სადაც მონაწილეობა მიიღო Go პროგრამირების ენის შექმნაში.
სხვა გამოჩენილ წვლილს შორის, აღსანიშნავია კენ ტომფსონის მიერ რეგულარულ გამოსახულებებზე მუშაობა, ადრეული კომპიუტერული ტექსტური რედაქტორების QED-ისა და ed-ის შემუშავება, კოდირების UTF-8-ის განსაზღვრება. მუშაობდა კომპიუტერულ ჭადრაკზე, რომლის ფარგლებში შეიქმნა საჭადრაკო დაბოლოებების ცხრილური ბაზები და საჭადრაკო მანქანა Belle.
იხ. ვიდეო
კენეთ ტომფსონი დაიბადა ამერიკის შეერთებული შტატების ქალაქ ნიუ-ორლეანში. კითხვაზე, თუ როგორ ისწავლა პროგრამირება, ტომფსონმა უპასუხა:
„ყოველთვის გატაცებული ვიყავი ლოგიკით და სკოლის დაწყებით კლასებშიც კი, ვმუშაობდი არითმეტიკულ პრობლემებზე ორობით სისტემაში. რაღაც მსგავსი. იმიტომ რომ გატაცებული ვიყავი.“ |
ტომფსონმა მეცნიერების ბაკალავრის ხარისხი მიიღო 1965 წელს, ხოლო 1966 წელს — მაგისტრის ხარისხი. ორივე ხარისხი, ელექტრულ ინჟინერიასა და კომპიუტერულ მეცნირებებში, ტომფსონმა დაიცვა კალიფორნიის ბერკლის უნივერსიტეტში, სადაც მისი თეზის მრჩევლად იყო მათემატიკოსი, პროფესორი ელვინ ბერლეკემპი.
Bell Labs-ში კენ ტოფსონი სამუშაოდ აიყვანეს 1966 წელს. 60-იანებში ტომფსონი, დენის რიჩისთან ერთად მუშაობდა ოპერაციულ სისტემა Multics-ზე. Multics-ის წერის პროცესში, შეიმუშავა პროგრამირების ენა Bon. ასევე, შექმნა ვიდეო-თამაში Space Travel. მოგვიანებით Bell Labs-მა დატოვა Multics-ის პროექტი. იმისათვის, რომ გაეგრძელებინა თამაში, ტომფსონმა იპოვა ძველი PDP-7 მანქანა და ხელახლა დაწერა მასზე გასაშვებად Space Travel-ის თამაში. საბოლოოდ, ტომფსონის მიერ შემუშავებული ხელსაწყო გადაიქცა ოპერაციულ სისტემა Unix-ად: PDP-7-ზე მუშაობისას Bell Labs-ის მკვლევარებმა, ტოფსონისა და რიჩის ხელმძღვანელობით, ასევე რუდ ქენედეის მონაწილეობით, შეიმუშავეს იერარქიული ფაილური სისტემა (HFS), კომპიუტერების პროცესებისა და მოწყობილობის ფაილების კონცეპტები, საბრძანებო სტრიქონის ინტერპრეტატორი, არხსადენები პროცესათაშორისი კომუნიკაციის გასამარტივებლად, და სხვა მცირე დამხმარე პროგრამები. 1970 წელს, ბრაიან კერნიგენმა შესათავაზა სახელი „Unix“, „Multics“-ის სახელის კალამბურის სახით. Unix-ზე საწყისი მუშაობის შემდეგ, ტომფსონმა გადაწყვიტა, რომ Unix-ს ესაჭიროებოდა სისტემური პროგრამირების ენა, რის შედეგადაც მან შეიმუშავა პროგრამირების B ენა, რომელიც რიჩის C-ის წინამორბედი იყო.
1960-იან წლებში ტომფსონმა დაიყო რეგულარულ გამოსახულებებზე მუშაობა. მან შეიმუშავა QED ტექსტური რედაქტორის CTSS ვერსია, რომელიც შეიცავდა ტექსტის საძებნელად რეგულარულ გამოსახულებებს. QED-მა და ტომფსონის შემდგომაა რედაქტორმა ed-მა (Unix-ის სტანდარტული რედაქტორი) დიდი წვლილი შეიტანეს რეგულარული გამოსახულებების პოპულარიზებაში, და აქედან მოყოლებული რეგულარული გამოსახულებები გავცელებული გახდა Unix-ის ტექსტური დამუშავების პროგრამებში. თითქმის ყველა პროგრამა, რომელიც დღეისთვის რეგულარულ გამოსახულებებთან მუშაობს, იყენებს ტომფსონის გარკვეულ ჩანაწერს. მან ასევე შეიმუშავა ტომფსონის კონსტრუქციული ალგორითმი, რომლითაც ხორციელდება რეგულარული გამოსახულებების გარდაქმნა არადეტერმინირებულ სასრულ მანქანად, გამოსახულების შეწყვილების ასაჩქარებლად.
1970-იან წლებში კენ ტომფსონი დენის რიჩისთან ერთად მუშაობდნენ ოპერაციულ სისტემა Unix-ზე; მათი გავლენა Research Unix-ზე იმდენად დიდი იყო, რომ დაგ მაკილროიმ მოგვიანებით დაწერა:
„რიჩის და ტომფსონის სახელები, თამამად შეიძლება ვივარაუდოთ, რომ დაკავშირებულია ყველაფერთან, რასთანაც რამე სხვა არ არის.“ |
2011 წელს, ტომფსონმა განაცხადა, რომ Unix-ის პირველი ვერსია დაწერილ იქნა მის მიერ, ხოლო რიჩი დაეხმარა სისტემის ადვოკატირებასა და განვითარებაში:
„Unix-ის პირველი ორი, თუ სამი ვერსია მე, მარტომ გავაკეთე. დენისი კი მახარობელი გახდა. შემდეგ გადაწერილ იქნა მაღალი დონის ენაზე, რომელსაც შემდეგში ეწოდა С ენა. იგი ძირითადად მუშაობდა ენასა და შეტანა/გამოტანის სისტემაზე, მე კი ოპერაციული სისტემის დანარჩენზე. ეს იყო PDP-11-ისთვის, ბედნიერი შემთხვევითობის წყალობით, რადგან ეს იყო კომპიუტერი, რომელმაც აკადემიური საზოგადოება დაიპყრო“ |
ტომფსონის Unix-ის შემუშავებისას მიღებული გამოცდილება საკვანძო გამოდგა პროგრამირების C ენის შემუშავებისთვისაც. ტომფსონმა მოგვიანებით C ენის შესახებ განაცხადა:
„ის გაჩნდა სისტემის გადაწერის პროცესში, და ამგვარად, სისტემის დასაწერად საუკეთესოდ გადაიქცა“ |
1975 წელს ტომფსონმა Bell Labs-ში შემოქმედებითი შვებულება აიღო და თავის ალმა-მატერში, კალიფორნიის ბერკლის უნივერსიტეტში გაემგზავრა. იქ ტომფსონი ეხმარებოდა PDP-11/70-ზე Unix Version 6-ის დაყენება-გამართვაში. შემდგომში, ბერკლიში Unix-ი განავითარეს როგორც თავიანთი სისტემა და ცნობილი გახდა სახელით Berkeley Software Distribution (BSD).
1971 წელს კენ ტოფსონმა დაწერა ჭადრაკის მოთამაშე პროგრამა „ჭადრაკი“ Unix-ის პირველი ვერსიისთვის. შემდეგ, ჯოზეფ კონდონთან ერთად, ტოფსონმა შექმნა აპარატურულად ხელშეწყობილი პროგრამა Belle, რომელმაც მსოფლიო ჩემპიონობა მოიპოვა საჭადარაკო კომპიუტერებში. ასევე, მან დაწერა საჭადრაკო დაბოლოებების (ენდშპილი) სრული აღრიცხვის პროგრამები, რომლებიც ცნობილია თამაშის დაბოლოებათა ცხრილების სახელით, ყველა 4, 5 და 6 ნაწილიანი ენდშპილისათვის, რომელიც მოთამაშე მანქანას საშალებას აძლევს შეასრულოს „იდეალური“ სვლები, მას შემდეგ რაც მიღწეული იქნება პროგრამაში შენახული პოზიცია. მოგვიანებით, ტოფსონმა, საჭადრაკო დაბოლოებათა ექსპერტის, ჯონ როიკროფტის დახმარებით თავისი პირველი საენდშპილო შედეგები გაავრცელა CD-ROM-ით. 2001 წელს, კომპიუტერულ თამაშობათა აკადემიურმა ჟურნალმა ICGA Journal, თითქმის სრული გამოცემა მიუძღვნა კენ ტოფსონის სხვადასხვა სახის წვლილს კომპიუტერული ჭადრაკში.
1980-იანები
XX საუკუნის 80-იან წლებში ტომფსონი და დენის რიჩი განაგრძობდნენ Research Unix-ზე მუშაობას, რომელმაც მე-8, მე-9 და მე-10 გამოცემაში შთანთქა BSD-ის კოდური ბაზაც. 80-იანების შუა წლებში, Bell Labs-ში მუშაობა დაიწყო ახალ ოპერაციულ სისტემაზე, რომელსაც უნდა ჩაენაცვლებინა Unix-ის სისტემა. ტომფსონმა მნიშვნელოვანი წვლილი შეიტანა Bell Labs-ის ახალი ოპერაციული სისტემის, Plan 9-ის პროექტის შემუშავებასა და მის დანერგვაში. Plan 9 იზიარებდა Unix-ის ძირითადი პრინციპებს სრულად, თუმცა, მათ უფრო ფართოდ იყენებდა ყველა ძირითადი სისტემური საშუალებისთვის. ზოგიერთი პროგრამა, რომელიც Research Unix-ის გვიანი ვერსიების ნაწილი იყო, მაგალითად mk და rc, ჩართულ იქნა ასევე Plan 9-ში.
ტომფსონი მონაწილეობდა ბიარნე სტროუსტრუპის შემუშავებული C++ პროგრამირების ენის ადრეული ვერსიების ცდაში. ამ მიზნით, ტომფსონი C++ ენაზე წერდა თავის პროგრამებს, თუმცა, მოგვიანებით უარი განაცხადა ტესტირებაზე, რადგან ხშირი იყო ენის ვერსიებს შორის შეუთავსებლობა. 2009 წელს ტოფსონმა უარყოფითი დამოკიდებულება გამოხატა C++ ენის მიმართ და განაცხადა, რომ „იგი ბევრ რამეს ნახევრად კარგად აკეთებს და უბრალოდ არის ურთიერთგამომრიცხავი იდეების ნაგვის გროვა“.
1990-იანები
1992 წელს ტომფსონმა, რობ პაიკთან ერთად, შეიმუშავა კოდირების სქემა UTF-8, რომელიც მსოფლიო აბლაბუდაში სიმბოლოების კოდირების დომინატურ სისტემად იქცა. 2019 წლისთვის ვებ-გვერდების 90% იყენებს UTF-8 კოდირებას.
1990-იანებში მუშაობა დაიწყო ოპერაციულ სისტემა Inferno-ზე, კიდევ ერთ კვლევით ოპერაციული სისტემაზე, რომელიც ეფუძნებოდა ვირტუალურ მანქანაზე. კენ ტომფსონი და დენის რიჩი Inferno-ს პროექტშიც შეჰქონდათ წვლილი, Bell Labs-ის სხვა თანამშრომლებთან ერთად.
2000-იანები
2000 წლის ბოლოს, ტომფსონი გათავისუფლდა Bell Labs-იდან და მუშაობა განაგრძო Entrisphere Inc-ში მეცნიერმუშაკის თანამდებობაზე, სადაც 2006 წლამდე იმყოფებოდა. აჟამად ტომფსონი მუშაობს კომპანია Google-ში დამსახურებელი ინჟინრის თანამდებობაზე. ბოლო დროინდელი მისი მუშაობა მოიცავდა პროგრამირების ენა Go-ს პროექტირებას. Go-ს ორიგინალურ ავტორებთან ერთად საკუთარი თავის მოხსენიებით, ტომფსონი ამბობს:
„როდესაც სამმა ჩვენგანმა [კენ ტომფსონი, რობ პაიკი, რობერტ გრიზმერი] დავიწყეთ, ეს წმინდა წლის კვლევა იყო. სამი ჩვენგანი შეიკრიბა და გადავწყვიტეთ, რომ გვძულდა C++. [იცინის]... [Go-ს რომ დავბრუნდეთ,] ჩვენ დავიწყეთ იმ აზრით, რომ ჩვენ სამივეს გვჭირდება ენის თითოეულ ფუნქციაზე ლაპარაკი, ამიტომ, ენაში უცხო ნაგავი არავითარი მიზეზით არ ჩადებულა“ |
2009 წლის ინტერვიუს მიხედვით, ამჟამად ტომფსონი იყენებს Linux-ზე დაფუძნებულ ოპერაციულ სისტემა