Подтвердить что ты не робот

Java или Python или Ruby для веб-приложений?

Если бы я сегодня должен был реализовать веб-приложение с нуля, в какой стек приложения я должен идти? Три основных кандидата: java, python и Ruby on Rails (RoR). Существует также .NET, но он предвзято относится к M $.

Pro-Java:

1) Stacks of thick books
2) Largest developer community
3) Typed languages, which prevents subtle bugs
4) Augmented with groovy interpreted language

Pro-питон:

1) Concise code
2) Thin books
3) Can launch web app for free on Google Apps

Pro-RoR:

1) Concise code
2) Thin books
3) Ruby may be slightly better programming language than python, but they are converging.

В целом, между python/RoR выбора не существует. Выбор, который я должен сделать, - это между Java и Python. Я немного одобряю Java, потому что это типизированный язык, но мой хороший друг предпочитает питон, потому что он более краток. Разве толстые java-книги означают, что его решения более полны (и я сам должен писать меньший код)?

4b9b3361

Ответ 1

Выберите, который вам знаком и запустите с ним.

Или вы можете выбрать Django on Jython, чтобы получить лучшие из библиотек Java и скоростного кодирования Python.

Или выберите Java, если вам нужно убедить кого-то в том, что это enterprise-y.

Я бы сказал, что если вы работаете в одиночку/в небольшой команде, просто выберите тот, который требует наименьших ресурсов (подсказка: Python).

Ответ 2

Фон: Я профессиональный разработчик Java, который делает Django на стороне.

Java

Java используется в основном на предприятии, и для этого есть веские причины. Java - хорошее решение, если вам нужен язык, который является зрелым, имеет хорошую поддержку для concurrency, транзакций, доступа к нескольким базам данных... Java также является очень стабильной платформой. И стабильный, я не имею в виду, что он имеет меньше ошибок, чем Python или Ruby, я имею в виду, что он не меняется так сильно.

Есть замечательная поддержка инструментов для Java. Отличная среда разработки, отличные инструменты рефакторинга, отличные инструменты статического анализа... Вероятно, вы не найдете столько инструментов такого качества для любого другого языка.

Есть много медленных приложений Java, но, на мой взгляд, это больше от разработчиков, использующих архитектуру, которую они не понимают, пытаясь сделать что-то более сложное, чем нужно. Вы можете создавать высокопроизводительные, очень быстрые сайты с Java.

Джанго

Django - это более легкий вес, больше удовольствия для работы. Вы можете запустить приложение за очень короткое время. Интерфейс администратора является волшебным для простой операции CRUD и может использоваться даже для довольно сложной логики. Вы можете найти множество "повторно используемых приложений", которые будут выполнять некоторые из необходимых вам функций.

Даже если Django теперь находится в версии 1.0, он далеко не стабилен. Если вам нужно продолжать разработку своего проекта через 1-2 года, вы можете ожидать много изменений, чтобы следить за состоянием Django.

Заключение

Используйте Java, если вы уже знаете это, и если у вас есть потребность в сложной архитектуре и долгосрочной поддержке.

Используйте Django (или RoR), если вы хотите быстро развиваться и не заботитесь, если вам нужно переписать много приложений через 1-2 года.

Ответ 3

Анти-Java:

  • многословный, иногда громоздкий
  • плохой выбор для сценариев шаблонов (может быть смягчен с использованием вторичного языка сценариев, такого как Groovy, Jython и т.д.)

Анти-Python:

  • нет стандартной стандартной структуры, необходимо исследовать и выбирать (или просто использовать автономные служебные модули поверх WSGI).
  • все еще относительно ограниченные варианты хостинга (кроме GAE или собственного сервера)

Анти-RoR:

  • нет родного Unicode, на современном языке веб-скриптов? Для стыда
  • потенциальные проблемы масштабирования производительности.

Лично я попал в Python, но все эти параметры, а также .NET - легко защищаются.

Ответ 4

Я бы рекомендовал Java и Spring framework - он решает все бремя типичного веб-приложения Java и предоставляет вам четкий способ получить то, что вы хотите.

Я лично использую Hibernate - JPA - Spring framework (или Spring Web Flow) - Tiles - Freemarker, который дает мне возможность создавать новые веб-приложения довольно быстро, но в целом они налагают довольно крутую кривую обучения.

Я бы предложил - просто дайте Spring попытку начать.

Ответ 5

Является ли ваше приложение главным образом презентацией, базой данных (обслуживание типа CRUD) или большим количеством логики?

Для большей части представления я бы пошел Python/Django (или даже php).

Для простого CRUD RoR он облизал.

Для чего-либо с тяжелой логикой заднего плана или, которая использует существующую устаревшую базу данных, я бы пошел на сервлеты Java, используя Spring с Freemarker, Ibatis и Tomcat или Jetty.

P.S. Не беспокойтесь о производительности масштабирования - ничто не будет масштабироваться, а также решение Tomcat/java.

Ответ 6

Если вы не находитесь в магазине Java/.net, или существует определенная причина, почему вы будете использовать Java/.net, я бы предложил одну из платформ, которая более оптимизирована для веб-разработки: Python/Django (или Ruby/Rails, PHP/CodeIgniter/Cake).

Вы найдете Python/Ruby/PHP намного проще в освоении, развертывании, программе и т.д. Существует много литературы о них и много ресурсов поддержки. Все они были использованы для создания основных веб-сайтов (YouTube на Python, Twitter на Ruby, Facebook на PHP).

Ответ 7

Если он собирается быть в производстве, используйте технологию, которую вы знаете в настоящее время. Изучение новой структуры, языка или технологии может привести к задержкам, и в начале качество кода будет ниже.

Ответ 8

Раньше я был разработчиком Java, теперь занимаюсь главным образом С#. Мои аргументы против Java заключаются в том, что это (или, по крайней мере, было) реальная боль, чтобы настроить и запустить. Он также лучше подходит для крупных приложений, которые нуждаются в большой организации и ремонтопригодности. Это, однако, стоит дорого.

Из звуков вашего сообщения я думаю, что один из динамических языков лучше подходит. Кроме того, им интересно играть (IMHO).