Чем отличаются языки программирования PHP, PYTHON, RUBY?

Чем отличаются языки программирования такие как PHP, PYTHON, RUBY (может ещё есть какие популярные, но я ток про эти много слышал).

1. Можно ли провести с ними аналогию на автомобили, например джип для бездорожья, спорткар для автобана и т.п. языки так же? Если да то какой для чего?
Например делать социальную сеть по типу ВК можно на любом языке или нет. Или функционал сбербанк онлайн.

2. Для пользователя будет ли видна какая то разница внешне на чём(на каком языке) сделан сервис?

3. Может на каком то языке есть такое что на другом не сделать. Может кто знает примеры того что можно сделать на Ruby и нельзя на пхп и наоборот или с другими языками.

4. Если предположить, что человек знает все 3 языка, то исходя из каких мыслей он будет делать что то выбирая определённый язык - время, деньги, личные предпочтения или это вытекает из поставленной задачи(если каждый язык для чего то определённого).

5. Если взять все знания каждого языка, то как они будут располагаться по лесенке. Например - php 3 года изучения, Ruby 5 лет изучения, с++ 10 лет обучения.
  • Вопрос задан
  • 21304 просмотра
Пригласить эксперта
Ответы на вопрос 9
1. Аналогию с самими языками проводить не стоит. Аналогию стоит провести для платформ.
Платформы вроде .net и java, которые разрабатывались для энтерпрайза, разумеется лучше для него подходят. И не важно даже, десктопное у вас приложение или веб-сервис. Важно, что в платформе есть поддержка нужных стандартов и технологий с гарантией качества от производителя.
С другой стороны, многие компоненты таких платформ это closed-source. Поэтому, если вы не банк, а стартап, то для веб-сервиса выбирайте
Ruby или Python.
Социальную сеть можно сделать много на чем, но я бы делал на рельсах или джанге. А вот функционал сбербанк-онлайн я бы делал на ASP.NET MVC (т.е. на C#) или на джаве (на спринге например). Однако, тот же близзовский battle.net написан на спринге (сервер когда-то случайно отдал мне stack-trace после ошибки).

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

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

3. На PHP много чего нельзя сделать. Вернее, КАК БЫ можно все, но нормально можно только веб. Именно поэтому для меня он не язык, а какой-то шаблонизатор - слишком у него дурная история и связь с веб (что нехорошо для языка общего назначения). Конечно, современные веб-фреймворки его очень хорошо причесывают, что даже можно работать с ним, но мы же о языках говорим..

4. Для веб-проектов между Ruby, Python и PHP человек бы выбирал исходя из своих умений. У каждого языка своя экосистема (библиотеки, пакетные менеджеры, серверы приложений/плагины для веб-сервера) и довольно непросто знать все сразу. Именно поэтому все расходятся по своим лагерям и просто работают. Первичный выбор языка часто определяет его популярность. Лет 5 назад Руби всех рвал за счет Рельсов, сегодня Питон и PHP подтянулись в плане экосистемы, поэтому ситуация уже другая.
Если человек таки сумел познакомиться с разными языками, он выберет тот, в котором ему проще мыслить. Модель ООП, статическая/динамическая типизация - все это определяет ощущения КОНКРЕТНОГО человека от КОНКРЕТНОГО языка.

5. PHP учится быстрее всех, но если вы не знаете других нормальных языков, лучше его не учите - испортитесь как программист. Python и Ruby учатся примерно одинаково. Изучение C++ - совсем другая история, я бы не ставил его в один ряд с Питоном - этот язык несколько другого уровня и требует других (более глубоких) знаний о вычислительной технике (т.е. он 100% учится дольше, чем Python).
Ответ написан
leahch
@leahch
3D специалист. Dолго, Dорого, Dерьмово.
Еще есть java, go - они тоже очень популярны.

И на том и на том пишутся замечательные вещи!

Go очень просто использовать - практически как замена C/C++, только более быстр в разработке. Сильно набирает популярность, достаточно низкоуровневый, чтобы на нем писать системные утилиты и большие распределенные системы. У него есть минусы (дебаггер например), но и плюсов очень много (дебаггер редко нужен).

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

Что касается PHP - изначально язык создавался для простых проектов для WEB, как замена CGI, но вроде бы как вырос, появились объекты... Но, дальше WEB он не развивается.

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

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

Сам программирую на Python, C, Java, PHP.
Относительно неплохо разбираюсь в Ruby и Go, на уровне влесть в чужой проект и поправить ошибку.

Мои фавориты - Java, Python. Присматриваюсь к Go.
Ответ написан
@YuriyIvanov
1. PHP, Ruby on rail - это языки для серверной части веб сайтов. Python чаще всего используют как скриптовый язык. Если речь о выборе языка для сайтов - начните с php - он самый популярный. А дальше уже все будет зависить от личных предпочтений. Кому-то нравится mvc у руби, кому-то .net. С авто сравнивать не стоит. Любой проект можно реализовать на любом языке.

2. Можно сделать так чтоб разница видна не была.

3. На всех можно сделать все.

4. Зависит от задачи. Если это веб - будет писать на любимом языке для веба.

5. Любой язык можно базово освоить за месяц - два. Дальше зависит от усердия и желания развиваться.
Ответ написан
Jump
@Jump
Системный администратор со стажем.
1. Можно ли провести с ними аналогию на автомобили, например джип для бездорожья, спорткар для автобана и т.п. языки так же? Если да то какой для чего?
Можно. На большинстве авто можно съездить и в лес, и в супермаркет, и на работу. А для некоторого бездорожья джип не поможет, и нужен снегоход, или болотоход. Есть языки заточенные именно под одну сферу применения. Можно конечно ездить на снегоходе летом в супермаркет, но это довольно затруднительно.
Каждый язык имеет свои характеристики, причем некоторые характеристики являются одновременно и недостатками и достоинствами. И под задачу выбирается язык исходя из нужных характеристик.

2. Для пользователя будет ли видна какая то разница внешне на чём(на каком языке) сделан сервис?
В большинстве случаев нет.

3. Может на каком то языке есть такое что на другом не сделать. Может кто знает примеры того что можно сделать на Рибу и нельзя на пхп и наоборот или с другими языками.
Бывает и такое.
Попытайтесь написать на руби или на пхп драйвер видеокарты или ОС.

4. Если предположить, что человек знает все 3 языка, то исходя из каких мыслей он будет делать что то выбирая определённый язык - время, деньги, личные предпочтения или это вытекает из поставленной задачи(если каждый язык для чего то определённого).
Из всех сразу. Во первых не на всех языках задачу можно реализовать, Во вторых насколько это будет быстро и удобно, В третьих насколько программа будет быстро работать и где она сможет работать. В четвертых кто ее потом будет поддерживать. И.т.д.


5. Если взять все знания каждого языка, то как они будут располагаться по лесенке. Например - php 3 года изучения, рибу 5 лет изучения, с++ 10 лет обучения.
Любой язык - за месяц, основы.
А дальше - до бесконечности. Ну и от человека зависит, не каждый вообще склонен к программированию, а если и склонен, какие то языки конкретному человеку будут труднее даваться.
Ответ написан
Комментировать
Freika
@Freika
Senior Ruby on Rails developer
Если говорить о различиях PHP, Ruby и Python, то в первую очередь, различия в синтаксисе. Если у Ruby и Python синтаксис более аккуратный и читабельный, то PHP тут самый некрасивый.

Далее, Ruby полностью объектно-ориентированный язык. PHP - нет, имплементация ООП в нем есть, но она все же не так хороша, как в Ruby (За Питон тут точно не могу сказать, не интересовался).

Комьюнити. У PHP комьюнити большое за счет минимального порога входа (русскоязычное обычно ограничивается посылом в документацию, возможно мой опыт в этом вопросе устарел). У Ruby русскоязычное комьюнити небольшое, но отзывчивое. Англоязычное вообще отличное. Про Питон, опять же, сказать не могу.

Важный момент: на Python вы сможете писать веб-приложения, серверные и десктопные приложения под разные ОС. На Ruby вы сможете писать веб-приложения и серверные приложения. С десктопом здесь похуже. На PHP вы не сможете даже демона написать для своего веб-приложения, потому что веб - это единственная сфера применения PHP. Принимались попытки приспособить его и под другие цели, но пока из этого ничего путевого не вышло.
Ответ написан
MetaDone
@MetaDone
Хорошо сформулированный вопрос - 50% решения
1. Если приводить аналогию с автомобилями, то php - это моторная лодка. Вы конечно можете поизвращаться и ездить по дороге на этой лодке, но зачем? Лодка нужна для плавания по воде, вот там на ней хорошо.
А питон и руби - это такие пикапы, в багажнике у которых тоже есть лодки (рельсы, джанго и т.п.)
И когда вам нужно пересечь водную местность, то нужно вылезти из пикапа и пересесть на лодку.
2.Если все нормально сделано, но нет.
3.В php нет легкой реализации OpenCV, в питоне есть, но задача не очень распространенная, в большинстве случаев в вебе с такими ограничениями не столкнетесь
4.Скорее всего тот, который лучше знает. Но и задача вносит свои коррективы - мне к примеру удобнее писать для Selenium web-driver на питоне, хотя и реализация на php тоже есть.
5.Зависит от человека и того, что он уже знает и общих способностей к построению сложных абстракций. Если человек не сможет продумать более-менее сложные алгоритмы - то соответственно и обучаться будет куда дольше, а может ничего сложнее скриптов на bash так и не реализует
Ответ написан
Комментировать
@asd111
Сайт можно написать на любом из данных языков.
Проще всего на Ruby/Rails и Python/Django.
В python очень много крутых библиотек, которых нет для php и ruby - например tensor flow(библиотека от google для нейронных сетей) пока есть только под С++ и python.
Синтаксис python проще чем ruby и php.
Python используют yandex, google и др.
Ответ написан
Комментировать
makrushin-evgenii
@makrushin-evgenii
Школьник
Лично у меня опыта на всех трёх языках нет, но вопросы кажутся очевидными, а потому и решил отписаться.
1. Можно ли провести с ними аналогию на автомобили, например джип для бездорожья, спорткар для автобана и т.п. языки так же? Если да то какой для чего?

python - внедорожник. Это язык общего назначения, поддерживает несколько парадигм программирования. Помимо богатой стандартной библиотеки есть тысячи библиотек. Просто нет задачи, с которой он не справился бы.
ruby - дорогой спорткар. На рельсах очень высокая скорость разработки.
php - надежный спецтранспорт. Имеет очень хорошую документацию и двадцать лет частовстречаемых вопросов. Только нигде кроме веба не используется.
2. Для пользователя будет ли видна какая то разница внешне на чём(на каком языке) сделан сервис?

Не будет. Но если пользователь будет не один, а допустим миллион, то разница между Ruby и Erlang(Elexir) станет очевидной.
3. Может на каком то языке есть такое что на другом не сделать. Может кто знает примеры того что можно сделать на Ruby и нельзя на пхп и наоборот или с другими языками.

На python можно "a, b = b, a", лол
А сайты даже на FASM делали (но зачем?)

4. Если предположить, что человек знает все 3 языка, то исходя из каких мыслей он будет делать что то выбирая определённый язык - время, деньги, личные предпочтения или это вытекает из поставленной задачи(если каждый язык для чего то определённого).

Это вытекает из поставленной задачи.
5. Если взять все знания каждого языка, то как они будут располагаться по лесенке. Например - php 3 года изучения, рибу 5 лет изучения, с++ 10 лет обучения.

m.forbes.ru/article.php?id=7255
Ответ написан
Комментировать
aPilot
@aPilot Автор вопроса
В итоге - сайты можно делать на любом языке, но не буду же я изучать все или нанимать разных разработчиков.

На чём же всё таки остановится???

В основном в сети 3 вида сайтов - магазин, сервис, статьи.

Так какой язык выбрать для всего или какие для всех???

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

PHP более распространён и найти разработчиков соответственно проще, да и подойдёт если сайтик не большой типа визитка компании.

Рибу - а зачем? если есть Питон...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы