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

Подходит ли C# под мои требования и задачи? Плюсы минусы?

20.06.2017, 14:52. Показов 1889. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте.
Уже очень много времени, я выбираю язык программирования для изучения и использования. Я понял, что точно сказать мне никто не сможет, даже помочь с определением среди уже выбранных мною нескольких языков.
Моя проблема в том, что никто не может углублённо подсказать информацию о определённом языке.
Сейчас прошу дальше читать только тех, кто знаком хорошо с C#, кто с ним работал очень долго и много о нём знает не в теории, а в практике.
Интересует, что из нижеперечисленного может C#, стоит ли его изучать для моих задач, которые будут описаны ниже, и как долго нужно изучать сам язык, чтобы добиться такого? Нужно ли углублённо знать и понимать сериализацию, потоки и прочие сложные вещи? Можно ли мои задачи реализовывать, зная только самые основы, типа переменных, условий, циклов, массивов, структур, ООП? Или же если нет, что нужно доучить, чтобы я мог начать практиковаться, решая мои задачи?
Вот чего я жду от языка:
Простой синтаксис, Си-подобный, но гораздо проще C++, без непонятных и сложных элементов, чтобы можно было пояснить каждую строчку, что она делает и для чего предназначена;
Нет сильно сложных моментов в ООП, чтобы было проста реализация, например чтобы в игре можно было описать объект врага, HP, позиция, его возможности и т.д, и при этом не было сложных вещей;
Чтобы не нужно было думать о низкоуровневом типа памяти, указателях;
Чтобы не требовалось использовать слишком много математику, и не требовалась сложная математика;
Да и вообще чтобы было просто писать! Чтобы я больше изучал не возможности языка, а библиотеки.
Мои задачи:
Создание аудио игр для незрячих. Для этого мне нужна библиотека по обработке нажатия клавиш, если не ошибаюсь она есть в NETFramework, библиотека для вывода текста в Sappy или в Screan Reader, что тоже присутствует, нужна библиотека для работы с 3D звуком, причём, чтобы все возможности, которые требуют высшей математике были прописаны в библиотеке, а мне требовалось бы лишь только ввести координаты источника звука и слушателя.
На C# из аудио игр был разработан авиа симулятор хороший, среди незрячих он очень популярен, и даже его код был выложен на github. Потому я уверен, что возможность по разработке аудио игр есть, но на сколько это будет сложным...
Также помимо аудио, интересуют хорошие и простые возможности по созданию сетевых приложений, то есть клиент сервер. И при этом, чтобы не нужны были знания о сокетах, TCP/UDP и т.д.
Интересует разработка приложений с GUI интерфейсом.
Кто что может сказать? Плюсы минусы C# под мои требования и задачи?
Ещё слышал, что C#, не смотря на то, что исходный файл .exe, он при запуске с помощью CLR выполняет код. Т.е есть интерпритируемость. На сколько это влияет на скорость, и важна ли скорость в моём случаи?
Я вообще сам не знаю, на сколько мне нужна и важна скорость, потому что я знаю, что например в видео играх, она нужна больше для графики. Здесь же я знаю только единственную вещь, для чего нужна скорость. Это загрузка карт. О другом я не представляю.
Заранее благодарен!
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.06.2017, 14:52
Ответы с готовыми решениями:

Подходит ли Python под мои задачи и требования? Плюсы и минусы!
Здравствуйте. Уже очень много времени, я выбираю язык программирования для изучения и...

Какой IDE-Редактор наиболее подходит под мои требования
Вот требования к редактору: • Поддержка русского языка • Работа на ОС Windows версий XP и\или 7...

Подходит ли мне C++? Плюсы и минусы
Здравствуйте. Вопрос адресован к программистам C++, которые не те, кто только на словах...

Web Server под виндой (Минусы и плюсы)
Подскажите пожалуйста минусы и плюсы, хотя скорее всего будут одни минусы, но нет у меня...

9
Эксперт .NET
17688 / 12873 / 3366
Регистрация: 17.09.2011
Сообщений: 21,138
20.06.2017, 15:11 2
jonikster, здравствуйте!

Цитата Сообщение от jonikster Посмотреть сообщение
никто не может углублённо подсказать информацию о определённом языке.
У тех, кто может углубленно подсказать информацию, банально нет возможности (времени) писать персонально для вас статьи.
Работют люди.

Цитата Сообщение от jonikster Посмотреть сообщение
кто с ним работал очень долго
"очень долго" — это какой минимальный стаж?

Цитата Сообщение от jonikster Посмотреть сообщение
Можно ли мои задачи реализовывать, зная только самые основы, типа переменных, условий, циклов, массивов, структур, ООП?
Можно, но это примерно как пытаться строить дом, используя только отвертку и молоток.
Лучше все-таки потратить немного времени и научиться пользоваться инструментами, специально предназначенными для той или иной задачи.
И что еще важнее — научиться распознавать задачу и наиболее подходящий для нее инструмент. Но это, к сожалению, приходит в основном с опытом.

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

Цитата Сообщение от jonikster Посмотреть сообщение
Нет сильно сложных моментов в ООП
Что такое "сильно сложные моменты в ООП"?
Ну и любая сложность же по мере практики перестает быть таковой.

Цитата Сообщение от jonikster Посмотреть сообщение
Чтобы не нужно было думать о низкоуровневом типа памяти, указателях;
Подходит.

Цитата Сообщение от jonikster Посмотреть сообщение
Чтобы не требовалось использовать слишком много математику, и не требовалась сложная математика;
Опять же, какая математика — сложная?
Вот чуть ниже вы упомянете позицию персонажа. Расчет позиции и ее изменение — это сложная математика?

Цитата Сообщение от jonikster Посмотреть сообщение
Да и вообще чтобы было просто писать! Чтобы я больше изучал не возможности языка, а библиотеки.
Возможностями библиотеки вы будете пользоваться посредством языка, потому необходимость знания возможностей языка является первичной.
Вне зависимости от выбранного языка.

Цитата Сообщение от jonikster Посмотреть сообщение
Плюсы минусы C# под мои требования и задачи?
Судя по перечисленным задачам и требованиям к ним, выбор языка для вас будет зависеть исключительно от набора доступных библиотек, необходимых для решения ваших задач.
Сделайте список всего, что нужно, и попробуйте найти эти библиотеки. Если нашли их все на шарпе, то дерзайте — язык вам подходит.

Цитата Сообщение от jonikster Посмотреть сообщение
Т.е есть интерпритируемость.
Нет, компилируемость, просто в два действия: сначала из кода в CIL, потом из CIL в машинный код.

Цитата Сообщение от jonikster Посмотреть сообщение
Я вообще сам не знаю, на сколько мне нужна и важна скорость
Откуда же нам знать, что вам нужно и важно, если вы сами этого не знаете?
1
55 / 13 / 2
Регистрация: 26.10.2014
Сообщений: 1,108
20.06.2017, 15:54  [ТС] 3
По поводу математики, тригонометрия, векторная математика и прочее.
Вы говорите о инструментах кроме основ. Это какие к примеру?
О скорости, просто я не знаю в чём проявляется производительность, и на сколько это нужно для игр без графики.
0
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
20.06.2017, 22:23 4
Цитата Сообщение от jonikster Посмотреть сообщение
По поводу математики, тригонометрия, векторная математика и прочее.
Использование математики (а также любой другой науки), все таки зависит от поставленной задачи, а не от языка. Язык предлагает лишь реализацию решения, а не абстракцию от какой-либо науки. К примеру, если Вам нужно решить диф. уравнение, то какой бы язык Вы не предпочли, математику нужно будет знать. Разве что найдете библиотеку, которая будет решать поставленную задачу. Однако, стоит учитывать, что для каких то специфичных задач библиотеки вряд ли найдутся и, скорее всего, нужно будет писать свой код с нуля.
Цитата Сообщение от jonikster Посмотреть сообщение
Вы говорите о инструментах кроме основ. Это какие к примеру?
Каждый язык программирования (и С# не исключение) имеет свои тонкости и нюансы, без знания которых не стоит браться за серьезные проекты, тем более за игры. Не знаю, что конкретно имел в виду уважаемый kolorotur, но лично я затрудняюсь выделить какие то основные моменты в языке, про которые можно сказать, что "вот это выучите и хватит". Частичное знание языка, скорее породит больше вопросов, нежели ответов. Но это мое субъективное мнение. Возможно, я не прав.
Цитата Сообщение от jonikster Посмотреть сообщение
в чём проявляется производительность, и на сколько это нужно для игр без графики.
Если вкратце, то математические расчеты требуют процессорных мощностей, для работы с большими объемами данных нужна хорошая оперативка, для программ, активно использующих работу с файлами стоит подобрать жд пошустрее (ну и память опять же). Для графики - видяху. Хотя, в больших проектах (и в играх тем более) задействуется не одна подсистема. Кроме того, стоит учитывать, что производительность еще зависит от алгоритма. Одну и ту же задачу можно реализовать несколькими способами и производительность между ними может отличаться в разы. Касательно аудио игр не могу ничего сказать. По правде говоря, о существовании таковых узнал только из этой темы. Если это будет что то вроде авиасимулятора, то, скорее всего цп нужен будет помощнее. Да и без знания математики и физики, думаю, тут не обойтись. Но, повторюсь, даже не могу себе представить как выглядит аудио авиасимулятор, поэтому могу сильно заблуждаться.
0
Эксперт .NET
1696 / 1325 / 316
Регистрация: 15.06.2012
Сообщений: 5,045
Записей в блоге: 3
20.06.2017, 22:36 5
Цитата Сообщение от jonikster Посмотреть сообщение
без непонятных и сложных элементов
"непонятные сложные элементы" создаются для облегчения жизни програмистов. Некоторые библиотеки вообще постороены на них (апример лямда-методы на запросах в БД)

Цитата Сообщение от jonikster Посмотреть сообщение
Нет сильно сложных моментов в ООП
они одинаковы для всех. Ну, почти.

Цитата Сообщение от jonikster Посмотреть сообщение
Чтобы я больше изучал не возможности языка, а библиотеки.
Мейкеры вам в помощь. Серьезно, учить ЯП, означает учить программирование в целом, а судя по вашим "хотелкам" вы желаете чтобы практически все за вас реализовывала среда.

Цитата Сообщение от jonikster Посмотреть сообщение
Нужно ли углублённо знать и понимать сериализацию, потоки и прочие сложные вещи?
Ваше приложение многопользовательское? Где будут хранится данные и какие? Будет ли сетевое взаимодействие? Будет ли ваше приложение в дальнейшем обновлятся? Обратная связь? Платность? Кроссплатформенность? Кастомизация и редактор?

Для каждого вопроса, в зависимости от ответа, придется доучивать немалый блок/технологию.
0
55 / 13 / 2
Регистрация: 26.10.2014
Сообщений: 1,108
21.06.2017, 07:52  [ТС] 6
О авиа симуляторе, если вам интересно, поищите на Github Three D Velocity. Или поищите мою тему давностью в несколько дней в этом же разделе, я там давал ссылку.
Теперь о C#:
В данный момент, в C# я знаю переменные, условие, циклы, массивы, не полностью ООП, методы. Не получается разобраться с делегатами и событиями, хотя суть частично понятна.
О мейкерах, Wolfdp, я хочу кодить больше, чем изучать! Потому что вот начну я писать игру, допишу определённую часть, потом выясниться, что написал без какой то возможности, что можно было проще и надо было по другому, придется переписывать и т.д. То есть мне нужно, чтобы зная основы, которые я сказал выше, уже можно было кодить. Вот к примеру Python это допускает, а C# как рас не знаю, но вроде слышал, что можно, но не уверен.
Я как рас сейчас выбираю между Python и C#. Раньше была мысль о C++, но он слишком сложен для меня!
О ООП, Wolfdp, во всём есть свои плюсы и минусы. В ООП C# есть свои плюсы и минусы, и в Python, хотя в Python мне кажется проще, а в C# удобнее.
Wolfdp, отвечаю на ваши вопросы:
Кросс-платформенность абсолютно не нужна, исключительно под винду;
Сетевые игры я буду делать, но начать хочу с одиночных, а при сетевых играх кстати я думаю о сервере под Linux, но это не так важно, как выбор языка;
О редакторах, нет! Никаких редакторов!
О обновлениях, да! Можно было бы реализовать простой алгоритм, который я думаю на C# просто реализовать, читать текстовый файл с версией на сайте. Если она больше текущей, качаем файл опять же с сайта.
Первоначально мне вот что требуется:
Открытие окна игры (реализовать можно в Windows.Forms);
Работа с клавиатурой, обработка нажатия клавиш;
Работа с 3D звуком без вычислений, где требуется лишь ввести координаты слушателя и источника, без вычислений по тригонометрии.
Да и по сути это всё для начала. Дополнительно нужно будет делать карты, а в картах, только разница в фоновом шуме и звуках шагов. В Python можно было бы решить со словарями, вообще используют двумерные массивы. Но тут проблема не в языке, а в том, что я не могу понять алгоритм.
И вот опять же, хватит ли мне того, что я знаю, если нет, что следует доучить, и подойдёт ил вообще мне C#?

Добавлено через 3 минуты
Shogun31337, о математике, позвольте пожалуйста с вами немножко не согласиться.
В C++ часто для некоторых задач используется математика даже по всем библиотекам, чем в том же Python или C#.
0
Эксперт .NET
12079 / 8388 / 1281
Регистрация: 21.01.2016
Сообщений: 31,601
21.06.2017, 08:04 7
jonikster, блин, сколько писанины)) Просто начни уже изучать язык и там тебе видно станет, подходит он или нет (в 90% подходит).
0
294 / 234 / 58
Регистрация: 03.02.2011
Сообщений: 1,993
Записей в блоге: 1
21.06.2017, 08:18 8
Цитата Сообщение от jonikster Посмотреть сообщение
допишу определённую часть, потом выясниться, что написал без какой то возможности, что можно было проще и надо было по другому, придется переписывать и т.д.
Разве не это называется обучением?
Цитата Сообщение от jonikster Посмотреть сообщение
Я вообще сам не знаю, на сколько мне нужна и важна скорость
Скорость выполнения вашего кода напрямую зависит от качества вашего кода. Первых 3-х глав из любой книги по программированию будет очень недостаточно.

Добавлено через 2 минуты
Цитата Сообщение от jonikster Посмотреть сообщение
не полностью ООП
Не только лишь все знают это ООП.
Там мало его просто знать, нужно ещё и умело применять.
0
Эксперт .NET
1696 / 1325 / 316
Регистрация: 15.06.2012
Сообщений: 5,045
Записей в блоге: 3
25.06.2017, 06:54 9
Цитата Сообщение от jonikster Посмотреть сообщение
Потому что вот начну я писать игру, допишу определённую часть, потом выясниться, что написал без какой то возможности, что можно было проще и надо было по другому
Учитывая что сопровождать тебе, можешь не париться. Со временем доучишь функционал и просто будешь шустрее писать новый код, переписывать старое рабочее не обязательно (если только не целенаправленый рефакторинг).

Цитата Сообщение от jonikster Посмотреть сообщение
Не получается разобраться с делегатами и событиями, хотя суть частично понятна.
без них в программировании игр особо делать нефиг. Да и не только игр. Любой интерактив с пользователем по сути построен на событиях и обработчиках.

Цитата Сообщение от jonikster Посмотреть сообщение
Кросс-платформенность абсолютно не нужна, исключительно под винду
Цитата Сообщение от jonikster Посмотреть сообщение
я думаю о сервере под Linux
определитесь уже. Написать сервак под linux, это либо mono, либо core. Оба не позволяют не глядя юзать .net, есть свои ужимки.

И вообще, много пользователей как правило подразумевают sql. А значить нужно добавить в список ORM.

Цитата Сообщение от jonikster Посмотреть сообщение
Дополнительно нужно будет делать карты, а в картах, только разница в фоновом шуме и звуках шагов.
[
Цитата Сообщение от jonikster Посмотреть сообщение
В Python можно было бы решить со словарями, вообще используют двумерные массивы.
тут проблема в том, что все это решается наследованием от абстракции с переопределением. Вам по хорошему нужно не язык учить, а уметь применять основные принципы хотябы ООП.

Цитата Сообщение от jonikster Посмотреть сообщение
Но тут проблема не в языке, а в том, что я не могу понять алгоритм.
Тогда можете начинать хоть с паскаля. Основы зубрить можно на абсолютно любом языке, переход вообще безболезненый.
0
Эксперт .NET
5534 / 4298 / 1217
Регистрация: 12.10.2013
Сообщений: 12,332
Записей в блоге: 2
25.06.2017, 07:52 10
Цитата Сообщение от jonikster Посмотреть сообщение
помимо аудио, интересуют хорошие и простые возможности по созданию сетевых приложений, то есть клиент сервер. И при этом, чтобы не нужны были знания о сокетах, TCP/UDP и т.д.
Интересует разработка приложений с GUI интерфейсом.
Для сетевого взаимодействия в C# есть целая тема (и хорошая, с громадными возможностями) - WCF. Там многое низкоуровневое скрыто из глаз (но тем не менее доступно при желании), на его основе можно сделать очень многое касательно взаимодействия по сети.
0
25.06.2017, 07:52
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.06.2017, 07:52
Помогаю со студенческими работами здесь

Подскажите cms под мои требования
Приветствую Вас. Задался вопросом с выбором CMS. Имеется услуга, у услуги есть цена (для каждого...

Процессор под мои требования. ПК для программирования
собираю с нуля Пк. думаю брать AMD FX-8300/ собираюсь писать под андроид на java в андроид студио...

Плюсы и минусы C#
Добрый день! Не хочу ни в коем случае развязывать вечную войну идущей между Delphi и С, но...

Плюсы и минусы
Господа, хочется узнать ваше мнение по такому варианту работы с сервером терминалов. Хочу...


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

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