|
![]() |
||
c++ ou java?
|
||
. Nós temos 759.270 usuários, convidamos você fazer parte de nossa comunidade também! Se ainda não encontrou o que procura use nossa pesquisa. Esperamos que aprecie nosso trabalho.
![]() |
|
|
Opções do Tópico |
|
|
#1 (permalink) |
|
Novo Membro
Registrado em: Mar 2004
Mensagens: 60
Reputação: 17
![]() |
sou iniciante em c ansi, e estou afim de aprender uma linguagem orientada a objeto. sei que talvez seria mais facil pra mim aprender C++, mas será que o C++ faz tudo que o Java faz?
__________________
Insano Surreal |
|
|
|
|
|
#2 (permalink) |
|
Membro Senior
Registrado em: Apr 2003
Localização: Dpto. de Informática
Mensagens: 219
Reputação: 19
![]() |
Do Java pouco sei... contudo, sei que é uma linguagem interpretada: necessita do Virtual Machine, que o multithread é uma das vantagens do Java, assim como a indiscutível facilidade e "descanso" que as Garbage Collection fornecem... O C++ não tem nada disso! E imagino que o Java seja uma linguagem utilizada principalmente para a Web...
Contudo, acredito que quem aprendeu C++, não deverá ter grandes dificuldades em "assimilar" Java...e muito provavelmete, o oposto também será verdade... :lol: Mas quem tenha o conhecimento de ambas as linguagens que se manifeste 8) |
|
|
|
|
|
#3 (permalink) | |
|
Super Participante
Registrado em: Dec 2001
Mensagens: 937
Reputação: 23
![]() |
Citação:
A principal vantagem do java é a portabilidade do código, que é melhor que a do C++(Apesar se o codigo em C++ for bem escrito, a portabilidadde é muito boa).
__________________
Linux User:#326216 Intel I7 - 920 - 6G DDR3 Tripple Channel @1600 - Geforce 285 1G. Programador ADVPL(Fazer o que é o que ta pagando as contas no momento...) |
|
|
|
|
|
|
#4 (permalink) | |
|
Membro Senior
Registrado em: Apr 2003
Localização: Dpto. de Informática
Mensagens: 219
Reputação: 19
![]() |
Citação:
Mas sendo assim, a pergunta talvez seja: o que o Java faz que o C++ não faz ?? :lol: |
|
|
|
|
|
|
#5 (permalink) |
|
Newbie
|
vc quer só aprender???????? o java é masi facil de aprender........ porem se depois vc mudar de ideia será masi dificil aprender c++.... mas se tiver chance de vc mudar, aprenda c++, pq se vc aprender c++ com 1 dia vc aprende java ( é quase isso) , pq java é muito masi simples q c++, não tem alocação dinamica de memoria, vc não precisa ficar preocupado em desalocar o q alocou......... java é uma linguagem muito mais simples......... você vai conseguir fazer as mesmas coisas usando ambas linguagens...........
__________________
Athlon XP 2400+ Asus A7V266-MX HD Maxtor 120 gb 7200rpm ATA 133 -> Windows 2003 Server -> Linux Mandrake 10.0 256Mb DDR 266Mhz CD LG 52x |
|
|
|
|
|
#6 (permalink) | |
|
Newbie
Registrado em: Dec 2004
Mensagens: 9
Reputação: 0
![]() |
Citação:
ela contraria o que eu pensava da linguagem até agora... c++ nao tem multithread tampouco suporte a sockets e etc? :?: |
|
|
|
|
|
|
#7 (permalink) | |||
|
Veterano
Registrado em: Nov 2004
Mensagens: 1.055
Reputação: 17
![]() |
Citação:
Citação:
Citação:
Sobre "garbage collection": sim, garbage collection é um recurso positivo, mas não faz mágica. Mesmo com garbage collection, é possível escrever programas que aprensentam memory leaks, levando a um OutOfMemoryError. Ei, InsanoSurreal: Acho que esse tópico está trazendo mais confusão do que esclarecimento aos iniciantes em ambas as linguagens. Se você quer aprender uma linguagem orientada a objeto, e está em dúvida entre Java e C++, Java então seria uma escolha natural, pois enquanto Java é puramente orientada a objeto, C++ é uma linguagem híbrida.
__________________
Jeferson Charles Mayer "Como é que eu vou enxergar a tal floresta, com todas essas árvores atrapalhando a visão?" |
|||
|
|
|
|
|
#8 (permalink) | |
|
Veterano
Registrado em: Nov 2004
Mensagens: 1.055
Reputação: 17
![]() |
Citação:
__________________
Jeferson Charles Mayer "Como é que eu vou enxergar a tal floresta, com todas essas árvores atrapalhando a visão?" |
|
|
|
|
|
|
#9 (permalink) |
|
Tô em todas
Registrado em: Apr 2002
Localização: Paulista/PE
Mensagens: 1.642
Reputação: 525
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
pergunta simples:
as bibliotecas que implementam o c++ são escritas em que linguagem?? t+ |
|
|
|
|
|
#10 (permalink) | |
|
Veterano
Registrado em: Nov 2004
Mensagens: 1.055
Reputação: 17
![]() |
Citação:
__________________
Jeferson Charles Mayer "Como é que eu vou enxergar a tal floresta, com todas essas árvores atrapalhando a visão?" |
|
|
|
|
|
|
#11 (permalink) | |
|
Veterano
Registrado em: Oct 2002
Localização: Curitiba
Mensagens: 1.437
Reputação: 21
![]() |
Citação:
E abrindo um perênteses aqui: programação Java é muito chata! Pelo menos eu acho. C++ eu acho até mais organizado... mas claro que depende muito de programador... Claro a portabilidade é um ponto bem forte, mas nada que uma recompilada nos fontes também não resolva ![]()
__________________
Calma! Não tema! Com Slackware não há problema! ----------------- Slackware 11.0 AMD Athlon64 3000+@1800 OpenGL Programmer Assembler n00b |
|
|
|
|
|
|
#12 (permalink) | |
|
Veterano
Registrado em: Nov 2004
Mensagens: 1.055
Reputação: 17
![]() |
Citação:
Fica difícil discutir tópicos como esse sem discutir questões como: coesão e acoplamento, design patterns e antipatterns, arquitetura de software, etc. Infelizmente, muitos programadores nem mesmo sabem o que são alguns desses conceitos. Alguns conhecem linguagens de programação apenas superficialmente, mas não sabem, por exemplo, interpretar uma BNF, ou avaliar a escalabilidade de um sistema, ou sincronizar threads, ou mesmo escrever algoritmos adequados. Ah, e certamente, há também a questão do gosto pessoal. E gosto não se discute (no máximo, se lamenta :-)) Atualmente, sou programador C/C++ e Java. São linguagens diferentes, com objetivos diferentes, e características positivas e negativas. Como muita coisa na vida.
__________________
Jeferson Charles Mayer "Como é que eu vou enxergar a tal floresta, com todas essas árvores atrapalhando a visão?" |
|
|
|
|
|
|
#13 (permalink) |
|
Tô em todas
Registrado em: Apr 2002
Localização: Paulista/PE
Mensagens: 1.642
Reputação: 525
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
valeu ...
t+ |
|
|
|
|
|
#14 (permalink) | |||||||
|
Highlander
Registrado em: May 2002
Localização: Tijuca/RJ
Idade: 9
Mensagens: 87.782
Reputação: 1756
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Uia, outro morto-vivo à solta... acho que vou espalhar sal por esta sala, os zumbis detestam sal.
Vamos lá: Citação:
Citação:
Citação:
Nossa, essa frase ficou POO demais...Citação:
Citação:
Citação:
Citação:
(*) Von Newman (pronuncia-se "fon nóiman", pelo menos era como meus professores o chamavam) formulou alguns princípios básicos do modelo de programação, o principal deles é que os programas deveriam ser cadeias de instruções simples, que deveriam ser executadas em sequência, uma por vez. As implicações disso são várias, a começar pela arquitetura dos processadores, que se baseiam nesse princípio para usar um "contador de programa", que nada mais é do que o indicador de qual instrução ele vai processar a seguir. Outra implicação disso é que, como as instruções são processadas em sequência, você pode admitir que se o processador executou uma instrução no endereço X, há uma chance enorme de que a próxima instrução a ser executada seja a do endereço X+1. E mesmo que não seja, a chance de que esteja próxima de X (antes ou depois) ainda é imensa. Isso é o chamado "princípio da localidade", e é a base do funcionamento das caches. Um programa orientado a objeto é chamado "não Von Newman" pois não há uma correlação entre as instruções. Na verdade, não há "um fluxo de programa"; tudo pode acontecer ao mesmo tempo, e pode não acontecer nada. O controle flui de um objeto para o outro através de mensagens, e nada impede que num determinado momento qualquer objeto mande mensagem para qualquer outro objeto. O que significa que podem haver mensagens simultâneas. Em POO pura, o tempo não existe. Quando você insere o conceito de tempo na POO, vc cria um novo
__________________
Visite Quepolis (link de indicação) | "chmod 777 nunca ajudou ninguém" (c) 2002-2010 JQueiroz/FGdH
CCNP: √ ² CCSI: □ | Conheça o Novo Bebuns ![]() |
|||||||
|
|
|
|
|
#15 (permalink) | |||||||
|
Highlander
Registrado em: May 2002
Localização: Tijuca/RJ
Idade: 9
Mensagens: 87.782
Reputação: 1756
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Uia, outro morto-vivo à solta... acho que vou espalhar sal por esta sala, os zumbis detestam sal.
Vamos lá: Citação:
Citação:
Citação:
Nossa, essa frase ficou POO demais...Citação:
Citação:
Citação:
Citação:
(*) Von Newman (pronuncia-se "fon nóiman", pelo menos era como meus professores o chamavam) formulou alguns princípios básicos do modelo de programação, o principal deles é que os programas deveriam ser cadeias de instruções simples, que deveriam ser executadas em sequência, uma por vez. As implicações disso são várias, a começar pela arquitetura dos processadores, que se baseiam nesse princípio para usar um "contador de programa", que nada mais é do que o indicador de qual instrução ele vai processar a seguir. Outra implicação disso é que, como as instruções são processadas em sequência, você pode admitir que se o processador executou uma instrução no endereço X, há uma chance enorme de que a próxima instrução a ser executada seja a do endereço X+1. E mesmo que não seja, a chance de que esteja próxima de X (antes ou depois) ainda é imensa. Isso é o chamado "princípio da localidade", e é a base do funcionamento das caches. Um programa orientado a objeto é chamado "não Von Newman" pois não há uma correlação entre as instruções. Na verdade, não há "um fluxo de programa"; tudo pode acontecer ao mesmo tempo, e pode não acontecer nada. O controle flui de um objeto para o outro através de mensagens, e nada impede que num determinado momento qualquer objeto mande mensagem para qualquer outro objeto. O que significa que podem haver mensagens simultâneas. Em POO pura, o tempo não existe. Quando você insere o conceito de tempo na POO, vc cria um novo conceito de programação chamado "Programação Orientada a Eventos". Mas aí já complica demais.
__________________
Visite Quepolis (link de indicação) | "chmod 777 nunca ajudou ninguém" (c) 2002-2010 JQueiroz/FGdH
CCNP: √ ² CCSI: □ | Conheça o Novo Bebuns ![]() |
|||||||
|
|
|
|
|
#16 (permalink) | ||||
|
Veterano
Registrado em: Nov 2004
Mensagens: 1.055
Reputação: 17
![]() |
Citação:
Citação:
Além disso, em C++, é possível alocar objetos no stack ou no heap. Posso escrever programas enormes sem nunca utilizar o operador new, e portanto, não preciso me preocupar com desalocar memória com delete. Citação:
Citação:
__________________
Jeferson Charles Mayer "Como é que eu vou enxergar a tal floresta, com todas essas árvores atrapalhando a visão?" |
||||
|
|
|
|
|
#17 (permalink) | |||
|
Highlander
Registrado em: May 2002
Localização: Tijuca/RJ
Idade: 9
Mensagens: 87.782
Reputação: 1756
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Citação:
Citação:
Citação:
__________________
Visite Quepolis (link de indicação) | "chmod 777 nunca ajudou ninguém" (c) 2002-2010 JQueiroz/FGdH
CCNP: √ ² CCSI: □ | Conheça o Novo Bebuns ![]() |
|||
|
|
|
|
|
#18 (permalink) | |||
|
Veterano
Registrado em: Nov 2004
Mensagens: 1.055
Reputação: 17
![]() |
Citação:
Citação:
Por que motivo esse código: Código:
Código:
Citação:
__________________
Jeferson Charles Mayer "Como é que eu vou enxergar a tal floresta, com todas essas árvores atrapalhando a visão?" |
|||
|
|
|
|
|
#19 (permalink) | |
|
Highlander
Registrado em: May 2002
Localização: Tijuca/RJ
Idade: 9
Mensagens: 87.782
Reputação: 1756
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Citação:
Depois eu vi o seu exemplo, e apesar de não ter "mudado de idéia", vejo que minha alegoria não se aplica. Mas fico um pouco de pé atrás, pois você não deixa de estar usando uma característica da linguagem que está fortemente associada ao caráter híbrido dela... pois você não está alocando as variáveis "no stack", está criando no "registro de ativação da função". Por acaso, nessa implementação, eles andam juntos (também por acaso, todas as que eu conheço fazem isso --- mas não há nada que impeça que não seja feito). E o registro de ativação é uma característica específica das linguagens estruturadas. Fico pensando em como seu programa se comportaria num sistema realmente OO, onde vc não tem variáveis "simples" ou stack, vc só tem "objetos". Poderia se comportar magistralmente bem, se vc tiver usado o registro de ativação apenas como um atalho para a criação dos objetos, ou desastrosamente ruim, se vc tiver tirado algum proveito desse atalho que cause efeitos colaterais.
__________________
Visite Quepolis (link de indicação) | "chmod 777 nunca ajudou ninguém" (c) 2002-2010 JQueiroz/FGdH
CCNP: √ ² CCSI: □ | Conheça o Novo Bebuns ![]() |
|
|
|
|
|
|
#20 (permalink) | ||||
|
Veterano
Registrado em: Nov 2004
Mensagens: 1.055
Reputação: 17
![]() |
Citação:
Citação:
Há muitas informações sobre os trade-offs entre alocação no frame ou no heap. Segue aqui um link do MSDN: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore98/html/_core_memory_management.3a_.frame_allocation.asp Trechos do texto: "The key advantage of allocating objects on the frame is that they are automatically deleted. When you allocate your objects on the frame, you don’t have to worry about forgotten objects causing memory leaks." ... "A disadvantage of frame allocation is that frame variables cannot be used outside their scope. Another factor in choosing frame allocation versus heap allocation is that for large structures and objects, it is often better to use the heap instead of the stack for storage since stack space is often limited." Citação:
http://java.sun.com/docs/books/vmspec/2nd-edition/html/Overview.doc.html#1962 Trecho da JLS: "A frame is used to store data and partial results, as well as to perform dynamic linking , return values for methods, and dispatch exceptions. A new frame is created each time a method is invoked. A frame is destroyed when its method invocation completes, whether that completion is normal or abrupt (it throws an uncaught exception). Frames are allocated from the Java virtual machine stack (§3.5.2) of the thread creating the frame. Each frame has its own array of local variables (§3.6.1), its own operand stack (§3.6.2), and a reference to the runtime constant pool (§3.5.5) of the class of the current method." Citação:
Ah, e agradeço pela boa discussão. Eu já andava meio enferrujado, mas desde que comecei a participar do fórum, tenho tido a oportunidade de discutir vários assuntos técnicos e profissionais. :wink:
__________________
Jeferson Charles Mayer "Como é que eu vou enxergar a tal floresta, com todas essas árvores atrapalhando a visão?" |
||||
|
|
|
![]() |
| Opções do Tópico | |
|
|