Java

Этот вопрос давно меня мучает. Почему в более мощных языках программирования нужно самому объявлять тип данной переменой

Нельзя было бы это сделать автоматически? Вот в JavaScript не нужно объявлять string, number, boolean, object для переменых. Всё там объявляется как то само сабой, автоматически. Почему и в c++ и других языках такого нет? Было бы удобнее. А так надо морочится...
Почему в С++ нет такого? Есть же: auto.
В С# и Java тоже есть: var.
Даже больше скажу, это не влияет на скорость, так как тип определяется во время компиляции всё равно.

Было бы удобнее? Ахах, когда js будет принимать undefined там, где вам нужен объект вы поймёте почему это плохо (спойлер: будет сложно найти то, из-за чего в ф-цию летит undefined, и вы погрязнете в куче тупых ошибок в стиле "cannot read propery aoao of undefined")
Поэтому морочится надо, потому что только таким путём вы сможете достичь с языком программирования взаимопонимания и избежать кучи проблем (и код будет самодокументирующий).
А, ну и ещё из плюсов, в некоторых ЯП из-за ручного указания типов можно сделать перегрузку методов и это очень прикольненько^^
Также, это повышает читабельность (объекты из примера высосаны из пальца):
let videomanager = new VideoManager();
let videochannels = videomanager.channels(); //а тут-то не понятно что это может быть, допустим, VideoChannelsSupervisor, а не Array, было бы хорошо это указать, но нельзя ибо JS((
Ердулат Бейсембаев
Ердулат Бейсембаев
10 636
Лучший ответ
Мощность языка определяется полным контролем над ресурсами компа.
Другими словами: "Что я сказал, то и будет! А не то, что какой-то компилятор решит!" )))
Это влияет на скорость работы. Си пп произошел от си, который заточен на скорость на низком уровне процессора, поэтому строгая типизация избавляет от лишней загрузки ЦП. Поэтому джаваскрипт на нынешних мультиядерных цпу работает сопоставимо и с менее четкой типизацией.
Volodya Vinogradov
Volodya Vinogradov
65 504
Чтобы потом не было проблем с преобразованием типов и софтина не вылетела бы в неподходящий момент.
Мы не разработчики, чтобы решать данную проблему.
Александр Галилеев Не нужно решать. Я хочу понять почему так а не как в JS
Мы не разработчики, чтобы решать данную проблему