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

djthyrax

Desenvolvimento - Vale a pena pensar nos sistemas GNU/Linux?

90 mensagens neste tópico

No seguimento do off-topic apagado num tópico do quadro Projectos de Programação:

No desenvolvimento de uma aplicação, vale a pena pensar também nos sistemas GNU/Linux? Ou devemos programar apenas para Windows?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

depende do custo de pensar nos sistemas GNU/Linux.

alguns programas são difíceis de adaptar, outros nem por isso.

e depende também do público alvo dos programas.

PS: não te esqueças de MacOSX ;), mas convém também não esquecer que estes utilizadores são um pouco mais exigentes :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Epá depende de muita coisa mesmo!

Repara, depende dos custos de adaptação (em termos de developers de uma empresa), do tempo que demorará a adaptação, do público alvo da adaptação...

Para que vou eu dizer aos meus programadores para desenvolverem para windows e linux se 99% do meu público alvo usa Windows? não faz sentido..só para dizer que tenho um software multi plataforma... e ainda por cima o software demorou mais tempo a sair para o mercado porque desenvolvemos numa plataforma para 1% dos utilizadores, e os custos do programa vão ser muito maiores...

just my two cents  ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isso depende do alvo da aplicação. No caso da empresa onde trabalho é impensável fazer algo em Linux por variados motivos desde os clientes-tipo às plataformas usadas.

Mas é claro que o inverso também existe. Se o asterisk não fosse para Linux não teria a popularidade que tem hoje.

Quando é uma aplicação de âmbito geral, na minha opinião, o mais importante não é pensar num determinado SO, mas sim na portabilidade da aplicação a ser desenvolvida e não se restringir a apenas um único SO.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Quando é uma aplicação de âmbito geral, na minha opinião, o mais importante não é pensar num determinado SO, mas sim na portabilidade da aplicação a ser desenvolvida e não se restringir a apenas um único SO.

Exactamente se a aplicação for construida de raiz a pensar na portabilidade não custa nada, agora se é feita a pensar num único SO já é bem mais complicado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

É por isso que Java é cada vez mais usado porque com apenas algumas modificações ou mesmo nenhumas é possivel criar software multi plataforma sem custos acrescentados por isso e cada vez se vê mais software multi plataforma, até mesmo as linguagens que vão surgindo pensam nisso, por exemplo a linguagem D tem um sistema de pré compilação que permite escrever codigo que ao ser compilado vai funcionar dependendo do SO em que foi compilado e que irá correr.

Agora se disserem se vale a pena desenvolver para Linux, pá eu pessoalmente só desenvolvo para linux quando faço para Windows é sempre Java que já sei que programo em Linux e que vai funcionar no Windows de igual forma lol mas também não desenvolvo a nível profissional claro. Agora uma coisa é certa cada vez mais aparece software para Linux paga ao contrario do que muitos pensam que software para linux não dá lucro e um bom exemplo de que isso não é verdade é o CEDEGA que tem uma licença paga mensalmente.

Acredito piamente que o futura está nas aplicações multi plataforma sejam aplicações interpretadas como Java ou mesmo Nativas como C++ e D. Por algum motivo a MS pretendia (não sei como está isso) lançar o MS Office para Linux e é claro que não era para ter prejuízo devem ter analisado vem a coisa antes.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Que grande confusão que aqui vai, para mim C / C++ / Python  é tão portável como Java. Se usares apenas o standard dessas linguagens, desde que haja um compilador ou interpretador para o sistema operativo que queres, elas são multi-plataforma. Estas linguagens só deixam de ser portáveis no momento em que usas APIs específicas de cada sistema operativo. Mesmo para desenvolver aplicações GUI, existem toolkits gráficos multi-plataforma.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não é bem assim, um programa em Java compilado e pronto corre em qualquer plataforma desde que tenha Java e estamos a falar de software a nível profissional tu não entregas a src ao cliente e dizes olhe depois compile isso, mas não isso que está em questão.

O que acontece com o C, C++, D e tal como dissestes é as libs de cada sistema em D talvez já não tanto mas em C e C++ se programares em Win e em Linux vais notar grandes diferenças isso não acontece em Java um código que funciona em Win ou Linux vai funcionar de igual forma onde quer que seja isso da-te desenvolvimento com custo acrescentado igual ou aproximado a 0 em quanto que se calhar em C e C++ as coisa já não é bem assim.

Referiste muito bem as libs de cross gui que é sem duvida uma coisa muito boa não ter de mudar código de SO para SO mesmo que seja só no GUI mas se repares essas libs normalmente trazem dependências a trás o que por vezes não é lá muito bom.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Em relação ao C, C++, D e afins não serem portáveis, isso não é muito difícil de resolver. Usem libs para se abstraírem do SO, como pensam que Java, Python, PHP e afins resolveram isso? ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

PHP não uma boa escolha para exemplificar.

Quanto a Java e Python hummmm pá talvez se possam comprar a esse nível embora ache que Java seja mais portável.

Agora tens de ver uma coisa Java, Python, Ruby, Perl, são linguagens interpretadas logo com um interpretador para cada plataforma possivelmente resulta uma app multi plataforma C/C++, D e afins são linguagens nativas, compiladas e atenção para não confundir com a compilação de Java, C#, Python e afins C//++//D é compilado para código nativo normalmente ASM o código não é interpretado por nada a não ser pela própria maquina, Java e etc não são portáveis por usarem libs que se abstraem do SO tem é os interpretadores que passam o byte-code para ASM virtualmente e fazendo a maquina executar esse código.

É como escreveres um texto num dialecto que só tu sabes e mandares para alguém que não sabe das duas uma ou mandas alguma coisa que passe para linguagem corrente (Java) ou mandas logo em linguagem corrente ©.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pois é triton, isso que dizes é verdade, mas ora pensa assim: quantas empresas se preocupam em usar tecnologias multi-plataforma?

Se programas em ambiente windows, mesmo sem te dares conta vais acabar por usar bibliotecas especificas. Até te vai acontecer uma coisa caricata: vais tar a usar standards, testas, fazes o debugging que tiveres a fazer e depois tentas portar aquilo e chegas à conclusão que usaste uma implementação proprietária de uma tecnologia aberta e que essa implementação não seguia as directivas à risca, lá se foi a compatibilidade.Os guis são um exemplo, mas há muitos outros. Há toolkits compativeis com windows, linux e mac, mas são utilizados em grande escala? Até são, mas ainda assim menos que os outros.

O pessoal que usa o visual studio da microsoft, ou o borland, que são duas coisas muito usadas, nem se preocupa se a aplicação vai correr noutras plataformas.

Tirando o java, as tecnologias multi-plataforma, apesar de terem já alguma popularidade ainda não invadiram o mercado empresarial.

Eu gosto dessas tecnologias abertas toas que praí andam: php, python, gtk, wxwidgets, xul, etc... mas as empresas por enquanto ainda não lhes ligam.

Basicamente há duas grandes opções no mercado empresarial: .net e java. Tudo o resto deve representar os seus 5% ou menos.

Eu acho esta discussão muito importante. Eu tento sempre fazer aplicações multi-plataforma até por obrigação, e é mesmo esse o conselho que eu dou: se não o fizerem pelo mercado façam-no por ética, outros programadores já o fizeram.

Outra coisa que é interessante:

Quem desenvolve aplicações web depara-se com o contrario, a plataforma microsoft é que acaba por ser esquecida. Tambem aqui é importante a mesma linha de pensamento.

Djthyrax, eu não acho tão simples quanto isso. C/C++ e afins são usadas precisamente porque permitem trabalhar ao nivel do sistema operativo, e os sistemas operativos são diferentes uns dos outros. A "solução" não passa muito por aí. Basicamente o C/C++ têm o seu lugar na implementação de "coisas" ao nivel do sistema operativo. Por exemplo... o PHP foi escrito em C/C++, mas para ser portável, teve que haver pessoas a escrever código especifico para cada sistema operativo, aí não havia volta a dar-lhe, o produto final é que é inter-plataforma portanto resolveu-se o problema.

EDIT:magician, foste mais rápido do que eu a responder :s

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Basicamente há duas grandes opções no mercado empresarial: .net e java. Tudo o resto deve representar os seus 5% ou menos.

Talvez não 5% porque C++ ainda é bastante usado mas realmente a nível empresarial .NET e Java são actualmente o topo penso que Java terá alguma vantagem face a .NET pela referido ponto da multi plataforma e dado a que cada vez mais os utilizadores de PC se dispersão mais pelos SO nomeadamente Win e Mac embora linux tenha vindo a ganhar bastante terreno nomeadamente no grupo de programadores Win e Mac ainda ganham e cada vez mais se vê MacOS tavez também devido ás empresas que estão por trás e que linux não tem mas é a realidade e penso que por isso Java terá alguma vantagem em relação a .NET e caso a MS passe .NET para M-P penso que ficaria em desvantagem por uma questão de experiência LOL Java sempre foi uma linguagem M-P e foi pensada com essa função .NET em M-P implicaria muitas mudanças e possivelmente uma perdesse elevada no desempenha que pelo que se fala é relativamente mais elevada que o Java.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Certas funções como a unlink() do PHP, executam coisas diferentes em diferentes SOs. O que eu estava a falar, era construir uma base sólida multiplataforma (a tal library que serviria para abstracção do SO), e, por cima dessa base, fazer projectos para cada sistema operativo. Por exemplo, um programa de gestão comercial. A base deste (armazenamento de dados, relações, etc) seria imutável entre cada SO, tendo sobre ele código específico para cada SO/interface. Ou seja, tínhamos a tal base que iria ser usada em aplicações diferentes (como lib): KGest, GnomeGest, WinGest, wtv. É um mau exemplo, mas acho que dá para perceber o que quero dizer. Basicamente, a divisão do programa em libs autónomas. E, para a interface, poder-se-ia ter uma lib para abstracção de sistema gráfico. Tipo, poderia fazer criarJanela(tal, isto, aquilo) e na definição da função na lib, ele fazia x para GTK, y para QT, z para outra coisa qq, etc.

Se programas em ambiente windows, mesmo sem te dares conta vais acabar por usar bibliotecas especificas. Até te vai acontecer uma coisa caricata: vais tar a usar standards, testas, fazes o debugging que tiveres a fazer e depois tentas portar aquilo e chegas à conclusão que usaste uma implementação proprietária de uma tecnologia aberta e que essa implementação não seguia as directivas à risca, lá se foi a compatibilidade.

É a estes casos a que me refiro. Por exemplo, em vez de usar na minha aplicação uma lib do SO, uso uma lib minha que me vai dar abstracção do SO na minha aplicação, ficando o "geramento" do GUI consoante o toolkit entregue à lib que vou usar.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Na verdade a plataforma .NET tem tudo para ser multiplataforma. Só depende da framework utilizada que tem de ser suportada em varias plataformas. Fora isso não exige grandes alterações, porque compiladores já existem.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Basicamente há duas grandes opções no mercado empresarial: .net e java. Tudo o resto deve representar os seus 5% ou menos.

Talvez não 5% porque C++ ainda é bastante usado mas realmente a nível empresarial .NET e Java são actualmente o topo penso que Java terá alguma vantagem face a .NET pela referido ponto da multi plataforma e dado a que cada vez mais os utilizadores de PC se dispersão mais pelos SO nomeadamente Win e Mac embora linux tenha vindo a ganhar bastante terreno nomeadamente no grupo de programadores Win e Mac ainda ganham e cada vez mais se vê MacOS tavez também devido ás empresas que estão por trás e que linux não tem mas é a realidade e penso que por isso Java terá alguma vantagem em relação a .NET e caso a MS passe .NET para M-P penso que ficaria em desvantagem por uma questão de experiência LOL Java sempre foi uma linguagem M-P e foi pensada com essa função .NET em M-P implicaria muitas mudanças e possivelmente uma perdesse elevada no desempenha que pelo que se fala é relativamente mais elevada que o Java.

LOL

O .Net foi desde o 1º segundo multi-plataforma. O conceito é cópia chapada do Java incluíndo os defeitos (por exemplo, o facto da JVM simular um processador de arquitectura em stack). Uma prova disso é o Mono em Linux. Alguém só precisa de implementar a máquina virtual para o CLI num dado SO e todo o código .Net passa a ser executável nesse SO.

Por motivos mais do que obvios, para a M$ só interessa a implementação da CLI no Windows e não desenvolveu mais nenhum para os outros SOs.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Basicamente há duas grandes opções no mercado empresarial: .net e java. Tudo o resto deve representar os seus 5% ou menos.

Talvez não 5% porque C++ ainda é bastante usado mas realmente a nível empresarial .NET e Java são actualmente o topo penso que Java terá alguma vantagem face a .NET pela referido ponto da multi plataforma e dado a que cada vez mais os utilizadores de PC se dispersão mais pelos SO nomeadamente Win e Mac embora linux tenha vindo a ganhar bastante terreno nomeadamente no grupo de programadores Win e Mac ainda ganham e cada vez mais se vê MacOS tavez também devido ás empresas que estão por trás e que linux não tem mas é a realidade e penso que por isso Java terá alguma vantagem em relação a .NET e caso a MS passe .NET para M-P penso que ficaria em desvantagem por uma questão de experiência LOL Java sempre foi uma linguagem M-P e foi pensada com essa função .NET em M-P implicaria muitas mudanças e possivelmente uma perdesse elevada no desempenha que pelo que se fala é relativamente mais elevada que o Java.

LOL

O .Net foi desde o 1º segundo multi-plataforma. O conceito é cópia chapada do Java incluíndo os defeitos (por exemplo, o facto da JVM simular um processador de arquitectura em stack). Uma prova disso é o Mono em Linux. Alguém só precisa de implementar a máquina virtual para o CLI num dado SO e todo o código .Net passa a ser executável nesse SO.

Por motivos mais do que obvios, para a M$ só interessa a implementação da CLI no Windows e não desenvolveu mais nenhum para os outros SOs.

O facto de teres o mono não te diz que o .net é multiplantaforma. Nem nada que se pareça, na minha opinião é impraticável usar grandes aplicações com o mono.  Vocês podem não se preocupar em fazer aplicações multiplantaforma e pensar só fazer aplicações para windows. Mas as grandes empresas  já não pensam assim e ai surge a utilização massiva do java, sou fã da linguagem, mas em termos de eficiencia fica mto atrás assim como o .net. Eu preocupo-me  em desenhar aplicações para todas as plantaformas utilizando ferramentas que o pemitam de forma mto fácil e que se possa efectuar compilação em código nativo (o Qt por exemplo,etc..) e vocês deveriam faze-lo também. Nunca se sabe quando a vossa empresa,etc... poderá mudar de SO, o custo da mudança pode ser enorme.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Basicamente há duas grandes opções no mercado empresarial: .net e java. Tudo o resto deve representar os seus 5% ou menos.

Talvez não 5% porque C++ ainda é bastante usado mas realmente a nível empresarial .NET e Java são actualmente o topo penso que Java terá alguma vantagem face a .NET pela referido ponto da multi plataforma e dado a que cada vez mais os utilizadores de PC se dispersão mais pelos SO nomeadamente Win e Mac embora linux tenha vindo a ganhar bastante terreno nomeadamente no grupo de programadores Win e Mac ainda ganham e cada vez mais se vê MacOS tavez também devido ás empresas que estão por trás e que linux não tem mas é a realidade e penso que por isso Java terá alguma vantagem em relação a .NET e caso a MS passe .NET para M-P penso que ficaria em desvantagem por uma questão de experiência LOL Java sempre foi uma linguagem M-P e foi pensada com essa função .NET em M-P implicaria muitas mudanças e possivelmente uma perdesse elevada no desempenha que pelo que se fala é relativamente mais elevada que o Java.

LOL

O .Net foi desde o 1º segundo multi-plataforma. O conceito é cópia chapada do Java incluíndo os defeitos (por exemplo, o facto da JVM simular um processador de arquitectura em stack). Uma prova disso é o Mono em Linux. Alguém só precisa de implementar a máquina virtual para o CLI num dado SO e todo o código .Net passa a ser executável nesse SO.

Por motivos mais do que obvios, para a M$ só interessa a implementação da CLI no Windows e não desenvolveu mais nenhum para os outros SOs.

O facto de teres o mono não te diz que o .net é multiplantaforma. Nem nada que se pareça, na minha opinião é impraticável usar grandes aplicações com o mono.  Vocês podem não se preocupar em fazer aplicações multiplantaforma e pensar só fazer aplicações para windows. Mas as grandes empresas  já não pensam assim e ai surge a utilização massiva do java, sou fã da linguagem, mas em termos de eficiencia fica mto atrás assim como o .net. Eu preocupo-me  em desenhar aplicações para todas as plantaformas utilizando ferramentas que o pemitam de forma mto fácil e que se possa efectuar compilação em código nativo (o Qt por exemplo,etc..) e vocês deveriam faze-lo também. Nunca se sabe quando a vossa empresa,etc... poderá mudar de SO, o custo da mudança pode ser enorme.

Tipo, se a aplicação foi feita em .Net ou Java. A empresa pode mudar para qualquer SO com o custo de mudança igual a 0, desde que esse SO tenha uma implementação da máquina virtual dessa linguagem e nem precisas de voltar a compilar para o novo SO. Se isso não é multi-plataforma...
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

No caso do java sim, é o mais multiplantaforma que há, embora pouco eficiente.  Mas do .net não te estou a perceber onde é que está o multiplantaforma, o mono pode ser suficiente para tu brincares com as tuas aplicações, mas para aplicações a sério não dá. O Mono é uma aplicação open source que está dependente do desenvolvimento do .net para saber o que vai fazer a seguir, está dependente se a microsoft segue alguns standards ou não. Mono e .Net são ferramentas independentes, um está em constante evolução pois existe dinheiro para manter mta gente envolvida no desenvolvimento de bibliotecas,etc..o mono está dependente na grande maioria da comunidade de software livre para assegurar a sua evolução de acordo com a evolução do .net. Isso não traz garantias a nenhuma empresa. o Mono não faz do .net uma "linguagem" multiplantaforma que não é nem tem intenssões de ser.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

magician, Java acaba por ser tão portável como C++. Se quiseres aceder à API do Windows lá se vai a portabilidade. Se quiseres criar um GUI com o toolkit nativo do sistema operativo lá se vai a portabilidade. Estás limitado a bibliotecas para Java que sejam cross-platform, no caso dos toolkits GUI, o Swing e o SWT.

A única vantagem do Java é que não é preciso compilar para poderes usar o programa noutra plataforma, compilas uma vez e o programa corre em qualquer plataforma com o JRE.

Referiste muito bem as libs de cross gui que é sem duvida uma coisa muito boa não ter de mudar código de SO para SO mesmo que seja só no GUI mas se repares essas libs normalmente trazem dependências a trás o que por vezes não é lá muito bom.

... mesmo com todas essas libs que tu dizes será que são tão lentas como os toolkits gráficos do Java? :biggrin:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

No caso do java sim, é o mais multiplantaforma que há, embora pouco eficiente.  Mas do .net não te estou a perceber onde é que está o multiplantaforma, o mono pode ser suficiente para tu brincares com as tuas aplicações, mas para aplicações a sério não dá. O Mono é uma aplicação open source que está dependente do desenvolvimento do .net para saber o que vai fazer a seguir, está dependente se a microsoft segue alguns standards ou não. Mono e .Net são ferramentas independentes, um está em constante evolução pois existe dinheiro para manter mta gente envolvida no desenvolvimento de bibliotecas,etc..o mono está dependente na grande maioria da comunidade de software livre para assegurar a sua evolução de acordo com a evolução do .net. Isso não traz garantias a nenhuma empresa. o Mono não faz do .net uma "linguagem" multiplantaforma que não é nem tem intenssões de ser.

Não é o Mono  que torna o .Net multi-plataforma. É o facto de no .Net ser compilado para uma linguagem intermédia (CIL) em vez de código nativo que o torna multi-plataforma. O Mono é apenas mais um interpretador do CIL.

E o Mono está longe de ser para aplicações de brincadeira. O Mono tem por trás a Novell, que por acaso é "parceira" da M$. E já não falta muito para que fique a suportar o .Net 2.0, que é e só prai a versão usada em 99% das aplicações .Net que há por aí.

E mais. Se o Mono não serve para aplicações sérias, então não tem lógica o Second Life estar a planear em ir úsalo.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

magician, Java acaba por ser tão portável como C++. Se quiseres aceder à API do Windows lá se vai a portabilidade. Se quiseres criar um GUI com o toolkit nativo do sistema operativo lá se vai a portabilidade. Estás limitado a bibliotecas para Java que sejam cross-platform, no caso dos toolkits GUI, o Swing e o SWT.

A única vantagem do Java é que não é preciso compilar para poderes usar o programa noutra plataforma, compilas uma vez e o programa corre em qualquer plataforma com o JRE.

Referiste muito bem as libs de cross gui que é sem duvida uma coisa muito boa não ter de mudar código de SO para SO mesmo que seja só no GUI mas se repares essas libs normalmente trazem dependências a trás o que por vezes não é lá muito bom.

... mesmo com todas essas libs que tu dizes será que são tão lentas como os toolkits gráficos do Java? :biggrin:

Juro que não sei como podes dizer que C++ é tão portável como Java :| A questão é que não precisas de aceder a API do Windows nem do Linux nem nada disso com Java tudo o que programes é universal ao contrario de C++.

Não é o Mono  que torna o .Net multi-plataforma. É o facto de no .Net ser compilado para uma linguagem intermédia (CIL) em vez de código nativo que o torna multi-plataforma. O Mono é apenas mais um interpretador do CIL.

E o Mono está longe de ser para aplicações de brincadeira. O Mono tem por trás a Novell, que por acaso é "parceira" da M$. E já não falta muito para que fique a suportar o .Net 2.0, que é e só prai a versão usada em 99% das aplicações .Net que há por aí.

E mais. Se o Mono não serve para aplicações sérias, então não tem lógica o Second Life estar a planear em ir úsalo.

Pois o problema é que .Net não tarde já vai no 3.0 se é que não vai já e o mono trás um problema que é a performance que tanto criticam no Java em Mono e pior dado que actualmente o Java até já está bastante melhor a esse nível.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tudo vale a pena, quando a vontade é grande, e a alma não é pequena  ;)

Bem, ontopic, penso que muitas das linguagens referidas são multi plataforma, o problema é quando se começa a usar as API do Windows e etc e tal, perde-se logo a portabilidade toda. Nesse aspecto java é bom, sempre e quando não utilize as ditas API's... Em relação ao mono, já se conseguem correr programas em C# e asp.net em linux, vamos lá ver se a Novell tem pedalada para continuar com ese projecto, e optimizá-lo ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Juro que não sei como podes dizer que C++ é tão portável como Java :| A questão é que não precisas de aceder a API do Windows nem do Linux nem nada disso com Java tudo o que programes é universal ao contrario de C++.

Eu é que não estou a perceber como é que Java é mais portável que C++. Segundo o que eu percebi, tu dizes que todas as bibliotecas do Java são cross-platform, isso vai dar ao mesmo que usar a standard library do C / C++, e usar bibliotecas cross-platform para o resto (GUI, threading, sockets...).

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu é que não estou a perceber como é que Java é mais portável que C++. Segundo o que eu percebi, tu dizes que todas as bibliotecas do Java são cross-platform, isso vai dar ao mesmo que usar a standard library do C / C++, e usar bibliotecas cross-platform para o resto (GUI, threading, sockets...).

um programa em Java, compila-se uma vez, e depois corre em qualquer plataforma (salvo raras excepções), um programa em C/C++ tem que ser compilado em cada SO. é por isso que o Java é mais portável.

no C++ não tens biblioteca standards para GUIs e threads, por exemplo, o que te obriga a recorrer a bibliotecas que raramente funcionam em todo o lado.

basta ver que as aplicações em Java normalmente funcionam em todo o lado, enquanto que uma boa parte das aplicações em C++ não funcionam em todo o lado, ou têm vários forks para que tal aconteça.

acho que o C++ têm muitas qualidades, mas a portabilidade não é uma delas.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

no C++ não tens biblioteca standards para GUIs e threads, por exemplo (...)

E o que é que eu disse?

o que te obriga a recorrer a bibliotecas que raramente funcionam em todo o lado.

... e onde é que foste buscar isso?

Tomando como exemplo o wxWidgets:

wxWidgets lets developers create applications for Microsoft Windows, Mac OS, Linux/Unix (X11, Motif, and GTK+), OpenVMS, and OS/2 and more using one codebase. Unlike other cross-platform toolkits, wxWidgets applications look and feel native.

E parece que não sou o único a pensar assim, parece que empresas e agências como a AMD, NASA, Xerox, entre muitas outras também o fizeram. Lembra-te que só estou a considerar uma biblioteca, existem muito mais.

Atrevo-me a dizer que C++ é mais portável que Java. Existem compiladores de C++ para muitas mais plataformas do que o JRE.

Eu não estou a dizer isto só para deitar abaixo o Java, simplesmente estou sempre a ouvir dizer que Java é uma maravilha, C++ não presta porque não é portável e simplesmente não percebo onde vocês vão buscar os vossos argumentos. Eu próprio tenho andado a aprender Java estes últimos dias, e parece-me que é excelente pela facilidade de uso, pela documentação que tem, a quantidade enorme de bibliotecas e pelas ferramentas de desenvolvimento que se criaram à volta da plataforma.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora