LINUX.ORG.RU

[Тред-совет] ЯП с динамической типизацией


0

6

Присматриваю для себя - чего бы нового изучить. Железная, непоколебимая статика - хорошо конечно, но начинает надоедать. Аккуратности кода уже вроде набрался, можно попробовать динамику. Вот и стою перед выбором - куда податься - Python, Ruby, JS или что там еще?

Итак, императивный, лаконичный, кроссплатформенный ЯП, с динамической типизацией, с развитой инфраструктурой, продукты которого жрут минимум памяти, адекватные по скорости, можно с вкраплениями функционального программирования, и совсем хорошо, если компилируемый - что посоветует многоуважаемый All?? (желательно с обоснованием)

Цель - создание серверных, десктопных и веб-приложений. Будет Ъ, если можно использовать один код для веб и десктопа (по типу Eclipse RAP/RCP)

Спасибо

★★★★★
Ответ на: комментарий от shty

> у нас всё что не по схеме «утка» - на тягах до сих пор, емнип

Еще в «шиле» (Ту-22) была сист активного гашения рысканий, а уж с тех пор наша авиация далеко ушла...

AIv ★★★★★
()
Ответ на: комментарий от anonymous

> лол, спалился вендузнятнег :)

Видео от ati + звук от creative = никакого линукса. Вынужденная мера, что поделаешь. Я уже и сам задолбался линуксовый софт под виндой по два часа собирать, прыгая с бубном вокруг всяких cygwin'ов.

anonymous
()
Ответ на: комментарий от anonymous

> Видео от ati + звук от creative = никакого линукса. Вынужденная мера, что поделаешь

лисперы не могут наскрести денег на нормальное железо?

anonymous
()
Ответ на: комментарий от anonymous

> лисперы не могут наскрести денег на нормальное железо?

http://market.yandex.ru/model.xml?hid=91027&modelid=920838 Звуковуха специально для нищебродов, да. Была бы это какая-нибудь аудиджи - там и проблем никаких, ага.

anonymous
()
Ответ на: комментарий от anonymous

>> GPU - это фактически DSP

Я вас таки умоляю, в современных GPU полноценные АЛУ и сотни независимых аппаратно планируемых тредов. Вылезай уже из криокамеры, а?

AFAIK, современные DSP уже умеют по нескольку плавающих умножений в такт на 10GHz, но point taken.

tailgunner ★★★★★
()
Ответ на: комментарий от anonymous

> звуковуха специально для нищебродов, да

первая нагугленная цена 150$ - ну может кому-то оно и «шык» конечно, но

anonymous
()
Ответ на: комментарий от AIv

То-то амерские беспилотники и проч хрень на GPU летает, хотя делали совсем не для них (один из разработчиков делился на семинаре).

Нам хотят заказать на FPGA танковую систему обнаружения лазерного облученияДля FPGA сложно разрабатывать, потому что конпеляторов хороших нет. У нас есть. Если хороший, понятный конпелятор есть, то разработка для FPGA не особо отличается от разработки под GPU.

У FPGA совсем другая ниша, напр высоконагруженные системы обработки данных в реальном времени - тут да, за счет чудовищной латентности CPU сливают.

Высокая нагрузка к латентности прямого отношения не имеет.

mv ★★★★★
()
Ответ на: комментарий от anonymous

> Звуковуха специально для нищебродов, да.

чувак, X-Fi Elite Pro давно уже поддерживается ALSA, драйвер emu20k1

anonymous
()
Ответ на: комментарий от anonymous

> первая нагугленная цена 150$ - ну может кому-то оно и «шык» конечно,

Ну есть всего пара карточек дороже, и те профессиональные, типа ему. Алсо, менять звуковую карту из-за того, что прыщи никому не нужны - глуповато.

anonymous
()
Ответ на: комментарий от anonymous

> чувак, X-Fi Elite Pro давно уже поддерживается ALSA, драйвер emu20k1

«звук поддерживается» и «есть драйвера» - это две большие разницы. Мне никак не улыбается каждый раз лазить и переключать наушники с колонками, не говоря о том, что без нормальных дров ни режим карты не переключишь, ни bit-mathced playback не поставишь, ни частоту дискретизации не сменишь. Нахера мне такое счастье?

anonymous
()
Ответ на: комментарий от tailgunner

> даже если и есть - не является

Является.

ну давай тогда на пальцах прикинем

что есть цифровой тракт в РЛС? если отбросить всё лишнее, сигнал цифруется - это работа АЦП (преобразование фурье), далее максимум что выполняется - свёртка (читай перемножение) сигнала с эталонным, всякие компараторы - и прочая шушара имхо не в зачёт

теперь давай прикинем - РЛС как правило импульсная, никто не делает РЛС постоянного излучения, ибо нифига не выгодно энергетически и конструктивно (разнесённые приёмник/передатчик)

как работает импульсная РЛС? излучаем импульс, пауза - ждём прихода сигнала, снова излучаем, пауза кратна удвоенному предельному расстоянию обнаружения РЛС (чтобы волна туда-сюда успела сбегать), берём заявленную дальность обнаружения и скорость э/м колебаний в среде и считаем, думаю получим микросекунды +- порядок

вся обработка прекрасно параллелится хоть вертикально, хоть горизонтально

чтобы сканировать быстрее используются многолучёвые РЛС, работающие по заданным секторам, с параллельными трактами обработки

ну и где тут «__высоконагруженные__ системы обработки данных»? про реальное время спорить думаю не стоит - оно реальное, да нужен шустрый АЦП, но не более того

хотя, возможно тут вопрос терминологии, не больше?

shty ★★★★★
()
Ответ на: комментарий от AIv

Еще в «шиле» (Ту-22) была сист активного гашения рысканий

и как она работала?

с тех пор наша авиация далеко ушла

точно? :)

shty ★★★★★
()

то религиетреды в толксах, то лиспосрач в девелопменте. видать, таки осень

jtootf ★★★★★
()
Ответ на: комментарий от shty

> что есть цифровой тракт в РЛС? если отбросить всё лишнее, сигнал цифруется - это работа АЦП (преобразование фурье), далее максимум что выполняется - свёртка (читай перемножение) сигнала с эталонным,

Я не понял, причем оцифровка к преобразованию Фурье, но ладно.

пауза кратна удвоенному предельному расстоянию обнаружения РЛС

Эээ... это только при поиске по дальней зоне. На самом деле, пауза определяется просматриваемой зоной (возможно, даже дальностью объекта при сопровождении). Кроме того, комплекс может просто слушать эфир, не ожидая эхо-сигнала.

ну и где тут «__высоконагруженные__ системы обработки данных»?

В том, что по проводам бегает дофига данных, и ПЛИСы это всё перемалывают.

хотя, возможно тут вопрос терминологии, не больше?

Может быть.

tailgunner ★★★★★
()
Ответ на: комментарий от mv

> Вас с Кукой роднит то, что не обладая опытом работы в какой-то сфере вы заранее эту сферу топите.

Ты знаешь, ваша сфера топит себя на отличненько и безо всяких кук.

anonymous
()
Ответ на: комментарий от shty

> и как она работала?

МОгу тока предположить, что к гидроусилетелю (без которого с такой махиной хрен управишься) от гироскопа шел канал обратной связи. Лепездрический. Лепездрический - потому что по воспоминаниям одного пилота из Сак, техник перепутал как то полярность (разъем был симметричный) и после набора скорости машину принялось аццки бить, пилот под перегрузкой чудом умудрился эту системы вырубить (был таки тумблерок на пульте).

AIv ★★★★★
()
Ответ на: комментарий от anonymous

> «звук поддерживается» и «есть драйвера» - это две большие разницы.

А чем тебя встроенная звуковуха не устраивает? Меломан дохуя штоле?

anonymous
()
Ответ на: комментарий от AIv

ВРоде как нынешние беспилотники сами цель ведут, оператору тока мышкой ткнуть и дальше любоваться.

вот только оператор на земле сидит, а не на борту :)

а цель вести - много ума не надо, углы сканирования получаем с решётки, удаление - запаздывание сигнала, ну и чего там считать?

Опять таки крылатые ракеты ориентирующиеся по местности - та же сист распознавания образов

никто там никаких образов не распознаёт в полёте, и уж тем более в видимом диапазоне, иначе во время дождика «бонбардировки» отменяются (что кстати и случается с ракетами с лазерным наведением), и представь себе какая латентность вычислителей и датчики нужны чтобы такое распознавание запилить, это я уж не говорю про блок принятия решения

и, самое главное, чем больше железа кладёшь в ракету - тем меньше целевой нагрузки, эдак можно договориться, что до противника будет сборка из АЦП долетать и больно бить по башке

+ видимо куча еще всего, она ж автономно летит.

да не особо там куча, но можно я тут говорить не буду, на всякий случай

shty ★★★★★
()
Ответ на: комментарий от mv

> У нас есть. Если хороший, понятный конпелятор есть, то разработка для FPGA не особо отличается от разработки под GPU.

А можно я тебе приведу код на CUDA какой-нибудь мелочёвки, например, FFT? А ты мне покажешь аналогичный код для вашего конпелятора.

anonymous
()
Ответ на: комментарий от aho

> точно? :)

точно, но надо еще понять в каком направлении

хехе, тонко :)

shty ★★★★★
()
Ответ на: комментарий от shty

> можно договориться, что до противника будет сборка из АЦП долетать и больно бить по башке

Летающие ломы - наше ффсио!!11

tailgunner ★★★★★
()
Ответ на: комментарий от anonymous

А можно я тебе приведу код на CUDA какой-нибудь мелочёвки, например, FFT? А ты мне покажешь аналогичный код для вашего конпелятора.

Давай я лучше приведу код параллельного паттерн-матчинга со множественной вложенностью шаблонов и исполнением чего-нибудь в тот же такт? Т.е. есть кусок данных, нужно распознать, что в нём находится и выполнить какое-то действие.

mv ★★★★★
()
Ответ на: комментарий от mv

> Давай я лучше приведу код параллельного паттерн-матчинга со множественной вложенностью шаблонов и исполнением чего-нибудь в тот же такт?

Если можно, то давай.

tailgunner ★★★★★
()
Ответ на: комментарий от shty

> а цель вести - много ума не надо, углы сканирования получаем с решётки, удаление - запаздывание сигнала, ну и чего там считать?

Ее ж узнать надо. И потом ведут в видимом диапазоне наск я слышал...

чем больше железа кладёшь в ракету - тем меньше целевой нагрузки, эдак можно договориться, что до противника будет сборка из АЦП долетать и больно бить по башке

Да скока та GPU весит? И потом на гиперзвуке напр. этого за глаза хватит - «mv^2 бабушка»;-) Опять таки в ПВО наск помнится ВВ чуть - просто поражающие элементы разбросать на встречных курсах, советский транзистор или беакс бьют ничуть не хуже стального кубика. А вот GPU боюсь даже обшивку не пробьет, если тока радиатором ;-)

AIv ★★★★★
()
Ответ на: комментарий от anonymous
(define-dsl feedhandler-for-foo (bats-foo)
    (def-output foo_seconds)
    (def-flag foo_seconds_p)

...
    
    (with-element Time_Stamp_Seconds
                  (with-field seconds
                              (on-value (export-to foo_seconds)
                                        (pulse foo_seconds_p))))
                              
    (with-element Add_Order_Long
                  (with-field nanoseconds
                              (on-value (export-to foo_nanoseconds)))
                  (with-field Order_Id
                              (on-value (export-to foo_order_id)))
                  (with-field Side_Indicator
                              (on-value (export-to foo_buy_sell)))
                  (with-field Shares
                              (on-value (export-to foo_qty)))
                  (with-field Symbol
                              (on-value (export-to foo_stock)
                                        (pulse foo_stock_p)))
                  (with-field Price
                              (on-value (export-to foo_price)
                                        (exec (foo-filt-add-order))
                                        ))
                  (on-exit (pulse foo_add_order_long_p)
                           ))
...
)

Не важно, сколько элементов и какой они степени навороченности - всё парсится за такт. На FPGA можно позволить себе матчить параллельно сразу все варианты и использовать только правильный.

Генерация паттернов, кстати, производится из xml (не наших) с формальным описанием протокола.

mv ★★★★★
()
Ответ на: комментарий от anonymous

Что-то помимо паттерн-матчинга при помощи этого языка можно запрограммировать?

При помощи DSL для паттерн-матчинга? Ничего. Для других задач у нас написаны другие DSL. Для более-менее generic-программирования пишем полновесный оптимизирующий компилятор.

mv ★★★★★
()
Ответ на: комментарий от tailgunner

> что есть цифровой тракт в РЛС? если отбросить всё лишнее, сигнал цифруется - это работа АЦП (преобразование фурье), далее максимум что выполняется - свёртка (читай перемножение) сигнала с эталонным,

Я не понял, причем оцифровка к преобразованию Фурье, но ладно.

простите, спать хочу уже - и руки и мозг заплетаются, читать так: сигнал цифруется и выполняется фурье (переводим в частотную область, чтобы не свертки с интегралами считать во временной области, а перемножать в частотной), просто порой такая операция совмещается как раз в одном FPGA :)

> пауза кратна удвоенному предельному расстоянию обнаружения РЛС

Эээ... это только при поиске по дальней зоне.

для справки: дальняя зона в радиолокации - это вполне конкретное расстояние r >= 2 * D^2 / lambda, где D - размер апертуры антенны, а lamda - длина волны, расстояние на практике не то чтобы сильно большое :))

однако я Вас понял (как мне кажется), переформулирую - пауза должна быть кратна удвоенному расстоянию обнаружения РЛС )

На самом деле, пауза определяется просматриваемой зоной

ну да, это удвоенное максимальное время прохождения сигнала от антенны РЛС до края зоны обнаружения

Кроме того, комплекс может просто слушать эфир, не ожидая эхо-сигнала.

«эхо-сигнала»? это как молчать в горах и ожидать эха, ну можно конечно, но это немного наивно :)

> ну и где тут «__высоконагруженные__ системы обработки данных»?

В том, что по проводам бегает дофига данных

чаще кстати, не по проводам, а по шинам

у нас высоконагруженная система __обработки__ данных, а не передачи, не? :)

shty ★★★★★
()
Ответ на: комментарий от mv

> Для более-менее generic-программирования пишем полновесный оптимизирующий компилятор.

Для Common Lisp в качестве исходного ЯП? Какое подмножество собираетесь поддерживать?

anonymous
()
Ответ на: комментарий от mv

> Генерация паттернов, кстати, производится из xml (не наших) с формальным описанием протокола.

Кхм. А что мешает генерить VHDL прямо из XML?

tailgunner ★★★★★
()
Ответ на: комментарий от anonymous

Для Common Lisp в качестве исходного ЯП? Какое подмножество собираетесь поддерживать?

Два бэкэнда: лиспообразный (с блекджеком и макросами) для чотких пацанов и сиобразный для пугливых.

mv ★★★★★
()
Ответ на: комментарий от tailgunner

Кхм. А что мешает генерить VHDL прямо из XML?

В XML не описано, что нужно делать, когда паттерн совпал :)

mv ★★★★★
()
Ответ на: комментарий от shty

> для справки: дальняя зона в радиолокации - это вполне конкретное расстояние r >= 2 * D^2 / lambda

Я инженер-программист, а не инженер-радиотехник, мне простительно %)

«эхо-сигнала»? это как молчать в горах и ожидать эха, ну можно конечно, но это немного наивно :)

Это обнаружение помех.

ну и где тут «__высоконагруженные__ системы обработки данных»?

В том, что по проводам бегает дофига данных

чаще кстати, не по проводам, а по шинам

Зависит от конструкции приемника, я полагаю.

у нас высоконагруженная система __обработки__ данных, а не передачи, не? :)

Все передаваемые данные нужно обработать.

tailgunner ★★★★★
()
Ответ на: комментарий от mv

>> Кхм. А что мешает генерить VHDL прямо из XML?

В XML не описано, что нужно делать, когда паттерн совпал :)

Я думал, extport-to и pulse - это как раз то, что нужно делать.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

> Кхм. А что мешает генерить VHDL прямо из XML?

Не «что», а «кто». CEO ихний. Он лиспер.

anonymous
()
Ответ на: комментарий от AIv

И потом ведут в видимом диапазоне наск я слышал...

да просто картинку сбрасывают вниз на землю и всё + параметры цели, а на земле уже все собирают

Да скока та GPU весит?

да здравствуют советские микросхемы, самые большие микросхемы в мире (с)

shty ★★★★★
()
Ответ на: комментарий от mv

> Два бэкэнда: лиспообразный (с блекджеком и макросами) для чотких пацанов и сиобразный для пугливых.

Хотелось бы почётче про подмножество. А то GLSL — тоже «сиобразный». Тестовые примеры есть?

anonymous
()
Ответ на: комментарий от tailgunner

> «эхо-сигнала»? это как молчать в горах и ожидать эха, ну можно конечно, но это немного наивно :)

Это обнаружение помех.

ну это если только помехи активные какие-нибудь, но скорее уж секут работу радиочасти ЛА

только «эхо-сигнал» - это тот который был излучен и отразился от цели

> чаще кстати, не по проводам, а по шинам

Зависит от конструкции приемника, я полагаю.

не приёмника, но да

> у нас высоконагруженная система __обработки__ данных, а не передачи, не? :)

Все передаваемые данные нужно обработать.

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

shty ★★★★★
()
Ответ на: комментарий от tailgunner

Я думал, extport-to и pulse - это как раз то, что нужно делать.

Да, но откуда в ненашем xml информация о том, куда export-to и pulse делать, и надо ли делать вообще? И приведённый пример - это ведь всего лишь кусочек.

mv ★★★★★
()
Ответ на: комментарий от shty

> ну это если только помехи активные какие-нибудь

Естественно.

но скорее уж секут работу радиочасти ЛА

На самом деле, ХЗ, есть ли обнаружение и защита от активных помех на БПЛА, но, с другой стороны, почему нет?

не приёмника, но да

Все передаваемые данные нужно обработать.

Похоже, у нас какие-то разные приемники.

в-третьих там используются спец. вычислители которых очень хорошо заточены на решение этих задач

Я знаю. Но это не облегчает их нагрузку.

tailgunner ★★★★★
()
Ответ на: комментарий от anonymous

> А что пишешь, если не секрет? for fun / на дядю?

Я практически и есть тот дядя:)

Управленческий учет, планирование, сквозные бизнес-процессы. СППР для анализа ситуации и оперативной помощи, мягко ведущая менеджеров (в том числе и начинающих) по тернистой тропе бизнеса корпоративным путем.

Самопальная UIMS, берущая модель действий пользвателя в виде целей и задач и согласно корпоративному HIG-у фигачащая пользовательский интерфейс. Никаких формоклепщиков и чистый roundtrip при разработке процесов. И я очень надеюсь перевести это дело на CLIM ибо то что я писал n-лет назад велосипед.

Ну и россыпью всяких технических фиговин по генерации упрощеных клиентов к системе для поставщиков и партнеров, приложений для телефонов, web - портал.

На фронте работ (и в мечтах пока:( ) SBVR и «structured русский».

Это не международный холдинг и не газпром, как может некоторым показаться. Это средняя фирма которая сделала ставку на замену офисного быдла и на максимально эффективный и поэтому небольшой (чем меньше народу, тем больше денег на каждого) управленческий штат. И я скромный лиспер, который 5 лет назад захотел переписать в конец надоевший ананас на что-то полезное. И вспомнишний что на ЛОР-е очень хвалили лисп за лямбды и хвостовую рекурсию. Я был тогда очень глупый. Ну дальше все просто PCL и поехало.

Блядь графомания вконец одолела, спать пора.

antares0 ★★★★
()
Ответ на: комментарий от anonymous

> Для Common Lisp в качестве исходного ЯП? Какое подмножество собираетесь поддерживать?

По уму нужно предметно-оринтированое представление. А если чисто для скорости то завертывание кода в замкнутые контексты обычно дает производительность близкую к C.

antares0 ★★★★
()
Ответ на: комментарий от tailgunner

В смысле чисто инфраструкторной части один. Больше в принципе не надо. Но как таковое информационно пространство описано не на лиспе. Там места разработки заточены непосредсвенно под управленцов. У одног даже паскаль:) Дизайнер дизайнит HIG. Ну я как самый опытный пользователь. После внедрения CLIM-а наверное вобще самподерживаемая система.

antares0 ★★★★
()
Ответ на: комментарий от antares0

> В смысле чисто инфраструкторной части один. Больше в принципе не надо.

Просто у меня складывается впечатление, что лисперы работают в одиночку. den73, ловсанчег, ты, возможно, и archimag тоже. Анонимус, опять же.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

> Просто у меня складывается впечатление, что лисперы работают в одиночку.

Я тебе даже больше скажу. Я после твоего комментария внезапно вспомнил почему я выбрал CL тогда 5 лет назад. Мне нужен был язык на котором я могу поднять тему потенциально любой сложности. Поднять именно один без команды и сотрудников. Описаный проект зрел уже тогда. И вот лисп это вот про это.

antares0 ★★★★
()
Ответ на: комментарий от antares0

> Мне нужен был язык на котором я могу поднять тему потенциально любой сложности. Поднять именно один без команды и сотрудников.

Это иллюзия. Смутно припоминаю подходящую цитату из классиков... если вспомню, напишу днем :)

tailgunner ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.