В моя предишен пост, „Заплаха ли е изкуственият интелект?“,споделих какво има да каже един от бащите на изкуствения интелект, проф. Сусман, за дисциплината. Част 2 от времето ми в Clojure/SYNC видях как научавам повече за приноса на безплатен софтуер и защо вие също трябва да започнете да допринасяте за него!

Моят втори най-важен извод от Clojure/SYNC не е разговор. Е, това всъщност е извънчестотен разговор, дискусия, включваща д-р Уил Е. Бърд (Барлиман, miniKanren, …), Дейвид Нолен (ClojureScript, core.logic, …) и себе си.

Напомнях на Will за последната ни дискусия на Clojure/Conj 2016, където обмислях възможността за пренасяне на Barliman (неговия спиращ дъха софтуер за синтез на програми) в облака, за да се подобри неговата производителност и наличност. По онова време той беше ентусиазиран, но тъй като не бях сигурен, че ще мога да намеря време, умения и работна ръка, се замислих два пъти, преди да се върна, и не го направих.

Но този път имах желание да задълбая малко по-дълбоко в темата, защото два факта ме направиха по-уверен: ръководството на PALO IT обмисля активно участие във въздействащи проекти с отворен код и потенциалът на програмния синтез привлече вниманието им (аз ще давам имена само след няколко бири). И така, започвам да питам Уил за технически подробности и собствените му оценки за такова начинание. „Не се страхувайте, казва той, Barliman е само около 800 реда код; e-ve-vy-thing, който пиша, е просто, не мога да направя друго”.

„Добре, но на какъв език са написани тези няколко реда?“ — „UI е в Swing, евристиката е в miniKanren; но чакайте, ние сме на път да пренесем всичко в Clojure с Дейвид (ето го Дейвид Нолен…)“. Има смисъл: core.logic е Clojure порт на miniKanren, който сам по себе си е написан на Scheme, който е Lisp точно като Clojure! И ето ги, обсъждайки няколкото трудности, пред които са изправени... „Звучи доста готино, момчета, колко далеч мислите, че сте от решаването на тези проблеми?“ — „Хм, само няколко дни… като седмица, която си заслужава упорита работа, може би. Разбира се, човек трябва да разбира логическото програмиране и някои ключови разлики между Scheme и Clojure евристики, но ние можем да помогнем с това.

Честно казано, не вярвам на техните оценки. Изобщо. И двамата са обикновени гении, така че нека се приспособим към 20 за 1 за реалистичен буфер (да, Дейвид е особено продуктивен). Това ще направи около сто дни. Ако можехме да позволим на 3 страстни разработчици да работят 30 и няколко дни по темата, щяхме да можем да демонстрираме програмен синтез на JVM с помощта на Clojure до края на годината. Достоен Atom плъгин (в ClojureScript, можете да се обзаложите!) не би струвал и половината от това.

Представете си: трябва да разберете как да започнете да пишете сложна функция. Дайте няколко тестови двойки входове-изходи, върнете кода на схемата, който преминава! Можете да редактирате кода за по-добра (по-четима) реализация или да подскажете системата, така че да е по-бърза. Ако грешите, не вашите тестове са се провалили, а вашето предложение. И ще получите подсказки, които ви казват къде и защо няма смисъл.

Амбицията не е да се генерират цели приложения, а да се предостави много по-ценна и интерактивна помощ на разработчика, който не е виждал много подобрения в своята базирана на Intellisense IDE от години. Вече се предвиждат подобрения за включване на AI и SMT решаващи устройства, за да се използва концепцията за творчески диалог между програмиста и разработваната програма. Добавете горещото презареждане на кода на Clojure към историята и можете да предвидите забавлението от програмирането, което тепърва предстои...

През 2016 г. бях свидетел как Барлиман решава някои доста странни неща, на живо, разбира се в експертни ръце. Но не е нужно да вярвате на думата ми, разгледайте Barliman днес: https://github.com/webyrd/Barliman. Описанието на репото: „Прототип на интелигентен текстов редактор“ е в списъка ми с топ 5 на подценяванията, до „Ню Орлиънс е забавен“.

Шефе, какво ще кажете за въздействащ принос на безплатен софтуер?

История на приноса на безплатен софтуер.

Тъй като и двата горни раздела завършват с препратка към свободния софтуер, сега ще представя историята на Елана Хашман, която тя дойде да ни разкаже в Clojure/SYNC в оживен, забавен разговор, който със сигурност ще насърчи много разработчици в публиката да започне да допринася за OSS (или да допринася повече).

Debian е дистрибуция на GNU/Linux, стояща като източник на много други, като Ubuntu и Knoppix. Една от многото причини, поради които толкова много други „дистрибуции“ избраха да се разделят от Debian, е гаранцията, предлагана от управлението на неговата система за пакетиране: „Програмата трябва да включва изходен код и трябва да позволява разпространение в изходния код, както и компилиран форма.” („https://www.debian.org/social_contract”). Бъдете сигурни, че двоичният файл, който ще изпълнявате на вашата система, е резултат от изграждането на източниците, които идват с него (освен ако доброволно не се включите за софтуерни пакети, които не отговарят на DFSG, намиращ се в „contrib“ и „non- безплатни“ репо сделки). И това очевидно важи и за всички зависимости на „програмата“. Това означава, че някой някъде „подпалва косата си“, за да проектира DFSG съвместима и възпроизводима конструкция. Късмет!

Елана обяснява, в ръководство стъпка по стъпка, как е преминала от нула до „apt-get install leiningen“, до основен участник в опаковката на екосистемата Clojure за Debian. Ще подмина (въпреки това интересни) технически подробности и ще премина направо към нейната гледна точка: успешното опаковане на версия, съвместима с DSFG, е много предизвикателство, почти невъзможно, ако сте сами; но когато имате нужда, общността ще направи всичко възможно, за да се увери, че успеете. Тя използва възможността да благодари горещо на Том Марбъл (експерт и сътрудник на Debian), който е в публиката.

Не се страхувайте да предложите помощта си по който и да е аспект на безплатния софтуер (кодът не е единственият начин да допринесете). Изберете задача, запалете косата си, помолете за помощ (в този ред), общността ще отговори. Всеки, който има достатъчно воля, може да започне от „Имам нужда от…“ през „Аз предоставих…“ до „Аз отговарям за…“ и да изгради много умения и опит в процеса, благодарение на подкрепата от най-добрите експерти в дадено поле.

Както видяхме по-горе, формата на нашето бъдеще, потребители и разработчици, до голяма степен зависи от наличието на безплатен софтуер. Свободният софтуер се нуждае от всеки, който може да си позволи да помогне.

Успешна премиера.

За съжаление не мога да пиша тук за всички разговори, всеки споделен момент на и извън конференцията, всеки участник, който срещнах. Всички лектори дойдоха в Clojure/SYNC с изключително ценни мисли и истински талант да ги разпространяват. Имаше някаква топла светлина, носеща се около всяка група, която се формира, неоформена, реформирана вътре и пред Le Petit Theatre, сладък и интимен театър, какъвто съм виждал само във Франция. Кафета, зомбита и ръчни гранати бяха отпивани, On The Half Shell бяха изядени (намигване Шон Леброн!) и няколко нощи бяха белени около французи и бърбън. Един много специален участник беше ключът към успеха на това събитие: страхотният град Ню Орлиънс и неговите хора (Пулър!).

Стискам палци на Ерик Норманд за това, че представи толкова брилянтно първия Clojure/SYNC, вече съм нетърпелив да присъствам на следващия!

Допълнителни указатели:

За автора

Франсоа Де Серес е ръководител на дигиталните технологии в PALO IT Сингапур. Страстен към новите технологии и хора, Франсоа е наел и ръководил големи екипи за разработка. Той също така е създал и ръководил сложни ИТ програми, използвайки както водопад, така и гъвкавост, и непрекъснато успява да помогне на заинтересованите страни да постигнат целите си повече от 20 години.