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

    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).
    Ответ написан
    22 комментария
  • Чем отличаются языки программирования PHP, PYTHON, RUBY?

    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.
    Ответ написан
    10 комментариев
  • В чем выражается удобство разработки на ROR?

    kumaxim
    @kumaxim
    Web-программист
    Первое и самое главное - код Ruby значительно легче читать, в сравнении с тем же PHР
    Второе - в Ruby все, вообще все, являются объектами, отсюда продвинутый полиформизм.
    Третье - часть паттернов GoF уже реализованы на уровне языка, например те же процедуры(proc) и лямбды(паттерн Template Method, если именно для них)

    А далее есть очень много мелочей, которые позволяют просто быстрее читать код. Из примеров "if(a !== b) { ... }" против "unless a == b { ... } " Первый фрагмент на php, второй - ruby. Делают они одно и тоже - выполняют операцию, если "а" не равно "b", но второй случай читается легче, на мой взгляд. И таких мелочей в языке очень много...

    Курс по Ruby есть на CodeAcademy, как я считаю весьма неплохой. Для ознакомления языком подойдет. Мне хватило его, чтобы полюбить Ruby. В сравнении с PHP я считаю что Ruby более удобен и отдаю ему предпочтение.
    Ответ написан
    2 комментария
  • Как найти значения в огромном массиве?

    @tadex
    XOR через весь массив - на выходе будет одинокий элемент
    Ответ написан
    7 комментариев