Форум программистов, компьютерный форум, киберфорум
Священные войны
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
55 / 13 / 2
Регистрация: 26.10.2014
Сообщений: 1,108
1

Выбор языка программирования под конкретные задачи! Python/C#/C++ или другой

17.06.2017, 12:28. Показов 2346. Ответов 20
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте.
Тема, которую я рассматриваю уже очень много времени. Но мне надоело стоять на месте. Потому готовьтесь читать не маленький пост.
Ситуация вот в чём. Нужно определиться с языком программирования. И определиться, чтобы потом не жалеть и чтобы он подходил под всё, что мне нужно.
Сразу скажу, что кросс-платформенное программирование мне не нужно. Только наш любимый 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.06.2017, 12:28
Ответы с готовыми решениями:

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

Выбор языка программирования под Mac OS
Всем привет! Тема топика звучит несколько банально, но хочу сразу внести ясность: я имею большой...

О выборе языка программирования под указанные задачи: стоит ли углубляться в C++?
Здравствуйте. Такая ситуация. Долгое время выбирал язык программирования для решения своих задач....

Выбор CMS, или языка программирования от абсолютного новичка
Здравствуйте, уважаемые пользователи форума. Есть идея по созданию социальной сети,...

20
440 / 432 / 159
Регистрация: 21.05.2016
Сообщений: 1,338
17.06.2017, 14:16 2
Зачем себя ограничивать каким-то одним языком или технологией? Изучайте несколько языков, выбирайте один для конкретной задачи и в рамках этой задачи углубляйте свои знания. Намного большее значение имеет понимание алгоритмов, структур данных, принципов работы операционных систем.

1. Огромные возможности по программированию под Windows;
Ну тогда .NET
3. Простой синтаксис, который позволит больше думать не о коде, а о алгоритме;
Из перечисленных языков только python

7. Чтобы программируя на языке, я почти не думал о низкоуровневом, типа работы с памятью или математике.
думать об этом всегда надо, но если не хочется, то с++ отпадает, там нет garbage collector

8. Чтобы язык программирования имел ООП!
любой из перечисленных языков
0
1287 / 880 / 254
Регистрация: 30.06.2015
Сообщений: 4,593
Записей в блоге: 51
17.06.2017, 14:35 3
Цитата Сообщение от jonikster Посмотреть сообщение
Часто вижу непонятный #define, #if, #endif и т.д.
Что мешает разобраться в этом? Тут как раз всё очень даже просто.
Тут выбор один: либо си++, либо (если забыть про ооп) - си. Вот и выбирай из двух. И пока ты будешь мучится с выбором языка, я уже выучу си++ и напишу две игры.
0
Модератор
5047 / 3276 / 526
Регистрация: 01.06.2013
Сообщений: 6,806
Записей в блоге: 9
17.06.2017, 18:59 4
Во какая, свежая тема! Таких ещё не было!
Цитата Сообщение от jonikster Посмотреть сообщение
Нужно определиться с языком программирования. И определиться, чтобы потом не жалеть и чтобы он подходил под всё, что мне нужно.
Таких нет.
Кстати, Право не советовать кому то лисп я за собой оставляю. Это комментарий к постам из будущего в этой ветке.

В общем, нет смысла ставить себе задачу знать только один язык. По мере надобности можно и другие изучить. Синтаксис, это ерунда, основное время у вас займёт изучение библиотек (пакетов, фреймвёрков) под ваши задачи. А библиотеки, как раз, бывают портированными между языками, т.е. почти одни и те же в разных языках. В общем, изучайте что сейчас хочется, или что под данную задачу лучше. По мере накопления опыта сами ответите на свой вопрос.
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
Цитата Сообщение от jonikster Посмотреть сообщение
О C#, oldnewyear, почему вы считаете, что с синтаксисом и прочим C# проигрывает Python?
Я так не считаю, это вы сами придумали
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
Цитата Сообщение от jonikster Посмотреть сообщение
Ну вы сказали,
3. Простой синтаксис, который позволит больше думать не о коде, а о алгоритме;
Из перечисленных языков только python
Потому я и спрашиваю. Чем тут плох C#?
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
Цитата Сообщение от jonikster Посмотреть сообщение
Вот что я о них думаю:
По всем трем языкам в аргументах фигурировал синтаксис. Синтаксис — не проблема, не вижу смысла ориентироваться на него в данном выборе.

Цитата Сообщение от jonikster Посмотреть сообщение
1. Огромные возможности по программированию под Windows;
Без конкретики сложно сказать, что здесь ожидается. Выбрать какую-либо конкретную windows-специфичную задачу, посмотреть, как она решается в трех языках. Сравнить, принять решение.

Цитата Сообщение от jonikster Посмотреть сообщение
2. Не знаю, на сколько для моих нужд нужна скорость, но не хочу, чтобы всё было слишком медленно;
Станет ясно, когда начнет тормозить. Но и там нужно разбираться в причинах тормозов: дело может быть не в языке, а в алгоритмах.

Цитата Сообщение от jonikster Посмотреть сообщение
3. Простой синтаксис, который позволит больше думать не о коде, а о алгоритме;
Пожалуй, C++ здесь сложнее прочих, вопрос в тренировке.

Цитата Сообщение от jonikster Посмотреть сообщение
4. Хорошие возможности, много библиотек для простой работы со звуком, с клавиатурой;
Это в гугл. Но т.к. языки популярные, то все должно быть.

Цитата Сообщение от jonikster Посмотреть сообщение
5. Возможности по работе с сетью! [...] То есть не надо думать о сокетах, TCP/UDP и прочих сложных вещах.
Для современных языков есть высокоуровневые библиотеки, не должно быть проблемой.

Цитата Сообщение от jonikster Посмотреть сообщение
7. Чтобы программируя на языке, я почти не думал о низкоуровневом, типа работы с памятью или математике.
О памяти придется думать или повезет не думать независимо от языка. В C++ ручное управление памятью заменяется умными указателями. Но если памяти не хватает или тормоза связаны с доступом к памяти, то вспомнить о ее существовании придется.

Необходимость думать о математике зависит не от языка, а от проекта.

Цитата Сообщение от jonikster Посмотреть сообщение
8. Чтобы язык программирования имел ООП!
Все три языка поддерживают ООП.

Резюмируя: можно выбрать любой язык, руководствуясь любыми субъективными аргументами. Красотой синтаксиса, удобством 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
Цитата Сообщение от jonikster Посмотреть сообщение
Python просто изучать, быстрее можно начать решать задачи
Здесь есть нюанс. Язык действительно простой, но есть несколько пороговых тем и особенностей языка, после изучения которых начинаешь писать идиоматичный код, а не сишный в питоньем синтаксисе. Если конкретнее: list comprehensions, итераторы, генераторы, декораторы, метаклассы, в последних версиях еще по необходимости асинхронщина.

Цитата Сообщение от jonikster Посмотреть сообщение
C++ нужно учить долго и нудно, учитывая, что не существует простых книг.
Одна из доступных и грамотных книг — за авторством Стенли Липпмана. Если учить «от и до» — да, будет долго и нудно. Если по спирали — сильно проще.

Цитата Сообщение от jonikster Посмотреть сообщение
Моя запутанность между Python и C#. не знаю нужна ли скорость.
Выбирая между ними, лично я остановился бы на C#. Исключительно из-за статической типизации.
0
55 / 13 / 2
Регистрация: 26.10.2014
Сообщений: 1,108
21.06.2017, 12:34  [ТС] 13
Да, я согласен, что в Python дикараторы сложны. Но и в C# есть то, что не обычно. Сериализация, потоки и т.д
0
1287 / 880 / 254
Регистрация: 30.06.2015
Сообщений: 4,593
Записей в блоге: 51
21.06.2017, 13:13 14
Цитата Сообщение от jonikster Посмотреть сообщение
О плюсах, CoderHuligan, почему вы думаете, что только лишь плюсы? Почему не C#, не Python? Поясните свою мысль.
Из-за скорости. Сборщик памяти сильно тормозит. Если хочешь делать игры, то фактор скорости определяющий, хотя и для C# есть быстрые графические прибамбасы. Но само по себе ооп тоже добавляет тормозов, а структурировать код можно и без оного, лишь бы голова была на плечах.
0
1195 / 588 / 88
Регистрация: 20.09.2012
Сообщений: 1,881
21.06.2017, 14:09 15
jonikster,
Цитата Сообщение от CoderHuligan Посмотреть сообщение
Если хочешь делать игры, то фактор скорости определяющий...
поэтому возьми готовый движок и скриптуй его чем хочешь. хоть луа, хоть питон, хоть жабаскрипт, хоть цешарп (с++ по понятным причинам выпадает)

Добавлено через 4 минуты
Цитата Сообщение от jonikster Посмотреть сообщение
Сериализация, потоки и т.д
это везде есть
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
1287 / 880 / 254
Регистрация: 30.06.2015
Сообщений: 4,593
Записей в блоге: 51
22.06.2017, 12:12 17
Цитата Сообщение от jonikster Посмотреть сообщение
а причём тут графика? Вы вообще тему читали?
Читал, и вот что вычитал:
Цитата Сообщение от jonikster Посмотреть сообщение
По сути, основная моя цель - разработка аудио игр.
А если игр, хоть аудио, хоть не аудио, всё равно нужна скорость, скорость....
0
Эксперт функциональных языков программированияЭксперт Java
4486 / 2721 / 485
Регистрация: 28.04.2012
Сообщений: 8,590
22.06.2017, 23:08 18
Цитата Сообщение от CoderHuligan Посмотреть сообщение
Сборщик памяти сильно тормозит
Он не «сильно тормозит», он «сильно недетерминирован».

Цитата Сообщение от CoderHuligan Посмотреть сообщение
А если игр, хоть аудио, хоть не аудио, всё равно нужна скорость, скорость....
Какая ещё, к чёрту, скорость в аудиоиграх?
0
1287 / 880 / 254
Регистрация: 30.06.2015
Сообщений: 4,593
Записей в блоге: 51
23.06.2017, 14:56 19
Цитата Сообщение от korvin_ Посмотреть сообщение
Какая ещё, к чёрту, скорость в аудиоиграх?
Алгоритмы обработки звука не стоят на месте, и тоже требуют кушать. Высококачественный цифровой звук, обработка звукового ввода пользователя, ИИ и т. д.
0
440 / 432 / 159
Регистрация: 21.05.2016
Сообщений: 1,338
23.06.2017, 15:01 20
Только я один не знаю что такое аудиоигры?
0
23.06.2017, 15:01
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.06.2017, 15:01
Помогаю со студенческими работами здесь

Выбор языка программирования для разработки среды программирования
Возникла мысль о создании ЯПа. Ныне популярные ЯПы не универсальны, либо универсальны, но с ...

Выбор языка программирования. Как сделать правильный выбор?
Здравствуйте. Существует проблема выбора языка программирования. Я понимаю, что язык...

Выбор языка программирования
Друзья, не посоветуете ли по такому вопросу. Хотел бы изучить современный язык...

Выбор языка программирования
Hello, world! Нужна помощь с выбором среды и языка программирования. Познания в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru