| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Религиозные войны > Что лучше изучать С,С++ или С# ? |
| Автор: Samuil 6.10.2006, 04:46 |
| Привет! Хочу начать изучать С, не знаю что выбрать: С,С++,С# я с ними вообще не знаком, расскажите плиз в чем у них отличия, Буду искренне благодарен |
| Автор: Daevaorn 6.10.2006, 08:14 |
| Samuil, Кратко: С - язык уже достатчно старый, в основном сейчас для системного программирования применяется С++ - тоже не мололодой, но развивающийся и дающий большие возможности для программиста С# - новый язык внедояемы Microsoft. Применяется для разработки под платформу .NET. Вобрал в себя много достоиинст как С++, так и Java. Очень перспективный. Выбирать для освоения можно любой, изходя из потребностей. Ссылки: http://ru.wikipedia.org/wiki/%D0%A1%D0%B8_%28%D1%8F%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F%29 http://ru.wikipedia.org/wiki/C%2B%2B http://ru.wikipedia.org/wiki/C_Sharp |
| Автор: EvgenZ 6.10.2006, 09:25 |
| Как говорил мне препод, С# - это плагиат JAVA, если знаешь Java, то знаешь C# |
| Автор: Samuil 6.10.2006, 10:31 |
| А .Net для чего нужен?, И мне нужен такой язык чтоб под систему и под смарты можно было б писать что посоветуете? |
| Автор: keksus 6.10.2006, 10:33 |
| Сами языки, Java и C#, действительно очень похожи. В тоже время выучить непосредственно язык времени много не занимает и толку много не дает. Надо освоиться хотя бы со стандартными библиотеками, а они, увы, различаются достаточно сильно, не говоря уже про кучу технологий, на них основанных. Добавлено @ 10:35 .NET это виндовоз. А C++ и Java языки переносимые. |
| Автор: BreakPointMAN 6.10.2006, 10:49 |
Не только... |
| Автор: Daevaorn 6.10.2006, 13:33 | ||
Тогда С# для тебя в самый раз |
| Автор: MAKCim 6.10.2006, 15:01 | ||||||
Язык не может быть переносимым, язык есть язык Компиляторы/среды выполнения/виртуальные машины/... могут быть под разные платформы
Пока разработчик не будет продвигать продукт на другие платформы говорить об его идентичности продуктам сторонних разработчиков не приходится. Я хочу сказать что в .NET под M$ будут появляться новые возможности, которых просто не будет долгое время в других реализациях (Mono, dotGNU, ...), а это уже не гуд
Ну С - процедурный язык без поддержки на уровне синтаксиса ООП С++ - мультипарадигменный язык, включающий множество возможностей для написания программ в разных стилях, более типобезопасный чем С + поддержка, как и С, практически на всех платформах C# - один из языков .NET. По синтаксису схож с С/С++. В остальном они различаются (специфика платформы .NET) Я бы выбрал С/С++ & Java |
| Автор: reCoder 6.10.2006, 16:48 | ||
Поддерживаю. Вообщем, друг мой, выберай C++. Начинай его осваивать, и все остальные языки будут легче в изучении. Зная C/C++ как основу это большой плюс, темболее хорошо владеть C++ это хорошее качество. Это показывает твое понимание технологии программирования. После этого уже можешь выбирать отрасль уже, например между C# и Java. Я конечно за Java. Удачи |
| Автор: Samuil 7.10.2006, 04:19 |
| Спасибо большое, дело в том в java2SE и java2ME я программирую, но этого моло |
| Автор: MAKCim 7.10.2006, 10:06 | ||
Тогда С++, если припрет в UNIX программировать -> C (можно и на С++, но С - роднее |
| Автор: Exception 7.10.2006, 22:43 |
| А почему ты решил, что "надо изучать Си"? С# куда ближе к той же Яве, чем к С/С++. Так что почему бы тебе не остановиться на Яве? |
| Автор: Samuil 8.10.2006, 15:44 |
| Java в смартах имеет намного меньше возможностей чем Си предложение, в Windows не идет без JRE, а Си идет везде! |
| Автор: MAKCim 8.10.2006, 15:44 | ||||
|
| Автор: Samuil 9.10.2006, 18:08 |
| ТО что можно сделать на си то нельзя сделать на java и наоборот, В таком случае зачем нам учится? |
| Автор: Xenon 9.10.2006, 18:40 |
| mr.DUDA, сейчас начнется ... ты с яйцами так не шути |
| Автор: Samuil 10.10.2006, 10:46 |
| Не я не говорю конкретно насчет Си№ а вообще о Си |
| Автор: mr.DUDA 10.10.2006, 11:38 |
Что-то я не понял: как можно смешивать Си-подобные языки в одну кашу ? Ведь тогда и между Java, C#, PHP и C++ разницы нет. |
| Автор: Samuil 13.10.2006, 22:17 |
| Ну извините просто нис одним из си подобных я даже близко не знаком |
| Автор: 02077461 16.10.2006, 12:14 |
| Сначала определись для чего тебе нужен язык. Изучать язык для того, что бы изучать бессмысленно. Если ты хочешь привыкнуть к логике, то наверное идеально было бы начать с Pascal. Если ты хочешь программировать "для смартов" то для создания приложений а-ля jNotepad подойдет тебе и Java. Язык это всего лишь унструмент, нужна цель. Могу тебе сказать, если есть вермя, займись расширением кругозора, и тогда не будут возникать вопросы, типа чем бы занятся. |
| Автор: Exception 19.10.2006, 04:03 |
| Изучи brainfuck тогда уж. PS Просто все си-подобные языки похожи друг на друга только синтаксисом, и сравнивать их - это как сравнивать лампочку и шкаф. |
| Автор: bytes 8.11.2006, 23:18 |
| С/C++ ...потом Ява! |
| Автор: alir 10.11.2006, 14:47 | ||
Вот как раз в такой последовательности и изучай. |
| Автор: Sun 10.11.2006, 15:21 | ||||
Нет, M$ больше любит продвигать путь QBasic\VBasic\VBasic.Net
Вам это ничего не напоминает? |
| Автор: Exception 10.11.2006, 17:59 | ||||
1) В C# 3.0. Это будет .NET 3.5 (да-да, я тоже считаю их именование версий идиотским). 2) Вообще-то, это пишется так:
3) Этот код не значит, что переменная не имеет типа, просто компилятор сам его вычисляет на основе присваиваемого выражения. IntelliSense работает как с нормально объявленной переменной. 4) Type inference (это так называется) не нужно применять где попало. В C++ есть перегрузка оператора =, и что, это плохо? Да, если ты её применяешь где попало, ничего хорошего не выйдет. А применять с умом её тебе никто не запретит. Например, если тип длинный и состоит из кучи вложенных generic-ов (а ля IEnumerable<Foo<Bar>>), а также для поддержки анонимных типов. P.S. Кстати, как данная конструкция связана с бейсиком и каким именно? |
| Автор: Sun 10.11.2006, 21:24 | ||||||
Ну вообщем-то уверен что идея перекочевала именно оттуда. В бэйсике есть так называемый тип Variant, который определяется во время выполнения. Все операции с COM объектами его используют в качестве параметра. Представляет этот тип сложную струтуру такого вида:
В бэйсик это безобразие очень активно используется. Насчет .NET 3.5 врать не буду (пока его не щупал). Но моё чутье подсказывает что это одного поля ягода. Ты кстати уверен что тип определяется только во время компиляции и не может быть определен во время выполнения? Неужто конструкции вида
невозможны? |
| Автор: Sun 10.11.2006, 22:07 |
| Почитал про var и понял что это все-таки не Variant. Похоже во время выполнения программы ему подсунуть неизвестный тип не удасться. Видимо это действительно как и было заявлено тип для анонимных классов. Тогда респект! Снимаю шляпу |
| Автор: unsigned 21.12.2006, 00:52 |
| ИМХО для начинающего освоить сначала С и по практиковаться на нем, а С++ это разширенные С ,так что его изучение пойдет ка по маслу веслом! |
| Автор: nerezus 21.12.2006, 09:15 | ||
|
| Автор: MAKCim 21.12.2006, 14:32 | ||
В большинстве случаев совместимость снизу-вверх есть |
| Автор: SergeCpp 21.12.2006, 16:48 |
| http://www.research.att.com/~bs/sibling_rivalry.pdf http://www.research.att.com/~bs/new_learning.pdf Bjarne Stroustrup |
| Автор: nerezus 21.12.2006, 21:36 | ||
Я сначала С++ учил, а только потом С =) Если считать, что от С к С++, то это же просто потому, что у них общая часть синтаксиса =) Но подходы то к программированию в корне разные |
| Автор: mr.DUDA 21.12.2006, 23:01 | ||
Ы, может и поздновато реакция поступила, но: таки да ! Проверка проходит в рантайме, с пом. рефлекшна. Но мало того ! Находясь в редакторе исходного кода, возможно обращаться к полям/методам/свойствам через точку объекта var. Вот ведь прогресс, млин. Компиляция кода стала настолько быстрой, что можно предугадать тип в нетипизированной переменной -- достаточно прямо при наборе исходника оперативно откомпилировать код и посмотреть какие типы данных могут попасть в эту переменную, и т.д. |
| Автор: MAKCim 21.12.2006, 23:15 | ||||
в большинстве случаев сырцы на С компилируются С++-компилятором используя extern "C" можно использовать либы, написанные на С Добавлено @ 23:16
имхо, так и надо делать |
| Автор: Выхухоль 9.10.2008, 17:41 | ||
Могет запоздало но все таки скажу... товарищ Либерти писал (цитировать не буду) шо изучать С перед С++ не просто не желательно..а вообщем не канающе.. Начет выбора языка: в твоем случае, если я правильно понял лучше те юзать С++, так как .NET нуно ставить на винду (В XP ее нэт, а это я вам скажу сино впаривает с внедрением приложений) , естесно если ты опять тот же С++ не будешь юзать как С++.NET Начет Java и C# спор будет вечен, -ну и взяли малость операторов у JAVA ну и шо, зато С# развивается ужо куда более сильными скачками и кодить на нем все легче и легче (хотя и мудреней, но мудрость никому еще не помешала) |
| Автор: QryStaL 9.10.2008, 17:58 |
| http://reddevnews.com/news/print.aspx?editorialsid=10250 |