por que a programação funcional não é mais popular no setor? entende agora?
<p>durante meus quatro anos na universidade, temos usado muita programação funcional em várias linguagens de programação funcional. mas também usei muita programação orientada a objetos e, de fato, uso mais as linguagens orientadas a objetos ao fazer meu pequeno projeto para me preparar para o meu primeiro trabalho. mas, muitas vezes, desejo codificar uma linguagem de programação funcional ao executar esses projetos.</p><p>no entanto, ao procurar um emprego, é muito raro ver um trabalho em que o conhecimento de uma linguagem de programação funcional seja necessário.</p><p>por que as linguagens de programação funcional não são mais usadas no setor? atualmente, existem muitas novidades sobre linguagens de programação funcional, então eu me pergunto se a programação funcional está pegando no setor agora?</p>
<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>
<p>olá, idelilde! tudo bem contigo? espero que sim!!</p>
<p>eu sei bem o que você está sentindo neste momento. dá a impressão de que tudo que você viu em lógica ficou lá atrás e que não absorveu nada, não é?</p>
<p>pois eu te digo que isso não é verdade!!!</p>
<p>quando fiz pela primeira vez o curso e parti para uma linguagem específica vi que minha base em lógica não tinha ficado tão sólida como eu imaginava. e qual foi minha saída? busquei muita informação sobre lógica e não somente escrevia os códigos no computador... eu escrevi a mão, até eu decorar a estrutura! isso me fez vez com uma certa clareza o que era uma variável, qual a importância e como trabalhar com ela, como funcionava a estrutura do <strong>if</strong>, do <strong>for</strong> e do <strong>while</strong> e assim por diante!</p>
<p>meu conselho? para um pouco ou, caso consiga, estude em paralelo a lógica de programação. quando você sentir que esta mais confiante tudo vai começar a fazer sentido. e não pense que está longe não! se você já passou por lógica esta mais perto de compreender do que você imagina! a internet está repleto de informações sobre lógica ;-)</p>
<p>um detalhe importantíssimo!!!</p>
<p>lógica é algo que vai te acompanhar p/ resto da sua vida em programação. </p>
<p>sempre temos que praticar!!!</p>
<p>espero ter ajudado, idelilde!!!</p>
<p>estaremos sempre aqui para o que precisar.</p>
<p>bateu a dúvida....travou? nos procure!!!</p>
<p>bons estudos e vamos em frente!!!</p> linguagem coloquial ã© o estilo linguã­stico usado para comunicaã§ã£o casual. ã‰ o estilo funcional mais comum da fala, o idioma normalmente empregado em conversas e outros contextos informais. o coloquialismo ã© caracterizado pelo amplo uso de interjeiã§ãµes e outros dispositivos expressivos; faz uso de terminologia nã£o especializada e tem um lã©xico que muda rapidamente . tambã©m pode ser distinguido pelo uso de formulaã§ãµes com ordenaã§ã£o lã³gica e sintã¡tica incompleta.o coloquialismo ou linguagem geral ã© distinto do discurso formal ou da escrita formal . ã‰ a forma de linguagem que os falantes normalmente usam quando estã£o relaxados e nã£o sã£o especialmente autoconscientes.sendo assim, concluã­mos que a alternativa correta ã© a alternativa b. <p>a resposta mais simples para sua pergunta é que os campos da ciência da computação e do desenvolvimento de software são muito novos e pouco compreendidos. embora todas as disciplinas científicas e de engenharia estejam avançando mais rapidamente nos tempos modernos, outros campos têm muito mais experiência para aproveitar e há uma compreensão compartilhada muito mais ampla de como elas funcionam.</p><p>por exemplo, apesar dos recentes avanços na ciência dos materiais, os engenheiros civis sabem há cerca de 2000 anos como construir um arco que não cairá, e isso é algo que pode ser ensinado e aprendido na universidade com relativamente pouca controvérsia. embora eu concorde totalmente com você sobre as técnicas que os desenvolvedores de software devem aprender, esse contrato é baseado na experiência pessoal e no raciocínio informal. para ser uma "melhor prática" aceita socialmente, precisamos de dados quantitativos que podem ser muito caros para reunir: quanto o controle de versão ajuda? como isso ajuda? teste de unidade? podemos argumentar sobre a eficácia de várias técnicas, mas na verdade provar que a eficácia seria muito cara. precisávamos executar um projeto de software completo e realista do começo ao fim, inúmeras vezes, com grupos de programadores com experiência equivalente, usando técnicas diferentes. no mínimo, precisaríamos de muitos dados sobre projetos existentes que esses projetos não estariam dispostos a liberar.</p><p>os engenheiros civis têm milhares de anos de pontes para examinar, com muitas informações. os desenvolvedores de software, por outro lado, têm apenas algumas décadas de informações, a maioria das quais é mantida em segredo, uma vez que há pouca motivação para as organizações coletarem e publicarem informações sobre a eficácia de seus desenvolvedores, mesmo que estejam coletando (o que geralmente não é necessário). 't).</p><p>há também alguma confusão de campos. desenvolvimento de software, ou "engenharia" de software, é realmente uma coisa diferente da ciência da computação. os desenvolvedores de software precisam de um conhecimento prático da ciência da computação, mas trabalhar nos limites da complexidade algorítmica ou raciocinar sobre paralelismo não é algo que um programador que trabalha faz todos os dias; da mesma forma, um verdadeiro "cientista da computação" escreverá um monte de código descartável que simplesmente não funciona ou não faz nada de interessante e não se beneficiará tanto do tipo de rigor que um produto de software real faria.</p><p>o surgimento da internet e da comunidade de código aberto pode fornecer dados suficientes para começar a responder a essas perguntas de maneira conclusiva, mas mesmo que as respostas estejam disponíveis amanhã, provavelmente levará 100 anos para que permeiem a sociedade internacional a ponto de todos concordarem com o que deve ser ensinado nas escolas.</p><p>finalmente, existem algumas considerações econômicas. faz um tempo relativamente curto, já que quase todos os envolvidos no desenvolvimento de software tiveram acesso fácil e barato a máquinas dedicadas para executar as ferramentas de desenvolvimento que desejarem. algumas décadas atrás, dedicar completamente uma máquina apenas para executar seus testes ou até abrigar uma história infinita de código-fonte teria parecido frivolamente caro para muitas pessoas.</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ú… aquela que não é escrita...a lingua falada. existem dois tipos, a culta e a informal. na culta, não se usam expressões populares ou gírias. é usada nos tribuinais, em discursos e ocasiões em que há a necessidade de nos comunicarmos formalmente. na informal, também chamada de linguagem popular, é a usada no dia a dia. ambas podem ser usadas de forma correta, se não cometidos erros de gramática, concordância, etc... <p>olá carlos!</p>
<p>é sempre uma boa prática separarmos as classes do nosso sistema pois se fazemos tudo em somente uma acabamos pendendo para o paradigma estrutural e não para o orientado a objetos.</p>
<p>isso também facilita na manutenção do código.</p>
<p>espero que tenha ajudado! :d</p>
<p>bons estudos! ^^</p> boa tarde romeo.como você já trabalhou com desenvolvimento, já deve saber a resposta que não existe linguagem certa.antigamente, o macbook seria limitante (ou não), mas hoje em dia você consegue ro... 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 :) Um dos principais usos para Lisp é em Inteligência Artificial. Um amigo meu na faculdade levou um graduado curso de AI e para o seu projeto principal, ele escreveu uma " [Lights Out](http://en.wikipedia.org/wiki/Lights_Out_(video_game)) " solver em Lisp. Várias versões do seu programa utilizado ligeiramente diferentes rotinas e testes AI em 40 ou mais computadores produziu alguns resultados bastante puro (eu gostaria que fosse em linha em algum lugar para me ligar, mas eu não acho que isso é).


Dois semestres atrás eu costumava Scheme (a linguagem baseada em Lisp) para escrever um programa interativo que simula Abbott e Costello "Quem está ligada primeiro" rotina. Entrada do usuário foi comparado com algumas estruturas de dados muito complicadas (semelhante a mapas em outras línguas, mas muito mais flexível) para escolher o que uma resposta apropriada seria. Eu também escrevi uma rotina para resolver um 3x3 [enigma da corrediça](http://en.wikipedia.org/wiki/Sliding_puzzle) (um algoritmo que pode ser facilmente estendido para puzzles slides maiores).


Em resumo, aprendendo Lisp (ou esquema) não pode produzir muitas aplicações práticas para além AI, mas é uma experiência de aprendizagem extremamente valiosos, como muitos outros declarou. Programação em uma linguagem funcional como Lisp também irá ajudá-lo a pensar de forma recursiva (se você já teve problemas com recursividade em outros idiomas, esta poderia ser uma grande ajuda). olá junior boff!este fórum é focado em programação (dev).assuntos sobre so, redes, hardware entre outros, geralmente não são respondidos, porém você pode verificar a techtudo ou o clube do hardware...