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. Animadoria
    Offline

    Animadoria Membro Conhecido VIP Sabotador.com

    Afiliado:
    17 Agosto 2014
    Mensagens:
    750
    Avaliações:
    +585 / -2
    Apelido no Minecraft:
    Animadoria
    Estive pensando (aka fazer nada da vida) e me perguntei: "Qual será a linguagem de programação que irá dominar o futuro?"

    Eu acho que é Javascript já que muita coisa tem sido web-based (infelizmente gente).
    Qual sua opinião?
    HTML e CSS não são linguagem de programação!!!!!!!
     
    • Gostei Gostei x 1
  2. Duyzee
    Offline

    Duyzee Membro Conhecido VIP Sabotador.com VIP Sabotador.com

    Afiliado:
    28 Fevereiro 2017
    Mensagens:
    709
    Sexo:
    Feminino
    Avaliações:
    +482 / -1
    Apelido no Minecraft:
    Duyzee
    Na minha opinião: eu acho que será o JAVA, pois ele é utilizado com muita frequência no mercado. [acho]
     
  3. Tio Ron
    Offline

    Tio Ron Veterano Veterano Ex-Staff

    Afiliado:
    9 Fevereiro 2011
    Mensagens:
    4,001
    Sexo:
    Masculino
    Avaliações:
    +2,217 / -5
    Apelido no Minecraft:
    roneyq123
    • Engraçado Engraçado x 3
  4. Mr. Piva
    Offline

    Mr. Piva Veterano Veterano VIP Sabotador.com VIP Sabotador.com VIP Industrial Ex-Staff

    Afiliado:
    16 Outubro 2013
    Mensagens:
    471
    Sexo:
    Masculino
    Avaliações:
    +272 / -0
    Apelido no Minecraft:
    MrPiva
    Java já está morrendo aos poucos
     
  5. Duyzee
    Offline

    Duyzee Membro Conhecido VIP Sabotador.com VIP Sabotador.com

    Afiliado:
    28 Fevereiro 2017
    Mensagens:
    709
    Sexo:
    Feminino
    Avaliações:
    +482 / -1
    Apelido no Minecraft:
    Duyzee
    por que? ;-;
     
  6. joserobjr
    Offline

    joserobjr Administrador Equipe GameMods Administrador Programador YouTuber Veterano

    Afiliado:
    29 Junho 2009
    Mensagens:
    6,744
    Sexo:
    Masculino
    Avaliações:
    +4,835 / -0
    Apelido no Minecraft:
    joserobjr
    Infelizmente eu também aposto no JavaScript por ser uma linguagem preguiçosa e com grande potencial de deixar grandes projetos bagunçados, remendados, mas funcionando. É triste mais para a maioria o mais importante é ter o negócio rodando não importando muito como.

    Mas se considerar apenas aqueles que se importam bastante com qualidade de código, acho que Kotlin tem chances de se popularizar muito pois o futuro legado será Java e Kotlin cria códigos JVM de forma bem mais limpa. Ele já está se popularizando bastante em mobile. Quando a capacidade de ser multi-plataforma entre JVM e JavaScript (e futuramente, código nativo, podendo interagir com C) ficar mais sólida, aí que deverá se popularizar muito.

    Java está começando a ser chamado de "novo cobol" :unamused:

    Vamos ver se com essa nova forma de versionamento ele consegue mudar essa visão.
     
    • Concordo Concordo x 1
    • Discordo Discordo x 1
    • Informativo Informativo x 1
  7. kodo no kami
    Offline

    kodo no kami Membro Conhecido

    Afiliado:
    16 Dezembro 2015
    Mensagens:
    230
    Sexo:
    Masculino
    Avaliações:
    +308 / -0
    perl por que perl é vida (e eu tenho esperança que vai ficar popular denovo). kkkk

    creio que seja dificil saber, muitas linguagens acabaram caindo em desuso de uma hora para outra, a linguagem pode esta em alta hoje e amanha acaba surgindo uma tecnologia ou metodologia nova que lasca tudo, veja o vbs antigamente batia de frente com js, hoje se quiser mexer com vbs so baixando internet explore 6 (vbs era tambem uma baita falha de segurança as maquinas era comprometida so de entrar em um site u.u), os flashs são outro exemplo (cara eu amava flash) aprendi AS so para criar jogos eroti... coff coff, so para fazer formularios legais em flash com animações ^^ (ai veio HTML5, CSS3 e JS para acabar com minha alegria u.u), é culpa do PHP que o perl não é tão popular (programadores php nem é gente, perl é vida!!!). Zueiras a parte realmente a linguagem sempre cai em desuso com o tempo, isso depende muito do mercado, de como ela é popular, ou ate mesmo a opção de ensino de qual linguagem sera usado, por outro lado muitas linguagens ficam presas a areas especificas e acaba não sendo substituida por não ter tantas opções, como exemplo temos o cobol que é uma das linguagens mais antigas e mais usadas em bancos e computadores de grande porte, depende muito
     
  8. Animadoria
    Offline

    Animadoria Membro Conhecido VIP Sabotador.com

    Afiliado:
    17 Agosto 2014
    Mensagens:
    750
    Avaliações:
    +585 / -2
    Apelido no Minecraft:
    Animadoria
    C# FTW
    Sério mesmo C# é ótimo, dá pra criar programas para a web, para cliente, é ótimo
    --- Post duplo mesclado, 29 Junho 2018 ---
    Ai que saudades de Flash, adorooooo, agora morreu infelizmente
     
    • Discordo Discordo x 1
  9. FRNathan13
    Offline

    FRNathan13 Membro Ativo

    Afiliado:
    7 Outubro 2015
    Mensagens:
    80
    Sexo:
    Masculino
    Avaliações:
    +48 / -0
    Apelido no Minecraft:
    nathan1302
    Javascript puro realmente fica muito bagunçado, por isso existem as versões do javascript (digo versões por que quando executa a compilação ele gera um javascript do mesmo jeito). Por exemplo o typescript. Typescript você programa de uma maneira sensacional no .js final gera um arquivo todo estranho. E alem disso tem os padrões do ES5, ES6, ES2015, ES2017 que o programador em javascript pode seguir, e ferramentas como o Visual Studio Code, que o padrão que tiver no projeto (ESLint) você é obrigado a seguir.

    Eu mesmo por exemplo, PHP foi uma linguagem que eu utilizei bastante pra fazer coisas relacionadas a REST etc, hoje não compensa mais por que é muito pesado pra rodar (a host precisa ser potente). No caso do ASP.NET (C#) eu rodando um website seria o mesmo que eu tivesse rodando um bot de discord, usa muito pouca memória.

    Coisa que eu acho extremamente absurdo do java é não ter sobrecarga de operadores, coisa que é da linguagem C++, se você precisa criar uma função que incremente um valor o certo como no C#/VB/C/C++ e outros simplesmente iria fazer uma sobrecarga do operador += em alguma classe personalizada enquanto no java você precisa criar um método estático. Também acho extremamente HORRÍVEL o camelCase do java.

    OBS: Sobrecarga do java que eu falo é em classes que você cria.

    Outros pontos que não sei por que java não tem é controle de fluxo por goto, coisa que também tem no C/C++, e as nossas queridas structs.

    Outro exemplo das linguagens de terceiros é o SASS e o LESS são 2 linguagens que geram um CSS no final de tudo, porem permite estruturar o CSS de forma mais complexa.

    A linguagem que você vai implementar, é a ultima coisa a ser pensada quando você desenvolver um software, afinal todas elas tem pontos positivos e negativos. Por exemplo, quero criar um sistema de cadastro de pessoas num arquivo plano (obvio que numa aplicação você é burro se usar arquivo plano), se eu quiser implementar isso é extremamente fácil, visto que eu tenho acesso a várias bibliotecas em várias linguagens que podem me ajudar com isso, preciso pensar na estrutura desse software ai sim decidir com a equipe qual linguagem utilizar e mão na massa, começar a codificar.
     
    Última edição: 30 Junho 2018
  10. armelin1
    Offline

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

    Afiliado:
    5 Maio 2014
    Mensagens:
    1,895
    Sexo:
    Masculino
    Avaliações:
    +645 / -0
    Apelido no Minecraft:
    armelin1
    Você disse tudo que eu ia dizer, já to começando a me render pro JavaScript. Porém eu ainda acho que o Kotlin tem grandes chances por causa do Android.
     
    • Gostei Gostei x 1
  11. Linkkado
    Offline

    Linkkado Veterano Veterano VIP Sabotador.com VIP Sabotador.com VIP Industrial

    Afiliado:
    29 Novembro 2014
    Mensagens:
    312
    Sexo:
    Masculino
    Avaliações:
    +146 / -0
    Apelido no Minecraft:
    Linkkado
    a Urban Müller fez um melhor que essas modinhas ai falo mesmo(não boto o nome porque não sei se pode o nome muito family friend da linguagem)
     
  12. Rik
    Offline

    Rik Veterano Veterano VIP Sabotador.com VIP Industrial Ex-Staff

    Afiliado:
    2 Dezembro 2012
    Mensagens:
    861
    Sexo:
    Masculino
    Avaliações:
    +1,852 / -0
    Apelido no Minecraft:
    Rikhi
    Inglês
     
    • Concordo Concordo x 1
    • Vencedor Vencedor x 1
  13. Animadoria
    Offline

    Animadoria Membro Conhecido VIP Sabotador.com

    Afiliado:
    17 Agosto 2014
    Mensagens:
    750
    Avaliações:
    +585 / -2
    Apelido no Minecraft:
    Animadoria
    upload_2018-6-30_13-57-39.png
     
  14. Rik
    Offline

    Rik Veterano Veterano VIP Sabotador.com VIP Industrial Ex-Staff

    Afiliado:
    2 Dezembro 2012
    Mensagens:
    861
    Sexo:
    Masculino
    Avaliações:
    +1,852 / -0
    Apelido no Minecraft:
    Rikhi
    você ao menos entender zoeira?
     
  15. Animadoria
    Offline

    Animadoria Membro Conhecido VIP Sabotador.com

    Afiliado:
    17 Agosto 2014
    Mensagens:
    750
    Avaliações:
    +585 / -2
    Apelido no Minecraft:
    Animadoria
    [​IMG]
     
    • Engraçado Engraçado x 1
    • Criativo Criativo x 1
  16. TheMFjulio
    Offline

    TheMFjulio Veterano Veterano VIP Industrial

    Afiliado:
    3 Março 2014
    Mensagens:
    575
    Avaliações:
    +844 / -0
    Apelido no Minecraft:
    Mateusaum
    Jamaicano
     
  17. FRNathan13
    Offline

    FRNathan13 Membro Ativo

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

    BoloFeliz Veterano Veterano VIP Sabotador.com VIP Sabotador.com

    Afiliado:
    30 Janeiro 2016
    Mensagens:
    189
    Sexo:
    Masculino
    Avaliações:
    +196 / -0
    Apelido no Minecraft:
    SrHappyCake
    Portugol
     
  19. joserobjr
    Offline

    joserobjr Administrador Equipe GameMods Administrador Programador YouTuber Veterano

    Afiliado:
    29 Junho 2009
    Mensagens:
    6,744
    Sexo:
    Masculino
    Avaliações:
    +4,835 / -0
    Apelido no Minecraft:
    joserobjr
    TypeScript é outra linguagem, roda no ambiente JavaScript assim como Kotlin não é Java mas roda no JVM. Nunca parei para ver TypeScript então não posso opinar sobre ele.

    Também acho ruim não poder usar operadores normais em objetos não-primitivos no java mas outras linguagens JVM resolvem isso, no Kotlin por exemplo você pode definir o que acontece quando usa == , <, >, <=, >=, [], []=, etc.

    Código (Java):
    public class Teste {
        public static class Dados implements Comparable<Dados> {
            private int idade;
            private boolean ativo = true;
     
            public Dados(int idade) {
                this.idade = idade;
            }
     
            public Dados(int idade, boolean ativo) {
                this(idade);
                this.ativo = ativo;
            }
     
            @Override
            public boolean equals(final Object o) {
                if (this == o) return true;
                if (o == null || getClass() != o.getClass()) return false;
                final Dados dados = (Dados) o;
                return idade == dados.idade &&
                        ativo == dados.ativo;
            }
     
            @Override
            public int hashCode() {
                return Objects.hash(idade, ativo);
            }

            @Override
            public String toString() {
                    return "Dados{" + "idade=" + idade + ", ativo=" + ativo + '}';
            }
     
            public int getIdade() {
                return idade;
            }
     
            public void setIdade(final int idade) {
                this.idade = idade;
            }
     
            public boolean isAtivo() {
                return ativo;
            }
     
            public void setAtivo(final boolean ativo) {
                this.ativo = ativo;
            }
     
            @Override
            public int compareTo(final Dados outro) {
                return Integer.compare(idade, outro.idade);
            }
     
            public Dados somar(Dados outro) {
                return new Dados(idade + outro.idade, ativo || outro.ativo);
            }
        }

        public static void main(String[] args) {
            Map<String, Dados> idades = new LinkedHashMap<>();
            idades.put("Fulano", new Dados(12));
            idades.put("Fulanito", new Dados(32));
            idades.put("Maria", new Dados(23));
            idades.put("Silvia", new Dados(12));
            idades.forEach((nome,dados)-> {
                System.out.println(nome+" tem "+dados.idade+" anos.");
                idades.entrySet().stream()
                        .filter(outro-> !outro.getKey().equals(nome))
                        .forEachOrdered(entry-> {
                            System.out.println(
                                    "A soma das idades de "+nome+" e "+entry.getKey()+" dá "+dados.somar(entry.getValue()).idade);
                     
                            int comparacao = dados.compareTo(entry.getValue());
                            if(comparacao < 0) {
                                System.out.println(nome+" é mais novo(a) que "+entry.getKey());
                            } else if(comparacao == 0) {
                                System.out.println(nome+" é tem a mesma idade que "+entry.getKey());
                            } else {
                                System.out.println(nome+" é mais velho(a) que "+entry.getKey());
                            }
                        });
                System.out.println();
            });
        }
    }
    Fica muito melhor assim:
    Código (Kotlin):
    data class Dados(var idade: Int, var ativo: Boolean = true) : Comparable<Dados> {
        operator fun plus(outro: Dados) = copy(idade = idade + outro.idade, ativo = ativo || outro.ativo)
        override fun compareTo(other: Dados): Int {
            return idade.compareTo(other.idade)
        }
    }

    fun main(args: Array<String>) {
        val idades = mutableMapOf<String, Dados>()
        idades["Fulano"] = Dados(12)
        idades["Fulanito"] = Dados(32)
        idades["Maria"] = Dados(23)
        idades["Silvia"] = Dados(12)
        idades.forEach { nome, dados ->
            println("$nome tem ${dados.idade} anos.")
            idades.entries.stream()
                    .filter { (outroNome) -> outroNome != nome }
                    .forEachOrdered { (outroNome, outrosDados) ->
                        println(when {
                            dados < outrosDados -> "$nome é mais novo(a) que $outroNome"
                            dados > outrosDados -> "$nome é mais velho(a) que $outroNome"
                            else -> "$nome é tem a mesma idade que $outroNome"
                        })
                    }
            println()
        }
    }
    Melhor ainda assim:
    Código (Kotlin):
    data class Dados(var idade: Int, var ativo: Boolean = true) : Comparable<Dados> {
        operator fun plus(outro: Dados) = copy(idade = idade + outro.idade, ativo = ativo || outro.ativo)
        override fun compareTo(other: Dados): Int {
            return idade.compareTo(other.idade)
        }
    }

    fun main(args: Array<String>) {
        val idades = mapOf(
                "Fulano" to Dados(12),
                "Fulanito" to Dados(32),
                "Maria" to Dados(23),
                "Silvia" to Dados(12)
        )
        idades.forEach { nome, dados ->
            println("$nome tem ${dados.idade} anos.")
            idades.asSequence()
                    .filter { (outroNome) -> outroNome != nome }
                    .forEach { (outroNome, outrosDados) ->
                        println("A soma das idades de " + nome + " e " + outroNome + " dá " + (dados + outrosDados).idade)
                        println(when {
                            dados < outrosDados -> "$nome é mais novo(a) que $outroNome"
                            dados > outrosDados -> "$nome é mais velho(a) que $outroNome"
                            else -> "$nome é tem a mesma idade que $outroNome"
                        })
                    }
            println()
        }
    }
    Ou ainda:
    Código (Kotlin):
    import java.util.*

    data class Dados(var idade: Int, var ativo: Boolean = true) : Comparable<Dados> {
        operator fun plus(outro: Dados) = copy(idade = idade + outro.idade, ativo = ativo || outro.ativo)
        override fun compareTo(other: Dados): Int {
            return idade.compareTo(other.idade)
        }
    }

    infix fun String.idade(idade: Int) = this to Dados(idade)

    fun main(args: Array<String>) {
        val idades = mapOf(
                "Fulano" idade 12,
                "Fulanito" idade 32,
                "Maria" idade 23,
                "Silvia" idade 12
        )
        idades.forEach { nome, dados ->
            println("$nome tem ${dados.idade} anos.")
            idades.asSequence()
                    .filter { (outroNome) -> outroNome != nome }
                    .forEach { (outroNome, outrosDados) ->
                        println("A soma das idades de " + nome + " e " + outroNome + " dá " + (dados + outrosDados).idade)
                        println(when {
                            dados < outrosDados -> "$nome é mais novo(a) que $outroNome"
                            dados > outrosDados -> "$nome é mais velho(a) que $outroNome"
                            else -> "$nome é tem a mesma idade que $outroNome"
                        })
                    }
            println()
        }
    }
    Tem as funções de operadores também mas estava sem criatividade para montar um exemplo com eles :p

    Tipo o que uso nestes enums:
    Código (Kotlin):
    enum class TextColor(val charCode: Char) {
        BLACK('0'),
        DARK_BLUE('1'),
        DARK_GREEN('2'),
        DARK_AQUA('3'),
        DARK_RED('4'),
        DARK_PURPLE('5'),
        GOLD('6'),
        GRAY('7'),
        DARK_GRAY('8'),
        BLUE('9'),
        GREEN('a'),
        AQUA('b'),
        RED('c'),
        LIGHT_PURPLE('d'),
        YELLOW('e'),
        WHITE('f'),
        DEFAULT('r'),
        ;

        operator fun plus(format: TextFormat) = TextStyle(this, format)
        operator fun plus(style: TextStyle) = if(style.color != null) style else style.copy(color = this)
    }

    enum class TextFormat(val charCode: Char) {
        /**
         * Represents magical characters that change around randomly
         */

        MAGIC('k'),
        /**
         * Makes the text bold.
         */

        BOLD('l'),
        /**
         * Makes a line appear through the text.
         */

        STRIKETHROUGH('m'),
        /**
         * Makes the text appear underlined.
         */

        UNDERLINE('n'),
        /**
         * Makes the text italic.
         */

        ITALIC('o')
        ;
        operator fun plus(color: TextColor) = TextStyle(color, this)
        operator fun plus(format: TextFormat) = TextStyle(this, format)
    }

    data class TextStyle(val color: TextColor?, val format: Set<TextFormat>) {
        constructor(color: TextColor?, vararg format: TextFormat): this(color, format.toSet())
        constructor(first: TextFormat, vararg format: TextFormat): this(null, sequenceOf(first, *format).toSet())
        constructor(color: TextColor?, format: Iterable<TextFormat>): this(color, format.toSet())

        fun toLegacyCode(keyChar: String = "\u00A7"): String {
            val builder = StringBuilder()
            color?.let { builder.append(keyChar).append(it.charCode) }
            format.forEach { builder.append(keyChar).append(it.charCode) }
            return builder.toString()
        }

        operator fun plus(color: TextColor) = copy(color = color)
        operator fun plus(format: TextFormat) = copy(format = this.format + format)
        operator fun plus(style: TextStyle) = copy(color = style.color ?: this.color, format = this.format +  style.format)
        operator fun minus(color: TextColor) = if(this.color == color) copy(color = null) else this
        operator fun minus(format: TextFormat) = copy(format = this.format - format)
        operator fun minus(style: TextStyle) = copy(
                color = if(this.color == style.color) null else this.color,
                format = this.format - style.format
        )

        override fun toString() = toLegacyCode()

        companion object {
            val INHERIT = TextStyle(null)

            val BLACK = TextStyle(TextColor.BLACK)
            val DARK_BLUE = TextStyle(TextColor.DARK_BLUE)
            val DARK_GREEN = TextStyle(TextColor.DARK_GREEN)
            val DARK_AQUA = TextStyle(TextColor.DARK_AQUA)
            val DARK_RED = TextStyle(TextColor.DARK_RED)
            val DARK_PURPLE = TextStyle(TextColor.DARK_PURPLE)
            val GOLD = TextStyle(TextColor.GOLD)
            val GRAY = TextStyle(TextColor.GRAY)
            val DARK_GRAY = TextStyle(TextColor.DARK_GRAY)
            val BLUE = TextStyle(TextColor.BLUE)
            val GREEN = TextStyle(TextColor.GREEN)
            val AQUA = TextStyle(TextColor.AQUA)
            val RED = TextStyle(TextColor.RED)
            val LIGHT_PURPLE = TextStyle(TextColor.LIGHT_PURPLE)
            val YELLOW = TextStyle(TextColor.YELLOW)
            val WHITE = TextStyle(TextColor.WHITE)
            val DEFAULT = TextStyle(TextColor.DEFAULT)

            val MAGIC = TextStyle(TextFormat.MAGIC)
            val BOLD = TextStyle(TextFormat.BOLD)
            val STRIKETHROUGH = TextStyle(TextFormat.STRIKETHROUGH)
            val UNDERLINE = TextStyle(TextFormat.UNDERLINE)
            val ITALIC = TextStyle(TextFormat.ITALIC)

            operator fun invoke() = INHERIT
            operator fun invoke(format: TextFormat?) = when(format) {
                TextFormat.MAGIC -> MAGIC
                TextFormat.BOLD -> BOLD
                TextFormat.STRIKETHROUGH -> STRIKETHROUGH
                TextFormat.UNDERLINE -> UNDERLINE
                TextFormat.ITALIC -> ITALIC
                null -> INHERIT
            }

            operator fun invoke(color: TextColor?) = when(color) {
                TextColor.BLACK -> BLACK
                TextColor.DARK_BLUE -> DARK_BLUE
                TextColor.DARK_GREEN -> DARK_GREEN
                TextColor.DARK_AQUA -> DARK_AQUA
                TextColor.DARK_RED -> DARK_RED
                TextColor.DARK_PURPLE -> DARK_PURPLE
                TextColor.GOLD -> GOLD
                TextColor.GRAY -> GRAY
                TextColor.DARK_GRAY -> DARK_GRAY
                TextColor.BLUE -> BLUE
                TextColor.GREEN -> GREEN
                TextColor.AQUA -> AQUA
                TextColor.RED -> RED
                TextColor.LIGHT_PURPLE -> LIGHT_PURPLE
                TextColor.YELLOW -> YELLOW
                TextColor.WHITE -> WHITE
                TextColor.DEFAULT -> DEFAULT
                null -> INHERIT
            }
        }
    }
    Estes 3 enums me deixam criar TextStyle de várias formas diferentes e bem legíveis e ainda usando cache dos estilos mais comuns que contém um efeito só.

    Uns exemplos bobos, meu TextStyle é mais ideal para os BaseComponents da vida, mas serve em string pura também :p
    Código (Kotlin):
    import TextColor.*
    import TextFormat.*
    import TextStyle

    val estilo1 = RED + BOLD + ITALIC
    val estilo2 = TextStyle(RED, BOLD, ITALIC)
    val estilo3 = TextStyle(RED, BOLD, UNDERLINE) + MAGIC
    val textoCruColorido = "${GREEN + BOLD + UNDERLINE}MOD>$WHITE Bom dia ${YELLOW+ITALIC}joserobjr"
    PS: O fórum não colore o Kotlin direito:
    upload_2018-6-30_14-36-5.png
     
    • Top Top x 1
    • Útil Útil x 1
    Última edição: 30 Junho 2018
  20. Animadoria
    Offline

    Animadoria Membro Conhecido VIP Sabotador.com

    Afiliado:
    17 Agosto 2014
    Mensagens:
    750
    Avaliações:
    +585 / -2
    Apelido no Minecraft:
    Animadoria
    "textoCruColorido" eu acho engraçado, nunca boto código em inglês, pra mim fica sempre rawColoredText (e quando tô com preguiça fica "importantThing")
     
Status do Tópico:
Não esta aberto para novas mensagens.

Compartilhe esta Página