kika: (Default)
[personal profile] kika
Вынесу-ка я это из глубокого треда, может получиться флейм, а флейм это хорошо.

[livejournal.com profile] ifp5 пишет:
Реально проблема есть только одна единственная (и она та же самая что препятствует использованию OCaml, Haskell, LISP и пр) - что решение выбора языка принимают люди (такие бывают толстые и важные начальники), которые уже решили, что проект будет на жабе. Никаких других проблем в использовании шарпа (или хаскеля) нет.

Ну это на самом деле далеко не так. Это черезвычайно распространенное мнение, которое на самом деле базируется на такой красивой гиковской картине мира, в которой есть good programmers and evil managers. И все плохое проистекает из менеджеров, а все хорошее пишется умными программистами, которые вникают в проблему с полувзгляда и выбирают идеальный инструмент.
Попробуйте написать полезную программу на лиспе и продать ее пользователям (продать в широком, хорошем, смысле - пусть даже и забесплатно). Чтобы она была как программа на С++/Win32 или там на сишарпе/дотнете. Чтобы у нее был гуй, какой модно в этом сезоне (совершенно необязательно, кстати, чтобы он был один в один стянут с последнего оффиса), чтобы у нее был нетворкинг, чтобы она работала с трехмерной графикой под DX9/10 и использовала многоядерные процессоры. По-моему я описал гамез, сам того не желая, ну да ладно. Пусть это будет не гамез, а САПР.

Ровно та же самая проблема у всех на свете "скриптовых языков, лучших чем Перл". Они все безусловно лучше чем Перл (трудно быть хуже с точки зрения среднего программиста), но у перла есть CPAN. End of story here.

P.S. Всех, кто напишет что у Автокада в пузе как раз лисп - сразу забаню. Настолько short minded тут не нужны :-)

Date: 2007-09-21 11:11 am (UTC)
From: [identity profile] kika.livejournal.com
Потому что мейнстрим. Потому же почему Viaweb был на лиспе, а Yahoo! Stores стал на перле и С++.
С плохо подходящим под задачу мейнстримовым языком есть шанс сильно не уложиться по срокам. А с хорошо подходящим немейнстримовым - не сделать никогда, завязнув в писании всяких обвязок и заполнении дыр, которые в мейстриме уже давно заполнены, причем зачастую самими вендорами средств разработки.

Date: 2007-09-21 12:02 pm (UTC)
From: [identity profile] grundik.livejournal.com
Ситуации очень разные. silver bullet-ов не существует.

Повторюсь, что в моём случае если бы я выбрал не scheme а php (как меня пытались заставить), то я всё бы ещё не релизнул первую версию, а после релиза умер бы с поддержкой. И то, что сейчас для развития надо писать обвязки к c++-сным либам (ну вот неудачно я выбрал реализацию scheme, выбрал бы PLT или вообще common lisp - не было бы проблем) - это всё равно дешевле, чем могло бы быть в случае выбора чего-то другого мейнстримового (пусть даже java).

При этом на момент выбора я не умел писать ни на common lisp, ни на scheme (из-за этого и выбрал не очень хорошую реализацию - всех нюансов действительно без опыта работы не узнать).

В реальности у коммерческих лиспов с библиотеками очень хорошо, и ffi там лёгкий и приятный (то есть позвать C++ из лиспа довольно легко).

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

Date: 2007-09-21 12:10 pm (UTC)
From: [identity profile] kika.livejournal.com
"Я выбрал" - сколько вас там было в этом "Я"? Один человек? Я в одно рыло и на SSE2 ассемблере пишу.

FFI-то приятный, а вот как позвать лисп из С? Как включить модуль на лиспе в билд всего проекта?
Ну и кроме того, не в одном ffi дело, а дело больше именно в сдвиге парадигмы на границе двух миров. Разная работа с памятью, разное представление объектов, все разное. И реально на самом деле, при интеграции дешевле оставить их отдельно, связав каким-то протоколом, предполагающим явную сериализацию-десериализацию в приемлемый для всех формат. А это далеко не всегда feasible, как это по русски-то сказать.

Date: 2007-09-23 06:28 am (UTC)
From: [identity profile] grundik.livejournal.com
> "Я выбрал" - сколько вас там было в этом "Я"? Один человек?

Выбирал и писал framework - я один, сейчас на этом всём пишут порядка десяти, на момент выбора планировалось (и сейчас планируется) чтобы писали порядка сорока человек.

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

Ну а вообще насколько я знаю можно включить lisp в си, только я не знаю, как там с сигнатурами и прочей лебедой. Для guile есть неплохой мануал на эту тему. Также есть компиляторы из лиспа в си (или там в java, байткод jvm, байткод .Net и так далее).

Profile

kika: (Default)
kika

January 2017

S M T W T F S
1234567
89 1011121314
151617181920 21
22232425262728
293031    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 16th, 2026 09:21 pm
Powered by Dreamwidth Studios