Потреба мов програмування. Сучасні мови програмування та їх використання

💖 Подобається?Поділися з друзями посиланням

Однією з найбільш використовуваних систем оцінки популярності мови програмування є TIOBE , суть якої полягає у підрахунку кількості веб-сторінок, у яких є назва тієї чи іншої ЯП.

Однак, це не завжди говорить про те, скільки людей насправді в Наразіхочуть використовувати або використовують будь-яку мову програмування, тому команда GitHub підійшла до цього питання з іншого боку.

Їхня система під назвою PYPL (PopularitY of Programming Languages) заснована на кількості пошукових запитівтуторіалів: чим більше людей шукають посібники з конкретної мови програмування, тим вище він у рейтингу PYPL.

10. Swift

Мова з'явилася не так давно, але Apple хоче, щоб вона стала ключовою по всьому світу і для всіх платформ, включаючи веб і Android, вже в найближчі 20 років.

9. R

R був створений у 1993 році і сьогодні використовується великими компаніями для машинного навчання та аналізу великих даних.

8. Objective-C

Незважаючи на те, що спочатку Swift був випущений, щоб замінити Objective-C, ця мова все ще залишається популярною і є передовою для розробки на iOS. Але, мабуть, це скоро зміниться.

7. З++

Найбільш популярними продуктами, написаними на C++, є Windows та Google Chrome.

6. C

Папа може в Сі. Напевно, тому ця мова використовується скрізь, і код нею можна запустити буквально на будь-якій обчислювальній платформі.

5. JavaScript

Саме ця мова зазвичай розташована на першому місці у різних рейтингах. Однак на думку GitHub він не є найпопулярнішим. JavaScript використовується в основному для розробки веб-застосунків, але насправді обмежень для нього немає.

4. C#

C# розроблений компанією Microsoftі використовується в основному в пов'язаних з нею системах, наприклад, Windows Phone. Також на C# написано пошуковик Bing.

3. PHP

Ця мова – найпопулярніший вибір для розробки бекенда. На ньому написані такі сайти як Facebook, ВКонтакте, Yahoo.

2. Python

Python був створений у 1989 році і з того часу, здається, стає все більш популярним.

В умовах динамічно змінного світу, коли ще вчора шановні професії перетворюються на ніщо, багато людей шукають чим зайнятися в житті, щоб це було і цікаво та актуально нинішньому часу, і водночас прибутково. Дуже часто такі пошуки призводять до програмування: хороші програмісти навіть у СНД заробляють тисячі доларів, мають чимало вільного часу, можливість працювати віддалено та мають шанси на кар'єрне зростання.

Крім зазначених переваг, програмування відрізняється і тим, що для його освоєння зовсім не потрібно витрачати роки часу, протираючи штани в університетах. Тут все вирішує самоосвіта, в інтернеті є всі необхідні матеріали для успішного самонавчання будь-якій мові програмування: уроки в текстовому вигляді, відео, уроки, інструкції, поради від досвідчених фахівців та інші освітні матеріали. У такий спосіб можна легко освоїти сучасні технології програмування та знайти по-справжньому гідну роботу.

Але перед тим, як взятися за справу, потрібно відповісти собі на одне важливе питання: які сучасні мови програмування у 2017 році будуть актуальними, якою з них витрачати свій час та зусилля? Від правильної відповіді тут залежить дуже багато – складність та швидкість процесу навчання, мінімальний поріг входження у реальну діяльність, подальші перспективи у кар'єрному плані.

Перспективні галузі програмування та мови на 2017 рік

Щоб визначитися з конкретною мовою програмування для вивчення (одним або декількома) потрібно спочатку відповісти собі на запитання: в якій галузі програмування людині хотілося б працювати. Найбільш популярними сферами, що бурхливо розвиваються, зараз виступають:

Технології програмування.Створення сайтів, онлайн сервісівта банкінгів, інтернет магазинів, лендинг сторінок для бізнесу тощо – все це є частиною веб-програмування. Все більше людей на планеті стають користувачами інтернету, він стає дедалі швидшим і дешевшим, активними користувачами мережі стають навіть люди зрілого та похилого віку. У 2017 році ця тенденція тільки посилюється і стелі її розвитку ще не видно. Тому дуже вигідно вивчати мови програмування, пов'язані з інтернетом. Список найпопулярніших із них буде представлений нижче;

Програмування для гаджетів: смартфонів, планшетів, смарт годинників, окулярів. віртуальної реальностіта інше. Це також дуже цікава область діяльності, що швидко розвивається. Мільярди людей у ​​всьому світі користуються гаджетами, читають на них новини, дивляться відео, слухають музику та займаються масою інших речей. Всі ці функції електроніки можливі завдяки добре написаному програмному забезпеченню. Часто воно коштує набагато дорожче, ніж саме фізичний пристрій. Програмувати у цій сфері зараз дуже вигідно. Варто зазначити, що тут найчастіше використовуються мови програмування високого рівня.

Яку мову вибрати

Не можна сказати, яка мова найсучасніша. Багато хто з них використовується дуже широко і активно. Але якщо йдеться про перспективних мовахпрограмування, то найкращими можна назвати такі:

  • Java. Найбільш універсальна та популярна мова програмування, за допомогою якої можна розробляти як додатки для комп'ютерів, так і для гаджетів, особливо під керуванням Android ОС. Він має зрозумілий синтаксис, навчається досить легко та швидко, перші програми на Джава можна писати вже через кілька тижнів після початку навчання. Головна характеристика, яка робить його дуже перспективним – використанням для програмування під Android, що зараз розвивається дуже бурхливо;
  • C#. Відмінний варіант для людини, яка хоче присвятити свою діяльність написанню програм під комп'ютерні системи. Саме мова CІ Шарп (C#) є тією основою, на якій пишеться більшість програм для різних платформ та сервісів від Microsoft. З його допомогою можна як розробляти веб-додатки із застосуванням .NET і Azure, так і програми безпосередньо для ОС Windows, різних програм для бізнесу та багатьох інших речей. Щоб розібратися в C#, доведеться трохи попітніти, але це окупиться;
  • PHP. Якщо Ваше завдання – писати якісні скрипти та інтерактивні шаблони для інтернет ресурсів або бути адміністратором якогось сервера, що зараз є дуже вигідним заняттям, то PHP буде найкращим способомреалізувати подібне прагнення. Сучасні мовиПрограмування просто не можуть обійтися без цього представника. Вчиться він досить таким швидко та легко – якщо вивчати PHP ретельно та регулярно, то вже через 2-3 роки можна претендувати на дуже непогану посаду та відповідну зарплату.

Звичайно, це далеко не повна характеристикамов та їх класифікація, але навіть такого невеликого списку цілком достатньо, щоб вибрати для себе гарну та перспективну сферу діяльності.

Повний огляд сучасних мов програмування міг би зайняти занадто багато часу, але це не так необхідно, оскільки варто пам'ятати головне – людина, яка добре володіє хоч якоюсь мовою, обов'язково зможе знайти своє місце у сфері програмування. А знання однієї із зазначених мов обов'язково буде достатньо, щоб добре заробляти та вирішувати цікаві завдання.

1. При виборі мови програмування на проект вибір постає між двома сторонами - вибрати старий перевірений інструмент або новий, красивий, функціональний, але мало перевірений, а отже, ненадійна мова. Як розумніше вчинити у цій ситуації? Які ризики кожного з рішень і як з ними впоратися?

Ігор Зільберг, SmartHead
Потрібно вибирати інструменти за адекватністю завдання та наявності досвідченої команди, знайомої з обраними інструментами. Ризики під час роботи з новими інструментами мінімізуються дослідженнями, створенням proof of concept, залученням досвідчених консультантів. Нові технології повинні вивчатися постійно, але застосовуватися тільки якщо вони краще підходять для вирішення конкретного завдання.

Олександр Макарчук, qb
Для бізнесу поняття «гарної мови» немає. Зробити ставку на нову неперевірену мову можна лише в тому випадку, якщо вона гарантовано дасть проекту якесь особливе УТП, яке клієнти зможуть відчути, а головне – захочуть за нього заплатити. Якщо ця умова виконується, то вибрати нова моваможна, але при цьому доведеться прийняти на себе та всі пов'язані з ним ризики.

Григорій Ніконов, Actis Wunderman
Звичайно ж, залежить від проекту та зрілості самої мови. Якщо проект дозволяє, або використання мови є необхідною умовою, і доступні потрібні предметні бібліотеки, цілком можна дозволити експеримент. Ризики очевидні: «підводне каміння», на яке можна натрапити на половині шляху. Мінімізація цих ризиків також очевидна: по можливості провести дослідження до початку проекту та переконатися, що, як мінімум, є активна підтримка мови у форумах або у виробника.

, ADV
У цьому питанні все залежить від термінів та бюджетів проекту. Якщо і те, і те дуже обмежене, то будь-які дослідження не виправдані і здатні принести великі проблеми, аж до повного провалу проекту.

Олексій Федоров, «Однокласники»
Відповідь сильно залежить від того, яка запланована тривалість проекту. Якщо це невеликий проект на замовлення, який треба швидко зробити, здати та забути про нього – тоді можна обирати все, що завгодно. Якщо це великий проект на рік - краще вибрати перевірені технології, на які можна буде найняти потрібну вам кількість фахівців. Для того, щоб оцінити, скільки у вашому регіоні є фахівців за тією чи іншою технологією, достатньо скористатися будь-яким розумним сервісом, наприклад LinkedIn або HeadHunter. А далі вже потрібно дивитися на нефункціональні вимоги: навантаження, безпека, стійкість до відмови і т.п.

2. Які істотні фактори дають гарантію, що мову можна і потрібно використовувати на продакшні?

Ігор Зільберг, SmartHead
Гарантії у цьому світі не дає ніхто і ніщо. Ми покладаємося на свій досвід та поширені best practice.

Олександр Макарчук, qb
Можна виділити три основні ознаки, які говорять про те, що використовувати ту чи іншу мову вигідно та безпечно. По-перше, наявність у цієї мови «живого» комьюніті, по-друге, наявність успішних кейсів, і по-третє, підтримка мови великими вендорами.

Григорій Ніконов, Actis Wunderman
Наявність «зрілих» предметних бібліотек та фреймворків, активна інтернет-спільнота, що пропонує поради у вирішенні проблем, відсутність негативних відгуків про стабільність та продуктивність кінцевого додатка.

Олексій Персіанов, Михайло Парфенюк, ADV
Чинниками є ком'юніті даної мови, кількість реалізованих проектів, кількість розробників та інше. Випуск на продакшн продукту новою та сирою мовою приховує великі проблеми з підтримкою.

Олексій Федоров, «Однокласники»
Формальна гарантія може бути підкріплена лише договором. Якщо є серйозний вендор (наприклад, Oracle, SAP, IBM), який гарантує, наприклад, що його технологія буде підтримуватися протягом найближчих 10 років, і з цим вендором підписаний відповідний Support Contract, то, в принципі, ви можете вважати це якоюсь гарантією . Проблема в тому, що зазвичай це дуже дорого, а якість сапорта у великих вендорів, як правило, огидна.

Тому у світі останніми роками прийнято іншу практику - open source. Якщо у вас є опенсорсний інструмент (мова, фреймворк, база даних або все, що завгодно) з відкритим вихідним кодом, то це вам дає деяку гарантію того, що якщо в цьому інструменті раптом виявиться баг, то в крайньому випадку зможете поправити цей баг своїми руками. Саме цю властивість opensource-рішень я вважаю ключовою для сьогоднішнього бізнесу.

3. Як діяти, якщо розробник або навіть кілька розробників пропонують зміну мови програмування, але за ситуацією видно, що їхній азарт не підкріплений адекватними бізнес-вимогами до технології?

Ігор Зільберг, SmartHead
Розробники не висувають бізнес-вимог. Їх показує бізнес. Проте бізнес залежить від якості коду, який пишуть розробники. Тому якщо розробники хочуть використовувати технологію, яка явно не підходить для вирішення бізнес-завдання, то треба або переконати розробників, або поміняти. Адекватний і досвідчений розробник може зрозуміти бізнес-вимоги і застосувати найбільш адекватне їм рішення. У нас таких проблем не було. У нашій практиці частіше відбувається навпаки: замовник замість формулювати бізнес-вимоги впливає на вибір технології (часто на шкоду реалізації власних вимог).

Олександр Макарчук, qb
Якщо перехід новою мовою не підкріплений відчутними аргументами і обіцяє проекту серйозних переваг, він не потрібен. Але розробникам, звичайно, це необхідно пояснити, щоб у команди не складалося враження, що до неї не дослухаються.

Григорій Ніконов, Actis Wunderman
Дотримуватися консервативної політики та не змінювати мову без вагомих підстав. Завжди буде інший проект, яким можна буде випробувати нову мову.

Олексій Персіанов, Михайло Парфенюк, ADV
Піти назустріч розробникам можна лише у разі внутрішнього проекту, або якщо він пишеться для навчання команди. І тут ризики невдачі невеликі, і за невдачі виноситься корисний досвід у майбутнє. Інакше бізнес не оцінить перфекціонізм розробників.

Олексій Федоров, «Однокласники»
По-перше, слід запитати, чим обґрунтовано ідею щодо зміни мови. Що це дасть? Які плюси та які мінуси? Яка вартість такого переходу та які терміни? Які ризики?

Якщо отримані відповіді вас влаштовують із погляду бізнесу – вперед. Якщо не влаштовують - потрібно постаратися донести до розробників причини, через які ви їм відмовляєте.

4. Коли витрати на перехід з однієї мови на іншу варті того?

Ігор Зільберг, SmartHead
Оцінити витрати на зміну платформи та супутні вигоди неможливо поза контекстом проекту. Таке рішення може ухвалюватися лише на підставі усвідомленого підходу в рамках конкретного проекту, а не на підставі будь-яких «універсальних» думок чи правил.

Олександр Макарчук, qb
Коли це спричинить відчутний прибуток, як прямий, так і непрямий внаслідок появи у проекту нового УТП, яке зробить продукт більш конкурентоспроможним.

Григорій Ніконов, Actis Wunderman
У разі, коли використання нової мови дозволяє суттєво оптимізувати весь життєвий ланцюжок предметної галузі: від проектування, розробки та тестування додатка до впровадження та подальших оновлень та доопрацювань за рахунок властивостей мови та екосистеми навколо неї.

Олексій Персіанов, Михайло Парфенюк, ADV
Коли підтримка мови припинена, а разом з тим кількість фахівців на ринку прагне до нуля. Або, якщо ви повністю втрачаєте стару команду без можливості зберегти технології. Коли прибуток від мови буде більше, ніж витрати на його перехід.

Олексій Федоров, «Однокласники»
Коли у вас та ваших колег є чіткі відповіді на зазначені вище питання.

5. Чи вважаєте ви, що існує постійне поділ застосування мов для певних завдань? Якщо так, то як саме ви його бачите? Чи може з'явитися чи вже існує мова, яка змінить ситуацію і перетягне на себе більшу частину розробників?

Ігор Зільберг, SmartHead
Звичайно, є деякі типові сфери застосування різних платформ(Не мов). Наприклад, Java і .NET для великих бізнес-додатків або сервісів. Node.js для багатопотокової обробки та месенджингу. Усі не перерахувати. Однак ці кордони дуже розмиті і залежать так само від регіону. У США, наприклад, трохи інший досвід використання, «мода» та типові сфери застосування платформ, ніж у нас.

Олександр Макарчук, qb
З одного боку, постійне поділ мов із застосування існує, але з іншого - досить сильне значення мають регіональні та цінові фактори: вартість входження в технологію, підтримки тощо. Щодо появи нових мов, то тут треба помітити таку річ. За останні кілька років рівень комунікації виріс значно, а мови програмування, по суті, ті самі. Можливо, саме подальша революція в галузі комунікацій спричинить абсолютно нові технології розробки.

Григорій Ніконов, Actis Wunderman
У принципі такий поділ є: мови C і C++ традиційно використовуються для низькорівневої розробки, Java і C# вважаються мовами загального призначення, що підходять для широкого спектру завдань від бізнес-логіки до мобільних додатків. Python, Ruby та PHP націлені в основному на веб-розробку, JavaScript - на браузерні програми. Не думаю, що можливі різкі зміни в цій галузі, хоча мода на мови та фреймворки іноді змінюється – зараз, наприклад, починає набирати популярності мову Go.

Олексій Персіанов, Михайло Парфенюк, ADV
Так. Деякі речі краще реалізуються різними мовами через швидкість роботи і простоту використання, наприклад, у php-проектах через «повільність» мови можна реалізувати чат на Node або агрегатор на Java - результат буде кращим.

З кожним роком кожна нова мова отримує лаври «найкращого» і перетягує на себе розробників, але поки що, напевно, позиції перевірених мов непорушні. У майбутньому все може бути.

Олексій Федоров, «Однокласники»
Більшість відомих нам з вами сучасних мов програмування є багатофункціональними, тобто на них можна робити різні рішення.

Щодо нової мови - так, така мова з'явитися може, але через досить сильну інертність індустрії я не думаю, що в найближчі 5 років хтось потіснить Java і С/C++ з п'єдесталу. Якщо ж і вибирати якусь «конячку», то я поставив би JavaScript. Сьогодні ми бачимо в індустрії величезне зростання всього, пов'язаного з JavaScript. Фреймворки народжуються як гриби після дощу. Хайп в інтернеті довкола цієї технології величезний. Подивимося, до чого все це приведе.

6. Чи повинен програміст бути DevOps (володіти навичками програміста і системного адміністратора)? Що робити з тим, що більшість програмістів відмовляються розвивати компетенції та нести відповідальність у цій галузі?

Олексій Персіанов, Михайло Парфенюк, ADV
Для настроювання оточення зазвичай користуються послугами системного адміністратора. Але, напевно, є сенс у тому, що людина, яка пише код, повинна сама вміти налаштувати майданчик для оптимального виконання цього коду. Це заощадить час та витрати.

7. Чи варто використовувати мікросервіси у своїх проектах?

Олексій Персіанов, Михайло Парфенюк, ADV
Однозначної відповіді немає, але наша відповідь – так. Безумовно, вони можуть додати чимало проблем, але й допоможуть вирішити багато хто. Наприклад, завдяки мікросервісам різні частини програми можна писати різними мовами програмування, є можливість масштабувати навантажені частини програми та ін.

8. Чи повинен розробник вміти працювати з широким спектром сучасних веб-технологій та мов?

Олексій Персіанов, Михайло Парфенюк, ADV
Останніми роками величезний ривок зробив фронтенд, причому у серверних мовах розвиток менш помітний. Розробник, безумовно, повинен знати основи суміжних напрямів, але бути гуру в серверних мовах і клієнтських неможливо, кожен повинен займатися своєю справою і бути в ньому справжнім професіоналом.

  • Переклад

Якщо розділяти мови програмування за популярністю, то вони поділяються на три ешелони. Перший ешелон включає мейнстрім-мови, такі як Java, JavaScript, Python, Ruby, PHP, C#, C++ та Objective-C. Незважаючи на те, що деякі з провідних мов можливо в'януть, вам краще знати один або кілька з них, якщо ви хочете мати можливість легко знайти роботу.


Мови другого ешелону намагаються пробитися в мейнстрім, але ще не досягли цього. Вони довели свою спроможність шляхом створення сильних угруповань, але вони досі не використовуються більшістю консервативних IT-компаній. Scala, Go, Swift, Clojure та Haskell – мови, які я б відніс до другого ешелону. Деякі компанії використовують ці мови для окремих сервісів, але широке застосування зустрічається рідко (за винятком Swift, який починає обганяти Objective-C як основну мову для iOS). Go та Swift мають хороші шанси на перехід з другого ешелону до першого протягом найближчих двох-трьох років.


Більшість мов у першому ешелоні міцно укоренилися на своїх позиціях. Тому випадання мови з лідируючих позицій займає відчутний час, а мови другого ешелону дуже важко пробитися в перший.


Перспективні мови з цієї статті відносяться до третього ешелону, і вони лише починають свій шлях нагору. Деякі мови перебувають у третьому ешелоні протягом багатьох років, не набуваючи популярності, тоді як інші вриваються на сцену лише за кілька років. Як, наприклад, мови, про які йтиметься у статті.

Перспективні мови: чому ці п'ять?

П'ять мов програмування, про які йтиметься, дуже нові (не виключено, що про якесь ви почуєте вперше), і вони явно мають чудові шанси пробитися в другий ешелон у найближчі 2-3 роки. Можливо, колись одна з цих мов зможе потіснити і мови першого ешелону.


Ось чому ці п'ять мов було обрано для цього списку:


Elm набирає популярність у співтоваристві JavaScript, в першу чергу серед тих, хто віддає перевагу функціональному програмуванню, яке знаходиться на підйомі. Як і TypeScript або Dart, Elm транспілюється у JavaScript.


Rust є мовою системного програмування, призначеною в основному для ніш, де застосовують С і С++. Тому дивно бачити, що популярність цієї мови швидше зростає серед веб-розробників. Цей факт стає більш осмисленим, коли ви з'ясовуєте, що мова була створена в Mozilla, яка хотіла дати кращий варіант веб-розробникам, які змушені писати низькорівневий код, і при цьому продуктивніший, ніж PHP, Ruby, Python або JavaScript. Rust був також визнаний найкращим у номінації ”найулюбленіша технологія” за результатами опитування розробників, проведеного StackOverflow у 2016 році (це означає, що більшість користувачів хотіли б продовжувати використовувати цю мову).


Kotlin існує вже близько п'яти років, але тільки цього року він досяг production-ready версії 1.0. Незважаючи на те, що він ще не досяг популярності Scala, Groovy або Clojure - три найпопулярніші і зрілі (не рахуючи Java) мови під JVM - він виділяється з безлічі інших JVM-мов і, здається, готовий зайняти своє місце серед лідерів цієї групи . Мова виникла в JetBrains (творець популярної IntelliJ IDEA IDE). Тож він продуманий з упором на продуктивність праці розробників.


Crystal - ще одна мова, яка сподівається принести продуктивність програм на рівні C у високорівневий світ веб-розробників. Crystal орієнтований на Ruby-спільнота, т.к. його синтаксис подібний, а часом ідентичний, Ruby. І так велика кількість стартапів на Ruby продовжує зростати, і Crystal може зіграти ключову роль, допомагаючи підняти продуктивність цих додатків на наступний рівень.


Elixir також черпав натхнення з екосистеми Ruby, але замість намагатися принести C-подібні переваги, він орієнтований створення високодоступних, чуйних систем , тобто. на те, з чим Rails має проблеми на думку критиків. Elixir досягає цих переваг за допомогою Erlang VM, яка має міцну репутацію, що базується на 25 роках успішного застосування в телекомунікаційній галузі. Phoenix (веб-фреймворк для Elixir), поряд з великою та квітучою екосистемою, надає цій мові додаткову привабливість.


Тепер погляньте, як чотири з цих п'яти мов дерються сходами популярності (на основі даних StackOverflow і GitHub):




Кожна з цих мов може похвалитися захопленою спільнотою і власним щотижневим розсиланням новин. Якщо ви думаєте про вивчення молодої мови з захоплюючими можливостями для майбутнього, прочитайте короткі презентації для кожної з цих п'яти мов, написані досвідченими ентузіастами та лідерами відповідних екосистем.

Elm

Elm - функціональна мова програмування, орієнтована на зручність та простоту використання, яка компілюється у високопродуктивний JavaScript-код. Ви можете використовувати його, в тому числі і спільно з JavaScript, для створення інтерфейсів користувача в інтернеті. Основними перевагами Elm у порівнянні з JavaScript є надійність, легкість у підтримці та націленість на задоволення від програмування. Більш конкретно:

  • Немає виключень runtime: Elm-код має репутацію ніколи не викидає винятків під час виконання. Зовсім не те, що "undefined is not a function."
  • Легендарно люб'язний компілятор:компілятор Elm часто хвалятьза найкорисніші повідомлення про помилки серед конкурентів. "Якщо він компілюється, то, як правило, все просто працює" - це поширена думка, навіть після серйозного рефакторингу. Це робить великі проекти на Elm набагато легше у підтримці, ніж пропорційні проекти на JS.
  • Семантичне версіонування: elm-package забезпечує дотримання семантичних версій автоматично. Якщо автор пакету намагається зробити ламаючі API зміни, не піднімаючи основний номер версії, elm-package виявить це та відмовить у публікації нової версіїпакет. Жоден інший відомий менеджер пакетів не забезпечує дотримання семантичного версіонування настільки надійно.
  • Швидкий та функціональний: Elm є чистою функціональною мовою, яка гарантує відсутність мутацій та побічних ефектів. Це не тільки забезпечує прекрасну масштабованість Elm-коду, але також допомагає йому рендерувати UI програми швидше, ніж React, Angular або Ember.
  • Потужні інструменти: elm-format форматує вихідний кодвідповідно до стандарту спільноти. Немає більше суперечок щодо конвенцій оформлення коду. Просто натискаєте кнопку "Зберегти" у вашому редакторі і ваш код стає гарним. elm-test поставляється з "батарейками" для підтримки як модульного, так і випадкового тестування. elm-css дозволяє писати Elm-код, який компілюється в css-файл, так що ви можете розділяти код між програмою та таблицями стилів, щоб гарантувати, що ваші константи ніколи не розсинхронізуються.

Elm код також може взаємодіяти з JavaScript. Тобто ви можете вводити його в малих дозах у ваш JS код і ви все ще можете використовувати величезну екосистему JS і не винаходити колесо.

Kotlin

Kotlin є статично типізована мова, яка орієнтована на JVM і JavaScript. Kotlin народився з потреби JetBrains, яка шукала нову мову для розробки свого набору інструментів (яка була в основному написана на Java). Щось, що дозволило б їм використовувати існуючу кодову базу і в той же час вирішити деякі проблеми, які виникли через Java. І саме вирішення цих поширених недоліків, що зустрічаються під час написання програмного забезпечення, визначили більшість характеристик Kotlin.

  • Лаконічність:зменшити кількість шаблонного коду, необхідного для вираження певних конструкцій.
  • Універсальність:створити мову, яка підходить для будь-якого типу промислового застосування, будь то веб, мобільна розробка, desktop або серверні програми.
  • Безпека:нехай мова сама обробляє деякі з найпоширеніших помилок, пов'язані з такими питаннями, як null reference exceptions.
  • Взаємодія:дозволити мові взаємодію з існуючими базами коду на Java, бібліотеками та фреймворками, що забезпечує можливість поступового впровадження та використання результатів уже вкладених інвестицій.
  • Інструменти: JetBrains робить інструменти і робить їх, виходячи з переконання, що багато рутинні завданняможна автоматизувати та призвести до більш ефективної та продуктивної розробки. Таким чином, мова повинна легко дозволяти використовувати допоміжні інструменти.

Kotlin був і завжди буде націлений на прагматизм - вишукуючи поширені проблеми, з якими ми часто стикаємося під час написання коду, і намагаючись допомогти у їх вирішенні. Це проходить червоною ниткою через різні мовні особливості, такі як:

  • Null-safe за замовчуванням:типи Kotlin за замовчуванням не обнулюються, що дозволяє уникнути настирливих винятків, пов'язаних із порожніми посиланнями/покажчиками.
  • Делегація першого класу:можливість делегувати функціональність члена класу зовнішньої функції, що полегшує повторне використання та покращує композицію.
  • Угоди:ряд угод, які дозволяють писати виразний код, відкриваючи шлях до створення сильно типізованого DSL, який покращує читабельність та спрощує рефакторинг.
    html ( head ( title (+"XML encoding with Kotlin") ) body ( p ( + "This is some HTML" ) ) )

Kotlin 1.0 був випущений у лютому 2016 року, понад п'ять років розробки та ретельного тестування в реальних проектах. В даний час понад десять продуктів JetBrains використовують Kotlin. Також його використовують такі компанії, як Amex, NBC Digital, Expedia та Gradle.


Для отримання додаткової інформаціївідвідайте kotlinlang.org


Цей розділ написав

Назва доповіді

Сучасні мови програмування та їх використання

Автор проекту

Структура проекту

● Схема класифікації мов програмування

● Класифікація мов програмування

● Огляд мов програмування

● Корисні ресурси

Схема класифікації мов програмування

Класифікація мов програмування

Процедурне програмування- Є відображення фон Нейманівської архітектури комп'ютера. Програма, написана процедурною мовою, є послідовність команд, визначальних алгоритм розв'язання задачі. Основна ідея процедурного програмування – використання пам'яті для зберігання даних. Основна команда-присвоєння, з допомогою якої визначається і змінюється пам'ять комп'ютера. Програма здійснює перетворення вмісту пам'яті, змінюючи його від вихідного станудо результуючого.

Розрізняють такі мови процедурного програмування:

 Мова Фортран створена на початку 50-х років 20-го століття для програмування науково-технічних завдань;

 Кобол – створений наприкінці 60-х років 20-го століття для вирішення завдань обробки великих обсягів даних, що зберігаються на різних носіях даних;

 Алгол (1960 рік) – це багатоцільова розширена мова програмування. У ньому вперше запроваджено поняття «блочна структура програми» та «динамічний розподіл пам'яті»;

 У середині 60-х років 20-го століття було створено спеціалізовану мову програмування для початківців – BASIC. Характеризується простотою освоєння та наявністю універсальних засобів для вирішення наукових, технічних та економічних завдань, а також завдань, наприклад, ігрових.

Усі перелічені вище мови були спрямовані різні класи завдань, але вони у тому мірою були прив'язані до конкретної архітектурі ЕОМ.

 У 1963-1966 рр. було створено багатоцільову універсальну мову PL-1. Ця мова добре пристосована для дослідження та планування обчислювальних процесів, моделювання, вирішення логічних завдань, розробки систем математичного забезпечення.

 Мова Паскаль (PASCAL) (1968-1971гг)- мова процедурного програмування найбільш популярна для ПК, яка і в даний час успішно застосовується. В основу мови Pascal покладено підхід від загального завдання до приватних (простіших і менших за обсягом). До основних принципів, якими володіє Паскаль, можна віднести: а) Структурне програмування, що ґрунтується на використанні підпрограм та незалежних структур даних; б) Програмування «згори-вниз», коли завдання ділиться на прості завдання, що самостійно розв'язуються. Потім вибудовується вирішення вихідного завдання повністю зверху донизу.

 До мов процедурного програмування можна віднести мову АДА (1979 г) Мова названа на честь першої програмістки Ади Лавлейс- дочки Байрона. Його відрізняє модульність конструкцій.

 Мова СІ (початок 70-х років) також відноситься до мов процедурного програмування. Початковий його варіант планувався як мова для реалізації операційної системи Unix замість мови Асемблера. Однією з особливостей мови СІ є те, що відмінності між виразами та операторами згладжуються, що наближає його до функціональних мов програмування. Крім того, в мові СІ відсутнє поняття процедури, а використання підпрограм засноване на понятті функції, яка може поєднувати можливості процедури. З одного боку, за набором керуючих конструкцій та структур даних його можна віднести до мов високого рівня, а з іншого – він має набір засобів прямого звернення до функціональним вузламкомп'ютера, а це означає, що його можна використовувати як операційну мову.

Об'єктно-орієнтоване програмування (ООП)- це метод програмування, з якого головними елементами програм є об'єкти. У мовах програмування поняття об'єкта реалізовано як сукупність властивостей (структур даних, характерних для даного об'єкта), методів їх обробки (підпрограм зміни їх властивостей) та подій, на які даний об'єктможе реагувати та, які призводять, як правило, до зміни властивостей об'єкта. Об'єднання даних та властивих їм процедур обробки в одному об'єкті називається інкапсуляцією і є одним з найважливіших принципів ООП.

Іншим фундаментальним поняттям є клас. Клас це шаблон, на основі якого може бути створений конкретний програмний об'єкт, він описує властивості та методи, що визначають поведінку цього класу. Кожен конкретний об'єкт, що має структуру цього класу, називається екземпляром класу.

Наступними найважливішими принципами ООП є успадкування та поліморфізм. Спадкування передбачає створення нових класів на базі існуючих і дозволяє класу нащадку мати (успадковувати) всі властивості класу – батька.

Поліморфізм означає, що народжені об'єкти мають інформацію про те, які методи вони повинні використовувати в залежності від того, де вони знаходяться.

Іншим найважливішим принципом ООП є модульність – об'єкти містять у собі повне визначення їхніх характеристик, ніякі визначення методів і властивостей нічого не винні розташовуватися поза ним, це уможливлює вільне копіювання та впровадження одного об'єкта на інші.

Найбільш сучасними мовами програмування є С++ та Java. З середини 90-х багато об'єктно-орієнтовані мови реалізуються як системи візуального проектування, в яких інтерфейсна частина програмного продукту створюється в діалоговому режимі, практично без написання програмних операторів. До об'єктно - орієнтованим системамВізуального проектування відносяться Visual Basic, Delphi, C++ Builder, Visual C++. Мова VBA (Visual Basic for Application) – мова програм Microsoft Office (Excel, Word, Power Pointта ін). VBA дотримується основного синтаксису мови та правил програмування мов Basic – діалектів, дозволяє створювати макроси для автоматизації виконання деяких операцій та графічний інтерфейскористувача, інтеграцію між різними програмними продуктами.

Декларативні мови програмування

До них відносяться функціональні та логічні мови програмування. Функціональне програмування- це спосіб складання програм, у яких єдиною дією є виклик функції. У функціональному програмуванні не використовується пам'ять, як місце зберігання даних, а, отже, не використовуються проміжні змінні, оператори присвоювання і цикли. Ключовим поняттям у функціональних мовах є вираз. Програма, написана функціональною мовою, є послідовністю опису функцій і виразів. Вислів обчислюється зведенням складного до простого. Усі вирази записуються як списків. Першою мовою стала мова Лісп (LISP, LIST Processing-обробка списків) створена в 1959р. Ця мова дозволяє обробляти більші обсяги текстової інформації. Логічне програмування-це програмування в термінах логіки. У 1973 році була створена мова штучного інтелекту Пролог (Prologming in Logic). Програма мовою Пролог будується з послідовності фактів та правил, потім формулюється твердження, яке Пролог намагається довести за допомогою правил. Мова сама шукає рішення за допомогою методів пошуку та зіставлення, які в ньому закладені. Логічні програми не відрізняються високою швидкодією, оскільки процес виконання зводиться до побудови прямих і зворотних ланцюжків міркувань різноманітними методами пошуку.

Огляд мов програмування

Асемблер

Мови програмування комп'ютерів поділяються на 2 основні групи:

1) мови низького рівня;

2) мови високого рівня.

До мов низького рівня належать мови Ассемблера. Свою назву вони отримали від імені системної програми Асемблер, яка перетворює вихідні програми, написані такими мовами, безпосередньо на коди машинних команд. Частинами тут є оператори, а результатом складання послідовність машинних команд Мова Асемблера поєднує в собі переваги мови машинних команд і деякі риси мов високого рівня. Асемблер забезпечує можливість застосування символічних імен у вихідній програмі та позбавляє програміста від стомлюючої праці (неминучим при програмуванні мовою машинних команд) щодо розподілу пам'яті комп'ютера для команд, змінних та констант.

Асемблер дозволяє також гнучко та повно використовувати технічні можливості комп'ютера, як і мову машинних команд. Транслятор вихідних програм в асемблері простіше транслятора, потрібний для мови програмування високого рівня. На асемблері можна написати таку ж ефективну за розміром і часом виконання програму, як і програму мовою машинних команд. Ця перевага відсутня у мов високого рівня. Цю мову часто застосовують для програмування систем реального часу, технологічними процесамита обладнанням, забезпечення роботи інформаційно-вимірювальних комплексів. До таких систем зазвичай пред'являються високі вимоги щодо обсягу машинної пам'яті. Часто мову асемблера доповнюється засобами формування макрокоманд, кожна з яких еквівалентна цілій групі машинних команд. Таку мову називають мовою макроассемблера. Застосування мак "будівельних" блоків і наближає мову асемблера до мови високого рівня. Асемблер машинно-залежна мова, тобто він відображає особливості архітектури конкретного типу комп'ютера

Паскаль

Мова програмування Паскаль була розроблена професором кафедри обчислювальної техніки Швейцарського Федерального інституту технології Ніколасом Віртом у 1968 році як альтернатива існуючим та все більш ускладнюваним мовам програмування, таким, як PL/1, Algol, Fortran. Інтенсивний розвиток Паскаля призвів до появи вже в 1973 році його стандарту у вигляді переглянутого повідомлення, а кількість трансляторів з цієї мови в 1979 році перевищила 80. На початку 80-х Паскаль ще більше зміцнив свої позиції з появою трансляторів MS-Pascal і Turbo -Pascal для ПЕОМ. З цього часу Паскаль стає однією з найважливіших і широко використовуваних мов програмування. Істотно те, що мова давно вийшла за рамки академічного та вузько професійного інтересу та використовується в більшості університетів високорозвинених країн не лише як робочий інструмент користувача. Найважливішою особливістю Паскаля є втілена ідея структурного програмування. Іншою суттєвою особливістю є концепція структури даних як одного з фундаментальних понять.

Основні причини популярності Паскаля полягають у наступному:

Простота мови дозволяє швидко її освоїти та створювати алгоритмічно складні програми

Розвинені засоби представлення структур даних забезпечують зручність роботи як з числовою, так і з символьною та бітовою інформацією

Наявність спеціальних методик створення трансляторів з Паскаля спростила їх розробку та сприяла широкому поширенню мови

Оптимізуючи властивості трансляторів із Паскаля дозволяють створювати ефективні програми. Це стало однією з причин використання Паскаля як мови системного програмування.

У мові Паскаль реалізуються ідеї структурного програмування, що робить програму наочною та дає хороші можливості для розробки та налагодження

Співробітник фірми Bell Labs Денис Рітчі створив мову Сі у 1972 році під час спільної роботи з Кеном Томпсоном як інструментальний засіб для реалізації операційної системи Unix, проте популярність цієї мови швидко переросла рамки конкретної операційної системи та конкретних завдань системного програмування. В даний час будь-яка інструментальна та операційна система не може вважатися повною, якщо до її складу не входить компілятор мови Сі. Рітчі не вигадував Сі просто з голови - прообразом служила мова Бі, розроблена Томпсоном. Мова програмування Сі була розроблена як інструмент для програмістів-практиків. Відповідно до цього головною метою його автора було створення зручної та корисної у всіх відносинах мови.

Сі є знаряддям системного програміста і дозволяє глибоко влазити в тонкі механізми обробки інформації на ЕОМ. Хоча мова вимагає від програміста високої дисципліни, вона не сувора у формальних претензіях і допускає короткі формулювання.

Сі – сучасна мова. Він включає ті керуючі конструкції, які рекомендовані теорією і практикою програмування. Його структура спонукає програміста використовувати у своїй роботі низхідне проектування, структурне програмування та покрокову розробку модулів.

Сі - потужний і гнучкий мову. Більшість операційної системи Unix, компілятори та інтерпретатори мов Фортран, Паскаль, Лісп, та Бейсік написані саме за його допомогою.

Сі – зручна мова. Він достатньо структурований, щоб підтримувати гарний стильпрограмування і водночас не пов'язані жорсткими обмеженнями. У певному сенсі мова Сі – найуніверсальніший, т.к. Крім набору засобів, властивих сучасним мовам програмування високого рівня (структурність, модульність, певні типи даних), до нього включені засоби для програмування на рівні асемблера. Великий набір операторів та засобів вимагають від програміста обережності, акуратності та гарного знання мови з усіма ярмо перевагами та недоліками.

Мова C++ з'явився на початку 80-х. Створений Б'єрном Страуструпом з початковою метою позбавити себе та своїх друзів від програмування на асемблері, Сі чи різних інших мовах високого рівня.

На думку автора мови, різницю між ідеологією Сі і C++ полягає приблизно таке: програма на Сі відбиває “спосіб мислення” процесора, а C++ - спосіб мислення програміста. Відповідаючи вимогам сучасного програмування, C++ наголошує на розробці нових типів даних найбільш повно відповідних концепціям обраної галузі знань та задачам додатку. Клас є ключовим поняттям C++. Опис класу містить опис даних, потрібних для представлення об'єктів цього типу та набір операцій для роботи з подібними об'єктами.

На відміну від традиційних структур Сі та Паскаля, членами класу є не лише дані, а й функції. Функції - члени класу мають привілейований доступ до даних всередині об'єктів цього класу та забезпечують інтерфейс між цими об'єктами та іншою програмою. При подальшій роботі зовсім не обов'язково пам'ятати про внутрішню структуру класу та механізм роботи вбудованих функцій. У цьому сенсі клас подібний до електричного приладу - мало хто знає про його пристрій, але всі знають, як ним користуватися.

Мова С++ є засобом об'єктного програмування, Нової методики проектування та реалізації програм, яка в поточному десятилітті, швидше за все, замінить традиційне процедурне програмування. Головною метою творця мови доктора Бьорна Страустрапа було оснащення мови С++ конструкціями, що дозволяють збільшити продуктивність праці програмістів та полегшити процес оволодіння великими програмними продуктами.

Абстракція, реалізація, успадкування і поліморфізм є необхідними властивостями, якими володіє мова С++, завдяки чому вона не тільки універсальна, як і мова Сі, але і є об'єктною мовою. Фортран Фортран є широко поширеною мовою, особливо серед користувачів, які займаються чисельним моделюванням. Це пояснюється кількома причинами:

Існуванням величезних фондів прикладних програм на Фортрані, накопичених за ці роки, а також наявністю величезної кількості програмістів, які ефективно використовують цю мову;

Наявністю ефективних трансляторів Фортрана на всіх типах ЕОМ, причому версії для різних машин досить стандартизовані та перенесення програм з машини на машину зазвичай не становить великих труднощів;

Початковою спрямованістю Фортрана на фізико-математичні та технічні програми; зокрема, це виявилося в тому, що протягом тривалого часу він залишався єдиною мовою з вбудованим комплексним типом змінних та великим набором вбудованих функцій для роботи з такими змінними.

За період сформувалася нова методологія і філософія програмування. З початку 70-х років Фортран зазнав заслуженої критики. У 1977 році було прийнято новий стандарт мови Фортран-77. На створення нового стандарту витрачено багато часу, але зараз вже можна вважати, що його розробка завершена і новий стандарт Фортран-90 почав входити до практики користувачів Фортрана. Тільки на машинах типу IBM PC існує кілька трансляторів, наприклад, Watfor, Lap-Fortran і т. д. Але найбільшого поширення на машинах цього типу набули різні версії транслятор Fortran-77. Випущений 1990 року транслятор MS-Fortran 5.0 практично повністю відповідає стандарту Fortran-90. Більшість великих науково-технічних прикладних програм написано на Фортрані тому, що він має переносимість і стійкість, а також завдяки наявності вбудованих математичних та тригонометричних функцій. Додатковою, невід'ємною частиною будь-якої прикладної програми мовою Фортран є розширена графічна бібліотека, що дозволяє використовувати різні графічні дані та зображення.

Мова створена в основному в 1975 - 1980 роках в результаті грандіозного проекту, зробленого Міністерством Оборони США з метою розробити єдину мову програмування для так званих вбудованих систем (тобто систем управління автоматизованими комплексами, що працюють у реальному часі). Малися на увазі насамперед бортові системи управління військовими об'єктами (кораблями, літаками, танками, ракетами, снарядами тощо). Тому рішення, прийняті авторами Ади, не слід вважати універсальними. Їх треба сприймати у тих особливостей обраної предметної області. Мова Ада виникла в результаті міжнародного конкурсу мовних проектів, що проходить у 1978-1979 роках. Учасники мали задовольнити досить жорстким, детально розробленим під егідою Міністерства Оборони США вимогам. Цікаво, що всі мови, що дійшли останніх турів цього конкурсу, були засновані на Паскалі. У цьому Аду можна попередньо охарактеризувати як Паскаль, розвинений з урахуванням перелічених вище п'яти основних вимог. У цьому автори пішли переважно шляхом розширення Паскаля новими елементами. В результаті вийшла значно складніша мова.

Кобол

Кобол – це порівняно стара мова, Розроблений насамперед для досліджень в економічній сфері. Мова дозволяє ефективно працювати з великою кількістю даних, вона насичена різноманітними можливостями пошуку, сортування та розподілу. Про програми на Коболі, засновані на широкому використанні англійської мови, кажуть, що вони зрозумілі навіть тим, хто не володіє Коболом, оскільки тексти цією мовою програмування не потребують будь-яких спеціальних коментарів. Подібні програми прийнято називати такими, що самодокументуються. До інших плюсів Кобола зазвичай відносять його структурованість. Досить потужні компілятори з цієї мови розроблені для персональних комп'ютерів. Деякі їх настільки ефективні, що програму, налагоджену персональному комп'ютері, неважко перенести великі ЕОМ.

Перераховуючи мінуси не можна не згадати про те, що на Коболі можна запрограмувати лише найпростіші обчислення алгебри. Для інженерних розрахунківця мова не годиться. Ще одна причина, яка певною мірою стримує розвиток мови, - це наявність у США спеціально створеного галузевого комітету, який виробляє стандарти, за дотриманням яких слідкує урядова комісія. Як це завжди буває в подібних випадках, фірми, які займаються розробкою програмного забезпечення, не поспішають підганяти свої заготівлі до жорстких вимог комісії, відсутня конкуренція версій, а в результаті програє поширення мови

ПЛ/1 розроблений у 1964-1965 роках фірмою IBM. ПЛ/1 належить до універсальних мов, тобто дозволяє вирішувати завдання з різних областей: чисельні розрахунки, текстова обробка, економічні завдання і т. д. За своїми можливостями він перекриває такі мови, як Фортран, Алгол-60 (створений для чисельних розрахунків), Кобол (для економічних завдань), хоча з низки причин витіснити ці мови ПЛ/1 не зміг.

ПЛ/1 містить усі основні конструкції, характерні для так званих мов високого рівня, а також низку специфічних засобів, зручних для практичного програмування. Мова нагадує конструктор з більшим числомдеталей – користувачеві достатньо освоїти ті частини мови, які йому практично необхідні. Його оператори досить ємні, що часто дозволяє отримати запис програми компактніший, ніж іншими мовами. Знаючий ПЛ/1 програміст легко освоює будь-яку іншу мову того ж чи близького класу.

Разом з тим, ПЛ/1 має і ряд недоліків, що ускладнюють вивчення та використання мови. Основні їх такі. По-перше, є багато дублюючих один одного засобів їх складно запам'ятати, не ясно, що коли застосовувати, крім того, це знижує швидкість трансляції, так і швидкість виконання програм. По-друге, програми виходять не зовсім машинно-незалежними.

Модула

Можна вважати, що історія мови Модула починається в 1980 році, коли Ніклаус Вірт, один з видатних фахівців з теорії інформації, відомий більшості фахівців з обчислювальної технікив основному як творець мови Паскаль, опублікував опис нової мови програмування, названої ним Модула. На відміну від Паскаля, який був за задумом мовою для навчання програмування, Модула з самого початку була мовою для професійних системних програмістів, продовжуючи кращі традиції свого попередника і збагачуючи їх новими ідеями, що відповідають таким вимогам до мов програмування, як структурність, модульність та здатність до розширення. Як і безліч інших мов програмування, Модула зазнавала еволюції, під час якої її первісна назва була перероблена в ім'я Модула-2. Одночасно з розвитком мови Модула для нього створювалися нові компілятори, однак жоден з них не міг змагатися з кращими реалізаціями мов Паскаль і Сі, наприклад, розроблених фірмою Борланд. У цей перехідний для мови Модула період найкращої вважалися реалізації виконані фірмою Logitech, які за своїми характеристиками програвала Турбо Паскалю та Турбо Сі. Лише у 1988 році після появи на американському ринку системи Top Speed, Модула-2 зайняла гідне місце серед процедурних мов, призначених для системного програмування. Зростаючої популярності системи Top Speed ​​сприяло кілька факторів: зручне і, крім того, операційне оточення, що легко змінюється за бажанням користувачів, швидкий компілятор і селективний редактор зв'язків. Але найбільш суттєвим виявилося те, що створювані програмивідрізнялися великою швидкодією і займали небагато місця у пам'яті.

Бейсік

Бейсік (Basic – Beginner's All-Purpose Symbolic Instruction Code – “універсальний символічний код інструкцій для початківців”). Прямий нащадок Фортрана і досі найпопулярніша мова програмування для персональних комп'ютерів. З'явився Бейсік у 1963 році (назвати автора було б важко, але основна заслуга у його появі безсумнівно належить американцям Джону Кемені та Томасу Курцю). Як і будь-які переваги, простота Бейсіка оберталася, особливо в ранніх версіяхтруднощами структурування; крім того, Бейсік не допускав рекурсію – цікавий прийом, що дозволяє складати ефективні та водночас короткі програми.

Розроблено потужні компілятори Бейсика, які забезпечують не лише багату лексику та високу швидкодію, а й можливість структурного програмування. На думку деяких програмістів, найцікавішими версіями є GWBASIC, Turbo-Basic та Quick Basic.

У свій час поява Quick Basic ознаменувала народження другого покоління систем програмування мовою Бейсік. Він надавав можливість модульного та процедурного програмування, створення бібліотек, компіляції готових програм та інше, що вивело його на рівень таких класичних мов програмування, як Сі, Паскаль, Фортран та ін. Більше того, через відсутність офіційного стандарту мови Бейсік, його реалізація як Quick Basic стала фактичним стандартом. Безумовними лідерами серед різних версій Бейсіка були Quick Basic 4.5 та PDS 7.1 фірми Microsoft, що з'явилися наприкінці 80-х.

Лісп

Мова Лісп було запропоновано Дж. Маккарті у роботі 1960 року й орієнтовано розробку програм на вирішення завдань не чисельного характеру. Англійська назва цієї мови – LISP є абревіатурою виразу LISt Processing (обробка списків) та добре підкреслює основну сферу її застосування. Поняття "список" виявилося дуже ємним. У вигляді списків зручно представляти вирази алгебри, графи, елементи кінцевих груп, множини, правила виведення і багато інших складних об'єктів. Списки є найбільш гнучкою формою представлення інформації у пам'яті комп'ютерів. Не дивно тому, що зручна мова, спеціально призначена для обробки списків, швидко завоювала популярність.

Після появи Лиспа різними авторами було запропоновано низку інших алгоритмічних мов орієнтованих рішення завдань у сфері штучного інтелекту, серед яких можна назвати Пленер, Снобол, Рефал, Пролог. Однак це не завадило Ліспу залишитись найбільш популярною мовою для вирішення таких завдань. Протягом майже сорокарічної історії його існування з'явилася низка діалектів цієї мови: Common LISP, Mac LISP, Inter LISP, Standard LISP та ін. програм. Тому програміст, який навчився працювати на одному з них легко зможе освоїти і будь-який інший. Великою перевагою Лиспа є його функціональна спрямованість, тобто програмування ведеться за допомогою функцій. Причому функція розуміється зазвичай, що зіставляє елементам деякого класу відповідні елементи іншого класу. Сам процес зіставлення не надає жодного впливу роботу програми, важливий лише його результат – значення функції. Це дозволяє відносно легко писати та налагоджувати великі програмні комплекси. Ясність програм, чітке розмежування їхніх функцій, відсутність каверзних побічних ефектів за її виконання є обов'язковими вимогами до програмування таких логічно складних завдань, якими є завдання штучного інтелекту. Дисципліна у програмуванні стає особливо важливою, коли над програмою працює не одна людина, а ціла група програмістів.

Мова програмування Лісп призначений насамперед для обробки символьної інформації. Тому природно, що в Лиспа числа відіграють далеко не головну роль. Основні типи даних у Лиспе називаються “атом” та “точкова пара”.

Пролог

Мова логічного програмування призначена для представлення та використання знань про деяку предметну область. Програми цією мовою складаються з деякої множини відносин, а її виконання зводиться до виведення нового відношення на основі заданих. У Пролозі реалізовано декларативний підхід, за якого достатньо описати завдання за допомогою правил та тверджень щодо заданих об'єктів. Якщо це опис є досить точним, то ЕОМ може самостійно знайти необхідне рішення.

Object PAL

Object PAL є потужною мовою програмування. Object PAL є об'єктно-орієнтованою, керованою за подіями, візуальною мовою програмування. на початковому рівніфункціональності Object PAL можна здійснювати операції з даними, створювати спеціальні меню, і навіть управляти сеансом введення даних. Події Object PAL породжують команди, які імітують ефект використання Paradox в інтерактивному режимі. Існує можливість автоматизувати завдання, що часто виконуються, а також здійснювати над таблицями, формами та звітами дії, які були не доступні при інтерактивній роботі. Також Object PAL надає всі засоби повнофункціональної мови програмування середовищі Windows. Можна використовувати Object PAL для створення закінчених систем, в яких реалізовано спеціальну систему меню, довідкову систему, а також всілякі перевірки даних. У Object PAL можна зберегти свої напрацювання в бібліотеці, що динамічно компонується, доступ до якої будуть мати декілька форм. Крім того, можна встановити зв'язок з іншими динамічними бібліотеками, що містять програми написані такими мовами як Сі, C++ або Паскаль.

Object PAL може бути використаний як інструмент для створення автономних програм. Можна написати закінчену Windows-програму і запустити її під Paradox.

Object PAL підтримує механізм динамічного обміну даними як клієнта, і сервера. Крім того, Object PAL підтримує як клієнт механізм роботи зі складовими документами. На додаток до сказаного існує можливість включати в свою програму мультимедійні засоби, забезпечивши додаток звуковими та анімаційними ефектами.

Створена фірмою Борланд реалізація мови dBase є вдалим гібридом об'єктної орієнтації та традиційних способів програмування. Він дозволив створювати системи за допомогою об'єктного дизайну та використовувати звичайні прийоми обробки записів. Великим досягненням фірми Борланд стало те, що вона дуже успішно поєднала об'єктні та процедурні прийоми програмування. Перша версія для Windows давала користувачеві найпотужніший об'єктний інструмент ринку програм баз даних. Вона дозволяє створювати нові класи об'єктів, які мають властивості успадкування, інкапсуляції та поліморфізму. Вона також дозволяє програмувати ці об'єкти за допомогою традиційних команд dBase, які ідеально підходять для управління простими табличними базами даних. Все це дає незаперечну перевагу - здійснювати без особливих труднощів перехід до прийомів об'єктного програмування, перехід настільки складний, наприклад, як - СУБД Paradox.

Мова Java зародилася як частина проекту створення передового програмного забезпечення (ПЗ) для різних побутових приладів. Реалізація проекту було розпочато мовою С++, але невдовзі виникла низка проблем, найкращим засобом боротьби із якими було зміна самого інструменту - мови програмування. Стало очевидним, що необхідна платформо-незалежна мова програмування, що дозволяє створювати програми, які не доводилося б компілювати окремо для кожної архітектури і можна було б використовувати на різних процесорах під різними операційними системами. Мова Java знадобилася для створення інтерактивних продуктів для мережі Internet. Фактично більшість архітектурних рішень, прийнятих при створенні Java, були продиктовані бажанням надати синтаксис, подібний до Сі і Cі++. У Java використовуються практично ідентичні угоди для оголошення змінних, передачі параметрів, операторів та управління потоком виконанням коду. У Java додані всі добрі риси C++.

Три ключові елементи об'єдналися у технології мови Java

Java надає для широкого використання свої аплети (applets) - невеликі, надійні, динамічні, не залежать від платформи активні мережеві програми, що вбудовуються в сторінки Web. Аплети Javaможуть налаштовуватись і поширюватися споживачам з такою ж легкістю, як будь-які документи HTML.

Java вивільняє міць об'єктно-орієнтованої розробки додатків, поєднуючи простий і знайомий синтаксис з надійним і зручним у роботі середовищем розробки. Це дозволяє широкому колу програмістів швидко створювати нові програми та нові аплети.

Java надає програмісту багатий набір класів об'єктів для чіткого абстрагування багатьох системних функцій, що використовуються під час роботи з вікнами, мережею та для введення-виведення. Ключова риса цих класів полягає в тому, що вони забезпечують створення незалежних від платформи абстракцій для широкого спектра системних інтерфейсів.

Мови програмування для комп'ютерних мереж

Мови програмування для комп'ютерних мереж інтерпретуються. Інтерпретатори їм поширюються безкоштовно, а самі програми – у вихідних текстах. Такі мови називаються скриптами – мовами.

Perl є інтерпретованою мовою, створеною програмістом Ларі Уоллом для обробки великих текстів і файлів і розшифровується як Practical Extraction and Report Language (мова для практичного вилучення даних та складання звітів). За допомогою Perl ви, наприклад, можете створити скрипт, який відкриває один або кілька файлів, обробляє інформацію та записує результати.

Perl - мова, пристосована для обробки довільних текстових файлів, Вилучення з них необхідної інформації та видачі повідомлень. Perl також зручний для написання різних системних програм. Ця мова проста у використанні, ефективна, але про неї важко сказати, що вона елегантна і компактна. Синтаксис виразів Perl близький до синтаксису Сі. Рекурсія може бути довільною глибиною. Хоча Perl пристосований для сканування текстових файлів, він може обробляти також двійкові дані. Perl дозволяє використовувати Регулярні вирази, створювати об'єкти, вставляти у програму на Сі чи Сі++ шматки коду на Perl, і навіть дозволяє здійснювати доступом до баз даних, зокрема Oracle.

З винаходом World Wide Web Perl виявився прекрасним засобом для взаємодії з web-серверами через Common Gateway Interface (CGI) - загальний інтерфейс взаємодії. Команди Perl можуть легко отримати дані з форми HTML або іншого джерела та виконати з ними будь-яку дію.

Мова PHP(1995-1997гг) має засоби доступу до БД і використовується творцями динамічних сайтів у всьому світі.

Мова Tcl/Tk(Кінець 80-х років) складається з потужних команд, призначених для роботи з абстрактними нетипізованими об'єктами і дозволяє створювати програми з графічним інтерфейсом.

Мова VRML(1994г) створено в організацію віртуальних тривимірних інтерфейсів Інтернету.

Мова XML. З 1996 р. йде робота над створенням універсальної мови структури документів. Може стати заміною мови HTML.

Висновок

Корисні ресурси

Відгук про Айзілі.

Де доповідь?

Ранифка.

Re: Де доповідь?
Все буде:-D

Відгук про Шамагулову еліту.

Мішина Олександра.

Відмінна доповідь. Дізнався багато нового про мови програмування.

Морозова Олександра.

Звичайно, хотілося б бачити доповідь або хоча б презентацію в якомусь вигляді.



Розповісти друзям