O Google é um idioma seguro para texto?

14

esta página link escreve:

although Go has static types the language attempts to make types feel lighter weight than in typical OO languages

Então, a minha pergunta é exatamente que é digitado com segurança com genéricos (como C #) ou frouxamente digitado (como javascript) ou opcional (como opção estrita no Vb.Net)

    
por Pacerier 19.05.2011 / 09:49
fonte

3 respostas

26

A segurança de tipo não é um tipo de seguro em preto-e-branco ou não. É mais do espectro e algumas línguas podem ser mais do tipo seguro do que outras (e vice-versa). No entanto, acho que o que você está pensando com c # versus Javascript é provavelmente a tipagem estática (onde a verificação de tipos acontece em tempo de compilação) versus tipagem dinâmica (onde a verificação de tipo acontece em tempo de execução) - certamente, isso é sobre o que o FAQ do Go está falando.

O Google Go é datilografado estaticamente, mas vários recursos fazem com que ele "apareça" (digamos assim) de forma dinâmica. Por exemplo, você não precisa marcar explicitamente sua classe como implementando nenhuma interface. Se as assinaturas do método da sua classe coincidirem com as da interface, a sua classe implementará automaticamente essa interface (um tipo de digitação de pato). Isso é útil para estender classes e classes internas em bibliotecas de terceiros, porque você pode apenas compor sua interface para corresponder aos métodos da classe de terceiros e implementá-la automaticamente.

Segurança de tipo é na verdade um "eixo" diferente do sistema de tipos. Por exemplo, C é uma linguagem de tipo estatístico que não é segura para texto - os ponteiros permitem que você faça praticamente qualquer coisa que desejar, até mesmo coisas que irão travar seu programa. O Javascript é digitado dinamicamente, mas também é seguro para o tipo: você não pode executar operações que travarão seu programa. O C # é na maioria das vezes seguro para o tipo, mas você pode marcar explicitamente as áreas do código que são unsafe e fazer as coisas que não são mais do tipo seguro.

O Google Go também é seguro para texto, no sentido de que você não pode mexer com os tipos e travar o programa (sem acesso direto aos ponteiros).

    
por 21.05.2011 / 01:17
fonte
4

É digitado com segurança que um tipo nunca será mal interpretado, mas um tipo incorreto pode causar pânico no programa.

    
por 19.05.2011 / 11:17
fonte
0

O tipo de mapa de Go é não seguro para segmentos, é digitado estaticamente. Ele faz não ter herança de tipos, programação genérica, asserções, sobrecarga de métodos ou aritmética de ponteiros e por um bom motivo.

segurança de tipo e segurança de memória são objetivos de longo prazo, aqui na mentira é um problema.

A segurança de tipo apresenta uma sobrecarga, em kilobytes e megabytes, o que é aceitável. O Go é projetado com MapReduce e "Big Data", exobytes petabytes de dados, que apresentam problemas de desempenho com segurança de tipo, verificação de tipo (boxe / unboxing) cria overheads e desvia ciclos de processamento.

A segurança do tipo pode ser restritiva na sub-digitação e polimorfismo e na tipagem do pato (objeto de objeto a objeto), isso cria perigos e também um espaço onde linguagens como o Go são de grande benefício. C ++ e Java não estão sendo substituídos pelo Go, é uma nova linguagem para ajudar na programação distribuída e no sistema maciçamente paralelo.

A grande declaração de Bruce Eckel - "O Go faz muito mais sentido para a classe de problemas que originalmente o C ++ pretendia resolver", é discutível. C ++ é uma linguagem muito eficiente e a implementação de Boost do MapReduce é muito eficiente.

As primitivas de concorrência são o futuro. Tipo de segurança sempre foi um tema muito controverso e talvez seja a primeira língua a abordar essa questão em 20 anos, ou desde Algol.

    
por 10.05.2012 / 07:31
fonte