Я инвалид по зрению. Полностью слеп. Пользуюсь компьютером и другими технологиями при помощи программ экранного доступа.
Интересует программирование. Больше не как профессия, а как увлечение.
Интересует прикладное программирование. Разработка десктопных приложений и звуковых игр для незрячих.
Таких игр у нас много, есть даже шутеры. Всё построено на 3D звуке.
В основном используют C++/C#. Есть даже движок таких игр, он разработан на C++.
Сейчас хотят затащить на олимпиаду. Да и выбираю язык для своих задач.
Интересует, какой язык мне подходит больше?
Работал с обоими. В C# знаком с основами, ООП, в C++ не могу понять указатели, с ООП пока не знаком.
Вот что мне нужно:
Разработка прикладного ПО исключительно под Windows, клиентсерверные приложения с сервером под Linux.
Игры, для них требуются библиотеки для работы с клавиатурой, 3D звуком. Всё это есть в C++ и в C#.
Хочу работать без использования низкоуровневых инструментов. Не знаю, возможно ли это в C++. Пока пугают только указатели, но я уверен, что и их можно понять.
В общем что кто может сказать?
Заранее благодарен!
Я инвалид по зрению. Полностью слеп. Пользуюсь компьютером и другими технологиями при помощи программ экранного доступа.
К счастью, это на выбор языка мало влияет.
Сейчас хотят затащить на олимпиаду.
В С++ достаточно бедная стандартная библиотека и для быстрой разработки мелких приложений (типичных для олимпиадных задачек) он подходит не очень.
Хочу работать без использования низкоуровневых инструментов. Не знаю, возможно ли это в C++.
Возможно, если брать в рассчет современные стандарты, которые очень активно прокачивают высокоуровневые инструменты в C++. Но это не значит, что можно не учить указатели.
P.S. Just for fun и при изучении C# приятнее и быстрее. С другой стороны, это все не на всю жизнь, вас никто не ограничивает, если захотите - выучите потом и C/C++.
Для понимания указателей нужно знать язык программирования низкого уровня: ассемблер. Именно ассемблер может более точно объяснить принцип работы указателей. Так как указатели пришли из мира низкоуровневого программирования. Но написали вы странно: когда пишете про C#, то пишете, что знакомы с ООП, а когда пишете про C++ - уже незнакомы с ООП. ООП - это всего лишь подход к программированию. И этот подход для каждого языка программирования общий. Если хотите писать игры на C#, то для этого есть Unity. Да и для большинства прикладных задач будет достаточно C#. С++ - хорош для реализации производительных задач. Порой на практике используют смешанный подход: что требуется для высокой производительности - пишут на С++, а всё остальное - уже на C#. Вполне нормальная практика. В программировании важно уметь работать с алгоритмами, продумывать весь механизм работы, понимать, как всё работает. С плохим алгоритмом на любом языке программирования программа работать будет плохо.
Указатели не так страшны как кажутся, просто требуют некоторой дисциплины.
Но вам больше подойдёт C#, именно из-за того, что многие низкоуровневые операции за вас уже написаны.
Если на олимпиаде критичным будет скорость исполнения, тогда лучше всё же C++
Между C++ и С# существует очень большая разница, у С++ более широкий спектр применений, это язык который "полный контроль над железом" , а у С# уже работает по такой же схеме как и Java. Хотя что бы без лишнего геморроя пиши на С++ и тогда будет намного легче портировать на другие ОС. Или же пиши на С#, тебе это будет на руку так как код пишется более быстро, что уже можно переходить на фазу тестирования кода, этим экономия времени