Компьютерный язык
Компьютер «общается» на одном языке - машинном. Машинный код состоит всего
из двух цифр 0 и 1. Единица соответствует высокому сигналу, а ноль - низкому.
Естественно, что написать программу, используя этот язык, даже переводя числа в
десятеричную или шестнадцатиричную систему, не представляется возможным. Для
нормального восприятия кода был придуман Ассемблер. Он полностью повторяет все
машинные команды, только обозначает их понятными сокращениями (add - сложить, mov - переместить). Ассемблер совершенно не предназначен для быстрой разработки
или масштабного программирования. Код получается очень громоздкий. К примеру,
чтобы сложить два числа, необходимо поместить в аккумулятор первое значение,
затем подать команду на сложение. Итоговый результат будет храниться в
аккумуляторе, затерев предыдущую переменную. Программирование в ассемблере дает
самое высокое быстродействие из всех языков, так как каждой машинной команде
соответствует своя мнемоника. Размер программы будет минимальным. Но
отлаживать код, вносить какие-либо изменения крайне тяжело. Приходится
«перелопачивать» гору кода, для внесения небольшого изменения, и чтобы оно не
повлияло на работоспособность программы.
Мнемоника ассемблера не постоянна, могут добавляться новые команды, старые
нередко действуют отлично друг от друга. Здесь все зависит от архитектуры
процессора. Но по своей логике команды ассемблера идентичные.
О программистах и программировании
Лично я разделяю программистов на две категории: логиков и математиков.
Первые имеют четкое представление в голове о еще не готовом проекте, а вторые
обладают серьезными математическими знаниями. Они могут выходить из
физиков, математиков и уже затем столкнувшиеся с программированием. Обладая
такими способностями к расчетам, они, например, легко могут перевести
трехмерные объекты в код.
Я отношусь к программистам первой категории. Высшая математика для меня
достаточно сложна. Логику удобнее и проще изначально выстраивать на бумаге.
Каждый программист, приступая к изучению нового языка, поступает по-своему.
Кто-то ищет операторы, аналогичные уже знакомому ему языку; кто-то начинает с
фундаментальных основ, досконально изучая всю имеющуюся литературу. Изучение
нового языка я, если есть такая возможность, начинаю с разработки небольшой
программы-игрушки. Уже в процессе ее создания обращаюсь к справочникам, находя
необходимые мне операторы.
Специфика рынка
Тройку лидеров в Америке и Европе уверенно удерживают C/C++, Visual Basic и Java. Разница между ними минимальна. Далее
идет самый популярный скриптовый язык РНР. Остальные языки в рейтинге
популярности/применяемости отстают достаточно серьезно.
В России ситуация немного другая. VB и Java не имеют лидирующих позиций, они крепкие середняки Непререкаемыми лидерами
являются языки семейства С. Хорошие позиции у Delphi, РНР и Perl. Отметиг* стабильно высокую позицию в
обоих рейтингах сравнительно нового языка - С#.
Довольно интересная ситуация произошла с Delphi. Е 2006 году компания объявила о
прекращении всех раз работок в этом направлении. Новых версий не предвиделось и
пессимисты на каждом углу кричали о кончине эры «Дельфи». «Borland» не отказалась от своих намерений i действительно перестала заниматься средствами разработки . В дальнейшем
все наработки были проданы другой компании, которая с успехом реанимировала Delphi. Но неприятный осадок остался. При этом
С# может рассматриваться как его главный конкурент.
Visual Basic в нашей стране никогда не был на первых ролях. Изначально язык
был простым в освоении и имел не очень хороший функционал. «Слишком просто», -
говорили одни, «мало умеет» - вторили другие. В итоге переходили на Delphi и C/C++. В настоящее время он вырос в «монстра», мало уступающего
по функциональности языку Delphi. А по сложности - реализация многопоточности, работа с периферией,
он как минимум ему не уступает. Активное использование языка продолжается при
написании приложений для «Microsoft Office». Используется
специализированный VBA - Visual Basic for Applications.
Если объединить все скриптовые языки, то их доля в рейтинге популярности
языков будет наравне с лидером или даже обойдет его. Интернет-технологии
продолжают развиваться, непременно будет увеличиваться и востребованность
данных специалистов. Кроме того, в сети достаточно вакансий на удаленную работу
именно по этим языкам.
В крупных городах и регионах РФ самыми востребованными специалистами
являются программисты, пишущие на С++ и занимающиеся веб-технологиями. Область
распространения C/C++ очень велика, это микроконтроллерная техника, прикладное
и игровое программирование. Здесь он далеко впереди всех. Совсем иная ситуация
в слаборазвитых, в промышленном плане, регионах. Ввиду меньшего спроса на
ИТ-специалистов здесь нет ярко выраженного доминирования какого-то одного
языка.
Скриптовые языки
Скриптовые языки еще называют сценарными или динамическими. К ним относятся
Perl, Python, РНР, Ruby, TCL, Java Script, VBScript и ряд других. Всех их объединяет использование в одной сфере. Почти на 100%
скриптовые языки используются в Интернет-среде. Для придания сайтам динамических
свойств -выпадающие меню, отсылка почты, ответы на вопросы, применяют Java Script и VB Script. Но Java Script более предпочтителен, так как лишь браузер
«lnternet Explorer* без проблем работает с Basic'oM. Код выполняется непосредственно на клиентском (пользовательском)
компьютере. Приложения, написанные на остальных языках, выполняются на сервере
и взаимодействуют с пользовательскими данными. Это существенно снижает
нагрузку на клиентский компьютер, как в плане производительности, так и
загрузки интернет-траффика. Негативным моментом является то, что в хакерских
атаках используются языки данной группы.
Отдельной строкой выделим Action Script, применяемый в флэш-программировании.
Использование AS началось с написания простеньких и зачастую «туповатых» игр. Уязвимым
местом языка являлась его скорость. Но со временем, а уже вышла третья редакция
AS, проблема была решена. Хоть по
быстродействию и возможностям Action Script по-прежнему уступает языкам семейства С, но и на нем можно писать
достойные приложения. А по удобству работы с графикой ему нет равных. Поэтому
язык можно рекомендовать людям, любящим делать маленькие игрушки. Это может
стать вашей отправной точкой в будущем мире игростроительства. Заметим, что
есть редкие проекты на Action Script, абсолютно не уступающие по качеству
программам, написанным на других языках.
Объектно-ориентированные языки
Языки данной группы имеют очень большой процент использования относительно
всех остальных. К ним относятся С++,Java, С#.
Язык Java является полностью объектно-ориентированным и имеет синтаксис, схожий с
С++. Отмечая преимущества языка перед конкурентами, обычно выделяют его
межплатформенность. Я выделил бы его внутреннюю структуру. Он лишен многих
синтаксических просчетов, присущих С++, в нем меньше ненужных «заморочек» и
поэтому писать на нем приятнее. Типичным использованием языка являются
интернет-приложения, работа с базами данных, создание сложных пользовательских
интерфейсов. С другой стороны, Java существенно проигрывает языкам семейства С
по скорости обработки графики и в приложениях, требующих сложных
математических вычислений.
С++ является прямым наследником языка С. Он имел большую популярность, но
когда в нем появился объектно-ориентированный подход (С++), армия его
поклонников значительно увеличилась. Благодаря быстродействию и возможности
оперировать на самом низшем уровне он находит применение во всех областях
программирования. Конечно, в каких-то случаях удобнее будет применить
специализированный язык, но ничто не помешает вам задействовать именно С.
С# - новый язык, опирающийся на С++ и Java. За годы работы с
объектно-ориентированными языками произошло некоторое переосмысление принципов
построения таких систем. Компанией «Майкрософт» были учтены негативные моменты
их использования, например небезопасность кода, и в итоге появился новый язык.
В нем постарались совместить простоту использования Visual Basic'a и низкоуровневый доступ к памяти при необходимости. Он был специально
разработан для новой технологии .Net. Понятием которые пределяют и библиотеку и платформу - среду, в которой
исполняется программа. Она, наряду с Java-машиной, служит промежуточным звеном между программой и машинным языком.
Написанное приложение преобразовывается в байт-код. У этого метода есть свои
достоинства и недостатки. К плюсам отнесем кроссплатформенность, т.е. программа
без каких-либо изменений будет запускаться на ОС Windows, Linux, Mac OS. Но в реальности это не всегда так. За многоплатформенность приходится
расплачиваться меньшей скоростью выполнения программы и необходимостью
установки самой платформы. Это существенно снижает область применения языка.
Дефакто С# пока прижился только на родной операционной системе. Что мне сильно
не нравилось в С++, так это работа с Windows. MFC, пришедшая на смену Windows API, была не намного легче в освоении, а для построения обычной формы
приходилось писать несколько строчек кода. Но с приходом новой платформы
больше не нужно отвлекаться на подобные мелочи, можно всецело сосредоточиться
на программировании. Библиотека .Net получилась удачной и «человеческой», а
применять Wn API вам придется лишь в крайних случаях.
|