Что такое хороший язык программирования на компьютере, чтобы узнать о веб-разработчике?

Я хочу изучить язык программирования на ПК, желательно C, С++ или С#. Я программист PHP/HTML/CSS, и я хотел бы попасть в настольные приложения. Мне нужно что-то довольно мощное, и я хотел бы иметь возможность создавать приложения с графическим интерфейсом Windows.

Что рекомендует сообщество? Есть ли какие-либо знания, которые я должен иметь перед погружением на эти языки?

Ответы

Ответ 1

изменить:

A веб-программист хочет создать приложения Windows, и вы рекомендуете C?

Что с вами не так?!

/изменить

Очевидно, что С#.

С# будет проще входить и позволит вам создавать приложения Windows с помощью WinForms или WPF и всех новых игрушек Microsoft в .NET. Если вы знаете свой путь вокруг PHP, вы уже должны быть знакомы с синтаксисом, объектно-ориентированными концепциями, обработкой исключений и т.д.

Я предлагаю вам не усложнять свою жизнь с помощью C и, определенно, не с С++, если вы хотите только создать графические интерфейсы Windows. Они обеспечивают хороший образовательный опыт, и они полезны для более продвинутых вещей (например, кросс-платформенная разработка с использованием других инструментальных средств), но ценой более крутой кривой обучения и снижения производительности.

Кроме того, если вы веб-разработчик, С# - это только язык из трех возможных вариантов (реалистично, хех) для Интернета. ASP.NET - это не плохая структура и, возможно, стоит исследовать тоже.

Ответ 2

Кратко взгляните на C сначала на уровень написания нескольких обучающих программ. C небольшой, четко определенный, и определенное определение языка (Kernighan и Ritchie - язык программирования C) составляет всего пару сотен страниц. Хотя получить голову вокруг указателей и рекурсии может быть проблемой, язык сам по себе достаточно мал, чтобы он мог полностью знать язык. Одно из удовольствий написания C - это не слишком сложно достичь уровня, на котором можно просто закодировать, без необходимости постоянно ссылаться на документацию, чтобы увидеть, как использовать малозначную функцию x или библиотечную функцию y. Подумайте о том, как учиться на C как на фундаменте.

Однако для написания полезных приложений вы хотите использовать С++ или С#. Это зависит от того, что вы хотите написать. С#, вероятно, будет оцениваться в большинстве случаев, ориентированных на бизнес, из-за сбора мусора и общей простоты использования, но С++ будет забивать для высокопроизводительных, низкоуровневых или игровых доменов. Там также доступно огромное количество кода библиотеки С++, который можно использовать относительно легко (и чистый C-код тоже легко адаптируется). Если ваша цель - написать что-то с конкретной проблемой, то доступность таких может, скорее всего, компенсировать более высокие накладные расходы, которые С++ выполняет только.

В качестве примера на этом я сделал отфильтрованный поиск в 'image' на Sourceforge и возвратил следующий счетчик проекта

С#: 139
С++: 569

И даже с чем-то целенаправленно более ориентированным на бизнес С++ все еще оценивается выше - "finance"

С#: 12
С++: 32

С чем-либо математическим или техническим балл сильно взвешен против С# - 'фрактал'

С#: 4
С++: 44
C: 24 < - (С++ явно исключено)

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

Afterthought edit: Еще одна причина, по крайней мере, для ознакомления с C первым заключается в том, что там также Objective-C в качестве основной среды разработки на Mac и iPhone. Objective-C - это C с очень тонкой оболочкой и только на самом деле первый двоюродный брат С++, поэтому, если вы планируете, что вы когда-либо находитесь в том месте, где хотите перекодировать код или разрабатывать непосредственно на Mac, я думаю, вы бы находят его менее запутанным, если вы хотя бы немного ощущаете, как С++ (или С#) строит на C, а не "шагать в сторону" по дереву.

Ответ 3

"Мне нужно что-то довольно мощное, и я хотел бы иметь возможность создавать приложения с графическим интерфейсом Windows".

Для богатых оконных графических интерфейсов у меня возникнет соблазн взглянуть на варианты "xaml": WPF (полный рабочий стол) и Silverlight (например, flash) - это даст вам новейшие инструменты и т.д., а также большую мощность стилизации.

Для этого основным выбором будет С#. Управляемый С++ - это вариант, но он больше работает.

Ответ 4

С# и другие действительно решают совсем другие вещи, но, учитывая ваш веб-фон и быстрый подход к разработке, я бы обязательно пошел с С#

Ответ 5

Мое предложение - изучить С++. С# хорош, но это помешает вам написать переносимый код. Если вы изучаете С++, у вас есть много вариантов. В Windows вы можете использовать приложение Windows Forms или WPF с .NET framework. MFC - еще один хороший выбор. QT - это другой выбор, который работает на нескольких платформах. Таким образом, изучая один язык, вы можете писать код для нескольких платформ, и у вас есть множество графических графиков. Изучив С++, изучение С# было бы тривиальным.

Все лучшее

Ответ 6

С# - это язык самого высокого уровня, что означает, что это самый простой способ выполнить то, что вы хотите.

Windows GUI можно сделать с С++ и даже с C, но это сложнее.

Ответ 7

обязательно перейдем к основам: узнайте C.

тогда перейдите к своей реальной цели. если вы хотите, чтобы все шансы на выход мультиплатформенного С# были отброшены. вам нужно пойти с С++ и Qt или wxWindows.

Ответ 8

По-моему, вы должны начать изучать C, чтобы иметь базовые знания о таких аспектах, как память, доступ к файлам. C является низкоуровневым языком, это означает, что у вас будет больше контроля над доступом к операционной системе, но для создания приложений Windows вам придется кодировать множество строк кода. По этой причине, после выполнения нескольких действий с C, я должен начать с С# с Visual Studio 2008..NET Framework поставляется с огромным количеством классов, что облегчает вашу жизнь.

Надеюсь, это поможет. С уважением. Josema.

Ответ 9

C/С++ позволяют выполнять низкоуровневое программирование. Это означает, что все возможно, но даже простые вещи могут быть трудными. Если это то, что вы имеете в виду, когда говорите, что хотите что-то мощное, вы, вероятно, должны начать с С++. Это, по крайней мере, дает вам некоторые достойные библиотеки GUI (gtk + с gtkmm или qt), тогда как программирование GUI с C является болью.

Если, с другой стороны, вы хотите быстро разрабатывать приложения (и то, что вы подразумеваете под мощным), то, вероятно, С# - путь.

Ответ 10

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

Ответ 11

Сохраните C. Для тех людей, которые советуют учиться C, просьба дать аргументы для этого. Я утверждаю, что он не имеет никакой пользы для изучения C, а не С++. Я, в отличие от них, аргументы до вернул это утверждение.

В двух словах: C уже является подмножеством С++ для всех целей и целей, но это далеко не самое интересное подмножество. Это дает очень ограниченное представление о новой парадигме прораба. С другой стороны, C++ определяет несколько очень интересных новых парадигм, которые, кроме того, являются обобщением всего того, что может предложить C (т.е. Итераторы, которые являются обобщением указателей).

Повторить: если выбор между C и С++, выберите С++.

Ответ 12

Хотя я согласен с тем, что C "полезно", чтобы знать, что это, безусловно, уже не является существенным для большинства программистов. Для меня в эти дни основная функция заключается в том, что она дала мне представление о том, как базовое оборудование влияет на производительность и поведение программы, но на то, что ее конец. Я не использовал его в разработке за последние 9 лет.

Что касается понимания объектно-ориентированного развития, я считаю, что и С#, и С++ дадут вам прочную основу, но С++ намного более гибкий (и сложнее использовать правильно), в то время как С# является более последовательным и способным, если вы зайдете в разработку .NET. Поэтому я бы рекомендовал изучить С# и одну из "новых" технологий .NET-презентаций, таких как Windows Presentation Foundation или Silverlight. Кроме того, сначала изучите Windows Forms, но немного не хватает презентации.

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

Ответ 13

Опять же, еще один голос за С# и C. C. Cure C интересен с технической точки зрения и научит вас всем подробностям, но, правда, вам не нужно знать все детали, чтобы сделать заявку, Если ваша цель - заставить что-то работать, как это звучит, это С# сжимает. С# - это самый высокий уровень из трех, что означает меньшее время на борьбу с языком, больше времени на работу.

Мне кажется, что большинство людей рекомендуют вам учиться C, чтобы вы могли в конечном итоге улучшить С# -программы. Зачем ждать, идите прямо на С# и изучите его. Я думаю, что С++ - абсолютно отличный язык, и в один прекрасный день вы должны его изучить, но нет причин, по которым вы не можете сделать качественный язык С#, если вы никогда не изучали C или С++ - многие люди делают это каждый день!

Ответ 14

Перейдя через языки, сначала C на Unix, затем С++ с MFC, а затем С# (начиная с 1.0). Я думаю, что возвращение вовремя к более ранним воплощениям языка немного похоже на изучение латыни. О, возможно, просто что-то украл у Пола Грэма, но я согласен с этим.

C очень хорошо, если у вас должен быть минимальный размер объектного кода, очень хорош для встроенных файлов, где он один шаг на языке ассемблера. Я думаю о вещах, таких как Microchip PIC и т.д., Где у вас может быть только 1K слово программного пространства.

С++ очень хорош, если вы можете иметь больший размер объекта, но все же нужно иметь возможность забивать металл напрямую - так что такие вещи, как драйверы устройств, сетевые стеки и т.д. и т.д. Тип программы для склеивания, который находится под всем.

ОС может оказаться в любом из них - или, скорее, в сочетании с двумя программистами, с возрастом кода, с чем ему нужно взаимодействовать, глубина снега снаружи (всего еще один пробег и тогда я напишу этот метод!)

С# действительно хорош для бизнес-приложений с высоким уровнем бизнес-уровня. Они могут быть основанными на Интернете, основанными на клиентах, их сочетанием - это не имеет большого значения. Самое приятное в семействе .net заключается в том, что у вас есть богатая библиотека, для этого важного слоя, и он сильно развит, чтобы быть богаче все время.

По мере того, как компьютеры становятся более мощными, стоимость разработчика превышает стоимость процессора или памяти.

Перейдите на С#, проигнорируйте C и С++. К тому времени, когда вы довольны С#, вам не нужно будет программировать язык более низкого уровня для увеличения скорости.

Ответ 15

На самом деле не имеет значения, с какого языка вы начинаете, но если бы я был вами, я бы сделал:

Начните с основ в C (это, вероятно, будет трудно понять) Переместить в С++ И наконец С#

Ответ 16

Я бы посоветовал вам начать с С#, но быстро перейдите на С++, как только вы узнали, как правильно писать код, вы должны вернуться к своим корням. В настоящее время я изучаю электронику, потому что возвращаюсь еще дальше. Чем больше вы знаете о том, как и почему, тем лучше вы можете узнать, как лучше всего добраться туда, куда вам нужно идти. Я думаю, что программист на С#, который не знает ни одного языка более низкого уровня, собирается писать довольно субоптимальный код, но низкоуровневый программист, изучающий С#, будет чрезмерно осторожно относиться ко всем управляемым вещам. Итак, что бы вы ни выбрали, вам следует подумать об этом как в долгосрочной перспективе.

Ответ 17

Я бы пошел на С#.

Я сделал свое время (много) с другими 2 и нашел С# 'cleaner'. Вы также получаете богатую библиотеку всех функций, включенных в .Net. Я предполагаю, что вы не заинтересованы в разработке для других платформ, отличных от Windows, которые, возможно, были аргументом для перехода на C или С++. Я также предполагаю, что вам не нужно выжимать последнюю каплю производительности из системы, где C может дать вам небольшое преимущество.

Тем, кто говорит, что вам нужно научиться C, чтобы понять, как работает программа, я бы сказал, что вы должны научиться ассемблеру, чтобы понять, как работает C. Я сделал, и это действительно помогает, но действительно ли это стоит боль? Чтобы быть программистом, вам нужно включить свой мозг. Подумайте, что вы делаете и понимаете ваши инструменты!

Мое голосование: С#

Ответ 18

Изучите С#.

Хорошо начинать с основ, но лучше, чем начать с C, я бы начал с основ С#. Это даст вам прочную основу с тонкостями основ С# и после того, как вы сможете перейти к более продвинутым темам.

Например, вы можете взглянуть на Чарльза Петцольда ".NET Book Zero" здесь.

Ответ 19

Я рекомендую::

Сначала входите в C. потратите некоторое время на то, чтобы использовать его (но не слишком)

Затем перейдите в С#. что вы можете более легко справляться с графическим интерфейсом. IDE, например VisualStudio, может помочь вам в решении графического интерфейса.

Если вы хотите стать хорошим программистом C/С++/С#, то это может быть не очень хорошо, но я думаю, что вы не заинтересованы в том, чтобы быть Гуру или что-то в этом роде:)

Ответ 20

Есть намного больше рабочих мест, разрабатывающих приложения Windows на С#, чем C или С++. Изучите С#.

Ответ 21

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

Я бы изучил только С++, если у вас есть конкретные причины.

Если вы занимаетесь программированием на Windows, я бы рекомендовал вам сделать первые несколько глав одного из книг Petzold Programming Windows. Это даст вам общее представление о C и о том, как Windows работает на уровне чистого металла. Вам действительно не нужно учиться C. Чарльз Петцольд держит вас за руку и запускает вас в базовой программе Windows C.

Ответ 22

Изучите С#... если вы хотите разрабатывать настольные приложения.

Ответ 23

Без C/С++/С# опыт начинается с C. Редактировать: Хорошо, начинать прямо с С# или С++ не терять время. Вы не можете серьезно кодировать настольные приложения Windows с C больше, это просто больно.

Затем перейдите к объектно-ориентированным языкам, чтобы получить что-то более мощное.

Если вы не останетесь далеко от форм таблиц Windows, С# - это не лучший вариант, или проверьте форму пластины Mono.

IMO, С# гораздо более продвинутый, чем C и С++, вы быстрее создадите большое приложение. WPF librarues даст вам приятный интерфейс без стиля Windows (но только на системах Windows...)

Ответ 24

При правильном наборе библиотек память в стандартном С++ может стать такой же простой, как управляемые (интеллектуальные указатели). Некоторые библиотеки виджета С++ столь же просты в использовании, как и С#.NET. Однако он, вероятно, будет работать хуже, чем С# из-за нескольких слоев абстракции. А с С++ вам нужно изучить нестандартные библиотеки. С .NET большинство компонентов, которые вам нужны, являются стандартными.

C является древним и не имеет STL. Это требует от вас быть умным, но я сомневаюсь в его преимуществах.

Ответ 25

Мне нужно что-то довольно мощное, и я хотел бы иметь возможность создавать приложения с графическим интерфейсом Windows.

Well C довольно мощный, так что он будет обрабатывать эти критерии, но что-то вроде С# и WPF сделает жизнь так, но проще, если вы нацелитесь на приложения с графическим интерфейсом.

Ответ 26

Планируете ли вы создавать приложения на основе gui для окон? В зависимости от того, я рекомендую VB. Однако, учитывая ваш выбор, я бы выбрал С#.