Кіріспе

Emacs-тің белгілі бір нұсқасы

XEmacs – графикалық және консольдік мәтін редакторы, ол Unix сияқты операциялық жүйелердің көпшілігінде, сондай-ақ Microsoft Windows жүйесінде жұмыс істейді. XEmacs – 1980 жылдардың соңындағы GNU Emacs нұсқасына негізделген тармақ. Кез келген пайдаланушы XEmacs-ты GNU General Public License нұсқасы 2 немесе одан кейінгі нұсқалар бойынша қолжетімді бос бағдарламалық қамтамасы ретінде жүктеуге, пайдалануға және өзгертуге құқылы.

Тарих

1987 және 1993 жылдар аралығында GNU Emacs-тің жаңа нұсқасын шығаруда маңызды кешігулер болды (бұл 19-шы нұсқа деп есептеледі). 1980-жылдардың соңында Ричард П. Габриэльдің Lucid Inc. компаниясы Energize C++ IDE-ді қолдау үшін Emacs-ті жеткізу қажеттілігіне тап болды. Сондықтан Lucid кодты жақсарту және кеңейту үшін команда жалдады, олардың 1991 жылы шыққан жаңа нұсқасы GNU Emacs 19-шы нұсқасының негізі болуы тиіс еді. Алайда, олардың өзгерістерін Free Software Foundation (FSF) қабылдауын күтуге уақыты болмады. Lucid Emacs-тің өз нұсқасын әзірлеуді және қолдауды жалғастырды, ал FSF бір жылдан кейін GNU Emacs-тің 19-шы нұсқасын шығарды, сонымен қатар кейбір кодты біріктіріп, басқа бөліктерін бейімдеді. 1994 жылы Lucid компаниясы жұмысын тоқтатқаннан кейін, басқа да дамытушылар кодты өздеріне алды. Sun Microsystems сияқты компаниялар Lucid Emacs-ті жеткізуді жалғастыруды қалады, бірақ сауда белгісін пайдалану құқықтық жағынан түсініксіз болды, өйткені "Lucid" сауда белгісін кімнің бақылауында болатынын ешкім білмеді. Осыған байланысты, XEmacs-тегі "X" әрпі XEmacs-ті дамытуға қатысқан тараптар арасындағы келісімді көрсетеді. Сондықтан XEmacs-тегі "X" әрпі X терезелік жүйесімен байланысты емес. Бастапқыда тек X11-ді қолдағаннан кейін, XEmacs мәтіндік терминалдар мен X11-ден басқа терезелік жүйелерді де қолдады. Орнатушылар XEmacs және GNU Emacs бағдарламаларын X қолдауымен немесе онысыз құрастыра алады. Бір кезде XEmacs GNU Emacs-те болмаған, мысалы, түс беру сияқты терминалға тән мүмкіндіктерге ие болды. Бағдарламалық жасақтама қауымдастығы GNU Emacs, XEmacs (және басқа да ұқсас редакторларды) жиынтығында немесе жеке-жеке emacsen (түйелерге ұқсастыру арқылы) немесе emacs деп атайды, себебі екеуі де бастапқы TECO Emacs-тен шабыттанды.

Ерекшеліктері

XEmacs сөздер мен абзацтарды өңдеуге арналған командаларды қамтиды (оларды жою, жылжыту, олар арқылы өту және т.б.), бастапқы кодты оқуды жеңілдету үшін синтаксистің ерекшелендірілуі және пайдаланушы анықтаған өңдеу командаларының кез келген тізбегін орындауға арналған «пернелік макростар». XEmacs кең ауқымды онлайн-көмекке және XEmacs веб-сайтынан қолжетімді бес нұсқаулыққа ие. XEmacs көптеген адам тілдерін, сондай-ақ көптеген бағдарламалау және белгілеу тілдері үшін өңдеу режимдерін қолдайды. XEmacs Unix/Linux, BSD және Mac OS X сияқты көптеген операциялық жүйелерде жұмыс істейді. Mac OS-та жұмыс істеу үшін X11 қажет; ал Carbon-ның түпкілікті нұсқасын жасау жұмыстары басталды. Microsoft Windows үшін XEmacs-тің екі нұсқасы бар: түпкілікті орнатушы және Cygwin жинағы. Пайдаланушылар Emacs Lisp тілін пайдаланып редактордың дерлік барлық функционалдығын қайта конфигурациялай алады. Lisp кодына енгізілген өзгерістер редакторды қайта іске қосуды немесе қайта компиляциялауды қажет етпейді. Бағдарламашылар көптеген алдын ала жазылған Lisp кеңейтімдерін жасады. XEmacs мүмкіндіктерін кеңейту және толықтыру үшін көптеген пакеттер бар. Пайдаланушылар оларды XEmacs пакет менеджері арқылы бөлек-бөлек жүктей алады немесе xemacs sumo пакетін немесе «sumo tarballs» пайдаланып бірден қолдана алады. XEmacs пакет менеджері GNU Emacs-те қолданылатын ELPA пакет жүйесінен шамамен он жыл бұрын пайда болды және олармен үйлесімсіз. XEmacs 21.1 нұсқасынан бастап функционалдық XEmacs ядросынан шығарылып, жеке пакеттер ретінде қолжетімді болды. Бұл пайдаланушыларға қажет емес пакеттерді жоюға мүмкіндік береді. XEmacs GNU Emacs өзінің пакет менеджерін жасағанға дейін он жылдан астам уақыт бойы пакет менеджеріне ие болды, бірақ жаңа пакеттерді жүктемес бұрын XEmacs-ті қайта іске қосу қажет.

Даму

Жобаның басынан бастап, XEmacs әзірлеушілері жиі шығарылатын циклға ие болуды мақсат етті. Олар сонымен қатар эксперименттерге көбірек ашықтықты көздеді, ал XEmacs көбінесе басқа Emacs-терге қарағанда жаңа мүмкіндіктерді алғашқы болып ұсынады – мысалы, желідегі суреттер, айнымалы қаріптер және терминалдың түс схемаларын енгізу. Жылдар бойы әзірлеушілер жүйелілікті жақсарту және деректерді абстракциялауға баса назар аударатын заманауи бағдарламалау қағидаларын сақтау үшін кодты кеңінен қайта жазды. XEmacs Lisp пакеттерін тәуелсіз түрде ұстауға арналған пакет жүйесіне ие. Соңғы нұсқада GTK+ қолдауы және Mac OS X үшін Carbon порты бар. XEmacs әрқашан өте ашық даму ортасына ие болды, оның ішінде анонимді CVS, кейіннен Mercurial қол жетімділігі және жалпыға қолжетімді даму пошталық тізімдері бар. XEmacs 500-ден астам беттен тұратын ішкі нұсқаулықпен бірге келеді (Wing, et al., 2004). Unicode қолдауы XEmacs үшін мәселеге айналды. 2005 жылы шығарылған нұсқа Unicode қолдауы үшін күтпестен тоқтатылған Mule UCS пакетіне тәуелді болды, ал XEmacs-тің даму тармағы 2002 жылдың мамыр айынан бастап сыртқы Unicode кодтамаларын толыққанды қолдады, бірақ ішкі Mule таңбалар жиынтығында толықтық жетіспеді және 2005 жылдың қыркүйегіне қарай даму тоқтап қалған сияқты көрінеді. XEmacs дамуы үш тармаққа бөлінген: тұрақты, гамма және бета, екі тараптың талқылауларының нәтижесінде. Басты келіспеушіліктердің бірі авторлық құқықты беруге қатысты әртүрлі көзқарастарға байланысты. FSF авторлық құқықты FSF-ке беруді GPL бұзушылықтарынан кодты қорғау үшін қажет деп санайды, ал XEmacs әзірлеушілері авторлық құқықты берудің болмауы ірі компаниялардың қатысуына мүмкіндік берді деп мәлімдеді, себебі кейде компаниялар өздерінің кодын лицензиялай алады, бірақ акционерлерге деген сенімділік міндеттемелеріне байланысты, компаниялар кодты толығымен беруге рұқсат алуда қиындықтарға тап болуы мүмкін. Free Software Foundation XEmacs кодының көп бөлігіне авторлық құқықты иеленеді, себебі біріктіру және кросс-өндіріс кезінде авторлық құқықтарды бұрын беруге келісім берілген. Жаңа XEmacs кодының GNU Emacs-ке енуі көбінесе жеке үлескердің кодын FSF-ке беруге дайындығына байланысты. Кез келген редактордағы жаңа мүмкіндіктер ерте немесе кеш екінші редакторда пайда болады. Сонымен қатар, көптеген әзірлеушілер екі жобаға да үлес қосады. XEmacs жобасы GNU Emacs API-мен үйлесімділікті сақтау саясатын ұстанады. Мысалы, ол жергілікті ауқымды мүмкіндіктер арқылы ашылуларды жүзеге асыратын үйлесімділік қабатын ұсынады. "XEmacs әзірлеушілері өздерінің кодын GNU Emacs-пен үйлесімді етуге тырысады, әсіресе Lisp деңгейінде". XEmacs дамуы баяулағандықтан, XEmacs GNU Emacs-тен көптеген кодты қабылдады, ал GNU Emacs бұрын XEmacs-ке тән болған көптеген мүмкіндіктерді іске асырды. Бұл кейбір пайдаланушыларды XEmacs-тің өлімін жариялауға итермеледі, оның орнына оның әзірлеушілері GNU Emacs-ке үлес қосуды ұсынды. Gnus және Dired сияқты көптеген ірі пакеттер бұрын екеуімен де жұмыс істеуге арналған, бірақ Gnus-тың негізгі әзірлеушісі Gnus ағашын негізгі Emacs магистраліне көшіру және XEmacs үйлесімділік кодын жою ниетін жариялады, себебі басқа пакеттер де XEmacs қолдауын тоқтатуда. 2015 жылдың желтоқсан айында жобаны ұстаушы Стивен Дж. Тернбулл XEmacs даму тізіміне хабар жіберіп, жобаның GNU Emacs-пен болашақтағы үйлесімділігі тұрғысынан "қиын жағдайға" тап болғанын мәлімдеді, себебі әзірлеушілердің азаюы және GNU Emacs-тің прогресі. Болашақ бағыттары үшін бірнеше нұсқалар ұсынылды, соның ішінде дамуды толығымен тоқтату, GNU Emacs-тің қазіргі нұсқасынан жаңа тармақ жасау немесе болашақта біреу дамуды қайта бастағысы келсе, жобаны техникалық қызмет көрсету режимінде қалдыру. Соңғы нұсқа шешілді, жеке үлескерлер веб-сайтқа және даму ресурстарына минималды қолдау көрсетуге міндеттелді. 2020 жылы XEmacs жобасы өзінің Mercurial бастапқы дерекқорын Heptapod-қа көшірді, олардың бұрынғы хосты Bitbucket-тің Mercurial қолдауын тоқтатуынан кейін. 2023 жылдың мамыр айында жоба XEmacs-тің жаңа бета-версиясын, 21.5.35 "kohlrabi" бета-версиясын шамамен он жылдан кейін шығарды.

SXEmacs

SXEmacs жобасы XEmacs 21.4 нұсқасын тармақтап, он жылдан астам уақыт бойы дамытуды жалғастырды, және 2020 жылға дейін жаңа нұсқаларын шығарды.