Re: PHP vs Perl vs Java vs Ruby vs Python
От: Donz Россия http://donz-ru.livejournal.com
Дата: 16.07.09 13:32
Оценка:
Здравствуйте, Donz, Вы писали:

Ответ по теме только один.
Попробую конкретизировать вопросы. Все вопросы предполагают, что приложение надо писать с нуля по каким-либо объективным причинам. То есть, выбираем не готовые движки, а именно саму основу.
1)Если вы в последние пять лет изучали какую-либо веб-платформу/технологию/язык, что послужило тому причиной? Почему именно эту?
2)Какую бы технологию выбрали вы, если бы прямо сейчас предложили создать легкий/средний/сложный проект?
3)Что по вашему мнению больше подходит для высоконагруженных разработок, что для интернет-магазинов "Компьютеры У Васи"? На чем стоит делать форум, рассчитанный на 5000 участников, на 100000 участников? На чем портал, аналогичный rsdn.ru?
4)Для участников, чье мнение "без разницы на чем писать" отдельный вопрос: зачем, по вашему мнению, создают новые языки/платформы, если все можно реализовать на том же php?


Мои ответы:
1)JavaEE + JSP. Причиной была необходимость создания новой версии веб-приложения. Предыдущие версии на Perl'е были сложны в поддержке и очень завязаны на авторов. Плюс Java предоставляет кроссплатформенность (в смысле, C# + ASP.NET отмели как минимум из-за этого)
2)Если решить надо было бы прямо здесь и сейчас, то выбрал бы Java, так как хорошо ее знаю. Если было бы время подумать, и проект предполагал бы время на исследования, то как минимум сделал бы для себя обзор сравнительно новых веб-технологий: ruby on rails, python, ... Так как по моему мнению что-то новое создается из-за нехватки возможностей старого. Вполне вероятно, новые возможности пригодятся и мне.
3)Хотя с PHP работал мало, но мне хватило. PHP для разработки с нуля не выберу из-за сложного анализа чужого кода (подключать библиотеки все равно придется) и не такого обширного количества библиотек, как, например, у той же Java. На данный момент даже простые скрипты мне проще написать на Perl'е. Плюс в недостатки PHP, судя по обсуждениям на форумах, можно записать медлительность и небезопасность, то есть на этом языке проще наделать ошибок, насколько я понял.
Re[3]: vs Ocaml
От: Mr.Cat  
Дата: 16.07.09 13:35
Оценка:
Здравствуйте, dmz, Вы писали:
dmz>vs Haskell ( см. happstack )
Кстати, да. Сам не юзал, но заявлен достойный набор фич. На нем, кстати, сделан http://patch-tag.com/
Альсо есть ocsigen/eliom. Про него какое-то время назад ветка была — http://www.rsdn.ru/forum/decl/3243046.aspx
Автор: eao197
Дата: 11.01.09
(сравнивали с, ололо, mongrel).
Re: Scheme?
От: Mr.Cat  
Дата: 16.07.09 13:43
Оценка: 2 (1)
D>Какую бы технологию выбрали вы, если бы прямо сейчас предложили создать легкий/средний/сложный проект?
Я просто оставлю это здесь: http://untyped.com/downloads/icfp068-welsh.pdf
Re[5]: PHP vs Perl vs Java vs Ruby vs Python
От: Mamut Швеция http://dmitriid.com
Дата: 16.07.09 15:54
Оценка:
Здравствуйте, Donz, Вы писали:

D> D>> M>Абсолютно без разницы. Википедия и facebook сделаны на РНР. Youtube — на питоне. Microsoft+MSDN вроде уже переведены на ASP.NET. Куски сайта Adobe/Macromedia написаны на Coldfusion. eBay — это в основном Java (если верить).


D> D>> То есть, создатели Ruby, Python и прочая просто изобретают нафиг никому ненужные велосипеды?


D> M>В смысле? Созание новых языков программирования никак не влияет на выбор или не выбор этих языков, скажем, для веб-разработки.


D> Ты написал, что абсолютно без разницы, какой язык/платформу выбрать. Значит, ни у одного языка нет явных преимуществ/недостатков. Раз так, зачем люди маются с изобретением велосипедов, раз можно взять тот же PHP. Без разницы же.


Еще раз. Откуда такая уверенность, что языки рзрбатывают для веб-разработки? Есть сотни причин для создания нового ЯП и только для одного я знаю, что причиной была именно веб-разработка. Это РНР.

Ты возьмешь для телекоммуникаций PHP? Нет, ты возьмешь, например, Erlang. Ты возьмешь для десктоп-приложения РНР? Нет, ты возьмешь C++ + Qt, Java+SWT или там C#+WinForms. И т.п.

Очень часто языки разрабатываются потому что что-то субъективно не нравится в других языках. Часто языки разрабатываются, чтобы доказать какие-то возможности. Часто языки разрабатываются, чтобы объединить возможности других языков.

И ничто из этого не указывает на то, что создатели языков создают велосипед, потому что все можно написать на РНР.


D> D>> Что-то сомневаюсь. Тот же Микрософт переписывает на ASP.NET. Просто для пиара, мол у нас все на самой лучше технологии?


D> M>Что значит переписывает? Что значит для пиара?


D> Ты сам написал "переведены". Видимо, это перевод веб-приложений с одной платформы на другую. Зачем Микрософт это делает, раз без разницы на чем писать?


Например, МС прекратила поддержку ASP. Зачем ей оставлять свои сайты на ASP? Правильно, незачем. перевели на ASP.NET. Более того, ASP.NET моет принести выгоду по сравнению с ASP. Например, ускорение разработки, улучшение сопровождаемости и т.п.

MySpace перевели с Coldufsion на ASP.NET н епотому что им так захотелось, а по тем же (и некоторым другим) причинам. Но пока у них не стало 500 000 зарегистрированных пользователей, они и думать не думали о переходе на другие языки.

D> M>Это все очень субъективные критерии.


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


D> M>Аналогия абсолютно некорректна, потому что ассемблер — это язык очень низкого уровня. Мы же сравниваем «птиц одного полета» — языки высокого и очень высокого уровня.


D> То есть у тебя есть критерий как минимум по высокоуровневости языка?


Этот критерий дается еще в школе, а потом повторяется на первом курсе университета
avalon 1.0rc1 rev 239, zlib 1.2.3


dmitriid.comGitHubLinkedIn
Re[2]: PHP vs Perl vs Java vs Ruby vs Python
От: Mamut Швеция http://dmitriid.com
Дата: 16.07.09 15:54
Оценка:
D> 4)Для участников, чье мнение "без разницы на чем писать" отдельный вопрос: зачем, по вашему мнению, создают новые языки/платформы, если все можно реализовать на том же php?

Новые языки создают не для того, чтобы писать «форумы, похожие на РСДН» Но вне зависимости от язка программирования все упирается в квалификацию лдей, которые пишут.
avalon 1.0rc1 rev 239, zlib 1.2.3


dmitriid.comGitHubLinkedIn
Re[5]: PHP vs Perl vs Java vs Ruby vs Python
От: Anton Batenev Россия https://github.com/abbat
Дата: 16.07.09 17:01
Оценка: +1
Здравствуйте, Donz, Вы писали:

D> Судя по отзывам, на PHP очень легко допустить ошибку, приводящую к уязвимости проекта, например.


Не зависит от языка, ИМХО. Если у кого-то есть дурная привычка не экранировать строки подставляя их в SQL запрос, то эту привычку язык не исправит.

D> Также невысокая скорость исполнения кода.


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

D> Высоконагруженный — можно привести веб-приложения Google как пример.


ИМХО, там вопрос выбора платформы не стоит (по крайней мере в таком контексте).

D> Или портал с посещаемостью в сотни тысяч уникальных посетителей в день.


100 тыс. уников еще надо получить. К тому моменту, как они появятся, ты уже будешь знать узкие места и большинство из них будет исправлено (да и проект будет уже пару-тройку раз переписан чуть ли не с нуля).
avalon 1.0rc2 rev 268, zlib 1.2.3
Re[3]: PHP vs Perl vs Java vs Ruby vs Python
От: Donz Россия http://donz-ru.livejournal.com
Дата: 16.07.09 22:38
Оценка:
Здравствуйте, Mamut, Вы писали:

D>> 4)Для участников, чье мнение "без разницы на чем писать" отдельный вопрос: зачем, по вашему мнению, создают новые языки/платформы, если все можно реализовать на том же php?


M>Новые языки создают не для того, чтобы писать «форумы, похожие на РСДН» Но вне зависимости от язка программирования все упирается в квалификацию лдей, которые пишут.


Я перечислил много вариантов, можно выбрать на свой вкус или самому придумать. И все же, для чего их тогда создают, если без разницы на чем писать? Можно даже абстрагироваться от веб-приложений. Думаю, задай я вопрос относительно десктопных программ, ответы были бы такими же.
Мне вот, например, очень большая разница на чем и дело вовсе не в том, что последние лет пять я программирую практически только на яве.
В людей упирается, но это не значит, что по гроб жизни надо застрять на perl'е, php или java, потому что их знают лучше всего. Об этом и речь. Какие-то языки и платформы предоставляют больше возможностей в конкретной области, чем другие. Вот и хотелось бы узнать, что выбирает народ с РСДН и почему.
Re[8]: PHP vs Perl vs Java vs Ruby vs Python
От: Donz Россия http://donz-ru.livejournal.com
Дата: 16.07.09 22:41
Оценка:
Здравствуйте, anonymous, Вы писали:

A>То есть в Си++, позволяющем не пользоваться классами, не «нормальный ООП»? Или в JavaScript, где нет классов? Эти все вопросы лишь призваны выяснить, чего же ты хочешь. Пока это не ясно.

С моей точки зрения не совсем нормальный. http://www.rsdn.ru/forum/web/3470663.1.aspx
Автор: Donz
Дата: 16.07.09
— вот тут еще раз объяснил, чего я хочу от этой темы. Если что, это не обсуждение ООПэшности того или иного языка.

A>В любом языке нужна такая договорённость.

Любой язык подталкивает к какому-либо стилю программированию. В яве только новичек будет лабать процедуры. В перле, насколько я понял, надо учить матчасть, чтобы писать в стиле ООП.
Re[6]: PHP vs Perl vs Java vs Ruby vs Python
От: Donz Россия http://donz-ru.livejournal.com
Дата: 16.07.09 22:46
Оценка:
Здравствуйте, Mamut, Вы писали:

M>Еще раз. Откуда такая уверенность, что языки рзрбатывают для веб-разработки? Есть сотни причин для создания нового ЯП и только для одного я знаю, что причиной была именно веб-разработка. Это РНР.

M>Ты возьмешь для телекоммуникаций PHP? Нет, ты возьмешь, например, Erlang. Ты возьмешь для десктоп-приложения РНР? Нет, ты возьмешь C++ + Qt, Java+SWT или там C#+WinForms. И т.п.
Ну это хорошо, что глобально все-таки не без разницы. Хотя подозреваю, спроси я про десктопные или другие мейн-стримовские области, ответ был бы тот же.

M>Например, МС прекратила поддержку ASP. Зачем ей оставлять свои сайты на ASP? Правильно, незачем. перевели на ASP.NET. Более того, ASP.NET моет принести выгоду по сравнению с ASP. Например, ускорение разработки, улучшение сопровождаемости и т.п.

M>MySpace перевели с Coldufsion на ASP.NET н епотому что им так захотелось, а по тем же (и некоторым другим) причинам. Но пока у них не стало 500 000 зарегистрированных пользователей, они и думать не думали о переходе на другие языки.

Так разница все-таки есть? Ура!

D>> То есть у тебя есть критерий как минимум по высокоуровневости языка?

M>Этот критерий дается еще в школе, а потом повторяется на первом курсе университета
Не совсем понял. Я имел в виду, что ты часть языков все же отсеешь по причине их низкоуровневости, что уже не подходит для "все равно".
Re[6]: PHP vs Perl vs Java vs Ruby vs Python
От: Donz Россия http://donz-ru.livejournal.com
Дата: 16.07.09 22:50
Оценка:
Здравствуйте, Anton Batenev, Вы писали:

D>> Судя по отзывам, на PHP очень легко допустить ошибку, приводящую к уязвимости проекта, например.

AB>Не зависит от языка, ИМХО. Если у кого-то есть дурная привычка не экранировать строки подставляя их в SQL запрос, то эту привычку язык не исправит.
Угу, то-то все ударились в управляемый код и заинтересовались ФП.

D>> Высоконагруженный — можно привести веб-приложения Google как пример.

AB>ИМХО, там вопрос выбора платформы не стоит (по крайней мере в таком контексте).
То есть, выбирают платформу, бросая кубики?

D>> Или портал с посещаемостью в сотни тысяч уникальных посетителей в день.

AB>100 тыс. уников еще надо получить. К тому моменту, как они появятся, ты уже будешь знать узкие места и большинство из них будет исправлено (да и проект будет уже пару-тройку раз переписан чуть ли не с нуля).
В который раз повторяю. Вот именно мнение конкретных людей по примерным проектам и хотелось бы получить. Есть собственный пример? Если да — опиши, плз, что выбрали и почему.
Re[7]: PHP vs Perl vs Java vs Ruby vs Python
От: Anton Batenev Россия https://github.com/abbat
Дата: 16.07.09 23:50
Оценка: +1
Здравствуйте, Donz, Вы писали:

D> Угу, то-то все ударились в управляемый код и заинтересовались ФП.


Давай заменим "все" на "некоторые" и разойдемся

D> AB>ИМХО, там вопрос выбора платформы не стоит (по крайней мере в таком контексте).

D> То есть, выбирают платформу, бросая кубики?

В принципе (в теории), гугль может себе и такое позволить. Но что позволено Юпитеру, то не позволено быку.

D> В который раз повторяю. Вот именно мнение конкретных людей по примерным проектам и хотелось бы получить. Есть собственный пример? Если да — опиши, плз, что выбрали и почему.


У меня есть примеров эпических падений и взлетов вне зависимости от платформы. По этому я не ошибусь, если еще раз повторю мнение: "Пиши на том, чем лучше владеешь" — все перечисленные в топике технологии и платформы могут дать производительность выше которой вопрос "А на чем писать?" отпадает.

Тем не менее. Ты упоминал о 100 тыс. уников в день. Это больше маркетинговый критерий. Нагрузочный критерий — это хиты. Потому как, в зависимости от проекта, среднее количество хитов от пользователя составляет от 3 до 15 — т.е. от 300 тыс до 1.5 млн хитов в сутки или в пике от 30 до 150 хитов в секунду (т.е. разбег по нагрузке в 500%). Для задачи типа "магазин" или "rsdn" при таких раскладах подойдет любая из обсуждаемых технологий.
avalon 1.0rc2 rev 269, zlib 1.2.3
Re[5]: PHP vs Perl vs Java vs Ruby vs Python
От: skeptik_  
Дата: 17.07.09 02:49
Оценка: 4 (1)
Здравствуйте, Donz, Вы писали:

D>Здравствуйте, skeptik_, Вы писали:


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

_>>Что-то реально сложное — Java. Все остальное — PHP.

D>>>Что больше подходит для высоконагруженных разработок, что для интернет-магазинов "Компьютеры У Васи"?

D>>>На чем стоит делать форум, рассчитанный на 5000 участников? На чем портал, аналогичный rsdn.ru?
_>>PHP три раза.

D>О, первый ответ по теме!

D>Спасибо.

D>Если готов написать аргументы в пользу одного или другого языка, будет вообще отлично.


+ PHP — вездесущ. Низкий порог вхождения. Очень простой деплоинг. Язык в принципе позволяет писать чистый и стройный ООП, проблемы как правило вызваны недостатком общей квалификации. Лично я, используя связку Kohana + Doctrine + PHPTAL + отдельные либы Zend'а, не испытываю проблем ни с производительностью, ни с чем-либо другим.
= Java — обилие enterprise либ, менее error-prone из-за static typing и компиляции, скорость опять же из-за компиляции, скалируемость, все это делает его лучшим выбором в случае enterprise систем, но для веб-only затраты совершенно неоправданны.
= Python — неплох, но инфраструктура не столь развита как у PHP. Входной порог выше чем у PHP.
— Ruby on Rails — сырой, медленный, неустоявшийся.
— ASP.NET — не нравится в принципе абстракция, в результате которой ряд кодеров толком не понимает, когда и зачем приложение ходит на сервер.
— Perl — плохо читаем, позавчерашний день.
Re[6]: PHP vs Perl vs Java vs Ruby vs Python
От: Ziaw Россия  
Дата: 17.07.09 04:57
Оценка: 3 (1)
Здравствуйте, skeptik_, Вы писали:

_>- ASP.NET — не нравится в принципе абстракция, в результате которой ряд кодеров толком не понимает, когда и зачем приложение ходит на сервер.

Есть ASP.Net MVC, со вполне нормальными абстракциями.
... << RSDN@Home 1.2.0 alpha 4 rev. 1228>>
Re[7]: PHP vs Perl vs Java vs Ruby vs Python
От: skeptik_  
Дата: 17.07.09 08:35
Оценка:
Здравствуйте, Ziaw, Вы писали:

Z>Здравствуйте, skeptik_, Вы писали:


_>>- ASP.NET — не нравится в принципе абстракция, в результате которой ряд кодеров толком не понимает, когда и зачем приложение ходит на сервер.

Z>Есть ASP.Net MVC, со вполне нормальными абстракциями.
Спасибо, почитал. Да, действительно подтянулись, фактически стандартная архитектура на сегодня. Единственно вьюхи мне не очень понравились, но это дело вкуса. Хостинг правда все равно менее распостранен, да и дороже.
В общем PHP пока остаётся для меня первым выбором, но у Питона есть шансы.
Re[7]: PHP vs Perl vs Java vs Ruby vs Python
От: Mamut Швеция http://dmitriid.com
Дата: 17.07.09 08:54
Оценка:
D> M>Еще раз. Откуда такая уверенность, что языки рзрбатывают для веб-разработки? Есть сотни причин для создания нового ЯП и только для одного я знаю, что причиной была именно веб-разработка. Это РНР.
D> M>Ты возьмешь для телекоммуникаций PHP? Нет, ты возьмешь, например, Erlang. Ты возьмешь для десктоп-приложения РНР? Нет, ты возьмешь C++ + Qt, Java+SWT или там C#+WinForms. И т.п.

D> Ну это хорошо, что глобально все-таки не без разницы. Хотя подозреваю, спроси я про десктопные или другие мейн-стримовские области, ответ был бы тот же.


Естественно. Писать в первую очередь нужно на том языке, который ты лучше всего знаешь. Или на том, для которого еть 90-00% уверенность, что ты в короткие сроки его сможешь освоить на уровне не меньшем, чем свой основной язык.

D> M>Например, МС прекратила поддержку ASP. Зачем ей оставлять свои сайты на ASP? Правильно, незачем. перевели на ASP.NET. Более того, ASP.NET моет принести выгоду по сравнению с ASP. Например, ускорение разработки, улучшение сопровождаемости и т.п.

D> M>MySpace перевели с Coldufsion на ASP.NET н епотому что им так захотелось, а по тем же (и некоторым другим) причинам. Но пока у них не стало 500 000 зарегистрированных пользователей, они и думать не думали о переходе на другие языки.

D> Так разница все-таки есть? Ура!


Естественно. Критерии я привел в другом ответе.

D> D>> То есть у тебя есть критерий как минимум по высокоуровневости языка?

D> M>Этот критерий дается еще в школе, а потом повторяется на первом курсе университета
D> Не совсем понял. Я имел в виду, что ты часть языков все же отсеешь по причине их низкоуровневости, что уже не подходит для "все равно".


*вещаю голосом занудного учителя*

Есть машинные коды
Есть языки очень низкого уровня, напрямую повторяющие машинные коды — ассемблер
Есть языки низкого уровня, которые вводят некоторое количество абстракций, но при этом не ограждают человека от, например, арзитектурных особенностей компьютера — С
Есть языки высокого уровня, которые полностью асбтрагируют работу с компьютером — Java, C#, Python, Ruby и т.п.
Есть языки очень высокого уровня, типа Хаскеля, которые на все это еще накидывают реализацию различных мат. моделей.


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

Когда ты сравниваешь языки на одном уровне, ты, по сути, сравниваешь один и тот же язык сам с собой. По возможностям, они различаются между собой только синтаксисом и количеством синтаксичского сахара (за редким исключением).
avalon 1.0rc1 rev 239, zlib 1.2.3


dmitriid.comGitHubLinkedIn
Re[7]: PHP vs Perl vs Java vs Ruby vs Python
От: Mamut Швеция http://dmitriid.com
Дата: 17.07.09 08:54
Оценка: 5 (2)
D> AB>100 тыс. уников еще надо получить. К тому моменту, как они появятся, ты уже будешь знать узкие места и большинство из них будет исправлено (да и проект будет уже пару-тройку раз переписан чуть ли не с нуля).

D> В который раз повторяю. Вот именно мнение конкретных людей по примерным проектам и хотелось бы получить. Есть собственный пример? Если да — опиши, плз, что выбрали и почему.


Открываешь http://highscalability.com/ и читаешь.

Там есть и РНР (Wikipedia, Facebook) и Python (Youtube) и Ruby (Twitter) и Coldfusion/ASP.NET (MySpace)
avalon 1.0rc1 rev 239, zlib 1.2.3


dmitriid.comGitHubLinkedIn
Re[4]: PHP vs Perl vs Java vs Ruby vs Python
От: Mamut Швеция http://dmitriid.com
Дата: 17.07.09 08:54
Оценка:
D> В людей упирается, но это не значит, что по гроб жизни надо застрять на perl'е, php или java, потому что их знают лучше всего. Об этом и речь. Какие-то языки и платформы предоставляют больше возможностей в конкретной области, чем другие.

Ну дык. Например, С++ для веба вообше никак не подходит. А РНР — для телекоммуникаций.

D> Вот и хотелось бы узнать, что выбирает народ с РСДН и почему.


Для выбора есть множество объективных и субъективных причин. Например (даны не в порядке важности):

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

это приблизительный список того, что нужно обдумать прежде, чем выбиртаь тоот или иной язык для той или иной задачи.
avalon 1.0rc1 rev 239, zlib 1.2.3


dmitriid.comGitHubLinkedIn
Re[4]: vs Ocaml
От: dmz Россия  
Дата: 17.07.09 12:47
Оценка:
MC>Кстати, да. Сам не юзал, но заявлен достойный набор фич. На нем, кстати, сделан http://patch-tag.com/
MC>Альсо есть ocsigen/eliom.

В окамле легкие потоки работают только в байткоде и сборщик мусора неконкурентный. Плюс ocsigen сложнее.
Приложение helloworld на happstack пишется за пять минут; туториал работает на локальной машине из коробки.

Производительность очень достойная + на выходе получается self contained приложение. Плюс для хаскела очень много
всяких web-related библиотек, окамл беднее.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.