java в сравнении с php
Высоконагруженные проекты: Java vs php
Устраиваемся поудобнее. Итак, вопрос сплошь теоретический, и, я надеюсь, он не станет предметом холивара.
Представьте, что в один прекрасный день Вам предлагают возглавить разработку масштабного и очень дорогого проекта — потенциально имеющего все перспективы догнать Facebook или ВКонтакте. Но учитывая некоторые известные нюансы, например, что ФБ транслирует php в высоко оптимизированный код C++, а затем компилирует, — поставлена задача, — выбрать наиболее оптимальный вариант, который сводит к минимуму такого рода костыли над нативным языком или не предусматривает их в принципе; в идеале же, вся серверная логика и примитивная генерация страниц должна быть только на одном ЯП — без каких-либо ухищрений.
В рамках данного предложения для рассмотрения допускаются два языка: Java и php (т.к именно последний используется в вышеперечисленных проектах, а первый, скажем, рекламирует себя в качестве энтерпрайза).
Конечно же все плюсы php в сегменте мелкого сайтостроения (блоги, форумы, etc) нам всем хорошо известны — и оспаривать их мы не подумаем; так давайте же рассматривать только очень тонкие уголки: обговариваем сразу со стороны возможностей извращённо-сложных уникальных решений и хайлоада в целом. Вопросы экономического целесообразия можно опустить на задний план, т.к инвесторы Уоррен Баффет и Билл Гейтс выделили нам, ну скажем, достаточное количество средств, чтобы можно было забыть о проекте и потеряться в другой стране, — но мы не такие, поэтому давайте разведем диванную теоретику. 🙂
в чем преимущества Java перед php в веб приложениях
Приветствую всех,
но интересует мнение в первую очередь java программеров,
скажите пожалуйста в чем на Ваш взгляд преимущество Java перед php при написании веб приложений,
один факт понятен — писать под джавой говнокод сложнее чем на php, и это существенный аргумент, но какие есть ещё?
php изучать проще, примеров больше, библиотек навалом, использовать проще… тех же серверов навалом, насчет производительности несогласен — тот же FarmVille с 70 млн. юзеров имеет php на бэкэндах.
Никоем образом не хочу развести холивар,
всем спасибо.
Преимущества Java «вообще» железа не касаются в принципе. Это строгий язык, на котором можно решать в принципе любую задачу, которая будет работать почти где угодно. Чисто «идейный» аспект — на нем сложнее учиться, но легче писать, он более логичен и этим не раздражает программиста, он развит и расширяется «до бесконечности». Это действительно инструмент на все случаи жизни. Но у него «тяжелая» инфраструктура.
PHP прост в изучении, «легок» в нагрузках, работает внутри HTML страниц. Из-за чего востребован и распространен. Но все хорошо только в начале. Потом отсутствие строгих ограничений становится источником трудноуловимых ошибок, а сам язык воспринимается нелогичным и непредсказуемым. Большие проекты на PHP — это кромешный мрак. Но это тоже все аргументация «идейная».
А в реальной ситуации все решает задача, средства и среда. Так что ответа вы не получите 🙂
В споре между Java и PHP побеждает Python! 🙂
Java тяжеловеснее PHP. VPS для простого приложения будет более загружен для java нежели для php. И потребует больше памяти. Для сложных и тяжеловесных — как написано так и будет.
Да, я что-то не слышал про shared хостинг под java.
С точки зрения стоимости разработки PHP лучше — быстрее и дешевле. В случае разработки больших приложений, можно говорить про прототипирование на PHP, с последующим переписыванием на что-нить компилируемое — это может быть и java. Хотя связка python/C выглядит лучше.
Тогда уж побеждает Go 🙂 Хотя его еще попилить с годик надо… 🙂
Никогда не понимал, зачем что-то прототипировать на другом языке? Не проще сразу прототипировать на том, на чём будет идти разработка?
По поводу VPS, спорный вопрос… У меня спокойно весят где-то 6 проектов на 768Mb памяти. Каждый проект завязан кучу тяжелых фреймворков (Hibernate, Tapestry 5, EhCache и т.д.), пулы на PostgreSQL и т.д… Память конечно вся забита и в идеале лучше иметь 1024 памяти…
Но в тоже время Python на другой VPS также кушает все 512Mb памяти. Там уже Memcached, MySQL и Django… Так что разница не такая уж и большая. Хотя PHP я конечно не в курсе, сколько будет памяти кушать…
другой язык = другая скорость разработки. Языки с гибкой типизацией, набор библиотек позволяют быстро получить нечто функционально похожее. И потом допиливать, переписывая узкие места на компилируемом языке.
А попробуйте запустить java на 256 метрах 🙂 А php проекты в таких vps живут пачками вполне себе ничего.
Короче всего так дорога, которую знаешь:)
К слову, разрабатывать в современном мире проект, опираясь только на стандартную библиотеку — самоубийственная растрата себя любимого. Лучше использовать либы и фреймворки, а потом пойти девушек гулять.
>насчет производительности несогласен — тот же FarmVille с 70 млн. юзеров имеет php на бэкэндах.
Абсолютные цифры ничего не говорят, надо сравнивать пускай даже количество пользователей (а не хитов, не говоря уж о сценариях), отнесённое к задействованным ресурсам. Может там где для PHP надо кластер поднимать, для Java VPS хватит, а может наоборот, не знаю. Сам сейчас мечусь между разными языками, выбирая что лучше подойдёт для сервера с пиком в 100 запросов/секунду, если это вообще реально на 4-х ядернике с 8Гб ОЗУ, получается 40 мс на запрос. По некоторым тестам Java показывает примерно 4-х кратное превосходство по производительности перед PHP и сравнимое с C# в сторону, которого смотрю.
С PHP давно не работал (последний проект 2006 год), поэтому может что-то сейчас поменялось. Но в целом, я до сих пор считаю, что Java и вообще типизированные языки (например, Go, который недавно вышел) лучше при разработке больших проектов.
Когда язык типизированный, значительно проще изучать сторонний (да и свой) код или API. А в IDE сложнее сделать ошибку во-время написания кода.
По поводу библиотек на PHP их конечно несколько побольше, чем на Java (в веб направлении). Но я решал эту проблему через RPC (на не критичных участах) или через JNI (нативный вызов Си\Си++ функций через специальный интерфейс). С другой стороны фундаментальные вещи типа ORM или веб-фреймворки сделаны намного качественее.
Качественее сделано управление зависимостями, сборка и продакшн проекта. Всё автоматизировано и заточено под Java.
В Java у вас один процесс работает с клиентами, в PHP же нужно на каждого клиента новый процесс. Не знаю насколько это влияет на производительность, но в Java в этом плане удобнее работать, при написании каких-то расшаренных сервисов для клиентов.
В ближайшее время появится возможность вызова Python, Ruby библиотек или фреймворков прямо из Java. Можно уже сейчас это делать, но в Java7-8 это будет значительно оптимизировано. Так что проблема с библиотеками будет решена.
Если сейчас хотите начать работать с Java в вебе, присмотритесь к веб-фреймворкам Grails или Tapestry 5. Первый не совсем Java (построенный на Groovy), но имеет большое количество интеграций с библиотеками. Второй полностью на Java, но меньше интегрированных библиотек.
Также Spring сейчас является мейнстримом в разработке веб-проектов. Выше перечисленные фреймворки либо построены на нём, либо имеют возможность интегрироваться с ним.
Что выбрать в 2021 году? Java или PHP?
Около 80% компаний в мире используют PHP для создания своих веб-приложений. Один из самых сложных вопросов для предпринимателя, который хочет открыть собственный стартап — какой язык программирования выбрать для своего проекта?
Выбор языка для своего проекта зависит напрямую от потребностей, бюджета и других параметров. Очевидно, что PHP больше всего подходит для разработки сайтов, но на самом деле и Java имеет целый ряд преимуществ и недостатков.
Я начну эту статью с нескольких интересных фактов о PHP:
— Гиганты электронной коммерции, такие как Amazon, Facebook и Wikipedia, заложили основу с помощью PHP, и до сих пор 80% из 10 млн веб-сайтов используют PHP. — С точки зрения бизнеса, особенно для вашего собственного стартапа, наем PHP-разработчика дешевле, чем Java-разработчика. — Популярные PHP-фреймворки, такие как Symphony и Laravel, чрезвычайно мощны и ускоряют процесс разработки веб-приложений.
Проще говоря, PHP был создан для интернета. Все основные CMS созданы с использованием PHP — сюда относятся Shopify, Opencart, WooCommerce, Magento, Drupal и Joomla.
PHP — это интерпретируемый язык, который компилируется в байт-код, а затем интерпретируется механизмом выполнения. Следовательно, с точки зрения безопасности памяти, Java безопаснее, поскольку защищает вашу систему от атак и ошибок. Поэтому, когда речь заходит о безопасности, конечно выбор падает на Java. +1 балл к java.
PHP анализирует файл и вводит поток для каждого вызова. В PHP нет процесса компиляции. Однако в модели CGI компиляция не имеет смысла. В то время как Java ранее описывалась как медленная, JVM сильно оптимизирована для скорости: только во времени компиляции. Java компилирует файлы JSP и горячие точки JIT аксиоматически.
Другими словами: PHP — это инструмент сценариев на стороне сервера с открытым исходным кодом, широко используемый для разработки отзывчивых порталов, тогда как Java — это язык программирования на стороне клиента, который в основном используется для сборки.
Сравнение дизайна
С точки зрения дизайна и архитектуры Java — это компилируемый язык, который быстрее PHP. Тем не менее, когда мы применяем оба языка на практике, PHP оказывается быстрее, чем Java в Интернете. PHP разработан для Интернета и представляет собой наиболее продвинутый, основной и серверный контент. И здесь PHP опережает JAVA, потому что фреймворки PHP предназначены для корпоративной сети. +1 в пользу PHP.
Что лучше выбрать для разработки веб-приложения
Оба они являются довольно старыми языками, но Java немного опережает PHP, предоставляя инструменты отладки и более богатый набор API.
Заключение
Короче говоря, выбор между Java и PHP полностью зависит от требований вашего проекта. И Java, и PHP, используются для разработки специального программного обеспечения, включая веб-разработку и разработку веб-приложений. Но очень немногие стартапы предпочитают полагаться на Java.
Например, PHP Laravel широко используется для стартапов. Лишь небольшой процент современных веб-стартапов использует Java. Оба веб-решения одинаково важны и играют важную роль. PHP лучше подходит для небольших приложений, а Java лучше подходит для крупных веб-приложений.
Сравнение Java и PHP
Здравствуйте, уважаемые посетители сайта Myrusakov.Ru! Как Вы знаете, недавно я запустил несколько новых видео курсов связанных с языком Java и поэтому сегодня я хотел бы с Вами поделиться некоторыми фактами, относительно различий и общих черт между Java и PHP.
В первую очередь хочу обратить внимание на то, что особую популярность Java получила благодаря тому, что этот язык вобрал в себя все то лучшее, что было создано до него. Поэтому людям которые переходили с других подобных языков на Java не составляло большого труда переориентироваться на новый язык. Если вы посмотрите на PHP, то он и сам во многом похож на Java, прежде всего объектной моделью.
Давайте рассмотрим некоторые похожие особенности языков: Класс на PHP7 можно описать следующим образом:
Тот же класс на Java:
class SomeClass
<
// общедоступный статический метод, принимающий аргументы командной строки и ничего не возвращающий
public static void main(String[] args)
<
System.out.println(«SomeClass»);
>
>
Посмотрите насколько листинги этих двух классов на PHP и на Java похожи. Итак во многом. Поэтому, если Вы уже знаете хорошо PHP, то для Вас не составит особого труда научиться языку программирования Java. Для этого как раз я записал видеокурс «Программирование на Java с Нуля до Гуру», который поможет Вам изучить этот популярный язык.
Отличия между Java и PHP здесь состоят в том, что PHP класс мы можем запустить, например, подключением его в какой-либо файл, с последующим вызовом статического метода main, тогда как в Java нам надо с начало скомпилировать файл и только затем появится возможность его запустить. Причем точкой входа в приложение, т.е. метод с которого начнется выполнение программы будет метод main, так как среда Java устроена так, что при запуске приложения автоматически ищет класс с публичным открытым методом main, который получает параметры командной строки через массив строк args.
Вообще Java, как строго типизированный язык, накладывает много ограничений, на то как можно писать код, но это отнюдь не минус, а даже плюс, так как язык заставляет Вас думать в соответствии со своей концепцией, тем самым дисциплинируя и позволяя избежать многих ошибок.
Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!
Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.
Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления
Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.
Порекомендуйте эту статью друзьям:
Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):
Комментарии ( 0 ):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.
Copyright © 2010-2021 Русаков Михаил Юрьевич. Все права защищены.
Java убьет ваш стартап. PHP спасёт его.
Sep 6, 2018 · 6 min read
Так, всем спокойно. Это не очередной диспут на тему что лучше PHP, Java или ваш любимый язык. Я хочу поговорить о корпоративных технологиях, например Java Enterprise, и о том, как они могут похоронить ваш интернет-стартап или малый/средний веб-бизнес. Более того, речь идет о серьёзных технология вроде PHP (или Ruby, Python, Perl и т.д.), которые могут спасти его и поднять на новый уровень. Я мог бы взять любые два языка или технологии. Я попросту выбрал два самых-самых, чтобы донести суть, и немного потроллить вас.
Это н е технический отчёт для технических специалистов, а комментарии о бизнес-деятельности (для не технических специалистов), о том, что нужно молодому, малому/среднему веб-бизнесу и что в конце концов может его погубить.
Все что нужно малому веб-бизнесу, неважно, насколько большим вы его представляете, так это LAMP. Для тех, кто не в курсе LAMP — это акроним, который определяет операционную систему, веб-сервер, базу данных и язык программирования. В этом случае Linux, Apache, MySQL, и PHP. Допустим вы основатель бизнеса или старший руководитель (не технического отдела), и вы полагаетесь на советы других, касательно технологий. Тогда, вероятно о LAMP (особенно о PHP и MySQL) вы слышали следующее: это не совсем современно, не достаточно хорошо, “слишком просто” и вы не получите той производительности, которую ожидаете. Это полный бред. Факты:
Кроме этих фактов, каждый не технический предприниматель и руководитель, должен понимать следующее о языках, корпоративных решениях и разработке…
Проектирование! Архитектура и проектирование системы куда важнее чем выбор языка или чего-либо еще. Бесполезно выбирать «правильный» язык или технологию если у вас плохо спроектированная система. Java — компилируемый язык (от части) и как таковой быстрей чем PHP. Но на практике, в вебе, PHP быстрее (как правило). Потому что PHP создан для веб. Фреймворки PHP спроектированы для корпоративных веб решений. Корпоративное решение — это прежде всего архитектура, а не технологии и языки. Когда кто-то навязывает вам язык (например Java), без полной оценки и обсуждения архитектуры — это похоже на покупку дома, которого вы никогда не видели, только потому что его строили с помощью самого лучшего молотка (или кувалды, в случае с Java EE).
Язык — это инструмент. Инструмент вы выбираете для работы. А архитектуру и проект для своей конечной цели. Язык — это инструмент. Вот и всё. Говорить, что язык не корпоративный всё равно что сказать: «молотком нельзя строить небоскрёб, потому что им строят дома». Я слышал немало заблуждений в духе MBA (степень магистра в менеджменте) вроде: « PHP годится разве что для семейного бизнеса». Нет. Слабый проект сгодится для семейного бизнеса. PHP отлично работает в умелых руках того кто знает как проектировать корпоративные решения. У PHP нет ограничений, которые препятствуют этому, а в случае с веб — у PHP есть много преимуществ перед другими языками.
Если вы сосредоточитесь на инструментах, вместо архитектуры — это закончится тем, что вы будете забивать гвозди тараном (Java), когда молоток (PHP) был бы более уместным. Также, вы быстро потеряете деньги, инвестируя в инструменты и персонал, которые не нужны. Если вы хотите построить небоскреб, то проектируйте небоскреб. Сильные корпоративные решения зависят от хорошей архитектуры и проектирования, а не конкретного языка.
Будьте проще. Что бы вывести бизнес идею на рынок, вам нужно простое, быстрое и недорогое решение, которое будет работать сейчас и масштабироваться позже. Лишнее может навредить и привести к плачевным результатам. Если у вас не будет сайта размером с Amazon буквально в тот момент, когда вы только начинаете, то лучшим решением будет сильная архитектура и PHP (или аналог) в среде LAMP, а не чудовищное раздутое решение Java Enterprise.
Учитывайте масштабируемость, но масштабируйте позже. Не слушайте, если вам советуют сразу начать использовать инструменты, которые понадобятся, когда вы дорастете до масштабов Amazon или Facebook (оба кстати широко используют PHP и похожие языки). Что вам нужно сейчас, так это хорошее проектирование, простота и недорогие инструменты. Если вы все сделаете правильно при проектировании, то легко масштабируетесь позже. Facebook запускали на PHP, и он до сих пор его использует, и похоже, что всё превосходно масштабируется. Wikipedia тоже на PHP, и с этим у них тоже все в порядке.
Необходимые действия для учредителей и предпринимателей, без технических навыков, запускающих веб-бизнес…