10 перспективних мов програмування, які можуть перевернути світ ІТ
Чи дійсно нам потрібні нові мови програмування? Безумовно, на даний момент їх цілком достатньо. Серед розмаїття імперативних, функціональних, об'єктно-орієнтованих, динамічних, компільованих, інтерпретованих і скриптових мов жоден розробник не зможе пізнати всі доступні на сьогоднішній день можливості.
І все ж виникнення нових мов - явище досить часте. Деякі з них створюються студентами або любителями в якості індивідуальних проектів, інші є продуктами великих виробників програмного забезпечення. Навіть невеликі і середні компанії беруть участь в цьому процесі, створюючи мови для потреб своїх галузей. Так чому ж люди продовжують винаходити велосипед знову і знову?
Справа в тому, що, незважаючи на потужність і багатофункціональність популярних на даний момент мов, жоден синтаксис не є ідеально універсальним. Більш того, саме програмування постійно розвивається. Поширення багатоядерних процесорів, хмарного програмування, мобільності, а також розподілених архітектур створили нові проблеми для розробників. Додавання підтримки найостанніших функцій, парадигм і шаблонів до вже існуючих мов, особливо найбільш популярним, може бути надмірно складним. Іноді кращим рішенням є почати з нуля.
Таким чином, нижче представлені 10 передових мов програмування, кожен з яких розглядає мистецтво розробки ПО з нового боку, вирішуючи певну проблему або специфічний недолік мов, найбільш популярних на сьогоднішній день. Деякі з них є вже закінченими проектами, тоді як інші перебувають лише на ранніх стадіях свого розвитку.
Цілком ймовірно, що деякі з них так і не знайдуть популярність, але будь-який з них може стати революційним досягненням, яке остаточно змінить програмування - по крайней мере, до тих пір, поки не будуть створені нові мови.
Досліджуваний мова програмування № 1: Dart
Досліджуваний мова програмування № 2: Ceylon
Гевін Кінг (Gavin King) заперечує той факт, що Ceylon. розробляється їм мову в Red Hat, повинен стати «вбивцею Java». Кінг добре відомий як творець фреймворка об'єктно-реляційного відображення Hibernate для Java. Йому подобається Java, але він вважає, що в ньому ще багато чого потрібно поліпшити.
Серед тих речей, які не влаштовують Кінга в Java, знаходяться детальний синтаксис мови, відсутність першокласних функцій і функцій вищого порядку, а також недостатня підтримка метапрограмування. Особливо його засмучує відсутність декларативного синтаксису для визначення структурованих даних, що, за словами Кінга, «прирівнює Java до XML». Ceylon націлений вирішити всі ці проблеми.
Кінг і його команда не планують заново винаходити колесо. Ніякої віртуальної Ceylon-машини не буде, Ceylon-компілятор буде видавати java-байткод, який можна запустити на JVM. Але Ceylon буде більше, ніж просто компілятор. Стратегічною метою даного проекту є створення нового комплекту розробника для Ceylon, який замінить Java, що є, за словами Кінга, «набряклим», незграбним і до сих пір ретельно Не модернізовані.
Це важке завдання, і поки що Red Hat не випустив ніяких утиліт для Ceylon. Кінг каже, що компілятор повинен вийти в цьому році. Але найближчим часом не чекайте будь-якого ПО, написаного на «100% чистому Ceylon».
Досліджуваний мова програмування № 3: Go
Інтерпретатори, віртуальні машини, а також керовані коди сьогодні дуже популярні. Невже нам справді потрібен ще один старомодний мову, який компілює в «рідні» двійкові коди? Команда інженерів Google - під керівництвом Роберта Грізмер (Robert Griesemer) і легенд Bell Labs Кена Томпсона (Ken Thompson) і Роба Пайка (Rob Pike) - говорить «так».
Go - мова програмування загального призначення, який підходить для всього: починаючи від розробки додатків і закінчуючи програмуванням систем. У цьому сенсі він більше схожий на C або C ++, ніж на Java або C #. Однак як і останні мови, Go включає в себе такі сучасні функції, як очищення пам'яті від непотрібних даних, відображення поточних процесів виконання і підтримку паралельності.
Також важливим є те, що Go був створений для легкого програмування. Його основний синтаксис схожий на C, проте Go видаляє непотрібний синтаксис і повторення під час оптимізації таких програм, як, наприклад, визначення об'єктів. Метою команди Go було створення мови, на якому було б зручно писати коди, як і на динамічному мовою сценаріїв, але який в той же час володів потужністю компилируемого мови.
Над Go ще працюють, і специфікація мови ще може бути змінена. Проте, працювати з ним можна вже зараз. Google створила утиліти і компілятори, до яких додається детальна документація. Наприклад, в навчальному посібнику Effective Go добре показані відмінності Go від попередніх мов.
Досліджуваний мова програмування № 4: F #
Функціональне програмування давно користується популярністю у програмістів і академіків, але чисто функціональні мови, такі як Lisp і Haskell, часто вважаються непридатними для розробки реального ПО. Однією з найбільш поширених причин є те, що код функціонального виду дуже складно поєднувати з кодом і бібліотеками, написаними на імперативних мовах, наприклад, на C ++ або Java.
Знайомтеся, F # (вимовляється «Еф-Шарп») - мова, розроблений Microsoft з метою об'єднання в собі функціональність і практичність. Так як F # є мовою першого класу на віртуальній машині .Net CLR, він може підтримувати такі ж бібліотеки і функції, як і інші CLR мови, наприклад, як C # і Visual Basic. Код F # чимось схожий на код OCaml, але містить свій власний цікавий синтаксис. Наприклад, для полегшення проведення наукових розрахунків числовими типами даних в F # можуть бути одиниці виміру. Також в F # є конструкції для полегшення асинхронних вводів / висновків, паралелізації ЦПУ і виведення процесів на графічний процесор.
Досліджуваний мова програмування № 5: Opa
Opa не замінює ні один з цих мов окремо. Більш того, він намагається замінити їх все відразу, представляючи собою абсолютно нову парадигму в веб-програмуванні. У Opa-додатку інтерфейс користувача клієнта, логіка сервера і база даних вводу-виводу написані однією мовою, Opa.
Природно, з такого роду інтегрованою системою в кінці повинно вийти щось чарівне. Середовище виконання Opa об'єднує власний веб-сервер і систему управління базою даних, які не можуть бути замінені самостійними альтернативами. Як би там не було, це може бути не так вже й важливо, з огляду на можливість розробки сучасних веб-додатків, керованих даними, за допомогою всього лише кількох десятків рядків коду. Opa поставляється безкоштовно і на даний момент доступний для 64-х бітних Linux і Mac OS X платформ, інші ж порти поки розробляються.
Досліджуваний мова програмування № 6: Fantom
Хочете створювати додатки для Java або .Net? Якщо Ви пишіть на Fantom. то можете зробити вибір, а потім навіть поміняти платформи. Все тому, що Fantom з самого початку створювався для крос-платформної мобільності. Проект Fantom складається не тільки з компілятора, який може виводити байткод як для JVM або .Net CLI, але також з набору API, які відокремлюють API Java і .Net і створюють додатковий рівень мобільності.
Fantom поширюється безкоштовно відповідно до Academic Free License 3.0 і доступний для Windows і Unix-подібних платформ (в тому числі і Mac OS X).
Досліджуваний мова програмування № 7: Zimbu
Завдяки своєму змішаного характеру, синтаксис Zimbu унікальний і специфічний, але в той же час володіє великою кількістю функцій. Він використовує вирази й оператори, схожі на ті, які використовуються в C, але зі своїми ключовими словами, типами даних і блоковими структурами. Він підтримує управління пам'яттю, потоки і конвеєри.
Єдиною проблемою є портативність. Хоча Zimbu і є компільовані мовою, його компілятор видає ANSI C код, а виконавчі файли можуть бути створені лише на платформах з вбудованим C-компілятором.
На жаль, проект Zimbu знаходиться на стадії розробки. Компілятор і кілька програм-прикладів можуть бути створені самостійно, але не весь дійсний Zimbu-код компілюватиметься і виконуватися належним чином. Не всі заявлені функції ще розроблені, а деякі з вже представлених працюють некоректно. Специфікація мови також, можливо, з часом зміниться: у міру необхідності додадуться ключові слова, типи і синтаксис. Отже, документація також ще неповна. Однак якщо Ви хочете спробувати, попередні утиліти вже доступні на умовах ліцензії Apache.
Досліджуваний мова програмування № 8: X10
Колись паралельна обробка даних була спеціалізованої нішею розробки ПО, але з поширенням багатоядерних процесорів і розподілених обчислень, паралелізм здобув популярність. На жаль, нинішні мови програмування не встигають за цією тенденцією. Саме тому IBM Research створює X10 - мова, створений спеціально для сучасних паралельних архітектур, який націлений на збільшення продуктивності розробників «в десять разів».
Код X10 найбільше схожий на Java. По суті, Виконавча X10 доступна як в якості вбудованих здійсненних файлів, так і як класові файли для JVM. Компілятор X10 може видавати вихідні коди або на C ++, або на Java. В майбутньому планується розробити пряму сумісність з Java.
А поки мова розвивається, хоча він вже досить розроблений. Компілятор і середовище виконання доступні для різних платформ, в тому числі Linux, Mac OS X і Windows. В якості додаткових утиліт виступають інтерактивне середовище розробки (IDE), заснована на Eclipse, і відладчик, які поширюються за ліцензією Eclipse Public License.
Досліджуваний мова програмування № 9: haXe
Багато мови можна використовувати для написання переноситься коду. C-компілятори доступні практично для всіх ЦПУ архітектур, а Java-байткод буде виконуватися всюди, де є JVM. Але haXe (вимовляється як «Хекс») є більш ніж просто стерпним. Це мультиплатформенний мову, який може використовуватися в різних операційних середовищах, починаючи від вбудованих довічних систем до інтерпретаторів і віртуальних машин.
Незважаючи на те, що haXe все ще знаходиться в розробці, він вже використовується в комерційних цілях своїм творцем, ігровий студією Motion Twin, так що все серйозно. Він доступний для Linux, Mac OS X і Windows по комбінації безкоштовних ліцензій.
Досліджуваний мова програмування № 10: Chapel
У світі високопродуктивних обчислень рідкісні імена звучать голосніше, ніж Cray. Нікого не повинно дивувати те, що Chapel. перша мова програмування, створена Cray, був розроблений з урахуванням суперкомп'ютерних обчислень і кластеризації.
Chapel є частиною програми Cray Cascade Program. масштабного проекту по високопродуктивних обчисленнях, частково профінансованого американським Управлінням перспективних дослідницьких програм в області оборони (DARPA). Серед цілей даного проекту знаходяться відділення алгоритмів паралельної обробки від використовуваного обладнання, поліпшення їх продуктивності на архітектурі і збільшення портативності паралельних програм.
Синтаксис Chapel складений з синтаксисів декількох мов. На додаток до найбільш часто використовуваних (C, C ++, Java), в ньому запозичені поняття з таких мов наукового програмування, як Fortran і Matlab. На його функції паралельної обробки даних вплинули ZPL і High-Performance Fortran, а також попередні проекти Cray.
Однією з найбільш привабливих функцій Chapel є його підтримка «програмування зі змінною роздільною здатністю», що дозволяє розробникам створювати додатки з дуже абстрактним кодом і робити доповнення в міру того, як реалізація стає більш визначеною.
Робота над Chapel триває. На даний момент він може бути запущений на суперкомп'ютерах Cray і різних високопродуктивних кластерах, але його можна перенести на більшість систем типу Unix (в тому числі на Mac OS X і Windows за допомогою Cygwin). Вихідний код доступний по безкоштовній ліцензії типу BSD.
Ключові слова: мови майбутнього, найперспективніші, просунуті мови програмування, порівняння мов програмування, сучасні і розвинені мови завтрашнього дня, затребувані завтра, сучасні і бурхливо розвиваються мови, майбутній, передові мови програмування, унікальні, наступне покоління.
Захід Рунета вручну
- Кхарн »Все зрозуміло, цікаво. Одне питання, які нахрен "більшовички" у вас? Вас уже забанили в гуглі і ви не розумієте, в чому різниця між більшовиками з радянською владою і нинішніми олігархами у.
Пояснюємо суть MapReduce "на пальцях"
- Kostia »Більш менш зрозуміло як працює, але не зашкодить ще розповісти, чим цей підхід такий хороший, і яку користь (в порівнянні з альтернативами) він приносить.
Рунет приречений. Частина 2
До питання про VPN і його кармічно-негативному трафіку
- NoSupport »Дзвінок в тех. підтримку провайдера: "Пінг на вас не йде, показує обрив лінії". Відповідь з Сапорта - у вас віруси на виндовс. "У мене опен Сусі. Немає Віндовс". Сапорт в впадає.
- Mikhail »» не жив в СРСР, не може не розуміти Прошу вибачення, одне _не_ явно зайве.
- Неанонім »2NoSupport: 95% дзвінків відбиває стандартної перевіркою, для решти 5% у вигляді нестандартних осей, мікротіков, людей, які знають, що кажуть є друга-третя лінії або оформлення тікета. Ну і рідкісний птах у вигляді.
- Анонім »Після Сноудена завжди стежу за новинами про те як держава любить лізти в наші труси, але. Але в даному випадку тут навіть не пахне, а смердить нобросом на вентилятор.
ФСБ взяла за жопу: історія на ніч для адмінів і блогерів
- Аз Воздамов »Чувак зробив фейк про самого себе. Нахер він потрібен фсб