êîìôîðòíîå ïðîãðàììèðîâàíèå èãð ÀËÅÊÑÀÍÄÐ ÃËÀÄÛØ Ñïåöâûïóñê: Õàêåð, íîìåð #064, ñòð. 064-036-4 Ãîä ñîçäàíèÿ: 1995 Òåêóùàÿ âåðñèÿ: 1.8.4, âûïóùåíà 12 äåêàáðÿ 2005 ã. Äîñòîèíñòâà: ? ÑÈÍÒÀÊÑÈÑ ÓÄÎÁÍÛÉ. ? ÄÎÊÓÌÅÍÒÀÖÈß ÁÎËÅÅ-ÌÅÍÅÅ ÂÌÅÍßÅÌÀß, ÊÎÌÌÜÞÍÈÒÈ ÄÎÑÒÀÒÎ×ÍÎ ÐÀÇÂÈÒÎÅ. ? Î×ÅÍÜ ÓÄÎÁÅÍ Â ÑÎÇÄÀÍÈÈ ÑÏÅÖÈÀËÈÇÈÐÎÂÀÍÍÛÕ ßÇÛÊΠÄÅÊËÀÐÀÒÈÂÍÎÃÎ ÕÀÐÀÊÒÅÐÀ. ? ÍÀ ÁÓÄÓÙÓÞ ÂÅÐÑÈÞ 2.0 ÇÀÏËÀÍÈÐÎÂÀÍÛ ÐÀÁÎÒÛ ÏÎ ÓÑÒÐÀÍÅÍÈÞ ÎÑÍÎÂÍÛÕ ÍÅÄÎÑÒÀÒÊΠßÇÛÊÀ. Íåäîñòàòêè: ? ÑËÀÁÎÅ API ÄËß ÂÑÒÐÀÈÂÀÍÈß. ÍÅÒ ÏÐÎÄÂÈÍÓÒÛÕ ÎÁÅÐÒÎÊ, ÏÎÄÎÁÍÛÕ BOOST.PYTHON È LUABIND. ? ÍÅÂÛÑÎÊÀß ÏÐÎÈÇÂÎÄÈÒÅËÜÍÎÑÒÜ. ? ÒÅÊÓÙÀß ÂÅÐÑÈß ÍÅ ÏÎÄÄÅÐÆÈÂÀÅÒ ÞÍÈÊÎÄ. ? ÎÐÈÅÍÒÈÐÎÂÀÍ, ÑÊÎÐÅÅ, ÍÅ ÍÀ ÐÀÑØÈÐÅÍÈÅ ÔÓÍÊÖÈÎÍÀËÜÍÎÑÒÈ ÏÐÎÃÐÀÌÌ, À ÍÀ ÐÀÑØÈÐÅÍÈÅ ÑÎÁÑÒÂÅÍÍÎÉ ÔÓÍÊÖÈÎÍÀËÜÍÎÑÒÈ ÇÀ Ñ×ÅÒ ÂÍÅØÍÈÕ ÌÎÄÓËÅÉ. Lua (www.lua.org) MIT (Open Source) Àâòîðû: Ðîáåðòî Èåðóñàëèìñêèé (Roberto Ierusalimschy), Ëóèø Ýíðèêå äå Ôèãóèðåäî (Luiz Henrique de Figueiredo), Âàëüäåìàð ×åëåø (Waldemar Celes) Ãîä ñîçäàíèÿ: 1993 Òåêóùàÿ âåðñèÿ: 5.0.2, âûïóùåíà 17 ìàðòà 2004 ã. Äîñòîèíñòâà: ? ÏÐÎÑÒÎÉ È ÄÎÑÒÀÒÎ×ÍÎ ÓÄÎÁÍÛÉ ÑÈÍÒÀÊÑÈÑ, ÁËÈÇÊÈÉ Ê ÊËÀÑÑÈ×ÅÑÊÎÌÓ. ? ÕÎÐÎØÈÉ API ÄËß ÏÎÄÊËÞ×ÅÍÈß. ? ÄÎÊÓÌÅÍÒÀÖÈß ÕÎÐÎØÀß, ÊÎÌÌÜÞÍÈÒÈ ÄÎÑÒÀÒÎ×ÍÎ ÐÀÇÂÈÒÎÅ. ? ÑÏÅÖÈÀËÜÍÎ ÐÀÇÐÀÁÀÒÛÂÀËÑß ÊÀÊ ßÇÛÊ ÄËß ÐÀÑØÈÐÅÍÈß ÔÓÍÊÖÈÎÍÀËÜÍÎÑÒÈ (EXTENSIBILITY LANGUAGE). ? ÌÀËÅÍÜÊÈÉ È ËÅÃÊÈÉ (ÂÑÅÃÎ 150 ÊÁ) ÈÍÒÅÐÏÐÅÒÀÒÎÐ, ÎÑÍÎÂÀÍÍÛÉ ÍÀ ÐÅÃÈÑÒÐÎÂÎÉ ÂÈÐÒÓÀËÜÍÎÉ ÌÀØÈÍÅ (REGISTER-BASED VIRTUAL MACHINE). ÈÍÒÅÐÏÐÅÒÀÒÎÐ LUA — ÎÄÈÍ ÈÇ ÑÀÌÛÕ ÁÛÑÒÐÛÕ ÑÐÅÄÈ ÈÍÒÅÐÏÐÅÒÀÒÎÐΠÑÊÐÈÏÒÎÂÛÕ ßÇÛÊÎÂ. ? ÏÎÄÄÅÐÆÊÀ ÃÈÁÊÎÃÎ, ÌÓËÜÒÈÏÀÐÀÄÈÃÌÅÍÍÎÃÎ ÑÒÈËß ÏÐÎÃÐÀÌÌÈÐÎÂÀÍÈß. ? ÓÄÎÁÍÎ ÈÑÏÎËÜÇÎÂÀÒÜ ÊÀÊ ÎÑÍÎÂÓ ÄËß ÑÎÇÄÀÍÈß ÑÏÅÖÈÀËÈÇÈÐÎÂÀÍÍÛÕ ßÇÛÊΠ(DOMAIN SPECIFIC LANGUAGES). ? ÓÄÎÁÍÎ ÎÏÈÑÛÂÀÒÜ ÄÀÍÍÛÅ, ÈÍÒÅÐÏÐÅÒÀÒÎÐ ÝÔÔÅÊÒÈÂÍÎ ÐÀÁÎÒÀÅÒ Ñ ÁÎËÜØÈÌÈ ÎÁÚÅÌÀÌÈ ÊÎÄÀ. ? ÝÒÎÒ ÑÊÐÈÏÒÎÂÛÉ ßÇÛÊ ÈÑÏÎËÜÇÓÅÒÑß Â ÈÃÐÎÂÎÉ ÈÍÄÓÑÒÐÈÈ ×ÀÙÅ ÂÑÅÃÎ. Íåäîñòàòêè: ? ÍÅ ÏÎÄÄÅÐÆÈÂÀÅÒ ÞÍÈÊÎÄ ßÂÍÛÌ ÎÁÐÀÇÎÌ, ÎÄÍÀÊÎ ÏÎÄÄÅÐÆÊÀ ÍÓËÅÂÛÕ ÑÈÌÂÎËΠ ÑÅÐÅÄÈÍÅ ÑÒÐÎÊ ÏÎÇÂÎËßÅÒ ÏÐÎÇÐÀ×ÍÎ ÈÑÏÎËÜÇÎÂÀÒÜ UTF-8. ? ÎÒÑÓÒÑÒÂÈÅ ÍÅÏÎÑÐÅÄÑÒÂÅÍÍÎÉ ÏÎÄÄÅÐÆÊÈ ÎÁÚÅÊÒÍÎ ÎÐÈÅÍÒÈÐÎÂÀÍÍÎÃÎ ÏÐÎÃÐÀÌÌÈÐÎÂÀÍÈß. ÊÎÌÏÅÍÑÈÐÓÅÒÑß ÁÎËÜØÎÉ ÃÈÁÊÎÑÒÜÞ ßÇÛÊÀ È ÍÀËÈ×ÈÅÌ ÑÏÅÖÈÀËÜÍÎÃÎ «ÑÈÍÒÀÊÑÈ×ÅÑÊÎÃÎ ÑÀÕÀÐÀ». ÒÀÊÆÅ ÎÁÚÅÊÒÍÀß ÑÈÑÒÅÌÀ ÏÐÅÄÎÑÒÀÂËßÅÒÑß ÍÅÊÎÒÎÐÛÌÈ ÁÈÁËÈÎÒÅÊÀÌÈ-ÎÁÅÐÒÊÀÌÈ, ÍÀÏÐÈÌÅÐ LU-ABIND (luabind.sf.net). ? ÃËÎÁÀËÜÍÀß ÎÁËÀÑÒÜ ÂÈÄÈÌÎÑÒÈ ÏÅÐÅÌÅÍÍÛÕ, ÏÐÈÍßÒÀß ÏÎ ÓÌÎË×ÀÍÈÞ, ×ÐÅÂÀÒÀ ÎØÈÁÊÀÌÈ. èç îïûòà Îïûò ïîäñêàçûâàåò, ÷òî Lua — ñàìîå óäîáíîå ñðåäñòâî, êîòîðîå ìîæíî èñïîëüçîâàòü â êà÷åñòâå ñêðèïòîâîãî ÿçûêà â èãðå. Python, áëàãîäàðÿ ðàçâèòûì áèáëèîòåêàì, î÷åíü óäîáåí êàê ÿçûê äëÿ íàïèñàíèÿ óòèëèò. Íàïðèìåð, èìåííî íà íåì ðåàëèçîâàíà äîâîëüíî óäà÷íàÿ ñèñòåìà óïðàâëåíèÿ ñáîðêîé ïðîåêòîâ Scons (www.scons.org) Òàêæå ñòîèò âðåìÿ îò âðåìåíè ïîñìàòðèâàòü íà Ruby — ýòîò ÿçûê èìååò õîðîøèé ïîòåíöèàë, êîòîðûé, ìîæåò áûòü, ðàñêðîåòñÿ ïîñëå âûõîäà âåðñèè 2.0 |