as linguagens dinâmicas digitadas merecem todas as críticas?
<p>eu li alguns artigos na internet sobre a escolha da linguagem de programação na empresa. recentemente, muitas linguagens dinâmicas digitadas foram populares, como ruby, python, php e erlang. mas muitas empresas ainda permanecem com linguagens estáticas tipadas como c, c++, c # e java.</p><p>e sim, um dos benefícios das linguagens estáticas de tipo é que os erros de programação são capturados mais cedo, em tempo de compilação, em vez de em tempo de execução. mas também há vantagens com linguagens dinâmicas digitadas. ( <a href="http://en.wikipedia.org/wiki/static\_typing#dynamic\_typing">mais na wikipedia</a> )</p><p>a principal razão pela qual as empresas não começam a usar linguagens como erlang, ruby e python, parece ser o fato de serem de tipo dinâmico. essa também parece ser a principal razão pela qual as pessoas na stackoverflow decide contra erlang. consulte <a href="https://stackoverflow.com/questions/2199368/why-did-you-decide-against-using-erlang">por que você decidiu "contra" erlang</a> .</p><p>no entanto, parece haver uma forte crítica contra a digitação dinâmica nas empresas, mas eu realmente não entendo por que é <strong> que </strong> é forte.</p><p>realmente, por que há tantas críticas contra a digitação dinâmica nas empresas? isso realmente afeta tanto o custo dos projetos ou o quê? mas talvez eu esteja errado.</p>
<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>
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... <p>eu não acho que haja uma resposta fácil aqui, porque, em última análise, depende do que você está construindo e para quem está construindo. sites de largura fixa e sites de largura variável têm suas vantagens e desvantagens.</p><p>uma coisa que devo salientar aqui, não falarei sobre experiências móveis para sites fixos/fluidos, porque sites móveis são melhores quando o design é específico para dispositivos móveis, não uma porta de um site de desktop para uma plataforma móvel.</p><h2>largura fixa - vantagens</h2><p>um site de largura fixa é uma experiência mais consistente e mais rápida de se desenvolver do que um site de largura variável. ele também permite que o designer tenha mais controle sobre a apresentação, porque você pode definir valores rígidos para larguras, comprimentos de linha, tamanhos de tipografia etc. é também mais fácil de manter do que um site de largura variável.</p><h2>largura fixa - desvantagens</h2><p>por outro lado, os designs de largura fixa começam a falhar quando os casos do edge aparecem. no momento, é muito comum as pessoas projetarem sites para um monitor com resolução de 1024px de largura, mas ainda existem pessoas com máquinas de resolução mais baixa. no momento, estou trabalhando em um aplicativo que foi projetado usando uma grade de 960 pixels; dei uma olhada nas análises hoje e notei que 3% dos usuários estavam em monitores de 800 x 600 e cerca de 5% do total estavam em resoluções abaixo de 1024 x 768. esses usuários provavelmente estão tendo uma experiência muito ruim porque o site tem largura fixa .</p><h2>largura do fluido - vantagens</h2><p>a largura do fluido permite que o design seja expandido com base nas configurações do usuário; o design se adapta a eles, o que é uma coisa boa. isso permite que o site mantenha um espaço negativo proporcional, para que ele nunca pareça muito confuso ou muito aberto (a menos que tenha sido especificamente projetado dessa maneira).</p><h2>largura do fluido - desvantagens</h2><p>infelizmente, os designs de largura de fluido também não são impermeáveis ​​aos gabinetes edge. quando as larguras ficam muito finas ou muito grandes, coisas ruins podem acontecer, especialmente no texto. comprimentos de linha muito curtos ou muito longos são essencialmente ilegíveis. além disso, muitas formas de mídia, como imagens ou objetos flash, são difíceis de dimensionar em projetos de largura de fluido; ie requer javascript para redimensionar as imagens, caso contrário, elas serão pixelizadas).</p><h2>web design responsivo</h2><p>algumas pessoas mostraram exemplos, mas ainda não se referiram a essa técnica pelo nome. ethan marcotte recentemente cunhou o termo para descrever layouts de fluidos que podem mudar completamente com base na resolução da tela do usuário (veja detalhes <a href="http://www.alistapart.com/articles/responsive-web-design/">aqui</a> ). trata-se de um híbrido de largura fixa e largura de fluido - permite definir mínimos e máximos para que os comprimentos de mídia ou linha não fiquem fora de controle e também permite que o design se ajuste às configurações do usuário. obviamente, essa técnica também tem suas próprias vantagens e desvantagens. embora tenha fornecido um layout escolhido especificamente para as configurações de um usuário, esse tipo de site é difícil de desenvolver. nem todos os navegadores suportam as consultas de mídia necessárias para fazer isso. além disso, você está essencialmente desenvolvendo vários layouts, estendendo a quantidade de tempo necessária para criar e manter.</p><p>eu acredito que é impossível colocar um cobertor "sempre use isso" ou "nunca use isso"; eu diria que você deve sempre avaliar suas necessidades antes de tomar uma decisão. na maioria dos casos, sinto que um layout de largura fixa servirá a seus propósitos, mas que um layout fluido ou responsivo pode fornecer uma experiência de usuário muito melhor, apenas com o custo de uma dificuldade extra.</p> Note-se que não se trata de "programação estrita unicode" per se, mas alguma experiência prática.


O que fizemos na minha empresa era criar uma biblioteca invólucro em torno da biblioteca ICU da IBM. A biblioteca wrapper tem uma interface UTF-8 e converte para UTF-16 quando é necessário chamar UTI. No nosso caso, nós não se preocupar muito com sucessos de desempenho. Quando o desempenho foi um problema, nós também fornecido interfaces de UTF-16 (usando o nosso próprio tipo de dados).


Aplicações poderia permanecer em grande parte como-é (usando caracteres), embora em alguns casos, eles precisam estar cientes de certas questões. Por exemplo, em vez de strncpy () usamos um invólucro que evita cortar sequências UTF-8. No nosso caso, isso é suficiente, mas também pode considerar cheques para combinar caracteres. Temos também wrappers para a contagem do número de codepoints, o número de grafemas, etc.


Quando a interface com outros sistemas, às vezes precisamos fazer composição caráter personalizado, assim você pode precisar de alguma flexibilidade lá (dependendo do aplicativo).


Nós não usamos wchar\_t. Usando UTI evita problemas inesperados na portabilidade (mas não outros problemas inesperados, é claro :-). 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... os arquivos permitem gravar os dados de um programa de forma permanente em mídia digital.

vantagens de utilizar arquivos

armazenamento permanente de dados: as informações permanecem disponíveis mesmo que o programa que as gravou tenha sido encerrado, ou seja, podem ser consultadas a qualquer momento.
grande quantidade dados pode ser armazenada: a quantidade de dados que pode ser armazenada depende apenas da capacidade disponível da mídia de armazenamento. normalmente a capacidade da mídia é muito maior do que a capacidade disponível na memória ram.
acesso concorrente: vários programas podem acessar um arquivo de forma concorrente.
a linguagem c trata os arquivos como uma sequência de bytes. esta sequência pode ser manipulada de várias formas e para tanto, existem funções em c para criar, ler e escrever o conteúdo de arquivos independente de quais sejam os dados armazenados.

em c, o arquivo é manipulado através de um ponteiro especial para o arquivo.

a função deste ponteiro é “apontar” a localização de um registro.

sintaxe:
file < *ponteiro >

o tipo file está definido na biblioteca stdio.h.

exemplo de declaração de um ponteiro para arquivo em c:

file *pont\_arq;

lembrando que file deve ser escrito em letras maiúsculas. No mundo das TI, isto é praticamente aceite desde que não se esteja a interromper outra pessoa (que é o objectivo de usar o pato ou o urso de peluche ou o que quer que seja em primeiro lugar). 


Instalei-o em alguns locais de trabalho em que estive e que ainda não o tinha, e tornou-se aceite e normal quase de um dia para o outro. 


Se você ainda está preocupado em parecer um idiota falando com um pato de borracha, imprima uma nota explicativa ("por que estou falando com um pato de borracha?!? Leia isto para descobrir...") ou dê às pessoas links para <http://www.rubberduckdebugging.com/> Você é de Portugal?
Eu gosto do LinguaLeo, Busuu e o Duolingo. (: indicada para iniciantes que ainda estão aprendendo o básico da embocadura, coluna de ar etc. não é o som que deixa a desejar; é a 'mecânica' mesmo.
muito instável, exigindo um ajuste enorme de ponto de apoio no registro agudo.
no registro grave e médio grave é bem satisfatória até.
e com as vantagens que as sintéticas têm sobre as de cana, ou seja, estão sempre prontas, não faz diferença se vc já usou por uma hora ou mais naquele dia etc
o acabamento da ponta parece deixar sempre alguma 'sobra' de matéria.
com uma lixa d´água e cuidado resolve-se facilmente.
mas nunca indicaria para um estudante sequer intermediário. <p>oi felipe, o garbage collector do go está embutido no core da linguagem, isso significa que está otimizado para os recursos da linguagem. tornando o gerenciamento de memória de go muito mais rápido que o das demais linguagens.</p>
<p>memory safe: o go tem uma gestão própria de memória e threads transparente ao programador, fazendo a gestão de forma automática, evitando os famosos problemas da linguagem c de alocação e invasão de memória.</p> concordo em grande parte com você. realmente existem muitas opiniões, reviews de distros e claro, são apenas opiniões pessoais, assim mesmo como existem aqui no diolinux. é algo muito pessoal e só saberá se é bom ou ruim a pessoa que usar! as pessoas já vem com um preconceito enraizado, pois “ouviu …