Для своих задач раньше выбрал C++. Сейчас думаю, C vs C++.
Сразу задачи:
Разработка клиентсерверных приложений. MUD игр.
Разработка прочего прикладного ПО.
Выбрал раньше C++, простто потому что популярен, возможности т.д. Сначала не испугало отсутствие хороших простых книг, а когда встретился с указателями подумал. А надо ли мне оно?
Дело в том, что я слышал, что C и C++ используют, когда нужно написать с нуля. Библиотеку, движок, не важно. Меня же интересует использование готовых библиотек.
Вот стоит ли юзать C и C++, если будешь обращаться к готовым библиотекам, движкам?
Также нужна простота. Говоря о простоте я говорю об отсутствии низкоуровневых элементов.
Указатели я начинаю понимать и вижу их предназначение, потому даже не знаю.
Теперь C vs C++.
У C проще синтаксис, больше движков MUD игр. У C++ ООП, меньше движков, но больше исходников на github.
Не хочу тратить на изучение языка годы. Хочу изучив основы и юзать готовые решения. Вот что лучше под это? C и C++?
Просто хочу чтоб хватало время на изучение Python/PHP для работы веб программера. А не лезть с головой куда либо для увлечения. Ибо то мне надо для увлечения, но есть еще работа.
Спросите, почему не Java, Python?
1. Не уверен в надежности;
2. Меньше проектов MUD игр на них;
3. Не хочу писать с нуля на сокетах.
Что подскажете, посоветуете?
Заранее благодарен и с новогодними праздниками.
Ben_r007 , тебеб, для начала, определиться бы со своими целями. :)
Твоя цель - это "делать" или "создать"? Делать игру или создать игру?
Если первое, то бери C, C++ тебе не нужен. Чем ниже уровень языка, тем лучше. Дорогу осилит идущий.
Если второй вариант, то тебе нужны Python или, многократно лучше, Lua в составе готового пакета разработки игр.
Самое первое, что стоит понять - это что нет никакого vs между C и C++. Вообще нет.
Вопрос некорректен. :)
Я не самый крутой программист, но попытаюсь внести какой-то вклад.
На чистом C игры обычно не пишут, т.к. C++ для этого удобней и мощнее, да и прикладное ПО писать на нём более удобно, но за это приходится платить сложностью языка, намучаешься с которым довольно сильно. Для MUD игр достаточно будет Java, т.к. будет полегче C++ и по моему мнению сокеты писать удобнее, нежели в Python, а клиент-серверные приложения используют не один язык, и зачастую тем языком, который обеспечивает связь клиент-сервер является как-раз Java. Есть хорошая книжка по ней, из серии Head First, в русском переводе вроде называлась "Изучаем Java", авторы Кэти Сьерра и Берт Бэйтс, легко читается и воспринимается и даёт основные знания по Java, в т.ч. веб-сокеты там тоже затрагиваются и объясняются понятным языком. Прикладное ПО же пишется в основном на C++ и C#, на остальном не особо удобно. По C# кстати тоже есть книжка из той серии, там вроде тоже про сокеты есть. Вообще эти языки отчасти похожи, так что зная один можно легко перейти на другой.
А что с C? Клиент-сервер вполне себе можно создать, но придется с этим разбираться, материала особо по этой теме я не встречал, поэтому возможно придется с этим долго ковыряться, про прикладное ПО я уже говорил. Хотя если ПО особо не претендует на звание сложного, то можно и на C попробовать написать.
Ben_r007, Java под ваши задачи подходит более чем С. Выгоднее она тем что кроссплатформенность из коробки, портирование между пк с разными осями будет безболезненным, портирование на andoid доставит удовольствие)
На С писать сложнее и дольше. Понятной новичку хорошей литературы меньше.
Андрей, О крассплатформенности, сейчас мне хватает Линукса. C под линукс идеален, ибо Linux разработан на Unix, а ядро Unix на C.
О литературе, а чем вас Ритчи и Керниган не устраивают?
О крассплатформенности, сейчас мне хватает Линукса
то что сейчас вас устраивает линукс это хорошо, а если вдруг игра окажется нужна не только вам, а скажем и еще паре тройке человек, заставите их сносить окошки или юзать виртуалбокс что бы поиграть?
C под линукс идеален, ибо Linux разработан на Unix, а ядро Unix на C.
С это ближе к драйверам, ос, прошивкам. С++ это ближе к высокопроизводительным играм и приложениям. -эти языки экономят память но здорово тратят время разработчика. К примеру парсер параметров(из json,csv...) на java/с# пишется за час, а такой же парсер параметров на с или с++ можно писать несколько дней и проходить по коду разными анализаторами. Имхо тесты на java/c# разрабатывать легче.
О литературе, а чем вас Ритчи и Керниган не устраивают
- устраивают, отличный учебник по языку написали.
Правда разработка по, это не только язык. Это и gui, и звук, и сеть, и базы данных, и как ни странно еще вагон и маленькая тележка особенностей работы. На java/c# работать удобнее, приятнее и быстрее нежели на с. Больше библиотек, больше примеров работы с этими библиотеками,шире сообщество.
Решать конечно вам, по сути выбор прост:
1)Геморой от написания велосипедов на с.
2) Быстрая разработка на java.
На счет производительности: java - подойдет для вашей игрушки как нельзя лучше
хм а причем тут линукс и игроки? Сервер же под линуксом,
- простите не правильно вас понял. Показалось что клиент сами писать будете(
может правда Java взять, А то в сишке надо понимать что такое указатели и тощиться от них.
- в сишке нужно понимать что такое указатели так как именно при помощи их (и еще пары инструментов) осуществляется работа с памятью.
Как ни странно работа с памятью есть и в java только используются иные средства.
java в этом плане выигрывает за счет того что работа с памятью начинается не с первого объявления переменной)
А для небольших проектов вообще можно не париться.
В любом случае если вам этой самой памяти будет нехватать то код можно вынести в с/с++
А мне указатели вроде нормально дались, хотя может я не изучал что-то, что надо было изучать... До "указателей на указатель на указатель..." по крайней мере всё было более-менее понятно :D