LINUX.ORG.RU

Выбор языка(ов) для разработки


0

1

Привет. Нужна помощь в выборе фреймоврка, языка(ов) для разработки. Продукт представляет собой десктопную и серверную версию одного функционала (ядро, по сути, одно) с различиями в ГУИ и в плюшках (не на уровне ядра). Вэб: обилие js (громоздкий по функциональности ГУИ), высокая нагруженность (изначально расчитывается на работу в кластере + расширение) Десктоп: кросплатформенное приложение (МАС, Вин, Линукс), кастомный сложный ГУИ

Функциональное ядро у обоих приложений одинаковое. Оно большое, поэтому еще вопрос: лучше писать 2 реализации ядра или одно (но на чем?)

Характеристики вроде «высокая нагруженность», «кастомный сложный ГУИ» рассматривать, как показатель того, что кастомизация и расширяемость должна быть высокой и более или менее не через Ж:ПУ

А при чем здесь Линукс: так ведь opensource + под Linux включительно.


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

Ну так фигачь на сервере на Java, а на клиенте на Qt Quick, он как раз пригоден для создания сложных штуковин на холсте ибо под собой имеет QGraphicsScene. Общаться можно через JSON/RPC, тогда в гуе вообще можно практически без C++ обойтись.

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

> Что-то не понял, а КЛ тут при чём?
примеры там на лиспе были, как я понял. Оно мне не понравилось

Общаться можно через JSON/RPC, тогда в гуе вообще можно практически без C++ обойтись.

Функционал дублируется. десктоп не использует функционал на сервере, у него свой код, который, как бы, такой же

saxon
() автор топика
Ответ на: комментарий от Boxxy

http://www.smartvideos.ru/sicp-lekciya-2
вы уверены, что это не лисп?

Между тем появились новые интересности.

удалось вынести функционал десктопа на сервер.
т.е. в итоге получается Java на сервере, а С++, Qt на клиенте

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

примеры там на лиспе были, как я понял.

Во-первых, на схеме. Которая к КЛ имеет весьма слабое отношение.

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

Чтобы составить более-менее адекватное мнение о КЛ гораздо лучше будет прочитать PCL, благо есть в русском переводе.

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

> Во-первых, на схеме. Которая к КЛ имеет весьма слабое отношение.
То, что примеры в SICP на схеме я знал, но в виду отсутствия особого понятия о синтаксисе (включительно) этих языков и того, что где-то в описании лекций было написано про лисп, я решил, что в лекциях примеры на лиспе. +поговоривают, что языки похожи (синтаксически?)

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


Не помню, чтобы я писал обратное.
Но зато писал такое:

Как минимум потому, что: стоимость разработки, поддержка, кадры. не учитываем либы и плюшки, которых наверняка просто нет

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

+поговоривают, что языки похожи (синтаксически?)

Синтаксис --- фигня. Это предельно разные языки. В общих чертах: схема является функциональным языком. Под схему типично писать в чисто функциональном стиле. КЛ --- это КЛОС, рестарты (прощайте схемовые продолжения), и циклы. В функциональном стиле писать можно, но это не будет типичным использованиям языка. Точнее, для КЛ нехарактерно писать всю программу исключительно в стиле ФП.

не учитываем либы и плюшки, которых наверняка просто нет

ну, по плюшкам КЛ перегоняет вообще всех остальных в индустрии, что до библиотек, то каких именно тебе не хватает?

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

> ну, по плюшкам КЛ перегоняет вообще всех остальных в индустрии, что до библиотек, то каких именно тебе не хватает?

я уже написал, что меня смущает что в схеме, что в cl.

saxon
() автор топика
Ответ на: комментарий от ugoday

> Как минимум потому, что: стоимость разработки, поддержка, кадры. не учитываем либы и плюшки, которых наверняка просто нет

Куда уж конкретнее? если я не написал про сам язык, это ведь о чем-то говорит, нет? для меня важнее те факторы, которые я описал:

стоимость разработки, поддержка, кадры

это факт или нужно спорить?

не учитываем либы и плюшки, которых наверняка просто нет

«наверняка» != «точно» (т.е. я могу и ошибаться здесь, что я и делаю)

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

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

это факт или нужно спорить?

ну да. Как минимум было бы не плохо, если ты приведёшь свои соображения, но основе которых пришёл к такому мнению.

«наверняка» != «точно»

Зачем вообще гадать? Если можно взять и точно установить есть нужное тебе или нет?

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

> ну да. Как минимум было бы не плохо, если ты приведёшь свои соображения, но основе которых пришёл к такому мнению.

Вероятность найти CL-программиста (по сравнению с Java/C++). И прошу не рассказывать про «да, их мало, но зато какие». я не в дефолт-сити живу, чтобы так просто выйти на улицу и найти CL-программера.

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

Мне не особо нравится динамическая типизация в большом проекте. Читается сложновастенько. Для этого должен быть аккуратный стиль написания кода, хороший комментированный код. Тот факт, что единственный программер, которого я найду, будет еще и писать красивый код, еще меньше.

И в итоге я останусь у разбитого корыта, все удалю и перепишу на чем-то более доступном.

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

Вероятность найти CL-программиста

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

Для этого должен быть аккуратный стиль написания кода, хороший комментированный код

А без этого вообще никуда. Ни в КЛ, ни в других языках.

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

> И потом, за время, необходимое чтобы разобраться в сколь-нибудь сложной системе, можно КЛ три раза выучить и приступить к хаскеллю

С другой стороны, пока я найду другого CL-программера, за это же время я смогу нанять 3х JAVA-junior'ов, поднатаскать их, закончить проект и отпустит домой дальше учить CL :)


А без этого вообще никуда. Ни в КЛ, ни в других языках.


Да, но есть определенная степень «грязности» кода, при котором он остается читаемым

void func( const MyFooClass &trololo )
{
int abc;
trololo.doSmth( abc );
}

def func( trololo ):
trololo.doSmth( abc )

и что-то вроде (я чисто схематично):
(def (func trololo abc)
(trololo.doSmth abc))

казалось бы, одинаково нифига не понятный код, да? и с чем проще разобраться?

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

С другой стороны ...

Тут есть одна тонкая особенность. КЛ --- не только очень своеобразный, но и очень разный язык. На нём можно писать в стиле http://swizard.livejournal.com/158763.html, и тебе понадобится весьма продвинутый лиспер, чтобы сразу разобраться в макросе, генерирующим макрос, генерирующим макрос, порождающем функцию, выполняющую искомую работау. Но также, на КЛ можно писать и в более привычном стиле, за исключением префиксного синтаксиса. Тогда любой питонист, если он не клинический идиот, легко во всём разберётся.

одинаково нифига не понятный код, да?

одинаково понятный, я бы сказал. Т.е. вообще одинаково.

ugoday ★★★★★
()
Ответ на: комментарий от saxon
(defun func (trololo abc)
   (trololo.doSmth abc))

вот так, с отступами, понятнее, фактически тот же python, только отступы опциональны, и благодаря скобочкам канпелятору-интерпретатору проще работать с кодом

А если ещё вспомнить про макросы...

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

> одинаково понятный, я бы сказал. Т.е. вообще одинаково.
а мне - нет. начнем собирать подписи и решим спор статистически? =)

saxon
() автор топика
Ответ на: комментарий от lazyklimm

дело в том, что я не хотел показать, как схема или нечто в третьем случае много хуже читается первых двух. я хотел показать, как второе и третье читается хуже первого =) не в плане первичного восприятия, а в плане последующего поиска, что же все-таки это такое. я точно знаю, что такое trololo и abc (их тип)

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

>я точно знаю, что такое trololo и abc (их тип)

а зачем знать тип? Главное - имена понятные давать.

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

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

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

java:

+искоробочность распределния нагрузки

Нету никакого искаробочного распределения нагрузки. Точнее оно есть, но лучше не юзать. А так все как обычно: не юзаем сессии, балансим haproxy/nginx

-медленный ГУИ на десктопе

Ну низнаю. Еклипс летает. А проприетарные приблуды вроде YourKit вообще супер быстрые.

python: -хз с распределением нагрузки

Тут все так же как и c java.

А как тебе вариант такой: ядро на python, морда на PyQt и Django?

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

но ведь если все правильно сделать даже непонятно будет что это html, пипец, он же все равно хочет js «эмулировать»...

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

С другой стороны, то, что высока вероятность попасть в

жава-программера просто запустив в толпу яблоком, ещё не означает, что

ты быстро найдёшь годного специалиста для своего проекта.


Это означает что можно продолжать кидать яблоком до тех пор пока найдешь. Более того, можно следить за тем что бы программер писал не наворочено а просто и понятно. Что бы время нахождения программера аналогичной квалификации была минимальна.

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

> qtjambi

Официальная поддержка Qt Jambi для Nokia закончилась в марте 2010 года, и в настоящее время проект поддерживается Open source community.

Оно умерло, похоже. поддержку прекратили на почве Sun -> Oracle?
Да и в разрезе взаимодействия клиент-сервер не особо важно, на чем клиент будет написан. можно и на с++

Получилось весьма толсто в целом.
Теперь вопрос распределения нагрузки между серверами. подскажите, что можно почитать на этот счет? потому что решений слишком много..

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

>Оно умерло, похоже.

Оно не умерло - им просто более не занимается нокия. Им занимается комьюнити. Оно находится в синхре с актуальным Qt.

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

к сожалению, строка

Официальная поддержка Qt Jambi для Nokia закончилась в марте 2010 года, и в настоящее время проект поддерживается Open source community.

говорит мне обратное.

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

>говорит мне обратное.

Что обратное? Не вижу где ты там что прочитал обратное.

Официальная поддержка Qt Jambi для Nokia закончилась в марте 2010 года


Все - Нокия больше не пордает контракты поддержки qtjambi - что не ясно?

и в настоящее время проект поддерживается Open source community.


проект передан комьюнити - что не ясно?

Где были слова про смерть?

Текущая версия jambi - 4.7.1 beta 3 последняя бета от 28 ноября - 4 дня назад. Последняя версия Qt - 4.7.1.

Для мертвого - оно что-то сильно дышит.

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

это конвульсии трупа =)
когда за разработкой продукта «комьюнити» не стоит корпорация, оно умирает чаще всего. поживем - увидим

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

>когда за разработкой продукта «комьюнити» не стоит корпорация, оно умирает чаще всего. поживем - увидим

У половины админов проекта мыло @nokia.com

Нокия перестала его разрабатывать как свой проект и отдала комьюнити. Сейчас он рарабатывается точно так же как KDE. Но KDE ж не предрекают смерть только потому что это не нокиевый проект на qt.


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

> Нокия перестала его разрабатывать как свой проект и отдала комьюнити. Сейчас он рарабатывается точно так же как KDE. Но KDE ж не предрекают смерть только потому что это не нокиевый проект на qt.


http://dot.kde.org/2006/10/15/mark-shuttleworth-becomes-first-patron-kde

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

это так, что первое попалось в гугле.
я имею в виду, что денюжка капает какая-то - есть стимул.
иначе проект может просто надоесть.

saxon
() автор топика
Ответ на: комментарий от kernel

можно продолжать кидать яблоком до тех пор пока найдешь.

что делает процесс поиска адекватного жаба-программера за вменяемые деньги долгим и нетривиальным.

Более того, можно следить за тем что бы программер писал не наворочено а просто и понятно.

Везде так. Это и хорошо и плохо одновременно.

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

> что делает процесс поиска адекватного жаба-программера за вменяемые деньги долгим и нетривиальным.

говоришь А - говори и Б
Все относительно.. относительно времени поиска адекватного CL-программиста =)

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

КЛ прост как валенок. Любой адекватный программист выучит его пока въедет в проект. Т.е. есть общеотраслевая проблема --- хорошие специалисты редки и дорого стоят, а всё остальное уже мелкие детали.

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

> КЛ прост как валенок. Любой адекватный программист выучит его пока въедет в проект. Т.е. есть общеотраслевая проблема --- хорошие специалисты редки и дорого стоят, а всё остальное уже мелкие детали.

Можно пару примеров чего-либо работающего на CL?

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

www.nongnu.org/stumpwm/ --- графика

www.lisper.ru --- веб

http://sourceforge.net/projects/icancad/ --- CAD

http://www.xach.com/rip-l/ --- аудио риппер

Зайди на cliki.net --- там уйма лисповых проектов. Правда большинство из них это либо матан, либо инфраструктурные вещи для разработки на лиспе.

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

> www.lisper.ru --- веб

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

www.nongnu.org/stumpwm/ --- графика


ну раз это графика... Gnome, Gimp, Inkscape, Blender, KDE и подобная «графика» курят в сторонке

http://sourceforge.net/projects/icancad/ --- CAD


win-only, сравнивать с подобными проектами даже как-то даже неприлично, по отношению к этим проектам

http://www.xach.com/rip-l/ --- аудио риппер


Requirements

paranoia
ogg tools, specifically oggenc and vorbiscomment

ну если обертка над консольными утилитами это круто, то да - лисп рулит

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

нет, конечно же ничего не хотел сказать, хвастайся современными технологиями и продуктами CL дальше

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

Если честно, я там ничего эдакого не нашел. в основном или обертка для чего-то, или что-то связанное с математикой. опять же могу ошибаться, но взять питон (как тот же glue code), на нем намного больше решений есть

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

Сейчас пересматривал web-решения на Java. это кажется или оно реальное тормозить все жутко? почему-то складывается впечатление, что весьма так медленно работает.

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

Тезисно: Есть глупый и вредный миф, согласно которому лисп создан для написания ИИ, символьных вычислений, доказательства теорем и ни на что иное не пригоден. Эти ссылки доказывают, что это совсем не так и на КЛ можно вполне успешно писать обычные пользовательские программы для простых смертных. Следует понимать, что КЛ --- не серебряная пуля и само по себе его использование не гарантирует сверхбыстрое написание суперпрограмм. Просто очень мощный язык с удобнейшими средствами разработки.

взять питон ... на нем намного больше решений есть

питон намного более популярен. В это смысле наблюдается сильная положительная динамика. Лисп стремительно набирает популярность http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html растёт количество библиотека, а там и пользовательские прикладухи появятся.

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

Есть мнение, что вообще программирование как дисциплина это

в основном или обертка для чего-то, или что-то связанное с математикой

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