| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > 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 быстрее и качественней. |
| Автор: Ares4322 29.4.2010, 19:41 |
| На Java и .Net там, где нужна производительность и нетребовательность к ресурсам - не получится. Быстрее написать - да. За счет интеграции с разными инструментами, серверами и тд. Не зря же сделали Hip-Hop, да и у Amazon perl + с++. |
| Автор: azesmcar 29.4.2010, 19:49 | ||||
http://en.wikipedia.org/wiki/Amazon.com
http://en.wikipedia.org/wiki/.NET_Framework |
| Автор: Ares4322 29.4.2010, 19:56 |
| Я читал интервью с техническим спецом Amazon и он говорил, что они не любят использовать всякие фреймворки и промежуточное ПО, а пишут свое. И в этом есть смысл. Если продукт не на продажу, а для внутреннего использования или он используется для предоставления сервиса клиентам, то возможно будет лучше писать что-то свое. |
| Автор: Vasay 29.4.2010, 19:57 | ||
Ares4322,
Это теория. В реальности часто все выходит наоборот. И примеров тому достаточно. Хотя бы сравнение интерпретатор 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 | ||
Сложный вопрос. Зависит от того что разрабатываете. |
| Автор: 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 софтину и написать для нее пару модулей - и все, можно в продакшен |
| Автор: 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. (последний абзац на правах рекламы |
| Автор: 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 - это не фрэймворк. Это язык программирования. Работает на JVM, соответственно может использовать Java библиотеки. Для него есть web фрэймворк - Grails. Внутри там Spring FrameWeork - все его возможности доступны.
Думаю, это тема для раздела форума про Java EE |
| Автор: Ares4322 30.4.2010, 12:27 |
| Спасибо! |