Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Warrior

Vantagens e desvantagens de VB.net

Recommended Posts

Warrior

POR FAVOR, não recomendem VB para desenvolver o que quer que seja.

Mudo a minha opinião quando encontrar um developer que conheça uma dezena de linguagens e me diga "VB é a minha linguagem de eleição". Até lá..

Share this post


Link to post
Share on other sites
bioshock

POR FAVOR, não recomendem VB para desenvolver o que quer que seja.

Mudo a minha opinião quando encontrar um developer que conheça uma dezena de linguagens e me diga "VB é a minha linguagem de eleição". Até lá..

Qual o propósito de tal?

São escassos os que sabem realmente trabalhar com uma dezena de linguagens. E não me venham dizer "Ah eu sei.." e trabalham à 1 mês com a linguagem :wallbash:

Já agora o que te leva a pensar que não podem escolher? É ridículo a forma como atacam o VB.NET, não percebo.

Share this post


Link to post
Share on other sites
jpaulino

POR FAVOR, não recomendem VB para desenvolver o que quer que seja.

Recomendas o quê? Sinceramente não entendi.

Share this post


Link to post
Share on other sites
scorch

Gosto bastante de desenvolver em VB.NET, e não percebo porque é que é assim tão odiada.


scorch_pp.png

PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum.

Share this post


Link to post
Share on other sites
Warrior

Quais as vantagens de VB.net em relação a outras linguagens?

E não me digam a design view, qualquer aplicação que mexa um pouco com isso obriga a criar tudo por código de qualquer forma..

Share this post


Link to post
Share on other sites
jpaulino

Quais as vantagens de VB.net em relação a outras linguagens?

E não me digam a design view, qualquer aplicação que mexa um pouco com isso obriga a criar tudo por código de qualquer forma..

Acima de tudo rapidez de desenvolvimento e a capacidade de utilizar em diversas areas (windows, web, office, etc). Não estou a dizer com isto que é a melhor apenas que é tão capaz como as outras(no essencial).

É uma linguagem, à semelhança do C#, com uma excelente framework e que permite desenvolver qualquer aplicação profissional.

Share this post


Link to post
Share on other sites
jpaulino

ehehe esse artigo já está muito desactualizado e muita coisa já não é verdade (a maioria) ... é de 2004 :D

Actualmente as diferenças entre VB.NET e C#, com a versão 2010, são que o C# tem os Iterators e o VB.NET não, e o VB.NET tem os XML Literals e o C# não.

Mas estão cada vez mais próximos e a tendencia de evolução assim o indica. Vejam este artigo do meu blog: Visual Studio 2010: VB.NET vs C#

Share this post


Link to post
Share on other sites
Warrior

Desenvolver para a Web em VB? Não vou comentar.

Desenvolver para office é algo tão específico..

Desenvolvimento windows é o que todas permitem. Vantagens aqui, onde estão? Porque é que dizem que VB é mais rápida a desenvolver do que, por exemplo, Java?

A framework .net é uma vantagem, mas resta mostrar que VB é a melhor escolha dentro da framework..

Não há uma única vantagem dessa lista que não seja debatível.

Talvez o suporte para parâmetros opcionais seja sempre uma vantagem, a maioria das outras poderiam estar numa lista encabeçada "desvantagens do VB.net", porque isso são características.

Aliás, a maioria possui algum tipo de "however.."

Share this post


Link to post
Share on other sites
scorch

Desenvolver para a Web em VB? Não vou comentar.

VB.NET é uma das hipoteses para se programar com a plataforma ASP.NET. É melhor não comentares. :D

Desenvolver para office é algo tão específico..

E no entanto o Office é a suite de produtividade mais usada. :confused:

Desenvolver para a Web em VB? Não vou comentar.

Desenvolver para office é algo tão específico..

Desenvolvimento windows é o que todas permitem. Vantagens aqui, onde estão? Porque é que dizem que VB é mais rápida a desenvolver do que, por exemplo, Java?

Nunca programei em Java, mas por exemplo, fazeres uma aplicação em ambiente gráfico é muito mais fácil em VB.NET do que em C++, por exemplo.


scorch_pp.png

PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum.

Share this post


Link to post
Share on other sites
bioshock

ehehe esse artigo já está muito desactualizado e muita coisa já não é verdade (a maioria) ... é de 2004 :confused:

Actualmente as diferenças entre VB.NET e C#, com a versão 2010, são que o C# tem os Iterators e o VB.NET não, e o VB.NET tem os XML Literals e o C# não.

Mas estão cada vez mais próximos e a tendencia de evolução assim o indica. Vejam este artigo do meu blog: Visual Studio 2010: VB.NET vs C#

Oh, nem reparei na data  :P

Muito bom artigo!  :D

Desenvolver para a Web em VB? Não vou comentar.

Desenvolver para office é algo tão específico..

Desenvolvimento windows é o que todas permitem. Vantagens aqui, onde estão? Porque é que dizem que VB é mais rápida a desenvolver do que, por exemplo, Java?

A framework .net é uma vantagem, mas resta mostrar que VB é a melhor escolha dentro da framework..

Não há uma única vantagem dessa lista que não seja debatível.

Talvez o suporte para parâmetros opcionais seja sempre uma vantagem, a maioria das outras poderiam estar numa lista encabeçada "desvantagens do VB.net", porque isso são características.

Aliás, a maioria possui algum tipo de "however.."

Peço desculpa pela data, não reparei. Vê antes o blog do JPaulino.

Warrior, as vantagens de todas as linguagens são sempre debativeis, creio.

Mas se então colocas a questão: " Porque é que dizem que VB é mais rápida a desenvolver do que, por exemplo, Java? " Eu respondo-te com perguntas: Porque é que achas que o VB não é tão rápido como java? Porque é que achas que o VB não é uma boa linguagem para programação desktop?

Share this post


Link to post
Share on other sites
jpaulino

Desenvolver para a Web em VB? Não vou comentar.

Se não sabes é melhor nem comentares. VB.NET é utilizado, assim como C#, para desenvolvimento de aplicações em ASP.NET.

Existem tantas, mas tantas, aplicações profissionais em ASP.NET que nem vale a pena questionar a credibilidade e o mercado que tem.

Desenvolver para office é algo tão específico..

Segundo um artigo que li à algum tempo, a seguir ao sistema operativo, é a aplicação mais usada do mundo. Não é nada de especial :confused:

Desenvolvimento windows é o que todas permitem. Vantagens aqui, onde estão? Porque é que dizem que VB é mais rápida a desenvolver do que, por exemplo, Java?

Pela utilização da framework. Por exemplo, descarregar um ficheiro da web podes fazer com uma linha de código, assim como tocar uma *.wav, ler um ficheiro de texto, alterar uma referência no registry, etc, etc. Tudo com uma linha apenas!

Mas lá está, não conheço o Java e sobre isto não vou falar nem fazer comparativos.

A framework .net é uma vantagem, mas resta mostrar que VB é a melhor escolha dentro da framework..

Eu não disse que é a melhor ... é tão capaz como o C# (por exemplo). O que consegues fazer com uma, consegues com outra.

Uma vez mais, não estou a dizer que é a melhor, mas tem de ser sempre uma opção a considerar.


Warrior  bem vista a separação do tópico  :D

Share this post


Link to post
Share on other sites
Tuntankamon

Ainda não entendi o porquê deste stress...

Agora qual é a tua linguagem de eleição? E que tipo de serviços fazes? Só para ver se dá para perceber...

Share this post


Link to post
Share on other sites
Betovsky

Desenvolvimento windows é o que todas permitem. Vantagens aqui, onde estão? Porque é que dizem que VB é mais rápida a desenvolver do que, por exemplo, Java?

Sem saber muito de VB, (presumindo que seja similar a C#) e a não pegar em Java já a um par de anos (por favor corrigem-me se estiver enganado). VB tem várias vantagens em relação a Java.

  • Sistema de tipos unificado (aka tudo é um objecto)
  • Inicialização de colecções
  • Partial classes
  • Propriedades
  • Indexers
  • Eventos
  • Delegates
  • Lambdas e expression trees
  • Inferência de tipos
  • Os generics são melhores em .Net

Provavelmente os eventos com os delegates sejam a grande diferenciação. No caso do Java terás de usar e abusar do padrão Observer e local classes.

A framework .net é uma vantagem, mas resta mostrar que VB é a melhor escolha dentro da framework..

Pois. Aí já sabem a minha preferência...

Talvez o suporte para parâmetros opcionais seja sempre uma vantagem, a maioria das outras poderiam estar numa lista encabeçada "desvantagens do VB.net", porque isso são características.

Não. Os parâmetros opcionais são o horror. Fiquei bastante desiludido com a inclusão disso no C#4.0

"Give a man a fish and he will eat for a day; Teach a man to fish and he will eat for a lifetime. The moral? READ THE MANUAL !"

Sign on a computer system consultant's desk

Share this post


Link to post
Share on other sites
jpaulino

Não. Os parâmetros opcionais são o horror. Fiquei bastante desiludido com a inclusão disso no C#4.0

Não sei porquê!

Se calhar não viste bem a aplicação que tem em alguns casos, não todos é verdade, como por exemplo no COM Interop em que em vez de definires todos os parametros (como Type.Missing caso não tenhas nada a indicar), basta definir apenas o que precisas. É muito prático, embora goste mais também dos overloads.

EDIT: Em conjunto com os named arguments é claro ;)

Share this post


Link to post
Share on other sites
Betovsky

Não sei porquê!

Se calhar não viste bem a aplicação que tem em alguns casos, não todos é verdade, como por exemplo no COM Interop em que em vez de definires todos os parametros (como Type.Missing caso não tenhas nada a indicar), basta definir apenas o que precisas. É muito prático, embora goste mais também dos overloads.

O problema é que os parâmetros opcionais são um pequeno pedaço mágico elaborado pelo pré-compilador. O pré-compilador modifica o código para chamar a função em que preenche os parâmetros em falta com os seus valores predefinidos.

1º, o uso deles destrói a noção de herança/polimorfismo. Por exemplo:

Tens a Class AA, BB e CC. A class BB extende a AA e a class CC extende a BB.

Vamos imaginar que existe um método (nome fun) que recebe um int e dá como resultado o seu quadrado.

Na class AA tem então fun e tem o argumento (um inteiro) como opcional com o valor 1.

A class BB faz override ao método e diz também que o parâmetro é opcional com o valor 2.

A class CC a mesma coisa mas com o valor 3.

Ora o código: AA aa = new AA(); aa.fun(); irá devolver o valor 1.

Se for com a class BB irá devolver 4 e a CC 9.

Tudo bem, espectáculo. Mas se fizer o seguinte: BB x = new CC(); x.fun(); irá devolver 4 em vez de 9.

Imagina agora uma lista de AA em que se pode por para la AAs, BBs, CCs e outras classes que também sejam válidas.

O problema está que o código gerado é baseado no que está a chamar e não quem está a ser chamado. Lá se foi o conceito de herança.

2º é apenas grave se for usado no contexto de APIs. Se uma função de uma API tiver parâmetros opcionais, se depois modificar o seu valor predefinido, não basta apenas compilar a API como também se terá que compilar todo o código que usa essa API. Isto porque, mais uma vez, o código gerando é no quem está a chamar e não em quem está a ser chamado.

Usado o exemplo anterior. Se tivesse uma API com as classes AA,BB e CC.

Se depois num outro projecto a parte fizesse referência a essa API. Quando teria o código CC x = new CC(); x.fun(); o pré-compilador iria transformar esse código em CC x = new CC(); x.fun(3);

Portanto se depois muda-se o código da API e trocava o valor de 3 para 5. Não bastava recompilar a API apenas (e apenas fazer o deploy da nova dll), teria também que recompilar todos os projectos que usam essa API.

Para quem fizer APIs não fica bem visto...


"Give a man a fish and he will eat for a day; Teach a man to fish and he will eat for a lifetime. The moral? READ THE MANUAL !"

Sign on a computer system consultant's desk

Share this post


Link to post
Share on other sites
jpaulino

Eu não disse que gosto muito ou que utilizo muito, apenas que é muito prático.

Basta olhar para o codigo gerado com um o .NET Reflector qualquer, tipo Red Gate,  e vimos logo a confusão.

Mas que é muito prático em alguns casos, isso é.

Mas isto já é um pouco a fugir do tópico. ;)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.