Forum Pplware

Versão Completa: Programação Desktop VS Programação Web
Está de momento a ver uma versão reduzida do nosso conteúdo. Ver versão completa com o formato adequado.
Olá pessoal!

Então, isto não é tanto uma dúvida, mas a necessidade de ver opiniões. Eu possuo mais conhecimento em programação Desktop, mas me viro por um lado na programação web também. A diferença é que na universidade onde estudo, e penso ser assim na maioria, pelo plano curricular que tenho visto no site de algumas universidades, apesar de se aprender das duas, Desktop é a que leva mais tempo de ensino (horas de aulas). No então não elimina o suporte da programação Web. Mas eu quero é mesmo ver a opinião do pessoal em relação ao presente -> futuro. O que vocês acham de quem vai ter mais lugar no mercado e o porquê? Só para verem, num post que li e não encontro o link por agora, a Google, Microsoft... estão a preferir Engenheiros com conhecimento em programação Web como seus futuros trabalhadores.

Obrigado! Para já, este é o meu primeiro post no fórum!

Amarildo.
Vou assumir que ao falares em "Programação Desktop", te referes ao desenvolvimento de aplicações para serem utilizadas em computadores desktop.
Relativamente á "opinião" que pedes, apesar de não me considerar um programador no sentido literal da palavra, penso que tanto para agora no presente como no futuro, irá ser sempre necessário, saber ás bases necessárias para programar, nem que seja só o desenvolvimento do raciocinio lógico, mas também cada vez mais se pedem aplicações para a web.
Agora uma não invalida a outra, nem vice-versa...
Concordo com o Progster.

Relativamente ao mundo empresarial, estão cada vez a preferir mais aplicações web, que possas aceder pelo browser, que correm num servidor ou na "cloud". Esta é uma tendência forte, pois tira a necessidade de computadores potentes que corram a aplicação.

Por outro lado, as aplicações que correm no "cliente" também são ainda muito usadas, e duvido que desapareçam.

A questão aqui é: seja web ou seja local, os conceitos fundamentais são exactamente os mesmos, o que muda eventualmente são as ferramentas/frameworks usadas.
Bem,

Eu não queria intervir aqui porque sabia que iria deixar um texto comprido, e logo muita gente não teria vontade de o ler.

Qualquer que seja a linguagem de programação e destino da mesma, se não se tiverem bases de programação (pseudocódigo e C), nunca se vai saber programar.

Existirão, pelo menos no futuro previsível (digamos no mínimo 5 anos), aplicações nativas (o que chamas de desktop, que também podem ser para dispositivos móveis) e aplicações web. Existem também as híbridas (PhoneGap, Titanium, etc.), que também têm a sua função, mas para programar as mesmas precisa de se ter conhecimentos de programação web.

Aplicações Nativas:

Estas aplicações utilizam o dispositivo ao máximo (seja ele um dispositivo móvel ou desktop), têm maior performance, utilizam mais e melhores funcionalidades e são, normalmente, feitas à medida do dispositivo. O utilizador fica sempre a ganhar com uma experiência destas, se a aplicação existir para o dispositivo que possui.

Aqui normalmente terás de aprender a linguagem específica para onde pretendes programar. Seja Objective-C (Mac/iOS), Java (Android, e multi-desktop), VB/C# (Windows), C/C++ (multi-desktop), QT (Linux), etc.

Aplicações Web:

Estas aplicações têm a enorme vantagem de poderem ser executadas em qualquer dispositivo, independentemente do Sistema Operativo e Browser (obviamente que na realidade isto está longe de ser verdade, mas caminhamos nessa direcção, e a diversidade de dispositivos à disposição funcionais é normalmente bastante satisfatória).

Aqui a "obrigatoriedade" de linguagens prende-se com HTML/CSS/JavaScript. Depois, para aplicações com necessidades server-side (para ligar a uma base de dados, gerar as páginas antes de as mostrar, etc.), irás necessitar de uma linguagem específica para o servidor. Actualmente a mais requisitada é Ruby (on Rails, normalmente, que é uma framework de Ruby), a mais utilizada é PHP e também há uma série de outras em crescimento e declínio, como Scala, ASP.NET, Python, etc.

Aplicações Híbridas:

Estas aplicações são normalmente programadas em HTML/CSS/JavaScript e depois convertidas, por frameworks externas, em código "nativo". "Nativo" pois no fundo é criado, para a maior parte do código (mas não todo), um "wrapper" para uma aplicação Web.

As vantagens relativamente às Aplicações Nativas são a de desenvolvimento muito rápido, e utilizar linguagens mais "fáceis" (e que podem ser usadas para websites, não sendo específicas de um dispositivo). No entanto, não têm uma performance tão boa como as aplicações nativas.

As vantagens relativamente às Aplicações Web são a de poderem aceder a funcionalidades dos dispositivos que não estão normalmente disponíveis via web browser (GPS, por exemplo).

Resumo:
As 3 têm futuro e objectivos, dependerá do que pretendes fazer, na realidade.
Não é tanto a nível de conceitos ou formação,. A minha questão é mesmo em termos tendenciais.
Eu entendo sempre que haverá lugar para uma ou outra. Mas a minha pergunta é a nível de mais expansão e oportunidade no mercado. Como exemplifiquei a Microsoft e a Google, noto que aqui também na universidade onde estudo, quando a conferências aparecem várias empresas, e a uma exposição de productos em que denota-se esta preferência. Foi este mesmo um dos motivos que me fez querer saber as idéias do pessoal. Vê-se que elas querem mais serviços de gestão ou administração cada vez mais interligados a rede, e que tem as suas vantagens, sei que existem também aplicações nativas em sistemas distrubuidos, mas as aplicações web demonstraram-se ser mais vantajosa neste quesito, pelo menos nas experiências que observei. Um artigo muito interessante que tive a oportunidade de ler a alguns dias, e com bastante sentido possui alguns pontos muito importantes Why I´m Done Making Desktop Applications. A nível de projectos de desenvolvedores independentes, penso que hoje em dia ganha-se mais com aplicações ou serviços para web também, talvez por algumas vantagens que variados sites e o mercado electrónico esteja mais aberto a este lado. Obrigado!

Amarildo.
Percebo, mas como expliquei, existe mercado para as duas, e estão ambos em expansão.

Devemos notar, no entanto, que as tecnologias web estão a ser adoptadas cada vez mais por diversas plataformas como linguagens de programação alternativas, pelo que se virmos por esse prisma, talvez esteja em maior expansão.

Mas uma boa aplicação nativa complementa (ou supera/substitui) uma aplicação web.

Case in point: Sparrow substituiu-me o Gmail web que usei ainda uns anitos, pois era (e é) fantástico. Utilizo o Gmail Web no meu Chromebook Smile
Na realidade,
a "história" das aplicações Web, são, um regresso ao passado.

A diferença é que antigamente o ponto de acesso era um terminal feio e difícil de usar.
Hoje, tem um interface aliciante para trabalhar, as chamadas aplicações Web.
Mas na sua essência, não deixam de estar num cenário igual, que é o de disponibilizarem um interface num local qualquer, e de executarem o processamento num servidor central.

As aplicações Web, têm inúmeras vantagens e para além das já mencionadas ,destacto a ausência de deployment, os requisitos normalmente mais "simpáticos", manutenção mais simples. Actualizar uma webapp, consome muito menos recursos do que enviar via rede um qualquer pacote de update, e monitorizar a aplicação e execução remota com sucesso.

Num ambiente empresarial, isto são vantagens muito importantes a ter em conta.
Ter apps instaladas, significa por norma:
1 - Maior complexidade na instalação individual ou na criação de imagens. há sempre uma aplicação que precisa de full control numa chave especifica do registry, e outra que precisa de um controlador especifico, mais isto e mais aquilo.
2 - Maior complexidade em situações de upgrade de SO ou de políticas.

Uma empresa que tenha uma forte política em colocar as suas ferramentas em formato Web, na sua estação padrão, pouco mais precisa que o software de VPN, e o cliente email (porque este ainda tem uma utilização offline muito enraizada)

Desta forma, uma migração de SO, torna-se mais simples Smile

É que a alternativa ... e eu já passei por isso, embora na posição de fornecedor de software, é ter que gerir com toda os fornecedores, se o software é compatível com o SO X, e ainda pior, que no software X, as Apps dos vários fornecedores não se lixam umas às outras.

No meu caso, já foi à uns anos, e o problema era, salvo erro com uns drivers da sybase, que para estarem ok para o software que eu suportava, não deixava correr outro, e vice-versa.

O grande calcanhar de Aquiles das WebApps, acaba por vir da sua própria definição ... que é ser obrigatório ter uma qualquer conectividade. Em zonas remotas, ou em utilizações limite, pode ser, e é efectivamente um problema.

Mesmo em Portugal, isso é bastante visível, a cobertura real 3G não é o que se pinta nos spots publicitários, nem pode ser, há algumas barreiras físicas (serras e tal)
URL's de Referência