Самый лучший язык программирования. Языки программирования: рейтинг зарплат

05.08.2019

От 100 тысяч рублей

Согласно индексу популярности языков программирования TIOBE, уже 17 лет на вершине списка остаётся Java. И в 2017 году он опередил ближайших конкурентов – C и C++ – в два раза. Такая востребованность обусловлена широтой применения. Java-технологии привлекали для создания Amazon, eBay, LinkedIn, Yahoo!, его используют компании SAP, IBM, Oracle и многие другие, но главное – на Java разрабатываются мобильные приложения для Android.

Именно из-за этого зарплаты варьируются очень сильно: в крупных компаниях или стартапах с привлечением существенных инвестиций они могут быть в несколько раз выше, чем у рядовых участников рынка. И куда большую роль здесь играет не само знание языка, а квалификация специалиста. На рынке труда очень много junior-программистов Java, и получают они оплату на уровне рынка, а middle (developer) и senior – намного выше – из-за нехватки кадров такого уровня подготовки.

Дарья Касаурова

HR-менеджер компании «Фогcофт»

Кроме востребованности Java на рынке (которая зависит от тенденций в области ИТ-индустрии) на зарплату влияет порог входа при его освоении программистом. Он довольно высок для перечисленных объектно-ориентированных технологий: требуется время для изучения, знание математики, теории алгоритмов, теории обработки информации, баз данных, системного анализа и многого другого. Желательно высшее образование в области ИТ либо математики. Действительно хороших специалистов, пишущих на этих языках, на рынке не хватает.

Objective-C и C++

От 120 до 240 тысяч рублей

Языки программирования, на которых написана большая часть программного обеспечения, используются для разработки операционных систем, а потому стабильно занимают вторую строчку в рейтинге TIOBE, порой конкурируя с Java. При этом Objective-C используется компанией Apple, что только добавляет ему популярности, а пишущим на нём программистам - зарплат. Приятным бонусом здесь становится возможность работать удалённо из любой точки мира в крупнейших компаниях отрасли.

Анастасия Аулова

Старший консультант практики «Высокие технологии» рекрутинговой компании «Марксман»

Этот язык используется для разработки под Apple уже десятки лет. На нем написана большая часть существующих проектов мобильной разработки. Те, кто кодит под iOS, имеют хороший доход. Ожидается, что рост мирового рынка мобильных приложений продолжится, и компании вкладывают всё больше средств в развитие этих технологий. Специализация разработчика мобильных приложений достаточно новая, и опытных профессионалов пока недостаточно, поэтому среди работодателей наблюдается конкуренция.

PHP

100-150 тысяч рублей

Насколько популярен и востребован Интернет и веб-приложения, настолько же актуален и язык PHP, который поддерживает большинство хостинг-провайдеров. Это бесспорный лидер рынка динамических веб-сайтов.

Однако найти высокооплачиваемые вакансии крайне сложно – все зарплаты «вертятся» вокруг суммы в 100-150 тысяч рублей. Причина как раз в том, что язык PHP уж очень распространён и популярен у кодеров. Освоить его легче, чем многие другие, порой для этого не требуется даже специальное образование. Порог входа низкий, предложений на рынке труда больше, чем спрос, а в числе претендентов на вакансии оказываются едва ли не школьники, поэтому раскошеливаться на баснословные зарплаты работодатель и не спешит.

Visual Basic.NET

100-135 тысяч рублей

Visual Basic.NET – один из новичков в рейтинге популярных языков программирования. Конкурировать с более востребованными из них он начал только в 2010 году, и сейчас приближается к C#, C++ и C. Он специально был разработан для создания приложений Microsoft Windows на собственной платформе.NET.

Простой синтаксис языка делает его более доступным для изучения начинающими программистами. Однако специалистов, предпочитающих VB, на рынке труда не так уж много. Это сказывается и на зарплатах, они не высоки, хотя и держатся на уровне рынка. При этом многие эксперты отрасли отмечают, что Visual Basic если не на грани вымирания, то наверняка движется по тупиковой ветви развития, а потому пишущие на нём рано или поздно останутся без работы.

1С: Предприятие

80-130 тысяч рублей

Сам программный продукт 1С:Предприятие, предназначенный для автоматизации деятельности компаний, написан на языках C++, C#, SQL, но для конфигурирования используется собственный встроенный язык программирования. Его синтаксис близок к Visual Basic, но ни о каком участии в рейтингах популярности и востребованности речи идти не может, потому что сфера применения языка 1С ограничена географически.

Эксперты в один голос сходятся во мнении, что специалисты 1С уже стали или вот-вот станут самым низкооплачиваемыми в ИТ-сфере. Они не смогут устроиться в западную компанию и, соответственно, получать западные зарплаты, им вряд ли предстоит профессионально развиваться и самосовершенствоваться. Если, конечно, они не захотят выбрать другое IT-направление. И единственные, кому по-настоящему комфортно писать на языке 1С – это региональные кодеры, которые не хотят переезжать или работать удалённо. Поскольку подавляющее большинство компаний используют 1С: Предприятие и так или иначе нуждаются в услугах программистов, то зарплаты здесь сравнимы с московскими.

SQL

50-180 тысяч рублей

SQL – язык структурированных запросов, широко применяется в системах управления базами данных, универсален и не зависит от конкретной СУБД. Само по себе знание языка не гарантирует ни высоких зарплат, ни стабильного трудоустройства. Другое дело, что , специализирующиеся в других сферах и пишущие на других языках, часто параллельно знают ещё и SQL, что сказывается на карьерном росте и на зарплате.

Если говорить о разработчиках баз данных, то и тут можно зарабатывать вполне приличные деньги, имея за плечами опыт проектирования архитектуры баз данных и работы с большими объёмами данных, в том числе хранилищами. Почти наверняка работать такому профессионалу придётся на линейных позициях в крупной компании – о стартапах и инновациях применительно к SQL речь идёт крайне редко.

Pascal и Delphi

40-130 тысяч рублей

Паскаль, пожалуй, самый известный язык программирования, и связано это, прежде всего, с тем, что именно его используют для обучения программированию в школе и на первых курсах вузов. На деле заработать существенные деньги таким программистам крайне сложно. Компаний, которые используют Pascal и Delphi, всё меньше и меньше.

Однако знание этих умирающих языков может стать и преимуществом.

Илья Вислоцкий

Директор центра архитектуры клиентских решений Stack Group

Многие проекты начинали создаваться именно на паскале, когда он ещё был популярным и стабильно поддерживаемым языком программирования. У любого из языков есть своё время жизни, но далеко не все компании готовы перезапускать проекты заново. Поэтому они могут заплатить больше за узко специализированного работника, чтобы тот «вернулся в прошлое».

Наиболее высокооплачиваемый язык – это устаревающий язык или его поколение, которое было популярно в недалёком прошлом. Delphi как раз может служить ярким примером.

Редкие языки

По данным TIOBE, за последний год в двадцатку самых популярных и востребованных ворвались языки программирования Go и Scratch, о которых ещё в 2010 году мало кто слышал. Увеличилась популярность таких языков, как Swift, R, SAS, D, Dart, ABAP, COBOL. Некоторые из них применяются в узкоспециализированных направлениях, другие – для суперпопулярной разработки мобильных приложений. Но в любом случае специалистов требуемого уровня в этой отрасли в России в десятки раз меньше, чем открытых вакансий.

Татьяна Жильникова

Ведущий менеджер по персоналу RCNTEC

В России крайне сложно найти разработчиков уровня Middle и Senior Developer.

Хотя многие в резюме и пишут эти заветные слова, на практике, не дотягивают до указанного уровня. Тут нет ничего удивительного – это новые направления, и ещё 2 года назад для них не было даже русскоязычных обучающих курсов. В 2014 году, «перековыряв» весь рынок труда, мы практически не нашли «рубистов» – и в 2015 провели обучение языку Ruby сами. Сейчас на рынке труда уже появились продвинутые специалисты в этих областях, но их мало.

Семён Умилин

Генеральный директор веб-мастерской Productors

Разработчики, работающие на специфических языках программирования, могут получать очень хороший оклад. Основная их проблема в том, что после ухода с нынешнего места работы, они могут долго находиться на рынке труда – неизвестно, когда и кому понадобятся их специфические знания.

Зависимость между языком программирования и зарплатой

Любой рейтинг зарплат программистов очень условный, потому что Junior, пишущий на одном языке, может получать намного больше, чем Senior, пишущий на другом. При этом кодеры одного и того же уровня, использующие один и тот же язык, могут получать в разных компаниях сильно отличающиеся зарплаты просто потому, что кому-то из них больше повезло с работодателем.

Разработчику стоит чутко следить за уровнем цен на специалистов на рынке труда и обращать больше внимания на западные вакансии. Новые веяния на российский пока приходят оттуда, поэтому резкий скачок уровня зарплат у программистов со знанием определённого языка или платформы может стать сигналом к смене рода деятельности и необходимости чему-то поучиться.

*зарплаты указаны на основе вакансий московских работодателей и могут отличаться от реального положения дел в конкретной компании

При использовании материалов сайта сайт указание автора и активная ссылка на сайт обязательны!

C началом нового года, вполне закономерно для каждого из нас начинать задумываться о своем будущем и вариантах развития карьеры. Наш сайт уже на протяжении нескольких лет ежегодно публикует рейтинг самых популярных языков программирования.

Заметим, что по рейтингу TIOBE вовсе нельзя судить о качестве или универсальности для изучения языка программирования, главный критерий отбора индекса заключается в количестве поисковых запросов по каждому конкретному языку. То есть, чем больше через самые популярные в мире поисковые системы (Google, Yahoo!, Baidu, Wikipedia, YouTube) ищется тот или иной язык программирования, тем выше он будет находиться в рейтинге.

  1. Python
  2. VisualBasic.NET
  3. JavaScript
  4. Delphi/Object Pascal
  5. Assembly
  6. Visual Basic
  7. Swift
  8. Objective-C
  9. Groovy
  10. MATLAB
  11. PL/SQL

Теперь давайте остановимся на 10-ти наиболее интересных, по нашему мнению, языках программирования. Заметим, что в нашей десятке присутствует два языка не попавших в ТОП10 TIOBE: Objective-C и SQL. Первый, Objective-C, не попал в рейтинг ТОП 10 только из-за того, что часть поисковых запросов забрал на себя новый «эппловский» язык программирования Swift. Второй, SQL, мы решили включить из-за его важности, так как именно благодаря ему происходит взаимодействие человека и баз данных, без которых сегодня невозможно представить существование современного веб-сайта.

Java

Трудность : 3/5

О языке : для начала заметим, что Java – это не сорт кофе, а название языка программирования, который активно используется с 90-х годов прошлого столетия. Несмотря на то, что этот язык является открытым, т.е. его может свободно использовать каждый, на данный момент им владеет и его поддерживает компания Oracle Corporation. Java разрабатывался как язык программирования, который будет использоваться на любых устройствах, в результате на данном языке пишутся программы для компьютеров, смартфонов и даже телевизоров с технологией СМАРТ-ТВ.

Зачем мне его учить : Java является одним из самых популярных языков программирования. Как большой, так и малый бизнес переполнен софтом написанным на этом языке. Поэтому, если у вас есть идея по созданию инновационной программы для бизнеса, Java, вполне возможно, наиболее подходящий для этого язык. Тоже самое касается и разработки приложений под платформу Android, так как Java является основным языком по написанию программ среди разработчиков под операционную систему Google.

Примеры программ : Большое количество популярных приложений на платформе Android, такие как Angry Birds, Temple Run и Candy Crush Saga, написаны на языке Java. Тоже самое, касается и большей части платного софта написанного для авиакомпаний, государственных и банковских учреждений.

C

Трудность : 3/5

О языке : Большое количество людей из сообщества программистов считают язык C, «дедушкой» всех современных языков программирования. Для такой точки зрения существует две причины. Во-первых, язык C был разработан в 70-х годах прошлого столетия, когда компьютеры могли занимать целые комнаты. Во-вторых, большое количество современных языков, таких как Java, C++ и Python, создавалось под влиянием языка C. Однако, не смотря на свой почтенный возраст, языком C продолжают активно пользоваться, и пройдет еще немало времени, прежде чем этот язык начнет терять свою популярность.
Язык C применяет методику, которая позволяет снизить использование оперативной памяти настолько, насколько это возможно.

Зачем мне его учить : Большинство хороших программистов знают множество языков программирования. Если вы также не хотите останавливаться на одном языке, начать свое изучение с языка C – это хорошая идея. Как и со всеми стоящими вещами, поначалу изучение C будет даваться большинству с огромным трудом. Однако, это не должно служить сдерживающим фактором, так как после C, все остальные современные языки, такие как Objective C, C++, PHP и многие другие, будут даваться вам в изучении намного легче.

Примеры программ : Как вы уже наверное осознали, C – это очень мощный язык программирования. Благодаря своей силе, C просто идеален, когда вам нужно получить полный контроль над создаваемой программой. Именно поэтому, большинство современных популярных операционных систем, таких как Windows, OSX и Linux, написаны именно на языке C. Почти все компьютеризированные устройства, полностью или частично, используют в своей работе язык C. От микроволновок, пультов дистанционного управления и калькуляторов до баз данных и управляющих механизмов Шаттлов — язык C настолько универсален, что используется почти повсеместно.

C++

Трудность : 5/5

О языке : Если говорить коротко, то С++ это все тот же C, но только с большим набором опций. В то время, как оба эти языка рассматриваются, как языки программирования общего назначения, C в большей степени используется при разработке софта «более понятного для машины», такого как операционные системы, тогда как C++ применяется для более высокоуровневых приложений, таких как бухгалтерские программы и движки видео игр.

Зачем мне его учить : Для больших проектов наподобие разработки веб-браузера, создания драйвера видеокарты или написания алгоритма для финансовых торгов, язык C++ является самым лучшим вариантом. Этот язык обладает таким качеством, как объектно-ориентированное программирование, что в C поддерживается с огромным трудом. Благодаря этому, для некоторых задач C++ является более подходящим нежели C, так как поможет решить одну и ту же задачу за меньшее количеств времени.

Примеры программ : Движки большинства популярных сегодня компьютерных игр, таких как Call of Duty, Halo и FIFA написаны на языке С++. Также, большие анимационные студии наподобие Pixar, Disney и DreamWorks используют C++ в той или иной степени в своем анимационном софте. Благодаря своей надежности и скорости, язык C++ применяется также при разработке частных высокочастотных торговых алгоритмов, позволяющих фирмам с Wall Street продавать тысячи акций за доли секунды.

C#

Трудность : 3/5

О языке : C# был разработан в начале 2000-х годов, как язык общего назначения для продуктов выпускаемых Microsoft. C# может использоваться, как для разработки стандартных приложений для Windows, так и для веб-приложений на стороне сервера. Данный язык является частью так называемой «майкрософтовской» семьи.NET, куда входит целый ряд других языков, которые иногда совмещаются с C# при разработке больших проектов.

Зачем мне его учить : Если вы хотите создавать приложения под Windows платформу или заинтересованы в создании сайта, который будет работать на Windows сервере, тогда изучение C# — это отличный выбор. Несмотря на то, что данный язык не настолько популярен, как PHP или Java, C# показывает ежегодно прирост востребованности, с момента своего появления.

Примеры программ : Так как C# разрабатывался Microsoft для создания своих продуктов, вполне резонно предположить, что такие веб-приложения как Bing и MSN используют данный язык. Помимо этого, C# применяется для написания программ для смартфонов, работающих на платформе Windows Phone.

Python

Трудность : 1/5

О языке : Python – это язык программирования общего назначения, появившийся в 90-х годах прошлого столетия. Основной отличительной чертой данного языка, является его невероятная читабельность, что делает Python идеальным вариантом для новичков. Несмотря на свою относительную легкость в изучении, при помощи Python вы можете создавать вполне интересные вещи, включая веб-разработку, 3D рендеринг, а также научные вычисления.

Зачем мне его учить : Вам непременно стоит попробовать изучить Python, если вы хотите с легкостью перейти сразу к программированию. В отличии от низкоуровневых языков, таких как C и Java, на изучение Python вы затратите сравнительно меньшее время. Именно поэтому, многие сейчас считают Python наиболее подходящим языком программирования для новичков.

Примеры программ : Instagram, YouTube и Reddit являются яркими примерами того, на что способен Python. Заметим, что по мере увеличения популярности данных сервисов, росло и количество технологий применяемых в них, однако, несмотря на это, Python продолжает играть ключевую роль в запуске этих сайтов.

PHP

Трудность : 2/5

О языке : PHP – это еще один родственник C. Он даже написан при помощи языка C. Как результат PHP унаследовал часть мощи своего более старшего прародителя. Языки наподобие C используются для низкоуровневой разработки, тогда как PHP создан для создания веб-приложений наподобие Facebook.

Зачем мне его учить : Если вы придумали идею нового сайта, языки наподобие PHP являются намного более практичными и универсальными, чем тот же C или C++. Более того, если вы новичок в программировании, но хотите как можно быстрей научиться создавать веб-приложения, PHP – это, без сомнения, отличный старт.

Примеры программ : PHP используется на более чем двух сотнях миллионов веб-сайтах по всему миру, что само за себя говорит о его популярности. Более того, популярный движок WordPress — под управлением которого работают миллионы блогов, новостных порталов, интернет магазинов и много чего еще – полностью написан на PHP.

JavaScript

Трудность : 2/5

О языке : Люди, которые только знакомятся с языками программирования, зачастую не знают, что между Java и JavaScript существует какое-либо различие. Этот язык изначально назывался ECMAScript, однако из-за тогдашней всевозрастающей популярности языка Java, создатели JavaScript решили переименовать свое детище, чтобы привлечь как можно больше людей. Заметим, что за исключением имени, оба языка имеют очень мало схожего.

Зачем мне его учить : Если вы заинтересованы в фронт-энд веб-дизайне, тогда вам обязательно стоить выучить JavaScript. Этот язык используется для придания интерактивности веб-страницам. Без JavaScript страницы выглядят безжизненными, тогда как с ним вы можете образно «оживлять» страницы добавляя анимацию, и улучшая в целом его (сайта) управляемость через веб-интерфейс. Несмотря на то, что в большинстве случаев JavaScript используется для фронт-энд разработки, благодаря фрэймворкам наподобие Node.js вы можете создавать и бэк-энд приложения также.

Примеры программ : JavaScript используется на 88% веб-сайтов по всему миру. Когда вы узнаете цифру работающих сегодня сайтов во всем мире, вы поймете, что 88% — это очень и очень много. Знайте, если заходя на веб-страницу вы видите выпадающее меню, эффекты hover, а также прочую анимацию – знайте, здесь применяется JavaScript.

Ruby

Трудность : 2/5

О языке : Ruby (как и Python) является легким, но в тоже время очень мощным языком программирования. Заметим, что несмотря на то, что Ruby появился примерно в тоже время, что и Python, он был не особо популярен до тех пор, пока не был разработан его фрэймворк Rails. Фрэймворк в компьютерном программировании означает дополнение к языку, которое позволяет значительно упростить или ускорить разработку приложений. Фрэймворк Rails позволил сделать веб-разработку невероятно интуитивно понятной.

Зачем мне его учить : Как мы написали выше, Ruby очень схож с Python. В тоже время, язык Ruby обладает стилем написания кода, который нравится далеко не всем программистам, что автоматически делает его менее привлекательным в сравнении с Python. Однако не стоит преждевременно пугаться, ведь как заметил один из разработчиков Ruby, у каждого программиста свое особенное понимание привлекательности стиля написания кода, поэтому если один программист предпочитает Python языку Ruby, то другой может наоборот выбрать Ruby вместо Python.

Примеры программ : Metasploit и Twitter, два абсолютно разных приложения, разработаны при помощи языка Ruby. Metasploit – это одна из наиболее популярных программ по информационной безопасности, которую используют десятки тысяч людей и частных компаний для защиты своих данных. Twitter — это всемирно известный сайт микроблоггинга, который был написан при помощи Ruby и его фрэймворка Rails.

SQL

Трудность : 3/5

О языке : SQL – это язык программирования специального назначения. Языки специального назначения, как следует из названия, используются для специальных задач, в противовес языкам общего назначения о которых мы говорили до сих пор. SQL был разработан для упрощения работы с информацией хранящейся в базе данных.

Зачем мне его учить : Если вы хотите управлять информацией хранящейся в базах данных, вам непременно стоит выучить SQL. Заметим, что данный язык имеет множество диалектов, но как только вы стали хорошо разбираться в одном из них, понять и выучить другие у вас не составит особого труда.

Примеры программ : Такие системы как MySQL, Oracle и PostgreSQL используются для работы с информацией хранящейся в базах данных больниц, компаний, государственных и банковских учреждений. «Общение» между вышеназванными программами и базами данных проходит как раз таки на языке SQL.

Objective-C

Трудность : 3/5

О языке : Objective-C можно считать языком C# в мире OSX и iOS. Apple презентовала Objective-C в 80-х годах прошлого столетия, когда компания только находилась на пути своего становления. C тех пор, Objective-C стал де-факто языком программирования на котором писался весь софт для устройств Apple, включая iPhone и iPod.

Зачем мне его учить : Если вы заинтересованы в написании программ для MacBook, iPhone или iPad вам в обязательном порядке придется учить Objective-C. В отличии от языков с открытым кодом как язык C, который вы можете свободно использовать без каких-либо вопросов, права на Objective-C принадлежат Apple, поэтому при работе с этим языком вы должны обязательно руководствоваться правилами установленными его владельцем.

Примеры программ : Когда вы используете любое устройство компании Apple, знайте все приложения работающие на нем написаны при помощи языка Objective-C. К примеру, такие популярные программы iPhone как Uber, Instagram и SnapChat целиком и полностью полагаются на Objective-C.

А какой по вашему мнению наиболее востребованный язык программирования 2016 года? Оставляйте свои комментарии ниже, будет очень интересно подискутировать на эту тему!

Название доклада

Современные языки программирования и их использование

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

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

● Схема классификации языков программирования

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

● Обзор языков программирования

● Полезные ресурсы

Схема классификации языков программирования

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

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

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

 Язык Фортран создан в начале 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 году был создан язык искусственного интеллекта Пролог (PROLOG) (Programming 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

Отзыв Шамагуловой Элиты

Отзыв Мишина Александра

Отличный доклад. Узнал много нового о языках программирования.

Отзыв Морозова Александра

Конечно хотелось бы видеть доклад или хотя бы презентацию в каком либо виде.

ТЕМА: Современные языки программирования

Проверил_______________

История развития.

Первые программы заключались в установке ключевых переключателей на передней панели вычислительного устройства. Очевидно, таким способом можно было составить только небольшие программы. С развитием компьютерной техники появился машинный язык, с помощью которого программист мог задавать команды, оперируя с ячейками памяти, полностью используя возможности машины. Однако использование большинства компьютеров на уровне машинного языка затруднительно, особенно это касается ввода-вывода. Поэтому от его использования пришлось отказаться. Например, для организации чтения блока данных с гибкого диска программист может использовать 16 различных команд, каждая из которых требует 13 параметров, таких как номер блока на диске, номер сектора на дорожке и т. п. Когда выполнение операции с диском завершается, контроллер возвращает 23 значения, отражающие наличие и типы ошибок, которые надо анализировать. «Слова» на машинном языке называются инструкции, каждая из которых представляет собой одно элементарное действие для центрального процессора, такое, например, как считывание информации из ячейки памяти. Каждая модель процессора имеет свой собственный набор машинных команд, хотя большинство из них совпадает. Если Процессор А полностью понимает язык Процессора Б, то говорится, что Процессор А совместим с Процессором Б. Процессор Б будет называться не совместимым с Процессором А если А имеет команды, не распознаваемые Процессором Б. В случае, когда нужно иметь эффективную программу, вместо машинных языков используются близкие к ним машинно-ориентированные языки - ассемблеры. Люди используют мнемонические команды взамен машинных команд.

Но даже работа с ассемблером достаточно сложна и требует специальной подготовки. Например, для процессора Zilog Z80 машинная команда 00000101 предписывает процессору уменьшить на единицу свой регистр B. На языке ассемблера это же будет записано как DEC B.

Структурное программирование

Следующий шаг был сделан в 1954 году, когда был создан первый язык высокого уровня - Фортран (англ. FORTRAN - FORmula TRANslator ). Языки высокого уровня имитируют естественные языки, используя некоторые слова разговорного языка и общепринятые математические символы. Эти языки более удобны для человека, с помощью них, можно писать программы до нескольких тысяч строк длиной. Однако легко понимаемый в коротких программах, этот язык становился нечитаемым и трудно управляемым, когда дело касалось больших программ. Решение этой проблемы пришло после изобретения языков структурного программирования (англ. structured programming language ), таких как Алгол(1958), Паскаль(1970), Си(1972). Структурное программирование предполагает точно обозначенные управляющие структуры, программные блоки, отсутствие инструкций безусловного перехода (GOTO), автономные подпрограммы, поддержка рекурсии и локальных переменных. Суть такого подхода заключается в возможности разбиения программы на составляющие элементы. Также создавались функциональные (аппликативные) языки (Пример: Lisp - англ. LISt Processing , 1958) илогические языки (пример: Prolog - англ.PROgramming in LOGic , 1972). Хотя структурное программирование, при его использовании, дало выдающиеся результаты, даже оно оказывалось несостоятельным тогда, когда программа достигала определенной длины. Для того чтобы написать более сложную (и длинную) программу, нужен был новый подход к программированию.

ООП

В итоге в конце 1970-х и начале 1980-х были разработаны принципы объектно-ориентированного программирования. ООП сочетает лучшие принципы структурного программирования с новыми мощными концепциями, базовые из которых называются инкапсуляцией, полиморфизмом и наследованием. Примером объектно-ориентированных языков являются: Object Pascal, C++, Java и др. ООП позволяет оптимально организовывать программы, разбивая проблему на составные части, и работая с каждой по отдельности. Программа на объектно-ориентированном языке, решая некоторую задачу, по сути, описывает часть мира, относящуюся к этой задаче.

Основные концепции языков программирования

Стандартизация языков программирования

Язык программирования может быть представлен в виде набора спецификаций, определяющих его синтаксис и семантику. Для многих широко распространённых языков программирования созданы международные стандарты. Специальные организации проводят регулярное обновление и публикацию спецификаций и формальных определений соответствующего языка. В рамках таких комитетов продолжается разработка и модернизация языков программирования и решаются вопросы о расширении или поддержке уже существующих и новых языковых конструкций.

Типы данных

Современные цифровые компьютеры обычно являются двоичными и данные хранят в двоичном (бинарном) коде (хотя возможны реализации и в других системах счисления). Эти данные как правило отражают информацию из реального мира (имена, банковские счета, измерения и др.), представляющую высокоуровневые концепции. Особая система, по которой данные организуются в программе, - это система типов языка программирования; разработка и изучение систем типов известна под названием теория типов. Языки могут быть классифицированы как системы со статической типизацией и языки с динамической типизацией . Статически-типизированные языки могут быть в дальнейшем подразделены на языки с обязательной декларацией , где каждая переменная и объявление функции имеет обязательное объявление типа, и языки с выводимыми типами . Иногда динамически-типизированные языки называются латентно-типизированными .

Структуры данных

Системы типов в языках высокого уровня позволяют определять сложные, составные типы, так называемые структуры данных. Как правило, структурные типы данных образуются как декартово произведение базовых (атомарных) типов и ранее определённых составных типов. Основные структуры данных (списки, очереди, хеш-таблицы, двоичные деревья и пары) часто представлены особыми синтаксическими конструкциями в языках высокого уровня. Такие данные структурируются автоматически.

Семантика языков программирования

Существует несколько подходов к определению семантики языков программирования. Наиболее широко распространены разновидности следующих трёх: операционного, денотационного (математического) и деривационного (аксиоматического). При описании семантики в рамках операционного подхода обычно исполнение конструкций языка программирования интерпретируется с помощью некоторой воображаемой (абстрактной) ЭВМ. Деривационная семантика описывает последствия выполнения конструкций языка с помощью языка логики и задания пред- и постусловий. Денотационная семантика оперирует понятиями, типичными для математики - множества, соответствия, а также суждения, утверждения и др. Язык программирования строится в соответствии с той или иной базовой моделью вычислений и парадигмой программирования. Несмотря на то, что большинство языков ориентировано на императивную модель вычислений, задаваемую фоннеймановской архитектурой ЭВМ, существуют и другие подходы. Можно упомянуть языки со стековой вычислительной моделью (Forth, Factor, Postscript и др.), а также функциональное (Лисп, Haskell, ML и др.) и логическое программирование (Пролог) и язык Рефал, основанный на модели вычислений, введённой советским математиком А.А. Марковым-младшим. В настоящее время также активно развиваются проблемно-ориентированные, декларативные и визуальные языки программирования.

Компилируемые и интерпретируемые языки

Языки программирования могут быть разделены на компилируемые и интерпретируемые. Программа на компилируемом языке при помощи специальной программы компилятора преобразуется (компилируется) в набор инструкций для данного типа процессора (машинный код) и далее записывается в исполнимый модуль, который может быть запущен на выполнение как отдельная программа. Другими словами, компилятор переводит исходный текст программы с языка программирования высокого уровня в двоичные коды инструкций процессора. Если программа написана на интерпретируемом языке, то интерпретатор непосредственно выполняет (интерпретирует) исходный текст без предварительного перевода. При этом программа остаётся на исходном языке и не может быть запущена без интерпретатора. Можно сказать, что процессор компьютера - это интерпретатор машинного кода. Кратко говоря, компилятор переводит исходный текст программы на машинный язык сразу и целиком, создавая при этом отдельную исполняемую программу, а интерпретатор выполняет исходный текст прямо во время исполнения программы. Разделение на компилируемые и интерпретируемые языки является несколько условным. Так, для любого традиционно компилируемого языка, как, например, Паскаль, можно написать интерпретатор. Кроме того, большинство современных «чистых» интерпретаторов не исполняют конструкции языка непосредственно, а компилируют их в некоторое высокоуровневое промежуточное представление (например, с разыменованием переменных и раскрытием макросов). Для любого интерпретируемого языка можно создать компилятор - например, язык Лисп, изначально интерпретируемый, может компилироваться без каких бы то ни было ограничений. Создаваемый во время исполнения программы код может так же динамически компилироваться во время исполнения. Интерпретируемые языки обладают некоторыми специфическими дополнительными возможностями (см. выше), кроме того, программы на них можно запускать сразу же после изменения, что облегчает разработку. Программа на интерпретируемом языке может быть зачастую запущена на разных типах машин и операционных систем без дополнительных усилий. Однако интерпретируемые программы выполняются заметно медленнее, чем компилируемые, кроме того, они не могут выполняться без дополнительной программы-интерпретатора. Современные языки программирования рассчитаны на использование ASCII, то есть доступность всех графических символов ASCII является необходимым и достаточным условием для записи любых конструкций языка. Управляющие символы ASCII используются ограниченно: допускаются только возврат каретки CR, перевод строки LF и горизонтальная табуляция HT (иногда также вертикальная табуляция VT и переход к следующей странице FF). Ранние языки, возникшие в эпоху 6-битных символов, использовали более ограниченный набор. Например, алфавит Фортрана включает 49 символов (включая пробел): A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 = + - * / () . , $ " : Заметным исключением является язык APL, в котором используется очень много специальных символов. Использование символов за пределами ASCII (например, символов KOI8-R или символов Юникода) зависит от реализации: иногда они разрешаются только в комментариях и символьных/строковых константах, а иногда и в идентификаторах. В СССР существовали языки, где все ключевые слова писались русскими буквами, но большую популярность подобные языки не завоевали (исключение составляет. Встроенный язык программирования 1С: Предприятие). Расширение набора используемых символов сдерживается тем, что многие проекты по разработке программного обеспечения являются международными. Очень сложно было бы работать с кодом, где имена одних переменных записаны русскими буквами, других -- арабскими, а третьих -- китайскими иероглифами. Вместе с тем, для работы с текстовыми данными языки программирования нового поколения (Delphi 2006, C#, Java) поддерживают Unicode.

Для программистов наступили благодатные времена. Не даром Департамент трудовой статистики Минтруда США прогнозирует восьмипроцентный рост востребованности профессии программиста в ближайшие семь лет, пишет Mashable. С помощью директора по контенту образовательной онлайн-платформы Lynda Дуга Винни, издание определило самые востребованные языки программирования в 2015 году.

Иллюстрация: Steve Jurvetson

1. Java

Java является одним из самых популярных языков для бэкэнд-разработки современных корпоративных веб-приложений. С Java и основанными на нём фреймворками разработчики могут создавать масштабируемые веб-приложения для широкого круга пользователей. Java — также основной язык, используемый для разработки родных Android-приложений для смартфонов и планшетов.

2. JavaScript

Каждый современный сайт использует JavaScript. Это ключевой язык для создания интерактивности сайта или построения пользовательских интерфейсов с одним из десятка популярных JavaScript-фреймворков.

3. C#

C # является основным языком для разработки на платформах и сервисах Microsoft. Будь то разработка современных веб-приложений с использованием Azure и.NET, приложений для «девайсов» Windows или мощных «настольных» приложений для бизнеса, C# — самый быстрый способ использовать всё, что может предложить Microsoft. Кроме того, это и один из основных языков движка для разработки игр Unity.

4. PHP

Пишите веб-приложение для работы с данными? Язык PHP наряду с базами данных (например, MySQL) является важным инструментом для создания современных веб-приложений. На PHP разработано большинство сайтов, ориентированных на большой объём данных. Это также основополагающая технология мощных систем управления контентом, как WordPress.

5. С++

Если для максимальной отдачи мощности процессора вам необходимо подключиться непосредственно к железу, поможет язык C++. Это идеальный выбор для разработки мощного «настольного» программного обеспечения, игр с функцией аппаратного ускорения, а также приложений для ПК, консолей и мобильных устройств, требующих большого объёма памяти для работы.

6. Python

Python может сделать почти всё вышеперечисленное. Веб-приложения, пользовательские интерфейсы, анализ данных, статистика — для какой бы задачи вам не предстояло найти решение, в Python, скорее всего, найдётся подходящий фреймфорк. Совсем недавно учёные пришли к выводу, что Python модно использовать в качестве основного инструмента для обработки гигантских объёмов данных практически в любой отрасли.

7. C

Почему язык C по-прежнему популярен? Из-за размера: маленький, быстрый и мощный. Если вы разрабатываете программное обеспечение для встраиваемых систем, работаете с системными ядрами или просто хотите выжать из имеющихся по рукой ресурсов всё до последней капли, C — то, что нужно.

8. SQL

Данные — всеобъемлющие и всепроникающие. SQL даёт возможность найти необходимую информацию быстрым и надёжным способом. Используя SQL, вы можете легко запрашивать и извлекать значительные объёмы данных из больших и сложных баз данных.

9. Ruby

Хотите запустить проект в рекордно короткие сроки или создать прототип новой идеи для крутого веб-приложения? С помощью Ruby (и Ruby on Rails) это возможно довольно быстро. Обладая невероятной мощностью, язык прост в освоении. Плюс на нём написаны тонны популярных веб-приложений по всему миру.

10. Objective-C

Собираетесь написать приложение для iOS? Тогда вы просто обязаны знать Objective-C. Несмотря на прошлогоднюю шумиху вокруг нового языка Apple Swift, Objective-C по-прежнему остаётся основополагающим языком приложений для экосистемы Apple. С Objective-C и официальным инструментом разработки ПО от Apple XCode до App Store — рукой подать.

11. Perl

Можно ли назвать Perl эзотерическим языком? Да. Сбивает ли он с толку? Да. Является ли он супермощным языком и ключевым компонентом в арсенале кибербезопасности? Снова да. Разработчики используют Perl с самых истоков интернета, и он до сих пор считается ключевым инструментом для любого ИТ-специалиста.

12. .NET

Хотя и не язык сам по себе, .NET является ключевой платформой Microsoft для разработки облачных и не очень сервисов и приложений. Становится более продвинутым и ценным с каждым новым релизом. Благодаря последним усилиям Microsoft в области разработки с открытым исходным кодом, .NET теперь приходит на платформы Google и Apple. Как результат, вы можете использовать.NET с различными языками программирования для создания мультиплатформенных приложений.

13. Visual Basic

Ключевой язык.NET-платформы, Visual Basic позволяет создавать приложения для поддержки бизнеса, а также автоматизировать мощные приложения MSOffice.

14. R

R двигает революцию больших данных. В 2015 году это обязательный язык для всех, кто нуждается в серьёзном анализе данных: от сфер науки и бизнеса до развлечений и социальных медиа.

15. Swift

За менее чем год существования язык программирования Swift разработчиков во всём мире как новый, простой и быстрый способ разработки для операционных систем OS X и iOS. Широкие полномочия и дружественный синтаксис Swift позволяют написать очередное убойное приложение для пользователей Apple.

Похожие статьи