55 / 13 / 2
Регистрация: 26.10.2014
Сообщений: 1,108
|
|
1 | |
Выбор языка программирования под конкретные задачи! Python/C#/C++ или другой17.06.2017, 12:28. Показов 2346. Ответов 20
Метки нет (Все метки)
Здравствуйте.
Тема, которую я рассматриваю уже очень много времени. Но мне надоело стоять на месте. Потому готовьтесь читать не маленький пост. Ситуация вот в чём. Нужно определиться с языком программирования. И определиться, чтобы потом не жалеть и чтобы он подходил под всё, что мне нужно. Сразу скажу, что кросс-платформенное программирование мне не нужно. Только наш любимый Windows. Итак, выбор я свой остановил на трёх языках, Python/C#/C++. Вот что я о них думаю: Python - простой в синтаксисе, имеет простое ООП, имеет не мало библиотек. Но маленький в скорости, имеет не простые решения для некоторых задач. Сложен в компиляции. Хотя я видел проект, в котором даже не оставались .pip файлы, указывающие, что разработано было на Python. C# - думаю, самый простой из си-подобных языков по синтаксису. Из плюсов можно выделить полную поддержку Windows, работа с окнами, NETFramework, который имеет очень много возможностей и т.д. Из минусов, например не значительный минус, обязательной установки NETFramework. Но я не думаю, что это уж сильно критичная проблема. Ещё 1 минус, в черезмерности ООП. Там он везде, из-за чего у меня появляется сложность. Да я привык уже к main, привык к функциям вообще, но не привык к такому стилю, который используется в C#. Не последовательный, непонятный. Для не сильно сложных задач применяется непонятная сериализация, потоки и прочее. C++ - по сравнению с прошлыми двумя языками, быстрый, гибкий, Но сложный! В синтаксисе есть много непонятного. Часто вижу непонятный #define, #if, #endif и т.д. Для решения моих задач, на сколько знаю, требует долгих лет обучения и практики. Вот что мне необходимо: 1. Огромные возможности по программированию под Windows; 2. Не знаю, на сколько для моих нужд нужна скорость, но не хочу, чтобы всё было слишком медленно; 3. Простой синтаксис, который позволит больше думать не о коде, а о алгоритме; 4. Хорошие возможности, много библиотек для простой работы со звуком, с клавиатурой; 5. Возможности по работе с сетью! По простой работе с сетью! К примеру, я видел язык программирования, где есть сервер и клиент, и они друг другу шлют так называемые пакеты. Оба они их читают, и оба выполняют действия согласно пакету. Например сервер шлёт клиенту hello, клиент это получает, там есть проверка на события, если событие получение пакета, и пакет этот hello, клиент к примеру выводит hello на экран. То есть не надо думать о сокетах, TCP/UDP и прочих сложных вещах. 6. Большое количество простых, понятных учебников, читать которые удовольствие. Не скажу, что читать например Марка Лутца по Python очень просто, интересно и я получаю от этого удовольствие. 7. Чтобы программируя на языке, я почти не думал о низкоуровневом, типа работы с памятью или математике. 8. Чтобы язык программирования имел ООП! Например в игре, чтобы я мог через класс описать врага. Его HP, позицию, возможности и т.д По сути, основная моя цель - разработка аудио игр. Для этого, нужна библиотека, которая откроет окно, нужна библиотека для работы с 3D звуком без вычислений, то есть указать лишь координаты x/y/z, библиотека для простой работы с клавиатурой, сетью, файлами и т.д. Но ещё интересует, чтобы используя этот язык, я мог не сильно мучиться для решения других задач. Чтоб можно было просто взять библиотеку, изучить её функции и просто программировать! В Python для разработки аудио игр есть 2 хороших библиотеки. Pygame, которая мне нравится простотой своего синтаксиса, но не нравится скоростью, и pyglet, где требуются знания сложных, непонятных дикараторов и т.д.. Ребят, задавайте вопросы, уточняйте, но я очень прошу тех, кто не дилетант в этом, помочь мне разобраться в данном вопросе! И не пишите просто, мол или Python для тебя, или C#, поясните почему вы так думаете, и чем это мне подходит. Плюсы минусы. Заранее спасибо!
0
|
17.06.2017, 12:28 | |
Ответы с готовыми решениями:
20
Выбор языка программирования для конкретной задачи Выбор языка программирования под Mac OS О выборе языка программирования под указанные задачи: стоит ли углубляться в C++? Выбор CMS, или языка программирования от абсолютного новичка |
440 / 432 / 159
Регистрация: 21.05.2016
Сообщений: 1,338
|
|
17.06.2017, 14:16 | 2 |
Зачем себя ограничивать каким-то одним языком или технологией? Изучайте несколько языков, выбирайте один для конкретной задачи и в рамках этой задачи углубляйте свои знания. Намного большее значение имеет понимание алгоритмов, структур данных, принципов работы операционных систем.
0
|
17.06.2017, 14:35 | 3 |
Что мешает разобраться в этом? Тут как раз всё очень даже просто.
Тут выбор один: либо си++, либо (если забыть про ооп) - си. Вот и выбирай из двух. И пока ты будешь мучится с выбором языка, я уже выучу си++ и напишу две игры.
0
|
Модератор
|
|
17.06.2017, 18:59 | 4 |
Во какая, свежая тема! Таких ещё не было!
Таких нет. Кстати, Право не советовать кому то лисп я за собой оставляю. Это комментарий к постам из будущего в этой ветке. В общем, нет смысла ставить себе задачу знать только один язык. По мере надобности можно и другие изучить. Синтаксис, это ерунда, основное время у вас займёт изучение библиотек (пакетов, фреймвёрков) под ваши задачи. А библиотеки, как раз, бывают портированными между языками, т.е. почти одни и те же в разных языках. В общем, изучайте что сейчас хочется, или что под данную задачу лучше. По мере накопления опыта сами ответите на свой вопрос.
0
|
55 / 13 / 2
Регистрация: 26.10.2014
Сообщений: 1,108
|
|
18.06.2017, 20:26 [ТС] | 5 |
О C#, oldnewyear, почему вы считаете, что с синтаксисом и прочим C# проигрывает Python?
О плюсах, CoderHuligan, почему вы думаете, что только лишь плюсы? Почему не C#, не Python? Поясните свою мысль.
0
|
440 / 432 / 159
Регистрация: 21.05.2016
Сообщений: 1,338
|
|
18.06.2017, 23:24 | 6 |
0
|
55 / 13 / 2
Регистрация: 26.10.2014
Сообщений: 1,108
|
|
19.06.2017, 09:14 [ТС] | 7 |
Ну вы сказали,
3. Простой синтаксис, который позволит больше думать не о коде, а о алгоритме; Из перечисленных языков только python Потому я и спрашиваю. Чем тут плох C#?
0
|
440 / 432 / 159
Регистрация: 21.05.2016
Сообщений: 1,338
|
|
19.06.2017, 09:33 | 8 |
C# ничем не плох.
"синтаксис, который позволит больше думать не о коде, а о алгоритме" в большей степени относится к python, чем к C#
0
|
55 / 13 / 2
Регистрация: 26.10.2014
Сообщений: 1,108
|
|
19.06.2017, 09:49 [ТС] | 9 |
Хорошо давайте так:
В чём плюсы/минусы Python для моих задач, и в чём плюсы/минусы C# также для моих задач?
0
|
3257 / 2059 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
|
21.06.2017, 09:44 | 10 |
По всем трем языкам в аргументах фигурировал синтаксис. Синтаксис — не проблема, не вижу смысла ориентироваться на него в данном выборе.
Без конкретики сложно сказать, что здесь ожидается. Выбрать какую-либо конкретную windows-специфичную задачу, посмотреть, как она решается в трех языках. Сравнить, принять решение. Станет ясно, когда начнет тормозить. Но и там нужно разбираться в причинах тормозов: дело может быть не в языке, а в алгоритмах. Пожалуй, C++ здесь сложнее прочих, вопрос в тренировке. Это в гугл. Но т.к. языки популярные, то все должно быть. Для современных языков есть высокоуровневые библиотеки, не должно быть проблемой. О памяти придется думать или повезет не думать независимо от языка. В C++ ручное управление памятью заменяется умными указателями. Но если памяти не хватает или тормоза связаны с доступом к памяти, то вспомнить о ее существовании придется. Необходимость думать о математике зависит не от языка, а от проекта. Все три языка поддерживают ООП. Резюмируя: можно выбрать любой язык, руководствуясь любыми субъективными аргументами. Красотой синтаксиса, удобством IDE, названием. Если в какой-то момент станет понятно, что не нравится или не подходит — переключиться на другой, а спустя некоторое время осознать, что променял одни проблемы на другие, и жизнь легче не стала. А запасаться знаниями впрок — в принципе плохо работает.
0
|
55 / 13 / 2
Регистрация: 26.10.2014
Сообщений: 1,108
|
|
21.06.2017, 11:23 [ТС] | 11 |
Добавлю:
Python просто изучать, быстрее можно начать решать задачи. C++ нужно учить долго и нудно, учитывая, что не существует простых книг. Моя запутанность между Python и C#. не знаю нужна ли скорость.
0
|
3257 / 2059 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
|
21.06.2017, 12:13 | 12 |
Здесь есть нюанс. Язык действительно простой, но есть несколько пороговых тем и особенностей языка, после изучения которых начинаешь писать идиоматичный код, а не сишный в питоньем синтаксисе. Если конкретнее: list comprehensions, итераторы, генераторы, декораторы, метаклассы, в последних версиях еще по необходимости асинхронщина.
Одна из доступных и грамотных книг — за авторством Стенли Липпмана. Если учить «от и до» — да, будет долго и нудно. Если по спирали — сильно проще. Выбирая между ними, лично я остановился бы на C#. Исключительно из-за статической типизации.
0
|
55 / 13 / 2
Регистрация: 26.10.2014
Сообщений: 1,108
|
|
21.06.2017, 12:34 [ТС] | 13 |
Да, я согласен, что в Python дикараторы сложны. Но и в C# есть то, что не обычно. Сериализация, потоки и т.д
0
|
21.06.2017, 13:13 | 14 |
Из-за скорости. Сборщик памяти сильно тормозит. Если хочешь делать игры, то фактор скорости определяющий, хотя и для C# есть быстрые графические прибамбасы. Но само по себе ооп тоже добавляет тормозов, а структурировать код можно и без оного, лишь бы голова была на плечах.
0
|
1195 / 588 / 88
Регистрация: 20.09.2012
Сообщений: 1,881
|
|
21.06.2017, 14:09 | 15 |
jonikster,
поэтому возьми готовый движок и скриптуй его чем хочешь. хоть луа, хоть питон, хоть жабаскрипт, хоть цешарп (с++ по понятным причинам выпадает)
Добавлено через 4 минуты это везде есть https://docs.python.org/2/library/io.html http://python-guide-pt-br.read... alization/
0
|
55 / 13 / 2
Регистрация: 26.10.2014
Сообщений: 1,108
|
|
21.06.2017, 20:12 [ТС] | 16 |
CoderHuligan, а причём тут графика? Вы вообще тему читали?
0
|
4486 / 2721 / 485
Регистрация: 28.04.2012
Сообщений: 8,590
|
|
22.06.2017, 23:08 | 18 |
Он не «сильно тормозит», он «сильно недетерминирован».
Какая ещё, к чёрту, скорость в аудиоиграх?
0
|
440 / 432 / 159
Регистрация: 21.05.2016
Сообщений: 1,338
|
|
23.06.2017, 15:01 | 20 |
Только я один не знаю что такое аудиоигры?
0
|
23.06.2017, 15:01 | |
23.06.2017, 15:01 | |
Помогаю со студенческими работами здесь
20
Выбор языка программирования для разработки среды программирования Выбор языка программирования. Как сделать правильный выбор? Выбор языка программирования Выбор языка программирования Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |