Java, Python czy Ruby dla aplikacji webowych? [zamknięte]

Gdybym miał dziś zaimplementować aplikację internetową od zera, do której aplikacji powinienem się wybrać? Trzech głównych kandydatów to java, python i Ruby on Rails (RoR). Jest też. NET, ale jest stronniczy w stosunku do 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-python:

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.

Ogólnie rzecz biorąc, nie ma dużego wyboru pomiędzy Pythonem / RoR. Muszę dokonać wyboru pomiędzy Javą a Pythonem. Trochę popieram Javę, bo jest to język pisany, ale mój dobry przyjaciel faworyzuje python, ponieważ jest bardziej zwięzły. Czy thick java books oznacza, że jego rozwiązania są bardziej wszechstronne(a sam muszę pisać mniejszy kod)?

Author: Mansfield, 2009-01-14

8 answers

Wybierz, który jest ci znany i uruchom go.

LUB możesz wybrać Django na Jython , Aby uzyskać najlepsze biblioteki Javy i szybkie kodowanie Pythona.

Lub wybierz Javę, jeśli chcesz kogoś przekonać, że jest to enterprise-y.

Powiedziałbym, że jeśli pracujesz sam / w małym zespole, to po prostu wybierz ten, który wymaga najmniej zasobów (podpowiedź: Python).

 21
Author: Swaroop C H,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-01-14 07:53:43

Tło: jestem profesjonalnym programistą Javy, który robi Django na boku.

Java

Java jest używana głównie w przedsiębiorstwie i są ku temu bardzo dobre powody. Java jest dobrym rozwiązaniem, jeśli potrzebujesz języka dojrzałego, ma dobrą obsługę współbieżności, transakcji, dostępu do wielu baz danych ... Java jest również bardzo stabilną platformą. A przez stable nie mam na myśli tego, że ma mniej błędów niż Python czy Ruby, chodzi mi o to, że nie zmienia się jak much.

Istnieje wspaniała obsługa narzędzi dla Javy. Świetne IDE, świetne narzędzia do refaktoryzacji, świetne narzędzia do analizy statycznej ... Prawdopodobnie nie znajdziesz tak wielu narzędzi tej jakości dla każdego innego języka.

Jest wiele powolnych aplikacji Java, ale moim zdaniem pochodzi to bardziej od programistów, którzy używają architektury, której nie rozumieją, starając się robić rzeczy bardziej skomplikowane niż muszą. Możesz tworzyć wydajne, bardzo szybkie strony internetowe z Java.

Django

Django jest bardziej lekki, przyjemniejszy w pracy. Aplikacja może być uruchomiona w bardzo krótkim czasie. Interfejs administratora jest magiczny dla prostej operacji CRUD i może być używany nawet do dość skomplikowanej logiki. Możesz znaleźć wiele "aplikacji wielokrotnego użytku", które zaimplementują niektóre funkcje, których potrzebujesz.

Nawet jeśli Django jest teraz w wersji 1.0, nie jest stabilne. Jeśli chcesz nadal rozwijać swój projekt w ciągu 1-2 lat, możesz spodziewać się wielu zmian po prostu po stanie Django.

Wniosek

Użyj Javy, jeśli już ją znasz i jeśli masz potrzeby w zakresie skomplikowanej architektury i długoterminowego wsparcia.

Użyj Django (lub RoR), jeśli chcesz szybkiego rozwoju i nie obchodzi cię, czy musisz przepisać wiele aplikacji w ciągu 1-2 lat.

 25
Author: Guillaume,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-01-14 08:13:56

Anty-Java:

  • gadatliwy, czasem uciążliwy
  • kiepski wybór dla skryptów szablonowych (można go złagodzić za pomocą drugorzędnego języka skryptowego, takiego jak Groovy, Jython itp.)

Anty-Python:

    [3]}brak konkretnego standardowego frameworka, musi badać i wybierać (lub po prostu używać samodzielnych modułów narzędziowych na szczycie WSGI)
  • wciąż stosunkowo ograniczone opcje hostingu (inne niż GAE lub własny Serwer)

Anty-RoR:

  • NO native Unicode w nowoczesnym języku skryptowym? Dla wstydu
  • potencjalne problemy ze skalowaniem wydajności

Osobiście skończyłem z Pythonem, ale wszystkie te opcje - podobnie jak. Net-są łatwe do obrony.

 12
Author: bobince,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-01-14 08:11:02

Polecam Javę i Spring framework-rozwiązuje on wszystkie obciążenia typowej aplikacji internetowej Javy i zapewnia jasny sposób na uzyskanie tego, czego chcesz.

Ja osobiście używam Hibernate - JPA - Spring framework (lub Spring Web Flow) - Tiles-Freemarker stos, który daje mi możliwość tworzenia nowych aplikacji internetowych dość szybko, ale ogólnie narzucają raczej stromą krzywą uczenia się.

Sugerowałbym-po prostu spróbuj Spring na początek.

 10
Author: miceuz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-09-06 23:06:18

Czy Twoja aplikacja jest głównie prezentacją, bazą danych (konserwacją typu CRUD) lub wieloma logikami zaplecza?

Dla większości prezentacji wybrałbym Python / Django (a nawet php).

For simple CRUD RoR has it licked.

Dla wszystkiego z ciężką logiką back-end, lub, który wykorzystuje istniejącą starszą bazę danych chciałbym przejść do serwletów java używając Spring z Freemarker, Ibatis i Tomcat lub Jetty.

P. S. nie martw się o wydajność skalowalności - nic też się nie skaluje jako rozwiązanie Tomcat / java.

 6
Author: James Anderson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-10 12:43:14

Jeśli nie jesteś w sklepie Java/. NET lub nie ma konkretnego powodu, dla którego używasz Java/. NET, sugerowałbym jedną z platform bardziej zoptymalizowanych pod kątem tworzenia stron internetowych: Python / Django (lub Ruby/Rails, PHP/CodeIgniter/Cake).

Znajdziesz Python/Ruby/PHP o wiele łatwiejsze do nauczenia się, wdrożenia, programowania itp. Istnieje wiele literatury na ich temat i mnóstwo zasobów wsparcia. Wszystkie zostały wykorzystane do produkcji głównych stron internetowych (YouTube na Pythonie, Twitter na Ruby, Facebook na PHP).

 4
Author: pbreitenbach,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-15 02:51:08

Jeśli ma być w produkcji, Użyj technologii, którą znasz najlepiej obecnie. Uczenie się nowego frameworka, języka lub technologii może powodować opóźnienia i na początku jakość kodu będzie niższa.

 2
Author: wvb,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-01-14 07:54:11

Kiedyś byłem programistą Javy, teraz zajmuję się głównie C#. Moim argumentem przeciwko Javie jest to, że jest (a przynajmniej było) prawdziwym bólem, aby skonfigurować i uruchomić. Jest również lepiej dostosowany do dużych aplikacji, które wymagają dużej organizacji i konserwacji. To jednak ma swoją cenę.

Z dźwięków Twojego postu, myślę, że jeden z języków dynamicznych byłby bardziej odpowiedni. Poza tym są fajniejsze do zabawy (IMHO).

 1
Author: Travis,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-01-14 09:54:04