Criação de sistema desktop

49 respostas
csharpjavadelphi
D

Gostaria de uma informação estou pensando em criar um sistema desktop para lojas
com controle de estoque, nota fiscal, cupom fiscal, vendas gostaria de saber qual seria a linguagem ideal para ser utilizada e que tenha mais material na internet sobre isso? principalmente nota fiscal que é o que menos acha material qual seria a mais fácil para criar o sistema?

49 Respostas

J

Se for pra Windows recomendo C# ou Delphi. Alguns links:

http://www.macoratti.net/11/05/nfe_dc1.htm
https://www.projetoacbr.com.br/forum/
https://www.google.com/search?q=windows+forms+c%23+nota+fiscal

R

Da pra criar com Java também, Swing ou JavaFX… Os materiais disponíveis são de grande ajuda

D

qual o melhor entre o csharp e o delphi?

J

Ambos sao bem produtivos, mas prefiro C# por ser totalmente free e mais atual. Java é improdutivo, na minha opinião.

D

estou vendo algumas video aulas do neri, não sei nada de C# pra ser sincera a linguagem mais familiar pra mim é java rsrs vou ter que começar do zero em C# pra fazer o sistema rsrs

J

Se só tem experiencia com Java e nao vai ter tempo de aprender novas tecnologias, melhor fazer em Java mesmo.

D

estou pensando aqui entrei de férias agora rsrsrs ai estou pensando nisso rs

K

Hoje, sistema desktop para Windows eu faria em C# com WinForms. Não dá pra bater a produtividade e tempo de desenvolvimento.

Comprar alguma biblioteca de componentes UI como DevExpress, Syncfusion ou Telerik ajudam muito também.

E usar ReShaper pro VS é outra coisa que vai facilitar sua vida.

C# como linguagem é muito parecido com Java, mas o que dá trabalho num sistema desses é montar as telas e a facilidade de fazer isso usando bibliotecas boas e uma IDE que suporte RAD (criar as telas visualmente) isso vai compensar qualquer perda de tempo em aprender a linguagem. Use o Visual Studio normal, não use VS Code pra isso, se não ficou claro.


Outra opção viável e multiplataforma é Qt com C++. Roda em tudo e ótima qualidade.

Qt é um framework que tem suporte a tudo, muitos componentes variados já incluídos, possui também bibliotecas C++ pra fazer de todo quite você imagine e o editor RAD deles é bom.

Ele ganha de longe do WinForms no quesito portabilidade e capacidade de personalizar componentes existentes usando uma linguagem semelhante a CSS.

O ponto negativo é que o custo de desenvolvimento em C++ vai ser maior, principalmente se você nunca tocou a linguagem. E também que por mais que Qt seja muito completo por si só, ele não é tão completo em questão de versatilidade e opções quanto C# + WinForms se usado com um DevExpress ou Telerik.

J

Então vale a pena aprender C# com WindowsForms nesse tempo. Será bem mais produtivo do que usar Java.

F

Então faça em Java. Hoje em C# é possível fazer para mais de uma plataforma, mas não sei se essa tecnologia está amadurecida. Java já nasceu multiplataforma. Perca um tempo maior fazer a aplicação em Java, mas de cara ela vai funcionar em Windows, MacOS e Linux.

F

Onde que C# é totalmente free se é da Microsoft, ou melhor dizendo da micro$$$$$$$oft? Hahahahha!

N

Mais facil nao e bom.
Sugiro em php. Uma vez que o próprio script seria o sfuficiente p desktop e web. Uma coisa q ninguém imagina mas q pode ser útil. Outra um computador ou tablet/celular seria intercambiáveis. Mais materiais, mais interoperabilidade com java, c#, bancos, sistemas disponíveis.
Creio que se você for começar do zero, terá alguns percalços que não podem fazer desistir. Mas considere a opção de contratar uma consultoria do programador experiente, pois a segurança é tudo neste caso. Algumas operações podem trazer MT prejuízo caso não implementar corretamente.
Se você posteriormente necessitar de criar um aplicativo em android já tem o web service. Aprenda um pouco de Jason e pronto. Um sistema operativo multilíngue, multisistema, multiplataforma.
Acho que não seria a opinião da maioria mas não se pode pensar so no hoje, o amanhã ja esta chegando. Boa sorte com sua escolha.

J

Você está bem desatualizado.

F

E o seu comentário não ajudou em nada…:frowning:

P

J

Hoje em dia pensar em desenvolver somente pra Windows não é bom.
Windows é um sistema operacional ruim e inseguro.
Pensa alem, mac, linux, solaris, raspberry, ofereça qualidade a seus clientes e qualidade combina com Java, que alias se seu cliente fazer questão de usar o terrivel Windows, você terá certeza que irá rodar tambem. Java é multi plataforma, já coisas feitas em net em outros SOs por exemplo Linux esqueça, são tantos os erros da VM mono que farão você desistir dele.

K

@j-menezes Em software desktop Windows é quase 90% dos usuários no mundo inteiro. E Linux nem chega 5% sendo generoso.

Existem mercados onde OSX é mais forte, mas acho que nem chega a 20% nos EUA e não é o caso do Brasil.

Fora Windows o outro grande nicho para software de consumidor final é Android, que não é desktop, mas é mais relevante que estatísticas que incluem servidores web linux, na web já é outra história.

E C# roda bem em linux nativamente se não há necessidade de GUI. Então se quiser futuramente implementar serviços e teve cuidado de fazer um codigo minimamente modularizado vai conseguir botar isso na web fácil, dai sim podendo rodar com .NET Core até num RPi.

J

Isso não faz do Net ideial para Windows, uma vez que Java roda tambem nele e alias muito bem.

Usando Net o problema será quando esse 5% dizer que quer que roda em Linux.

O que você fará, irá dizer pra seu cliente rodar usando Wine ?, Net com VM mono esqueça, é horrivel. tem mais bug qe espinha na cara de adolescente.

F

Tenho que concordar com o colega a respeito do Windows. Acho que continuará sendo a plataforma dominante porque, bem ou mal, está sempre antenada no cliente menos experiente, escondendo as complexidades, mas acho que a Microsoft não é confiável quando se diz respeito a linguagens de programação. Apostou no Basic, tendo o modernizado para o mundo GUI, com o Visual Basic. Mais tarde, adcionou a orientação objeto com o Visual Basic, mas teve que ser render a uma linguage CLike como o C#. Quem vai garantir que no futuro próximo a Microsoft não mude de ideia? Ela havia apostado nos tablets e depois abandonou. Apostou no mundo dos “ipods” e também abandonou. Veio com o Source Safe eClear Case e abandonou. Comprou a Nokia para investir no Windows Phone e o descontinuou.

K

Sobre o .NET, a vantagem sobre desktop Java é o menor tempo de desenvolvimento como falei nos posts anteriores do tópico.

5% foi uma estimativa generosa, na realidade acho que desktop linux não passa de 3%. Mas o número exato não é tão importante, o importante é que é uma fatia pequena do mercado, desktop linux é um nicho bem específico.

Mas obviamente nenhum software mora num vácuo, e todos tem requisitos então se parte dos requisitos for rodar GUI linux então faz com outra coisa. Até mesmo com .NET e Xamarin :wink:

Se não for, então digamos que cobrir a maior fatia possível do mercado mantendo um custo baixo é a melhor opção. Hoje em dia tu cobre isso no desktop com .NET + WinForms na minha opinião, como mencionei nos posts anteriores.

J

Custo baixo depende da equipe que já existe e disponibilidade no mercado.
E tempo de desenvolvimento depende do desenvolvedor.

K

Então já que tudo é tão vago e flexível que “depende”, que tal desenvolver seu sistema todo em assembly? Só depende do desenvolvedor. Nem sei porque você esta discordando de mim já tudo depende :stuck_out_tongue:

No mais, falo considerando gente proficiente nas tecnologias. Não precisa nem entrar no mérito de metricas de pontos de função / hora que existem, mas tenta criar um projeto desktop simples de “video locadora” da vida em JavaFX e com o setup que recomendei e vê qual é mais produtivo.

J

A faça me rir, ninguem aqui tem culpa se você demora uma eternidade pra desenvolver um programinha em JavaFX para locadora.
E’ vamos ver quem é mais produtivo, que disputar comigo, Eu programo em JavaFX e você em NET vamos ver quem termina primeiro e qual roda melhor em multi plataforma ?

K

Não to dizendo que eu demoro, nem com bobagenzinhas de fanboy. Multi-plataforma nem é requisito de OP é só preconceito seu cara, porque não gosta do “Window$”.

Eu to dizendo pra você que se duvida do que digo, não precisa acreditar, vá lá e teste por conta própria. As bibliotecas de componentes para WinForms são excelentes e não existe comparação com as existentes para Java.

J

Você tá com a cabeça cheia de teoria, na pratica Windows é portador de virus, travamento e NET em mult plataforma não presta.
Cansei de tanto desenvolver vacina pra Windows.

K

:laughing:

J

Faz em Django e acabou a historia http://djangosige.com.br/

J

Programo em Java SE mais esse com a imagem abaixo foi desenvolvido em Django acho que gastei um mês para terminar ele, eu tenho o mesmo sistema em Java SE e gastei uns 6 meses para desenvolver é um sistema de fretamento.

J

Só quem tem experiência real com outras tecnologias mais produtivas entendem o que falamos.

J

O Negócio é que o pessoal daqui tem um amor eterno por Java, gosto do Java foi minha primeira linguagem mais acho que devemos procurar por algo mais produtivo e não se prender a uma única tecnologia para o resto da vida principalmente linguagem de programação.

J

Bom . não sei se foi a pessoas como a mim que você está se referindo. Mas já passei por Fortran, Assembly, C/C++ (ainda programo nelas), Cobol (programei bastante tempo tambem), Pascal e Object Pascal, Clipper, JavaScript, HTML esse nem conta né sem falar de Angular e outras coisinhas que apareceram por ai e Java.
Todas tem seus pontos fortes, e em Java pela organização, segurança, bibliotecas, comunidade envolvida, sem duvida pra mim Java tem seu destaque e sou bastante produtivo em Java e me atende desde micro até macro.

Você demorou seis meses pra desenvolver em Java, mas usou o que exatamente
Swing, JavaFX, SWT enfim ?

Troca Java por Python é o mesmo que trocar uma Ferrari por um fusquinha.

R

O problema é que quando alguém defende o Java, já associam que a pessoa nunca teve outra experiência, seja acadêmica, freela ou qualquer outra coisa.

Você precisa analisar os pontos, você era iniciante? O que você sabia sobre programação? Pra demorar 06 meses pra fazer uma aplicação, não é culpa da linguagem, desculpe… Você pode ter tido muito mais facilidade com o Django pq já entende de programação, depois que vc pega o jeito, o resto é resto.


Assim que eu entrei no fórum, postei o seguinte tópico “Por quê odeiam o Java?” Foi um tópico bastante movimentado, eu estava iniciando ainda. E uma das respostas foi: “Não há nenhuma linguagem melhor que a outra, há linguagens que vc tem mais afinidade, há algumas que fazem algo e há outras que não fazem, você só precisa escolher a que vai melhor te atender” e isso é a grande realidade.

K

Por mais que existam não só linguagens mas ferramentais de desenvolvimento que se apliquem melhor a uma coisa ou outra, dizer que não há linguagens piores, é patentemente falso, o problema é que quando o povo fala assim não define uma métrica.

Dai fica como o colega ali programador de Ferrari, que quando eu digo que WinForms com Telerik tem baita produtividade pra software desktop ele então retruca que não faz cross-platform.

Sejamos francos, existem motivos claros pelo qual hoje assembly por exemplo se limita a um nicho muito pequeno. Até desenvolvimento embarcado hoje em dia migrou para linguagens mais de alto nível. No geral a produtividade é uma das métricas mais relevantes pra esse tipo de mudança, já que menor produtividade = maior gasto com desenvolvimento.

Já ser cross-platform, possuir homo-iconicidade, ser código aberto ou fechado, ou seja qual for sua picuinha de estimação, no geral pode ou não ser relevante, e isso somente vai depender pura e exclusivamente dos requisitos do sistema.

Já ter maior produtividade é algo que sempre é relevante, e sim produtividade vai depender do nicho. Mas como falei, neste nicho o setup que comentei no começo é na minha opinião o mais produtivo.

J

E não faz mesmo.
E outra coisa, não confunda linguagem com frameworks, bibliotecas, apis e por ai vai,
Tem um trilhão de otimas soluções em java para dar produtividade para quem sabe programar

J

A exemplo de demanda para desenvolvimento desktop Windows, dizer que Windows Forms ou WPF não são mais produtivos que Swing ou JavaFx acaba sendo natural associar que nunca teve experiência real com a opção mais produtiva para o mesmo tipo de resultado.

P

O ciclo de vida do desenvolvimento é composto por fases e a implementação no todo não representa o maior tempo gasto.
images

images%20(1)

Se vc já tinha um sistema, não o reimplementou do zero.
Se já estava em produção não implementou o banco de dados do zero.
Já havia um escopo trabalhado.
Já havia uma lógica trabalhada.
Logo, é natural que a implementação leve menos tempo.
Por exemplo, uma pessoa pode levar um ano para escrever um livro, realizar pesquisas, fazer orçamentos, etc, e um tradutor pode levar 30 dias para reescrever o livro em outro idioma.

Não acho que foi algo excepcional.
Levei cerca de 20 dias para fazer uma aplicação em javaFX e 4 dias para implementar em Android e isso diz apenas que reaproveitei muito do que já havia feito.
No fim:

K

Eu concordo com a ideia só acho problema igualar os termos “implementação” com “codificação”. Implementação é tudo que não é concepção, nem validão. Implementação é botar o projeto em pratica. E eu também no gráfico que você botou colocaria “desenvolvimento” como todo o processo, planejamento e análise inicial também e desenvolvimento :slight_smile:

Enfim, picuinhas semânticas, mas que na minha opinião são relevantes. Por exemplo, quando digo que sou desenvolvedor de software, eu digo isso implicando que toco um projeto de começo a fim, tudo que tem ali no seu gráfico.

E mesmo se igualar “codificação” com “implementação”, tem coisas que são especificadas e projetadas de forma concomitante à codificação, por exemplo, isso acontece em todo projeto até mesmo no unicórnio do waterfall mais minucioso e perfeitamente implementado. Sempre há incógnitas na pratica. Por isso é impossível separar codificação de análise, exceto nos casos mais triviais

.

P

Implementação

Nessa etapa, o sistema é codificado a partir da descrição computacional da fase de projeto em uma outra linguagem, onde se torna possível a compilação e geração do código-executável para o desenvolvimento software.
Fonte:

Isso é confuso, não se deve confundir as fases de um projeto com as fases do desenvolvimento.

Segundo o PMBOK as fases de um projeto são, iniciação, planejamento, execução, (monitoramento e controle) e encerramento e o projeto “nasce” de fato com o termo de abertura.
https://sitecampus.com.br/tap-a-certidao-de-nascimento-do-projeto/

Não dá.
São os gráficos do SCRUM e do RUP :man_shrugging:

https://www.researchgate.net/figure/Figura-4-Modelo-do-ciclo-de-vida-de-desenvolvimento-de-software-Tornado-Fonte-adaptado_fig2_282769405

Isso é uma conotação particular.

Além disso se você é um faz tudo, pode até construir aplicações profissionais, mas o projeto em si não é desenvolvido de forma produtiva.

Um analista de sistemas não deve implementar.
Um gerente de projetos não deve implementar.
Um desenvolvedor não deve fazer a gestão do projeto.
Se os papeis se misturam, não é por profissionalismo é por necessidade.

Neste sentido eu posso dizer que você como faz tudo, não é profissionalmente produtivo como desenvolvedor e o motivo é simples:

na natureza, a divisão do trabalho aumenta a produção. Ludwig Von Mises, Ação Humana.

Por exemplo, um médico que não “possui” secretária/atendente produz menos.

Cabe observar que pela lei dos rendimentos decrescentes, aumentar o número de colaboradores de forma arbitrária tende a diminuir os rendimentos e até mesmo a produtividade, conforme apontado na obra indicada e no livro The Mythical Man-Month.

Ao analisar o gráfico é perceptível que a implementação está fracionada entre etapas, num modelo iterativo e incremental, seja no SCRUM, seja no RUP.
Cabe esclarecer que a intenção é demonstrar o esforço demandado na implementação de forma e proporcional as demais atividades como exposto no gráfico, e não o momento ou a etapa em que está sendo aplicada e também visava demonstrar que o rapaz que passou 6 meses para construir uma aplicação em java de certa forma omitiu as demais etapas do desenvolvimento, já que não é só sentar e codificar como deu a entender, mesmo que ele tenha aplicado a metodologia de desenvolvimento conhecida como GO HORSE.

image

Normal, e as metodologias ágeis são focadas nisso, inclusive o PMBOK se coloca como manual de gerenciamento flexível para atender a mudanças, até Sun Tzu defendia a necessidade de adaptação a mudanças.

No mais, em relação a paradigmas, estudei com um cara “produtivo” em Python que odiava Java, percebi que ele programava melhor de forma procedural e não orientada a objeto, nestes termos, não vai ser produtivo nunca em linguagens orientadas a objetos.

Assim, entendo que há pessoas produtivas com C#, como entendo que há colegas produtivos com Java.
Entendo também que programadores ruins não são produtivos em linguagem alguma e que não há uma linguagem melhor que a outra, mas sim uma mais adequada que a outra e para linguagens no mesmo campo de atuação a fluência do programador é o fator determinante tendo em vista a grande quantidade de frameworks disponibilizados para ajudar no desenvolvimento.

K

Exato, tudo isso ai inclusive PMBOK e Rational são concepções arbitrárias e inventadas. A final, não foi Deus que desceu e deu uns mandamentos extra ai pra ajudar no desenvolvimento de software :slight_smile:

Dito isso, o que eu falei não contradiz em nada o Rational, tanto é que até no titulo que você citou:

Que é exatamente o que eu falei, desenvolvimento é todo o processo desde a ideia, planejamento, execução, validação e não sei qual mais estágios tu queira botar ai. Tudo isso é desenvolvimento, não só a codificação como achei que você deu a entender antes.

Isso quando você esta seguindo esses padrões. Veja bem, os padrões de processão são criados para o desenvolvimento de software, e não o contrario, é possível criar um software sem seguir nada semelhante a RUP, PMBOK ou a metodologia que você quiser. Pode ficar um lixo ou não dai é outros 500.

Mas

Concordo mas o que eu falei vai além disso. Não é incognitas em relação a requisitos é incógnitas do tipo a biblioteca que foi atualizada para a versão 2.5 que é essencial pra implementar a “Funcionalidade B” agora deu conflito XYZ e bugou a “Funcionalidade A” e não da pra reverter sem perder “Funcionalidade B”.

Esse tipo de coisa por mais minuciosamente que seja projetado o sistema, mesmo fazendo diagrama dos algoritmos em si, é impossível de resolver exceto na etapa de codificação. Por isso codificação envolve muitas vezes análise.

Discordo plenamente :slight_smile: Ninguém considera brainfuck uma boa linguagem. É como falei sem definir a métrica vale tudo, até dizer que “brainfuck o povo usa muito sim, é super produtivo em ser uma linguagem de entretenimento”.

Claro há linguagens melhores que as outras em algumas áreas, o que não implica que “todas sejam iguais” ou non-senses do tipo. Há linguagens que são piores que as outras em quase todas as áreas :wink:

Já quando falamos de ferramentas usuais e estabelecidas no mercado até concordo, no geral, as ferramentas que ganham destaque é porque tem algum ponto forte.

Bom, eu acho que em relação ao topico em questão, que é criação de software desktop não da pra comparar. Já fiz software desktop com JavaFX, e com C# + Telerik e DevExpress e a segunda opção da um banho.

No geral no generico, num vacuo irrelevante pro mundo real vale tudo, até dizer que o ideal é fazer tudo em LISP porque é uma linguagem mais pura, tudo é homoiconico, e simples, e outras coisas que não visam atender requisitos reais de aplicações reais pois estamos falando em termos tão mas tão gerais que mal tem a ver com a realidade.


Acho que deu pano pra manga, enfim… :slight_smile: minha conclusão:

Como falei, ninguém precisa acreditar no que um desconhecido na internet fala, faça o teste. Mesmo se não manja de C# pega um VS2019, versão trial do DevExpress ou Telerik e tenta faz um projeto pra tu ver como é produtivo pra criar software desktop.

Pro assunto em questão é isso que interessa, você é ou não é mais produtivo com o que sugeri? Se não for, beleza. Já sabe que não presta. Porém pra muitas pessoas, que dominam os 2 ambientes (linguagens e todo o ferramental em volta), o setup que falei é muito produtivo.

D

php não é só para web?

N

Não. É na verdade mais produtivo na web. Mas nao inviabiliza o uso desktop não, basta um servidorzinho local (Ex: xampp link—https://www.apachefriends.org/download_success.html) para usar ai msm no PC da loja.
Acontece que usar na web te da mais poderes , uma vez que vai ter mais capacidade produtiva e abrangência.
Quis dizer que mesmo que utiliza um navegador como interface, não necessariamente precisa estar na web e sim no servidor local. Pode trabalhar como local e se você mais tarde quiser acessar pela web, tudo que precisara fazer é colocar o projeto em um servidor web. Se comparar com todas as linguagens disponíveis, vai ver que é mais proveitoso fazer com uma linguagem que te da essa possibilidade.

L

[OFFTOPIC] Que layout eh esse que vc usou? Gostei do estilo limpo dele.

F

Nesse caso, todas as linguagens que tenham framework para web se encaixam nessa situação, correto?

Poderia usar Java, Pyhton(Django), Ruby(on rails).

Não gosto do PHP, apesar de sua popularidade, o código fica sujo, como acontece com o Perl, mas a finalidade deste é programas rápidos para extração e relatórios e não uma aplicação inteira.

N

Isso q penso. Não é o mais fácil, mas devido a proposta é mais adequado

J

Fazer em node um projeto assim seria legal hein. Js é bem simples, e com ajuda do electron vc já faz uma aplicação desktop, ou pode fazer simplesmente um sistema web, e utilizar o electron pra criar a aplicação desktop, acho que poupa tempo.

M

Reclamam tanto do Java, mas depois que aprende uma linguagem fica fácil aprender uma outra.

Fulano escolhe o Java como primeira linguagem a se estudar sério, depois que aprende o core decide estudar uma outra linguagem, ai ele aprende rapidão e vem falar que Java é difícil, complexo, improdutivo… Sendo que quando foi estudar a segunda linguagem, toda a lógica já estava formada na cabeça, só foi necessário saber as novas keyword para colocar no lugar.

Quem que gasta o mesmo tempo para desenvolver uma aplicação pela segunda vez?

Criação de serviços, mapeamento ORM, collections, em java é tudo muito fácil, não sei onde acham complicado.

O que pode ser chato: configuração de uma segurança parruda com Spring Security, JWT e OAuth.

Quer desenvolver o front com um framework da linguagem do back? Tem o JSF. No início pra quem não conhece HTTP, HTML, CSS e JS é difícil mesmo, pois vai ter que aprender isso e ainda aprender a sintaxe e ciclo de vida, do contrário é muito fácil. Os componentes estão todos prontos, com css feito, cada componente com diversas funcionalidades prontas, como por exemplo o input e datatable do Prime.

Voltando ao assunto principal do tópico, eu recomendo seguir com a linguagem que você mais domina.
Se for Java, o JavaFX lhe cai bem, os componentes são bonitos, pode usar css para estilizar, é produtivo, pode montar a tela utilizando o drag’n drop, tem um mestre aqui no fórum @j-menezes, etc.

EDIT: Seria tão bom falar o que no Java é improdutivo e o que na outra linguagem é produtivo, melhor ainda seria mostrar o código nas duas linguagens

F

É muito bom ouvir alguém elogiar o Java. Esta linguagem que quebrou um paradigma, iniciando o desenvolvimento em multiplataformas, adentrando também o mundo mobile.

Dizem que se escreve muito, usando o Java, mas, em compensação é uma linguagem que te disciplina e foi, senão a primeira, uma das pioneiras em adotar a nomeação de variáveis e classes usando as notações cameoCase e PascalCase.

F

Coloco um tema para discussão. Será que a facilidade em desenvolver não leva a uma menor disciplina, tornando simples de fazer e difícil e manter e atualizar?

Outra questão. Estamos considerando o desenvolvimento do zero ou sempre reaproveitando classes de projetos anteriores?

K

Cara, o que vi no tópico é gente reclamando de não recomendarem Java, e mostrando ignorância sobre .NET coisas que existem faz uns 5 anos.

Java foi legal em que popularizou certas coisas que eram só acadêmicas, mas foi uma tentativa muito fraca e bitolada de melhorar C++. Pra mim a parte da bitolação é a pior, buscando um purismo que simplificou a linguagem mas dificultou o uso dela, em lugar de dar liberdade ao programador restringiram. Isso que olha que C++ tem problemas mas Java conseguiu ser pior justamente pela filosofia de querer controlar a forma como o programador deve trabalhar, justamente o oposto da filosofia C++ e de outras linguagens. Só ver como só recentemente os caras cederam a adicionarem métodos anônimos, porque fugia do purismo que queriam. Uma mentalidade tolidora.

Então como linguagem, estritamente falando eu acho uma tentativa falha de superar C++ em questão de design. Houve na mesma veia de ser um C++ melhor e mais seguro a linguagem D, e as próprias iterações de C++ que melhoraram muito a linguem e hoje Rust é o que chega mais perto de atender esse objetivo.

Pra trabalhar, existe coisa melhor, mas Java não é o fim do mundo, e tem algumas bibliotecas muito boas que podem fazer valer a pena considerar ela para alguns projetos específicos.


Agora, vamo deixar do vitimismo dizer que “o povo é contra o Java” quando na verdade são os programadores de Ferrari que vem ai reclamar que recomendei .NET? Please :smile:


Sim e não. Um exemplo, eu uso muito Python pra fazer prototipo e testar ideias e algoritmos, e é aquele negocio codigo bem ruim mesmo, só de rascunho pra testar rapidamente uma coisa ou outra, e ir mudando pra ver no que da.

Dai vem a disciplina de pegar isso e tornar num aplicativo, em vez de fazer um protótipo de produção, tu até pode pegar a parte do código que presta, mas fazer pensando na arquitetura do programa.

Outra coisa também, nenhum software é pra durar pra sempre então isso vai pesar em como você desenvolve ele, se tu ta fazendo uma ferramenta que tu vai usar 1 vez para resolver um problema especifico na minha opinião tu não precisa caprichar como algo que vai ser mantido rodando.

Caso os requisitos mudarem, a vida de a volta que for e isso aconteça dai tu faz o que falei, refatora praticamente do zero.


Quando eu comentei eu falei pensando em criar um software desktop do zero com .NET e usando bibliotecas de 3os, tipo DevExpress ou Telerik. Ou seja, é do zero sem código anterior seu, mas usando bibliotecas prontas.

Essas bibliotecas permitem tu criar muito facilmente telas profissionais e com muitos recursos avançados, sem precisar reinventar a roda. Coisas tipo isso:

Sendo extremista, do zero do zero mesmo mesmo seria sem usar nem .NET ou as bibliotecas Java, nada, acho que nem da. Em C, C++, assembly da pra fazer algo totalmente do zero e olha só se tu trabalhar com dispositivos embarcados onde tu só interage com hardware, porque senão tu vai estar interagindo com SO, BIOS, etc.

Criado 22 de dezembro de 2019
Ultima resposta 27 de dez. de 2019
Respostas 49
Participantes 12