Сетевое программирование: Python по сравнению с C для полного [закрытого] новичка

официальное предложение было сделано позволить статические методы в интерфейсах в Java 7. Это предложение вносится под Монета Проекта .

Мое личное мнение - то, что это - прекрасная идея. В реализации нет никакой технической трудности, и это - очень логическая, разумная вещь сделать. Существует несколько предложений в Монете Проекта, что я надеюсь, будет никогда , становятся частью языка Java, но это - то, которое могло очистить много API. Например, Collections класс имеет статические методы для управления любым List реализация; они могли быть включены в эти List интерфейс.

Обновление: В Подкаст Отряда Java № 234, Joe D'arcy упомянул предложение кратко, говоря, что это было "сложно" и вероятно не сделает его в под Монетой Проекта.

Обновление: , В то время как они не превращали его в Монету Проекта для Java 7, Java 8 действительно поддерживает статические функции в интерфейсах.

5
задан jfs 11 December 2009 в 23:46
поделиться

8 ответов

Просто используйте Python. У вас будет доступ к тем же API-интерфейсам низкоуровневых сокетов, что и в C, без необходимости одновременно узнавать о косвенном обращении и управлении памятью.

Позже, если вы обнаружите, что Python слишком медленный для ваших целей, вы можете переписать некоторые части на C. Но не делайте этого для начала.

15
ответ дан 18 December 2019 в 05:23
поделиться

Это зависит от того, какие цели для сетевого программирования у вас есть. Вам нужно будет провести некоторое тестирование, чтобы убедиться, но если производительность критична и в зависимости от нагрузки вы, возможно, захотите использовать C.

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

Поскольку вы новичок, вот несколько ссылок, которые могут вас заинтересовать:

И некоторые книги:

И просто для удовольствия, несколько комиксов по Python:

8
ответ дан 18 December 2019 в 05:23
поделиться

Двадцать лет назад, даже десять, вы не могли жить без этого.

Теперь многие живут.

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

Embedded часто использует C, но я ' Я работал над двумя встроенными платформами (анализатор формы сигнала и кабельная приставка), где я ничего не делал, кроме работы с Java.

Честно говоря, базовое понимание языка C полезно для написания драйверов и понимания указателей, но в наши дни вы можете легко справиться с этим. всю карьеру без необходимости в C. Я лично полностью пропустил бы C ++,

5
ответ дан 18 December 2019 в 05:23
поделиться

В зависимости от того, на каком уровне (-ах) сетевого стека вы хотите работать, C может быть незаменимым, полезным или вряд ли уместным. Но если попытка сначала заняться C изматывает вашу мотивацию, обязательно вернитесь к Python и получите некоторый успех и, следовательно, стимул - вы можете вернуться к C позже. Выучить сначала более легкий язык, а потом сложнее - это вполне естественный прогресс! MIT, например, использует Python для некоторых курсов "101 программирование" - и все же, безусловно, это не отвлекает студентов от более сложных языков, таких как C (или даже C ++, что еще сложнее!) На более поздних курсах.

5
ответ дан 18 December 2019 в 05:23
поделиться

Как программист на Python, я бы дал вам противоположный совет. Сначала изучите Python. По крайней мере, пока вы не изучите ограничения и возможности, которые он имеет по сравнению с тем, что вы можете сделать на C. Затем используйте C для тех далеко идущих проблем, которые вы не можете исправить на Python. :)

1
ответ дан 18 December 2019 в 05:23
поделиться

Я бы рекомендовал использовать Python. Поскольку это язык более высокого уровня, чем C, вы можете больше сосредоточиться на «что», а не на «как». Это означает, что вы можете избежать уровня детализации, требуемого C, чтобы достичь того, что вам нужно сделать прямо сейчас.

Это не означает, что никогда не требуется низкий уровень детализации. Конечно, есть, но в настоящее время я рекомендую вам проигнорировать это и забрать его в будущем, если вам понадобится.

2
ответ дан 18 December 2019 в 05:23
поделиться

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

В сети вам придется довольно долго (с компьютерной точки зрения) ждать отправки и получения сообщений. Даже если ваш язык намного медленнее, чем C, вы можете не заметить никакой разницы. И низкоуровневое внутреннее строение сетевых библиотек Python, вероятно, в любом случае написано на C; Python не очень медленный, когда вы используете его для вызова кода C.

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

И, наконец, в том маловероятном случае, если ваше приложение работает хорошо, но слишком медленно в Python, вы можете довольно легко написать «модуль» C, который заменит критически важную для производительности часть вашего приложения Python. Получите рабочий прототип, определите, какая часть должна быть быстрой, и просто замените эту часть на C. Гораздо меньше работы, чем выполнение всего на C.

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

1
ответ дан 18 December 2019 в 05:23
поделиться

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

Я полностью самоучка и перешел с Apple II BASIC на язык ассемблера. на языки сценариев (Perl, PHP, Ruby), и теперь я использую в основном C. C - относительно небольшой язык, но я считаю, что если бы я начал с C, я, вероятно, потерял бы мотивацию. Начните с Python - вы изучите суть программирования, а затем, если у вас возникнет необходимость или вы захотите изучить C позже, вам будет легче освоить этот язык.

1
ответ дан 18 December 2019 в 05:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: