Re[11]: Размер класса
От: Lazy Cjow Rhrr Россия lj://_lcr_
Дата: 22.06.06 12:11
Оценка: 6 (2)
klapaucius,

LCR>>Да, это действительно нечто новое. Анализу подвергались мельчайшие детали математической нотации с целью максимальной унификации и упрощения последней. ASCII — исключительно ограничение, возникшее из-за соприкосновения с реальными операционными системами. Только в последнее время стало возможным безболезненно писать программы в Юникоде.


K>Боюсь, что на практике только совершенно фантастические удобства могут компенсировать отказ от привычной математической нотации.


Зачем отказываться от того, что и так хорошо. Но стандартная математическая нотация имеет ряд ограничений и несуразностей, которые обошли, оставшееся унифицировали и обобщили. Получилось замечательно.


LCR>>1. K и J содержит большое количество действительно новых идей, а не старья в 984234-й инстанции заимствованного из других языков.


K>Тут эмоции тоже через край. Лучше бы упомянули хоть одно умопомрачительное новшество.


Verb trains, tacit form, loop-free programming. А из известных "code is data is code", функции высшего порядка и т.п.


LCR>>2. K и J являются самыми быстрыми интерпретируемыми языками благодаря их уникальным способностям к операциям с массивами. J особенно силён в математическом, статистическом анализ данных, K — в базах данных. Следствием интерпретируемости является большая гибкость.


K>Ну что тут скажешь? Лидерство среди безнадежных тормозов — это пять.


Ага, правильный (ТМ) путь — это тормоз с надеждой на ускорение. Скорость на уровне компилируемых языков. В гугле можно поискать ссылки на бенчмарки (если они вообще что-нибудь да значат).

Да и обычные рассуждения головным мозгом подсказывают, что скорость интерпретации пропорциональна размеру программы при условии отсутствия циклов. А поскольку в типичной программе на J/K циклов очень мало, то получаем, что поток управления большую часть времени будет проводить в реализации, а там оптимизированный C и ассемблер.

K>К синтаксису это никакого отношения не имеет, и к преимуществам синтаксиса о которых я и спрашивал не относится.


Имеет, и самое прямое.

"Notation as a tool of thought" by Кен Иверсон;

When the human mind is engaged in thought of an explicit nature, the speech center of the brain is involved. This means that we are verbalizing our thoughts even though we may not actually be speaking. When we are thinking we are necessarily using language or a notation of some sort to accomplish this verbalization. Hence it follows that notation, particularly the scientific notation of the field of science is a critical tool for creative thinking.


Упомянутая выше статья "Succinctness is Power" by Paul Graham;

Математика не достигла бы таких высот, если бы до сих пор использовалась как в средних веках:
"D будет квадратный корень от b умноженного на самое себя за вычетом четвёрки помноженной на a и сразу же на c".

Какой системой счисления вы пользуетесь? Позиционной вероятно, поскольку она эффективнее.

LCR>>4. K и J очень компактны, соответственно и скорость создания программы тоже очень высока. В комментариях к "выпуклой оболочке на J" проскальзывала информация, что на ежегодной выставке в Нью-Йорке товарищ из KX в реальном времени (за 0.5...1 часа) пишет довольно-таки фукнциональную ERP, заказчиком выступают зрители в зале. Очень впечатляет.


K>Компактность синтаксиса очень слабо связана со скоростью разработки и даже написания кода, даже если это написание кода в блокноте.


Неверно. Или мягче выражусь: не в случае J/K. Подтверждено независимыми испытаниями.

K>А как дела со скоростью чтения?


Конечно же любому человеку потребуется бесконечное время (Hint: кто читатель?).

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

То есть четыре строки на J читаются быстрее трёх экранов на Java.


LCR>>Определённо не для мэйнстрима, но есть люди, применяющие J/K для коммерческой разработки.


K>Кто эти люди?


Юрий Бургер, искать в форуме "Декларативное программирование". Они в конторе используют связку с J + C++, J даёт гибкость, которой нет у C++ без всяких компромиссов по отношению к скорости.

http://kxsystems.com — маленькая компания, разработчик самой быстрой СУБД kdb. kdb — лучшая на данный момент СУБД для финансовых приложений. kdb используют ряд (более 20-ти) крупных финансовых компаний и бирж. kdb дорогая, вероятно самая дорогая из расчёта доллар/строка. kdb написана на K. Такой язык был выбран не потому, что это прикольно или необычно, а потому что это выгодно. Да, вот так банально. Использование K позволило существенно (то есть как минимум на порядок) удешевить разработку системы.
quicksort =: (($:@(<#[),(=#[),$:@(>#[)) ({~ ?@#)) ^: (1<#)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.