Ola galera…
Bom…sou um rescem nascido no mundo da programacao…
E como nao poderia ser diferente, tenho diversas duvidas por onde comecar…
Sei que estou num local onde respira-se JAVA, mas aqui vao algumas de minhas duvidas:
Qual eh a melhor linguagem de programacao orientada a objetos?
Qual a diferenca entre JAVA e C++ ??
As aplicacoes desenvolvidas em Kylix sao boas/estaveis ??
As aplicacoes em JAVA nao ficam muito pesadas ???
Bom…trabalho e uso Linux ja a alguns anos, e agora quero (necessito) desenvolver aplicacoes para Linux (tipo sistema comercial integrado que acessam bancos de dados tipo PostgreSql ou Oracle)
Eh isso ai galera…como perceberam nao sei nada (ainda) de programacao…
Alguem pode me esclarecer algumas destas duvidas ???
Smalltalk. O resto não é de fato puramente orientado a objetos (ok, estou sendo radical, eu sei).
Java não sofre linkagem durante o processo de compilação, gerando código nativo, ao contrário de C++.
Não sei. Mas se é algo feito pelo Anders Heilsberg, melhor não apostar sua alma nele :twisted:
Não. Decididamente.
S
skyblue
[color=“blue”]COBOL forever :lol:
tô zuando, com certeza Java é uma das melhores 8)
Valeu pessoal !!!
Skyblue[/color]
cv1
Perguntar qual a melhor linguagem de programacao num forum de Java eh como perguntar qual a melhor banda de NWOBHM no fórum do fã-clube do Iron Maiden.
leomc
a melhor eu não sei te falar. As que eu mais gostei foram c php e java agora se você quiser saber qual a pior ee te afirmo que é JavaScript, isso é coisa do capeta
sergiolopes
php ate da pra engolir, mas C orientado a objetos?! :shock:
cv1
JavaScript é uma linguagem melhor do que Java em muitos aspectos. O que fode é a implementação que a gente vê nos browsers
Experimente brincar com JavaScript usando uma implementacao boa (por exemplo, Rhino) e a coisa muda bastante de figura. Vale a pena
M
mtakeda
Vou ter que discordar de algumas respostas dos colegas:
Essa pergunta é como perguntar se eu prefito comer de garfo ou de colher. A resposta certa depende do que você vai comer.
Você pode usar garfo pra quase qualquer coisa, mas se for comer sopa, existem ferramentas melhores. Por isso, não dá pra dizer qual é a melhor linguagem de programação (OO ou não). Isso vai depender da sua aplicação.
Inúmeras! Java é, de longe, muito mais portável do que C++. Possui uma ampla quantidade de bibliotecas, uma arquitetura OO mais limpa/clara e muitos outros detalhes. Por outro lado, C++ é compilado, permite herança múltipla e outros detalhes. Não dá pra responder tudo de uma só vez.
Essa eu não sei responder! :shock:
Novamente, depende. Eu não responderia com um “decididamente não”.
Experimente fazer uma aplicação SWING, por exemplo. A título de comparação, faça um Hello World, exibindo uma caixa de diálogo, em Java e em Delphi/VB/C++. Veja a diferença!
Aplicações em Java podem ficar pesadas sim. Na verdade, tudo aponta para esse lado: código “interpretado”, garbage collector rodando, alocação dinâmica de memória usada abusivamente, etc. Mas, existem várias “técnicas” e recursos para evitar isso. Novamente, depende da aplicação e de como ela foi projetada. (nota.: aí, vocês vão dizer, em qualquer linguagem isso é verdade, mas eu replicaria citando o exemplo do Hello World! Não vou ser categórico, mas acho que não se pode otimizar um HW em Java a ponto dele ficar melhor do que em C++ - embora possamos desotimizar o HW feito em C++ )
cv1
Só uma correção: Java também. E digo mais: pra código de máquina! É virtual, mas continua sendo um máquina capaz de executar programas, não?
O que você provavelmente quis dizer aqui é que, ‘por outro lado, C++ é compilado para a plataforma nativa’. O que também é verdade em Java: existem diversos compiladores deste tipo (GCJ sendo o exemplo mais comum). Mas eu estou só enchendo o saco, tou sem nada a acrescentar na discussão até agora.
_fs
Bom, eu não sei comparar java a outras linguagens, mas posso te dizer muitos motivos que indicam o quão bom java é leia o tópico “5 razoes para usar java” que ira se esclarecer bastante
“New Wave Of British Heavy Metal”. Foi o boom que teve o Heavy Metal naquela época, com o Iron Maiden liderando a coisa.
Seria aquele tipo de coisa que acontece hoje em dia com outros estilos e que uma boa parte da galera que curtiu a NWOBHM insiste em descer a lenha, falando que o som não presta e que os moleques são tontos, justamente o que nossos pais falavam da gente na época eheheh.
Luca
Olá
A única linguagem realmente essencial que precisa ser aprendida por quem quer trabalhar com desenvolvimento de sistemas é o inglês. Quem não consegue ler inglês técnico sugiro fortemente que pare tudo e comece a aprender ou mude de profissão.
[]s
Luca
richardpeder
Linguagem boa é dificil…tive contatos com várias…trampei muito tempo com Java…bom…acho Java uma linguagem legal…tive contato com php um pouco e asp…achei o php legal tb…
quero deixar a minha pior aqui…javascript…linguagem chatissima para achar erros… …as vezes perdia horas para achar um erro ridiculo… :lol:
ate mais…
sergiolopes
como vc faz isso? eu costumo usar o Javascript Console do Firefox, q eh bem detalhado…
Y
YellowBike
Acredito que hoje Java é a linguagem Orientada a Objetos mais aceita no mundo. Ela é com certeza totalmente OO.
Pense em C++ como um módulo de extenção da linguagem C. Ela na verdade apenas acressenta recursos. Porém é extremamente compléxa, e falo isso por experiência própria, sua sintaxe é tão grande que poderia levar uma vida p/ aprender, sem falar que criar um interface USER decente com ele é um inferno!! Java por outro lado é uma limguagem muito mais simples, sua sintaxe é pequena e qualquer um pode aprender em aprocimadamente dois meses. Sua API tb é muito mais extensa e as aplicações são muito menores. Além do mais costruir uma interface USER é tb MUUUUITO mais facil.
Sobre o Kylix eu não posso te falar.
Definitivamente não!! Eu ouço muito dizer que aplicações Java são pesadas, outros sitam aplicações SWING. Bom eu rodo aplicações Java SWING aqui em casa como qualquer programa C/C++ e minha máquina nem é tão potênte. É claro que leva um pouco mais de tempo p/ carreguar, mas o que são alguns segundos. Sem falar que essa diferença é ainda menor pois o Linux gerencia a memória muito melhor que o Windows e vc vai sofrer muito menos esse impácto. Diferença mesmo vc só vai sentir em projetos muito grandes e rodando sobre SOs ruins.
Ex.: O Eclipse fica um MERDA aqui em casa. Uso o Windows 2000 e é só abrir o Eclipse que ele já cai na memória virtual. Por outro lado no SlackWare ele roda muito bem, e minhas aplicações tb, neste caso tanto no Linux quando no Windows.
E só mais uma coisa. A AMD tem um projeto p/ implementar a JVM nos chipsets dos seus processadores. A Intel já fez afirmações que mostram que esse é um caminho quase irremediavel. Logo seus programas Java serão tão ou mais rapidos que os equivalentes em C/C++!!!
richardpeder
“sergiousp”:
“richardpeder”:
quero deixar a minha pior aqui…javascript…linguagem chatissima para achar erros… …as vezes perdia horas para achar um erro ridiculo… :lol:
como vc faz isso? eu costumo usar o Javascript Console do Firefox, q eh bem detalhado…
Eu achava os erros pelo IE… …mas isso faz muiiito tempo…
ate mais…
sergiolopes
ta explicado! :? bizarro eh o IE!!! (aqueles erros dele sao mto obscuros)
cv1
Nao concordo com a ultima afirmacao. Afinal, onde estao os metodos dos tipos int, long, double, char? A mera existencia de tipos primitivos faz com que a linguagem nao seja “completamente OO”. Mas Java é “OO o suficiente”.
B
back
Isso pra não falar da herança multipla
Gustavo Guilherme BacK
cv1
Suportar ou não herança múltipla não caracteriza a orientação a objetos de uma linguagem. Na verdade (opiniao extremamente pessoal), eu acho herança simples mais OO do que a múltipla.
cancao
Por que?
Até.
Grinvon
A melhor linguagem é aquela que você se adapta melhor e domina melhor, não existe uma “melhor” linguagem, existem linguagens mais adaptadas para certos tipos de projeto.
Herança simples de fato é melhor para trabalhar que herança multipla, mas não acho que herança multipla não é uma característica anti-oo.
rogeriop80
Diria que cada a linguagem está intimamente relacionada com o problema a ser resolvido(plataforma, tipo de processador, necessidade do cliente, etc, etc, etc).
Sobre o caso de heranças não diria que a simples eh melhor que a multipla, vc soh usa multipla quando realmente tem necessidade.
Abraços.
cancao
“rogeriop80”:
Sobre o caso de heranças não diria que a simples eh melhor que a multipla, vc soh usa multipla quando realmente tem necessidade.
Abraços.
Até aí tudo bem já que vc só vai usar herança simples quando houver necessidade tambem! O que eu não entendi foi a afirmação do cv de que “herança simples é mais OO do que a múltipla”. :roll:
Até.
cv1
Tá bom, eu explico: objetos, no mundo real, não têm herança múltipla. Que me provem o contrário
louds
CLISP, java is for sissies.
cancao
Tá bom, eu aceito, afinal, dez anos luz alem da borda do universo há uma serie de smiles jogando pinball. Que me provem o contrario.
Brincadeiras à parte, cv, reza a lenda que quando vc quer simular herança multipla em Java faz uso de interfaces. Algo como String ser tanto Serializable quanto Comparable. Hum, tá, não é herança a rigor já que aqui se faz uso apenas de polimorfismo e herança implica ainda que a subclasse herde codigo. Mas, o conceito que um mesmo objeto precisa, em alguns casos, ter duas caracteristicas relativamente distintas, como Serializable e Comparable, não faz jus a herança multipla?!
Até.
_fs
Lembra daquela mutação metade coelho metade gato que fizeram? Se me lembro bem o bichinho viveu por dias :mrgreen:
Ironlynx
Muito boa LIPE!(huaauhauahauhh…)
Não lembrava q existiam quimeras tão avançadas…(no reino dos mamíferos)
Cv,já existem peixes com genes de água-viva,há testes de pessoas recebendo órgãos desenvolvidos em porcos…O Objeto homem recebendo fígado desenvolvido em um Porco,e o rim de um primata(não-hominídeo) não está herdando de Porco e Primata?Ou Porco é interface?(Huaauhauhauhuahauaah)
cv1
Hmmm… não. Uma interface implementada dá novas características a um objeto. São adjetivos: serializável, comparável, fechável, iniciável, e por aí vai. Mas uma String é uma String, antes de ser comparável, ou serializável. Um homem com fígado de porco ainda é um homem, com uma outra implementação de fígado. Um carro anfíbio continua sendo um carro, que consegue navegar, mas se ele tem jeitão de carro, e é dirigido como um carro, ele ainda eh um carro.
Nao lembro agora de onde veio essa frase, mas “if it quacks like a duck, flies like a duck, then it’s a duck”
Ironlynx
Um homem com fígado de porco ainda é um homem, com uma outra implementação de fígado. Um carro anfíbio continua sendo um carro, que consegue navegar, mas se ele tem jeitão de carro, e é dirigido como um carro, ele ainda eh um carro.
Hum…não,não,não…CV!Um homem pode vir a ter 90% de seu corpo oriundos de outros seres…fígado,rins,coração,intestinos…fora córneas e pele artificiais e etc… tirando o cérebro(q seria o identificador -id do objeto).
Um autômato poderá ser criado com a semelhança externamente de um ser humano,mas será humano?Pára para pensar…isso q vc falou,nos leva a concluir que a InterfaceGráfica é que define um objeto(e mesmo assim uma quimera pode ser feita para mesclar as características de 2 diferentes seres-acredite essa bizarrice eh possível-não posso afirmar em seres superiores como o ser humano…mas é provável q sim)…não ficou nada claro!Claro,vc pode dizer que o cérebro é q define o objeto homem,aí tudo bem…é difícil para qualquer um imaginar herdar diferentes tecidos cerebrais gerados em diferentes animais(apesar de eu achar q pode ser feito,pois o mais importante é a energia vital nele armazenada…isso é uma outra história)…vc não viu o carro híbrido?vira lancha(a até 50km/h e vira carro…).Ele fica com muita cara de lancha qdo fica em modo náutico!Cara,fígado,coração,rins…do meu ponto de vista seria atributos do objeto homem,não métodos implementados de uma interface seja ela qual for…(apesar de se der uma olhadinha melhor…homem eh uma supeclasse com um array de objetos,cada objeto representando um órgão vital,e suas ações-operações-respectivas em cada método…).Isso é muito abstrato.Poderemos ver N situações de diferentes modos.Depende sobre qual aspecto iremos fazer uma análise.Deve ser por isso q inventaram AOP…
cv1
Ironlynx, eu não sei o que vc anda usando, mas po, compartilha aí com a galera, que o bagulho é do bom.
Sobre a interface gráfica definir o objeto: hmm, quase. Não é a interface gráfica, mas sim a interface. Não interface no sentido Java da coisa, mas interface no sentido de “atributos, métodos e outras coisas públicas”.
O que é uma “classe”, pro Java?
Nome (package + nome, aliás)
Superclasse da qual ela extende
interfaces implementadas
Atributos
Blocos estáticos
Construtores
Métodos
Inner classes
É possível ter duas classes exatamente iguais convivendo dentro de uma mesma VM, mas com implementações diferentes? Sim. Dentro do mesmo ClassLoader? Não. [size=“7”](louds, falei merda aqui?)[/size]
É possível ter dois objetos exatamente iguais no mundo real? Não, pq pra começar eles não são feitos dos mesmos átomos, e não ocupam o mesmo lugar no espaço. Mas é possível dizer que dois objetos são “parecidos o suficiente” para se poder dizer que eles são iguais para fins práticos. Ou seja, eles apresentam as mesmas características e respondem da mesma maneira aos mesmos eventos. Água e azeite não são iguais, e nem mesmo uma gota d’água é igual à outra, mas a gente entende que água é tudo igual pq ela geralmente apresenta as mesmas características, que definem o que é água. Estas características, pro Java, são a definição da classe. Não existem dois objetos idênticos em Java. Existem objetos similares o bastante pra que a gente não se importe com as diferenças (por exemplo, a localização deles na memória).
E toda essa explicacao serve pra dar a conclusao absurda de que, sim, mesmo que “um homem possa vir a ter 90% de seu corpo oriundo de outros seres”, se ele ainda possui a mesma interface e reage aos mesmos estimulos que a maioria dos outros homens, sim, ele eh humano, e nao venha com papinho de ficcao cientifica hollywoodiana.
Nada contra sua breve,mas concisa explicação do que é classe em Java,mas sua própria definição de herança,mata a necessidade até de herança simples(no que eu entendi da sua explicação).Representemos tudo via interfaces e pronto.Herdar para que?
Concordo plenamente que cada objeto é como um ser único(alguem disse:uma pessoa jamais se banha 2 vezes no mesmo rio pois na segunda vez q ela se banhar não será a mesma pessoa,nem será o mesmo rio…).
E quem tava falando de igualdade de objetos?Viaje dentro da maionese cv!O Assunto é Herança Múltipla!Apenas citei aparência pq vc levou para esse lado…
Perfeito.Tempo,interação fenotípica(do ser com o meio) e genotípica diferem entre todos e nem gêmeos univitelinos serão iguais em todos esses aspectos.
Cv uma perguntinha para vc:
Vc nasceu como?Reprodução sexuada entre seu pai e sua mãe certo?(nota:espero q sua mãe não seja um caso único na humanidade de partenogênese como o ocorrem com alguns escorpiões e talz…)
De quem vc herdou os seus atributos hereditários?Dos 2!De um homem e uma mulher…acho q apartir desse princípio não dá para generalizar e o caso é de herança múltipla sim…
Se vc dizer todos são “humanos” posso dizer q como a diferença do homem e um macaco é inferior a 0.5% posso dizer seguramente q todos são “primatas”… como a diferença entre o homem e o camundongo é de apenas 300 genes(em 30000),podemos englobar a ordem dos roedores tb…perái,não é tudo da classe dos mamíferos?(Aliás,corrigindo uma besteira q eu tinha escrito antes "reino dos mamíferos"santa ignorância!Reino é animal,aironlinquiz!!!-como pude escrever isso pqp!matei a taxonomia… huahaha!)…Logo cv,chegaremos ao ponto q todo mundo descende(Herda) de todos ou tem algo em comum…e a lugar algum.
Hum…vc acaba de provar a minha teoria q as máquinas se igualarão aos seres humanos,afinal humano é o q lhe parecer humano certo?Obrigado cv.
cv1
Pra separar comportamento em comum, onde ele existe, de comportamento específico. Se não existe comportamento em comum, não faz mesmo nenhum sentido usar herança, mas, pro bem da orientacao a objetos, comportamento em comum eh o que nao falta.
Voce esta confundindo protótipo com instância. Os dados do meu DNA foram, sim, herdados da minha mãe e do meu pai. Ou do carteiro, padeiro, leiteiro, sei lá. Não vem ao caso. Mas a definicao do meu DNA, não. Se é pra entrar na parte mais nerd da coisa, eu sou uma instancia, eu sou um objeto, nao uma classe. Uma classe é intangível, é um protótipo, apenas, é a definicao do DNA, se é que isso existe, e nao os dados contidos nele. Eu sou do tipo humano, eu não sou o humano. É instanceOf, e não isA. Lembre-se que:
new Object().equals(new Object()) == false
Enquanto:
Object.class.equals(Object.class) == true
Se vc quiser classificar os tipos das coisas, entao voce vai ter que classificar as classes, e nao as coisas em si. Logo, um humano herda caracteristicas dos primatas, que por sua vez herda caracteristicas dos mamíferos, que por sua vez… e assim vai.
Vamos assumir o DNA como sendo a “classe” da biologia, mesmo isso nao sendo muito verdade. Voce pode argumentar que, mesmo com uma diferenca de apenas 300 genes entre um homem e um camundongo, que eh uma diferenca pequena no “codigo”, ainda assim a diferença no comportamento resultante das instâncias é bastante significativa em quase todos os quesitos de avaliação. Se não é exatamente a mesma classe, as instâncias não poderiam ser iguais, certo?
_fs
Ô discussão besta do [insira seu palavrão favorito que começa com C]
:mrgreen:
MarcusGoncalves
Às 3 da madrugada. :shock:
Acho que eu estou dormindo demais. :?
louds
Herança multipla é como composição, porém sem poder separar as partes.
Um bom exemplo é o Jaspion, ele herda de “armadura metálica da hora” e de “japoneis from the outer space”, uma ‘coisa’ completa a outra de forma que criam uma ‘coisa completa’, separadas não teriam a menor graça ou finalidade.
F
flaviolopes
Ok galera…acho que deu para eu ter uma ideia do negocio…
Outra coisinha…quer dizer que eu poderia aprender JAVA mesmo sem saber nada de C ???
Alguem poderia me indicar um bom livro para comecar??..de preferencia em portugues (mas pode ser em Ingles tb!)
Obrigado mais uma vez,
Flavio
_fs
Tem um tópico de livros no Java Básico que com certeza vai te iluminar
F
flaviolopes
Ola LIPE…obrigado mais uma vez pelo help…
Diz outra coisa…o JAVA suporta o banco de dados POSTGRESQL ???
Rodrigo_Carvalho_Aul
“flaviolopes”:
Ola LIPE…obrigado mais uma vez pelo help…
Diz outra coisa…o JAVA suporta o banco de dados POSTGRESQL ???
Claro, aprenda JDBC que vc vai acessar o banco de dados que quiser…
Ok Rodrigo…valeu mesmo…vou dar uma olhada agora mesmo!!!
Bom…agora o resto eh comigo…
caiofilipini
Desde que, em algum lugar, exista um driver JDBC pra ele…
[]'s
Daniel_Quirino_Olive
Desde que, em algum lugar, exista um driver JDBC pra ele…
[]'s
Não necessariamente. Pode-se usar ponte JDBC-ODBC
plentz
“Daniel Quirino Oliveira”:
Não necessariamente. Pode-se usar ponte JDBC-ODBC ;)
Injambra :roll:
Daniel_Quirino_Olive
“diego_sl”:
“Daniel Quirino Oliveira”:
Não necessariamente. Pode-se usar ponte JDBC-ODBC ;)
Injambra :roll: :D
WTF? :shock:
caiofilipini
Ainda assim tem o driver que faz a ponte E um driver ODBC.
Daniel_Quirino_Olive
Ainda assim tem o driver que faz a ponte E um driver ODBC.
Almost there!!
Você não precisa da ponte, já que a VM a possui. Ter driver ODBC também não é muito problema porque ODBC é a forma que 90% dos banco de dados usam para fornecer conectividade “padronizada”.
caiofilipini
“Daniel Quirino Oliveira”:
Almost there!!
Você não precisa da ponte, já que a VM a possui. Ter driver ODBC também não é muito problema porque ODBC é a forma que 90% dos banco de dados usam para fornecer conectividade “padronizada”.
Right, I quit. :lol:
Valeu pelas considerações, Daniel.
[]'s
Ironlynx
Wow cv,o q vc toma eh do bom hein???
Pelo menos compreendi o seu ponto de vista…(acho…)
apesar do seu “uma classe é intangível” para mim ser meio furado pois só devemos lidar com o q é representável,e o intangível não o é…fica metafísico demais pro meu gosto(intangível-o q não pode ser tocado-no nosso caso,o q não pode ser representado).Tudo em programação é tangível(opnião pessoal).Pois é passível de ser representado.
E a definição do DNA é plenamente aceitável…é o nosso código binário só q com quatro bases(quaternário não?)…(A,T,C,G)
Poderíamos explodir isso até os Quarks… (brincadeirinha…)
Brincadeiras á parte,entendi o q vc quis dizer com a diferença entre dados e definição(Tipo,Instância…),mas cuidado…levar para esse lado fica muito confuso…temos q simplificar sempre!(essa é nossa função…)
Louds,o seu cigarrinho de chocolate é do Bom!Dá pra mandar uns para cá?heheheh