[resolvido]como desenvolver softwares nativos para distros linux?
olá pessoal tudo bem com vocês?

estou com uma dúvida e não consegui encontrar uma resposta satisfatória até o momento.

atualmente sou desenvolvedor web, porém no passado, na época da faculdade eu fiz alguns programinhas básicos para windows com c#.

eu comecei a utilizar linux ubuntu há um tempo a…
olá [@rafaelbs](/u/rafaelbs)

eu fiz alguns posts introdutórios sobre esse assunto:

[[tutorial] python, gtk+ 3 e flatpak](https://plus.diolinux.com.br/t/tutorial-python-gtk-3-e-flatpak/948)
[[tutorial] python e qt 5 [parte 1]](https://plus.diolinux.com.br/t/tutorial-python-e-qt-5-parte-1/1905)

no caso eu utilizei python, mas o importante é notar que com o gnome builder você pode utilizar linguagens como:

c# .

c .

c++ .

javascript .

python .

…
<p> <a href="http://oreilly.com/catalog/9780596009588">programação de sistemas linux</a> </p><p>você pode consultar isso também <a href="https://unix.stackexchange.com/questions/80/recommended-readings-batter-understating-of-unix-linux-internals">link</a> </p> <ul> <li>fazendo desenvolvimento orientado a teste</li> <li>desenvolvendo em pequenos sprints</li> <li>por ter muito contato com o cliente</li> </ul><p>lembro-me de ler uma tese sobre o cowboy development, que é essencialmente ágil para desenvolvedores solo, mas não me lembro onde a encontrei.</p> <p>existem muitas maneiras de contribuir com o ubuntu. alguns exigem conhecimento técnico, mas muitos não.</p><p>antes de contribuir para o ubuntu, você deve ler o <a href="http://www.ubuntu.com/community/conduct">código de conduta do ubunt</a> , que estabelece um padrão de comportamento para os contribuidores.</p><h2>(principalmente) não-técnico:</h2><p>talvez a maneira mais fácil de contribuir para a comunidade ubuntu seja <strong> fornecer suporte </strong>. além de ajudar amigos e familiares, você pode responder a perguntas em <a href="https://help.ubuntu.com/community/internetrelaychat">irc</a> , the <a href="http://ubuntuforums.org/">fóruns do ubunt</a> , ou em <a href="https://askubuntu.com/">esta troca</a> !</p><p>um novo projeto que está procurando por colaboradores é o <a href="https://wiki.ubuntu.com/ubuntu-manual"><strong> projeto do ubuntu manual </strong></a> . segundo o site deles,</p><blockquote> <p>getting started with ubuntu é um completo manual para iniciantes do ubuntu, com guias abrangentes, how tos, e informações sobre qualquer coisa que você precisa saber após a primeira instalação do ubuntu.</p> </blockquote><p>sua <a href="http://ubuntu-manual.org/getinvolved">get involved</a> página diz que eles estão procurando por autores, editores, tradutores, programadores e designers - há algo para todos!</p><p>outro projeto para escritores é a <a href="https://wiki.ubuntu.com/documentationteam"><strong> equipe de documentação </strong></a> . eles escrevem a documentação que vem com o ubuntu e trabalham no <a href="https://help.ubuntu.com/community">help wiki</a> .</p><p>o projeto <a href="https://wiki.ubuntu.com/one%20hundred%20papercuts"><strong> one hundred papercuts </strong></a> pede que os usuários enviem relatórios de bugs sobre pequenos problemas de usabilidade (cortes de papel). isso requer quase nenhum conhecimento técnico e afeta diretamente a experiência do ubuntu.</p><p>o ubuntu se esforça para ter uma boa aparência e é preciso que os artistas façam isso acontecer. <strong> submeter arte </strong> é uma maneira fácil de causar um impacto visual no ubuntu. confira a <a href="https://wiki.ubuntu.com/artwork">página wiki da artwork</a> para informações sobre isso.</p><p>uma maneira realmente divertida de se envolver é <strong> participar e participar da sua comunidade local do ubuntu </strong> (loco). você pode verificar o <a href="https://wiki.ubuntu.com/locoteamlist">lista de ubuntu locos</a> para ver se há uma comunidade ativa perto de você. se não houver, você pode começar um!</p><p>como <a href="https://askubuntu.com/users/211/javier-rivera">javier rivera</a> comentou abaixo, usuários multilíngües devem olhar para <strong> contribuindo com traduções </strong>. alguém novo em traduções pode começar com o <a href="https://wiki.ubuntu.com/translations/quickstartguide">guia de início rápido de traduções</a> .</p><h2>mais técnico:</h2><p>se você é o <strong> tipo de programação </strong>, há muito espaço para você participar. eu não sou um desenvolvedor do ubuntu, mas o <a href="http://www.ubuntu.com/community/get-involved/developers">página de desenvolvedores no site do ubunt</a> é um bom lugar para começar.</p><p>no início de um novo projeto chamado <a href="https://wiki.ubuntu.com/operationcleansweep"><strong> operação cleansweep </strong></a> , havia mais de dois mil possíveis correções de bugs no launchpad esperando para ser aplicado. este projeto trabalha para revisar esses patches e aplicá-los em seus projetos.</p><h2>conclusão:</h2><p>existem inúmeras maneiras de contribuir. estes são apenas alguns! o conhecimento técnico é útil, mas não é absolutamente necessário.</p> Você já viu WiX ainda?


<http://wix.sourceforge.net/>


Ele constrói instaladores do Windows usando um arquivo XML e tem bibliotecas adicionais para usar se você quiser fancify seus instaladores e afins. Eu vou admitir a curva de aprendizagem para mim foi médio-alto em conseguir as coisas começaram, mas depois eu fui capaz de construir uma segunda instalador sem quaisquer dificuldades.


Ele vai lidar com atualizações e outros itens, se assim desejar, e você pode aplicar permissões de pasta e similares para os instaladores. Ela também lhe dá maior controle sobre onde exatamente você quer instalar arquivos e é compatível com todas as convenções da pasta do Windows padronizados, para que você possa especificar "PROGRAM\_DATA" ou algo nesse sentido eo instalador sabe para colocá-lo em C: \ Documents and Settings \ All Users \ Application Data ou C: \ ProgramData dependendo se você está rodando o XP ou Vista.


O boato é que o Office 2007 e Visual Studio 2008 usado WiX para criar o seu instalador, mas eu não tenho sido capaz de verificar que em qualquer lugar. Eu acredito que está é desenvolvido por algumas pessoas da Microsoft no interior. <p>as pessoas estão tão arraigadas em usar o windows que dizer que o ubuntu é melhor para suas tarefas básicas não é suficiente, você tem <strong> para mostrar </strong> eles como o ubuntu pode ser melhor/mais fácil de executar seja o que for estão tentando realizar.</p><p>você pode configurar uma caixa ubuntu totalmente configurada para eles e mostrar as diferenças em seu uso diário.</p><p>você pode mostrar a eles como um aplicativo ubuntu/linux específico é mais adequado/mais fácil/mais barato para eles.</p> olá jovem, seja muito bem vindo ao fórum. 
parabéns por ter iniciado tão cedo os estudos de programação. desejo excelente aprofundamento, mas não descuide da educação formal convencional (colégio, faculdade etc.). os caminhos não são excludentes, pelo contrário, eles são complementares. 
qualquer dú… <p>dê uma olhada <a href="http://projecteuler.net/">project euler.</a> não há mais nada como ele para afiar suas habilidades de programação fundamental.</p> bom dia vander, há muitos sites e empresas que fornecem aprendizado gratuíto na internet, você pode optar por esses que eu conheço e indico, são muito bons: 


microsoft:


<http://technet.microsoft.com/pt-br/bb291022>


<http://www.codelines.com/manualvb/manualvb.htm>


<http://www.microsoftvirtualacademy.com>


[www.http://channel9.msdn.com/browse/allcontent?lang=pt](http://www.http://channel9.msdn.com/browse/allcontent?lang=pt)


dell:


<http://content.dell.com/br/pt/empresa/d/campaigns/treinamento>


c++ :


<http://algoritmizando.com/desenvolvimento/curso-de-programacao-em-c-gratis/>


boa sorte!!! opa. que bacana. seja bem-vindo no mundo sem limites da tecnologia hahaha.como iniciante, recomendo que faça os cursos introdutórios aqui da devmedia.>>javascript>>java>>python... Esta é uma questão bastante ampla, como aplicações de programação GUI no Windows pode ser feito de muitas maneiras.


Há duas partes principais para o desenvolvimento de qualquer aplicativo GUI: o **idioma** ea **API / quadro** . Considerando que você está interessado em aprender a criar aplicativos do Windows GUI, a língua não é realmente um ponto de foco para você. Portanto, você deve escolher um idioma que você já conhece e trabalho com um quadro ou API que pode ser aproveitada por idioma escolhido.


Se você quiser usar C você está praticamente restrita a lidar com a API Win32-se, no caso de leitura que [Petzold](http://rads.stackoverflow.com/amzn/click/157231995X) ou [Richter](http://rads.stackoverflow.com/amzn/click/0735624240) seria ótimos lugares para começar. A API Win32 pode ser muito assustador, mas vale bem a pena o esforço para aprender (IMHO). Há uma abundância de tutoriais sobre Win32 na web, e há sempre [MSDN](http://msdn.microsoft.com/) , com uma referência / guia completo para a API Win32. Certifique-se de não cobrir apenas o API, mas outras áreas como recursos / diálogos como eles são blocos de construção para a sua aplicação Win32.


Se você quiser usar C ++ você tem todas as opções que você tem quando se utiliza C mais alguns outros. Eu recomendo ir com a API Win32 diretamente, e, em seguida, avançar para um quadro conhecido como MFC, Qt, wxWindows ou GTK para que você possa gastar menos tempo trabalhando com código clichê e em vez disso se concentrar em escrever a lógica do aplicativo. Os últimos 3 opções Eu apenas listados têm a vantagem de ser multi-plataforma, assim você não precisa se preocupar muito com as questões específicas da plataforma. Dado que você disse que quer trabalhar com o Windows, eu vou assumir que você está interessado em se concentrar no que ao invés de multi-plataforma - para ir com MFC, mas passar algum tempo com a API Win32 primeiro a se familiarizar com alguns dos os conceitos.


Ao lidar com MFC e Win32 API, é uma boa idéia para tentar obter uma sólida compreensão da terminologia antes de escrever código. Por exemplo, você precisa entender o que a [bomba de mensagem](http://en.wikipedia.org/wiki/Message_loop_in_Microsoft_Windows) é, e como ele funciona. Você precisa saber sobre conceitos como " [desenho proprietário](http://www.codeproject.com/KB/buttons/nativewin32xpthemes.aspx) controles", e [subclasses](http://msdn.microsoft.com/en-us/library/ms997565.aspx) . Quando você entender essas coisas (e mais), você vai encontrá-lo mais fácil trabalhar com MFC, porque ele usa a terminologia similar em suas interfaces de classe (por exemplo. Você precisa saber o que "traduzir mensagens" significa antes que você possa compreender como e quando usar [PreTranslateMessage](http://msdn.microsoft.com/en-us/library/kkbhxcs2(VS.80).aspx) ).


Você também pode usar Managed C ++ para escrever aplicações GUI .NET, mas eu li em alguns lugares que Managed C ++ realmente não estava destinado a ser usado dessa maneira. Em vez disso, deve ser usado como um gateway entre código nativo / gerenciado e código gerenciado. Se você estiver usando .NET é melhor usar uma linguagem .NET como VB.NET ou C # para construir suas GUIs.


Então, se você *está* indo para usar NET, você tem atualmente a escolha do [WinForms](http://msdn.microsoft.com/en-us/netframework/aa497342.aspx) biblioteca, ou [WPF](http://en.wikipedia.org/wiki/Windows_Presentation_Foundation) . Pessoalmente, sinto que você estaria perdendo tempo aprendendo a construir aplicações WinForms dado que WPF é projetado para substituí-lo. Ao longo do tempo WPF se tornará mais prevalente e WinForms muito provavelmente vai morrer. WPF tem um conjunto API muito mais rica, e não sofre de muitas das limitações que Winforms faz. Se você escolher esse caminho, no entanto, você vai sem dúvida tem que aprender [XAML](http://msdn.microsoft.com/en-us/library/ms752059.aspx) , que é uma linguagem de marcação que impulsiona aplicativos WPF. Esta tecnologia é vinda de idade, e há muitos ótimos lugares para aprender sobre ele. Primeiro, existem sites como o [LearnWPF](http://learnwpf.com/) e [DrWPF](http://www.drwpf.com/) que têm alguns realmente grandes artigos. Em segundo lugar, há [uma abundância](http://rads.stackoverflow.com/amzn/click/0321374479) de [qualidade](http://rads.stackoverflow.com/amzn/click/0596510373)  [livros](http://rads.stackoverflow.com/amzn/click/0672328917) sobre o [tema](http://rads.stackoverflow.com/amzn/click/1590599551) .


Então, para resumir, uma vez que você escolheu seu idioma e tecnologia, o caminho é realmente muito fácil. Basta pegar um livro ou dois, ler alguns blogs, entrar em algumas amostras de código .. eo mais importante ... escrever código. Continue escrevendo, continuar a fazer erros, e continuar a aprender com eles.


Como nota final ...



> 
> Em outras palavras, Silverlight. Se você não quiser ir a rota MS que você pode dar de Adobe Flash / Flex um olhar ver. Ambos Silverlight e Flash / Flex construir RIA. Que eu acho que é para onde estamos indo. Eles dias do Office como aplicativos são numerados
> 
> 
> 


Não estou de acordo em tudo. Silverlight não é o mesmo que WPF. Silverlight é específica da web, e tem apenas um subconjunto de recursos do WPF. Dado que a questão pede para aplicativos do Windows GUI, Flash / Flex RIA Apps não são realmente uma sugestão de ajuste. Eu também não concordo que os dias de aplicativos rich client (como o Office) estão contados em tudo.


Espero que ajude. Boa sorte :)