none
Nova linguagem RRS feed

  • Discussão Geral

  • Esses dias fiquei pensando se já não é hora de uma nova linguagem na plataforma .net. A plataforma Java já tem muitas outras opções que tornam o desenvolvimento menos verboso. Recentemente a Google adotou a linguagem Kotlin como linguagem principal para desenvolvimento Android. Acho que esse pode ser um passo para Kotlin se tornar a linguagem primária da JVM.

    Enquanto isso não vemos nem sinais de uma nova linguagem na plataforma .net, acho que seria interessante pois é fato que C# sofre do mesmo mal de verbosidade da linguagem Java. Até VB é menos verboso, mas é fato que VB não recebe a mesma atenção que C# por parte da MS.

    Opiniões??????

    quarta-feira, 22 de novembro de 2017 02:06

Todas as Respostas

  • Tem sim, a Microsoft recentemente lançou o Q# (Q Sharp) 

    especialmente para desenvolvimento quântico!

    https://www.microsoft.com/en-us/quantum/

    https://cloudblogs.microsoft.com/quantum/2017/12/11/announcing-microsoft-quantum-development-kit/


    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    Rafael Almeida
    Senior Developer C#
    Development Leader at JAMSOFT Informática
    Microsoft Certified Professional
    Criador e Mantenedor do EntityFramework Core for Firebird
    Contribuidor do EntityFramework Core
    Email: ralms@ralms.net
    Blog -  GitHub  -  LinkedIn -  Twitter

    quarta-feira, 13 de dezembro de 2017 13:28
  • VB é menos verboso que C#? Poderia me dar um exemplo quando é que isso ocorre?

    Um exemplo bem curto, compare o IF das duas linguagens:

    if (a == b) {
        // equal c#
    }
    If a = b Then
        ' equal vb.net
    End If

    Quanto à criar uma nova linguagem primeiro precisaria haver a necessidade de resolver um novo problema (como o Rafael disse, um problema como a computaçao quantica exige uma nova linguagem, mesmo porque o processo nao é binario. Logica booleana nao funciona no mundo quantico). Hoje a lista das linguagens .NET é:

    https://en.wikipedia.org/wiki/Category:.NET_programming_languages

    att


    William John Adam Trindade
    Analyste-programmeur


    Sogi Informatique ltée
    If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer". Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".


    quarta-feira, 13 de dezembro de 2017 16:10
    Moderador
  • Wiilian é válido ressaltar que o Kotlin surgiu em 2011 e que seu principal foco não era dominar o mercado Android!

    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    Rafael Almeida
    Senior Developer C#
    Development Leader at JAMSOFT Informática
    Microsoft Certified Professional
    Criador e Mantenedor do EntityFramework Core for Firebird
    Contribuidor do EntityFramework Core
    Email: ralms@ralms.net
    Blog -  GitHub  -  LinkedIn -  Twitter

    quarta-feira, 13 de dezembro de 2017 17:13
  • Se o Kotlin resolve um problema de forma mais rápida que outra linguagem é válido sim, mas há necessidade de um Kotlin.NET ?

    Nao sou contra a criaçao de nenhuma linguagem. O .NET é open source (pode ser portado para qualquer plataforma), mas precisamos de um .NET Android?

    Att


    William John Adam Trindade
    Analyste-programmeur


    Sogi Informatique ltée
    If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer". Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".

    quinta-feira, 14 de dezembro de 2017 13:54
    Moderador
  • Concordo com você @William, é sabido que temos o Xamarin, e que está cada dia mais maduro e perfeito, temos ótimas linguagens hoje de programação, acredito que o que cabe a cada um é o domínio sobre ela.

    Mais como dizia o amado Biil Gates:
    As únicas grandes companhias que conseguirão ter êxito são aquelas que consideram os seus produtos obsoletos antes que os outros o façam.

    Quem sabe se não surge algo?!
    Porém acredito que em .NET temos muitas coisas, inclusive o F# que também está amadurecendo muito!


    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    Rafael Almeida
    Senior Developer C#
    Development Leader at JAMSOFT Informática
    Microsoft Certified Professional
    Criador e Mantenedor do EntityFramework Core for Firebird
    Contribuidor do EntityFramework Core
    Email: ralms@ralms.net
    Blog -  GitHub  -  LinkedIn -  Twitter

    quinta-feira, 14 de dezembro de 2017 14:15
  • VB é menos verboso que C#? Poderia me dar um exemplo quando é que isso ocorre?

    Um exemplo bem curto, compare o IF das duas linguagens:

    if (a == b) {
        // equal c#
    }
    If a = b Then
        ' equal vb.net
    End If

    Quanto à criar uma nova linguagem primeiro precisaria haver a necessidade de resolver um novo problema (como o Rafael disse, um problema como a computaçao quantica exige uma nova linguagem, mesmo porque o processo nao é binario. Logica booleana nao funciona no mundo quantico). Hoje a lista das linguagens .NET é:

    https://en.wikipedia.org/wiki/Category:.NET_programming_languages

    att


    William John Adam Trindade
    Analyste-programmeur


    Sogi Informatique ltée
    If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer". Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".


    Talvez verboso não seja o termo certo, talvez o termo certo seria legível. VB em muitos casos substitui símbolos }{&&||! por palavra end, endalso, or, orelse, not, não usa ;, não usa () nas estruturas de controle IF, while, for, etc. Linguagens como Python e Ruby também fazem isso pois elas tem como filosofia a facilidade da leitura. No caso do IF poderia excluir o end if deixando tudo em uma só linha. Vejamos o código abaixo:

    VB

    Function Sum(ByVal ParamArray nums As Integer()) As Integer
      Sum = 0 
      For Each i As Integer In nums
        Sum += i
      Next
    End Function

    C#

    int Sum(params int[] nums) {
      int sum = 0;
      foreach (int i in nums)
        sum += i;
      return sum;
    }

    À mim VB parece ser mais legível.

    sexta-feira, 15 de dezembro de 2017 16:24
  • >À mim VB parece ser mais legível.

    Legibilidade é um algo subjetivo.. Quanto mais verboso (verbo = palavra em latim) mais instruçoes de codigo sao necessarias para escrever um codigo. Legibilidade é a propriedade que permite a ler alguma coisa. Se voce foi alfabetizado em chines (ou japones), ler os ideogramas é facil (se nao, é ilegivel). 

    VB pode ser mais natural (mais perto da linguagem humana) mas nao mais legivel. (uma pessoa que é habituada em ler codigo C# pode achar VB ilegivel) 

    LOGO é uma linguagem para ensinar crianças a aprender a logica de programaçao é bem verbosa e se aproxima da linguagem natural, exemplo:

    REPITA 4  [ FRENTE 350 DIREITA 90]

    Verbosidade e legibilidade nao sao diretamente relacionadas. Mutias vezes linguagens verbosas sao ilegives, exemplo, veja um relatorio escrito em ABAP (é a linguagem mais verbosa que eu tive o desprazer de trabalhar)

    REPORT ZSUBSCREEN.
    
    TABLES: USR02,       "Logon data
            SSCRFIELDS.  "FIELDS ON SELECTION SCREENS
    *---------------------------------------------------------------
    * SUBSCREEN 1
    *---------------------------------------------------------------
    SELECTION-SCREEN BEGIN OF SCREEN 100 AS SUBSCREEN.
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-010.
       SELECT-OPTIONS: USERNAME FOR USR02-BNAME.
    SELECTION-SCREEN END OF BLOCK B1.
    SELECTION-SCREEN END OF SCREEN 100.
    
    *---------------------------------------------------------------
    * SUBSCREEN 2
    *---------------------------------------------------------------
    SELECTION-SCREEN BEGIN OF SCREEN 200 AS SUBSCREEN.
    SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-020.
       SELECT-OPTIONS: LASTLOGI FOR USR02-TRDAT.
    SELECTION-SCREEN END OF BLOCK B2.
    SELECTION-SCREEN END OF SCREEN 200.
    
    *---------------------------------------------------------------
    * SUBSCREEN 3
    *---------------------------------------------------------------
    SELECTION-SCREEN BEGIN OF SCREEN 300 AS SUBSCREEN.
    SELECTION-SCREEN BEGIN OF BLOCK B3 WITH FRAME TITLE TEXT-030.
       SELECT-OPTIONS: CLASSTYP FOR USR02-CLASS.
    SELECTION-SCREEN END OF BLOCK B3.
    SELECTION-SCREEN END OF SCREEN 300.
    
    * STANDARD SELECTION SCREEN FOR SCROLLING LEFT AND RIGHT
    SELECTION-SCREEN: FUNCTION KEY 1,
                      FUNCTION KEY 2.
    
    SELECTION-SCREEN: BEGIN OF TABBED BLOCK SUB FOR 15 LINES,
                      END OF BLOCK SUB.
    
    START-OF-SELECTION.
        SELECT * FROM USR02 WHERE BNAME IN USERNAME
                              AND ERDAT IN LASTLOGI
                              AND CLASS IN CLASSTYP.
           WRITE: / 'User ', USR02-BNAME,
                    'Last Login Date ', USR02-TRDAT,
                    'Last Login Time ', USR02-LTIME,
                    'CLASS ', USR02-CLASS.
        ENDSELECT.
    END-OF-SELECTION.
    
    INITIALIZATION.
    * SCREEN ICON LEFT AND RIGHT
      SSCRFIELDS-FUNCTXT_01 = '@0D@'.
      SSCRFIELDS-FUNCTXT_02 = '@0E@'.
      SUB-PROG = SY-REPID.
      SUB-DYNNR = 100.
    
    AT SELECTION-SCREEN.
      CASE SY-DYNNR.
    
        WHEN 100.
          IF SSCRFIELDS-UCOMM = 'FC01'.
            SUB-DYNNR = 300.
          ELSEIF SSCRFIELDS-UCOMM = 'FC02'.
            SUB-DYNNR = 200.
          ENDIF.
    
        WHEN 200.
          IF SSCRFIELDS-UCOMM = 'FC01'.
            SUB-DYNNR = 100.
          ELSEIF SSCRFIELDS-UCOMM = 'FC02'.
            SUB-DYNNR = 300.
          ENDIF.
    
        WHEN 300.
          IF SSCRFIELDS-UCOMM = 'FC01'.
            SUB-DYNNR = 200.
          ELSEIF SSCRFIELDS-UCOMM = 'FC02'.
            SUB-DYNNR = 100.
          ENDIF.
      ENDCASE.

    att


    William John Adam Trindade
    Analyste-programmeur


    Sogi Informatique ltée
    If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer". Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".



    segunda-feira, 18 de dezembro de 2017 15:57
    Moderador
  • Talvez verboso não seja o termo certo, talvez o termo certo seria legível. VB em muitos casos substitui símbolos }{&&||! por palavra end, endalso, or, orelse, not, não usa ;, não usa () nas estruturas de controle IF, while, for, etc. Linguagens como Python e Ruby também fazem isso pois elas tem como filosofia a facilidade da leitura. No caso do IF poderia excluir o end if deixando tudo em uma só linha. Vejamos o código abaixo:

    VB

    Function Sum(ByVal ParamArray nums As Integer()) As Integer
      Sum = 0 
      For Each i As Integer In nums
        Sum += i
      Next
    End Function

    C#

    int Sum(params int[] nums) {
      int sum = 0;
      foreach (int i in nums)
        sum += i;
      return sum;
    }

    À mim VB parece ser mais legível.

    Descupe insistir, mas como é uma discussao, eu acho válido.

    Olhando os dois códigos eu sinceramente acho mais legivel o codigo em C#, veja porque eu digo isso:

    o código c# diz examente é um método que tem um retorno do tipo int chamada Sum e que tem como entrada um array inteiro variavel (a palavra params me informa isso) chamado nums. É declarado uma variavel de escopo local chamada sum onde para cada elemento de nums eu faço o somatorio e armazeno nesta variaviel. Após percorrer todos os elementos eu retorno seu conteudo (return sum).

    Agora em vb:

    Fica claro que é uma funçao, chamada Sum que tem como entrada (passado por valor) um array variavel Nums do tipo inteiro e que o retorno é inteiro. Neste caso o VB cria uma variavel interna com o mesmo nome da funçao (isso é ruim porque voce pode facilmente criar uma referencia circular) que é zerada no inicio. Para cada elemento de nums fazemos o somatorio e o resulatdo é armazenado na variavel Sum. Nao há indicaçao de retorno porque vb sempre retorna o conteudo da varivel interna que tem o nome da funçao (Para isso o programador tem que saber dessa particularidade) 

    Se você da o mesmo código para alguém que nao conhece nenhuma das duas linguagens, h­á uma chance que o código C# seja melhor compreendido (portanto legivel) que o código VB.

    Att


    William John Adam Trindade
    Analyste-programmeur


    Sogi Informatique ltée
    If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer". Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".



    segunda-feira, 18 de dezembro de 2017 16:25
    Moderador
  • E para finalizar, um exemplo de legibilidade. Voce consgue ler isso?

    Para qualquer um habituado com a linguagem matematica as equaçoes acima dizem muitas (e quando eu falo muitas é muitas mesmo) coisas.

    Um exemplo de pouca verbosidade, mas com alta legibilidade (para quem sabe ler).


    William John Adam Trindade
    Analyste-programmeur


    Sogi Informatique ltée
    If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer". Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".


    segunda-feira, 18 de dezembro de 2017 16:38
    Moderador
  • Caro Matheus.

    Eu já programei em diversas linguagens e antes de começar a programar em c# pensava que vb era melhor porque você conseguiria ler e entender melhor as linhas de comando do que o c#.

    Hoje, com alguns anos desenvolvendo, vejo que é um equívoco pensar assim.

    Baseado nesse conceito, coloco meus pontos.

    A microsoft desenvolve muita coisa pensando em C# portanto novas tecnologias e acréscimos à linguagem tem sido feitos a cada nova versão do framework.

    Criar uma nova linguagem, ao meu ver, não é se atualizar mas sim ter mais conteúdo pra estudar e aprender (algo que também pode se ter com a linguagem já consolidada).

    a família .net já tem linguagens demais e, embora o VB seja mais antiga, o c# tem maior mercado e é a linguagem concorrente do JAVA.

    Os acréscimos à linguagem foram significativos desde a sua primeira versão e, em contrapartida, no seu parente VB.net.

    Ter um código mais enxuto significa ter mais tempo para outros desenvolvimentos.

    No caso do JAVA, existe um conceito de funcionalidade na própria linguagem que é a portabilidade ié, você programa em JAVA e funciona em diversos SO.

    A Microsoft está fazendo um grande esforço nesse sentido também e tenho visto progressos nesse sentido. 

    Não vejo porque 'inventar' uma nova linguagem sendo que c# está indo muito bem. 

    Se for por legibilidade, c# não deve em nada das demais, e olha que a família é grande...

    sábado, 23 de dezembro de 2017 15:14
  • Boa tarde, Fernando.

    Aprendi VB.Net sem nenhum curso, apenas consultando a internet.

    É realmente muito fácil, simples e legível (doce para criança).

    Mas a Microsoft e o mercado parecem privilegiar o C# e hoje estou praticando. Após acostumar-me com as estruturas, percebi (concordando com você) que é tão legível quanto o VB.Net.


    MARIANO1776


    • Editado Mariano1776 sábado, 23 de dezembro de 2017 18:40 acréscimo d einformação
    sábado, 23 de dezembro de 2017 18:36
  • Boa tarde Mariano.

    É exatamente o que eu quis dizer. A primeira tecnologia da microsoft que tive contato foi VB na época do VB5 e depois em .net.

    Não é que o mercado parece privilegiar o C#, a própria Microsoft tem o C# como seu carro chefe e linguagem padrão e as demais baseando-se nela.

    Houve um tempo que alguns até falavam que VB era linguagem de iniciante hahahahahaha.

    Como você também comecei sem curso e o site que mais me ajudou foi o macoratti.

    é uma questão de acostumar-se e olha que na época de VB já tinha o conhecimento de estruturas de programação.

    Não vejo como necessária a criação de uma nova linguagem mas sim ter mais materiais para que os programadores possam subir de nível sem gastar tanta grana.

    abs

    sábado, 23 de dezembro de 2017 18:43