Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Будущие С++


Автор: OneFourth 12.2.2006, 17:42
Сейчас все большую популярность набирает Си Шарп. Все больше работодателей требуют его знание. Да и в новых Виндусах (2003 сервер, виста) этот фреймворк включен по умолчанию (т.е. юзеру нет необходимости тянуть либу с сайта микрософт), что как я думаю еще больше увеличит популярность Си Шарпа.
Так есть ли смысл осваивать с++/MFC/WinAPI/COM и т.д. Или стоит сразу начать с С# and .NET ?

Сам я немного пишу на с++, PHP, Delphi.

Автор: chipset 12.2.2006, 18:20
MFC точно не имеет смысла изучать. C# -- имеет.
Но меня к примеру от него мутит, так что я не могу smile
C++ бросать никакого смысла не имеет.

Автор: Dark Elf 12.2.2006, 18:52
http://www.tiobe.com/tiobe_index/index.htm

C# пока лишь на 7-ом мечте smile

Хотя и у нас в Киеве очень многим конторам требуются программисты именно на этом языке

... И меня от этой смеси C++, Java, COM и Visual Basic мутит... с грустью вспоминаю насколько приятней было писать на С++ smile

Автор: MAKCim 12.2.2006, 19:08
C# вещь прспективная, ИМХО изучать стоит, хотя по мне лучше C++

Автор: DeadSoul 12.2.2006, 19:08
Цитата(Dark Elf @ 12.2.2006, 18:52 Найти цитируемый пост)
http://www.tiobe.com/tiobe_index/index.htm

А (Visual) Basic на 4-ом? Что-то не верю я этому сайту

Автор: WERITAS 12.2.2006, 23:03
Хм... А мне нравится Microsoft Foundation Classes (MFC) несмотря ни на что!

Автор: Empirik 13.2.2006, 09:41
Господа, на сколько я понимаю С# и C++ предназначены для совершенно разных целей. С# - больше подходит для написание прикладных приложений, корпоративных программ. C++ - это системный язык, больше подходящий для написания игр, ОС, драйверов и тд. Да и по теме еще один вопрос, сама .NET виртуальная машина на чем написана?

Автор: Dreamer_0x01 13.2.2006, 10:03
Я несколько лет назад, когда учился в институте, самостоятельно в качестве курсовой работы изучал JAVA2 и сделал достаточно сложный проект на ней.
И в то время мне говорили, что вот-вот появится новый С, который кто-то назвал "убийцей Явы".
Как вы считаете, такое сопоставление имеет смысл, или все-таки JAVA и C# перекрывают разную область задач?

Мне скоро нужно будет сделать так, чтобы моя программа соединялась с неким сайтом и меняла его данные, то есть "перестраивала" некоторые файлы, находящиеся на сервере. Программа в данный момент написана на Visual C++ c использованием MFC. Вот я не знаю теперь, в какую сторону мне копать - продолжать освоение C++, или освоить для этой цели один из вышеприведенных языков? Но при этом обязтльно понадобится взаимодействие с С++,так как в программе очень много конструкций, работающих только на этом языке.

Автор: chaos 13.2.2006, 10:59
можно и из VC++ юзать .NET !!!

Автор: Ignat 13.2.2006, 11:19
Цитата(chaos @ 13.2.2006, 10:59 Найти цитируемый пост)
можно и из VC++ юзать .NET !!!

Давай подробнее...

Автор: chaos 13.2.2006, 11:38
Архитектура .NET и программирование на Visual C++
ПИТЕР ТОРСТЕИНСОН и РОБЕРТ ОБЕРГ

Автор: OneFourth 13.2.2006, 11:40
Цитата

С# - больше подходит для написание прикладных приложений, корпоративных программ.

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

Автор: chaos 13.2.2006, 11:41
вот стандартный пример(на VC++ с испорльзование .NET)
Код

#using <mscorlib.dll>
using namespace System;

void main(void)
{
    Console::WriteLine("Hello World");
}

Добавлено @ 11:43
так что я думаю(сам еще не пробовал использовать .NET ибо не требуетсЯ и как правельно заметил
OneFourth
Цитата
Меня смущает тот факт, что для си-шарпной программы юзеру прийдеться качать еще и фреймуорк
)
нет веских причин "спрыгивать" с VC++ и пока не предвидится. Так я думаю.
Добавлено @ 11:48
вот еще пример из этой же книги(см.выше)
Код

#using <mscorlib.dll>
using namespace System;

gc class InputWrapper
{
public:
    int getlnt(String *pprompt) // Строка
    {
        Console::Write(pprompt); // Запись
        String *pbuf = Console::ReadLine(); // Строка
        return Convert::ToInt32(pbuf); // Преобразовать
    }

    double getDouble(String *pprompt)
    {
        Console::Write(pprompt); // Запись
        String *pbuf = Console::ReadLine(); // Строка
        return Convert::ToDouble(pbuf); // Преобразовать
    }

    Decimal getDecimal(String *pprompt) // Десятичное число
    {
        Console::Write(pprompt); // Запись
        String *pbuf = Console::ReadLine(); // Строка
        return Convert::ToDecimal(pbuf); // Преобразовать
    }

    String *getString(String *pprompt) // Строка
    {
        Console::Write(pprompt); // Запись
        String *pbuf = Console::ReadLine(); // Строка
        return pbuf;
    }
}

void main(void)
{
    InputWrapper *piw = new InputWrapper;
    int numTerap = piw->getlnt("How many temp's? " ) ; // Сколько?
    for (int i = 0; i < numTemp; i++)
    {
        int fahr = piw->getlnt("Temp. (Fahrenheit): " ) ; // Фаренгейт
        int celsius = (fahr - 32) * 5 / 9; // Цельсия
        Console: .-WriteLine ("Fahrenheit = {0}", fahr.ToString()); // Фаренгейт
        Console::WriteLine("Celsius = {0}", box(celsius)); // Цельсия
    }
}

Автор: Ignat 13.2.2006, 11:53
chaos, подскажи магические ключи препроцессора, чтоб он перестал ругаться...
Что-то мучает подозрение, что это пример MC++.

Автор: chaos 13.2.2006, 11:54
во вспомнил smile
управляемый С++ это называется
Добавлено @ 11:57
Цитата(Ignat @ 13.2.2006, 11:53)
chaos, подскажи магические ключи препроцессора, чтоб он перестал ругаться...
Что-то мучает подозрение, что это пример MC++.

я бы знал)))
я так думаю что надо соответствующую студию(MS) и .NET Framework и все будет пучком
Добавлено @ 11:59
есть книга(см.выше) могу выложить куданить, весит это добро 10М, хотя в инете можно найти

Автор: Empirik 15.2.2006, 09:38
Цитата(OneFourth @ 13.2.2006, 11:40)
Цитата

С# - больше подходит для написание прикладных приложений, корпоративных программ.

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

Так, для того, что бы юзать java или php тебе то же необходимо качать среду выполнения для данных програм ( в случае с java - это среда выполнения программ, в php - интеплитатор) Просто за у добство и крос платформенность нужно платить

Автор: OneFourth 24.2.2006, 16:17
Цитата

Цитата(OneFourth @ 13.2.2006,  11:40)
Цитата

С# - больше подходит для написание прикладных приложений, корпоративных программ.

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

Так, для того, что бы юзать java или php тебе то же необходимо качать среду выполнения для данных програм ( в случае с java - это среда выполнения программ, в php - интеплитатор) Просто за у добство и крос платформенность нужно платить


Да, но РНР и ява - это языки для веб разработок. Простому юзеру что бы запустить РНР срипт нужно еще ставить веб-сервер, РНР и в некоторых случаях мускул. И этот процесс хоть и не сложный но для простого юзера вещь, скорее всего, непосильная. Другое дело си-шная прога. Скачал, запустил мастер уставноки... и готово... юзай себе на здоорвье.

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


Автор: Leksey 26.2.2006, 23:05
C++ CLI

Автор: kirjanov 27.2.2006, 09:44
C# - временное явление, имхо. Потом будет С## etc. Лучше знать posix стандарты чем технологии от microsoft. (Забудте все что знали раньше и учите .net)

Автор: OneFourth 3.4.2006, 16:37
Да, возможно POSIX стандарты менее подврежены глобальным изменеиям, в отличие от майкрософт. Но POSIX - это же программирование под юникс, это совсем другое. А речь идет о написании програм под Виндоус, что перспективнее с++ (MFC, COM, WinAPI) или все же будущее за C# и .NET? Кроме того, как я понимаю си шарп более прост в изучении нежели MFC, COM, WinAPI...

Автор: Daevaorn 3.4.2006, 18:41
Цитата(OneFourth @ 3.4.2006, 17:37 Найти цитируемый пост)
Но POSIX - это же программирование под юникс

Неа. Win200 и XP почти POSIX совместимы.

Автор: Helicopterr 5.4.2006, 12:36
Цитата(Dreamer_0x01 @ 13.2.2006, 10:03)
Как вы считаете, такое сопоставление имеет смысл, или все-таки JAVA и C# перекрывают разную область задач?

Ну да. Оба языка интерпритируемые и хороши когда важен объем программы. Языки можно сказать конкурирующие.
С# продвигается самой Microsoft, и скорее всего получится так, как было с Netscape и Internet Explorer.

Есть два очень серьезных недостатка С# о которых в принципе Microsoft могла бы и позаботится.

1. Зависимость С# программ не только от наличия Framework на машине пользователя но и от его версии.
Например если пользователь продвинут и у него стоит Framework 2,0 а вы писали в VS NET (Framework 1,1) попробуйте ка убедить его снести его 2,0 и поставить старенький - 1,1.
Но если у пользователя Framework 1,1 а вы писали под Framework 2,0 еще хуже.

2. С# программа это легко читаемый файл, почти исходник. Есть конечно обфускация, но от опытного аналитика она никогда не спасет. К тому же хорошие обфускаторы стоят хороших денег.

Автор: _hunter 5.4.2006, 13:07
а никто никого не заставляет сносить фрейм-ворки -- они прекрасно уживаются вместе ( у меня их три штуки стоит )
AFAIK точно такая же зависимость есть и у ява-программ...

Автор: ToshaCh 5.4.2006, 14:11
Цитата(Daevaorn @ 3.4.2006, 18:41 Найти цитируемый пост)
Неа. Win200 и XP почти POSIX совместимы.


Ага. Аж два раза. Если мелкомягкие перейдут к POSIX стандартам, то потеряют кучу денег, поскольку очень много программ и стредств программирования смогут легко портироваться с других, более взрослых ОСей. А сейчас этот процесс копитально затруднён.

Автор: Daevaorn 5.4.2006, 19:51
Цитата(ToshaCh @ 5.4.2006, 15:11 Найти цитируемый пост)
Ага. Аж два раза...

smile Аж три!
http://www.microsoft.com/technet/archive/ntwrkstn/reskit/poscomp.mspx?mfr=true
http://support.microsoft.com/default.aspx?scid=kb;en-us;149902
http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/Default.asp?url=/technet/prodtechnol/windows2000serv/reskit/prork/pric_run_scor.asp
и т.д.

Автор: nikitao 5.4.2006, 21:08
Вобщем,как я понял будущее туманно и пока лучше следовать тем путем который избрал ранее,а не перескакивать с одного чуда на другое smile

ЗЫ Честно говоря не думаю ,что мягкотелые станут убивать VC++. Уж больно много программистов его любят и за него горой будут стоять.Явления типа
Цитата(chipset @ 12.2.2006, 19:20 Найти цитируемый пост)
C# -- имеет.Но меня к примеру от него мутит, так что я не могу

не еденичные случаи,так что не все так плохо. ;) (ИМХО).Хотя все это домыслы.

Автор: AlexPro 5.4.2006, 21:23
Цитата(Helicopterr @ 5.4.2006, 12:36 Найти цитируемый пост)
1. Зависимость С# программ не только от наличия Framework на машине пользователя но и от его версии.
Например если пользователь продвинут и у него стоит Framework 2,0 а вы писали в VS NET (Framework 1,1) попробуйте ка убедить его снести его 2,0 и поставить старенький - 1,1.
Но если у пользователя Framework 1,1 а вы писали под Framework 2,0 еще хуже.

Они прекрасно живут вместе и друг другу не препятствуют. У меня три версии и никаких проблем. Это один из ключевых моментов технологии - исключение DLL hell.
Добавлено @ 21:26
Цитата(nikitao @ 5.4.2006, 21:08 Найти цитируемый пост)
Честно говоря не думаю ,что мягкотелые станут убивать VC++

Естественно, не будут. Не на VB же они будут писать операционки! И не на яве. smile

Автор: ToshaCh 6.4.2006, 10:22
Daevaorn,
Приведи независимые ссылки. Например организаций стандартизации. Тогда я поверю что Винда позикс совместима. А на своих сайтах они много сказок пишут. А на самом деле ничего этого нет.

Если перейти по первой ссылке, то там можно найти замечательную строчку:
Цитата

POSIX applications can be started from a Windows NT console window (command prompt), My Computer, the Windows NT Explorer, or by invocation from within another POSIX application.


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

Автор: _hunter 6.4.2006, 10:48
Цитата(AlexPro @ 5.4.2006, 21:23 Найти цитируемый пост)
Естественно, не будут. Не на VB же они будут писать операционки! И не на яве. smile

уже на шарпе пишут...

Автор: AlexPro 6.4.2006, 12:09
Цитата(_hunter @ 6.4.2006, 10:48 Найти цитируемый пост)
уже на шарпе пишут...

Операционку? Ты ничего не путаешь?

Автор: Ignat 6.4.2006, 12:11
AlexPro, в принципе, если среду выполнения дотнет включить в ядро оси, то почему бы и нет?

Автор: _hunter 6.4.2006, 12:16
операционку. проект зовется http://research.microsoft.com/os/singularity/

Автор: AlexPro 6.4.2006, 22:45
Цитата(Ignat @ 6.4.2006, 12:11 Найти цитируемый пост)
если среду выполнения дотнет включить в ядро оси, то почему бы и нет?

Для прикладных приложений - да. Это будет замечательно, не надо будет таскать фрэймворк. Но целиком написать операционку?..

Цитата(_hunter @ 6.4.2006, 12:16 Найти цитируемый пост)
проект зовется singularity

Я в шоке (почти). Куча вопросов. Ну, во-первых, я так понял, это экспериментальный проект, прототип будущей операционки. Это не значит, что он удачно завершится. Во вторых, как добираться до железа? С шарпе нет низкоуровневых средств, типа ассемблерных вставок, указателей и т.д. Как обращаться к BIOS? Как быть с драйверами, со службами - все это будет каждый раз компилиться во время загрузки компьютера? Так никакого Крея не хватит. И т.д. и т.п. В общем, у меня большие сомнения по поводу этого дела. Хотя, в Майкрософте не дураки сидят, наверняка просчитывали сложные моменты.

Автор: slvvv 7.4.2006, 08:10
Народ помогите составить простейшую программу на С . Вот задание:

Создать строку из повторений входной строки с контролем размера буфера.



Заранее спасибо

Автор: Ignat 7.4.2006, 08:16
slvvv,
Правила форума: http://forum.vingrad.ru/index.php?s=&act=SR&f=27

Почитайте на досуге.

Автор: pablo 7.4.2006, 13:29
Кстати, а .NET часом не в процессе переноса и под *NIX ?

Автор: ToshaCh 7.4.2006, 14:53
Цитата(pablo @ 7.4.2006, 13:29 Найти цитируемый пост)
Кстати, а .NET часом не в процессе переноса и под *NIX ?


Почти перенесли, как оказывается. Где-то это уже обсуждалось.

Автор: _hunter 7.4.2006, 15:03
насчет оффициального ( от МС ) переноса не знаю, но есть неоффициальный http://www.mono-project.com/Main_Page

Автор: ToshaCh 7.4.2006, 19:47
Официального думаю никогда не будет. По крайне мере в обозримом будущем.
И это откровенно говоря беспокоит. Зная любовь мелкомягких вставлять в код недокументированные закладки есть подозрение, что не получится полностью реализовать нет платформу на других системах.

Автор: PuLN 3.9.2006, 19:07
видел в инете статьи,мол Страуструп и Керниган пошутили,создав С++.
вот так вот.. smile 

Автор: AlexPro 7.9.2006, 03:08
Цитата(PuLN @  4.9.2006,  03:07 Найти цитируемый пост)
видел в инете статьи,мол Страуструп и Керниган пошутили,создав С++.

Несколько тяжеловесная получилась шуточка, не находите? smile  Столько горбатиться, чтобы разок приколоться... smile 

Автор: _hunter 7.9.2006, 10:56
это не плюсы ради шутки написали -- 'то интервью фейковое

Автор: MAKCim 7.9.2006, 14:55
Цитата

это не плюсы ради шутки написали -- 'то интервью фейковое 

побольше бы таких шуток  smile 

Автор: nikitao 7.9.2006, 20:00
Честно говоря БОЯН, но все равно улыбнуло   smile 

Автор: OneFourth 22.9.2006, 20:44
Цитата(PuLN @ 3.9.2006,  19:07)
видел в инете статьи,мол Страуструп и Керниган пошутили,создав С++.
вот так вот.. smile

А ссылочку можно?

Добавлено @ 20:46 
Да, кстати, Керниган "С++" не создавал вроде бы... Он к "С" руку прикладывал кажись...

Автор: MAKCim 22.9.2006, 21:10
Цитата

А ссылочку можно?

google

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)