Параўнальны аналіз сродкаў кросплатформеннага праграмавання (Григорий Злобин, LVEE-2015)
Содержание
Аннотация
- Докладчик
- Григорій Злобін
The article provides a comparative analysis of crossplatform programming tools.
Crossplatform programming tools are divided into three groups:
- crossplatform compiled languages,
- crossplatform programming languages at the execution level
- crossplatform interpreters.
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 |
Нажаль, аўтарам невядомыя даследаванні папулярнасці сродкаў кросплатформеннага праграмавання, таму скарыстаемся індэксам TIOBE[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.
- Як і варта было чакаць колькасць стандартных бібліятэк з адкрытым кодам амаль у чатыры разы перавышае колькасць стандартных бібліятэк з зачыненым кодам.
Примечания и отзывы
- ↑ D. Thompson. The 11 Most Fascinating Charts From Mary Meeker’s Epic Slideshow of Internet Trends
- ↑ TIOBE Index for May 2015
Plays:48 Comments:0