Qual a linguagem de programação que irá dominar o futuro?

Discussão em 'Discussões' iniciado por Animadoria, 29 Junho 2018.

Status do Tópico:
Não esta aberto para novas mensagens.
  1. FRNathan13
    Offline

    FRNathan13 Membro Ativo

    Afiliado:
    7 Outubro 2015
    Mensagens:
    80
    Sexo:
    Masculino
    Avaliações:
    +48 / -0
    Apelido no Minecraft:
    nathan1302

    Ok, mas você está utilizando um operador que já existe entre Char e String. Quando digo que java não tem sobrecarga de operadores, me refiro em relação em classes pré definidas pelo usuário. Exemplo em C/C++:

    Código (C#):
    struct pos {
        int x;
        int y;

        inline pos operator=(pos a) {
            x=a.x;
            y=a.y;
            return a;
        }

        inline pos operator+(pos a) {
            return {a.x+x,a.y+y};
        }

        inline bool operator==(pos a) {
           if (a.x==x && a.y== y)
              return true;
           else
              return false;
        }
    };
     
    Operadores sobrecarregados nessa estrutura: =, +, ==
    Código (C#):
    pos p1;
    p1.x = 1;
    p1.y = 2;

    pos p2;
    p2.x = 2;
    p2.y = 1;

    pos p3 = p1 + p2;

    cout << p3.x << ", " << p3.y << endl; // vai escrever 3, 3, afinal quando chamei p1 + p2, meu operador + soma o X e o Y da p1 e a p2 e retorna uma nova variavel p3 do mesmo tipo.
     
    E realmente Kotlin, mesmo sendo uma linguagem de terceiros, visualmente falando é mais agradável utilizar essa linguagem que o java puro.
    --- Post duplo mesclado, 30 Junho 2018, Data da postagem original 30 Junho 2018 ---
    C# por exemplo, você tem acesso a quase tudo da interface nativa do sistema, inclusive pelo .NETCore q é multi plataforma (windows, mac, linux)

    Sobrecarga em C#:

    Código (Forge Crash):

    namespace Test {
    public class FString {
      public static implict operator FString(String str){
        return new FString(str);
      }

      private String _str;
      public FString(String str){
        _str = str;
      }
    }
    }

    FString fstr = "aaaaaa"; // consigo fazer sobrecarda do operador em um tipo.

     
    Tipo FString: Test.FString
    Tipo String: System.String

    se eu tentar executar typeof(FString).IsEquivalentTo(String); // false, são tipos diferentes.

    A diferença acima é implict e explict, implict é a conversão direta para o tipo desejado, explict, é indiretamente,

    se ali estivesse explict eu teria que fazer assim:

    Código (Forge Crash):

    FString fstr = (FString)"aaaaaa";
     
     
    Última edição: 30 Junho 2018
  2. joserobjr
    Offline

    joserobjr Administrador Equipe GameMods Administrador Programador YouTuber Veterano

    Afiliado:
    29 Junho 2009
    Mensagens:
    6,744
    Sexo:
    Masculino
    Avaliações:
    +4,829 / -0
    Apelido no Minecraft:
    joserobjr
    Pelo que entendi, esse seria o equivalente em Kotlin? Não sei C# :p

    Versão direta:
    Código (Kotlin):
    data class Pos(var x: Int, var y:Int){
        // inline pos operator=(pos a), não foi usado neste code sample, usei o construtor acima.
        constructor(a: Pos) : this(x=a.x, y=a.y)

        //inline pos operator+(pos a)
        operator fun plus(a: Pos) = Pos(a.x+x, a.y+y)

        //inline bool operator==(pos a) já está implicito no construtor da classe
        // mas poderia ser feito dando override no equals
        // usaria o comparador a == b mesmo, nada de a.equals(b) embora também poderia ser usado assim.
    }

    fun direto() {
        val p1 = Pos(1, 2)
        val p2 = Pos(2, 1)
        val p3 = p1 + p2

        println("${p3.x}, ${p3.y}")
        // vai escrever 3, 3, afinal quando chamei p1 + p2, meu operador + soma o X e o Y da p1 e a p2
        // e retorna uma nova variavel p3 do mesmo tipo.
    }
    upload_2018-6-30_15-15-9.png

    Versão parcial:
    Código (Kotlin):
    data class PosParcial(var x: Int = 0, var y: Int = 0) {
        // inline pos operator=(pos a)
        constructor(a: PosParcial) : this(x=a.x, y=a.y)

        //inline pos operator+(pos a)
        operator fun plus(a: PosParcial) = PosParcial(a.x+x, a.y+y)
    }

    fun parcial() {
        val p1 = PosParcial()
        p1.x = 1
        p1.y = 2

        val p2 = PosParcial()
        p2.x = 2
        p2.y = 1

        val p3 = p1 + p2
        println("${p3.x}, ${p3.y}")
    }
     
    • Amigável Amigável x 1
  3. FRNathan13
    Offline

    FRNathan13 Membro Ativo

    Afiliado:
    7 Outubro 2015
    Mensagens:
    80
    Sexo:
    Masculino
    Avaliações:
    +48 / -0
    Apelido no Minecraft:
    nathan1302
    :p Agora entendi o código do kotlin, sim isso mesmo, kotlin parece ser uma linguagem muito boa.
    --- Post duplo mesclado, 30 Junho 2018 ---
    Bukkit/Spigot/Forge aceitam diretamente o kotlin? ou precisam de alguma biblioteca adicional pra executar ele? :thinking::hushed:
    --- Post duplo mesclado, 30 Junho 2018, Data da postagem original 30 Junho 2018 ---
    Eu na verdade tinha até vontade de reescrever o bukkit, eu tenho muita dificuldade pra criar um plugin, sei lá antes de abrir o editor, tenho inúmeras idéias, quando crio um projeto, começo a pensar na api do minecraft em si acabo perdendo todas as idéias, pois não sei de onde vou começar. :joy::joy::joy:
    --- Post duplo mesclado, 30 Junho 2018 ---
    Não que eu não saiba como criar o plugin em si, problema é como vou adaptar a API do spigot/bukkit/sponge ao meu projeto.
    --- Post duplo mesclado, 30 Junho 2018 ---
    Forge então, não faço ideia como esses desenvolvedores criam esses mods sensacionais, visto que a documentação do forge é extremamente precária Forge Documentation
    --- Post duplo mesclado, 30 Junho 2018 ---
    Tirando algumas coisas, Kotlin e Typescript são bem parecidos, interessante. :scream:
     
  4. joserobjr
    Offline

    joserobjr Administrador Equipe GameMods Administrador Programador YouTuber Veterano

    Afiliado:
    29 Junho 2009
    Mensagens:
    6,744
    Sexo:
    Masculino
    Avaliações:
    +4,829 / -0
    Apelido no Minecraft:
    joserobjr
    Qualquer coisa aceita, o Kotlin é 100% cooperativo com Java, basta embarcar o runtime do kotlin no seu Jar, se usar gradle é só colocar umas linhas a mais no build.gradle para fazer isso automaticamente. Metade da plataforma do GameMods é em Kotlin, comecei com Java e descobri Kotlin depois, não quis perder tempo reescrevendo tudo então usei Kotlin só em novos códigos.

    Eu estou fazendo isso, mas de uma forma que coloque muitos novos recursos no jogo para os plugins usarem. Por exemplo: API de menu de inventário simplificado, sistema de internacionalização em tudo (até em nomes de entidades), sistema de subdivisão de uma instância em várias distintas, etc.
    --- Post duplo mesclado, 30 Junho 2018 ---
    O ruim do forge é que você se especializa em uma versão do jogo, ai sai outra e muda tudo huahau.

    Um dia vou aprender TypeScript, todos falam bem dele. Quando eu pegar um projeto com o novo angular vou ver como é :)
     
    • Concordo Concordo x 1
    • Informativo Informativo x 1
  5. FRNathan13
    Offline

    FRNathan13 Membro Ativo

    Afiliado:
    7 Outubro 2015
    Mensagens:
    80
    Sexo:
    Masculino
    Avaliações:
    +48 / -0
    Apelido no Minecraft:
    nathan1302
    Vou começar a pesquisar mais sobre o Kotlin :)
    --- Post duplo mesclado, 30 Junho 2018, Data da postagem original 30 Junho 2018 ---
    José, se tu sabe kotlin vai dominar bem fácil o Typescript, tirando algumas coisas eles são bem parecidos.

    Código (Javascript):

    Array<T> (exemplo: var numeros: Array<Number>;)
    Map<TKey, TValue> (exemplo: var mapa: Map<String, Number>;) e outros
     
     
    • Amigável Amigável x 1
    Editado por um moderador: 30 Junho 2018
  6. armelin1
    Offline

    armelin1 Moderador Sênior do Fórum Equipe GameMods Moderador do Fórum Veterano VIP Sabotador.com VIP Sabotador.com VIP Industrial

    Afiliado:
    5 Maio 2014
    Mensagens:
    1,872
    Sexo:
    Masculino
    Avaliações:
    +641 / -0
    Apelido no Minecraft:
    armelin1
    Chinês.
     
  7. FRNathan13
    Offline

    FRNathan13 Membro Ativo

    Afiliado:
    7 Outubro 2015
    Mensagens:
    80
    Sexo:
    Masculino
    Avaliações:
    +48 / -0
    Apelido no Minecraft:
    nathan1302
    kkkkkkkkkkkk
     
  8. Magiczinho
    Offline

    Magiczinho Novato

    Afiliado:
    25 Novembro 2017
    Mensagens:
    2
    Sexo:
    Masculino
    Avaliações:
    +1 / -0
    Apelido no Minecraft:
    Magiczinho
    Python tem se popularizado bastante, de acordo com o Stackoverflow, mas...
    Também acredito que o futuro vai ser voltado pro JavaScript. Até por conta do Node.js e do React Native, que fazem aplicativos nativos para android / ios e web.
     
  9. FRNathan13
    Offline

    FRNathan13 Membro Ativo

    Afiliado:
    7 Outubro 2015
    Mensagens:
    80
    Sexo:
    Masculino
    Avaliações:
    +48 / -0
    Apelido no Minecraft:
    nathan1302
    Python tem sintaxe estranha, 1 tabulação errada já bagunça o código wtf.
     
  10. YanT
    Offline

    YanT Veterano Veterano

    Afiliado:
    15 Novembro 2014
    Mensagens:
    1,304
    Sexo:
    Masculino
    Avaliações:
    +1,392 / -13
    Apelido no Minecraft:
    YanT
    Obviamente vai ser gradle
    JavaScript e Kotlin por motivos que todo mundo já disse
     
  11. FRNathan13
    Offline

    FRNathan13 Membro Ativo

    Afiliado:
    7 Outubro 2015
    Mensagens:
    80
    Sexo:
    Masculino
    Avaliações:
    +48 / -0
    Apelido no Minecraft:
    nathan1302
    hehehehe kotlin depois q o josé me apresentou, nossa é muito bom jesus. Kotlin tem uma liberdade absurda, amei kkkk.
     
  12. Aoki Blues
    Offline

    Aoki Blues Moderador Sênior do Fórum Equipe GameMods Moderador do Fórum Veterano VIP Sabotador.com

    Afiliado:
    24 Junho 2014
    Mensagens:
    963
    Sexo:
    Feminino
    Avaliações:
    +1,497 / -8
    Apelido no Minecraft:
    Exorcista
    Portugol
     
    • Gostei Gostei x 1
  13. armelin1
    Offline

    armelin1 Moderador Sênior do Fórum Equipe GameMods Moderador do Fórum Veterano VIP Sabotador.com VIP Sabotador.com VIP Industrial

    Afiliado:
    5 Maio 2014
    Mensagens:
    1,872
    Sexo:
    Masculino
    Avaliações:
    +641 / -0
    Apelido no Minecraft:
    armelin1
    Visualg
     
  14. TheMFjulio
    Offline

    TheMFjulio Veterano Veterano VIP Industrial

    Afiliado:
    3 Março 2014
    Mensagens:
    563
    Avaliações:
    +836 / -0
    Apelido no Minecraft:
    Mateusaum
    Scratch
     
  15. Animadoria
    Online

    Animadoria Membro Conhecido VIP Sabotador.com

    Afiliado:
    17 Agosto 2014
    Mensagens:
    741
    Avaliações:
    +584 / -1
    Apelido no Minecraft:
    Animadoria
    [​IMG]
     
  16. Gabriel8579
    Offline

    Gabriel8579 Veterano Veterano VIP Sabotador.com VIP Sabotador.com

    Afiliado:
    18 Janeiro 2016
    Mensagens:
    430
    Sexo:
    Masculino
    Avaliações:
    +248 / -1
    Apelido no Minecraft:
    Gabriel8579
    A linguagem Harbour... falo mesmo
     
  17. fabri
    Offline

    fabri Membro Conhecido

    Afiliado:
    14 Janeiro 2013
    Mensagens:
    697
    Avaliações:
    +848 / -0
    Apelido no Minecraft:
    Fabricio_11
    Minecraft Command Block
     
    • Vencedor Vencedor x 4
  18. armelin1
    Offline

    armelin1 Moderador Sênior do Fórum Equipe GameMods Moderador do Fórum Veterano VIP Sabotador.com VIP Sabotador.com VIP Industrial

    Afiliado:
    5 Maio 2014
    Mensagens:
    1,872
    Sexo:
    Masculino
    Avaliações:
    +641 / -0
    Apelido no Minecraft:
    armelin1
    Brainfuck ou whitespace, ainda não entendo nenhuma dessas duas.
     
  19. DevSrSouza
    Offline

    DevSrSouza Novato

    Afiliado:
    6 Julho 2018
    Mensagens:
    2
    Sexo:
    Masculino
    Avaliações:
    +3 / -0
    Apelido no Minecraft:
    SrSouza
    Okay, conheço o forum a muito tempo, nunca cheguei a frequentar mas então entro aqui e vejo um topico desses e eu tenho que divulgar meu entusiasmo.

    Kotlin, motivo a baixo...

    Nosso querido @joserobjr falou bastante sobre o Kotlin, mas não o suficiente na minha opnião. Ele citou Kotlin/Native mas ele é uma coisa bem peculiar e interessante de entender.

    Vamos começar pelo basico do basico, onde Kotlin começa, onde tem suas vantagens...
    Provavelmente todos que conhecem Kotlin sabe que ele compila pra JVM ou talvez só sabem que ele é pra "criar app de android", a google anunciando como linguagem oficial é algo bom, mas mts pessoas acham que Kotlin é a linguagem do Android, não é não amigo .-.

    Kotlin compila pra Bytecode, bytecode é basicamente um ASM só que não é um ASM kkkkkk, é uma linguagem minimalista para que a JVM consiga compreender com eficiencia pra compilar pra machine code(famoso JITzao), Java compila pra bytecode, mas nem de perto é o uncio, bytecode, jvm e java foram criados juntos, mas a existencia do bytecode faz não ser necessario você precisar programar em Java, hoje em dia nem tem a necessidade de algo como Bytecode se você parar pra pensar, Typescript simplesmente compila pra Javascript, Coffescript o mesmo, Dart e até mesmo o Kotlin compila pra Javascript(vamos chegar nesse safado jaja)
    Conclusão, Java e Bytecode são coisas diferentes, hoje em dia Java simplesmente é a linguagem OFICIAL que compila pra bytecode, mas existe VARIASSSSSS, vou vamos pra listinha feliz de linguagens :3
    Sabendo disso vamos falar sobre a sintaxe do kotlin, pois ja sabemos que ele roda na MELHOR VM do mundo(chora microsoft, essa VM ai nem copiando é mais eficiente #VivaHotspot), bom... mais rapido é questão de né... KKK jvm tem seus problemas, mas em servidor, sem duvida é a mais eficiente, os Hotspot são CABULOSO.
    Foco Souza, sintaxe... Okay... Em minha esperiencia, sempre busquei uma linguagem boa pra programar, mas sempre tinha problemas, groovy por exemplo, infelizmente é dinamico(não acho isso coisa legal não... #ProcessadorAmaTipagem) e ele deixa você fazer "coisas de mais" como por exemplo substituir " por ', remover de todos os metodos (), não encontro um meio termo, ou a linguagem é totalmente insana ou é boilerplate como o Java, não dá não.... Scala deixa você fazer de tudo, é outra linguagem que acho maneiro, mas se você me da o poder do Scala, eu nao vou programar, eu irei ficar fazendo coisas pra facilitar minha vida, só que né... eu nunca vou parar (meu projeto é um exemplo disso), o Kotlin foi inspirado em Scala, isso ja é bom, os operadores que o Kotlin tem, hmm que coisa linda...
    A sintaxe é limpa e completa, uma das mais completas na minha humilde opnião sem ser muita coisa, null safety(baby NullPointerException), possibilidade de criar DSL(uso muito no meu projeto), sobrecarga de operadores e NOVOS operadores, sem get e nem set, isso ele ja gera pra você, é lindo :hearth: (nunca mais ira construir uma classe e encher de set/get ou usar Lombok pra isso). Com essa features lindas só na hora de programar ja faz ele ser talvez a linguagem melhor pra se programar e mais interessante.

    Listinha de libraries super interessantes que abusam das coisas lindas do Kotlin:
    Potencial do Kotlin em geral, sabemos que o mundo gira em torno de 2 coisas, mobile & web, Kotlin está no Android com força total mass vamos citar um pouco de Kotlin/Native, ele é muito peculiar, esse ano mesmo, saiu uma update inserindo nada mais nada menos que Interop com Objective-C, exatamente meus amigos, o SDK do IOS é feio em Objective-C e Swift tem Interop com ele, basicamente você pode criar um app IOS com Kotlin usando SDK oficial da Apple :grin:. A loucura não acabou ainda não... Na versão 1.2 do Kotlin saiu o sistema de multiplataforma, pois o Kotlin/JS está mais completo até agr(Kotlin Native da trabalho pow), isso já uma coisa maneiro, voce pode compartilhar codigo entre o frontend e o backend, nunca mais você tera que construir o model no front e no back, e pra ajudar a sua vida Kotlinx.serialization simplesmente converter um model que em JS é um JSON para JSON na JVM, olha que coisa linda :333(mas a melhor parte ainda é compartilhar codigo), mas você vem e me diz: NodeJS também faz isso, mas NodeJS é Javascript, mas NodeJS não é, JVM(se liga na resposta do Dmitrao quando perguntaram se dava pra compilar pra JS pra usar no NodeJS), mas continuando falando em multiplataforma, não somente uma IDEIA e sim tem um plugin pra gradle pra fazer isso de um jeito bem bacana e também tem os modificadores de classe actual e expect que faz toda a magica acontecer, basicamente ele obriga você no projeto de implementação(por exemplo no android), o codigo compartilhado(do commom) ser "escrito" implementado, não é uma interface que você pode implementar ou não e que precisa dar um implements em outra classe, ele simples obriga você a implementar AQUELA CLASSE(hard de explicar isso, se quiser saber mais sobre isso, veja aqui)
    Bom não citei o sistema de multiplataforma atoa, agora está na hora de falar de mobile, pois falamos um pouco mas cade a visão? Sabemos que hoje em dia os dev anda muito preguiçoso e não querem fazer apps nativos com Kotlin/Android e Swift/IOS, mas esses projetos multiplataforma como, React Native(Native é o socao na cara do Facebook), Xamarin, Dart, não são exatamente natives(Java é, importante falarmos isso pois tem gente que acha que Java fica em bytecode no Android, mas isso na é verdade des da versao 4.4 eu acho, não tenho certeza, atualmente é compilado pra Machine Code :hearth:), Native é usar as coisas oficiais e não rodar algo em uma VM feita com a ajuda das ferramentas do LLVM(como o Dart), nos queremos Native mesmo, SDK oficial do OS, e o SDK do IOS é o do Objective-C, que ja vimos que Kotlin consegue compilar e usar, e ja sabemos muito bem que Kotlin compila pra Android também e tem uma library nova BEM BONITA da google, agora pra completar o pensamento, voltamos a lembrar do Kotlin Multiplataforma.
    Conclusão, não vai levar muito tempo pra ter um framework ou library multiplataforma pra Kotlin, trabalhando no Android e IOS, é só questão de tempo.... Mas você me pergunta, mas qual a diferença de usar Dart ou React Native no lugar, primeiramente, bindings deles são horriveis de fazer(nem é tanto assim KKKK), alem de no React Native voce ter que fazer em Swift & Java/Kotlin, voce tera também que fazer a parte do JavaScript, para uma framework dessa forma, voce poderia fazer os proprios bindings em puro Kotlin, não precisa nem trocar de linguagem mesmo se for usar APIs internas do IOS, isso é MUITO FODAAAAAA, você tem que concordar comigo...

    Ultimo ponto Kotlin Scripting(acho que isso também não teria amigo? rs), isso é algo que me deixou muito interessado pois pra quem realmente entende de Unity por exemplo sabe que Javascript e C# não são linguagens nativas e sim de script(no caso do Unity), acho muito limitado você só poder usar essas duas linguagens ruins, mas um dos objetivos do Kotlin Scripting é trazer ele pra Game Script :hearth:, mas não é só isso, ela é bem simples de usar(as scripts) e tem coisas interessantes como IMPORTs implícitos(eles não aparecem na sua script), esse foi um dos motivos que me deu uma luz para um projeto que ainda tenho que continuar, o Bukkript, basicamente você pode criar scripts usando Kotlin + KotlinBukkitAPI, um arquivo dentro da pasta do Bukkript e pronto, muito mais eficiente que Skript pois é compilado pra bytecode....
    Outra coisa que penso muito é em substituir o PHP, quem é programador de verdade sabe que PHP é uma linguagem ruim da poxa, massss vamos falar sobre isso, PHP é uma linguagem de route script(Um arquivo(script) é a rota do site(seusite.com/pasta/arquivo.php) ), Kotlin também poderia fazer isso de uma forma BEM BONITA e elegante que a sintaxe dele tem. usando o Kotlinx.html(citado a cima) faria um bom route script como o PHP.

    Bom, essa é minha visão sobre Kotlin, foi o que eu consegui buscar na minha mente durante 1:30 escrevendo(des das 17:08), se você leu até aqui, você é um guerreiro brow, amo você por isso, por continuar buscando conhecimento, um abraço do mano Souza

    BEIJAO SEU LINDO :hearth:
     
    • Vencedor Vencedor x 2
    • Discordo Discordo x 1
    • Amigável Amigável x 1
  20. Animadoria
    Online

    Animadoria Membro Conhecido VIP Sabotador.com

    Afiliado:
    17 Agosto 2014
    Mensagens:
    741
    Avaliações:
    +584 / -1
    Apelido no Minecraft:
    Animadoria
    Eu tive que responder isto que está me irritando (no bom sentido) :
    1. Unity não recomenda mais o uso de JS
    2. C# não é ruim
    3. Unity tem um novo sistema de ECS (Job System & ECS - Unity)

    C# é uma linguagem de programação ótima, e Unity apenas permite C# (atualmente) como a Unreal Engine só aceita C++ (out of the box, claro).
    Unity já permitiu C#, UnityScript (JavaScript) e Boo, mas retirou o suporte devido ao pouco uso.
    Com C# você pode fazer jogos (Unity), programas para Windows (Windows Forms, WPF), Mac e Linux (Eto.Forms), Android e iOS (Xamarin.Forms), e até mesmo para a internet (ASP.NET). Para console, temos o magnífico NetCore, que permite que Mac, Windows e Linux rodem o mesmo código.
    C# é comparável a Kotlin na questão de versatibilidade, neste caso.
     
Status do Tópico:
Não esta aberto para novas mensagens.

Compartilhe esta Página