Preciso tirar uma dúvida e pelo que já percebi o GUJ é o melhor lugar pra fazer isso, venho observando o fórum e vejo que tem muita gente qualificada e disposta a ajudar aqui.
Conheço a sintaxe de C ,onde iniciei em programação, nunca programei nela realmente(mas o conhecimento que ela me deu … sem palavras) até tentei criar algumas aplicações, mas era muito desgastante(sim ,eu ficava cansado mentalmente) e
passava horas em 3 linhas de código(exagero) por conta de compilação ,ponteiros etc;
Isso me desanimou bastante, fiquei seis meses sem mexer em programação
por que não via resultado e ficava muito tempo no computador sem me sentir
realizado(construir algo de real valor).
Aprendo por conta própria programação. Acho que isso é o bastante. Vamos ao que interessa.
A questão é a seguinte , teria como(seria viável e produtivo) construir programas ou sistemas seguros
(que eu não me preocupe com ponteiro ,gerenciamento de memória etc),
de fácil manutenção(mantido só por min ), talvez utilizando bibliotecas como boost ,
STL e ou a framework .NET em C++, ou seria melhor eu aprender C# ou Java.
Cara eu trabalho com C e C++ em uma empresa e confesso que não dá para desenvolver sistemas profissionais sem a preocupação com o gerenciamento de memória e a não utilização de ponteiros.
Mesmo utilizando STL ou OpenGL você vai cair em situações que só os ponteiros vão lhe ajudar. O gerenciamento da memória é crucial. Fui brincar de construir uma engine simples em OpenGL, coisa mínima, e precisei de ponteiros.
C# e Java, são linguagens excelentes e aconselho à todos os programadores C e C++ a estudarem elas. O mercado para C# e Java é muito bom e aliando com conhecimentos em HTML5, Javascript, CSS e JQuery, melhor ainda
Então ,eu não quero descartar o uso de ponteiros e gerenciamento de memória, mas também não quero me preocupar demais com isso ,até por que acho que esses são uns dos grades benefícios de C/C++.
Teria como diminuir o uso de gerenciamento de mémoria e ponteiros em C++ ,o meu maior medo é construir sistemas inseguros.
Outra coisa qual a diferença em usar C#.NET e C++.NET(C++/CLI), é só questão de sintaxe,acesso a banco de dados as duas tem a mesma produtividade e seria quase do mesmo modo ? Meu foco é desktop ,mas sei que não posso descartar a web .
Então, não há a necessidade de se preocupar demais, é questão de prática e costume. Fique atento aos recursos que você está alocando e se há mesmo a necessidade de alocar estes recursos, além de quando liberar a memória destes recursos, isto é muito importante não só ao término do programa mas em tempo de execução também.
Diminuir o uso de ponteiros e gerenciamento de memória depende do sistema, tem sistemas simples e tem sistemas complexos que usam muitos ponteiros, a questão é que ponteiros quando mal usados geram muita dor de cabeça principalmente quando você precisa descobrir algum tipo de comportamento estranho do sistema.
Eu não sou a melhor pessoa para lhe falar sobre o C++ / CLI pois não gosto muito e não tenho contato com o mesmo. Mas no meu ponto de vista o C++ / CLI torna um pouco mais simples incorporar código padrão C++ em aplicações .NET. A produtividade vai depender muito do seu grau de conhecimento na linguagem mas acredito que C# leve vantagem nisso. Em questões de performance eu prefiro não arriscar a dizer pois tenho amigos que dizem que C# é mais rápido que C++ / CLI e tenho amigos que dizem que é mais lento ou que tem a mesma velocidade. Nunca parei para comparar a velocidade de linguagem alguma em relação a outra.
Se você quer C++ eu lhe aconselho a se aperfeiçoar no C++ padrão, fuja desse C++/CLI. Se quer desktop, C# é uma ótima opção. Se quer C++ para Windows considere muita dedicação e carinho com a WinAPI ela não é difícil mas é bem chata.