Caro Geforce,
Não resisti em responder sua pergunta.
E tranquilize-se, ela não é besta! Ela é interessante, importante e recorrente. Não sinta-se ofendido, mas já que você é novato, segue nosso mantra para iniciantes:
-- "Não tenho obrigação de ser humilde, mas não tenho o direito de ser egoísta e arrogante"
-- Eu não sou especial porque sei programar em C++.
-- Tenho obrigação de compartilhar conhecimento, principalmente bugs terríveis e boas descobertas
-- Java, C#, Javascript, PHP, "Perl, Ada, Lua e outras linguagens" são úteis
-- "Vou conhecer outras linguagens sempre que
possível, mas nunca para o ataque ou para defesa"
-- "Nunca irei defender C++ com meios coercivos, mas sempre com
condescendência e sapiência"
-- "Se meu código funcionar não é porque eu sou bom, pode ser que eu
tive sorte"
-- Insights nem sempre são geniais e preciso ser humilde para assumir quando eles são estúpidos
-- Se alguém não entender meu código, eu não sou esperto, sou incapaz de me expressar.
> -- Sempre que você estiver desenvolvendo "algo", analise se você
> não está construindo um "The Homer".
Procurei em alguns dicionários e não encontrei uma definição
satisfatória da palavra "The Homer". Qual o significado da palavra "The
Homer" nesta frase?
Guedes.
[3] http://www.research.att.com/~bs/new_learning.pdf
Estudar mais é sempre melhor que estudar menos, principalmente se você tem tempo e interesse.
Rodrigo Strauss2008/7/17 Geforce Iniciante <gefor...@hotmail.com>:
Bom, sou novato em C++. Nas minhas aulas eu uso muita coisa de C++ e
sinceramente muitas vezes não sei se o que eu estou usando é exclusivo
de C++ ou é do C.
Diversos lugares que eu procurei ajuda a respeito disseram que a única
vantagem de se saber C antes de C++ é que você tem uma maior
facilidade para aprender, mas não é necessário saber C para aprender C+
+.
Eu decidi, em paralelo às minhas aulas de C++, estudar C puro.
Continuo ou devo focar só no C++?
- Eu sou bem novato então me desculpem se eu perguntar algo meio
'besta' -
2008/7/17 Guedes <billg...@terra.com.br>:
Em Qui, 2008-07-17 às 10:22 -0300, Edgard Soares escreveu:
Procurei em alguns dicionários e não encontrei uma definição
> -- Sempre que você estiver desenvolvendo "algo", analise se você
> não está construindo um "The Homer".
satisfatória da palavra "The Homer". Qual o significado da palavra "The
Homer" nesta frase?
Guedes.
Acho que isto refere-se ao tópico Don't Build 'The Homer' do artigo "We Don't Need No Architects!" do Joseph Hofstader que saiu no The Architecture Journal 15 [1]; onde o conselho basicamente é de realizar uma auto-crítica durante o desenvolvimento para verificar se você não está saindo fora do escopo ou se você não está criando um monstro, pensando que você está criando uma obra de arte. Aliás, para quem preferir, há uma aplicação WPF que oferece uma interatividade bem interessante (não chega a ser impressionante) de várias edições deste jornal. E esta edição está bem interessante, recomendo a todos lerem pois ela trata sobre o papel do Arquiteto e acho que ela está bem esclarecedora. Além disto, confesso que já estou curioso para saber o que sairá na edição que será publicada no próximo mês.
Porém, não sei se este conselho do "The Homer" é apropriado para o tópico. Quando eu li ele pensei justamente no conselho do Stroustrup que o Caloni (mais rápido no gatilho) referenciou aqui. E César, você não está sendo chato, eu também aprecio bastante o "Learning Standard C++ as a New Language" [3] e penso que ele deve ser sempre resgatado nestas discussõe sobre aprendizado de C++.
E apesar do Ed ter resgatado um fragmento de uma mensagem antiga que eu escrevi, acho que o programador deve saber as duas linguagens, mas você deve se focar em uma linguagem por vez e não estudar duas paralelamente pois isto pode ficar confuso e improdutivo. Já que você já está estudando C++, aprofunde-se nela ao máximo neste momento, penso que isto será mais produtivo. Depois estude o que você perde ao usar apenas C ou C-style.
[snip]
> E eu decidi continuar estudando C puro em paralelo às minhas aulas de C
> ++. Quando eu estiver mais avançado no assunto decido por qual caminho
> optar, o que eu percebi é que se eu estudar C puro em paralelo só
> tenho a ganhar.
Eu não teria tanta certeza disto. Um pouco de conhecimento pode
na verdade ser pior.
Você pode acabar misturando as duas formas de programar, ao
invés de procurar pela forma correta de faze-lo naquele contexto (dependendo
da linguagem que está usando), e ter mais problemas.
Por exemplo usar malloc quando programando em C++, talvez somente
em alguns pontos, pois eh como você resolveria aquele pequeno problema
em C, já que você não fez aquela solução antes em C++.
Isso porém seria um problema passageiro obviamente, e assim que
você tivesse mais conhecimentos da linguagem que irá usar, você
vai usar soluções mais apropriadas.
Desculpe por adicionar ainda mais confusão,
--
Felipe Magno de Almeida
Na verdade não é tão simples.
Você nao pode usar free com espaços alocados com new
ou delete em espacos alocados com malloc.
Usar malloc/free em C++ não é a forma "padrão" de trabalhar
com alocação em C++. O correto seria usar new/delete ou
então os conceitos de allocator da STL.
Ter código C++-ish e C-ish juntos e iteragindo podem dificultar
a leitura do código fonte.
> T+
>
> Bruno
[snip]
Qual o problema de usar malloc no C++?
Entendi...
É que eu programava em C, e fui para o C#, e depois para o C++, o
resultado é que meu código até um tempo atrás tinha uma cara de
mistureba muito doida...
Ainda não descobri o que é smart pointers, e eu não uso a STL ou o
Boost (deve ser porque ainda não precisei deles, só precisei de um
sistema de array específico que eu mesmo fiz com template
rapidinho...)
Ou seja: estudar C e sair migrando, apesar de que garante que você
podera usar a linguagem alvo antes de aprender ela inteira, também
significa por ex ser maloqueiro :P
Esqueci de mencionar que antes de aprender C, eu aprendi BASIC para
portar jogos de MSX para um 286 (nessas horas que me sinto velho,
mesmo tendo só 20 anos)
Eu acho que preciso estudar engenharia de software ou algo do genero,
estou quebrando a cuca aqui tentando pensar como vou fazer o
gerenciamento das coisas no meu jogo (eu preciso de uma classe que
gerencia as coisas: ex, se eu digitar "render()" ela pega todos os
objetos guardados nela e renderiza, se eu digitar "cleanup()" ela
deleta tudo), e gerenciamento de recursos (carregar as imagens,
modelos e sons, somente uma vez, e depois deletar quando necessário)