პაითონი (პროგრამირების ენა)
პაითონი წარმოადგენს მაღალი დონის პროგრამირების დინამიურ ენას შესაძლებლობათა ფართო სპექტრით, რომლის დიზაინი ყურადღებას ამახვილებს კოდის ადვილად წაკითხვადობაზე.პაითონის სტანდარტული ბიბლიოთეკა დიდია და ყოვლელმხრივი. ის იყენებს ძალზე იშვიათ გამომყოფებს ბლოკებისთვის – აბზაცებს. პაითონი მულტიპარადიგმული ენაა და მოიცავს როგორც პროცედურული, იმპერატიული, ისე ფუნქციონალური პროგრამირების ელემენტებს. მას ხშირად ადარებენ ისეთ ენებს, როგორებიცაა Tcl, Perl, Ruby, Scheme და Java. პაითონის მახასიათებელთა შორის აღსანიშნავია: უაღრესად ცხადი, გასაგები და კითხვადი სინტაქსი ინტროსპექცია ობიექტ ორიენტირებული მიდგომის მულტიპარადიგმული დიზაინი სრული მოდულარულობა მონაცემთა უაღრესად მაღალი დონის ტიპირება მეტაპროგრამირება ფართო სტანდარტული ბიბლიოთეკა პაითონის ინტერპრეტატორი წარმოადგენს ვირტუალურ მანქანას, ამდენად, ეს ენა მულტიპლატფორმულია და პითონზე შექმნილი პროგრამების გაშვება შესაძლებელია პრაქტიკულად ყველა პლატფორმაზე. როდესაც კონსოლ(ე)ში ვბეჭდავთ python somescript.py, ინტერპრეტატორი ასრულებს შემდეგ ოპერაციებს: ამოწმებს, არსებობს თუ არა somescript.pyc (ბაიტ-კომპილირებული კოდი) ან somescript.pyo (ოპტიმიზირებული კოდი) იმავე დირექტორიაში თუ ბაიტ-კომპილირებული კოდი არ არსებობს, ინტერპრეტატორი დინამიურად ქმნის მას და უშვებს პროგრამას თუ ბაიტ-კომპილირებული კოდი არსებობს, ინტერპრეტატორი ადარებს წყაროსა (somescript.py) და ამ ბაიტ-კოდის (somescript.pyc) მოდიფიკაციის დროს თუ წყარო უფრო ახალია, ე. ი. მოხდა მისი რედაქტირება კომპილაციის შემდეგ, ინტერპრეტატორი შლის არსებულ ბაიტ-კოდს და თავიდან ქმნის მას ინტერპრეტატორის ვირტუალური მანქანა ასრულებს ბაიტ-კოდს პაითონის პროგრამების სისწრაფე აბსოლუტურად შესადარია ჯავაზე შექმნილი პროგრამების სისწრაფისა. ისევე, როგორც ჯავას, პითონს გააჩნია ე. წ. JIT-კომპილატორები. ამათგან, ყველაზე ხშირად ციტირდება psyco, JIT-კომპილატორი ინტელ-თავსებადი პროცესორებისათვის. კიდევ ერთი ფაქტორი, რაც ხელს უწყობს პითონზე დაწერილი პროგრამების წარმადობას, არის ცხადი და გასაგები Python/C API. მეტიც, პაითონის სტანდარტული ბიბლიოთეკა მოიცავს ctypes, დაარქივებული 2006-11-09 საიტზე Wayback Machine. რომლის მეშვეობითაც შესაძლებელია ნებისმიერი ფუნქციის გამოძახება C-ზე შექმნილი dll/so-დან. მეხსიერების მართვა წარმოებს ავტომატურად, ე. წ. garbage collector-ის მეშვეობით, თუმცა, პაითონის კლასებს აქვთ დესტრუქტორი, რომლის გამოძახება შესაძლებელია ნებისმიერ დროს. პროგრამირების სხვა, თანამედროვე ენების მსგავსად, შეცდომებზე რეაგირება ხდება პროგრამულად try-except-else-finally ბლოკის გამოყენებით. ობიექტების გამოძახებადობა წარმოადგენს პაითონის ერთ-ერთ ძირითად კონცეფციას. პაითონის callable object მსგავსია ფუნქტორისა C++-ში. განსხვავება კი იმაში მდგომარეობს, რომ ნებისმიერი ფუნქცია, თუნდაც იგი მოიცემოდეს კლასის ფარგლებს გარეთ, მოდულში, წარმოადგენს არა მარტივ პროცედურას, არამედ სწორედ გამოძახებად ობიექტს. როგორც ყველა სხვა ობიექტს, მათაც გააჩნიათ საკუთარი ატრიბუტები, რომელთა გამოყენება ხშირადაა მიზანშეწონილი. მაგალითად, 'func_closure', 'func_code', 'func_defaults', 'func_dict', 'func_doc', 'func_globals', 'func_name'… სწორედ ეს განაპირობებს დინამიური ინტროსპექციის (ჯავაში — რეფლქსიის) უნარს და სიმარტივეს. ცხადია, პითონში შესაძლებელია ოპერატორების ხელახალი განსაზღვრა (operator overloading). აღსანიშნავია ისიც, რომ პაითონის მოდული ჩვეულებრივი ობიექტია, რომლის შექმნაც შესაძლებელია დინამიურად, ნებისმიერ დროს. პითონს გააჩნია როგორც სტატიკური, ისე კლასის მეთოდები. ამდენად, როდესაც მოიხსენიება ფუნქციები პითონში, ყოველთვის იგულისხმება გამოძახებადი ობიექტები. ეს უკანასკნელნი, შეიძლება, იყვნენ, ასევე, ე. წ. co-routine დაარქივებული 2006-11-09 საიტზე Wayback Machine. , რაც იმას ნიშნავს, რომ მათი გამოყენება შესაძლებელია გენერატორების სახით. ვებ-პროგრამირება დიდი ხანია, წარმოადგენს პაითონის გამოყენების ერთ-ერთ სფეროს, რომლის ნიმუშია, მაგ. google™. პაითონის მიერ უკანასკნელ ხანებში მიღწეული წარმატებები დაკავშირებულია ე. წ. Python Web Server Gateway Interface (wsgi) მიღებასთან. განსაკუთრებით მაღალი წარმადობის კარკასებს წარმოადგენენ Z დაარქივებული 2006-11-08 საიტზე Wayback Machine. Django TurboGears თითოეულ მათგანს გააჩნია უპირატესი გამოყენების საკუთარი სფერო, ამასთან, ყოველი მათგანი wsgi-თავსებადია, ამ