Re[15]: Ваше отношение к языку Scala
От: mkizub Литва http://symade.tigris.org
Дата: 09.06.07 12:16
Оценка:
Здравствуйте, mini_root_2, Вы писали:

M>>Большой проект — это всегда смесь противоречивых требований. И надёжно должно быть,

M>>и работать быстро, и писать программу надо быстро и дёшево. Эти требования можно
M>>разрешить только разделяя программу на разные уровни — внешний (где скрипты рулят),
M>>внутренний (где требования промежуточные), ядро (где нужно быстро и надёжно, но
M>>которое не такого большого размера, и можно его писать долго и дорого).
M>>Писать эти разные части на разных языках — замечательно выходит.
M>>Проблемы начинаются, когда эти разные языки пытаются соединить вместе.
M>>А у них рантайм разный. И всё, приплыли. Передача данных и управления между
M>>разными слоями становится настолько сложной и тормознутой, что это перечёркивает
M>>все преимущества разделения проекта на разные части. И мы опять у разбитого корыта.

__>А если воспользоваться связкой Java+Groovy, Java+Scala — ведь они по сути будут

__>исполняться в рамках одной JVM, поэтому никаких проблем с взаимодействием быть не должно
__>(для груви можно вообще явно сформировать переменные из явы, а кроме того никто не отменял синглтон).

Посмотри на код, генерируемый Scala и ужаснись.
Или вот, пусть мне нужны параметры типов в рантайме. Чтоб я мог написать
List<String> ls = ...;
String[] arr = ls.toArray();
а не
String[] arr = ls.toArray(new String[ls.size()]);

Пусть я использую высокоуровневый язык Foovy, который работает поверх JVM, и который
генерирует код с поддержкой аргументов типов в рантайме. Он как их поддерживает?
Передаёт скрытый аргумент конструктору объекта или методу (параметризированному).
В своём собственным формате передаёт. Вот у Kiev-а есть kiev.stdlib.TypeInfo
для этого. И у Foovy будет foovy.utils.TypeInfo.
А теперь, чтоб это всё заработало вместе. Чтоб явовский List можно было использовать
интероперабельно с Foovy-вским или Kiev-ским. И чтоб Foovy-вский лист можно
было использовать в Kiev-ском коде.

Ага.
SOP & SymADE: http://symade.tigris.org , блог http://mkizub.livejournal.com
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.