Международная конференция разработчиков
и пользователей свободного программного обеспечения

Параўнальны аналіз сродкаў кросплатформеннага праграмавання

Г. Злобін, А. Чмыхала, Львоў, Украіна

LVEE 2015

The article provides a comparative analysis of cross-platform programming tools. Cross-platform programming tools are divided into three groups: cross-platform compiled languages (Table 1), cross-platform programming languages at the execution level (Table 2) and cross-platform interpreters (Table 3). The information in Tables 1-3 is ordered by number of the supported operating systems (descending). Table 4 provides information about standardized libraries and frameworks used in cross-platform programming. To substantiate the analysis results, the index of popularity of programming languages ​​TIOBE is used.

Кросплатформеннасць – гэта здольнасць праграмнага забеспячэння працаваць больш чым на адной платформе або аперацыйнай сістэме. Кросплатформннасць праграмнага забеспячэння набыла асаблівае значэнне пасля завяршэння эры практычна непадзельнага панавання платформы Wintel (x86 працэсар + Microsoft Windows). Як вынікае з 1 колькасць працоўных месцаў з не-Wintel платформай у 2012 перавысіла 65% і працягвае павялічвацца. Гэта зрабіла эканамічна прывабным кросплатформеннага праграмавання ў галіне распрацоўкі прыкладнога праграмнага забеспячэння.

Мовы праграмавання, якія можна выкарыстоўваць для кросплатформеннай распрацоўкі праграм, дзеляцца на тры групы:

  • кросплатформавыя мовы праграмавання на ўзроўні кампіляцыі – для гэтых моў існуюць кампілятары для розных платформаў (C, C++, Pascal, Fortran, Ада і г.д.);
  • кросплатформавыя мовы на ўзроўні выканання (Java і C#) – вынікам працы кампілятара ў гэтых мовах ёсць байт-код, які можна запускаць на розных платформах з дапамогай віртуальных машын (Java VM для Java і CLR для C#);
  • кросплатформавыя інтэрпрэтатары – для гэтых моў з’яўляецца інтэрпрэтатары (PHP, Perl, Python, Tcl, Ruby і т.д.) для розных платформаў.

Разгледзім кароткія характарыстыкі кросплатформавых моў праграмавання на ўзроўні кампіляцыі:

Табліца 1.
Інструментальная абалонка Падтрымліваюцца кампілятары/колькасць моў праграмавання Падтрымліваюцца АС/іх колькасць
Qt Creator GCC, Clang, MinGW, MSVC, Linux ICC, GCCE, RVCT, WINSCW/8 Linux, OS X, Windows, Unix, iOS, Android, Blackberry 10, WinRT, Embedded Linux, QNX/10
Eclipse C/С++, Fortran/3 AIX, FreeBSD, HP-UX, Linux, Mac OS X, OpenSolaris, Solaris, QNX, Microsoft Windows, Android (AR)/10
Free Pascal Free Pascal Compiler, Object Pascal, частково GNU Pascal, ISO Extended Pascal/4 MS DOS, FreeBSD, Linux, Mac OS X, Microsoft Windows, Sun Solaris, Haiku/7
Lazarus Free Pascal Compiler/1 Linux, FreeBSD, Mac OS X, Microsoft Windows, Android/5
Code::Blocks MinGW, GCC C/C++, GNU ARM GCC, GNU AVR GCC, GNU GCC Compiler for PowerPC, Digital Mars C/C++, Digital Mars D, SDCC, Microsoft Visual C++, Borland C++, Watcom, Intel C++, GNU Fortran, GNU ARM, GNU GDC/15 Windows, Linux, Mac OS X, Unix/4
NetBeans IDE C, C++, Ада/3 Windows, Linux, FreeBSD, Solaris /4
Embarcadero RAD Studio XE7 Delphi, С, C++/3 Windows, Mac OS X, iOS, Android/4

У табліцы 2 прадстаўлены кароткія характарыстыкі кросплатформавых моў на ўзроўні выканання:

Табліца 2. *нататка праз вялікую колькасць інструментальных сродкаў для Java іх пералік няпоўны
Інструментальная абалонка Падтрымліваюцца кампілятары/коль-касць моў прагра-мавання Падтрымліваюцца АС/іх колькасць
Eclipse* Java AIX, FreeBSD, HP-UX, Linux, Mac OS X, OpenSolaris, Solaris, QNX, Microsoft Windows, Android (ARM)/10
NetBeans IDE* Java Windows, Linux, FreeBSD, Solaris/4
IntelliJ IDEA* Java Linux, Mac OS X, Windows/3
AIDE* Java Android
Microsoft Visual Studio Code C#, Java/2 Linux, Mac OS X/2
.NET Core 5 C# Linux, Mac OS X/2
Mono C# Linux, MacOS/2

У табліцы 3 прадстаўлены кароткія характарыстыкі кросплатформавых інтэрпрэтатараў. У табліцы 3 прадстаўленыя кароткія характарыстыкі кросплатформавых інтэрпрэтатараў:

Табліца 3.
Інструментальная абаолонка Падтрымліваюцца кампілятары/колькасць моў праграмавання Падтрымліваюцца АС/іх колькасць
Eclipse Perl, PHP, JavaScript, Python, Ruby/5 AIX, FreeBSD, HP-UX, Linux, Mac OS X, OpenSolaris, Solaris, QNX, Microsoft Windows, Android (ARM)/10
NetBeans IDE JJava, JavaFX, PHP, JavaScript, HTML5, Python, Groovy /7 Windows, Linux, FreeBSD, Solaris/4
Embarcadero RAD Studio XE7 HTML5 Windows, Mac OS X, iOS, Android/4
Xojo IDE Real Basic OS X, Windows, Linux, iOS/4
Komodo IDE/Komodo Edit Perl, PHP, Python, Ruby, Tcl. JavaScript, CSS3, HTML5, XML, XSLT/10 Linux, Mac OS X, Windows/3
PyCharm Python, JavaScript, HTML/3 Windows, Linux, Mac OS X/3
Aptana Studio 3 JavaScript, PHP, Ruby, Python/4 Windows, Linux, Mac OS X/3
Microsoft Visual Studio Code Python, PHP, JavaScript, JSON, XML, HTML, CSS /7 Mac OS X, Linux/2

Нажаль, аўтарам невядомыя даследаванні папулярнасці сродкаў кросплатформеннага праграмавання, таму скарыстаемся індэксам TIOBE2, па якім ацэньваюць папулярнасць моў праграмавання. Як вынікае з 2 найбольшай папулярнасцю больш за 10 гадоў карыстаюцца мовы праграмавання C (на 1.2015 г. 16,703%) і Java (15,528%), якія шырока выкарыстоўваюць для кросплатформеннага праграмавання. Менш папулярныя C++ (6,705%), C# (5,045%), PHP (3,784%), Python (2,613%), Perl (2,256%), Delphi / Object Pascal (0,837%). Яшчэ адным фактарам адбору можа быць колькасць аперацыйных сістэм і колькасць апаратных платформаў, для якіх можна выкарыстоўваць сродкі кросплатформеннай распрацоўкі. Не менш важнымі для кросплатформеннага праграмавання з’яўляецца стандартызаваныя бібліятэкі часу выканання. У прыватнасці, стандартам стала бібліятэка мовы C. Cвае стандартныя бібліятэкі маюць C++, Java, Python, Ruby, якія падаюцца разам са сродкамі распрацоўкі і даступныя на падтрымоўваных платформах. Варта адзначыць таксама некаторыя вялікія кросплатформавыя бібліятэкі – такія як Qt, GTK+, FLTK, STL, Boost, OpenGL, SDL, OpenAL, OpenCL. У табліцы 4 стандартныя бібліятэкі часу выканання падзеленыя на бібліятэкі з адкрытым кодам і бібліятэкі з зачыненым кодам.

Табліца 4. Стандартныя бібліятэкі і праграмныя каркасы з адкрытым і зачыненым кодам
Бібліятэкі і праграмныя каркасы з адкрытым кодам / адкрытыя стандарты Бібліятэкі і праграмныя каркасы з зачыненым кодам
Boost, GIMP ToolKit, GTK+, FLTK, Kivy, OpenCV, OpenCL, OpenGL, SDL, Apache Cordova, Tk
OpenAL (раннія версіі) OpenAL (пазнейшыя версіі)
Qt Qt
Simple DirectMedia Layer Unity3D

Высновы

  1. Па папулярнасці моў праграмавання сярод кампілятараў першае месца займае мова праграмавання C, сярод інтэрпрэтатараў – мова Java.
  2. Па індэксе TIOBE ў студзені 2015 мова праграмавання Delphi / Object Pascal займае 20 месца.
  3. Па колькасці аперацыйных сістэм, у якіх можна скарыстацца згаданымі ў аглядзе сродкамі распрацоўкі, яны размешчаны ў табліцах 1—3. Апошняя радок у табліцы 1 (кросплатформеннага мовы праграмавання на ўзроўні кампіляцыі) з двума падтрымоўванымі АС займае Microsoft Visual Studio Code, ў табліцы 2 (кросплатформеннага мовы праграмавання на ўзроўні выканання) тры апошнія радкі з двума падтрыманымі АС займаюць Microsoft Visual Studio Code, .NET Core 5, Mono, у табліцы 3 (кросплатформавы інтэрпрэтатары) апошнюю радок з двума падтрымоўванымі АС займае Microsoft Visual Studio Code.
  4. Як і варта было чакаць колькасць стандартных бібліятэк з адкрытым кодам амаль у чатыры разы перавышае колькасць стандартных бібліятэк з зачыненым кодам.

Iнфармацыйныя сродкi

1 D. Thompson. The 11 Most Fascinating Charts From Mary Meeker’s Epic Slideshow of Internet Trends

2 TIOBE Index for May 2015

Abstract licensed under Creative Commons Attribution-ShareAlike 3.0 license

Назад