Здравствуйте, мои читатели и подписчики блога scriptcoding.ru. Сегодня мы поговорим о больной для меня теме. Я представлю Вам классификацию языков программирования высокого уровня, сделав обзор тех языков, с которыми мне приходилось сталкиваться за всю свою жизнь. Я выскажу свое мнение и дам беглый обзор самых современных и нужных, благодаря которым, Вы сможете создать свое детище.
Язык программирования Паскаль
Язык программирования Паскаль — я начал изучать, когда мне было 16 лет. Я ни разу не слышал о данном языке программирования, и не знал, что это или кто это. Когда я впервые услышал слово «Паскаль», я представил себе толстого волосатого музыканта, который пел попсу. Еще я представил ученого, который если мне не изменяет память, что-то творил со ртутью в учебниках по физике. В общем, это был мой первый язык программирования в колледже и я не знал, чего ждать.
Первое занятие. К нам зашел преподаватель, высокая, строгая женщина в коричневых очках и что-то быстро говоря и шепелявя, начала рассказывать про язык Паскаль, как будто перед ней сидели гении по всем языкам программирования. Что делать? Я стал втягиваться. Первые 2 занятия, была теория, потом была только практика. Мы начали знакомство с языком с примитивного примера — «Hello World«. Я все ждал чуда, но его не было. Поясню, в то время, только зародился веб, если у тебя был сайт, ты был, как бог. В то время мне хотелось писать что-то свое, чтобы ломать софт или делать что-то красивое в вебе, вроде флеш. УУУ… по тем временам флеш был это что-то. Наверно, за этим я и шел в колледж. На переменах, играясь с одногруппниками в HTML4 и Flash, я узнавал больше, чем от того преподавателя. Ну да ладно.
Паскаль — предок языка программирования делфи. Делфи, как составная при классификации языков программирования, на тот момент уже загинался, не понимаю, почему мы учили Паскаль. Ах, Паскаль, наверно хороший язык для учебы, но хотелось сразу в бой, что-то создавать, чтобы была польза. А мы писали консольные приложения на доисторических компьютерах. Не, было круто, мы выводили звездное небо на Паскале. Оно сияло и меняло координаты звезд. Причем во флеше это можно было нарисовать за 5 минут, а мы делали это руками на программирование 1 месяц. Учеба, что тут поделаешь. Мне хочется написать про этот язык высокого уровня больше, но если честно, прошло уже много лет и я его полностью забыл, забыл даже синтаксис и чему меня там учили, может быть, это как-то повлияло на меня, на мой опыт обучения языкам программирования, я не знаю, но как первый язык, он заслуживает всей похвалы. Молодец! Так держать Паскаль.
Язык программирования C++
Язык программирования C++ был моим вторым в рубрике «классификация языков программирования высокого уровня» по программе колледжа. Был другой преподаватель, довольно молодой, но забавный парень. Его было приятно слушать, хотя многие над ним постоянно прикалывались. Он вел у нас еще «Системы счисления» и я тогда узнал, что существует помимо десятичной, еще и восьмеричные, двоичные и шестнадцатеричные системы. Мы выходили к доске и считали числа, выводя их в столбик из одной системы в другую, как в обычной математике. Математику и алгебру, я обожал еще в школе. Я тогда еще не понимал, что это так круто. Я просто любил фантазировать и считать, меня это как-то увлекало, и на уроках мне не было скучно.
Занятия по C++ у нас были всего 2 раза в неделю и нам приходилось ездить в другое здание колледжа. Такой вот у меня странный колледж был, платный, что ты хочешь? Но на занятия по C++ я ездил с удовольствием, мне он нравился больше Паскаля, как-то логичнее что ли был. Я тогда даже не подозревал, что это самый страшный и опасный язык программирования высокого уровня, который только существовал на этой планете. Я относился к нему просто. Надо было купить учебник, покупал. Надо было решить задачу, решал. Тема ООП (объектно-ориентированное программирование), для меня не вызывало никакого впечатления. Я не знал, что это — революционная тема и не особо в нее вслушивался. Как я уже писал, на тот момент меня интересовали 2 вещи: сайты и вирусы. У меня была цель — написать свой троянский конь. Поэтому, я, наверно, интересовался C++. Но недели шли, а мы писали лишь калькуляторы, в консоле перебирали массивы, запоминали, сколько байтов в интеджере и т.п. В общем, мне было скучно. На C++ вообще забил, и когда нужно было сдавать дипломную работу, я пошел и договорился с преподавателей. Зачет я получил, но сейчас я жалею, что не написал так, как глубокий опыт в языке программирования C++ лишним не будет. Сейчас уже нет смысла его изучать, есть более красивые языки высокого уровня, а кто хочет ковыряться в старье, пускай ковыряется.
Язык программирования PHP
После окончания колледжа я полностью переключился на веб. Я не понимал, куда я столько истратил времени и толку не было. Хотя наверно толк был, мы много чего изучали и это был хороший трамплин в мир IT. Это Вам не школьная информатика. Мне хотелось зарабатывать, а больше наверно создать что-то свое. Тогда сайтов вообще не было, если у тебя был сайт, это — было нечто. Даже не все фирмы имели сайты, а если и имели, то такие позорные, аж жуть. На одном статическом html с мигающими гифами и т.п. На том горизонте, властелинами веб были 2 языка высокого уровня: php и perl. Я начал изучать их 2. Я не читал книжки, нет. Мне не хотелось учиться, а хотелось уже что-то создавать. Я искал сайты, где можно было скачать скрипты и в них поковыряться. В тот момент, только зарождались форумы и гостевые книги и если на сайте они были, это считалось круто. Javascript тоже был, но на нем выводилась какая-то гадость, вроде бегущих строк, времени и алерта по нажатию правой кнопкой мыши, я считал его не серьезным языком, ах, как я ошибался.
С PHP у меня все было просто. Не надо было даже особо менять код. Я соединял просто разные скрипты сайтов со своим HTML и у меня появлялись готовые сайты. Часть я делал себе и друзьям, часть я продавал. Кстати, CMS на тот момент не было, а если и были, то про них никто не знал. PHP мне понравился, но я считал его несерьезным языком программирования, так как я за 3 дня с ним разобрался, не читая ни одной книжки и лепил из него, что душе было угодно. А когда вышли CMS я вообще отложил мысль изучать его. Сейчас же, вообще считаю глупостью изучать этот старый, корявый язык. Время PHP давно ушло, сейчас есть более серьезные технологии, которые зародились также, как когда-то PHP и Perl. Классификация языков для программирования.
Язык программирования Perl
С Perl я тоже игрался, когда мне было 17 лет. На нем было меньше скриптов и все они работали через cgi-bin. Нужно было прописывать линуксовые пути, которые я вечно путал так, как в разных скриптах, они выглядели по-разному. На тот момент, он был на ровне с языком программирования PHP и никто не знал, какой из них выстрелит. Сейчас уже видно, что выстрелил PHP, ведь он легче. Поэтому, Perl, как звено в классификации языков программирования, все давно забыли.
Из курса одного крутого старого программиста, я запомнил одну фразу. Так он говорил про Perl: «Код написанный на Perl, выглядит так, будто его написал сумасшедший инопланетянин!» Это был преподаватель по Python. И правда, Perl развязывает руки. Для одной задачи у Вас полно реализаций, как у художника. Но подумайте о поддержке кода и о тех людях, которые буду читать Ваш код, они просто сойдут с ума. Поэтому, Perl, как язык высокого уровня в программировании, не пользуется популярностью. Его немного используют в тестирование и все. Профессиональные сайты на нем не напишешь. Его создал лингвист, а не программист, может быть и в этом все дел.
Язык программирования Java
Спустя 10 лет, пока я тратил жизнь в пустую, много изменилось и я решил вернуться в мир IT, что с моим бэкграудном было не сложно. Послушав совет дядьки и посмотрев рейтинги языков программирования, я решил увлечься языком высокого уровня Java. Да, этот Java в звене классификации языков программировния мне очень понравился, после тех ужасов, что я изучал до него. Все четко, красиво написано, прям расцеловать хочется каждую строчку. Но Java дается не легко, не потому что она сложная, нет, даже легче C++, она просто большая. И выучив один только язык, Вы не выучите ничего. Java — это не язык программирования, а платформа. Учить надо библиотеки и фремворки, а их столько, что глаза на лоб лезут. Каждая фирма использует что-то свое и Вам каждый раз придется переучиваться. Причем литературы по Java на русском Вы не найдете, а если и найдете каких-то бородатых годов. Свой проект на Java Вы сделать не сможете. Вам нужны будут напарники и начальный капитал, чтобы снять сервер vps. В остальном Java отличный язык высокого уровня. На данный момент — это последняя стадия совершенства, круче него нет ничего. И если и надо будет переписывать какой-то проект на более мощный язык, — 99% что это — будет Java.
Сейчас Java очень востребована и будет востребована еще 2-3 десятка лет, а может и больше. Но реализовать весь свой потенциал, Вы сможете лишь в какой-нибудь конторе, писав intranet проекты, тобишь, внутренние. Их никто не увидит, кроме заказчиков, Вас, коллег по работе и тестировщиков. Немного обидно. Когда я работал Java программистом, мой коллега — ровесник, но с 5 летним стажем Java, писал сайты на каких-то ужасных CMS-PHP. Вот ты программист Java, а в нете размещаешь один бред. Ужас. В чем смысл то? Во фрилансе? А Вы знаете, сколько индусов знают Java и готовы сделать то же самое, что и Вы, только в 5 раз дешевле. Нет, в Java можно углубиться, но в будущем, если уж очень захочется.
Язык программирования C#
В него я попал после неудовлетворения Java. В Java надо много изучать, читать английскую литературу, пользоваться уродским eclipse или мудреной Idea(на фирме в них работали). Никто толком ничего не объясняет, если спросить. Как будто ты уже гений. Сетеры и гетеры, задолбало руками писать, хоть есть и автоматически их вызовы. Просто хотелось, чего-то почище, чтобы быстрее втянуться и наслаждаться.
Все ссылались на .NET, что книги, что коллеги. В общем, была какая-то шумиха. Я на тот момент даже не понимал, что такое язык для программирования высокого уровня C# и как он правильно произносится. Я видел вакансии программист c, программист c++, программист c# и думал, что это одно и то же, только разные фремворки. Ну, c и c++ я различал, но что такое c# я не понимал. Пришлось углубиться. И знаете, что я Вам скажу. Java конечно потрясающая и крутая, но только после изучения C# я втянулся в ООП, во все эти потроха и все понял — хорошо, что языки программирования похожи, и сейчас я без труда могу программировать на одном и на втором, но упаси Вас Господь, начать изучения с Java. Я как специалист с небольшим бэкграундом C++, мозг сломал в Java. С языком C# вам будет полегче, полно курсов на русском, книг. Все идет в комплекте, прочитаете книгу на 1400 страниц, будете знать все. Один фремворк на каждой фирме, требуются одни и те же знания. Ну разве не сказка? Сказка, если Вы любите Microsoft.
Мелкомягкие меня много кормили. Еще с тех времен, когда я быв школьником, устанавливал Windows и получал бешенные деньги. Но ребят, надо же взрослеть и переходить на Linux. Какую бы красоту они там не навеяли, ты понимаешь, что ничего серьезного на их технологиях не сделаешь, вспоминая те моменты, когда лагает винда. Ну первые они были, не важно кто кого обманул, Гейтс Джобса или наоборот. Но вот Гейтс первым вышел на рынок и захватил его, впендюривая каждому свое убожество. Он бизнесмен и плевать он хотел на всех, наверно поэтому, он самый богатый человек в мире. Хотите присоединиться к нему? Пожалуйста, в путь.
Поработав хорошенько с .NET и поняв все, что можно. Они начали меня бесить. Для меня все начало казаться слишком легким, ну прям через чур, к примеру, полиморфизм через virtual, ну какого хрена я должен это писать. Вот в языке программирования высокого уровня Java сам догадывайся, где и что нужно ставить, там аннотации и то, на которые компилятор плевать хотел. NET показался очень простым, он этим и приманивает, но они взбесили меня поддержкой других языков. Ну есть C#! Не нравится? На Java переходи! Так они подтягивают всех: Cobol, Fortran, этот ужасный Visual Basic и ты давай учи совместимость типов, запоминай какая разрядность, на какой системе и вникай во всю эту кухню. В общем, полно ненужного, но они делают это для того, чтобы привлечь как можно больше приверженцев. Мне кажется C# скоро станет такой же помойкой, как PHP. Они к этому и стремятся, а вот Java стоит на своем. Как бы, кто ее не обсирал, она сила и занимает достойное место в классификации языков программирования, и никогда не сдаст позиции. Фиг облегчения увидите, будет все только сложнее. Эти языки похожи, но идут по разным дорогам. Java вверх, C# вниз.
Язык программирования Objective-C
Язык программирования Objective-C пришел в мою жизнь, когда я заболел Джобсоманией. Перечитал все книги о нем, пересмотрел все интервью, он меня так вдохновил, как бог. Наверно, из-за моей мании к эзотерики и темой здорового питания. В общем, я увидел в нем себя. И когда он умер, чуть ли не плакал. Смысл жизни Джобса был IPAD, он хотел его создать еще в 90 годы, но технологий таких не было. Я тоже хотел создать. Помню когда ехал в метро в 98 году, подумал, вот бы классно иметь такой маленький телевизор, на подобии игрушки, где волк хватает яйца, только чтобы можно было переключать каналы и смотреть телевизор. Видимо реальность транслировала это в разные умы и Джобс, так не сдался, как я. Он воплотил свою мечту, на последней стадии рака, он показал это всему миру, после чего, спустя 3 месяца умер.
Да, сильное творение… И мне хватило только того, что Джобс посвятил этому жизнь. Я его зауважал и решил углубиться больше в Apple. Изучил с чем они работают, какие языки используют, какие технологии, как делают деньги. Так я набрел на великий и ужасный язык высокого уровня Objective-C
Но это было не просто ребятки, ах как не просто. Чтобы писать полноценные приложения на Objective-C нужен мак, а у меня был и сейчас есть, самый дешевый ноутбук Toshiba с Windows 7. Я пытался хитрить, ставил всякие сишные компиляторы, код Objective-C работал, но фремворк Cocoa (на чем пишут все мобильные приложения) не работал. Какая это была досада и одновременно желание, я так хотел творить на нем, что искал всех ходы реализации этой проблемы. Я заказал за бешеные для меня деньги, книг на 8000р так, как литературы на русском по этому языку не было. Было очень обидно, когда через 2 месяца, эти книги можно было спокойно скачать с торрента, видимо я был не один такой.
Но как изучать коку и писать мобильные приложения и игрушки? Нужен мак. Ставить хакинтош я не хотел, хотел работать с родным. Найти мак это целая миссия, хороший мак, рабочий, у нормального человека, а не жженый и переплавленный у барыг. Я его нашел и купил, слабенький с 1гигом, но родной. На нем стоял ТИГР, старье. Я заказал по инету родной памяти и вызвал мак-специалиста. Он ко мне приехал, сам раскрутил все специальной отверткой и установил мне 4 гига родной памяти. Ничто в этом мире, на тот момент, не могло пустить меня на такие жертвы.
Я снёс учетную запись, снёс систему и поставил родного последнего льва. Кстати, разобраться с установкой тоже нелегко. Ну ладно. У меня последний Xcode, я крутой и могу делать приложения для iPhone и iPAD. По десятку книжек, я проработал все примеры и изучил все. Но было нелегко так, как книжки были 2012 года, а информация в них была за 2009 год. Вот так у нас переводят. И когда я писал программы, интерфейс выглядел вообще по-другому. Приходилось разбираться со всем самому и не всегда получалось. Классификация языков программирования высокого уровня. Ну да ладно. Приложения пошли, и даже без лицензии в 99$ и устройства iPhone или iPad, я запускал программы на эмуляторе. Было круто, но душа не пела. Я хотел делать игрушки, но где они? Я истратил кучу нерв, перечитал тонну книг, а где игрушки то? Оказывается, что на маке и Objective-C можно писать игрушки, но примитивные в 2d графике, с помощью родного бесплатного движка Cocos2d. Он работает по спрайтам, просто изображения типа png двигаются по экрану с помощью Objective-C, как сейчас пишут игры на Javacsript для браузеров. Бред, какой-то. Вот твоя награда. Помимо всего прочего, меня начал бесить сам язык высокго уровня Objective-C.
Apple очень сильно заботиться о пользователях, а на программистов она плевать хотела. И в Objectve-C программер может мозг сломать. Все по-другому! Даже названия методов у них «сообщения» называются. Интерфейс — это протокол. А класс — это интерфейс. Ну как Вам? Мало? Ок. Так, как на айпадах и айфонах мало памяти, Вам надо управлять памятью вручную. Прикиньте? Как в C++. После Java и C# это вызывает дикую ярость. Сама сишная система файлов начинает бесить, эти инклуды и разделения файлов. Не забывайте, Objecrive-C — это просто ООП надстройка над C, только они пошли по другой дороге, в отличие от C++ и если Вы хотите писать мобильные приложения, вроде калькуляторов для айфон, то придется Вам сломать свой мозг.
Ты про игры не договорил…
Да, ребят. Вернемся к играм. Если это Ваша первоначальная цель, Вы хотите разработать Angry Bird и продать его за 1млн долларов, забудьте об языке программирования Objective-C. Этот путь никуда Вас не приведет. Даже если Вы устроитесь работать разработчиком мобильных приложений, Вас заставят писать для Android, а собственно учить и Java, а также для Windows Phone, соответственно и C#. Нет такой профессии программист Objective-C, есть профессия программист мобильных приложений. И фирма реализовавшая какое-то тупое приложение для своих пользователей, захочет видеть его на всех возможных платформах. Так что, надо Вам это, думайте сами.
Ну, все, вот и игры. Нужно Вам изучать не коку и objective-C, а движки, большинство из них портируются на любую платформу. Написал на движке игру и поставляешь ее: на iOS, на Android, на Windows, Mac, Linux, на Web, а также на Xbox, Playstation и Wii. Два самых популярных движка для этих целей — это UDK и Unity3d. UDK использует свой язык unrealscript, что-то вроде C++. Unity3d использует C#. Приехали! Но это еще не все. Чтобы написать полноценную игру, Вам нужно знать хорошо графику. Я, конечно, изучал компьютерную графику в колледже, но этого мало. Тут нужно настоящее художество. Лепить фигуры в Zbrush, рисовать ландшафты в 3DsMax и создавать героев в Maya, рендеря их с помощью Python и C++. Ну как Вам не слабо? И все для одной игры! Может быть, это интересно, но тратить столько сил на учебу, мне кажется перебор. А работать в команде за копейки, никому не хочется. Самое обидное, что эти вкусности никому не нужны. Выучите Вы все это, потратите годы жизни, а если проект не выстрелит, так и останетесь на дне. В США IT вакансий 80000, из них только 6(шесть) вакансий для разработки игр. Посчитайте, сколько это процентов, если интересно. Уже с мысли сбился, хотел что-то добавить про Objective-C и забыл. В общем, я дал Вам общую картину, изучая каждый возможный шаг в этой теме, в течение 2 лет. Я делюсь с Вами этим, и может быть, это кому-то поможет.
Язык программирования Python
Python — привлек своим пиаром. Его при классификации языков программирования сильно пиарят крутые Java программисты, как 2 простой язык. Пиарят тестеры, ведь автоматизация все на нем. Пиарит гугл так, как сам гугл и ютуб написан на питоне. Пиарит сис. админы и гуру линукс, ведь он им сильно помогает. 3D графика работает с помощью питона, такие игры как Цивилизация 4, используют питон в консоле. В общем, Питон, питон, питон…
Ну что Питон ок. Он оказывается очень старый, его придумал программист, который сейчас работает в гугл в роли архитектора одного IT отдела, т.е. язык как и Java и C# принадлежит какой-то фирме, это нехорошо. Существует этот язык программирования высокого уровня с 1995 года, на ровне с php и perl, он тогда передо мной как то мелькал, но я думал, что это что-то такое страшное и никому не нужное. Много переиздавался, сейчас, версия 3 от версии 2 отличается кардинально и если Вы захотите им владеть, придется учить 2 версии. Так как учебники и курсы, уделяют вниманию обеим. Сам язык программирования высокго уровня очень быстрый, я бы сказал просто скоростной супер мен. Это интерпретируемый язык высокого уровня и этим все сказано. Намного сильнее php, его он просто душит своими кольцами ужасной змеи. Полно фремворков, на нем можно писать все! Язык крутой, но сам синтаксис меня не впечатлил. Ну, после всего этого ожидаешь какой-то выход, глоток свежего воздуха, а получаешь очередную свалку. Именования вроде __init__ меня вообще в дрожь бросают. Отсутствие точек с запятыми, ну не привычно мне, я сишник. Я не вижу логики, где что связывается, а рассчитывать на отступы, не всегда могу. Всякие кортежи и слово elif фуу.. Я не знаю ребят, может он крутой. Но когда я начал проходить Django и узнал, что он работает до сих пор через cgi-bin у меня все желания пропало его изучать (после мощи Java и .NET). Язык питон — крутой, реально говорю, но на любителя своеобразного синтаксического сахара.
Язык программирования Ruby
Язык программирования Ruby — мой король, бог и властелин. Я пробовал его изучать много раз, но всегда бросал, клонясь в сторону Java или NET. Ну, они же круче, думал я. Круче конечно, но руби в классификации языков программирования красивее. Он такой красивый, что ты начинаешь получать кайф от программирования и его изучения. Тебе хочется знать все, ты уже не плюешься никакими книжками и курсами на английском. Для руби моей, я сделаю все. Все логично, все так ммм… ну просто сказка. Перестроится тяжело, но как начинаешь вникать, думаешь, куда я тратил столько времени, на изучение всякого бреда. Руби первый, он независим, его придумал японец в 1995 году, но в мир он попал где-то в 2001 году. На него посмотрели, порадовались и забыли, пока группа американцев не написала Rails. Прекрасный MVC фремворк для работы в веб. Микрософт полностью слизала эту технологию для свего MVC4 ASP.NET и вы не поверите, но сейчас это 2 конкурента. При том, что руби красивее, быстрее, работает на линукс и абсолютно бесплатный. Не забывайте, на нем был написан Твиттер, позже конечно его переписали на Scala, но чтобы проект стрельнул, этого хватило, а разбираться стали дальше, когда было полно денег.
Вакансий по руби мало, специалистов тоже. Но если Вы не хотите менять работу каждые 2 месяца, как делают java программисты, руби — самое оно. Вам не нужно много знать, достаточно Ruby on Rails — это стандарт и везде нужен только он. Даже если Вы захотите знать, что-то больше, то Вы нигде не найдете информацию. По Ruby on Rails в сети можно найти: 3 книжки на русском, 10 на английском и десяток курсов. Все! Это отличный старт, я полагаю, для светлого будущего. Вы будете управлять веб, писать на красивом языке и быть редким востребованным специалистом, в любой стране мира. Я не знаю, как Вы, но мне после того, что я видел в своей жизни, с какими системами работал, хочется отдаться именно руби. На руби можно писать разные приложения, но в основном это веб. Поэтому, если Вы хотите реализовать какой-то серьезный веб проект и при этом обойтись без всякой помощи, руби — лучший выбор в плане языка высокого уровня. Посмотрите в нете код на нем и все встанет на свои места.
Вот и подошел к концу мой обзор классификации языков программирования высокого уровня, с которыми мне приходилось сталкиваться в своей жизни. Надеюсь, Вам было интересно, также как и мне. Спасибо за внимание и успехов!!!