VB6 foi muito usado, então para fazer alterações nas aplicações feitas em VB6 ainda há procura, mas começar uma nova solução em VB6 é no mínimo insanidade!
Ou seja é uma tecnologia a caminho da morte, agora VB.Net ai sim da para progredir e tem o seu mercado.
Não.
Imagine que na epoca que saiu o VB6 alguem perguntava se valia a penas aprender VB2.
É mais ou menos a mesma pergunta que vc está fazendo. Com VB.NET ai ou melhor, C#, quem precisa de VB6 é quem
ainda não migrou e portanto é algo passageiro. Se vc está criando do zero um programa em VB6… boa sorte.
VB 6 foi descontinuado (VB.net é outra linguagem).
Se for para iniciar novos projetos, é altamente desrecomendado portanto.
No entanto… se você quiser se especializar em dar manutenção em sistemas desenvolvidos em VB 6, vejo uma oportunidade excelente de se fazer um bom dinheiro.
Isto porque é muito comum a existência de sistemas criticos feitos na linguagem cuja migração é extremamente complicada.
Mesmo porque, se você fosse tentar migrar uma aplicação feita em VB 6 para VB.net, por exemplo, perceberia que trata-se de uma missão impossível de ser feita de maneira automatizada. Não é como pegar código feito em VB5 e abrir no VB6. O sujeito tem de reescrever basicamente TODO o código fonte.
Eu também tenho a infeliz tarefa de manter um sistema em VB6. Posso te dar algumas dicas:
Não use On Error Resume Next
Não use Variant;
Não use variáveis ou funções globais. Cuidado, no VB é fácil declara-las.
Use Option Explicit em tudo;
Lembre-se que os tipos do VB6 são pequenos, da época em que os computadores tinham só 16 bits;
Não use On Error Resume Next, Variant e coisas globais (sim, vale a pena repetir isso);
Se sua sub tiver que ser privada, lembre-se de declara-la como tal (por default é public - argh);
Para BD use o ADO ao invés do DAO.
Jamais, nunca, never inicie um novo desenvolvimento em VB6. Use C#, VB.Net. Mas não VB6.
Cuidado com a armadilha sintática:
a é Variant
b é Integer
Cuidado ao mapear funções do Windows que retornam unsigned. Muita gente mapeia DWORD para unsigned long, e acaba com um Overflow. Eu mesmo esqueci disso e tive esse problema, recentemente.
Seja cuidadoso nos logs. Procure gerar logs, já que o VB6 não tem stack trace. Uma ótima idéia é mapear a função:
Do windows e usa-la. Toda string que vc passa para ela é enviada para o Windows para uma aplicação externa de log. Uma dessas aplicações, que pode ser baixada de graça no site da MS é o DebugView. Ele faz parte dos “Windows Sysinternals” (procure por isso no google).
Peça para o compilador gerar o “simbolic debug info”. Isso permite que seu usuário crie o famoso “Crash Dump”. Anexe o arquivo .pdb juntamente ao instalador do seu executavel. Abrindo esse crash dump no Visual C++ Express, ou no “Debbuging tools for windows” (que é usado para gerar o dump) você pode obter, em boa parte das vezes, a stack trace de onde o erro ocorreu. Ambos os aplicativos podem ser baixados gratuitamente no site da MS.
Trate o melhor que vc puder os erros usando on error goto e on error goto 0.
E mais importante, se possível, convença seu chefe a migrar para uma plataforma melhor.
Olha,
este papo de VB.net ser uma nova versão do VB, é puro marketing.
Isto porque trata-se de OUTRA linguagem. Tanto é, que você não consegue migrar seu código feito em VB 6 direto pra VB.net. Precisa reescrever quase tudo.
Programava em vb6 e quando parti para o vb.net não vi tanta diferença. Mudadinha ali, acola! e tudo a mesma coisa.
Por passar tanta raiva com DLL parti pro java, e hoje sou feliz :D.
Eu nunca trabalhei com VB. Mas eu acho que tem mercado sim, e na minha opinião tende a crescer, justamente porque muita gente pensa que não tem mercado e vai estudar linguagens do momento como Java, .NET, etc
Aqui onde trabalho tem uns legados sinistros que estão todos em VB e estão todos rodando em produção… rs
Do meu lado tem uns 5 programadores que só trabalham com VB…
O que implica que o VB6 é uma linguagem estruturada. Enquanto o VB.Net é Orientado a Objetos.
Você quer diferença maior do que essa?[/quote]
Mas tirando a Herança o VB6 é “Orientado a Objetos”, não ? Os programadores é que não costumam ser… tá, tudo bem que a linguagem é feita sob medida para gambiarras e quebras de encapsulamento, mas ainda assim pode ser OO.
Isso me lembra de um sistema em VB que tive de dar manutenção. O cara desenvolveu logo depois de aprender Java, e fez um negócio super maluco, é como se tivesse “programado Java em VB”: Tinha implementação de classes da API (IO, serialização, utilitários em geral), padrão JavaBeans (ao invés de Properties do VB eram usados getters e setters), Listeners, Dispatchers e outros design patterns, formulários construídos programaticamente (eu nem mesmo sabia que isso era possível), entre outras coisas… Claro que isso tudo adicionou uma complexidade IMENSA ao software.
Tirando herança, polimorfismo, a cultura dos programadores VB, as dicas do manual da linguagem, as funções sem classes, os public por padrão e a abordagem em relação ao processamento de dados e não a troca de mensagens. É, o VB é OO sim.
Olá.
Muiiiiiiiiiito bom esse tópico, conheço três programadores VB, eles me disseram que ainda ha muito coisa ha se fazer com VB. Pois quem ja programa com isso, não se adaptou a plataforma .Net. Em alguns anúncios de emprego vejo que quem ja trampa com isso ha tempos, esta ganhando bemm. Claro que Java e .Net são o que estão mais no mercado, mas é sempre bom lembrar que certas ha espaço pra tudo na área de Desenvolvimento.
Andei pesquisando em alguns sites de empregos por ai, e a maioria das vagas de VB que vejo são VB6, com certeza apenas para manter projetos já existentes.
Pouquíssimas vagas são para VB.NET (pelo menos aqui em Belém. A maioria mesmo é para Java)
Vou brincar em VB usando o Visual Basic Express Edition 2008 mesmo. É grátis e da para fazer uns projetos legais. Afinal, a licença do Visual Studio 2008 é uma fortuna.
Aqui na empresa os sistemas em .NET são feitos em C#; dificilmente é usado VB.NET, até por uma questão de “poder cobrar mais”. É que, embora VB.NET seja tão complexo quanto o C#, há uma impressão errônea que VB.NET == VB 6.
O VB 6 ainda continua firme e forte naqueles sistemas que continuam sofrendo manutenções periódicas.
Uma coisa que me angustia terrivelmente no VB 6 é que ele não tem aquele recurso de “stack trace”. Então volta e meia aparecem aqueles erros misteriosos (em componentes COM+) que você não consegue nem determinar direito onde apareceram.
[POG mode on]
Um colega meu que programa em VB me disse que uma das coisas mais lindas do VB é um tal de on error resume next, ou seja, se o seu programa estiver dando erro coloca isso que ele simplesmente some… :lol: :shock: 8)
[POG mode off]
[quote=ViniGodoy]Tirando herança, polimorfismo, a cultura dos programadores VB, as dicas do manual da linguagem, as funções sem classes, os public por padrão e a abordagem em relação ao processamento de dados e não a troca de mensagens. É, o VB é OO sim.
O C também.[/quote]
Po, não precisava pegar tão pesado
Mas continuo achando que o principal obstáculo é a cultura dos programadores mesmo (e como você bem lembrou, as recomendações de codificação da própria Microsoft).
A característica das linguagens OO que realmente falta no VB 6 é a Herança. O resto dá pra se virar… Por exemplo, existe o recurso de criar classes que implementam interfaces (pouquíssimo usado por programadores VB e não muito divulgado na documentação da Microsoft), o que permite o uso de polimorfismo.
Você tem razão em todas as coisas ruins que citou (e existem muitas outras hehehe… por exemplo, a facilidade em se criar variáveis e funções globais, a possibilidade de manipular a View a partir de qualquer ponto do programa, e por aí vai), digamos que é uma linguagem que IMPLORA POR GAMBIARRAS :twisted:, mas pode-se evita-las tendo disciplina, marcando o que é privado como Private, ativando as opções que tornam o compilador mais exigente, etc.
Para concluir, só vou mudar um pouco minha frase para evitar confusão. Eu disse que “vb é OO”, mas o que quis dizer é “vb pode ser OO”, se o desenvolvedor tiver muita perseverança e força de vontade.
E para evitar confusão mais ainda, só vou ressaltar que apesar de estar dando uma de advogado também estou muito feliz com o fim (próximo) dessa linguagem gambiarrenta!
Pois é, não é? Um tratamento de erros ao estilo Chuck Norris
Bem, programo a 2 anos em VB6, o negócio e sinistro de guambiarras, e cuidado ,vícia. para convencer que Java ou C# são melhores não só como linguagens mais tanto o Visual Studio ou Eclipse são IDEs de verdade teve que um sócio vender a parte dele. :lol:
Agora Falando sério, não confudam dividir(organizar) tudo em classes no vb6 vc estará programando OO, vb6 não é OO e não suporta OO, vc não consegue fazer polimorfismo, herança, interface… essa confusão também tem sido feito em java, tem uma galera que programa em java mais deve ter vindo do vb6 de tão guambiarra que é o código. . java não foi feito para ser estrutural mais coloca algumas dúzias de static que vc vai ver que não saiu do vb6.
Ainda tem mercado para vb6, como também tem para CLipper :shock: , principalmente para consultores ou pisicólogos que concerteza teram trabalho para ajudar a empresa a sair dessa.
Agora vc como profissional tenha sempre em mente o seguinte, vou aprender como a empresa trabalha com vb6 e ponto final, o resto do seu tempo continue estudando C# ou Java, concerteza fazendo isso se a empresa não trabalha ainda com uma dessas linguagens quando for trabalhar vc vai ser promovido, e se já trabalha com essas linguagens em novos projetos vc vai ser promovido rapidamente, vb6 é presente curto, e nunca futuro para um programador.