Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: C#
DF2 :: ФОРУМЫ > Основные форумы > Софт и железо > Программирование / Coding
Страницы: 1, 2
Undead
Бамп.
В 18-м как с шарпом обстоит? Я, как 1Сник несчастный, фактически знаю его синтаксис (в 1С он аналогичен), но не практиковался. То есть, я даже не знаю, а как и где на нём кодить.
Стоит вообще начинать, или лучше сразу плюсы?
t800
Цитата(Undead @ 29 Apr 2018, 22:33) *
Бамп.
В 18-м как с шарпом обстоит? Я, как 1Сник несчастный, фактически знаю его синтаксис (в 1С он аналогичен), но не практиковался. То есть, я даже не знаю, а как и где на нём кодить.
Стоит вообще начинать, или лучше сразу плюсы?


Если с точки зрения Работы в GameDev то

C# - это Unity
C++ - Unreal Engine

Unreal Engine для начинающих сложней соответственно мелких проектов на нем делают меньшие и работу на UE Вы найдете скорей всего только в Офисе, если хотите работать на удаленке ИМХО лучше скрипты да ассеты на C# для Unity клепать. Вот так вот.

feanor
забавно читать тред 2012 года

Цитата
Я, как 1Сник несчастный, фактически знаю его синтаксис (в 1С он аналогичен)

лол

Цитата
Стоит вообще начинать, или лучше сразу плюсы?

Вообще-то их ниши вполне себе разошлись.
sergroj
Цитата(Undead @ 29 Apr 2018, 21:33) *
В 18-м как с шарпом обстоит?
Стоит вообще начинать, или лучше сразу плюсы?

Зависит от области, в которой хочешь работать и от того, насколько тебе по душе будет такой отсталый язык, как c++.
Undead
Цитата(sergroj @ 06 May 2018, 20:14) *
Цитата(Undead @ 29 Apr 2018, 21:33) *
В 18-м как с шарпом обстоит?
Стоит вообще начинать, или лучше сразу плюсы?

Зависит от области, в которой хочешь работать и от того, насколько тебе по душе будет такой отсталый язык, как c++.

Я хочу быть более-менее универсальным. Вообще моя цель близка к геймдеву, разработке своего софта и в далёкой перспективе - к своему движку. У меня не хватит времени на всё, что интересно, поэтому думаю выбирать из Java, C++ и C#.
Критерии - хорошая оптимизация, поддержка ассемблера, потенциально возможная мультиплатформенность. Но есть ещё один критерий - хватит ли у меня сил на освоение.
t800
Цитата(Undead @ 17 May 2018, 04:13) *
Цитата(sergroj @ 06 May 2018, 20:14) *
Цитата(Undead @ 29 Apr 2018, 21:33) *
В 18-м как с шарпом обстоит?
Стоит вообще начинать, или лучше сразу плюсы?

Зависит от области, в которой хочешь работать и от того, насколько тебе по душе будет такой отсталый язык, как c++.

Я хочу быть более-менее универсальным. Вообще моя цель близка к геймдеву, разработке своего софта и в далёкой перспективе - к своему движку. У меня не хватит времени на всё, что интересно, поэтому думаю выбирать из Java, C++ и C#.
Критерии - хорошая оптимизация, поддержка ассемблера, потенциально возможная мультиплатформенность. Но есть ещё один критерий - хватит ли у меня сил на освоение.


C# - это реально только винда.
Java - это никакого ASM

Соответственно, если Вы действительно планируете писать свой движок, то изучайте С++

Undead
Вероятно, придётся кодить на всех трёх на уровне джуниора, чтобы потом сделать выбор.
stoned_golem
Цитата(Undead @ 17 May 2018, 01:13) *
Цитата(sergroj @ 06 May 2018, 20:14) *
Цитата(Undead @ 29 Apr 2018, 21:33) *
В 18-м как с шарпом обстоит?
Стоит вообще начинать, или лучше сразу плюсы?

Зависит от области, в которой хочешь работать и от того, насколько тебе по душе будет такой отсталый язык, как c++.

Я хочу быть более-менее универсальным. Вообще моя цель близка к геймдеву, разработке своего софта и в далёкой перспективе - к своему движку. У меня не хватит времени на всё, что интересно, поэтому думаю выбирать из Java, C++ и C#.
Критерии - хорошая оптимизация, поддержка ассемблера, потенциально возможная мультиплатформенность. Но есть ещё один критерий - хватит ли у меня сил на освоение.


C++ не советовал бы. Сложно, сомнительная ситуация на рынке.

Java уж больно квадратично-гнездовая, скукота. Но платят норм.

C# поможет найти работу не в геймдеве, если не сложится. Ассемблер юзнуть не проблема - https://www.codeproject.com/Articles/1392/U...-assembler-in-C

(Я вообще на пыхе пишу, это лишь личное мнение smile.gif )
feanor
Цитата
Я хочу быть более-менее универсальным. Вообще моя цель близка к геймдеву, разработке своего софта и в далёкой перспективе - к своему движку. У меня не хватит времени на всё, что интересно, поэтому думаю выбирать из Java, C++ и C#.
Критерии - хорошая оптимизация, поддержка ассемблера, потенциально возможная мультиплатформенность. Но есть ещё один критерий - хватит ли у меня сил на освоение.




Если гейдев, то плюсы, так-то, но это "большой" гейдев, который реже белого слона. В тайге.
Реальность гейдева, кажца, это веселые фермы, клоноаркады и "три в ряд" на андроидоайфон.

Хорошая оптимизация как функционал языка - какая-то школьничья дичь. Нормально делай, нормально будет.
Ну, шарп и ява - байткод и сборщик мусора, а плюсы - нативные, с этим различием ничего не сделаешь, но в большинстве прикладных задач если ты уперся в производительность JVM/CLR, ты, скорее всего, сделал что-то не так.

С мультиплатформенностью сомнительное первое место берет джава, наверн (одинаково мерзко работает на всех платформах, зато без перекомпиляции), потом плюсы, потом шарп (у него получше, чем пять лет назад, но все равно не восторг. Хотя игрушки на OpenTK сожрет, вроде, и моно, и ксамарин)

Ассемблер? В 2018 году и, более того, на перспективу? Как аргумент? Серьезно?

Цитата
Ассемблер юзнуть не проблема - https://www.codeproject.com/Articles/1392/U...-assembler-in-C

чисто прагматически - проблема, по крайней мере, по сравнению с плюсами с их declspec(naked) и инлайновыми асмовыми вставками.
просто потому что накладные расходы на переход к неуправляемому коду/маршаллинг данных великоваты, приходится выносить код в внешние либы сразу крупными кусками, и значит, все равно надо учить хотя бы ту же сишечку (хотя сишечку учить надо все равно, сишечка делает человеком).

с другой стороны, использование ассемблера - это прям вообще пример пресловутой преждевременной оптимизации
stoned_golem
Цитата(feanor @ 18 May 2018, 13:24) *
с другой стороны, использование ассемблера - это прям вообще пример пресловутой преждевременной оптимизации


Верно. И кроссплатформенности лишаемся.
Snake_B
т.е. желание написать свой движок никого не смущает?
stoned_golem
Цитата(Snake_B @ 18 May 2018, 22:39) *
т.е. желание написать свой движок никого не смущает?


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

хотя, если там какие-нибудь нарды, я не знаю..
t800
Цитата(Snake_B @ 19 May 2018, 03:28) *
и много их успешно написаных одиночками?

хотя, если там какие-нибудь нарды, я не знаю..



Успешно написаных - Вагон и маленькая тележка.

stoned_golem
Очевидно, свежеизобретенный велосипед окажется в итоге тем еще хламом. Обучение ставит первую цель разобраться, а не продукт сделать. Лучший способ разобраться - ковырять нутро других движков, заимствовать из них алгоритмы, адаптировать их под свой движок. Это учит главенству функции над формой, мыслить идеями, а не реализациями.
Undead
По всему выходит, лучше чистый си.

По движку мне нечего пока комментировать. Я не сказал, что буду делать его в одиночку + диздоков у меня хватает, да и курить существующие движки никто не запретит. Это цель на следующие 10 лет, а не на ближайшее время. Соответственно, и концепция заложена довольно глубокая. Учитывать будущее надо, да.
Я прогресснул в кодинге, так что понимаю возможные ограничения и проблемы, и именно поэтому ищу решения очень вдумчиво.
Спасибо за дельные мысли)
feanor
Цитата
По всему выходит, лучше чистый си.
Еще одно удивительное заключение!
Snake_B
Цитата(t800 @ 19 May 2018, 12:10) *
Успешно написаных - Вагон и маленькая тележка.


смотря что считать успешным.. то что они в принципе написаны.. или все таки у них был какой-то выхлоп..
feanor
Если без шуточек и контекста, то в разрезе general purpose/быдлоиндигеймдева и прочего кодитьдлясебя, набор рандомных плюсов/минусов:

pro C++:
- нейтив, как ни крути.
- огромное количество библиотек наработанного кода на любые нужды
- принципиальное отсутствие вендор-лока

contra C++:
- обратная сторона нейтива - гибкое балансирование между производительностью кода и производительностью программиста. Либо ты пишешь со всеми плюсами производительности, но впятеро медленнее, потому что ручное управление памятью, либо ты используешь умные указатели и кастомные менеджеры памяти, но тогда выигрыш в производительности куда-то волшебно пропадает.
- он язык без дизайна, и это уже навсегда. Родился как "С с классами", подожрал ООП (тоже реализованное, если верить уважаемым людям, без особого вкуса), потом попытался вобрать в себя модные фичи десятых, но так, что увидев в 2010 синтаксис лямбд я едва не начал заикаться и ссаться в штаны.
- boost. Просто boost. Это как плюсы внутри плюсов, если кажется, что от предыдущего пункта отчаяния недостаточно. И если не кажется - тоже, без их знания никуда.

pro Java:
- это хороший промышленный язык, на котором довольно сложно пробить себе ногу.
- под него есть куча диалектов с хорошей интеграцией. Scala, Groovy, вот этот вот Котлин, которые позволяют использовать иные стили и парадигмы по желанию, это не флейворное переключение между VB/C# или включения днищенского академического F#.
- Андроид, просто Андроид.

contra Java:
- слишком ориентирован на кровавый ынтерпрайз, фактически, кроме него, джава жива только андроидом. В нише страшненьких и прожорливых десктопных приложений (я в курсе, что десктоп нинужен) её вытеснил питон, геймдев на джаве - миф (ну как, серверные части-то как раз работа для джавы, но онлайн - это другое дело)
- она консервативна. Если бы в 2010 я бы посмотрел реализацию тех же лямбда-выражений в джаве, то я бы определенно не начал заикаться — потому что их добавили почти пять лет спустя.
- фабрики, которые конструируют фабрики, которые конструируют фабрики. Иногда стремление к чистоте дизайна заходит слишком далеко.

pro С#:
- он действительно универсален. Тут тебе и десктоп, тут тебе и серверы, и графоний, причем все нормально сделано. Рабочий язык Юнити, опять же.
- очень пологая кривая освоения, проще джавы и крестов
- по рабочим местам, особенно джуниорским, он ту же джаву уверенно обгоняет

contra C#
- он старательно следует дороге плюсов в плане зарастания фичами, причем зачастую - сомнительными либо не оч удачным синтаксическим сахаром. Каждая новая версия рутинно вызывает полыхание в обсуждениях и рост внутренних гайдлайнов, а версии выходят часто.
- завязка на Майкрософт, которая сильно влияет. После выкупа Моно Майкрософтом Моно/Xamarin ударными темпами подтягиваются до уровня шындошс разработки (они даже портировали Windows.Forms, боже мой), но проблемы с патентными формальностями и плохой имидж у МС продолжают вызывать некоторое недоверие.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2025 IPS, Inc.