Главное меню
Мы солидарны с Украиной. Узнайте здесь, как можно поддержать Украину.

Ответ

Обратите внимание: данное сообщение не будет отображаться, пока модератор не одобрит его.
Ограничения: максимум вложений в сообщении — 3 (3 осталось), максимальный размер всех файлов — 300 КБ, максимальный размер одного файла — 100 КБ
Снимите пометку с вложений, которые необходимо удалить
Перетащите файлы сюда или используйте кнопку для добавления файлов
Вложения и другие параметры
Проверка:
Оставьте это поле пустым:
Наберите символы, которые изображены на картинке
Прослушать / Запросить другое изображение

Наберите символы, которые изображены на картинке:

√36:
ALT+S — отправить
ALT+P — предварительный просмотр

Сообщения в этой теме

Автор Алексей Гринь
 - ноября 10, 2014, 01:59
Недавно видел дизайн-документ авторов Java, в которых они стандартизируют возможное включение valuetype-объектов в Java. Довольно длинный и серьёзный документ, так что вероятно собираются включить в новых версиях. Будет смешно, если valuetype будут, а имеющиеся неортогональности связанные с их отсутствием в прошлых версиях языка ради совместимости не исправят. Java получится большим аморфным куском г-на.
Автор Python
 - марта 18, 2014, 16:34
Да, но хоть общий стиль синтаксиса сохранили бы. Почему, например, в JS анонимные функции не выглядят как посторонний элемент из другого языка? А в Джаву (язык со статической типизацией) механически впаяли элемент языка с динамической типизацией, забыв и о существовании классов, и о типах, и о многом другом.
Автор Чайник777
 - марта 18, 2014, 16:20
Цитата: Алексей Гринь от марта 18, 2014, 15:55
Сейчас мода на лямбды. Вот и прутся.
Самое весёлое, что во время войны MS-Sun, Sun выпустило статью, в которой идея предложенных MS'ом делегатов (в их MSJVM) осмеивалась; мол, не нужно, ибо всё легко решается анонимными классами. В 2014 внезапно: «анонимные классы имеют избыточный синтаксис, поэтому мы вводим революционное понятие лямбд!» Прогресс! Не прошло и 10 лет.
А почему бы не допустить крамольную мысль, что одни люди писали ту статью и совсем другие сделали лямбды сейчас?
Автор Алексей Гринь
 - марта 18, 2014, 15:55
Цитата: Python от марта 18, 2014, 15:45
Не понимаю, почему они так прутся от лямбд. Простой и очевидный синтаксис? Не заметил. Вне контекста вообще непонятно, что собой символизирует выражение вида (СПИСОК ФОРМАЛЬНЫХ ПАРАМЕТРОВ) -> ВЫРАЖЕНИЕ: ни типы аргументов, ни класс генерируемого объекта, ни имя генерируемого метода нельзя определить. ІМНО, в языке без объектов-функций лябда-выражения ненужны.
Сейчас мода на лямбды. Вот и прутся.
Самое весёлое, что во время войны MS-Sun, Sun выпустило статью, в которой идея предложенных MS'ом делегатов (в их MSJVM) осмеивалась; мол, не нужно, ибо всё легко решается анонимными классами. В 2014 внезапно: «анонимные классы имеют избыточный синтаксис, поэтому мы вводим революционное понятие лямбд!» Прогресс! Не прошло и 10 лет.
Автор Python
 - марта 18, 2014, 15:45
Не понимаю, почему они так прутся от лямбд. Простой и очевидный синтаксис? Не заметил. Вне контекста вообще непонятно, что собой символизирует выражение вида (СПИСОК ФОРМАЛЬНЫХ ПАРАМЕТРОВ) -> ВЫРАЖЕНИЕ: ни типы аргументов, ни класс генерируемого объекта, ни имя генерируемого метода нельзя определить. ІМНО, в языке без объектов-функций лябда-выражения ненужны.
Автор Чайник777
 - марта 18, 2014, 15:31
Цитата: RawonaM от марта 18, 2014, 14:28
А вы смотрели что там нового?
Сейчас посмотрел - изменения положительные, но как я и думал, перевернуть моё отношение к джаве они вряд ли смогут. Всё дело в том, что язык изначально проектировался, а стандартная библиотека писалась, без этих фич и вряд ли удасться это как-то поправить в ближайшем будущем.
Автор Алексей Гринь
 - марта 18, 2014, 15:26
Цитата: Чайник777 от марта 18, 2014, 15:18
Ну, по мне так вообще все числа с самого начала и должны были быть объектами. И вообще всё должно было быть объектами, а не как сейчас...
Тут проблема в том, что для простоты они решили не вводить понятия объектов на стеке, как это было сделано в C#. Если бы понятие by-value объектов на стеке существовало, то int мог бы запросто наследоваться от Object и вести себя как любой другой кастомный объект на стеке и в то же время иметь тот функционал, который традиционно ожидается от int. Алсо, такое решение повлекло бы за собой надобность в operator overloading, для ортогональности, и опять же, изначальныая идеология языка была против усложнения языка такими прибамбасами. Так что изначально компромисс был не так плох. Однако теперь язык становился всё сложнее и сложнее, и такие компромиссы уже не актуальны, но их никто не хочет пересматривать...
Автор Чайник777
 - марта 18, 2014, 15:18
Цитата: Алексей Гринь от марта 18, 2014, 14:47
В языке куча нелепостей, например в коллекциях число может быть только объектом — а всё потому что, хотели простоты VM.
Ну, по мне так вообще все числа с самого начала и должны были быть объектами. И вообще всё должно было быть объектами, а не как сейчас...
Автор Алексей Гринь
 - марта 18, 2014, 14:47
Мне не нравится путь, который Java взяла. Экосистема изначально планировалась быть простой, теперь с каждым релизом всё больше и больше бесполезных финтифлюшек и разных сиюминутных мод. В языке куча нелепостей, например в коллекциях число может быть только объектом — а всё потому что, хотели простоты VM. А теперь язык, система и библиотеки всё сложнее и сложнее, а нелепости первых версий продолжают существовать. Лучше бы исправляли имеющиеся проблемы.

А то когда они остановятся? Новые релизы нужны, чтобы язык не казался стагнирующим.  Каждый новый релиз принуждает их что-то новое придумать, чтобы выпуск релиза был обоснован. Однако, когда-то ведь нужно будет остановиться? Реальные идеи просто кончатся, они не бесконечны? И будут пихать в язык разные бредни, высосанные из пальца, лишь бы получился релиз? По-моему, это уже происходит. Ява кончит уродливым франкештейном с кучей болячек...
Автор true
 - марта 18, 2014, 14:39
А зачем она нужна? Извините за нубский вопрос.