Ajude o Rio Grande do Sul, informações em lucasmontano.com/ Estamos postando os videos gravados antes da catástrofe que estamos passando no RS, no link acima tu encontra informações de como ajudar. Procure na sua região como enviar doações, pontos de coletas e etc. Ao longo do mês vamos fazer mais LIVEs com talks técnicas e muito conteúdo pra arrecadar doações.
E estranhamente eu gravei um vídeo de 1 hora ensinando Java pra quem já sabe Javascript 😂 justamente pelo mesmo motivo que vc levanta no vídeo. Muita gente nunca NEM TOCOU em linguagem de tipo forte e já fala que não gosta. Mas uma critica que eu tenho pro java é que a Oracle perdeu ai uns 10 anos pra atualizar java. Essa atualização do java 21 devia ter vindo faz 10 anos
Colocar C++ como estática fraca e deixar Java como estática forte é complicado. C++ trata de forma implícita a conversão de void* e operações entre tipos numéricos. Java tudo é Object. Dá pra causar um ClassCastException facilmente. Sem contar que genérico no Java não "carrega" a informação do tipo (List instanceof List fail). Type erasure se feito errado, no C++ é undefined behaviour e no java vem Exception. Ainda em C++, as conversões devem ser feitas com static_cast ou dynamic_cast. No pior dos casos reinterpret_cast, que descarta qualquer tipo de check. Agora Python como forte dinâmica é forçar a barra.. Dá pra declarar que uma variável/parâmetro é TipoX, mas nada impede de passar qualquer outra coisa. Quem reclama é o lint, mas o interpretador vai deixar passar como se não fosse nada. Só na hora de usar algum método do objeto (TipoX) é que dá exception por método não encontrado. Ou quando passa adiante para algum outro método que requer que seja TipoX (com runtime check).
Eu comecei com JavaScript e achava mt bom não ter que me preocupar com declaração de tipos kkk até me deparar com alguns erros bizarros em tempo de execução, aí resolvi migrar meus códigos JavaScript pra Typescript, foi a melhor coisa que fiz e ainda de quebra aprendi umas parada de POO, o que me ajudou quando comecei a estudar Rust e Java no ano passado. Mt obg pelo vídeo, Lucao, explicação simples e direta.
Pra mim isso foi uma das coisas mais bacanas que apareceu no PHP, hoje em dia uso em tudo, e percebi que os devs do meu time também, isso melhorou muuito a linguagem.
@@EmanoelPedroCunha sim, o pessoal fala do php como se fosse a mesma coisa da versão 5 A cada versão mais recursos são adicionados e o melhor e que mantêm a compatibilidade com a versão anterior
@@EmanoelPedroCunha eu trabalho usando laravel, se o cara entende de laravel consegue fazer sistemas muitas funcionalidades de forma bem simples e clara
esse Lucas Montano gerado por I.A ficou quase perfeito, faltou só o topete! e sobre as considerações finais do video, realmente quem mete a cara logo em javascript, tem um pouco de ranço de tipagem forte quando pega outras linguagens tipadas pra brincar... e é tudo verdade, quando pega um typescript parece que tá só perdendo tempo escrevendo código extra atoa! mas depois que comecei lidar com C# a visão mudou e comecei estudar C++ pra enlouquecer de vez, e agora não consigo enteder como eu dava conta de desenvolver algo sem tipagem, é meio que navegar às cegas. Excelente vídeo Lucão!
Eu me vejo como um programador empreiteiro que constroi prédio, logo tipagem mais dura faz bastante sentido pra mim. Acredito que para programadores com vies mais artístico, esse estilo de tipagem seja uma bola de ferro no tornozelo.
Lembro que durante a faculdade aprendi e amava Java com paixão e mesmo depois da faculdade comecei a fazer freelance como programador Java. Dai arrumei um trabalho com Javascript, que evoluiu para Typescript e hoje deve fazer uns 4 anos que não vejo um código Java. Eu sempre adorei como era rápido e simples fazer coisas no Javascript mas com a escalada do sistema, tudo virava uma macarronada sem segurança e garantias nenhuma. Por isso, hoje uso só Typescript pela facilidade e rapidez que me faz escrever código em relação a como era com Java, porém me da muito mais segurança no que eu estou fazendo. No final, acho que uma anarquia total de tipos é loucura a longo prazo, mas entendo as pessoas odiarem serem "forçadas" a declarar um tipo, um meio termo é sempre bem vindo, porém se você está entre ter ou não tipagem, posso dizer que ter a tipagem, mesmo que estática, ajuda muito mais que não ter nenhuma.
Eu odiava programar em Java e ainda não gosto muito, principalmente por causa do professor que tive na época. No entanto, não sou um hater da linguagem, porque ela faz muitas coisas bem. É uma pena que a linguagem tenha sido adquirida pela Oracle, que é bastante mercenária, e isso meio que a deixou estagnada. A boa notícia é que surgiu o Kotlin, que está dando uma boa repaginada no Java. É como um Java, só que mais bonito. Curiosamente, ao longo dos anos, percebo que as linguagens de programação estão ficando cada vez mais parecidas, pelo menos em termos de sintaxe.
po, em projetos Dart/Flutter, você pode configurar como a tipagem vai ser (é só um stricter static checks na vdd) !! é ótimo pra você deixar tudo bem fraco/dinâmico quando for fazer alguma poc ou side projects pequenos, e ótimo pra deixar com "tipagem forte" pra projetos grandes e com múltiplos contribuidores
Vídeo perfeito como sempre, quando comecei a programar fui direto pro JS não por ser mais fácil, mas sim por conta que não conhecias outras além dele e py. Depois de uns dois anos somente usando JS comecei a sentir que minha evolução "enfraqueceu" e desanimei, depois disso comecei a abrir mais a cabeça e procurar outras linguagens e afins. Comecei a usar GO e simplesmente minha vida na programação mudou da água para o vinho é maravilhoso, então essa dica final de dar chance a linguagens fortemente tipadas é completamente válida e verdadeira. E força ao RS, te mandei mensagem no insta agradecendo pelo apoio ao nosso estado mesmo de longe mas me sinto na obrigação de agradecer dnvo.
"Há vantagens em não usar tipos, como uma velocidade de desenvolvimento mais rápida..." - Já ouvi bastante isso de quem nunca teve que lidar com sistemas grandes e/ou dar manutenção em algum código. Imagina você ter que adivinhar o tipo do dado.
Muda praticamente nada, pois a ganhanca em nao escrever um tipo se paga tendo que fazer os testes correspondentes ou no pior dos caoss tendo que resolver o bug quando aparecer. Ao longo se gasta mais tempo e dinheiro.
@@OscarAndresPabonEstrella hoje em dia já existe ferramentas que convertem um tipo de dado, como JSON, para o tipo que tu quer. Coisa de 10 segundos, talvez? Quanto a correção de type check, é basicamente o código te dizendo que ele espera um tipo de dado e tu está passando outro. Se tu leva muito tempo para corrigir as inferências de tipos, talvez tu não está refatorando teu código da melhor forma! Falo isso tanto em contexto de design, como de fluxo de dados.
@@DJKINS vou dar a mesma reposta que dei ao comentário abaixo: Hoje em dia já existe ferramentas que convertem um tipo de dado, como JSON, para o tipo que tu quer. Quanto a correção de type check, é basicamente o código te dizendo que ele espera um tipo de dado e tu está passando outro. Se tu leva muito tempo para corrigir as inferências de tipos, talvez tu não está refatorando teu código da melhor forma! Falo isso tanto em contexto de design, como de fluxo de dados.
Vim do mundo Javascript(REACT), na primeira vaga de emprego minha stack(JAVA 8 e AngularJS 1.3). Angular foi tranquilo aprender, JS é JS independente de onde estiver No Java levei um tempo para acostumar, mas me ajudou a evoluir muito o meu codigo do JS. Recentemente comecei a aprender Swift, fortimente tipada, tambem esta me ajudando a me desenvolver tanto em Java quando JS. Quando um DEV fala pra aprender outra linguagem que vai ajudar, é real.
Eu comecei no pascal, fui pro C e depois Java e aprendi POO. Depois disso todas as linguagens que aprendi tive uma adaptação rápida. Passar horas estudando orientação a objetos ou programando microcontroladores com C, sem dúvidas valeu a pena e vai me servir pro resto da minha carreira, hoje sinto que consigo aprender qualquer linguagem só preciso de tempo. Excelente vídeo!
Velho, comecei no Python, porque tive que aprender na marra a programar numa Game Engine (Godot), para um projeto da faculdade em 2021- e eu era aluno de Letras kkk. A linguagem dessa Engine se baseava em Python e aí posso dizer que comecei nesse mundo de programação. Larguei esse mundo, para tocar outros projetos, até que deu a doida e quis voltar a programar agora em 2024, só que em outra linguagem: C++. E eu tô pouco a pouco percebendo isso que você fala no vídeo. Valeuzão.
Eu vim do Javascript (até com Typescript, mas bem mal compreendido, devo ressaltar) 2 anos atrás, mas quando entrei na empresa que trabalho eu precisei aprender C#. Eu senti certa dificuldade em fazer absolutamente tudo, mas eu era obrigado. Um belo dia eu percebi que gostava de trabalhar mais com o C# do que com Javascript kkkkkkkk
Achei bem interessante o assunto do vídeo. Como entusiasta do Java (aprendi na faculdade, porém pratiquei bastante por conta própria também), e agora estudando PHP para web, é nítida a diferença entre tipagem dinâmica e tipagem forte (estática). E falando do PHP, as novas features vieram com funcionalidades bem interessantes para lidar com possíveis problemas de inferência de tipo, como, por exemplo: Union Types, Named Parameters, Property promotion. Um ponto interessante a ser destacado a respeito desse assunto abordado é que não escrevemos código apenas para ser performático, ou para ocorrer menos bugs em relação à tipagem. Escrevemos código para resolver problemas e esse código que escrevemos hoje, potencialmente, deverá ser reescrito ou estendido amanhã, possivelmente por outras pessoas, tendo isso em mente, as linguagens de script possuem camadas de abstração que tornam seu código mais legível, consequentemente, mais fácil de manutenir e escalar, o que o torna, do ponto de vista comercial, mais produtivo. Essa escolha é sempre um trade-off.
Lucas Montano sem topete é outra pessoa hehe, mas concordo com essa ideia, se você aprendeu Javascript de prima, assim como eu, vale e muito ver uma outra linguagem. Ver outras linguagens, além de aprender uma forma diferente de desenvolver código, de tabela você aprende conceitos que aquela linguagem oferece e pode aplica-los na sua principal se possível, tal como fiz quando fui dar uma aventurada em Go e Python, que tem estruturas diferentes e formas diferentes. Além de entender mais como cada linguagem se comporta e sua função, vale muito apena
Já trabalhei em um projeto grande com JS e era um caos, muitas regressões principalmente quando havia alteraçãoem objetos e o erro só era descoberto em produção. Trabalhei também em outro projeto que o pessoal usava typescript (se gabavam por utilizar linguagem tipada) e, no fim, o pessoal tipava como any kkkkkkkkkk. Quem fala de velocidade em desenvolvimento por não utilizar linguagem tipada é falacia.
Eu não consigo entender como as pessoas acham muitooo mais fácil aprender JS do que Java. Pq no Java você tem que deixar claro o que está fazendo e sinceramente quando você está aprendendo, essa verbosidade facilita entender o fluxo das coisas. Eu trabalho com JS e sempre que tenho que dar apoio para os JR sinto que a maior dificuldade deles é inferir mentalmente o tipo que a variável vai ter lá naquela linha, depois de passar por N funções… ( mesmo com TS a galera se perde, pq não sabe tipar as coisas)
Utilizo Java e Python no meu trabalho, quando codo em Java, geralmente vou implementando as coisas e quando rodo o código, 99% das vezes ele faz o que eu espero, mas, quando vou codar em Python, é codando e rodando, ou verificando se o tipo que está chegando está correto com o type(), o código em Python sai bem mais rápido do que em Java, mas, no Java tenho controle total dos inputs e outputs das funções/métodos até chegar no objetivo final.
A linguagem que mais domino é PHP e uso o framework Symfony. Coloco tipagem em tudo que for possível por conta da legibilidade e sempre achei uma otima pratica tipar tudo, vou dar um exemplo básico: utilizo DTO/Factory para validar um objeto e as próximas camadas(como services ou repositories) tem uma segurança maior sobre o que espera por conta da tipagem de cada atributo e a tipagem do próprio objeto. Acho mais fácil pra manipular os dados, pegar exceções e coisas do tipo. Sempre que possível eu utilizo outras linguagens como Java para estudar ou fazer um projetinho, la tem o conceito de Records que achei daora que é um tipo de classe além de que gosto da ideia de fortemente tipada.
Comecei a estudar programação mesmo a cerca de um ano, iniciei por Python pelo pessoal indicar que era algo mais simples, nesse tempo cerca de 1 mês depois comecei um técnico e nele tive Java onde aprendi tipagem ai fui migrando do python para o javascript e futuramente typescript, foi depois que comecei a mexer com tipagem que senti que evolui meus códigos, pois consegue aprender alguns modelos e etc, realmente o conselho do final do vídeo é muito útil.
Iniciei minha carreira com JS, mas também trabalho com TS, eu realmente não sinto dificuldade com a tipagem (fico surpreso com algumas pessoas FORMADAS que demonstram essa dificuldade). Como mencionado pelo Lucas, saber o que esperar em uma variável é o básico. Eu sei o que vem, mas o tempo de dizer no código é o que faz a diferença, trabalhar com tipagem é muito demorado, ainda mais quando o time é reduzido e as demandas são altas.
Por isso eu amo o Go, se buildar é porquê a tipagem tá certa hehe e todos os possíveis erros de casting são tratados no próprio código, a linguagem vai gerar warnings se não tiver algum erro sendo tratado. Além disso vejo muitos problemas em código legado python onde não há tipagem estática e vejo principalmente de devs iniciantes aqui da empresa.
O engraçado é que amigos que começaram com linguagens com tipagem Estática forte ou fraca, acham linguagens com tipagem dinâmica meio "bagunçada" principalmente se vieram de C ou Java, eu mesmo acho isso com o JS e estou estudando TS, pois achei "mais fácil" para mim. Erros que eu pegava rapidamente com ajuda do compilador e da própria IDE passavam direto por mim acho legal você que começou com uma linguagem forte e Estaticamente tipada dá uma olhada em linguagens fracamente tipadas também. #ajudaRS
Eu comecei com JS, odiava linguagem tipada porque eu não entendia o proposito, posteriormente aprendi TS e hoje dificilmente faço algo sem TS, e desde então comecei a gostar de Tipagem, hoje gosto muito de Java e C# por serem fortemente tipadas.
Nessas horas eu me lembro do visual basic 6 com seus bugs nos tipos, e também do DELPHI 6 com seus fatal errors. Ainda bem que as linguagens evoluiram muito. Antes se podia reclamar dos tipos, hoje em dia não faz sentido nenhum reclamar disso. É muito legal programar no PHP 8 tipando tudo.
O primeiro contato que tive com linguagem foi Pascal (sem contar as brincadeira iniciais com Basic) e depois C. Mas quando comecei a usar ASP e depois PHP eu senti uma liberdade impressionante. Eu não sabia quantos elementos aquele array precisava ter... E ta tudo bem! Quando comecei a aprender C# senti novamente as correntes no meu tornozelo, mas pelo menos descobri outros tipos que me ajudavam a resolver alguns problemas. Mas ... em termos de bem estar ao escrever em alguma linguagem nada supera Ruby. Se eu pudesse sempre escolher qual linguagem escrever, sempre escolheria ruby.
Comecei na área a aproximadamente 2 anos... Minha primeira linguagem foi javascript e um curso que eu fiz, tinha uma API em Java e aquilo foi um choque na minha mente, depois disso em foquei em aprender Typescript, que é fortemente tipado e permite inferência também. Mas ali minha mente abriu ...nunca mais fiz um arquivo .já O ponto é tipagem ajuda muito tbm na escrita do código e não deixa vc errar, pra um programador iniciante como eu, ajuda muito na escrita...hj já pensou em aprender Java, que eu achava um absurdo no início....conforme crescemos evoluímos, conforme evoluímos crescemos.
Tipagem é excelente, comecei a aprender JS e depois aprendi Typescript e hoje não consigo (na verdade consigo sim, mas prefiro não) utilizar JS Vanilla. Recentemente comecei estudar C# pra me aperfeiçoar como DEV, porém quando o professor entrou no tópico de tipagem quase caiu a casa pra mim. Ele começou a falar de byte, sbyte, ushort, uint e etcetera, e isso me fez abandonar o curso por meses. Não me entenda mal, eu estou de acordo com a necessidade da existência desses tipos aí, o que me incomodou foi ter encontrado eles na 5ª aula do curso, mal tinha instalado o Visual Studio. Acredito que quando estamos aprendendo um novo conceito tem que ir com mais calma, aprende o que é o INT, Double, string, array, objeto (tipos mais "simples") e faz o teu primeiro projeto (to-do list), depois quando se deparar com a necessidade de utilizar uma tipagem mais complexa você começa a contar bits. Enfim, sem mais delongas, Tipagem é legal demais, engrandece e até facilita a experiência de desenvolvimento.
Eu certamente vou seguir essa dica Lucas! Você poderia deixar umas 3 boas opções para que eu dê uma olhada mais de perto pra então escolher uma e começar a estudar agora no início junto do Js?
Cara, também tenho 20 anos de experiência e já trabalhei com Visual Foxpro, Visual Basic, Delphi, C++, Java, PHP, Perl, Python e concordo com o Tom, as fortemente tipadas são melhores, embora eu goste muito de PHP e Python.
Só complementando, algumas linguagens como C tem promoção de tipo. Isso significa que se um tipo não atender aos requisitos de uma função ou expressão, aquele tipo é automaticamente promovido para outro tipo. É o caso de uma função que receber um int como parametro e você passa um float. Isso acontece particularmente em C porque não existe sobrecarga de função. Eu acho isso uma péssima ideia ainda mais quando se mistura com ponteiros e aritimetica de ponteiros, gera muito comportamento indefinido.
Do JSDoc para tipagem... é/pode ser tipagem igual ao TS. E da "velocidade" de não usar tipos... isso é só se não contar as horas perdidas com debugger, metendo log em cada linha roda, ve log, mexe, roda de novo... Já perdi um dia inteiro no JS pra achar que o erro foi um typo numa função (que dai o framework legado só me dava um erro de "deu erro" e eu "onde??" e ele: ¯\_(ツ)_/¯) Desde então comecei a tipar com jsdoc (que tem como deixar tão explicito e chato quanto TS, mas que funciona mesmo num bagulho legado de anos atras) e minha experiencia mudou completamente. Já tinha usado Java antes, TS, JSDoc, brinquei com Rust... tem coisa que só por ser mais verbosa acham que "diminui" a velocidade, a questão é que a velocidade é sempre constante. Diferente de algo onde vale tudo e uma hora do dia ta a100 e no resto ta tentando ver onde deu o crash.
Gostei muito do vídeo e trabalho com tenho 20 anos de Dev, comecei no Delphi e faz 9 anos q trabalho com Java e Javascript. Pra mim a tipagem nunca foi problema, talvez pela minha base ter sido em linguagem fortemente topada. Mas pra mim dizer q é muito mais lento programar em linguagem topada eu vejo como falta de argumento, pq nunca deixei de entregar uma Sprint por causa de linguagem tipada, mas sempre por problemas como ingerência ou do PO não saber o que quer e colocam a solicitação na Sprint mesmo assim e boa sorte. Sobre o Javascript ela é muito boa pra front e como vai ser executada localmente então a falta de tipagem dela tem problema zero em questão de desempenho, mas nesse tempo de experiência que tenho uma coisa é certa, os erros relacionados a tipagem em front q usa Javascript é muito maior. Mais ainda qdo o Dev é daqueles q testa porcamente, faz apenas o caminho feliz e acha q é obrigação apenas do QA achar os bugs. Enfim, acho que tem linguagens no mundo o suficiente pra TD mundo trabalhar e ser feliz com ela.
Tenho 12 anos como Dev. Já mexi com muito legado pesado, código mal escrito, muita gambiarra... Imagino que normal de um caminho de Dev. Mas dentre isso tudo de longe minha pior experiência foi em um legado GIGANTE em Ruby, ter um método "Validate(user)" e não ter a certeza dê o que é esse "user" é absurdamente ruim. Acho que a longo prazo, uma linguagem fortemente e estaticamente tipada e necessário.
Minha opinião, sempre trabalhei com Java, e adoro, principalmente pelo fato de ser obrigado a informar o tipo e como ela lida com a POO, e não vejo problemas com a verbosidade, acredito muito que explicito é melhor que implícito; quando tenho que programar em Python é uma dor
Eu comçei por JS, PHP, etc... mas tenho plena noção de entra a fundo em outras mais tipadas, minhas preferencias sao com Python e Kotlin, isso mais pra frente. Atualmente estou estudando a fundo Dart para usar com Flutter.
Pra quem iniciou ou tem mais experiência com linguagem fracamente tipada, sente uma certa dificuldade para usar uma fortemente tipada porque inevitavelmente aumenta o tempo de desenvolvimento e linha de código. Se eu consigo usar a mesma variável para construir um array e depois retornar uma string concatenada, fica mais simples. Se a minha função pode retornar um array, string ou null, fica muito mais simples. Se uma função anônima pode receber uma serie de parâmetros que podem ser injetados com diferentes tipos em runtime, eu não preciso de uma interface e eventualmente classes novas para isso, acelera o desenvolvimento. Então tem que entender o sistema, a necessidade, a experiência da equipe, as ferramentas e frameworks, etc. Pessoal é purista demais.
Tudo q disse aí dá pra fazer com tipagem estática forte. Recomendo estudar uma pelo menos, eu achava isso também e demorei anos pra dar uma chance pro Typescript, hoje em dia não consigo parar de usar.
@@franciscofetapi8741 não dá. Releia o que eu escrevi. E não estou defendendo uma ou outra, apenas relatando as diferenças e dificuldade de adaptação de alguns devs.
@@ancapistaovemai616 numa linguagem fortemente tipada você pode: 1. Aceitar que a função retorne x ou y ou z, voce não eh limitado a apenas um tipo de retorno/parametro/variavel. Tem o operador OU a nível de tipos também. 2. Aceitar que a função receba um tipo que você ainda nem sabe o que vai ser e que vai ser definido na hora de chamar a função, através dos generics (acredito que toda línguagem fortemente tipada tem) Se você ainda não trabalhou com alguma eu super recomendo, no começo vai ser uma chatice, mas com o tempo você pega o jeito e não vai querer mais voltar, te garanto! Aprendi Typescript 3 anos depois de usar JS e até hoje não me arrependo, só uso TS.
@@franciscofetapi8741 cara você não está entendendo ou é iniciante em programação. Você pode definir vários tipos de retorno, mas precisa definir. Não é aberto. Em linguagem como Java você precisa inclusive explicitar uma exceção usada no método. Fica bem mais verboso. Sobre Generics não é tão simples como você faz parecer. Não é como fazer "myFunction(Generics myVar)". Na hora de injetar essa variável aí elas precisam obedecer uma interface. Numa linguagem como PHP ou Javascript você resolve isso em tempo de execução.
Nunca cheguei a trabalhar 100% com JS (tirando alguns scripts pra automatizar), mas trabalho com Dart há uns 4 anos + alguns periodos com Kotlin e C#. Percebi que fiz o caminho inverso da maioria: hoje não consigo me sentir seguro numa linguagem não tipada. Tenho estudado python de uns meses pra cá, mas me sinto na obrigação de usar as Data Annotation, eu vou escrevendo um código e pensando "mas se se um ser humano desmiolado chegar e botar meuObjeto['atributo']? Essa porcaria vai quebrar toda", fora a legibilidade que vai pro espaço. O que é "valor", o que "valor" tem? Pode ou não ter os atributos que eu preciso. Pra mim JS ou qualquer linguagem tipamente fraca é boa só pra quem é o único programador e ele conhece BEM o código. Parabéns a comunidade JS que tem a coragem de programar sistemas complexos com ela.
É um fato que quem começa com JS não gosta da ideia de tipos. Mas, com o tempo, a pessoa acaba tendo que ceder e aprender (pelo menos) Typescript se precisar trabalhar com outras pessoas. É ao menos uma garantia de que todos vão estar na mesma página. Acredito que isso ocorra porque a galera quer desesperadamente parar de estudar para finalmente ganhar dinheiro com o que aprendeu, mas sem entender que mesmo depois de começar a ganhar uma grana, o estudo vai continuar eternamente.
Eu já tenho mais "aversão", "medo" das linguagens fracamente tipadas, pois apesar da produção ser mais rápida, a manutenção depende muito da qualidade e boa vontade dos desenvolvedores (oq não é mt bom depender), varias vezes cheguei a preferir fazer do zero. Acredito q as regras que vem com as linguagens mais fortemente tipadas, facilita na leitura e entendimento do código, faz com que os desenvolvedores pensem, pelo menos um pouco mais antes de iniciar o código, consequentemente ele acaba ficando mais organizado.
sou aluno de ciência da computação de uma federal, começaram ensinando pascal e depois C (ensinaram justamente o pascal porque ngm usa então a gente teve q aprender a levar conceitos de uma linguagem pra outra). Sempre achei estranha tipagem dinâmica, pra mim parece quando tentam seguir o "clean code" e acabam deixando tudo mais confuso pq acham que comentário é o demonio. Tipagem explícita e estática me ajuda a desenvolver mais rápido por causa dos LSPs que me ajudam a ver exatamente com o que eu to lidando, nunca que um LSP vai conseguir prever qual o tipo que uma variável vai ser em uma linha de código determinada pra poder te ajudar com qualquer coisa.
Eu comecei a aprender a programar com JS, na faculdade aprendi C e Java e honestamente tipos sempre me atrasaram mais que ajudaram, eu sempre tive uma boa noção de tipos mesmo antes de aprender essas linguagens então a cada 1k linhas de código eu tinha no máximo 1 bug envolvendo tipos, bug esse que eu resolvia em 5-10min, enquanto problemas de compatibilidade de tipos sempre me tomaram muito mais tempo e aconteciam com muito mais frequência
cara tou estudando javascript a um ano e react a uns meses, recentemente peguei pra aprender C#, cara o negocio de ter que declarar o tipo pra mim é do krl, muito controle sobre o codigo pq acontece oq vc espera que acontece, eu nao sabia bagaça nenhuma mas ja meti um for loop e iterei sobre um "array" era uma list, e é muito bom, mais complexo? sim, javascript parece facil agora? demais, mas eu vou aprender aos poucos pq tambem quero colocar angular e typescript no portifolio
Quem começou a pouco tempo e começou por JS acho melhor aprender a user tipos pelo TS depois você pode ir dar uma olhada no Java ou no Rust, mas pra você não desistir ou não se assustar começa com TS.
Sou um cara velho de TI, então, desde já, requisito as devidas escusas por algum eventual anacronismo. O que considero importante em ter me criado na tradição da tipagem forte (Pascal e C) é que isso acabou produzindo em mim um olhar sobre o código como algo definido em termos das representações dos dados tanto no aspecto abstrato (o que eu pretendo simular no computador) como físicos (o que realmente eu tenho na máquina, com as suas inerentes limitações). Com isso eu tanto me viabilizo para codificar em C como me beneficio em vários aspectos ao desenvolver um algoritmo em Python, por exemplo. Com esse olhar, me parece que tenho vantagens ao trabalhar com linguagens menos rígidas quanto a tipagem, mesmo tentando me adaptar ao estilo de programação proposto pela nova de tipagem mais liberal, vamos dizer assim. A impressão que tenho com o pessoal criado sob essas ferramentas menos rígidas quanto ao tipo é de que em algumas situações eles assumem que algumas coisas acontecem meio que por mágica. E na hora que as grandes questões de desempenho e de falhas de execução menos óbvias acontecem, esse pessoal acaba pagando um preço muito alto.
Comecei com Dart/Flutter, experiência de desenvolvimento muito boa e zero trauma com linguagem tipada. E mais, pego MUITO erro de tipo da api que uso, programada em PHP/Laravel. Minha impressão/experiência é que linguagem não tipada tende a ter mais bugs. Pronto falei hehe
Eu não sinto incômodo em tipagem de linguagem, até porque eu já comecei estudando por uma linguagem tipada. Mas sinto incômodo com a falta de especificação de tipagem que vejo em vários códigos mais amadores em Python, que é o que tenho mais contato. Agora, eu ainda sinto uma dificuldade com a estática do Java, por exemplo. Eu tô sentindo a necessidade de entender linguagens estáticas.
no começo da facul quando é ensinado c, é bem comum de se escutar que é defasado e blablabla... mas a real é que é começar estudar programação com uma linguagem tipada te permite uma """alfabetização""" melhor na computação
Eu trabalho com java e python. Nas poucas vezes que precisei mexer com JS eu fico me perguntando como é que aquele caos funciona, porque para achar o raio de um bug às vezes é um inferno. Já aconteceu de dar erro na exibição de algo (que aparentemente estava funcionando ok, afinal era uma função) e tive que retornar uns 3 níveis de chamada para descobrir que em UM lugar estava passando o tipo errado e tava meio que contaminando as coisas em cascata.
Sei que tu vai ler. Toda vez que tu fala que não vai fazer algo por inteiro me sinto traído, tu picotou toda a entrevista da tio do moço dublado e agora não leu o artigo legal pacarai inteiro, se for picotar saporra fala no final - "e se voce quiser ver o artigo completo vou deixar o link na descrição" Resumir porcamente o assunto igual o video ou simplesmente pular igual no artigo, me faz mal, pense no meu bem estar 😊❤ de resto te amo, e força ao RS
Bom dia, estou começando na faculdade de ciencia da computação, primeiro periodo, e nessa classificação, como o C# se encaixaria? pq pesquisando, vi que essa linguagem tem crescido muito seu uso, e vejo ser interessante o programador, pelo menos o junior saber pelo menos 2 linguagens, para nao saber so uma , e sempre me falam que o python e a melhor , que mai stem sido usada, e coisa e tal, e pesquisando vi sobre a C#, como ela seria encaixada nisso?
linguagem typadas salvam muitos casos bestas de teste, eu prefiro mil veces declarar certinho os typos criara as interfaces para tudo e tal, do que escrever todos os testes que derivam dos mesmos. E ainda que voce ja sabe se esta dando merda muito antes de acontecer, quase que ao vivo ao IDE te falar que voce nao pode colocar certo tipo para algo.
Tenho 1 ano de xp no mercado, por enquanto só no js/ts. Querendo aprender outra linguagem pra sair da bolha do ecossistema javascript. Na dúvida entre Python e Java. As duas linguagens são bem fortes aqui em Florianópolis.
Comecei com python, mas ficou estranho após olhar a sintaxe do java e do c#. Os cursos de python era todos a moda bangu, sem tipagem e tudo solto, no fim c# foi a melhor escolha. 🥰
aprendi c,c++ e java na faculdade depois trabalhei um bom tempo com c# até cair com javascript/python e tive a sensação de estar na idade média e voltar para barbarie até hoje acho estranho declarar uma variavel só com const/let
Tenho menos de 4 anos de XP, comecei a trabalhar com Java e qse sempre torço o nariz qdo vejo a ausência de tipagem em códigos js e olho que aceito até o any do ts, mas sinto um certo desconforto nesse estilo de codagem
Na minha experiencia, eu comecei com JS e depois Java, vou dizer assim, não curti muito java mas Rust e TS eu adorei e me divirto muito utilizando elas para brincadeiras no dia a dia, mas trabalho com TS e Java kkkkkk
De certa forma o artigo está correto pois lá está escrito 1 + "2" == 12, o que é uma expressão que resultaria em 12 == "12" e é interpretado como TRUE pelo JS
Prefiro gastar mais tempo no desenvolvimento do que ter bug em produção. Depois de ficar uma semana na sustentação de um sistema, nunca mais vai reclamar de tipagem.
Não sei como funciona outras linguagens, mas no C# da pra usar apenas "var" que declara uma variável fortemente tipada. Sei que o assunto é mais profundo do que isso, mas pra quem odeia ter que declarar um tipo, o C# ajuda bastante na hora de declaraçao pra quem ta pensando em ter uma segunda linguagem alem do Javascript kkkkk
a maioria não gosta de linguagem "tipada" porque simplesmente você tem que ficar o tempo todo indicando que tipo é, mas também da mais bugs. Posso ta falando besteira...
Caga a regra de fazer teste e ai pegar os bug em tempo de execução ^^ mas eh test de feature e os meme de unit. Mas concordo com tipagem ajuda a pegar as noobice q todos nós fazemos(uns mais q outros)
A única coisa que ODEIO COMPLETAMENTE é erro de (ou por causa de) tipagem durante a execução do código. Sério, compilador tá aqui para quê??? Pior ainda quando entro numa situação que tenho que tentar adivinhar/descobrir o tipo de uma variável. Enfim, ao meu ver, isso dificulta o desenvolvimento no médio-longo prazo.
Depois de aprender o básico de programação em python, decidi aprender C e me aprofundar em conceitos mais fundamentais da programação, tá sendo um estudo muito interessante porque você começa a entender a "Matrix" kkk
Ajude o Rio Grande do Sul, informações em lucasmontano.com/
Estamos postando os videos gravados antes da catástrofe que estamos passando no RS, no link acima tu encontra informações de como ajudar. Procure na sua região como enviar doações, pontos de coletas e etc. Ao longo do mês vamos fazer mais LIVEs com talks técnicas e muito conteúdo pra arrecadar doações.
bora 🙌
E estranhamente eu gravei um vídeo de 1 hora ensinando Java pra quem já sabe Javascript 😂 justamente pelo mesmo motivo que vc levanta no vídeo. Muita gente nunca NEM TOCOU em linguagem de tipo forte e já fala que não gosta. Mas uma critica que eu tenho pro java é que a Oracle perdeu ai uns 10 anos pra atualizar java. Essa atualização do java 21 devia ter vindo faz 10 anos
Você ainda vai postar esse vídeo? Não achei no seu canal, fiquei interessado, apesar de programar em Java / Kotlin, assistiria tranquilo esse vídeo.
Olha quem voltou kkk
Já era, pessoal vai usar Java 17 até ser obrigado a mudar, igual o 11. Meu primeiro projeto em Java 17 foi quando lançou o Java 21 😂
@@IchigoML Ele tinha postado apenas pra membros, mas agora está para o público. Aliás, o vídeo tá ótimo.
Não...esse não é o Lucas Montano...esse rapaz não tem topete, devolva o Lucas Montano do canal Lucas Montano
R.I.P Jimmy Neutron
@@VictorAug
Perdi até a vontade de assistir 😢
Força a todos do Rio Grande do Sul 💎
Colocar C++ como estática fraca e deixar Java como estática forte é complicado.
C++ trata de forma implícita a conversão de void* e operações entre tipos numéricos.
Java tudo é Object. Dá pra causar um ClassCastException facilmente. Sem contar que genérico no Java não "carrega" a informação do tipo (List instanceof List fail).
Type erasure se feito errado, no C++ é undefined behaviour e no java vem Exception.
Ainda em C++, as conversões devem ser feitas com static_cast ou dynamic_cast. No pior dos casos reinterpret_cast, que descarta qualquer tipo de check.
Agora Python como forte dinâmica é forçar a barra.. Dá pra declarar que uma variável/parâmetro é TipoX, mas nada impede de passar qualquer outra coisa. Quem reclama é o lint, mas o interpretador vai deixar passar como se não fosse nada. Só na hora de usar algum método do objeto (TipoX) é que dá exception por método não encontrado. Ou quando passa adiante para algum outro método que requer que seja TipoX (com runtime check).
Eu comecei com JavaScript e achava mt bom não ter que me preocupar com declaração de tipos kkk até me deparar com alguns erros bizarros em tempo de execução, aí resolvi migrar meus códigos JavaScript pra Typescript, foi a melhor coisa que fiz e ainda de quebra aprendi umas parada de POO, o que me ajudou quando comecei a estudar Rust e Java no ano passado. Mt obg pelo vídeo, Lucao, explicação simples e direta.
Obrigado por homenagear e apoiar o povo do RS Lucas!❤
As novas versão do PHP a tipagem já não é fraca e se você usar o "declare(strict_types=1);" passa a ser obrigatório declara o tipo
Pra mim isso foi uma das coisas mais bacanas que apareceu no PHP, hoje em dia uso em tudo, e percebi que os devs do meu time também, isso melhorou muuito a linguagem.
@@EmanoelPedroCunha sim, o pessoal fala do php como se fosse a mesma coisa da versão 5
A cada versão mais recursos são adicionados e o melhor e que mantêm a compatibilidade com a versão anterior
@@EmanoelPedroCunha eu trabalho usando laravel, se o cara entende de laravel consegue fazer sistemas muitas funcionalidades de forma bem simples e clara
Tem como me dar um exemplo de código usando isso no PHP?
@@amagami1008 o declare(strict_types=1); apenas obriga o programador a declarar os tipos das variaveis.
fica mais ou menos assim
apóio (de coração) quem não gosta de tipagem. Assim sobra vaga do lado de cá da força.
Força Rio Grande do Sul.
Lado de cá da força = empregados
@@alvesxest empregados? podia ser kkk.
@@alvesxest lado tipado da força
esse Lucas Montano gerado por I.A ficou quase perfeito, faltou só o topete!
e sobre as considerações finais do video, realmente quem mete a cara logo em javascript, tem um pouco de ranço de tipagem forte quando pega outras linguagens tipadas pra brincar... e é tudo verdade, quando pega um typescript parece que tá só perdendo tempo escrevendo código extra atoa!
mas depois que comecei lidar com C# a visão mudou e comecei estudar C++ pra enlouquecer de vez, e agora não consigo enteder como eu dava conta de desenvolver algo sem tipagem, é meio que navegar às cegas.
Excelente vídeo Lucão!
Uma das coisas que mais me fez evoluir foi ter estudado C na faculdade
Eu me vejo como um programador empreiteiro que constroi prédio, logo tipagem mais dura faz bastante sentido pra mim. Acredito que para programadores com vies mais artístico, esse estilo de tipagem seja uma bola de ferro no tornozelo.
Lembro que durante a faculdade aprendi e amava Java com paixão e mesmo depois da faculdade comecei a fazer freelance como programador Java. Dai arrumei um trabalho com Javascript, que evoluiu para Typescript e hoje deve fazer uns 4 anos que não vejo um código Java. Eu sempre adorei como era rápido e simples fazer coisas no Javascript mas com a escalada do sistema, tudo virava uma macarronada sem segurança e garantias nenhuma. Por isso, hoje uso só Typescript pela facilidade e rapidez que me faz escrever código em relação a como era com Java, porém me da muito mais segurança no que eu estou fazendo. No final, acho que uma anarquia total de tipos é loucura a longo prazo, mas entendo as pessoas odiarem serem "forçadas" a declarar um tipo, um meio termo é sempre bem vindo, porém se você está entre ter ou não tipagem, posso dizer que ter a tipagem, mesmo que estática, ajuda muito mais que não ter nenhuma.
Eu odiava programar em Java e ainda não gosto muito, principalmente por causa do professor que tive na época. No entanto, não sou um hater da linguagem, porque ela faz muitas coisas bem. É uma pena que a linguagem tenha sido adquirida pela Oracle, que é bastante mercenária, e isso meio que a deixou estagnada. A boa notícia é que surgiu o Kotlin, que está dando uma boa repaginada no Java. É como um Java, só que mais bonito.
Curiosamente, ao longo dos anos, percebo que as linguagens de programação estão ficando cada vez mais parecidas, pelo menos em termos de sintaxe.
almoçar vendo Lucas montano 😎😎😎
po, em projetos Dart/Flutter, você pode configurar como a tipagem vai ser (é só um stricter static checks na vdd) !!
é ótimo pra você deixar tudo bem fraco/dinâmico quando for fazer alguma poc ou side projects pequenos,
e ótimo pra deixar com "tipagem forte" pra projetos grandes e com múltiplos contribuidores
Vídeo perfeito como sempre, quando comecei a programar fui direto pro JS não por ser mais fácil, mas sim por conta que não conhecias outras além dele e py. Depois de uns dois anos somente usando JS comecei a sentir que minha evolução "enfraqueceu" e desanimei, depois disso comecei a abrir mais a cabeça e procurar outras linguagens e afins. Comecei a usar GO e simplesmente minha vida na programação mudou da água para o vinho é maravilhoso, então essa dica final de dar chance a linguagens fortemente tipadas é completamente válida e verdadeira.
E força ao RS, te mandei mensagem no insta agradecendo pelo apoio ao nosso estado mesmo de longe mas me sinto na obrigação de agradecer dnvo.
"Há vantagens em não usar tipos, como uma velocidade de desenvolvimento mais rápida..." - Já ouvi bastante isso de quem nunca teve que lidar com sistemas grandes e/ou dar manutenção em algum código. Imagina você ter que adivinhar o tipo do dado.
e a velocidade de desenvolvimento não muda nada, qualquer tempo que você ganha você perde no futuro tendo que fazer type checks.
Muda praticamente nada, pois a ganhanca em nao escrever um tipo se paga tendo que fazer os testes correspondentes ou no pior dos caoss tendo que resolver o bug quando aparecer. Ao longo se gasta mais tempo e dinheiro.
@@OscarAndresPabonEstrella hoje em dia já existe ferramentas que convertem um tipo de dado, como JSON, para o tipo que tu quer. Coisa de 10 segundos, talvez? Quanto a correção de type check, é basicamente o código te dizendo que ele espera um tipo de dado e tu está passando outro. Se tu leva muito tempo para corrigir as inferências de tipos, talvez tu não está refatorando teu código da melhor forma! Falo isso tanto em contexto de design, como de fluxo de dados.
@@DJKINS vou dar a mesma reposta que dei ao comentário abaixo:
Hoje em dia já existe ferramentas que convertem um tipo de dado, como JSON, para o tipo que tu quer. Quanto a correção de type check, é basicamente o código te dizendo que ele espera um tipo de dado e tu está passando outro. Se tu leva muito tempo para corrigir as inferências de tipos, talvez tu não está refatorando teu código da melhor forma! Falo isso tanto em contexto de design, como de fluxo de dados.
Exato. Por isso mesmo gosto de usar Java para projetos grandes e Lua para projetos pequenos, como scripts.
O fato de eu ver C no meu cotidiano me transformou em uma maquina sem sentimentos
Eu tenho problemas em falar que eu gosto de C, C++?
@@nathanmiguel76 Sim, também tenho esse problema
Vim do mundo Javascript(REACT), na primeira vaga de emprego minha stack(JAVA 8 e AngularJS 1.3).
Angular foi tranquilo aprender, JS é JS independente de onde estiver
No Java levei um tempo para acostumar, mas me ajudou a evoluir muito o meu codigo do JS.
Recentemente comecei a aprender Swift, fortimente tipada, tambem esta me ajudando a me desenvolver tanto em Java quando JS.
Quando um DEV fala pra aprender outra linguagem que vai ajudar, é real.
Eu comecei no pascal, fui pro C e depois Java e aprendi POO. Depois disso todas as linguagens que aprendi tive uma adaptação rápida. Passar horas estudando orientação a objetos ou programando microcontroladores com C, sem dúvidas valeu a pena e vai me servir pro resto da minha carreira, hoje sinto que consigo aprender qualquer linguagem só preciso de tempo. Excelente vídeo!
Velho, comecei no Python, porque tive que aprender na marra a programar numa Game Engine (Godot), para um projeto da faculdade em 2021- e eu era aluno de Letras kkk. A linguagem dessa Engine se baseava em Python e aí posso dizer que comecei nesse mundo de programação. Larguei esse mundo, para tocar outros projetos, até que deu a doida e quis voltar a programar agora em 2024, só que em outra linguagem: C++. E eu tô pouco a pouco percebendo isso que você fala no vídeo. Valeuzão.
Não consigo viver sem tipagem forte.
Eu vim do Javascript (até com Typescript, mas bem mal compreendido, devo ressaltar) 2 anos atrás, mas quando entrei na empresa que trabalho eu precisei aprender C#. Eu senti certa dificuldade em fazer absolutamente tudo, mas eu era obrigado. Um belo dia eu percebi que gostava de trabalhar mais com o C# do que com Javascript kkkkkkkk
Achei bem interessante o assunto do vídeo. Como entusiasta do Java (aprendi na faculdade, porém pratiquei bastante por conta própria também), e agora estudando PHP para web, é nítida a diferença entre tipagem dinâmica e tipagem forte (estática). E falando do PHP, as novas features vieram com funcionalidades bem interessantes para lidar com possíveis problemas de inferência de tipo, como, por exemplo: Union Types, Named Parameters, Property promotion.
Um ponto interessante a ser destacado a respeito desse assunto abordado é que não escrevemos código apenas para ser performático, ou para ocorrer menos bugs em relação à tipagem. Escrevemos código para resolver problemas e esse código que escrevemos hoje, potencialmente, deverá ser reescrito ou estendido amanhã, possivelmente por outras pessoas, tendo isso em mente, as linguagens de script possuem camadas de abstração que tornam seu código mais legível, consequentemente, mais fácil de manutenir e escalar, o que o torna, do ponto de vista comercial, mais produtivo. Essa escolha é sempre um trade-off.
eu tenho certeza que esse video vai ajudar muita gente
Já comecei a me acostumar em usar tipagem em tudo no PHP, as novas versões (apartir da 7.4) melhoraram muito isso.
Lucas Montano sem topete é outra pessoa hehe, mas concordo com essa ideia, se você aprendeu Javascript de prima, assim como eu, vale e muito ver uma outra linguagem. Ver outras linguagens, além de aprender uma forma diferente de desenvolver código, de tabela você aprende conceitos que aquela linguagem oferece e pode aplica-los na sua principal se possível, tal como fiz quando fui dar uma aventurada em Go e Python, que tem estruturas diferentes e formas diferentes. Além de entender mais como cada linguagem se comporta e sua função, vale muito apena
Já trabalhei em um projeto grande com JS e era um caos, muitas regressões principalmente quando havia alteraçãoem objetos e o erro só era descoberto em produção. Trabalhei também em outro projeto que o pessoal usava typescript (se gabavam por utilizar linguagem tipada) e, no fim, o pessoal tipava como any kkkkkkkkkk. Quem fala de velocidade em desenvolvimento por não utilizar linguagem tipada é falacia.
Eu não consigo entender como as pessoas acham muitooo mais fácil aprender JS do que Java.
Pq no Java você tem que deixar claro o que está fazendo e sinceramente quando você está aprendendo, essa verbosidade facilita entender o fluxo das coisas.
Eu trabalho com JS e sempre que tenho que dar apoio para os JR sinto que a maior dificuldade deles é inferir mentalmente o tipo que a variável vai ter lá naquela linha, depois de passar por N funções…
( mesmo com TS a galera se perde, pq não sabe tipar as coisas)
Utilizo Java e Python no meu trabalho, quando codo em Java, geralmente vou implementando as coisas e quando rodo o código, 99% das vezes ele faz o que eu espero, mas, quando vou codar em Python, é codando e rodando, ou verificando se o tipo que está chegando está correto com o type(), o código em Python sai bem mais rápido do que em Java, mas, no Java tenho controle total dos inputs e outputs das funções/métodos até chegar no objetivo final.
Isso me pega em JS acho que dizer exatamente o tipo em Java meio que me ajudou aprender isso em JS e outras linguagens.
A linguagem que mais domino é PHP e uso o framework Symfony. Coloco tipagem em tudo que for possível por conta da legibilidade e sempre achei uma otima pratica tipar tudo, vou dar um exemplo básico: utilizo DTO/Factory para validar um objeto e as próximas camadas(como services ou repositories) tem uma segurança maior sobre o que espera por conta da tipagem de cada atributo e a tipagem do próprio objeto. Acho mais fácil pra manipular os dados, pegar exceções e coisas do tipo. Sempre que possível eu utilizo outras linguagens como Java para estudar ou fazer um projetinho, la tem o conceito de Records que achei daora que é um tipo de classe além de que gosto da ideia de fortemente tipada.
Cadê o topete do Jimmy Neutron, Lucas? 😢
Comecei a estudar programação mesmo a cerca de um ano, iniciei por Python pelo pessoal indicar que era algo mais simples, nesse tempo cerca de 1 mês depois comecei um técnico e nele tive Java onde aprendi tipagem ai fui migrando do python para o javascript e futuramente typescript, foi depois que comecei a mexer com tipagem que senti que evolui meus códigos, pois consegue aprender alguns modelos e etc, realmente o conselho do final do vídeo é muito útil.
Iniciei minha carreira com JS, mas também trabalho com TS, eu realmente não sinto dificuldade com a tipagem (fico surpreso com algumas pessoas FORMADAS que demonstram essa dificuldade). Como mencionado pelo Lucas, saber o que esperar em uma variável é o básico. Eu sei o que vem, mas o tempo de dizer no código é o que faz a diferença, trabalhar com tipagem é muito demorado, ainda mais quando o time é reduzido e as demandas são altas.
Trabalho com Python, PHP e Rust. Gosto e das duas primeiras, mas a tipagem estatica de Rust, acho espetacular...
Por isso eu amo o Go, se buildar é porquê a tipagem tá certa hehe e todos os possíveis erros de casting são tratados no próprio código, a linguagem vai gerar warnings se não tiver algum erro sendo tratado. Além disso vejo muitos problemas em código legado python onde não há tipagem estática e vejo principalmente de devs iniciantes aqui da empresa.
O engraçado é que amigos que começaram com linguagens com tipagem Estática forte ou fraca, acham linguagens com tipagem dinâmica meio "bagunçada" principalmente se vieram de C ou Java, eu mesmo acho isso com o JS e estou estudando TS, pois achei "mais fácil" para mim. Erros que eu pegava rapidamente com ajuda do compilador e da própria IDE passavam direto por mim acho legal você que começou com uma linguagem forte e Estaticamente tipada dá uma olhada em linguagens fracamente tipadas também.
#ajudaRS
Eu comecei com JS, odiava linguagem tipada porque eu não entendia o proposito, posteriormente aprendi TS e hoje dificilmente faço algo sem TS, e desde então comecei a gostar de Tipagem, hoje gosto muito de Java e C# por serem fortemente tipadas.
Nessas horas eu me lembro do visual basic 6 com seus bugs nos tipos, e também do DELPHI 6 com seus fatal errors. Ainda bem que as linguagens evoluiram muito. Antes se podia reclamar dos tipos, hoje em dia não faz sentido nenhum reclamar disso. É muito legal programar no PHP 8 tipando tudo.
a situação está crítica, até o topete se foi
O primeiro contato que tive com linguagem foi Pascal (sem contar as brincadeira iniciais com Basic) e depois C. Mas quando comecei a usar ASP e depois PHP eu senti uma liberdade impressionante. Eu não sabia quantos elementos aquele array precisava ter... E ta tudo bem! Quando comecei a aprender C# senti novamente as correntes no meu tornozelo, mas pelo menos descobri outros tipos que me ajudavam a resolver alguns problemas. Mas ... em termos de bem estar ao escrever em alguma linguagem nada supera Ruby. Se eu pudesse sempre escolher qual linguagem escrever, sempre escolheria ruby.
Almoçando e assistindo!! Marmita e sobremesa. ❤❤❤😊😊
Comecei na área a aproximadamente 2 anos... Minha primeira linguagem foi javascript e um curso que eu fiz, tinha uma API em Java e aquilo foi um choque na minha mente, depois disso em foquei em aprender Typescript, que é fortemente tipado e permite inferência também. Mas ali minha mente abriu ...nunca mais fiz um arquivo .já
O ponto é tipagem ajuda muito tbm na escrita do código e não deixa vc errar, pra um programador iniciante como eu, ajuda muito na escrita...hj já pensou em aprender Java, que eu achava um absurdo no início....conforme crescemos evoluímos, conforme evoluímos crescemos.
Tipagem é excelente, comecei a aprender JS e depois aprendi Typescript e hoje não consigo (na verdade consigo sim, mas prefiro não) utilizar JS Vanilla.
Recentemente comecei estudar C# pra me aperfeiçoar como DEV, porém quando o professor entrou no tópico de tipagem quase caiu a casa pra mim. Ele começou a falar de byte, sbyte, ushort, uint e etcetera, e isso me fez abandonar o curso por meses. Não me entenda mal, eu estou de acordo com a necessidade da existência desses tipos aí, o que me incomodou foi ter encontrado eles na 5ª aula do curso, mal tinha instalado o Visual Studio.
Acredito que quando estamos aprendendo um novo conceito tem que ir com mais calma, aprende o que é o INT, Double, string, array, objeto (tipos mais "simples") e faz o teu primeiro projeto (to-do list), depois quando se deparar com a necessidade de utilizar uma tipagem mais complexa você começa a contar bits.
Enfim, sem mais delongas, Tipagem é legal demais, engrandece e até facilita a experiência de desenvolvimento.
Eu certamente vou seguir essa dica Lucas!
Você poderia deixar umas 3 boas opções para que eu dê uma olhada mais de perto pra então escolher uma e começar a estudar agora no início junto do Js?
Uma das dicas mais importante para programadores
Cara, também tenho 20 anos de experiência e já trabalhei com Visual Foxpro, Visual Basic, Delphi, C++, Java, PHP, Perl, Python e concordo com o Tom, as fortemente tipadas são melhores, embora eu goste muito de PHP e Python.
Só complementando, algumas linguagens como C tem promoção de tipo. Isso significa que se um tipo não atender aos requisitos de uma função ou expressão, aquele tipo é automaticamente promovido para outro tipo. É o caso de uma função que receber um int como parametro e você passa um float. Isso acontece particularmente em C porque não existe sobrecarga de função. Eu acho isso uma péssima ideia ainda mais quando se mistura com ponteiros e aritimetica de ponteiros, gera muito comportamento indefinido.
Do JSDoc para tipagem... é/pode ser tipagem igual ao TS.
E da "velocidade" de não usar tipos... isso é só se não contar as horas perdidas com debugger, metendo log em cada linha roda, ve log, mexe, roda de novo...
Já perdi um dia inteiro no JS pra achar que o erro foi um typo numa função (que dai o framework legado só me dava um erro de "deu erro" e eu "onde??" e ele: ¯\_(ツ)_/¯)
Desde então comecei a tipar com jsdoc (que tem como deixar tão explicito e chato quanto TS, mas que funciona mesmo num bagulho legado de anos atras) e minha experiencia mudou completamente.
Já tinha usado Java antes, TS, JSDoc, brinquei com Rust... tem coisa que só por ser mais verbosa acham que "diminui" a velocidade, a questão é que a velocidade é sempre constante. Diferente de algo onde vale tudo e uma hora do dia ta a100 e no resto ta tentando ver onde deu o crash.
Como sempre, conteúdo top e um insight maneiro demais! Por mais e só uma pergunta: cadê o topete cara?! Abraços e minhas orações para o RS!
Gostei muito do vídeo e trabalho com tenho 20 anos de Dev, comecei no Delphi e faz 9 anos q trabalho com Java e Javascript.
Pra mim a tipagem nunca foi problema, talvez pela minha base ter sido em linguagem fortemente topada.
Mas pra mim dizer q é muito mais lento programar em linguagem topada eu vejo como falta de argumento, pq nunca deixei de entregar uma Sprint por causa de linguagem tipada, mas sempre por problemas como ingerência ou do PO não saber o que quer e colocam a solicitação na Sprint mesmo assim e boa sorte.
Sobre o Javascript ela é muito boa pra front e como vai ser executada localmente então a falta de tipagem dela tem problema zero em questão de desempenho, mas nesse tempo de experiência que tenho uma coisa é certa, os erros relacionados a tipagem em front q usa Javascript é muito maior.
Mais ainda qdo o Dev é daqueles q testa porcamente, faz apenas o caminho feliz e acha q é obrigação apenas do QA achar os bugs.
Enfim, acho que tem linguagens no mundo o suficiente pra TD mundo trabalhar e ser feliz com ela.
Tenho 12 anos como Dev. Já mexi com muito legado pesado, código mal escrito, muita gambiarra... Imagino que normal de um caminho de Dev. Mas dentre isso tudo de longe minha pior experiência foi em um legado GIGANTE em Ruby, ter um método "Validate(user)" e não ter a certeza dê o que é esse "user" é absurdamente ruim.
Acho que a longo prazo, uma linguagem fortemente e estaticamente tipada e necessário.
Minha opinião, sempre trabalhei com Java, e adoro, principalmente pelo fato de ser obrigado a informar o tipo e como ela lida com a POO, e não vejo problemas com a verbosidade, acredito muito que explicito é melhor que implícito; quando tenho que programar em Python é uma dor
Trabalhei com C#, PHP, JavaScript e TypeScript. Nada supera a experiência de programar em C# no Visual Studio.
Eu comçei por JS, PHP, etc... mas tenho plena noção de entra a fundo em outras mais tipadas, minhas preferencias sao com Python e Kotlin, isso mais pra frente.
Atualmente estou estudando a fundo Dart para usar com Flutter.
Esse "Tipo" de conteúdo é top!
Pra quem iniciou ou tem mais experiência com linguagem fracamente tipada, sente uma certa dificuldade para usar uma fortemente tipada porque inevitavelmente aumenta o tempo de desenvolvimento e linha de código.
Se eu consigo usar a mesma variável para construir um array e depois retornar uma string concatenada, fica mais simples. Se a minha função pode retornar um array, string ou null, fica muito mais simples.
Se uma função anônima pode receber uma serie de parâmetros que podem ser injetados com diferentes tipos em runtime, eu não preciso de uma interface e eventualmente classes novas para isso, acelera o desenvolvimento.
Então tem que entender o sistema, a necessidade, a experiência da equipe, as ferramentas e frameworks, etc.
Pessoal é purista demais.
Tudo q disse aí dá pra fazer com tipagem estática forte.
Recomendo estudar uma pelo menos, eu achava isso também e demorei anos pra dar uma chance pro Typescript, hoje em dia não consigo parar de usar.
@@franciscofetapi8741 não dá. Releia o que eu escrevi. E não estou defendendo uma ou outra, apenas relatando as diferenças e dificuldade de adaptação de alguns devs.
@@ancapistaovemai616 numa linguagem fortemente tipada você pode:
1. Aceitar que a função retorne x ou y ou z, voce não eh limitado a apenas um tipo de retorno/parametro/variavel. Tem o operador OU a nível de tipos também.
2. Aceitar que a função receba um tipo que você ainda nem sabe o que vai ser e que vai ser definido na hora de chamar a função, através dos generics (acredito que toda línguagem fortemente tipada tem)
Se você ainda não trabalhou com alguma eu super recomendo, no começo vai ser uma chatice, mas com o tempo você pega o jeito e não vai querer mais voltar, te garanto!
Aprendi Typescript 3 anos depois de usar JS e até hoje não me arrependo, só uso TS.
@@franciscofetapi8741 cara você não está entendendo ou é iniciante em programação.
Você pode definir vários tipos de retorno, mas precisa definir. Não é aberto.
Em linguagem como Java você precisa inclusive explicitar uma exceção usada no método. Fica bem mais verboso.
Sobre Generics não é tão simples como você faz parecer. Não é como fazer "myFunction(Generics myVar)". Na hora de injetar essa variável aí elas precisam obedecer uma interface. Numa linguagem como PHP ou Javascript você resolve isso em tempo de execução.
Estou estudando bastante lógica. E no curso técnico estamos trabalhando com Java
Nunca cheguei a trabalhar 100% com JS (tirando alguns scripts pra automatizar), mas trabalho com Dart há uns 4 anos + alguns periodos com Kotlin e C#. Percebi que fiz o caminho inverso da maioria: hoje não consigo me sentir seguro numa linguagem não tipada.
Tenho estudado python de uns meses pra cá, mas me sinto na obrigação de usar as Data Annotation, eu vou escrevendo um código e pensando "mas se se um ser humano desmiolado chegar e botar meuObjeto['atributo']? Essa porcaria vai quebrar toda", fora a legibilidade que vai pro espaço. O que é "valor", o que "valor" tem? Pode ou não ter os atributos que eu preciso.
Pra mim JS ou qualquer linguagem tipamente fraca é boa só pra quem é o único programador e ele conhece BEM o código. Parabéns a comunidade JS que tem a coragem de programar sistemas complexos com ela.
Penso assim também
É um fato que quem começa com JS não gosta da ideia de tipos.
Mas, com o tempo, a pessoa acaba tendo que ceder e aprender (pelo menos) Typescript se precisar trabalhar com outras pessoas.
É ao menos uma garantia de que todos vão estar na mesma página.
Acredito que isso ocorra porque a galera quer desesperadamente parar de estudar para finalmente ganhar dinheiro com o que aprendeu, mas sem entender que mesmo depois de começar a ganhar uma grana, o estudo vai continuar eternamente.
Eu já tenho mais "aversão", "medo" das linguagens fracamente tipadas, pois apesar da produção ser mais rápida, a manutenção depende muito da qualidade e boa vontade dos desenvolvedores (oq não é mt bom depender), varias vezes cheguei a preferir fazer do zero. Acredito q as regras que vem com as linguagens mais fortemente tipadas, facilita na leitura e entendimento do código, faz com que os desenvolvedores pensem, pelo menos um pouco mais antes de iniciar o código, consequentemente ele acaba ficando mais organizado.
13:26 Para mim isso é tipo o médico reclamar que precisar preparar a mesa de cirurgia antes kkkk
Eu iniciei com JavaScript e eu vou, sim, aprender outra linguagem com uma tipagem diferente para aprender mais sobre o assunto.
Trabalho com Python há décadas e não vejo esses problemas que quem gosta de tipagem forte aponta.
Trabalhei com Java e Python, além de outras.
Trabalho simultâneamente com Javascript, Php, Java, C# e até mesmo o nichado Delphi, e proclamo com convicção que a tipagem é essencial.
sou aluno de ciência da computação de uma federal, começaram ensinando pascal e depois C (ensinaram justamente o pascal porque ngm usa então a gente teve q aprender a levar conceitos de uma linguagem pra outra). Sempre achei estranha tipagem dinâmica, pra mim parece quando tentam seguir o "clean code" e acabam deixando tudo mais confuso pq acham que comentário é o demonio. Tipagem explícita e estática me ajuda a desenvolver mais rápido por causa dos LSPs que me ajudam a ver exatamente com o que eu to lidando, nunca que um LSP vai conseguir prever qual o tipo que uma variável vai ser em uma linha de código determinada pra poder te ajudar com qualquer coisa.
Eu comecei a aprender a programar com JS, na faculdade aprendi C e Java e honestamente tipos sempre me atrasaram mais que ajudaram, eu sempre tive uma boa noção de tipos mesmo antes de aprender essas linguagens então a cada 1k linhas de código eu tinha no máximo 1 bug envolvendo tipos, bug esse que eu resolvia em 5-10min, enquanto problemas de compatibilidade de tipos sempre me tomaram muito mais tempo e aconteciam com muito mais frequência
Pesnso que quem não gosta de tipo é por que não entende ainda, por isso a grande maioria que relcama são os iniciantes.
cara tou estudando javascript a um ano e react a uns meses, recentemente peguei pra aprender C#, cara o negocio de ter que declarar o tipo pra mim é do krl, muito controle sobre o codigo pq acontece oq vc espera que acontece, eu nao sabia bagaça nenhuma mas ja meti um for loop e iterei sobre um "array" era uma list, e é muito bom, mais complexo? sim, javascript parece facil agora? demais, mas eu vou aprender aos poucos pq tambem quero colocar angular e typescript no portifolio
Quem começou a pouco tempo e começou por JS acho melhor aprender a user tipos pelo TS depois você pode ir dar uma olhada no Java ou no Rust, mas pra você não desistir ou não se assustar começa com TS.
Sou um cara velho de TI, então, desde já, requisito as devidas escusas por algum eventual anacronismo. O que considero importante em ter me criado na tradição da tipagem forte (Pascal e C) é que isso acabou produzindo em mim um olhar sobre o código como algo definido em termos das representações dos dados tanto no aspecto abstrato (o que eu pretendo simular no computador) como físicos (o que realmente eu tenho na máquina, com as suas inerentes limitações). Com isso eu tanto me viabilizo para codificar em C como me beneficio em vários aspectos ao desenvolver um algoritmo em Python, por exemplo. Com esse olhar, me parece que tenho vantagens ao trabalhar com linguagens menos rígidas quanto a tipagem, mesmo tentando me adaptar ao estilo de programação proposto pela nova de tipagem mais liberal, vamos dizer assim. A impressão que tenho com o pessoal criado sob essas ferramentas menos rígidas quanto ao tipo é de que em algumas situações eles assumem que algumas coisas acontecem meio que por mágica. E na hora que as grandes questões de desempenho e de falhas de execução menos óbvias acontecem, esse pessoal acaba pagando um preço muito alto.
Comecei com Dart/Flutter, experiência de desenvolvimento muito boa e zero trauma com linguagem tipada. E mais, pego MUITO erro de tipo da api que uso, programada em PHP/Laravel. Minha impressão/experiência é que linguagem não tipada tende a ter mais bugs. Pronto falei hehe
Meu caso é justamente ao contrario, sei C e C++ fui aprender JS e achei uma anarquia total
Eu não sinto incômodo em tipagem de linguagem, até porque eu já comecei estudando por uma linguagem tipada. Mas sinto incômodo com a falta de especificação de tipagem que vejo em vários códigos mais amadores em Python, que é o que tenho mais contato.
Agora, eu ainda sinto uma dificuldade com a estática do Java, por exemplo. Eu tô sentindo a necessidade de entender linguagens estáticas.
no começo da facul quando é ensinado c, é bem comum de se escutar que é defasado e blablabla... mas a real é que é começar estudar programação com uma linguagem tipada te permite uma """alfabetização""" melhor na computação
O vídeo acima possui conteúdo delicado. Pessoas sensíveis não devem assistí-lo.
Em resumo, não importa o tipo, é só tu saber oque está fazendo 😬
eu com 3 anos de experiência em programação, nunca liberaria uma linguagem não tipada pra um time, gera muito problema a longo prazo.
Eu trabalho com java e python. Nas poucas vezes que precisei mexer com JS eu fico me perguntando como é que aquele caos funciona, porque para achar o raio de um bug às vezes é um inferno.
Já aconteceu de dar erro na exibição de algo (que aparentemente estava funcionando ok, afinal era uma função) e tive que retornar uns 3 níveis de chamada para descobrir que em UM lugar estava passando o tipo errado e tava meio que contaminando as coisas em cascata.
Concordo 100%. O LSP é a maior invenção do século e só funciona com tipagem estática.
Sei que tu vai ler.
Toda vez que tu fala que não vai fazer algo por inteiro me sinto traído, tu picotou toda a entrevista da tio do moço dublado e agora não leu o artigo legal pacarai inteiro, se for picotar saporra fala no final
- "e se voce quiser ver o artigo completo vou deixar o link na descrição"
Resumir porcamente o assunto igual o video ou simplesmente pular igual no artigo, me faz mal, pense no meu bem estar 😊❤ de resto te amo, e força ao RS
Bom dia, estou começando na faculdade de ciencia da computação, primeiro periodo, e nessa classificação, como o C# se encaixaria? pq pesquisando, vi que essa linguagem tem crescido muito seu uso, e vejo ser interessante o programador, pelo menos o junior saber pelo menos 2 linguagens, para nao saber so uma , e sempre me falam que o python e a melhor , que mai stem sido usada, e coisa e tal, e pesquisando vi sobre a C#, como ela seria encaixada nisso?
linguagem typadas salvam muitos casos bestas de teste, eu prefiro mil veces declarar certinho os typos criara as interfaces para tudo e tal, do que escrever todos os testes que derivam dos mesmos. E ainda que voce ja sabe se esta dando merda muito antes de acontecer, quase que ao vivo ao IDE te falar que voce nao pode colocar certo tipo para algo.
"automagicamente" kkkkkkkkkkkkk
Tenho 1 ano de xp no mercado, por enquanto só no js/ts.
Querendo aprender outra linguagem pra sair da bolha do ecossistema javascript.
Na dúvida entre Python e Java. As duas linguagens são bem fortes aqui em Florianópolis.
Comecei com python, mas ficou estranho após olhar a sintaxe do java e do c#. Os cursos de python era todos a moda bangu, sem tipagem e tudo solto, no fim c# foi a melhor escolha. 🥰
Boua, sou a favor de mais vídeos assim!
aprendi c,c++ e java na faculdade
depois trabalhei um bom tempo com c# até cair com javascript/python e tive a sensação de estar na idade média e voltar para barbarie
até hoje acho estranho declarar uma variavel só com const/let
Tenho menos de 4 anos de XP, comecei a trabalhar com Java e qse sempre torço o nariz qdo vejo a ausência de tipagem em códigos js e olho que aceito até o any do ts, mas sinto um certo desconforto nesse estilo de codagem
Na minha experiencia, eu comecei com JS e depois Java, vou dizer assim, não curti muito java mas Rust e TS eu adorei e me divirto muito utilizando elas para brincadeiras no dia a dia, mas trabalho com TS e Java kkkkkk
só pra corrigir uma parte do artigo.
1 + "2" é 12
é "12"
o JS identa pra forma de string
De certa forma o artigo está correto pois lá está escrito 1 + "2" == 12, o que é uma expressão que resultaria em 12 == "12" e é interpretado como TRUE pelo JS
Adoro linguagens fortemente tipadas hihi.
Prefiro gastar mais tempo no desenvolvimento do que ter bug em produção.
Depois de ficar uma semana na sustentação de um sistema, nunca mais vai reclamar de tipagem.
Não sei como funciona outras linguagens, mas no C# da pra usar apenas "var" que declara uma variável fortemente tipada.
Sei que o assunto é mais profundo do que isso, mas pra quem odeia ter que declarar um tipo, o C# ajuda bastante na hora de declaraçao pra quem ta pensando em ter uma segunda linguagem alem do Javascript kkkkk
a maioria não gosta de linguagem "tipada" porque simplesmente você tem que ficar o tempo todo indicando que tipo é, mas também da mais bugs. Posso ta falando besteira...
falou tudoo, concordo true
Caga a regra de fazer teste e ai pegar os bug em tempo de execução ^^ mas eh test de feature e os meme de unit. Mas concordo com tipagem ajuda a pegar as noobice q todos nós fazemos(uns mais q outros)
Qual nome desse programa onde você desenha essas explicações todas? Curti muito, tô curioso
A única coisa que ODEIO COMPLETAMENTE é erro de (ou por causa de) tipagem durante a execução do código. Sério, compilador tá aqui para quê??? Pior ainda quando entro numa situação que tenho que tentar adivinhar/descobrir o tipo de uma variável.
Enfim, ao meu ver, isso dificulta o desenvolvimento no médio-longo prazo.
Depois de aprender o básico de programação em python, decidi aprender C e me aprofundar em conceitos mais fundamentais da programação, tá sendo um estudo muito interessante porque você começa a entender a "Matrix" kkk
A TRUE é que dev não gosta de tipagem porque isso te obriga a pensar antes de codar, ao invés de sair codando igual um macaco.