saindo do delphi - entrando em uma nova tecnologia...qual?
e ai pessoal, blz, então como diz o titulo do fórum, estou saindo do mundo delphi, creio que está na hora de modernizar, quero entrar em uma nova tecnologia, não sei ainda se seria c#, java, flutter(d...
eu pelo que entendo. se for para web melhor uma ferramenta que integra facilmente tudo e é rad, no caso microsoft visual studio....
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>eu diria que uma das razões pelas quais a programação funcional não é mais prevalente é a falta de base de conhecimento. minha experiência é que as empresas são muito avessas ao risco em termos de implementação de tecnologias que não são o fluxo principal e preferem investir em estruturas testadas e verdadeiras (java, c ++, c #). é somente quando há uma necessidade comercial (como na ericsson) que novos paradigmas são considerados. mas mesmo no caso da ericsson, ouvi dizer que a gerência exigia que o c ++ fosse usado e joe armstrong foi obrigado a codificar chamadas erlang em c ++ !! isso deve mostrar como as empresas estão relutantes em implementar novas tecnologias!</p> as instruções estão na wiki do rofi…

[imagem]

[davatorium/rofi](https://github.com/davatorium/rofi/wiki)

rofi: a window switcher, application launcher and dmenu replacement - davatorium/rofi <p>sim, acredito que sim.</p><p>existem alguns motivos que precisam ser considerados na seleção de um idioma para um novo projeto:</p><ul> <li>velocidade em tempo de execução. comparado com c/c++/fortran, perl e python são tão lentos que é engraçado.</li> <li>velocidade de inicialização. comparado às linguagens rápidas acima, <em> java</em> cai e chora enquanto a jvm continua carregando e carregando e ...<code>while(1)</code>....</li> <li>capacidade de protótipo. examinar exaustivamente e executar o trabalho de declaração/definição necessário para c++ ou java aumenta o loc, que é a métrica conhecida <em> somente</em> que se correlaciona de maneira confiável com as contas de erros. também leva muito tempo. também requer um pouco mais de reflexão sobre tipos e conexões.</li> <li>fiddlability interno. mexer dinamicamente com seus internos é ótimo até você começar a depurar seu <em> código auto-modificável</em>. (python, lisp, perl)</li> <li>verificação de correção. um compilador pode fornecer uma passagem rápida e semi-correta do seu código em c++, e isso pode ser <em> realmente</em> legal.</li> <li>detalhes da análise estática. c e java têm uma análise estática muito boa. perl não é completamente estaticamente analisável em um nível <em> teórico</em> (possivelmente python também). tenho certeza de que o lisp também não.</li> <li>plataformas estranhas levam apenas c, em geral.</li> <li>cadeia de suporte. se você pode ter um contrato no qual você <em> irá</em> fará com que seus erros sejam analisados ​​e trabalhados, isso é <em> enorme</em>.</li> </ul><p>se você pode presumir que a organização com a qual você está trabalhando tem o princípio "avançar" (existe um termo contábil para isso) e <em> não vai</em> apenas decida aleatoriamente não trabalhar no software , você terá um argumento muito melhor para usar o software. como não há grandes empresas <em> venda</em> (implicando em assumir a responsabilidade de mantê-la) python/perl/$ dynamic\_language, reduz consideravelmente o risco.</p><p>na minha experiência, os mantenedores de código aberto geralmente têm um problema em assumir total responsabilidade por correções de bugs e liberar atualizações. "é grátis, você trabalha nisso!" é <strong><em> não</em></strong> uma resposta que é aceitável para a maioria das empresas (não para suas principais competências, entre outras coisas).</p><p>claro, eu não estou falando sobre o mundo dos webapp/startup, que tende a seguir regras de alto risco/alta recompensa e estar <em> muito</em> aberto a permanecer na margem da tecnologia.</p> [imagem] rodrigo\_chile:

é você, [@frc\_kde](/u/frc_kde)? ([@edy\_lima](/u/edy_lima), note que todas as distros dele usam plasma!)

tá virando brincadeira ha ha ha

eu usei muito o distrowatch, para explorar os “galhos” da árvore linux ─ os mais antigos, debian, red hat, slackware, ─ e outros mais recentes, como suse, arch, … pegaria o da dell pois o i5 é de 4ª geração ao contrario do anuncio do walmart que é de 3ª e tbm está indisponivel. Depende do que você está fazendo. Que você pode mudar se:


* Você precisa de mais escalabilidade ou melhor desempenho - dizer do SQLite para o SQL Server ou Oracle.
* Você precisa ter acesso a tipos de dados mais específicos.
* Você precisa apoiar um cliente que só funciona um banco de dados específico.
* Você precisa de ferramentas melhores DBA.
* Seu aplicativo está usando uma plataforma diferente, onde o seu banco de dados não funciona, ou é bibliotecas não funcionam.


Há muitas mais razões para mudar e tudo depende de suas necessidades. o pessoal já falou várias coisas importantes. só vou acrescentar algumas que aprendi com o pouco que sei de linux.

estabilidade varia de acordo com o usuário. se você fuçar muito e não souber o que está fazendo, pode quebrar até um debian ou slackware da vida. porque? o linux te permite tudo.

s… isto não é algo que outra pessoa possa responder por você. minhas sugestões podem não se adequar às suas necessidades, hardware e etc. eu, particularmente, avalio alguns pontos ao escolher um sistema operacional:

necessidades (jogar, estudar, trabalhar, etc)

meu hardware

às vezes gosto de avaliar … 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 :)