Какие языки будут хорошей заменой для Java? - PullRequest
3 голосов
/ 17 августа 2010

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

Я также свободно владею C # / VB.NET, но я ищу что-то более похожее на:

  1. Открытый исходный код
  2. Составлено
  3. Cross-Platform
  4. Объектно-ориентированный
  5. Большая стандартная библиотека
  6. Обширная документация
  7. Веб-разработка - главный плюс

Я думал о компромиссе: Python / Django для веб-разработки (или PHP) и Qt для разработки толстых клиентов. Кто-нибудь с лучшими мыслями?

Ответы [ 10 ]

14 голосов
/ 17 августа 2010

Не так давно я решил исследовать вдали от JVM.Я ступил на питона, и хотя я далеко не на уровне экспертов / гуру, я не жалею об этом.Не выбрал C # (рассматривал это), потому что я считаю, что это больше того же самого.Я уже знаю (и очень люблю) C ++, поэтому python казался чем-то новым, что я и искал.

Он удовлетворяет многие ваши требования.В частности, я решил не изучать PHP, поэтому веб-фреймворки в python были великолепны.

Не говоря уже о том, что у Python большое сообщество (см. Также здесь ), всегда готов помочь и научить, что я считаю очень важным.

Только мои два цента.

6 голосов
/ 17 августа 2010

Может быть стоит обратить внимание на другие языки JVM - Clojure и Scala - два, которые я лично считаю наиболее перспективными.

Да, вы работаете в JVM, но вы довольно независимы от языка Java и не должны использовать какие-либо реализации Sun / Oracle, если не хотите.

Сказав это - я думаю, что вы слишком сильно беспокоитесь о Java, слишком много игроков (включая Oracle!) Слишком много вложили, чтобы отпустить это слишком далеко от курса.

3 голосов
/ 17 августа 2010

Попробуйте Скала .Это выглядит чрезвычайно элегантно и перспективно.Быть объектно-ориентированным и очень кратко делиться с Java.

2 голосов
/ 18 августа 2010

Вы можете попробовать D. Мое описание, состоящее из одного предложения о том, почему это замечательный язык, состоит в том, что его универсальные средства программирования / самоанализа во время компиляции / шаблонного метапрограммирования достаточно хороши, чтобы предоставить вам почти гибкость языка с утиной типизацией, в то время как его Скорость выполнения и статическая проверка типов соперника или превышают C ++ и C #.

Я думаю, что он вполне соответствует вашим требованиям.

  • Открытый исходный код. Интерфейсом эталонной реализации DMD является открытый исходный код (внутренний компонент не из-за ограничений, неподконтрольных автору). Ведется работа по связыванию эталонного интерфейса с бэкэндами с открытым исходным кодом, такими как LLVM (LDC) и GCC (GDC). В случае D1 (более старой версии языка) порт LLVM является достаточно зрелым.
  • Скомпилировано: D предназначено для компиляции с собственным машинным кодом, то есть необработанными, непостижимыми шестнадцатеричными числами.
  • Кроссплатформенность: эталонный DMD-компилятор поддерживает Windows x86, Linux, Mac OS X и FreeBSD. GDC и LDC, вероятно, будут поддерживать гораздо больше архитектур ЦП.
  • Объектно-ориентированный: D не является "чистым" ОО-языком в смысле Ruby, когда все является объектом, или в смысле Java не поддерживает какую-либо другую парадигму. Однако он полностью поддерживает ОО в стиле Java как подмножество языка, наряду с процедурным и функциональным стилем программирования.
  • Большая стандартная библиотека: в D1 есть танго, которое соответствует требованиям. У D2 есть Phobos, который еще не "большой" по современным стандартам, но больше, чем стандартная библиотека C или C ++. Тем не менее, в последнее время был большой интерес к участию, и Андрей Александреску (его главный дизайнер) принял несколько новых участников, включая меня.
  • Обширная документация: стандартная библиотека и язык достаточно хорошо документированы на веб-сайте Digital Mars. Также есть книга Андрея Александреску "Язык программирования D" .
  • Веб-разработка: это признанная слабость. У D (пока) нет хорошего веб-фреймворка, хотя его встроенная поддержка юникода и отличная универсальная поддержка программирования должны сделать его написание относительно простым.
2 голосов
/ 17 августа 2010

Все, что вы сказали, указывает на C #, за исключением точки с открытым исходным кодом.

Чтобы исправить это, есть Mono .

1 голос
/ 18 августа 2010

Я пока не могу оставлять комментарии, поэтому я публикую ответ, связанный с обсуждением на Python.Хотя Python не скомпилирован в машинный код, есть компилятор Python-to-C под названием Cython , который может скомпилировать почти все допустимые Python - замыкания наконец (!) В последней версии разработки.Это оказывает большое влияние на некоторые части сообщества Python, например, я недавно был в Euroscipy, и более половины переговоров упоминали Cython.

1 голос
/ 17 августа 2010

Я бы тоже хотел, чтобы появилась другая Java-подобная технология.В последнее время я делаю Flex / Actionscript.В то время как я действительно наслаждаюсь этим, технологии Actionscript серьезно не хватает элегантности, которой обладает Java.Adobe может написать несколько хороших кроссплатформенных API, но у них просто нет головного капитала для создания элегантных языков и компиляторов.Я также пробовал Ruby, но виртуальная машина для Ruby действительно плохая.Я вернулся к Java после флирта с другими технологиями, и я думаю, что это потому, что язык достаточно хорош, но JVM на сегодняшний день является лучшим.

Так что вы хотите остаться с JVMили ты действительно хочешь вообще покинуть JVM?В JVM есть много вариантов: JRuby, Scala, Groovy, Javascript, Clojure - крупные игроки.Тем не менее, существует множество замечательных языков, которые могут воспользоваться функциями JVM.

Покидая JVM, все еще есть хорошие варианты, такие как python, ruby ​​и erlang.Но вы отказываетесь от некоторых приятных функций JVM, таких как производительность (большая) и возможность перейти на хороший язык, такой как Java, если вам нужна скорость.Эти другие подразумевают использование C или вообще ничего.

Я наконец перестал беспокоиться о будущем Java.Сун сделал все возможное, чтобы все испортить, и все оказалось чертовски хорошо.Я думаю, что Opensource имеет гораздо большее влияние на успех Java, чем когда-либо могли бы Oracle или Sun.

0 голосов
/ 21 сентября 2010

Используя также Cython, вы получаете лучшее из двух миров, способность кодировать на python, способность кодировать на C и C ++ и, конечно, компилировать свой код и возможность использовать обе библиотеки python ac / c ++ изкоробка.И если вам не нравится синтаксис C ++, синтаксис Cython - это синтаксис Python и многое другое.

текст ссылки

0 голосов
/ 18 августа 2010

C # - это единственное, что удовлетворит ваши потребности и не будет безнадежно архаичным или разочарованным в ограниченной библиотеке.Для открытого источника / не Windows, используйте моно.Это хорошая, зрелая реализация большинства того, что важно в CLR.

Некоторые вещи (WPF, WCF и т. Д.) «Отсутствуют» в моно, но это не столько часть платформы, сколько собственные проприетарные инструментарии для Windows.Некоторые из них реализуются медленно в моно, некоторые нет.Исходя из java, вы не пропустите их, потому что вы ищете платформу и хорошие стандартные библиотеки для построения, а не набор инструментов для графического интерфейса или коммуникационную среду whiz-bang.с «подобным» java и схожим уровнем функциональности, C # + CLR - самый понятный вариант.

0 голосов
/ 18 августа 2010

Мне лично не нравится PHP, но он отвечает всем вашим требованиям. Официально он не поддерживает компиляцию, но есть проект Hip Hop , который компилирует PHP в C-код. Facebook в настоящее время возглавляет этот проект.

Тем не менее, я настоятельно не рекомендую вам использовать его:)

...