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

Для начала надо определиться с несколькими вопросами, потому что ответить на вопрос в общей форме "На каком языке писать игру?" невозможно в принципе.

Во-первых, какую игру вы собираетесь писать? Варианты ответа:

    Игру ААА-класса, чтоб убер-графика, убер-эффекты, всё реалистичное, чтоб у игрока челюсть отваливалась от одного скриншота.

    Серединка-наполовинку: полу-инди с полу-убер-графикой.

    Хлам для мобилок и браузеров: геймплей - ничто, монетизация - всё!

    Тру-инди: из графики только пикселизованные монстрики. Вся суть - геймплей!

Во-вторых, кто вы по профессии? Варианты ответа:

    Крутейший специалист по компьютерной графике, доктор по алгебре и дискретной математике, ассемблер - ваш родной язык, шейдеры пишете с закрытыми глазами.

    Простой смертный программист.

    Первый раз видите компьютер вживую. Про языки программирования что-то в последний раз слышали в школе.

В-третьих, кто вы по отношению к игре?

    Шестерёнка в компании.

    Только сейчас задумались о гейм-деве.

Теперь, когда вы держите в уме ответы на эти вопросы, можно заняться разбором вариантов.

*1* Если вы крутейший специалист, то вы не читаете этот вопрос. Пропускаем.

1*1 Если вы заправляете разработкой ААА-игр, то вы тоже не читаете этот вопрос.

**2 Если вы работаете на кого-то, то выбора у вас нет. Ха-ха-ха.

1** Если вы хотите заниматься разработкой игр AAA-класса, то есть некоторый выбор.

13* Если вы простой смертный, решивший приобщиться к разработке самых дорогих игр, то выбора особо нет.

На данный момент практически все игры ААА-класса пишутся на C++, как самом подходящем для этой цели: практически все существующие, актуальные и передовые средства разработки (библиотеки, программы, инструменты) поддерживают C++; это один из немногих языков, который позволяет опускаться так низко к железу, насколько надо (ближе только C); на C++ написано огромное количество кода во многих компаниях, у него огромное наследие - пожалуй, самое огромное из всех языков на данный момент.

Для мелких фиговин, типа скриптов для управления интерфейсом, могут использоваться другие языки - менее шустрые, но которые легко обновлять и писать: Lua и прочие. Обычно они составляют не самую большую часть логики.

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

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

22* Если ваша игра обойдётся без самой совершенной графики, и вы умеете программировать, то у вас уже есть выбор.

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

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

Отдельно надо упомянуть сборку мусора: чем сложнее логика, чем вы придирчевее к частоте кадров, тем менее доступным становится это удобство. Если логика разрастётся, то с большой вероятностью может оказаться, что от сборки мусора вообще придётся отказаться и повсеместно использовать пулы и прочие подобные средства. Дело в том, что сборка мусора, какой бы быстрой она ни была, на данный момент слишком медленная, чтобы не приводить к пропущенным кадрам. Мусор, генерируемый со скорость 60 кадров в секунду, разрастается слишком быстро.

23* Если вы ничего толком не умеете, то писать сложные игры в качестве первой попытки не стоит. Начните с чего-нибудь попроще.

42* Если графика у вас относительно простая, а сложных ресурсоёмких алгоритмов нет, то ваш выбор становится очень широк.

Вы можете писать абсолютно на чём угодно! Игру можно писать на любом интерпретируемом языке, который на порядки медленнее оптимизированого кода на C++. Какая разница, если игрок не заметит?

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

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

43* Если вы не умеете программировать, то вы на распутье: вам или надо научиться программировать, или воспользоваться более простыми средствами разработки игр.

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

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

3** И напоследок: если вы пишете для мобилок и браузеров, то вы имеете уникальную возможность настолько же быстро упираться в аппаратные ограничения, как и игры ААА-класса (которые для мобилок существуют с точки зрения денег, но не с точки зрения результата, но это так, лирическое отступление).

Здесь ваш выбор будет сильно ограничен платформой (или платформами). Для одной платформы "родной" один язык, для другой - другой. Выбор, на чём писать кросс-платформенные игры, невелик. Писать код на управляемых языках придётся немного по-другому, уделяя пристальное внимание сборке мусора. Здесь вы будете убиваться об стенку, чтобы ваша игра нормально работала на всех устройствах.

Так как ни одна платформа не доминирует, то сразу смотрите в сторону кросс-платформенных движков и библиотек. Псевдо-ААА тоже сплошником на нём пишется, и это никого не смущает. Так как разнообразие невелико, то в трёх соснах не заблудитесь.

P.S. Я ещё не рассмотрел тьму тьмущую вещей: для какой платформы вы пишете, как выбирать движок и т.п. Считайте это общим вектором, а не инструкцией по применению.

Для начала надо определиться с несколькими вопросами, потому что ответить на вопрос в общей форме "На каком языке писать игру?" невозможно в принципе.

Во-первых, какую игру вы собираетесь писать? Варианты ответа:

    Игру ААА-класса, чтоб убер-графика, убер-эффекты, всё реалистичное, чтоб у игрока челюсть отваливалась от одного скриншота.

    Серединка-наполовинку: полу-инди с полу-убер-графикой.

    Хлам для мобилок и браузеров: геймплей - ничто, монетизация - всё!

    Тру-инди: из графики только пикселизованные монстрики. Вся суть - геймплей!

Во-вторых, кто вы по профессии? Варианты ответа:

    Крутейший специалист по компьютерной графике, доктор по алгебре и дискретной математике, ассемблер - ваш родной язык, шейдеры пишете с закрытыми глазами.

    Простой смертный программист.

    Первый раз видите компьютер вживую. Про языки программирования что-то в последний раз слышали в школе.

В-третьих, кто вы по отношению к игре?

    Шестерёнка в компании.

    Только сейчас задумались о гейм-деве.

Теперь, когда вы держите в уме ответы на эти вопросы, можно заняться разбором вариантов.

*1* Если вы крутейший специалист, то вы не читаете этот вопрос. Пропускаем.

1*1 Если вы заправляете разработкой ААА-игр, то вы тоже не читаете этот вопрос.

**2 Если вы работаете на кого-то, то выбора у вас нет. Ха-ха-ха.

1** Если вы хотите заниматься разработкой игр AAA-класса, то есть некоторый выбор.

13* Если вы простой смертный, решивший приобщиться к разработке самых дорогих игр, то выбора особо нет.

На данный момент практически все игры ААА-класса пишутся на C++, как самом подходящем для этой цели: практически все существующие, актуальные и передовые средства разработки (библиотеки, программы, инструменты) поддерживают C++; это один из немногих языков, который позволяет опускаться так низко к железу, насколько надо (ближе только C); на C++ написано огромное количество кода во многих компаниях, у него огромное наследие - пожалуй, самое огромное из всех языков на данный момент.

Для мелких фиговин, типа скриптов для управления интерфейсом, могут использоваться другие языки - менее шустрые, но которые легко обновлять и писать: Lua и прочие. Обычно они составляют не самую большую часть логики.

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

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

22* Если ваша игра обойдётся без самой совершенной графики, и вы умеете программировать, то у вас уже есть выбор.

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

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

Отдельно надо упомянуть сборку мусора: чем сложнее логика, чем вы придирчевее к частоте кадров, тем менее доступным становится это удобство. Если логика разрастётся, то с большой вероятностью может оказаться, что от сборки мусора вообще придётся отказаться и повсеместно использовать пулы и прочие подобные средства. Дело в том, что сборка мусора, какой бы быстрой она ни была, на данный момент слишком медленная, чтобы не приводить к пропущенным кадрам. Мусор, генерируемый со скорость 60 кадров в секунду, разрастается слишком быстро.

23* Если вы ничего толком не умеете, то писать сложные игры в качестве первой попытки не стоит. Начните с чего-нибудь попроще.

42* Если графика у вас относительно простая, а сложных ресурсоёмких алгоритмов нет, то ваш выбор становится очень широк.

Вы можете писать абсолютно на чём угодно! Игру можно писать на любом интерпретируемом языке, который на порядки медленнее оптимизированого кода на C++. Какая разница, если игрок не заметит?

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

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

43* Если вы не умеете программировать, то вы на распутье: вам или надо научиться программировать, или воспользоваться более простыми средствами разработки игр.

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

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

3** И напоследок: если вы пишете для мобилок и браузеров, то вы имеете уникальную возможность настолько же быстро упираться в аппаратные ограничения, как и игры ААА-класса (которые для мобилок существуют с точки зрения денег, но не с точки зрения результата, но это так, лирическое отступление).

Здесь ваш выбор будет сильно ограничен платформой (или платформами). Для одной платформы "родной" один язык, для другой - другой. Выбор, на чём писать кросс-платформенные игры, невелик. Писать код на управляемых языках придётся немного по-другому, уделяя пристальное внимание сборке мусора. Здесь вы будете убиваться об стенку, чтобы ваша игра нормально работала на всех устройствах.

Так как ни одна платформа не доминирует, то сразу смотрите в сторону кросс-платформенных движков и библиотек. Псевдо-ААА тоже сплошником на нём пишется, и это никого не смущает. Так как разнообразие невелико, то в трёх соснах не заблудитесь.

P.S. Я ещё не рассмотрел тьму тьмущую вещей: для какой платформы вы пишете, как выбирать движок и т.п. Считайте это общим вектором, а не инструкцией по применению.

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

Разработка игр

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

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

Создание игр. Программирование

Начать создавать шедевры компьютерного мира теоретически может каждый. Но как можно понять, программирование игр - это очень сложно. Однако стать геймдевом может практически любой. Самое главное условие — много свободного времени и просто титаническая усидчивость. Допустим, у нас это имеется. Что же делать дальше?

В первую очередь нужно освоить хотя бы несколько самых популярных языков программирования. Без этого создать качественную игру вряд ли получится. Почему же несколько языков? Неужели одного недостаточно? Дело в том, что каждый programming language имеет свою четкую область применения. Ниже мы рассмотрим самые востребованные языки и их применение при программировании игр.

Языки

Пожалуй, наиболее универсальным языком в плане программирования игр является C++. Большинство современных игр и движков для них пишутся именно на нем. В чем же особенность данного языка? Пожалуй, одно из главных достоинств C++ заключается в огромном количестве всеобъемлющих библиотек. Благодаря этому посредством данного языка можно написать все что угодно: от маленькой инди игрушки до крупного проекта ААА класса.

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

Python — это, пожалуй, лучший выбор для начинающего геймдева. Во-первых, синтаксис языка довольно прост. Для того чтобы начать программировать на Пайтоне, достаточно прочитать туториал и обладать нативным уровнем английского. Во-вторых, возможности данного языка программирования достаточно широки. Конечно, Пайтону не угнаться за C++ в плане функциональности. Тем не менее посредством Python можно создать вполне достойный софт (в том числе и игру). К примеру, на Пайтоне написаны такие игры, как "Батлфилд" (2005), "Цивилизация 4", "Симс 4" и много других проектов, которые стали настоящими хитами.

Java — еще один претендент, который определенно достоин внимания. Пожалуй, главное достоинство данного языка — полная кроссплатформенность. Это означает, что софт, написаный посредством "Ява", поддерживается всеми операционными системами ("Виндовс", "Линукс", "Андроид" и т.д.). Это позволяет быстро переделать игру под любую платформу. Помимо этого, Java дает программисту массу возможностей. За примерами далеко ходить не нужно. Вышеупомянутый "Майнкрафт" был написан именно на "Яве".

Однако что делать, если нет времени на изучение языков, но свою игру написать все-таки хочется? Тут на помощь приходят так называемые игровые конструкторы. Что это такое? Ответ на вопрос вы сможете найти ниже.

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

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

Программы для создания игр

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

Пожалуй, сама известная программа для разработки игр — Game Maker. Она предназначена для создания двухмерных проектов. Делать игры можно без навыков программирования. Вместо строчек кода пользователю предоставляют набор готовых действий. Все, что нужно сделать — создать объекты и определить правила взаимодействия между ними. Также стоит подметить, что рисовать спрайты можно прямо в Game Maker без использования посторонних программ. Поэтому софт является вполне самодостаточным. Мало того, Гейм Мейкер не обидит и продвинутых юзеров, которые обладают навыками программирования. Ведь в программе есть возможность добавлять свой исходный код. Посредством Game Maker можно создавать игры с видом сверху (РПГ, тактический шутер и т.д.) и сбоку (платформер).

Construct 2 — это еще один конструктор для разработки 2D-игр. Пожалуй, главная особенность данной программы — мультиплатформенность. Посредством "Конструкта" можно создавать игры для iOS, Android, Windows, Web и т.д. В плане функциональности Construct 2 ничем не уступает тому же "Гейм Мейкеру".

Вывод

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

Машина не понимает человеческий язык. Конечно, мы не про 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, но свобода в выборе направления того стоит.