sonyps4.ru

На каком языке программировать новичку. Разные языки программирования и их области применения

Машина не понимает человеческий язык. Конечно, мы не про Siri и другие распознаватели голоса — мы про создание нового софта. Чтобы сделать калькулятор, машине нужно поставить задачу так же, как бригадир объясняет рабочим как класть кирпич. Но «Вася, ёпт, ну ровнее же надо!» нужно описать на языке программирования. Откуда вообще взялись эти языки?

Отправная точка современного компьютера — аналитическая машина Бэббиджа, но языки придумали раньше: в XIX веке изобрели механическое пианино и ткацкий станок, для которых инженеры описывали логику работы. Этот набор инструкций — прототип того, на чём сегодня пишут программисты.

В середине XX века появляется машина Тьюринга, затем первые компьютеры и первый современный язык программирования Plankalkül. Первый скачок развития произошёл, когда на компьютеры обратили внимание военные — DARPA и иже с ними начали активно инвестировать в молодую отрасль. Второй пришёл с распространением интернета — чем глубже люди погружаются в цифровую эпоху, тем более востребованы главные творцы окружения этой эпохи — программисты. И всё больше желающих к ним присоединиться.

Желание разумное и понятное, но первый вопрос в голове часто становится непреодолимым барьером — с какого языка начать обучаться программированию? Страх неправильного выбора основывается на страхе потратить время впустую. В итоге начинающий программист несколько лет ищет «свой» язык, никак не продвигаясь к заветной цели. Так, чёрт возьми, какой же выбрать язык?

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

Выбор языка зависит от задач, которые хочет решить программист. Для интернет-проектов популярен Python, который используют в своих проектах Google и Facebook, для мобильных приложений под Android лучший друг — Java, а под iOS — Swift.

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

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

Помимо универсальности , есть ещё критерии:

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

Под эти три описания лучше всего подходят языки Python, C#, Java и Ruby.

Разработан в 80-е годы голландским программистом Гвидо ван Россумом. Большие технологические компании работают с Python: Яндекс, Google, Facebook и YouTube. Это так называемый скриптовый язык — на нём пишут то, что у программы под капотом. Его используют для веб-приложений, в разработке игр, софта для серверов…

Простота Популярность Универсальность

Код легко читается, у него понятная структура. Стандартного инструментария достаточно для начала обучения.

Занимает 1-е место в программах начального обучения программированию в университетах США.

Регулярно обновляется — раз в 2,5 года. Входит в пятерку популярных языков по версии аналитической компании TIOBE Software на январь 2016 года.

На Python пишут почти всё: скрипты управления системами, веб-сайты, системы машинного обучения, игры.

Язык был разработан в конце 90-х на базе C++ и Java. В основном используется для больших enterprise-проектов, но не ограничивается только ими. Например, скрипты в игровом движке Unity пишут на C#.

Простота Популярность Универсальность

Структурно близок к C++ и Java — синтаксис (структура программного кода) сложнее, чем у Python и Ruby, но зато на изучение родственных языков уйдёт меньше времени. Интерфейсы библиотек хорошо вписываются в шаблоны проектирования — это упрощает изучение.

Последнее обновление было в 2015-м году.

На C# пишут под Windows Phone, iOS и Android. Большое количество документации, но библиотек со свободной лицензией не много — это значит, что для обучения программист может использовать чужой код, но вот для использования в коммерческом продукте нужно платить.

Язык придумали программисты из Microsoft для разработки Windows-приложений. Несмотря на это, его используют и в других системах. Также работает на встраиваемых, десктопных и серверных платформах.


Ruby

Создан японским разработчиком под влиянием языка Perl. Запущен в 1995 году. На Ruby написаны: Shopify, Github, Groupon, Yellow Pages, Twitter и Slideshare. Он набирает популярность, но чаще встречается в стартапах, нежели в крупных компаниях. Хорошо подходит для создания простого интернет-проекта.

Простота Популярность Универсальность

Как и Python, код легко читается. Структура также идентична Python. В сравнении с остальными языками, выбор стандартных библиотек скуднее — нужно потратить время на поиски.

Большое и лояльное сообщество разработчиков — замыкает десятку самых популярных языков по версии TIOBE Software. Много библиотек в свободном доступе.

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


Java

Первая версия языка вышла в мае 1995 года. Java используется в Amazon, eBay, LinkedIn и Yahoo!

Простота Популярность Универсальность

Как было сказано ранее, у Java и C# очень похожий синтаксис — выучил один, почти знаешь другой. Но как и в первом случае, синтаксис сложнее, чем у Ruby и Python.

В мире 3 миллиарда смартфонов на Android — это значит, что Java ещё долго будет востребован. Первый по популярности по версии TIOBE Software.

Чаще всего используется для enterprise-разработки и Android-приложений.


Итог препарирования

Вывод сделать сложно. С одной стороны манит возможность одним выстрелом убить двух зайцев и взять Java или C#, но Python манит свой универсальностью, а Ruby — простотой.

Мы сомневались и пошли говорить с опытными разработчиками — они всё же советуют остановиться на Python. Вот что говорит Григорий Петров, профессиональный разработчик, евангелист VoxImplant:

«Язык программирования Python часто называют «исполняемым псевдокодом», потому что синтаксис языка и стандартные библиотеки делают упор на читаемость и понятность. Добавим к этому широчайший выбор средств разработки, библиотек, обучающих материалов — и мы получим один из лучших языков программирования для начинающих».

Вывод: пока нет чётких задач и ясных целей, а есть только желание кодить, остановиться стоит на Python — он простой, популярный и универсальный. Никита Соболев, преподаватель программирования для начинающих в #tceh, также считает выбор этого языка оптимальным для новичка — образовательная программа получилась сложнее и длиннее, чем на курсе по Ruby, но свобода в выборе направления того стоит.


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

«Мы спрашивали у наших разработчиков, на чём они пишут, чтобы выяснить - какие языки программирования в Яндексе самые популярные. В опросе приняли участие больше половины разработчиков компании, расклад получился такой:

Многие разработчики используют в работе несколько языков, поэтому мы просили их выбрать один - тот, на котором они пишут больше всего. В лидерах оказались пять языков: C++, JavaScript, Java, Python и Perl. Все эти языки разные, и каждый лучше решает свою задачу. Поэтому они по-разному используются в Яндексе.

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

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

Java - это универсальный язык, на котором можно написать любое приложение, будь то игра Flappy Bird или веб-сервер, обрабатывающий миллионы запросов в минуту. Несмотря на название имеет мало общего с JavaScript. Разработка на нём пойдёт быстрее, чем на C++, однако программа может получиться чуть медленнее. Особенности Java позволяют создавать программы, которые работают практически на любом устройстве - от телефона до микроволновки. На Java у нас написаны, например, Маркет и Музыка.

Python - это дружелюбный к программисту язык с простым синтаксисом. С него хорошо начинать изучение программирования. У нас Python широко используется в системном администрировании, но подходит для решения почти любых задач, кроме обработки больших объёмов данных. На Python многое делать проще и быстрее, чем на C++, но программа будет не такой производительной. Это разумный выбор, когда производительность не очень важна или задачу нужно сделать быстро. На Python написана серверная часть Диска, а ещё он используется в Директе, внутренних сервисах и многих других проектах.

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

С точки зрения задачи выбор языка - это поиск равновесия между эффективностью программы, квалификацией программиста и временем, потраченным на работу. Конечно, в реальности всё немного сложнее, поэтому иногда и случаются истории вроде той, с которой мы начали. «Шёл на вакансию C++, взяли на Perl, пишу на Python, а люблю Scala», - такое тоже бывает.

С точки зрения разработчика, выбор языка - это вопрос предпочтений. Кому-то действительно нравится сам язык, кому-то - задачи, которые он решает. Например, одни предпочитают фундаментальные задачи и пишут базу поиска на C++, а другие любят делать то, что видно пользователям, и пишут интерфейсы на JavaScript. Третьи пишут на каком-то языке просто потому, что знают его досконально. А некоторые, наоборот, готовы пробовать новое и участвуют в разных проектах.»

Компьютерные игры - это большой бизнес. Суммарная выручка индустрии видеоигр в США достигла 23,5 миллиардов долларов в прошлом году, что на 5% больше, чем в 2014. За каждой великой игрой стоят программисты, которые вносят существенный вклад в конечный продукт. Конечно, для создания разных игр используются разные языки программирования. В данной статье мы представим вам несколько самых популярных.

Язык ассемблера

Многие игры для Sega и Dendy были написаны на различных диалектах языка ассемблера, включая Super Mario Brothers.

Игры серии Super Mario были проданы тиражом более 70 миллионов копий. IGN назвала третью часть Super Mario Brothers самой великой игрой всех времён.

Язык Си

Язык Си до сих пор остаётся одним из самых популярных языков программирования из-за своей относительной простоты и чёткой структуры. Компания id Software использовала Си для создания игры Doom, впервые выпущенной в 1993 году.

Doom была названа самой влиятельной FPS-игрой, став прообразом многих других игр от первого лица и 3D-игр в общем. По приблизительным оценкам Doom набрал около 10 миллионов установок в 1995 году.

С++

Язык С++ использовался для создания многих современных операционных систем, софта, игр и игровых движков. Благодаря его гибкости, игры можно относительно несложно портировать с ПК на консоли и в обратном направлении. Одной из самых популярных игр, написанных на С++, является World of Warcraft.

С момента запуска было продано 14 миллионов копий. 48% подписчиков проживают в азиатском регионе, 22% из США. На вики по WoW содержится более 100 000 статей.

C#

Разработанный компанией Microsoft в 2000 году, С# стал довольно популярен среди разработчиков игр. Движок Unity, широко используемый при создании игр для ПК, консолей и мобильных устройств, написан преимущественно на С#. Одна из самых заметных игр в данном классе - Angry Birds.

Angry Birds находится на третьем месте по популярности среди всех игры для iOS всех времён, сразу за Candy Crush Saga и Fruit Ninja. Стоимость разработки первой версии игры составила порядка $140 000, что является очень скромным числом в своём роде. Четыре человека работали над игрой суммарно порядка восьми месяцев.

Java

Java является в некотором роде родственником C#. Они развиваются под влиянием друг друга, оба имеют сборщики мусора и объектно-ориентированы. Но Java изначально позиционируется как платформонезависимый язык, что означает, что он (по задумке) работает абсолютно одинаково на всех устройствах. Истории успешных игр, написанных на Java, включают в себя RuneScape и Minecraft.

Альфа-версия игры была создана всего за 6 дней. Minecraft - вторая самая продаваемая игра в мире. Изначально она называлась «Cave Game».

Хотите найти больше материалов по разработке игр и, может быть, даже разработать одну свою? Загляните в .

«С какого языка программирования начать?» — именно такой вопрос часто задают люди, решившие попробовать научиться программировать. Еще лет пять назад можно было посоветовать учиться программировать на Бейсике, но на данный момент это полный идиотизм, так как Бейсик — это уже древнее ископаемое. Да, сейчас многие могут посоветовать учиться программировать на Visual Basic. Упрощенная версия этого языка – VBA (Visual Basic for Application) встроена во все офисные приложения Майкрософт. Тем кто пишет макросы для офисных приложений Майкрософт без VBA не обойтись. Тем не менее, не могу посоветовать ни Бейсик, ни Visual Basic в качестве языка для изучения программирования.
Я предлагаю рассмотреть два случая:

1. У вас все замечательно с математикой и физикой, вы без труда запоминаете довольно сложные формулы, вас не пугают различные непонятные символы.
В этом случае, стоит начать изучение программирования с языка Си. Дело в том, что Си очень мощный язык, на основе которого создано много других еще более мощных языков, таких как С++, Java, С#, PHP и других. К слову сказать, на этом языке написана операционная система Windows и практически все компьютерные игры, в которые вы играете.

Если вы остановите свой выбор на Си, а точнее все же на С++, то информации по этому языку более чем достаточно в Интернете. Тем не менее, советую купить хороший справочник по С++. Настоятельно рекомендую купить справочник Герберта Шилдта.

Справочник по С++

Полный справочник по C++. Книга является бестселлером и издается уже в четвертый раз. 4-е издание. В четвертом издании этой книги полностью описаны и проиллюстрированы все ключевые слова, функции, классы и свойства языка С++, соответствующие стандарту ANSI/ISO. Информацию, изложенную в книге, можно использовать во всех современных средах программирования. Освещены все аспекты языка С++, включая его основу — язык С. Справочник состоит из пяти частей: 1) подмножество С; 2) язык С++; 3) библиотека стандартных функций; 4) библиотека стандартных классов; 5) приложения на языке С++. Книга предназначена для широкого круга программистов.
Заказать книгу>>

2. С математикой у вас проблемы, формулы и непонятные значки вы не перевариваете, но научиться программировать все же хотите.
Ну чтож, как не крути, но лучше попробовать Паскаль. Да, это уже тоже ископаемое, но как бы то ни было, язык программирования Паскаль задумывался изначально как язык для обучения программированию.
Для самостоятельного изучения программированию на Паскале, можно прикупить книжку. Могу порекомендовать следующую:

Самоучитель Pascal

Программирование на Pascal.
Автор Сэм Аболрус. Оригинальное название книги в переводе с английского – «Изучаем Паскаль за три дня». Действительно, освоить азы программирования на Паскале, при помощи это книги можно за пару дней. Автор работает программистом в корпорации Майкрософт.
Заказать книгу>>

В любом случае, если вы хотите научиться программировать, вам надо постоянно писать программы, т.к. только читая умные книжки, программировать научиться невозможно. Удачи всем начинающим программистам.

Операционная система Android с каждым годом становится не только годной ОС для обычных пользователей, но и мощной платформой для разработчиков. Что ж поделать: Google всегда идёт навстречу девелоперам, предоставляя широкие возможности и мощный инструментарий, приправленный информативной документацией.
К тому же не стоит выпускать из внимания тот факт, что «зелёный робот» является лидером по популярности среди мобильных операционных систем. Это говорит о том, что, программируя под Android, вы будете иметь широкую аудиторию, которая впоследствии может принести прибыль. В общем, Android - своеобразный «оазис» для разработчиков. Поэтому мы подготовили для вас специальную подборку языков программирования, а также сред разработки для этой ОС.
Внимание, небольшое наставление новичкам
: программирование на Android может поначалу показаться сложным или слишком монотонным. Совет: предварительно рассмотрите ссылки на полезные документации прежде чем браться за дело, и тогда программирование на Android не станет для вас проблемой.

Java - основное средство для Android-разработчика

Среды разработки : Android Studio (IntelliJ IDEA) , Eclipse + плагин ADT
Подойдёт для широкого спектра задач
Java - основной язык для программистов под Android, обязательный маст-хев для новичков. Основной исходный код Android написан именно на этом языке, так что легко понять, почему большинство выбирают именно этот язык. Приложения, написанные на Java, запускаются в Android с помощью виртуальной машины ART (или Dalvik в Jelly Bean и более ранних версиях Android) - аналога виртуальной машины Java, из-за которой у Google присутствуют серьёзные судебные тяжбы с Oracle.

Google на данный момент официально поддерживает достаточно мощную среду разработки Android Studio, которая собрана на основе Intellij IDEA от JetBrains. Также не стоит забывать про очень подробную документацию от Google, в которой разбирается всё: от match_parent и wrap_content до конструкторов, констант и основных методов класса JavaHttpConnection - обязательно стоит почитать.

Кроме того, не стоит забывать о Eclipse - очень популярной среде для Java-программистов. С официальным плагином ADT от Google этот тулкит станет мощным и легковесным оружием в ваших руках. Но ребята из Маунтин-Вью ещё с лета прошлого года перестали поддерживать Eclipse, уступив место свежей Android Studio. Рекомендуется использовать на слабых ПК.

Необходимая документация:

С++ - мощный инструмент в руках мастера

Основные среды разработки : Android Studio (версия 1.3 и выше), Visual Studio 2015 , QtCreator
Подойдёт для игровых движков и ресурсоёмких приложений.
С++ - немолодой, но очень мощный язык программирования, отметивший в прошлом году своё тридцатилетие. Был изобретён в 1985 году благодаря стараниям товарища Бьёрна Страуструпа и до сих пор занимает верхние позиции самых популярных языков программирования. «Плюсы» предоставляют вам полную свободу действия, ограничивая вас лишь рамками разумного.


За всё существование Android было создано немало фреймворков и средств разработки для C++. Особенно хочется выделить широко известный Qt и IDE QtCreator, позволяющие разрабатывать кроссплатформенные приложения для Windows, Windows Phone, Windows RT, iOS, SailfishOS и Android (когда-то в этот список входил ещё и Symbian). Кроме того, вы получаете удобную библиотеку контейнеров, алгоритмов и шаблонов Tulip, впитавшую в себя всё лучшее из Java и Android. Ну и, наконец, вы получаете множество различных QT-модулей для высоко- и низкоуровневой работы с системой. Ваш покорный слуга кодит именно в связке C++ и Qt.

В прошлом году на конференции Windows: The Next Champter было уделено широкое внимание достаточно популярной среде разработки Visual Studio 2015. Одним из главных нововведений стала поддержка разработки приложений как под Windows Phone, так и под Android - Microsoft пыталась хоть как-то увеличить количество приложений для своей ОС.

Нельзя также не упомянуть о том, что официальный Android Studio стал поддерживать NDK. С помощью NDK вы сможете использовать при работе с Android графику OpenGL. Если вам нужна быстрота и эффективность - выбирайте NDK! Этот способ разработки отлично подойдёт для игровых движков, требующих большой производительности.

Android разработка на C или C++ может показаться более простой чем на Java, но, несмотря на то, что язык предлагает вам полную свободу производимых действий и не ограничивает вас в ваших шагах, он имеет некоторые специфические особенности, на изучение которых уйдёт немало времени - недаром C++ сравнивают с нунчаками (превосходным оружием, которое, к сожалению требует огромного мастерства). Тем не менее разработка приложений под Android на C и C++ может оказаться занятным делом.

Необходимая документация:

Другие языки

Теперь самое время рассказать о других менее популярных, но тоже интересных языках и фреймворках для них. Однако по многим причинам вы не сможете добиться такого успеха как с Java и C++.

Corona (LUA Script)


Подойдёт для создания игр и простых приложений
Если вам по каким-то причинам не хочется изучать Java или разбираться в построении интерфейса через XML, то вы можете выбрать для себя данное IDE. Corona - это достаточно легковесная среда разработки, код в которой необходимо писать на достаточно лёгком LUA (любители Pascal оценят по достоинству).

Данный тулкит поможет вам при написании простых 2D-игр, для коих здесь присутствуют библиотеки для 2D=объектов, звуков, сети и игрового движка. Созданные игры работают с OpenGL, что означает высокую эффективность. Отлично подходит для новичков, возможно, именно на нём вы сможете создать своё первое мобильное приложение на Android!


Необходимая документация:

Adobe PhoneGap (HTML5, JavaScript, CSS)


Подойдёт для создания нересурсоёмких приложений
Если вы уже знакомы с HTML, CSS и JavaScript, в качестве альтернативы вы можете попробовать PhoneGap. Это IDE позволит собирать полноценные приложения, разработанные на вышеупомянутых языках программирования и разметки.

На самом деле готовые приложения из PhoneGap представляют из себя простейшие WebView, оживлённые при помощи JavaScript. При помощи разнообразных API вы сможете использовать различный функционал устройства прямо как на нативных приложениях. Что интересно - приложения компилируются на сервере и затем уже доступны для использования на iOS, Android, Windows Phone, Web OS и BlackBerry OS. С такой широкой кроссплатформенностью разработка приложений может значительно ускориться.


Необходимая документация:

Fuse (JavaScript и UX)


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

Основная логика Fuse-приложений строится на JavaScript - простом и понятном языке с низким порогом вхождения. Интерфейсный же фундамент представляет UX-разметка - интуитивно понятная каждому. Ну а «плюшки» среды позволят вам применять изменения прямо во время работы приложения на вашем устройстве или эмуляторе - прямо как в Android Studio 2.0 и выше. С помощью Fuse разработка приложений для Android может оказаться несложной и приятной.

Необходимая документация:

Слова «под занавес»

Конечно мы вам показали далеко не все существующие на данный момент инструменты разработки. Этой статьёй мы вам хотели объяснить, что стать Android-разработчиком не так уж и сложно, хотя это зачастую требует стараний и упорства. Мир разработки под мобильные платформы открыт для вас, но помните: первый шаг всегда за вами.

Загрузка...