от bop_bop_mara(11-06-2011)

Тези дни екипът на набиращата все по-голяма популярност алтернативна имплементация на езика за програмиране Python - PyPy - публикува в блога на проекта резултатите от свое проучване сред потребителите. Те сочат, че вече доста хора използват PyPy в работна среда, като 97% от тях отбелязват като причина по-бързото му представяне, а 26% - по-малкото използвана памет спрямо стандартния интерпретатор CPython. Неочаквано, най-сериозната причина да не се използва PyPy се оказва не липсата на поддръжка за версии 3.x на езика, а все още неинтегрираните разширения, базирани на C, като например NumPy и SciPy.

В началото на месеца пък се проведоха Дните на Scala - годишна среща на програмисти, изследователи и почитатели на езика. Една от презентациите, чийто автор е Robert Hundt от Google, разказва за сравнителен тест на Scala, Java, C++ и Go върху един и същи прецизно дефиниран и компактен алгоритъм, свързан с разпознаване на цикли в графи. Изследвани са показатели като размер на кода, време за компилиране, размер на изпълнимите файлове, използвана памет, като след основната имплементация екип от инженери на Google се е заел и с допълнителни оптимизации за всеки от езиците.

Според резултатите, относно производителността, определено C++ печели с огромна преднина спрямо другите. Но пък там са положени най-големите оптимизационни усилия, някои от които са изисквали силно задълбочени познания, които средният програмист едва ли притежава.

Версията на Java се оказва най-лесна за имплементация, но пък най-трудна за анализ на представянето. Scala, езикът в центъра на проучването, прави силно впечатление с разнообразните си възможности за постигане на компактност и оптимизиране на кода. Но и при Java, и при него настройването и подобрението на представянето на JVM, насочено главно в областта на garbage collection, също се оказва прекалено сложно и трудоемко.

Що се отнася до Go, езикът на Google, авторът на лекцията признава, че въпреки интересните възможности, които предоставя, поради незрялостта на компилаторите, той все още изостава и като размер на изпълнимите файлове, и като производителност. Общото заключение е, че в различните области езиците са се представили различно и няма посочен фаворит, при който комбинацията от вложен труд и крайни резултати да бъде наречена оптимална.

Освен на сайта на събитието, подробна информация и кода от експеримента можете да намерите и в Google Code.



<< Край на поддръжката за Fedora 13 | Google спря търсачките за Linux, BSD, Mac, MS >>