Насколько Подобный Java, C# и Python? [закрытый]

6
задан Alex 7 June 2010 в 17:07
поделиться

10 ответов

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

Java и C # выглядят одинаково, но между ними есть различия под листами. Если вы эксперт в одном, вы не станете экспертом в другом ни при каких обстоятельствах. Синтаксис похож, и библиотеки тоже, поэтому было бы легче освоить один или другой, но есть тонкости, которые могут сбить вас с толку.

11
ответ дан 8 December 2019 в 02:34
поделиться

Они совсем не похожи. Все они используют разные подходы к ООП, синтаксису и статической / динамической типизации.

-2
ответ дан 8 December 2019 в 02:34
поделиться

C# и Java имеют почти идентичный синтаксис и очень похожие библиотеки. Есть различия, о которых вы должны знать (например, Type Erasure в Java).

Python - это совершенно другое животное. Это динамический язык (в отличие от двух других). По стилю Python ближе к Ruby.

7
ответ дан 8 December 2019 в 02:34
поделиться

Java и C # являются языками со статической типизацией, а Python это язык с динамической типизацией. Это огромная разница.

Синтаксис Java и C # похож (но я бы не назвал его «почти идентичным», как говорит Джастин Нисснер).

2
ответ дан 8 December 2019 в 02:34
поделиться

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

Библиотека классов C# (.NET Framework) теоретически является многоплатформенной, хотя она в значительной степени ориентирована на платформу Windows, а совместимость с другими ОС в значительной степени является второстепенной. В настоящее время .NET Framework имеет два "официальных" фреймворка для создания оконных приложений (Windows Forms и WPF) и два "официальных" фреймворка для создания веб-приложений (ASP.NET и ASP.NET MVC). Windows Forms похож на Java Swing, но остальные четыре фреймворка сильно отличаются от многого из того, что есть в мире Java или Python. В C# есть много языковых особенностей, которые отличаются или отсутствуют в Java, например, делегаты.

Библиотека классов Java довольно прочная и многоплатформенная. Официально поддерживаемые ею настольные и веб-фреймворки (Swing и J2EE) обычно считаются медленными и сложными в использовании. Однако существует очень активное сообщество разработчиков с открытым исходным кодом, которое создало несколько конкурирующих фреймворков, очень мощных и универсальных. Java как язык очень медленно вводит новые возможности языка, хотя он совместим по времени выполнения с несколькими другими языками, которые работают на платформе Java (Groovy, Jython, Scala и т.д.). Java - это язык, который имеет наибольшее количество оптимизаций во время выполнения, поэтому приложение, написанное на Java, почти наверняка будет быстрее, чем приложение, написанное на C# или Python.

Python - интерпретируемый язык (в целом), и он достаточно многоплатформенный. У Python нет "официальных" настольных или веб-фреймворков, хотя настольные приложения могут быть написаны с использованием поддержки GTK или Qt, оба из которых являются многоплатформенными. Django стал стандартом де-факто для веб-разработки на Python и считается очень мощным и выразительным фреймворком. На данный момент Python полностью объектно-ориентирован и отличается мощными инструментами для работы с коллекциями/массивами/списками. Как интерпретируемый язык, Python будет значительно медленнее, чем C# или Java.

1
ответ дан 8 December 2019 в 02:34
поделиться

Java и C # очень похожи по синтаксису и в основном строго типизированы (C # становится более динамичным с каждой версией), Python - динамический язык

1
ответ дан 8 December 2019 в 02:34
поделиться

Java и C # очень похожи и синтаксически похожи на C / C ++. Они также используют фигурные скобки для обозначения блоков кода.

Python совершенно другой. Хотя Python является императивным, как Java и C #, Python использует отступы для определения блоков кода.

Java и C # также скомпилированы языков, в то время как Python является интерпретируемым и динамическим.

Python, Ruby и Groovy - несколько схожие языки.

1
ответ дан 8 December 2019 в 02:34
поделиться

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

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

Он также включает некоторые часто используемые вещи, встроенные в язык: списки, словари, множества, генераторы и т.д.

Java подходит для тех, кто знаком с синтаксисом C / C++ и придерживается своих взглядов, любит этот синтаксис и находит его читабельным. Ruby и Python - для тех, кто предпочитает Pascal или Smalltalk языку C, любит Lisp и т.д.

-1
ответ дан 8 December 2019 в 02:34
поделиться

Все:

  • Требуется некоторая форма времени выполнения на вашей системе (JVM/. net/Python)
  • Все они, вероятно, могут быть скомпилированы в исполняемые файлы без среды выполнения (это сомнительно и ситуативно, ни один из них не предназначен для работы таким образом)
  • Являются хорошими языками
  • У всех есть специфические области, где они подходят гораздо больше, чем два других

Java:

  • Очень старается быть кроссплатформенным - в целом удается
  • Мало доступа к возможностям платформы, которые не входят в SDK
  • Медленнее всех трех изменяется и не содержит функций, общих с двумя другими, таких как закрытие
  • Очень обратно совместим (частично из-за предыдущего пункта)
  • БЫСТРЫЙ (примерно в 2 раза медленнее, чем C, в несколько раз быстрее, чем python)
  • Возможно, имеет наибольшую библиотечную поддержку из трех
  • Сильные многоплатформенные серверные системы, уже развернутые с использованием J2EE
  • Масштабируется до встроенных (я работал над двумя различными встроенными java-проектами - скоро появится в кабельной сети рядом с вами)
  • Статический

C#

  • Быстрее добавлять новые функции
  • Только для Windows - Mono кроссплатформенный, но не имеет библиотечной поддержки.
  • Начинался очень похоже на Java, но сейчас имеет гораздо больше возможностей языка.
  • Гораздо лучший доступ к API windows
  • Не уверен насчет скорости - думаю, она схожа с Java.
  • Очень хорошая поддержка библиотек
  • Единственный из трех, за который нужно платить (для "начального уровня" он бесплатный)
  • Static

Python

  • Язык кроссплатформенный. Не уверен насчет доступа к неязыковым платформам (например, drag-and-drop) - кто-нибудь знает?
  • Возможно, более легкий в изучении
  • Единственный из трех языков, который не использует синтаксис, подобный си
  • Самый медленный из трех, но все же довольно быстрый по сравнению с другими динамическими языками.
  • Динамические

Эта ссылка также интересна

14
ответ дан 8 December 2019 в 02:34
поделиться

Между C # и Java легко перемещаться, хотя я не знаю многих людей, которые были бы экспертами в обоих направлениях. Синтаксис C # основан на Java, поэтому они читаются очень, очень похоже. Оба они работают на разных платформах; Java на JVM, C # на .NET или Mono. Они оба являются ООП и широко используются для веб-разработки. Я бы использовал то, с чем команда была более знакома.

Python там в стороне. Он также часто используется в качестве языка сценариев. Он может использовать классы и объектную ориентацию, но не вынужден. Это не так хорошо поддерживается для работы в Интернете. Я бы использовал это для другого набора задач, чем C # / Java.

1
ответ дан 8 December 2019 в 02:34
поделиться