Lisp წყევლა

Original web-page:  http://www.winestockwebdesign.com/Essays/Lisp_Curse.html

რუდოლფ ვინტსტოკი/Rudolf Winestock

განახლება 6 ოქტომბერს, 2017 შენიშვნა: გთხოვთ შეწყვიტოს წარდგენის ეს ჰაკერი ახალი ამბები! შეხედეთ ჰაკერი ახალი ამბები ძიების შედეგები ამ ესეში. შეამოწმეთ შენიშვნა პირველი შესვლის: კარგით, ყველას! მოდით სცემეს მკვდარი ცხენი კიდევ ერთხელ! თუ გსურთ მიიღოთ ჰაკერი ახალი ამბები ელექტრონული მჯერა, მაშინ ცდილობენ წარდგენის მარადიული მენიუ, ნაცვლად.

ეს სტატია არის კიდევ ერთი მცდელობა შერიგება ძალა Lisp პროგრამირების ენა უუნარობა Lisp თანამეგობრობას რეპროდუცირება მათი წინასწარი ხელოვნური ინტელექტი ზამთრის მიღწევები. ეჭვგარეშეა, რომ Lisp-ის იდეების გავლენის წყაროც კი იყო, უკან დაბრუნების დროსაც კი. ეს ფაქტი, პლუს სხვა Lisp მანქანა არქიტექტურის ბრწყინვალება და ამჟამინდელი Lisp რენესანსი უდაოდ, ათწლეულის მანძილზე უდაბნოში ცხადყოფს, რომ ლისპ პარტიზანებს უნდა ჰქონდეთ გარკვეული გამართლება მათი თავდაჯერებულობა. მიუხედავად ამისა, მათ ვერ შეძლეს თარგმანის ლიზფის გადაყვანა გადაადგილების გადაბარებაში. ამ სტატიაში მე ვამბობ, რომ ლისპიის ექსპრესიული ძალა რეალურად არის იმპულსის ნაკლებობა.

ლისის ძალაუფლება მისი ყველაზე ცუდი მტერია.

აქ არის აზროვნების ექსპერიმენტი იმის დასამტკიცებლად, რომ: მიიღეთ ორი პროგრამირების ენები, რომელთაგან არც ობიექტი ორიენტირებული. თქვენი მისია, თუ თქვენ მიიღებთ მას, არის ის, რომ მათ ობიექტურად ორიენტირება, შენახვა მათ უკან, თავსებადი ორიგინალური ენების, ფორმა ზოგიერთი პირას შემთხვევაში. ამ აზროვნების ექსპერიმენტში რაიმე პროგრამირების ენების ჩასმა აჩვენებს, რომ ეს უფრო ადვილია, ვიდრე ზოგიერთ ენაზე. სწორედ აზრის ექსპერიმენტის წერტილია. აქ არის ტრივიალური მაგალითი: ინტერკალი და პასკალი.

ახლა ეს აზროვნების ექსპერიმენტი საინტერესოა: წარმოიდგინეთ ობიექტის ორიენტაციის დამატება C და სქემა პროგრამირების ენაზე. სქემა ობიექტზე ორიენტირებული არის მეორე საშინაო დავალება. მეორეს მხრივ, C -ზე ობიექტის ორიენტაციას დასჭირდება ბჟარ სრუუსფრუპი- ის პროგრამირების დარტყმები.

შედეგების ამ განსხვავების საჭირო ნიჭი და ძალისხმევა გამოიწვიოს Lisp წყევლა:

Lisp იმდენად ძლიერია, რომ პრობლემები, რომლებიც ტექნიკური პროგრამების სხვა პროგრამირების ენებზეა, არის სოციალური საკითხები Lisp.


განვიხილოთ სქემა, კიდევ ერთხელ. მას შემდეგ, რაც მიღების სქემა ობიექტზე ორიენტირებული იმდენად მარტივია, ბევრი სქემა ჰაკერების გავაკეთეთ. უფრო მეტიც, ბევრი ინდივიდუალურისქემის ჰაკერების გავაკეთეთ. 1990 წელს, ამ გამოიწვია ჭეშმარიტი საწყობის ინვენტარიზაციის სია ობიექტზე ორიენტირებული პაკეტების ენაზე. პარადოქსი არჩევანი, მარტო, გარანტირებულია, რომ არც ერთი მათგანი გახდება სტანდარტი. ახლა, რომ ზოგიერთი სქემა შესრულება აქვს საკუთარი ობიექტი ორიენტაციის ობიექტების, ეს ასე არ არის ცუდი. მიუხედავად ამისა, ის ფაქტი, რომ ეს პაკეტი იყო მუშაობის მარტოხელა პირებს გამოიწვია პრობლემები, რომელიც ოლინ კანკალი წერდა დოკუმენტირების სქემა Shell, scsh.

ინდივიდუალური ჰაკერების მიერ დაწერილი პროგრამები ტენდენციურად იცვლებიან ნულიდან- ეს პროგრამები გადაჭრის პრობლემას, რომელიც ჰაკერს, თავისთავად, აუცილებლად უტარდება პრობლემის დაკავშირებულ ნაწილებს, რაც საშუალებას მისცემს პროგრამა უფრო სასარგებლო იყოს სხვებისთვის. უფრო მეტიც, პროგრამა დარწმუნებულია, რომ ამ ჰოკეის საკუთარი კონფიგურაციისთვის მუშაობა, მაგრამ სხვა სქემებზე სხვა სქემების შესრულებაზე ან სქემის განხორციელებაზე არ შეიძლება იყოს პორტატული. დოკუმენტაცია შეიძლება აკლია. ძირითადად, ჰაკერის მიერ თავისუფალი დროის განმავლობაში გაკეთებულ პროექტად იქცევა, პროგრამა ვალდებულია განიცადოს ჰაკერზე რეალურ ცხოვრებაში მოვალეობები. როგორც მე მქონდა კანკალი აღნიშნავს, ეს იმას ნიშნავს, რომ ეს ერთმანდატიან ბენდი პროექტები პრობლემის ოთხმოცდაათან პრობლემას გადაჭარბებენ.

დოქტორ მარკ რიკშა ესსე, ბიპოლარული Lisp პროგრამისტი, აქვს აღწერილობას ამ მოვლენას. იგი წერს, ამ მარტოხელა მგელი Lisp ჰაკერების და მათი

…შეუძლებელია დასრულება რამ სწორად. ფრაზა “ჩააგდოს დიზაინი” აბსოლუტურად გააკეთა BBM და მოდის Lisp თანამეგობრობას. Lisp საშუალებას გაძლევთ უბრალოდ ჩააგდოს რამ off ისე ადვილად, და ეს მარტივი მიიღოს ეს მიანიჭა. ეს 10 წლის წინ ვნახე, როდესაც ეძებდა GUI-ს ჩემს ძიებას. პრობლემა არ არის, იყო 9 სხვადასხვა შეთავაზება. უბედურება ის იყო, რომ არც ერთი 9 იყო სათანადოდ დოკუმენტირებული და არც შეცდომა იყო. ძირითადად, თითოეულმა ადამიანმა საკუთარი გამოსავალი დაამზადა და იგი მუშაობდა ისე, რომ კარგად იყო. ეს არის BBM დამოკიდებულება; ეს ჩემთვის მუშაობს და მე მესმის ეს. ეს ასევე არის პროდუქტის არ სჭირდება ან სურვილს ვინმეს დახმარების რაღაც.


კიდევ ერთხელ, განიხილეთ C პროგრამირების ენა ამ აზროვნების ექსპერიმენტში. C ობიექტზე ორიენტირებული სირთულის გამო, პრობლემის მხოლოდ ორი სერიოზული მცდელობა გააკეთა რაიმე ტრანზიცია: C++ და Objective-C. Objective-C ყველაზე პოპულარულია მაიკროსოფტისთვის, ხოლო C++ წესები ყველგან. ეს იმას ნიშნავს, რომ მოცემული პლატფორმისთვის, რომელი ობიექტური ორიენტირებული გამოყენების C-ს გამოყენების საკითხი უკვე საბოლოოდ უპასუხა. ეს იმას ნიშნავს, რომ ობიექტზე ორიენტირებული ობიექტები ამ ენებზე იყო დოკუმენტირებული, რომ ინტეგრირებული გარემოზე მათთვის ცნობილია, რომ კოდი ბიბლიოთეკები მათთან თავსებადია და ა.შ.

დოქტორმა მარკ ტარვერის ესსე ბიპოლარ ლისპერზე წერდა:

ახლა განსხვავებით, C/C++ მიდგომა საკმაოდ განსხვავებულია. ეს იმდენად მძიმეა, რომ არაფერი გააკეთოს უჯრედები და წებოს, რომ არაფერი მნიშვნელოვანია თქვენ იქნება რეალური მიღწევაა. გსურთ დოკუმენტაცია. ასევე თქვენ ვალდებულნი იყვნენ დახმარება სჭირდებოდეს ნებისმიერი C პროექტის მნიშვნელოვან ზომას; ასე რომ, თქვენ ვალდებული ხართ იყოს სოციალური და სხვებთან ერთად მუშაობა. თქვენ უნდა, უბრალოდ მისაღებად სადმე.

და ყველა, რაც თვალსაზრისით დამსაქმებელი, არის მიმზიდველი. ათი ადამიანი, რომელიც კომუნიკაციას, დოკუმენტებს სწორად და ერთობლივად მუშაობს, სასურველია ერთი BBM გატეხვა Lisp-ს, რომელიც შეიძლება შეიცვალოს სხვა BBM- ით (თუ შეგიძლიათ იპოვოთ ერთი) არა ნაკლებად სავარაუდოა, რომ ის, გარკვეულ დროს, გადატვირთვა.

ამიტომ, ვინც უკვე იცის C არ ვკითხულობთ: “რა ობიექტურად უნდა ვისწავლოო?” ნაცვლად ამისა, ისინი იყენებენ C++ ან Objective-C-ს, რაც დამოკიდებულია იმაზე, თუ რა იყენებენ მათ კოლეგებს, შემდეგ გადადიან “როგორ გამოვიყენო ობიექტზე ორიენტირებული ფუნქცია X? “პასუხი:” წადით და იპოვე “.


რეალური ჰაკერები, რა თქმა უნდა, დიდი ხანია ცნობილია, რომ ობიექტზე ორიენტირებული პროგრამირების არ არის პანაცეა, რომ მისი პარტიზანტები აცხადებდნენ. რეალური ჰაკერები გადავიდნენ უფრო თანამედროვე კონცეფციებზე, როგორიცაა უცვლელი მონაცემების სტრუქტურები, ტიპის დამონტაჟება, ზარმაცი შეფასება, მონები, ისრები, ნიმუში დამთხვევა, შეზღუდული დაფუძნებული პროგრამირება და ა.შ. უძრავი ჰაკერებმა ასევე იციან, რომ C და C++ არ შეესაბამება უმეტეს პროგრამებს, რომლებიც არ უნდა მოითხოვონ თვითნებური გამარტივებას. მიუხედავად ამისა, Lisp წყევლა კვლავ ფლობს.

ზოგიერთი აჩვენებს ზედმეტი სიამაყე თავი ან ერთი მიღწევები Lisp მოყვარულებს არ გამოკითხულთა მიმდინარე მოსავლის აკადემიური ენაზე (ჰასკეელი, ოქტოფუსი და ა.შ.) და ი მათ სურვილს და განაცხადა, რომ ნებისმიერი თვისება მათი ან უკვე იმყოფება Lisp ან შეიძლება ადვილად განხორციელდა – და გაუმჯობესდა საფუძველზე – ერთად Lisp მაკროსი. ისინი ალბათ უფლება.

სამწუხაროა Lisp ჰაკერები.


დოქტორ მარკ რიკშა – ორჯერ სიტყვებზე დაყრდნობით, ზემოთ, – წერს დიალექტი Lisp მოუწოდა . ეს ნაკლებია, ვიდრე ათი ათასი ხაზები მაკროსი გაშვებული ზედა Clisp. იგი ახორციელებს ყველაზე უნიკალური თვისებები ჰასკეელი და ოქტოფუსი. გარკვეული თვალსაზრისით, ქ გადააჭარბებს. მაგალითად, ქ ტიპის შეყვანა ძრავის ტილო ბეჭედი სრულიმსოფლიოში, სადაც გუნდები ნიჭიერი მეცნიერები საჭირო დაწერა ჰასკეელი, ერთი კაცი, დოქტორი რიკშა დაწერა ქ ყველა მისი მარტოხელა.

წავიკითხე, რომ მე, კიდევ ერთხელ, და ექსტრაპოლირება.


მკითხველისთვის სწავლება: წარმოიდგინეთ, რომ ძლიერი დაპირისპირება ვითარდება ჰასკელისა და საერთო Lisp-ს შორის. რა მოხდება?

პასუხი: Lisp წყევლა ჩათვლით. ყოველ მეორე ან მესამე სერიოზული Lisp ჰაკერი გააფართოვოს საკუთარი განხორციელება ზარმაცი შეფასება, ფუნქციური სისუფთავის, ისრებით, ნიმუში შესატყვისი, ტიპის განსაზღვრა და დანარჩენი. ამ პროექტების უმრავლესობა იქნება მარტოხელა მგელი ოპერაციები. ამდენად, მათ ექნებათ 80% თვისებები, რომელთა უმრავლესობას სჭირდება (თითოეულ შემთხვევაში 80%). ისინი ცუდი დოკუმენტირებული იქნება. ისინი არ იქნება პორტაბელური მთელს ლიზსში. ზოგი გამოჩნდება დიდ დაპირებაზე, ვიდრე მიტოვებულია, ხოლო პროექტის განმახორციელებელი იხდის გადასახადებს. რამდენიმე მათგანი ჰასკელის გასწვრივ ან ამ განზომილებას სცილდება (ერთხელ, თითოეულ შემთხვევაში განსხვავებული), მაგრამ მათი მიღება ხელს უშლის ფლეიმის ომებს comp.lang.lisp Usenet ჯგუფში.

ენდმა: შემთხვევითი ძველ დროში Lisp ჰაკერების კოლექცია მაკროსი დაამატოთ მდე დაუსაბუთებელი, შეუძლებელია, შეცდომა მიჯაჭვული განხორციელება 80% ჰასკეელი, რადგან Lisp არის უფრო ძლიერი ვიდრე ჰასკეელი.


ეს ამბავი მორალურია საშუალო და მესამეული მოვლენები. ტექნოლოგია არა მარტო გავლენას ახდენს იმაზე, თუ რა შეგვიძლია გავაკეთოთ ტექნოლოგიურ საკითხებთან მიმართებაში, ასევე გავლენას ახდენს ჩვენი სოციალური ქცევა. ამ სოციალურ ქცევას შეუძლია ხელი შეეწყოს და განიხილოს ორიგინალური ტექნოლოგიური საკითხები განსახილველად.ტექნოლოგია არა მარტო გავლენას ახდენს იმაზე, თუ რა შეგვიძლია გავაკეთოთ ტექნოლოგიურ საკითხებთან მიმართებაში, ასევე გავლენას ახდენს ჩვენი სოციალური ქცევა. ამ სოციალურ ქცევას შეუძლია ხელი შეეწყოს და განიხილოს ორიგინალური ტექნოლოგიური საკითხები განსახილველად.

ლისი არის ამ გაკვეთილის მტკივნეულად დახვეწილი მაგალითი. Lisp იმდენად ძლიერია, რომ მას ინდივიდუალური დამოუკიდებლობა ახდენს სისხლიანი მოაზროვნის თვალსაზრისით. ეს დამოუკიდებლობა სასიამოვნო ინოვაციებს აწარმოებდა, როგორც Lisp მანქანების დღეებში. ეს იგივე დამოუკიდებლობა ხელს უშლის ძალისხმევას ძველი სისტემის სისტემების “ლისპის ყველა გზა” აღსადგენად. არ “Lisp ოპერაციული სისტემა” პროექტმა შეკრიბა კრიტიკული მასა სიმბოლიკის და LMI-ის დაშლის შემდეგ.

ამ საშუალო და მესამეული ეფექტის ერთ-ერთი შედეგი ის არის, რომ მაშინაც კი, თუ Lisp არის ყველაზე ექსპრესიული ენა, ისეთი, რომ თეორიულად შეუძლებელია უფრო გამომხატველი ენა, Lisp-ს კიდევ აქვს სხვა პროგრამირების ენების შესწავლა. მცირე განხილვა ბიჭები ასწავლიდა ყველას, მათ შორის – Lisp ჰაკერების – რამ ან ორი შესახებ ობიექტზე ორიენტირებული პროგრამირების. სუფთა პროგრამირების ენა და მოცარტის/ოზ კომბოსტო შეიძლება ჰქონდეს რამდენიმე სიურპრიზი საკუთარი.


Lisp წყევლა არ ეწინააღმდეგება მაქსიმაა სტანისლავ დაცოვსკიდამსაქმებელთა ბევრად ურჩევნია, რომ მუშები იყოს ორმხრივად ურთიერთშემცვლელნი, ვიდრე მაქსიმალურად ნაყოფიერი. ძალიან ჭეშმარიტი. დიდი სირთულე ვინმემ წაბლი ქრთამის აღება მმართველი კლასი. თუმცა, ბოლო ხაზი თავის ესეში პრობლემატურია. სახელდობრ:

რაც შეეხება “თავისუფალი პროგრამების” სამყაროს, იგი მჭიდროდ ეწინააღმდეგება სამრეწველო დოგმატებს რიტორიკაში, მაგრამ არა პრაქტიკულად. კუბის ფერმაში ვერც ერთი კონცეფცია არ შეცვლილა მოყვარულთა შორის ნამდვილ მახეში.

სქოლიოში, იგი გთავაზობთ Linux, როგორც მაგალითად ამ სურვილის განახორციელოს სხვადასხვა იდეები. რა თქმა უნდა, მას აქვს წერტილი, როდესაც საქმე ოპერაციული სისტემები (ზედოთ მდებარე კომენტარი, კერძოდ, აღმაშფოთებელია მომატებული). მას არ აქვს აზრი, როდესაც საქმე პროგრამირების ენები. Python და Ruby გავლენა იქონია Lisp. ბევრი გულშემატკივარი გამოხატოს პატივისცემა Lisp და ზოგიერთი მათი ინტერესი გაძლიერებული Lisp რენესანსის. ზოგიერთი სამართლიანობა, JavaScript უკვე უწოდა “სქემა C ტანსაცმელი” მიუხედავად იმისა, რომ წარმოშობილი იმ კუბი ფერმა ჯოჯოხეთი.

მიუხედავად ამისა, ამ გავლენის მიუხედავად, ორივე კორპორატიულ და ღია სამყაროში, Lisp კვლავ მხოლოდ დეველოპერის გონების წილია, რომელსაც თანამედროვე სკრიპტის ენების მოყვანა მოჰყვა. MBA-ს დახურული მოაზროვნე არ შეიძლება იყოს ერთადერთი ახსნა. Lisp წყევლა უფრო ახსნა ძალაა.


Lisp-სთვის ხელმისაწვდომი თავისუფალი გარემო, კიდევ უფრო გაამხნევებს ლისაბის წყევლას.

ეს უხერხულ აღვნიშნო ამ გარეთ, მაგრამ ეს უნდა გაკეთდეს. დაივიწყეთ Lisp მანქანა; ჩვენ კი არ აქვს განვითარების სისტემების, რომ ემთხვევა, რაც საშუალოდ მცირე განხილვა ჰაკერი იღებს მიანიჭა (“მე ყოველთვის გრძნობდა Lisp არის უმაღლესი ენის და მცირე განხილვა არის უმაღლესი გარემოში.” – რამონ ლეონი). იმ შემთხვევაში, თუ ისინი გადაიხადოს ათასობით დოლარი, Lisp ჰაკერების მაინც დავრჩებოდით ერთად ემაკები.

ჯეიმს გოსლინგი, ავტორი პირველი ემაკები რომ გაიქცა Unix, სწორად აღნიშნა რომ ემაკები არ ძირეულად შეიცვალა მეტი ოცი წლის განმავლობაში. ეს იმიტომ, რომ ემაკები კონსულტანტები კვლავ ფენა კოდი ზედა დიზაინი, რომელიც დასახლებული იყო უკან, როდესაც ემაკები იყო გრადის სტუდენტი პროექტის MIT ხელოვნური ინტელექტი ლაბორატორია, ანუ, როდესაც ემაკები განვითარების ჯერ კიდევ მიმდინარეობს არაპირდაპირ მიერ დაფინანსებული ეროვნული დავალიანება. სლაშდოტერი შეიძლება თქვას, რომ ემაკები უკვე საკმაოდ შეუძლია და შეუძლია გააკეთოს ყველაფერი, რომ ნებისმიერი სხვა განვითარება გარემოს შეუძლია გააკეთოს, მხოლოდ უკეთესი. ისინი, ვინც არ გამოიყენებაLisp მანქანები უთქვამს სხვაგვარად.

რატომ არ ლისპ ჰაკერებმა მცირე ადგილი დაიკავეს თავიანთ ადგილას? რატომ არ ქმნიან თავისუფალი განვითარების სისტემას, რომელიც იწვევს ლისპმ-ის დაკარგული გლოუსების გარკვევას, მაშინაც კი, თუ ისინი ვერ გაიმეორებენ სხვა LispM- ს?

მიზეზი, რის გამოც ეს არ ხდება Lisp წყევლა- ის გამო. დიდი რაოდენობით Lisp ჰაკერების უნდა ითანამშრომლონ ერთმანეთთან. შეხედეთ უფრო მჭიდროდ: დიდი ციფრები ადამიანები, რომლებიც გახდნენ Lisp ჰაკერები უნდა ითანამშრომლონ ერთმანეთთან. ისინი ერთმანეთთან უნდა ითანამშრომლონ იმ დიზაინზე, რომელიც თავიდანვე არ იყო მოცემული. და არ იქნებოდა რაიმე გარე დისციპლინა, როგორიც არის სარისკო კაპიტალისტური ან სხვა კორპორატიული სამაგისტრო, რომ შეინარჩუნოს მათ გზაზე.

ყოველ პროექტს უთანხმოება აქვს წევრების, უთანხმოებების, სტილისა და ფილოსოფიის კონფლიქტებს შორის. ამ სოციალურ პრობლემებს უპირისპირდებიან ის ფაქტი, რომ არ შეიძლება დიდი პროექტის განხორციელება სხვაგვარად. “ჩვენ ყველანი უნდა დავუკავშიროთ ერთმანეთს, ან ჩვენ ყველანი გათიშეთ ცალკე”. მაგრამ ლიფის გამოხატულება ამ კონტრშეტევების ძალას ბევრად სუსტებს; შეიძლება ყოველთვის დაიწყოს საკუთარი პროექტი. ამდენად, ინდივიდუალური ჰაკერების გადაწყვეტენ, რომ უბედურება არ ღირს. ამიტომ ისინი ან დატოვებენ პროექტს ან არ შეუერთდებიან პროექტს. ეს არის Lisp წყევლა.

შეიძლება ეკისრებაც კი შეეძლო რაღაცის მიღება საკმარისად კარგი. ამდენად, Lisp წყევლა არის მოკავშირე უარესდება არის უკეთესი.


Lisp-ის ექსპრესიული ძალა ნაკლოვანებები აქვს. არ არსებობს ისეთი რამ, როგორც თავისუფალი სადილი.

ეს სტატია გააკეთა გვერდზე მეცამეტე საკითხი ჰაკერი თვეში.


© Rudolf Winestock, All Rights Reserved