Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Скриптовый язык и C++ = веб-приложение?


Автор: Ares4322 29.4.2010, 18:54
Доброго времени суток!
Есть ли смысл и возможность писать веб-приложения со сложной логикой, как связку скриптовый язык + с++? И какой лучше скриптовый язык для этого выбрать?

Автор: djamshud 29.4.2010, 19:17
>Есть ли смысл и возможность писать веб-приложения со сложной логикой, как связку скриптовый язык + с++?

Есть смысл провести анализ, в каких местах и за какую цену (сложность написания) с++ выиграет у скриптового языка, таким образом выделить критические места.

>И какой лучше скриптовый язык для этого

Тот, который знаете.

Автор: Ares4322 29.4.2010, 19:19
с++ есть смысл внедрять на уровне бизнес-логики приложения, где требуется большая производительность и вычисления, ну или хочется сэкономить ресурсы).
а язык, мне кажется, что лучше использовать тот, что легко будет интегрироваться с c++(например, python).
или я не прав?

Автор: Vasay 29.4.2010, 19:29
Ares4322, 

Нет.  С++ может быть уместен для реализации каких-либо сложных преобразований (например, обработка изображений), выделении их в отдельное приложение, имеющее API. Пример: ImageMagick

Да и еще вопрос - не получится ли на .NET или Java быстрее и качественней. 

Автор: azesmcar 29.4.2010, 19:35
Цитата(Ares4322 @  29.4.2010,  19:19 Найти цитируемый пост)
с++ есть смысл внедрять на уровне бизнес-логики приложения, где требуется большая производительность и вычисления, ну или хочется сэкономить ресурсы

А имеет ли это смысл? Трудозатраты немало повысятся, а что будет в результате? Нужна ли эта производительность?

Автор: Ares4322 29.4.2010, 19:41
На Java и .Net там, где нужна производительность и нетребовательность к ресурсам - не получится. Быстрее написать - да. За счет интеграции с разными инструментами, серверами и тд. 
Не зря же сделали Hip-Hop, да и у Amazon perl + с++.

Автор: azesmcar 29.4.2010, 19:49
Цитата(Ares4322 @  29.4.2010,  19:41 Найти цитируемый пост)
Не зря же сделали Hip-Hop, да и у Amazon perl + с++. 

Цитата

Jeff Bezos founded Amazon.com, Inc. in 1994 and launched it online in 1995. 

http://en.wikipedia.org/wiki/Amazon.com
Цитата

Microsoft started development on the .NET Framework in the late 1990s originally under the name of Next Generation Windows Services (NGWS). By late 2000 the first beta versions of .NET 1.0 were released.[18]

http://en.wikipedia.org/wiki/.NET_Framework

Автор: Ares4322 29.4.2010, 19:56
Я читал интервью с техническим спецом Amazon и он говорил, что они не любят использовать всякие фреймворки и промежуточное ПО, а пишут свое. И в этом есть смысл. Если продукт не на продажу, а для внутреннего использования или он используется для предоставления сервиса клиентам, то возможно будет лучше писать что-то свое.

Автор: Vasay 29.4.2010, 19:57
Ares4322, 

Цитата

На Java и .Net там, где нужна производительность и нетребовательность к ресурсам - не получится.


Это теория. В реальности часто все выходит наоборот. И примеров тому достаточно. Хотя бы  сравнение интерпретатор Ruby и JRuby.

Автор: Ares4322 29.4.2010, 20:06
А что про эти интерпретаторы?
Я не в курсе)

Автор: Vasay 29.4.2010, 20:25
Цитата

А что про эти интерпретаторы?


JRuby - интерпретатор  Ruby написанный на Java. В большинстве тестов он быстрее оригинального интерпретатора.  Хотя, говорят, Ruby 1.9 стал значительно быстрее.

Автор: Ares4322 29.4.2010, 20:28
Все скриптовые языки по скорости пригрывают Java и .Net. Если изначально для веб-приложения выбрать одну из этих платформ, то, я так понимаю, это будет хороший запас мощности на будущее. Или нет?

Автор: Vasay 29.4.2010, 20:38
Ares4322, 

Цитата

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

Это будет огромный запас по масштабируемости. Что куда важнее. 

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




Автор: Ares4322 29.4.2010, 20:42
Просто я разрабатываю веб- приложение. За платформу взял J2EE(вернее struts2 b pojo) и AJAX. И не знаю, правильно ли  сделал, что не выбрал скриптовый язык.

Автор: Vasay 29.4.2010, 20:58
Цитата

Просто я разрабатываю веб- приложение. За платформу взял J2EE(вернее struts2 b pojo) и AJAX. И не знаю, правильно ли  сделал, что не выбрал скриптовый язык.


Сложный вопрос. Зависит от того что разрабатываете. 

Автор: Ares4322 29.4.2010, 21:01
ну с точки зрения производительности-то точно не проиграю(по сравнению со скриптовыми языками)?

Автор: Vasay 29.4.2010, 21:38
Цитата

ну с точки зрения производительности-то точно не проиграю(по сравнению со скриптовыми языками)? 


не на то обращаете внимание. Web приложение - не 3d action. 

Тут важна не скорость генерации страниц в расчете на 1Гц процессора,а то насколько просто Вам будет наращивать эту скорость. и насколько просто модифицировать приложение под новые задачи.


Если сравнивать количество ресурсов для генерации простенькой странички с одной табличкой - то, например, PHP сожрет ресурсов в разы меньше чем Java приложение поднятое на app сервере и базирующееся на увесистом многоклассовом фрэймворке.

Но если речь идет о сложном приложении в котором есть необходимость хранить оперативную информацию как для всего приложения вцелом, так и для отдельных сессий, то тот же PHP задохнется без искусственного дыхания в виде какого-нибудь  MemCached. А Java приложение за счет синглтон и сешн бинов вполне нормально будет себя чувствовать и на железе с меньшими параметрами.  


Не стоит так же забывать, что время программиста стоит дороже железа. Многие задачи выгодней решать с помощью таких вещей как RoR ( Ruby) и Grails (Groovy)  - они позволяют весьма ускорить время разработки, за что им можно простить тормознутость. К тому же вычислительно сложные моменты всегда можно перенисти на что-нибудь другое (тот же Grails лишь обертка поверх Java фрэймворка - Spring, и все вычислительно сложное можно писать  на Java, да и RoR с Java интегрируется)


А еще не стоит изобретать велосипедов - вполне возможно почти все до Вас уже написано и Вам достаточно взять какую-нибуь php софтину и написать для нее пару модулей - и все, можно в продакшен  smile . И не так важно, что она будет жрать до дури ресурсов - скорость запуска все окупит.

Автор: Ares4322 29.4.2010, 21:49
Скорость разработки не очень важна, так как приложение не на продажу, а для предоставления сервиса. Проблема в том, что пока до конца не ясно, как будет развиваться приложение и какой функционал будет добавляться со временем. Пока вроде все просто и можно было бы обойтись CMS(PHP)+AJAX, но, возможно, что в будущем появятся такие требования, что скриптами это не решишь. Кстати, какие явные технологические преимущества у Java-платформы перед скриптовыми? Первое, что я вижу - многопоточность, второе - скорость выполнения кода. А есть что-нибудь еще?

Автор: Vasay 30.4.2010, 00:14
Цитата

Скорость разработки не очень важна, так как приложение не на продажу, а для предоставления сервиса.


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

Цитата

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


Отсутствие нормальной многопоточности в PHP  не значит что в других "скриптовых" языкак ее нет. 

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

На мой взгляд - Java превосходит всех конкурентов количеством и качеством различных фрэймворков (это и минус - новички, начинающие заниматься Java for web просто впадают в ступор, от незнания за что браться).  

Если говорить, о Java vs PHP то тут огромная пропасть, заключающаяся в том, что время жизни PHP приложения - обработка одного запроса. Т.е. при каждом запросе происходит начальная инициализация  - создаются необходимые объекты,  открываются соединения с БД, а после ответа на запрос все это умирает, создавая проблему хранения оперативной информации.  Если приходят два запроса одновременно - то все создается в двойном экземпляре. 

Пока приложения на PHP были простыми - все было ничего, но сейча - WP с парой плагинов при средней посещаемости уже требует выделенный сервер.

Java же приложение запускается один раз. Дальше отвечает на запросы. Есть возможность иметь один объект доступный для всех, или один объект доступный в рамках одной сессии.  Кроме этого есть и много других вкусностей, особо актуальных при разработке корпоративных приложений.

Но есть например скриптовый язык Groovy. Работает на JVM. Есть для него фрэймворк Grails (посути - обертка на Spring framework) - мне очень нравится. И я готов жертвовать скоростью работы (а он медленней Java) ради скорости разработки и свободы от сложной конфигурации присущей Spring framework. При этом, если мне понадобится где-то больше производительности - всегда могу использовать Java.  (последний абзац на правах рекламы  smile  )

Автор: Ares4322 30.4.2010, 06:36
Спасибо! Я тоже на groovy обратил внимание.но пока,он все равно развит слабее java фреймворков.но я думаю что на досуге попробую.а легко его,с объектами java-связывать?

Добавлено через 17 секунд
Спасибо! Я тоже на groovy обратил внимание.но пока,он все равно развит слабее java фреймворков.но я думаю что на досуге попробую.а легко его,с объектами java-связывать?

Автор: azesmcar 30.4.2010, 06:46
Ares4322

Мне думается тебе стоило бы посетить нашу религиозную войнушку.
http://forum.vingrad.ru/forum/topic-254332/0.html

Автор: Ares4322 30.4.2010, 07:38
Да это все пустое.
Я считаю, что есть набор задач, где лучше использовать одно, а другие  - где другое.
Про экономическую и временную целесообразность я не говорю. Понятно, что хороший Java-программист стоит дороже, чем PHP-программист, и что работать ему по-любому дольше. А как, кстати, организовать кеширование страниц на Java?

Автор: Vasay 30.4.2010, 12:22
Цитата

Я тоже на groovy обратил внимание.но пока,он все равно развит слабее java фреймворков


Groovy - это не фрэймворк. Это язык программирования. Работает на JVM, соответственно может использовать Java библиотеки.

Для него есть web фрэймворк - Grails. Внутри там Spring FrameWeork - все его возможности доступны.

Цитата

А как, кстати, организовать кеширование страниц на Java? 


Думаю, это тема для раздела форума про Java EE

Автор: Ares4322 30.4.2010, 12:27
Спасибо!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)