Чем отличается программирование на PHP от программирования на C++

Здравствуй, читатель. Я имею некоторый опыт программирования на PHP. Также, когда-то я изучал и немного программировал на C++. Поэтому я могу сравнить основные отличия этих языков с точки зрения разработчика. Я не претендую на полную объективность, так как могу многое упустить из виду, однако, возможно, мне удастся через эту статью поделиться с Вами частью своего опыта в этом вопросе.

Чем отличается программирование на PHP от программирования на C++

Предназначение PHP и C++

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

Пользовательские интерфейсы

Из первого отличия следует второе — пользовательские интерфейсы. Так как с помощью языка PHP генерируются сайты, то взаимодействие с пользователем на них выполняется с помощью других языков — HTML, CSS и JavaScript. Работает это так: когда человек заходит на страницу сайта через свой браузер, запускается программа на PHP, называемая ещё скриптом. Эта программа, работая с данными, хранящимися на сервере, выводит в выходной поток просто текст. Этот текст в целом представляет из себя веб-страницу на языке HTML, которая передается с сервера в браузер пользователя. Кроме этого, туда же передается код на языке разметки CSS и программы на языке JavaScript. Когда это всё попадает к пользователю, его браузер интерпретирует этот код и программы и на основании них строит пользовательские интерфейсы. В случае же с C++, если он выполняется на компьютере пользователя, это работает по-другому. Когда пользователь запускает у себя программу, написанную на C++, эта программа, будучи когда-то откомпилированной, запускается непосредственно у него на компьютере, и, если необходимо вывести интерфейсы, выводит их и взаимодействует с ними с помощью средств операционной системы, например, Windows API.

Компиляция и интерпретация

Далее, одним из отличий этих языков является то, что программу на C++ перед ее запуском компилируют, то есть преобразуют в программу на машинном языке. Тут дело в том, что процессоры, которые используются в наших компьютерах, не умеют сразу выполнять программы на языках высокого уровня, таких, как C++ и PHP. Они умеют выполнять программы на машинном языке, которые представляют из себя набор команд и данных в виде цифр в двоичной форме. Поэтому для того, чтобы программа на C++ заработала на Вашем компьютере, ее надо преобразовать с этого языка в машинный язык. Это и называется компиляцией. В случае с PHP это работает несколько по-другому, так как он является интерпретируемым языком, а не компилируемым. Поэтому, для выполнения программы на нём она не преобразуется в машинный код. На сервере, где выполняется эта программа, установлен интерпретатор, который представляет из себя ПО, которое считывает Вашу программу на PHP, разбирая ее по командам, и выполняет эту программу, совершая действия, соответствующие командам в ней. А вот сам интерпретатор уже откомпилирован и выполняется процессором сервера. Однако, тут есть оговорки. Сейчас программы на PHP зачастую перед выполнением преобразуются на сервере в байт-код, который представляет из себя некоторый промежуточный вариант между программой на PHP и скомпилированной программой на машинном языке.

Низкий уровень при взаимодействии с компьютером

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

Типизация данных

Пятое отличие — типизация данных в C++. В этом языке каждая переменная имеет свой тип данных, который говорит о том, какие конкретно данные можно хранить в этой переменной. Например, в переменной типа int можно хранить целые числа, то есть число 5, например, записать туда можно, а вот число 3.14 — нет, так как это уже не целое число, а вещественное, и для него нужно использовать переменную другого типа. В случае же с PHP, зачастую, в одну и ту же переменную можно записывать самые разные данные. Однако, в современных версиях PHP также делает шаги в сторону типизации данных. Например, для свойств классов тут можно указывать типы данных.

Оцените статью
Поделиться с друзьями
Валерий Матафонов

Автор блога WM-IT.pro. Занимаюсь разработкой и оптимизацией сайтов с 2010 года.

WM-IT.pro - Блог об информационных технологиях
Добавить комментарий

  1. Шурик

    Эти языки совершенно разные, хотя основа, конечно же, везде одна, а вот синтаксис… — поэтому учить параллельно не стоит

    Ответить