Почему закрытие блока исключено в Java? - PullRequest
2 голосов
/ 14 марта 2012

Я основной Java-программист, но в последнее время я заинтересовался Smalltalk. Я должен признать, что я полностью поражен огромной мощью, которую язык дает программисту, и я считаю динамическую типизацию большим плюсом (лично).

Я не хочу сравнивать два языка, потому что я понимаю, что java хорошо подходит для корпоративной реальности, которая забирает большую часть возможностей программиста навсегда (например, использование указателей?), Чтобы уменьшить возможности для совершения ошибок , Согласовано. Но я не понимаю, почему концепция блоков / замыканий исключена не включена в язык? Потому что я действительно нахожу их очень полезными, и я не вижу причины, по которой такая мощная функция не может быть объединена в java, хотя она имеет статическую типизацию. Есть ли какая-то конкретная причина для этого?

1 Ответ

3 голосов
/ 14 марта 2012

AFAIK, он не был включен, потому что Java основывался на языках, у которых не было этой функции. Вместо этого у Java есть альтернативы, которые достигают того же самого, но относительно безобразно.

Надеюсь, он будет включен в Java 8 только для того, чтобы люди не жаловались на это. ;)

Я не вижу причины, по которой такая мощная функция не может быть объединена в Java

Можете ли вы вспомнить реалистичный пример того, что вы можете сделать с замыканием, которое вы уже не можете сделать с Java? Основным отличием является производительность и удобочитаемость. Хотя это очень важно, это не так, как это невозможно сделать.

...