metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2012-08-20 11:20 am
Entry tags:

Офигенная статья, объясняющая ВСЕ про FP

http://blog.jelastic.com/2012/07/24/functional-programming-is-a-ghetto/
So why is functional programming, despite its virtues, a ghetto? The answer is that we tend to insist on good design, to such a degree that we avoid taking jobs where we’re at risk of having to deal with bad designs.

PS: В статье позитивная айседовщина. "IDE не нужны, потому что на продакшен сервере за тридевять земель вам они не помогут", "только идиоты начинают разработку на жабе или С++ в 2012 году" и прочее такое.

Еще того же автора: http://michaelochurch.wordpress.com/2012/04/13/java-shop-politics/

[identity profile] dair-spb.livejournal.com 2012-08-20 09:24 am (UTC)(link)
> Это они сейчас слабые (хотя, уже не такие и слабые). Через пару лет там будут стоять 4-хядерные пни с гигами памяти, со всеми вытекающими быстродействиями.
Именно этот аргумент, как мне кажется, приводили авторы андроида менеджерам гугла. И авторы WP7 менеджерам микрософта ;-)

[identity profile] maxdz.livejournal.com 2012-08-20 09:30 am (UTC)(link)
>приводили авторы андроида менеджерам гугла

Андроид, вроде, на C++ написан. С линуксовым ядром. Какие могут быть претензии к быстродействию?

[identity profile] fas-tm.livejournal.com 2012-08-20 09:34 am (UTC)(link)
ты псих ? пойди почитай что такое андроид.
Это своя реализация JVM(Dalvik), линукс там - пускалка JVM поверх которой все крутится. Да, есть возможность юзать NDK, но это мало помогает. Архитектура кривая.
Edited 2012-08-20 09:34 (UTC)

[identity profile] maxdz.livejournal.com 2012-08-20 09:37 am (UTC)(link)
>Это своя реализация JVM(Dalvik), линукс там - пускалка JVM поверх которой все крутится.

То, что там есть виртуальная машина - не означает, что системные части операционки написаны на Джава и крутятся на этой виртуальной машине.

[identity profile] fas-tm.livejournal.com 2012-08-20 09:46 am (UTC)(link)
еще раз объясняю на пальцах, какая разница на чем написана ось и как, если прикладной софт выполняется поверх VM а графическая подсистема априори не позволяет нормально сделать без тормозов морду(из-за блокировки основного потока в котором рендериться интерфейс). Сейчас это решается накидыванием железа и ядер, но если вдуматься - тетрис на 4-х ядерном смартфоне может тормозить ... кошмар.
Edited 2012-08-20 09:47 (UTC)

[identity profile] maxdz.livejournal.com 2012-08-20 09:52 am (UTC)(link)
>если прикладной софт выполняется поверх VM

Там есть C++ ный АПИ? Вроде, есть (хотя, я не спец по Андроидам).

Если есть - значит, компиляция в нативный код и исполнение НЕ на Джава-машине. Что, в общем-то логично, учитывая, что ядро на C++ (если не на C).
Edited 2012-08-20 09:53 (UTC)

[identity profile] fas-tm.livejournal.com 2012-08-20 10:02 am (UTC)(link)
мне надоело со стенкой разговаривать. иди читай про JNI.
>>ядро на C++
Ядро всегда было на С
>>и исполнение НЕ на Джава-машине
какой кошмар. ты не знаешь основ. Вообщем пойди почитай книжки... еще раз говорю, это принесет тебе пользу. В любом случае весь код станет НАТИВНЫМ, вопрос только в том, каким путем он им станет и сколько абстракций/прокладок будет на пути.

[identity profile] maxdz.livejournal.com 2012-08-20 10:12 am (UTC)(link)
os.ibds.kit.edu/downloads/sa_2010_braehler-stefan_android-architecture.pdf

Ок, "Core libraries" рантайма написаны на Джава. Уговорил. :)

[identity profile] jdevelop.livejournal.com 2012-08-20 10:59 am (UTC)(link)


в тему

[identity profile] dair-spb.livejournal.com 2012-08-20 10:03 am (UTC)(link)
там нет C++ного API сверх POISX и OpenGL ES.

В нашем, игрушковом случае, на Android мы пишем маленький враппер на Java с созданием OpenGL ES контрола и передачей его хэндлера (UInt32, ага) в C++. Где уже всё крутится вокруг стандарта на OpenGL ES с одной стороны и POSIX с другой.

И, повторюсь, самый ад в том, что это практически не отлаживаемо.

[identity profile] maxdz.livejournal.com 2012-08-20 10:13 am (UTC)(link)
>там нет C++ного API сверх POISX и OpenGL ES.

Да, я уже увидел в картинке 1 здесь:
os.ibds.kit.edu/downloads/sa_2010_braehler-stefan_android-architecture.pdf

Тогда, конечно, есть смысл всё (кроме визуализации?) писать на Джава и надеяться на хорошую производительность устройств.
Edited 2012-08-20 10:14 (UTC)

[identity profile] tzirechnoy.livejournal.com 2012-08-20 10:32 am (UTC)(link)
Какие из стандартных средств отладки -- профилирование действий в текстовый лог, профилирование действий в бинарный лог с частым разворотом в текст, включение спецыфических ассертов -- не работают?

[identity profile] dair-spb.livejournal.com 2012-08-20 09:34 am (UTC)(link)
> Андроид, вроде, на C++ написан. С линуксовым ядром. Какие могут быть претензии к быстродействию?
Однако, наружу поначалу торчал ТОЛЬКО жабный API. Через который сделать что-то более-менее шустрое было просто невозможно. Потом появился NDK/JNI, всё стало несколько проше с одной стороны, с другой стороны всё это говно ебанёшься отлаживать до сих пор, пардон май френч.

[identity profile] maxdz.livejournal.com 2012-08-20 09:40 am (UTC)(link)
>Однако, наружу поначалу торчал ТОЛЬКО жабный API.

Джавный АПИ выдать гораздо проще, чем АПИ с компиляцией в нативный код, т.к. не нужно никаких особых реaлизаций защиты/полномочий/доступа, да и инструментарий разработчикам уже в наличии (выдающий после компиляции обычныкй джава-код).

[identity profile] fas-tm.livejournal.com 2012-08-20 09:52 am (UTC)(link)
да ? только он нихера не позволяет сделть нормально :)
И именно поэтому скачивая с аппстора я уверен что софт будет работать, а вот с гугл маркет(play уже сейчас) неработоспособно каждое 7-ое приложение в зависимости от твоего телефона и фазы луны.

[identity profile] maxdz.livejournal.com 2012-08-20 09:57 am (UTC)(link)
Приложение, выложенное в нативном коде (типа, исполняемый без "виртуальной машины" файл) - платформозависимое. Думаю, дело в этом.

[identity profile] fas-tm.livejournal.com 2012-08-20 10:05 am (UTC)(link)
Пожалуйста, не думай. Просто попытайся не думать. Всем от этого будет легче :)

[identity profile] maxdz.livejournal.com 2012-08-20 10:08 am (UTC)(link)
Негусто у тебя с аргументами. :)

[identity profile] fas-tm.livejournal.com 2012-08-20 10:31 am (UTC)(link)
ну как это. вот ты нашел книжку почитал и согласился. Ну блин, меня честно утомляет общаться с людьми которые не знают предмет общения. Так что прежде чем что то ляпнуть - имей хоть какое то представление о том о чем хочешь сказать.

[identity profile] zerthurd.livejournal.com 2012-08-20 10:05 am (UTC)(link)
Тут вся беда во фрагментации. На iOS работают iPhone и iPad, а на Android — миллиард всяких узкоглазых девайсов чуть ли не штучного производства.

[identity profile] fas-tm.livejournal.com 2012-08-20 10:33 am (UTC)(link)
но ведь в этом виноваты не разработчики ? :)
Маркетинго-правильная мысль "все для всех в любых формах" столкнулась с суровой реальностью того что в железяку нужно еще софт впендюрить без которого она кирпич.

[identity profile] tzirechnoy.livejournal.com 2012-08-20 10:30 am (UTC)(link)
Претэнзии к быстродействию возникают не от того, что А написано на Б -- а от того, что А медленно реагирует на действия, на которые, как думается, можно реагировать гораздо быстрее.