Что такое языки программирования?
Языки программирования — это способ общения между людьми и компьютерами. Люди читают код во много-много раз чаще, чем пишут его — поэтому разработчики создают языки программирования, которые хорошо решают определенные проблемы с помощью небольшого объема кода. Вот пример с использованием JavaScript:
var name = "Danger"
console.log("Hello, " + name)
В первой строке создается переменная (фактически ящик, в котором можно хранить другие вещи), а во второй строке выводится текст на консоль (например, DOS или терминал) «Hello, Danger».
JavaScript разработан для работы в качестве языка сценариев, что означает, что код начинается в верхней части файла, а затем строка за строкой идет вниз, выполняя этот код. Для контраста, вот то же самое поведение в Java, которая построена с другими языковыми ограничениями:
class Main {
public static void main(String[] args) {
String name = "Danger";
System.out.println("Hello, " + name);
}
}
Эти два примера кода делают одно и то же, однако версия на Java содержит много слов, которые не обязательно указывают компьютеру, что именно нужно делать, например, class Main {, public static void main(String[] args) {, и два дополнительных }s. В нем также есть полутоны в конце некоторых строк. Ни один из этих языков программирования не является неправильным, однако Java нацелен на создание других вещей, чем JavaScript, и эти дополнительные биты кода имеют смысл в рамках ограничений создания приложения на Java.
// JavaScript
var name = "Danger"
// Java
String name = "Danger";
Обе эти строки объявляют переменные с именем name, которые содержат значение «Danger».
В JavaScript для объявления переменной используется аббревиатура var. Между тем, в Java вам нужно сказать, какие данные содержит переменная. В данном случае переменная содержит строку. (Строка — это термин программирования для обозначения набора символов. Они «выглядят вот так». Это видео на 5m — хороший учебник, если вы хотите узнать больше).
Обе эти переменные содержат строку, но разница в том, что в Java переменная может содержать только строку, потому что именно это мы указали при создании переменной. В JS переменная может быть любой, например, числом или списком дат.
Для примера:
// Before in JS
var name = "Danger"
// Also OK
var name = 1
var name = false
var name = ["2018-02-03", "2019-01-12"]
// Before in Java
String name = "Danger";
// Not OK, the code wouldn't be accepted by Java
String name = 1;
String name = false
String name = new String[]{"2018-02-03", "2019-01-12"};
Эти компромиссы имеют смысл в контексте, для которого эти языки были созданы в 1995 году. JavaScript изначально был разработан как небольшой язык программирования, который обрабатывал простые взаимодействия на веб-сайтах. Java, с другой стороны, был создан специально для создания сложных приложений, которые могли бы работать на любом компьютере. Предполагалось, что они будут использоваться для создания кодовых баз разного масштаба, поэтому язык требовал от программистов написания разных типов кода.
Java требовал от программистов более четкого указания значений переменных, потому что программы, которые, как ожидалось, должны были создавать люди, были более сложными. В то время как JavaScript сделал выбор в пользу простоты чтения, опустив информацию о специфике, и ожидал, что кодовые базы будут значительно меньше.
Пол Ишайли С.
Traditional Creative Director, Software Engineer and Tech Writer