Параўнальны аналіз сродкаў кросплатформеннага праграмавання
LVEE 2015
Кросплатформеннасць – гэта здольнасць праграмнага забеспячэння працаваць больш чым на адной платформе або аперацыйнай сістэме. Кросплатформннасць праграмнага забеспячэння набыла асаблівае значэнне пасля завяршэння эры практычна непадзельнага панавання платформы 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 |
Высновы
- Па папулярнасці моў праграмавання сярод кампілятараў першае месца займае мова праграмавання C, сярод інтэрпрэтатараў – мова Java.
- Па індэксе TIOBE ў студзені 2015 мова праграмавання Delphi / Object Pascal займае 20 месца.
- Па колькасці аперацыйных сістэм, у якіх можна скарыстацца згаданымі ў аглядзе сродкамі распрацоўкі, яны размешчаны ў табліцах 1—3. Апошняя радок у табліцы 1 (кросплатформеннага мовы праграмавання на ўзроўні кампіляцыі) з двума падтрымоўванымі АС займае Microsoft Visual Studio Code, ў табліцы 2 (кросплатформеннага мовы праграмавання на ўзроўні выканання) тры апошнія радкі з двума падтрыманымі АС займаюць Microsoft Visual Studio Code, .NET Core 5, Mono, у табліцы 3 (кросплатформавы інтэрпрэтатары) апошнюю радок з двума падтрымоўванымі АС займае Microsoft Visual Studio Code.
- Як і варта было чакаць колькасць стандартных бібліятэк з адкрытым кодам амаль у чатыры разы перавышае колькасць стандартных бібліятэк з зачыненым кодам.
Iнфармацыйныя сродкi
1 D. Thompson. The 11 Most Fascinating Charts From Mary Meeker’s Epic Slideshow of Internet Trends
Abstract licensed under Creative Commons Attribution-ShareAlike 3.0 license
Back