Why Kotlin Is The Best Language (to use with htmx)

Поділитися
Вставка
  • Опубліковано 18 лют 2024
  • Recorded live on twitch, GET IN
    / theprimeagen
    Become a backend engineer. Its my favorite site
    boot.dev/?promo=PRIMEYT
    This is also the best way to support me is to support yourself becoming a better backend engineer.
    MY MAIN YT CHANNEL: Has well edited engineering videos
    / theprimeagen
    Discord
    / discord
    Have something for me to read or react to?: / theprimeagenreact
    Kinesis Advantage 360: bit.ly/Prime-Kinesis
    Hey I am sponsored by Turso, an edge database. I think they are pretty neet. Give them a try for free and if you want you can get a decent amount off (the free tier is the best (better than planetscale or any other))
    turso.tech/deeznuts
  • Наука та технологія

КОМЕНТАРІ • 560

  • @tom-delalande
    @tom-delalande 3 місяці тому +1100

    hey thats me! I'm a huge fan, thank you so much for posting this

    • @Z4KIUS
      @Z4KIUS 3 місяці тому +12

      you definitely want to put proper hrefs in navigation in case someone middle or ctrl or whatever clicks these links

    • @Septumsempra8818
      @Septumsempra8818 3 місяці тому +17

      Use a compressor on your vocals and maybe a denoiser. If you use Logic or any DAW it'll do this for you in 2clicks.
      P.s. the GoLang Goons is coming for you

    • @vikingthedude
      @vikingthedude 3 місяці тому +10

      So is Levi your evil twin or somethin?

    • @chigozie123
      @chigozie123 3 місяці тому +1

      ​@vikingthedude bro went incognito mode as soon as he got the spotlight. Haha

    • @KuroKazeZX
      @KuroKazeZX 3 місяці тому +5

      as they often say, tom's a genius--
      tbh tho, im happy you got prime to see the joys of kotlin. but once he finds out about the error and throwing situation in kotlin, that you can pretty much ignore errors like js, he might be meh about it

  • @Inuyasha463
    @Inuyasha463 3 місяці тому +57

    Kotlin is a fantastic language. We switched to it for backend development 4 years ago, and haven't looked back since. I'd love to see Prime explore it a bit more and see what he thinks.

    • @egor.okhterov
      @egor.okhterov 3 місяці тому +9

      Kotlin > Java

    • @BosonCollider
      @BosonCollider 3 місяці тому +8

      Kotlin is really nice, the main downside imho is having to deal with jvm build systems. After having used go and rust I just do not enjoy the prospect of dealing with Maven and the like (though for a lot of things I am stuck with Python at work which is probably quite a lot worse).
      But, honestly, Kotlin has had the nicest stackless coroutine experience for some time now. It adopted structured concurrency at the language level and did it really well. So I can see it working well as a backend language. Coroutinescope blocks just look so absolutely amazing even looking at it from go & rust

    • @egor.okhterov
      @egor.okhterov 3 місяці тому +7

      @@BosonCollider what Maven? Did you want to say Gradle?

    • @monad_tcp
      @monad_tcp 11 днів тому

      @@BosonCollider That's why you use Scala Build Tools instead

  • @ProNoob109
    @ProNoob109 3 місяці тому +156

    kotlin mentioned let's gooooooo

  • @kyay10
    @kyay10 3 місяці тому +198

    There's no need to write this on your own, but you absolutely can. This is a first-party library from kotlinx-html, but you can easily define custom elements with whatever methods you want and it all works out nicely

    • @tom-delalande
      @tom-delalande 3 місяці тому +57

      Yea it frustrates me that I didn't make this point clear. It's all included in the library, but you can also build on top of it very easily

    • @kyay10
      @kyay10 3 місяці тому +9

      @@tom-delalande great video btw man! Watching the second one rn. This is inspiring me to start making content because Kotlin really is slept on

    • @007arek
      @007arek 3 місяці тому

      @@kyay10 kotlinx-html is slow I think htmlFlow is a better alternative, but not native.

    • @wolfeygamedev1688
      @wolfeygamedev1688 3 місяці тому

      @@Microphunktv-jb3kj React andy

    • @giuliopimenoff
      @giuliopimenoff 3 місяці тому +4

      dudeeee I've always wanted prime to look at kotlin, this feels so good haha I remember you commenting about kotlin on so many vids xD

  • @yektadev
    @yektadev 3 місяці тому +80

    Finally... A Kotlin video done by Prime.

    • @dfjab
      @dfjab 3 місяці тому

      "fun" invalidates kotlin as a language. Idk what retard came up with that syntax, but it makes it unusable to me personally. I know its autistic as fuck but what the hell. Given that it does nothing better than swift at all, I see no reason for it to be a thing.

    • @dfjab
      @dfjab 2 місяці тому +1

      @yektadev I absolutely refuse to use the language, simply coz it uses "fun", like *I know this is not logical but holy fuck does it piss me the fk off*. FN AND FUNC ARE AVAILABLE WHAT THE FFFFFFFFFFFFFFFF

    • @yektadev
      @yektadev 2 місяці тому +2

      @@dfjab But, isn't that fun? 😃

    • @maximilianosorich3429
      @maximilianosorich3429 2 місяці тому +1

      @@dfjab go to the psychologist

  • @ocean3323
    @ocean3323 3 місяці тому +28

    "He probably uses vscode"
    *Proceeds to open IntelliJ with IdeaVim*

    • @egor.okhterov
      @egor.okhterov 3 місяці тому +8

      Kotlin is made by Jetbrains, so it makes sense to use their IDE :)

    • @pinkorcyanbutlong5651
      @pinkorcyanbutlong5651 3 місяці тому

      @@egor.okhterov yup, because they refuse to make an LSP to let anyone use anything else

    • @adanibo
      @adanibo Місяць тому

      @@egor.okhterov I have a jetbrains license, their IDEs are rly insane, lately they focused on building a suite with the toolbox, the experience is rly getting worth the price. The only argument to not use it is that it isn't free.

  • @greenspand
    @greenspand 3 місяці тому +45

    Finally, Prime looking into Kotlin. There is also the Kotlin Multiplatform and LLVM compiler.

    • @justinsmith3981
      @justinsmith3981 3 місяці тому +2

      Compose Multiplatform and Amber too

    • @CircuitCoreAI
      @CircuitCoreAI 3 місяці тому

      ​@@justinsmith3981 please what's amber? Is it a framework?

  • @fuzzy-02
    @fuzzy-02 3 місяці тому +123

    Learning Kotlin and Jetpack Compose after being taught Java and XML in Uni gor movile dev was like entering a cooled Mall in an arid desert

    • @justinsmith3981
      @justinsmith3981 3 місяці тому +1

      What's SwiftUI then? A hotel on the lunar surface?

    • @HoussamElbadissi
      @HoussamElbadissi 3 місяці тому

      @@justinsmith3981 xD
      Both are really awesome!

    • @samuraijosh1595
      @samuraijosh1595 3 місяці тому

      Does kotlin support functional style

    • @y00t00b3r
      @y00t00b3r 3 місяці тому +3

      gor movile dev!
      gor movile dev!
      gor movile dev!

    • @ScienceAfterDark
      @ScienceAfterDark 3 місяці тому +2

      Meanwhile, old school Java is like entering a fleabag motel in Beverly Hills.

  • @MingyiZhang
    @MingyiZhang 3 місяці тому +20

    I've been working with Kotlin for backend development for two years, and I've made a DSL for our work area. To avoid making tools just to make other things, the best approach is to do it iteratively and incrementally. Start with a basic version that has only what's really needed, and then add more features step by step when they're needed.

    • @monad_tcp
      @monad_tcp 11 днів тому

      What most DSL systems miss is the aspect of being able to debug. The way you can do that and actually use the same tools that you use for Kotlin is unique to Kotlin, it is really neat.

  • @ethannr1
    @ethannr1 3 місяці тому +9

    Kotlin is massively underated

  • @lasoloz6972
    @lasoloz6972 3 місяці тому +37

    A thing that wasn't explicitly mentioned, but I think it is kinda cool (and a very substantial part of Kotlin DSLs) is that lambdas can have the type of extension methods.

    • @corlaez
      @corlaez 3 місяці тому +1

      that feature is called lambdas with receivers

  • @kyay10
    @kyay10 3 місяці тому +66

    OMG NO WAYY primeagen is finally getting Kotlin-pilled i can't believe this! Please man get deeper down this rabbit hole, you won't regret it. I'm a very active member (and moderator) of the Kotlin Slack and would be more than happy to help you with anything on your Kotlin journey

    • @FourOf92000
      @FourOf92000 3 місяці тому +11

      dare I say you might be biased

    • @kyay10
      @kyay10 3 місяці тому +13

      @@FourOf92000 I'm very biased, of course, but I'm willing to show why I think this language is nice.

    • @azmo_
      @azmo_ 3 місяці тому +2

      @@FourOf92000 tf, sherlock holmes?

    • @just4fun607
      @just4fun607 3 місяці тому

      he finally kotlin deez nuts

    • @erickmoya1401
      @erickmoya1401 3 місяці тому +5

      I mean. This man is right about Kotlin. Is clearly a language that has been done for developers. More so than go.
      Kotlin makes people happy.

  • @lengors7327
    @lengors7327 3 місяці тому +56

    Also, as someone who was forced into learning kotlin (not for this use case tho), at first I wasn't very enthusiastic about it. But the more you learn the language features and the nice to haves it has, you just end up falling in love imo. The abstraction addiction is a real problem but at the same time it just starts to feel like you are making art 😅

    • @ceigey-au
      @ceigey-au 3 місяці тому +3

      Even at risk of abstraction hell it also just gives you everything you need too. Like optional properties out of order + when expressions + sealed classes + overloading + a decent way to negate the is operator.
      Then I go back to TypeScript and I just want to cry. But everything else at work uses TypeScript so at least it’s consistent.
      But TypeScript makes abstraction hell worse. The type system is too damn powerful for its own good (seriously guys, nominal types and macros with static annotations would help a lot and remove off a lot of anti patterns!) and JS just lacks some basic QoL requirements.
      I’m writing TypeScript like it’s the early days intentionally to avoid the temptation of some sort of property mapping madness.

    • @IvanKravarscan
      @IvanKravarscan 3 місяці тому +2

      @@ceigey-au So true! If only Kotlin could magic away type erasure. But to add to your Typescript situation, I go back and forth between Kotlin and Java and it's such a pain. Oh right I have to write ; again, string interpolarion? No? Urgh, what's less of a hassle StringBuilder or plus operator on a string? Why is there no "map" on a Collection? Oh right, stream() first. Can I do "firstOrNull" with a condition? No, "filter" then "first", fine, I hope you like your the red tape.

    • @ceigey-au
      @ceigey-au 3 місяці тому

      @@IvanKravarscan yes haha, Java has a lot of sharp pieces that Kotlin wraps up in a common sense way…

    • @elheffe2597
      @elheffe2597 3 місяці тому

      My problem with Kotlin is the hold that JetBrains has on it. There's z e r o IDE support for it outside of Intellij, and that's by design - which is frustrating.

    • @igor710
      @igor710 3 місяці тому +2

      I’m nostalgic of my time with C#, so please correct me if I’m wrong, but it feels so much like a better C#.

  • @sfulibarri
    @sfulibarri 3 місяці тому +9

    I do server side typrscript work at my day job but get to spend a lot of time coordinating with ios and android devs supporting the company's mobile apps. Both swift and kotlin seem like really solid languages and I always leave those meetings feeling jealous. Given the chance to rewrite the backend from ts to kotlin I think I'd take it if go wasn't also an option for some reason.

  • @Mavzu132
    @Mavzu132 3 місяці тому +63

    That honestly looked very good and clean. Im sold.

    • @corlaez
      @corlaez 3 місяці тому

      can recommend. I do prefer Javalin than Ktor but the point stands: HTML DSL + htmx is really nice.

    • @viniciusataidedealbuquerqu2837
      @viniciusataidedealbuquerqu2837 3 місяці тому

      elm/html looks better

    • @egor.okhterov
      @egor.okhterov 3 місяці тому

      Kotlin is a very clean language.
      I've programed professionally in bash, perl, python, js/ts, java, c#, c++, erlang, golang.
      Kotlin is just the most pleasant language to write programs especially in Jetbrains IDE.

    • @PbPomper
      @PbPomper 3 місяці тому

      I don't like my language being dependant on a specific IDE.@@egor.okhterov

  • @lynx0976
    @lynx0976 3 місяці тому +4

    I think Compose Multiplatform can already do all this. It is a Kotlin UI framework. Also breaking things up into components reduces nesting.

  • @lengors7327
    @lengors7327 3 місяці тому +12

    The issue with }}}} is def a valid point but it's also true for an any tag you may use in html repeatdly (i.e. ), and is also why your IDE should be set up with visual indicators :D

    • @egor.okhterov
      @egor.okhterov 3 місяці тому +2

      Jetbrains IDE makes this a non issue. The only way to experience problem with it is by reading the code in notepad or 'git diff .'

    • @AndrewBrownK
      @AndrewBrownK 3 місяці тому +1

      I seriously don't get this complaint, like are you asking for python-like whitespace sensitivity? It's an IDE integrated scope block, it's fantastic, you wouldn't want anything else

  • @MrKKPA
    @MrKKPA 3 місяці тому +20

    Kotlin is a great language!

  • @lunarlake1
    @lunarlake1 3 місяці тому +85

    Kotlin makes programming fun

    • @paprikar
      @paprikar 3 місяці тому +11

      especially *private fun* part of it

    • @rzvxa
      @rzvxa 3 місяці тому +9

      Kotlin's design is so good when it comes to creating domain-specific solutions, It does some controversial things that make a real difference. For example infix functions and how you can pass the last closure argument outside of practices.

    • @brandongregori995
      @brandongregori995 3 місяці тому +1

      Programming is only fun when you use Kotlin?

    • @adanibo
      @adanibo Місяць тому +1

      @@rzvxa Mixing nullables and scope function is so satisfying

  • @DomskiPlays
    @DomskiPlays 3 місяці тому +1

    Awesome video, hope you continue Levi!

  • @user-il6nr1ys5s
    @user-il6nr1ys5s 3 місяці тому

    Great vid. Had a little bugger about with this in go and is really easy to get something useful working.

  • @Pictor13
    @Pictor13 3 місяці тому +3

    His video was good, but also your additions were spot on and insightful, one of your wisest :)

  • @Gennys
    @Gennys 3 місяці тому +9

    That Pam person is worried about nesting and talking about HTML at the same time...

  • @sasonbraha4599
    @sasonbraha4599 3 місяці тому +6

    Kotlin is awesome. I worked with it for 3 years, amazing language.

  • @Gennys
    @Gennys 3 місяці тому +7

    I did not know that a trailing lambda argument could be broken out as to look like a little function instead. That's actually really nice looking. It's very cool syntactic sugar actually.
    Honestly any language with lambdas should probably implement this syntactic sugar.

    • @isodoubIet
      @isodoubIet 3 місяці тому

      Great obfuscation technique tbh

    • @IronLotus15
      @IronLotus15 3 місяці тому

      Julia does something similar, but I think the `do` syntax applies to if the lambda is the first argument, not the last.

  • @elagrion
    @elagrion 3 місяці тому +18

    This got me inspired to try HTMX with Swift and result builders.

    • @pad8941
      @pad8941 3 місяці тому

      That should be fun

  • @uzbekistanplaystaion4BIOScrek
    @uzbekistanplaystaion4BIOScrek 3 місяці тому +85

    finally, java 2

    • @BlazingMagpie
      @BlazingMagpie 3 місяці тому +20

      Watch out, you'll trigger some poor bank programmer's PTSD with words like these

    • @PRIMARYATIAS
      @PRIMARYATIAS 3 місяці тому +5

      @@BlazingMagpieJava programmers are 2nd generation Cobol programmers and in not so long will turn into dinosaurs just as their Cobol ancestors.

    • @chpsilva
      @chpsilva 3 місяці тому +10

      ​@@PRIMARYATIAS we Javasaurs will keep roaming over Earth long after you're all gone.

    • @RegisBodnar
      @RegisBodnar 3 місяці тому

      Having used a fair bit of Kotlin, this is absolutely true!

    • @vinterskugge907
      @vinterskugge907 3 місяці тому +4

      Having used Java 21 on a daily basis for several months, I don't see the big draw for Kotlin nowadays.
      I expect to see a future where all Kotlin codebases are considered legacy, and code hipsters will argue over which newly hyped language they should be converted into.

  • @maxwebstudio
    @maxwebstudio 3 місяці тому +18

    15:08 OMG as a front end developer I must say this is so backend-style HTML. No semantics, 1000 nested divs. 😛

    • @ky3ow
      @ky3ow 3 місяці тому +3

      to be fair looking at css classes its just layout wrappers, toplevel container is nav, seems good enough :)

    • @gileee
      @gileee 3 місяці тому +2

      You'd have the same thing if you didn't split your code into 300 component files. Which he could have done here

    • @corlaez
      @corlaez 3 місяці тому

      yeah but you can be semantic with it.

    • @ceigey-au
      @ceigey-au 3 місяці тому

      PicoCSS is a good middle ground if you want something mildly good looking without fighting with things too much, and is much more semantic than Tailwind.
      Other Tailwind + DaisyUI isn’t bad either for sticking to semantic HTML, plus some Alpine to fill in the gaps.

    • @georgehelyar
      @georgehelyar 3 місяці тому +3

      The front end developers I know don't know what semantic means.
      Just look at bootstrap or tailwind or whatever, it's just inline styles in more steps.
      I've had long arguments with front end devs who want to put "automation ids" in data attributes in their html just for selenium to be able to find things, because their html is meaningless soup.

  • @mstarOnYT
    @mstarOnYT 3 місяці тому +7

    I think language based abstraction for building html or some ui is really cool. Except for when you want the user to be able to provide custom templates to use

    • @corlaez
      @corlaez 3 місяці тому

      you can just handle those with another tool.

  • @Exilum
    @Exilum 3 місяці тому +3

    I expected surprise, but I didn't expect to be that impressed.

  • @fracta7
    @fracta7 3 місяці тому +4

    More about Kotlin please, this language is awesome

  • @Yous0147
    @Yous0147 3 місяці тому +1

    This is awesome. Is there a startup repo or something you can clone to start with?

  • @molasaheb6082
    @molasaheb6082 3 місяці тому +4

    Kotlin is the best for anything to do with web dev (backend or frontend) 😍

  • @nikushaa9
    @nikushaa9 3 місяці тому +14

    kotlin my beloved

  • @_Khrix
    @_Khrix 3 місяці тому +3

    I think kotlin is one of the most well designed programing language on present days

  • @metaphysicalconifercone182
    @metaphysicalconifercone182 3 місяці тому +1

    I hope you can try it, it's very nice to code in honestly.

  • @_Khrix
    @_Khrix 3 місяці тому +6

    Kotlin mention let's go

  • @tk1576
    @tk1576 3 місяці тому +5

    kotlin is freaking goated, such a great language without all the java bloat

  • @cah8884
    @cah8884 3 місяці тому +5

    Kotlin mentioned let’s go

  • @PixeLabor
    @PixeLabor 3 місяці тому +3

    link in description is missing

  • @0xmg
    @0xmg 3 місяці тому +4

    Finally kt getting recognition

  • @vectoralphaAI
    @vectoralphaAI 3 місяці тому +1

    I never heard of HTMX before until a month and a half ago. I tried it and i really, really liked it. For me it works great with Python in Django. I don't know, i just really enjoy not needing to write any JavaScript code.

  • @fabioluizalvaresosti7115
    @fabioluizalvaresosti7115 2 місяці тому +5

    npm is free because you pay with your soul

  • @ForCeGR
    @ForCeGR 3 місяці тому +2

    Finally some Kotlin! Pretty curious what would he think about Jetpack Compose

  • @VE0003
    @VE0003 3 місяці тому +3

    I love that you let him cook despite being roasted by chat

  • @TheCatmorte
    @TheCatmorte 3 місяці тому +1

    +1 to html - few problem:
    1) sometimes u may just want to try something before coding it with kotlin/recompiling/redeploying (how angry u will be after 10 tests with all this circle around) -> soon you'll want hot reload and html2code converter
    1.1) there might be a huge plain html template that do nothing, but u still will have to convert it to this code struct
    1.1.1) if you say - then just cook it differently/save to file and send as raw file -> then u already have 2 options of doing things
    2) performance, mem?
    3) codestyle/convention - since it's a code nobody will stop u from doing hard things inside template and soon it can become a huge spagetti php/flutter like
    4) html is not that hard but kinda native "language", while all this macrosing works in terms of modern langs but its kinda overcomplication for that purp.
    5) imagine tomorrow's manager will come to u with a great idea to use some other language for serving html

    • @Pictor13
      @Pictor13 3 місяці тому +1

      Fair points, but those simply are all the usual advantages and disadvantages of an additional level of abstraction.
      The Primagen point of "needing to build a thing to do the actual thing".
      Of course kotlin isn't part of web standards so that's an additional layer of complexity, to the benefit of getting a good DSL. So yes, wouldn't make sense to switch to kotlin only for that; but on the other side it's great because gives you an oo-interface to HTML, like DOM does, but without the need to know HTML inside out.
      I believe most critics to the video forgot the very premises of the video itself: that the guys sees himself more as a backend developer and so a DSL works best for him.
      Same reason why he likes HTMX.
      Apart for that, I totally agree about the hot-reload point 👍

  • @mikethemonsta15
    @mikethemonsta15 3 місяці тому +1

    I suggested to Prime to do a kotlin video 6 months ago in the discord server... He said "absolutely not". But I'm glad he did!!!!

  • @2mbst1
    @2mbst1 3 місяці тому +1

    Swift calls them trailing closures and they’re amazing.

  • @ortani
    @ortani 3 місяці тому +1

    Kotlin was for sure the most elegant/clean language that I meet. It works for backend, android, web etc. I do not use it in my day-to-day life for enviroment reasons, like jvm and all kind of enterprise stuff that comes with it. Maybe a will try some kotlin native to see what happens.

  • @beetrootpaul
    @beetrootpaul 3 місяці тому +6

    16:08 several years ago I was using Kotlin (it was my Conference Driven Development moment :D ) and ended up overabstracting and over"simplifying" things in a project, just because I could and was amazed by all the Kotlin's nice features (and, that's the worst, I was in that project alone for some time, so there was noone to stop me). Today… I think I still would like Kotlin, but due to my nature I would have to put an extra effort to NOT use too many lang features :D

    • @kyay10
      @kyay10 3 місяці тому +3

      That's very fair. You can absolutely write incomprehensible garbage with Kotlin, but I think reaching a level of discipline where you use the features aptly is possible.

  • @shadowxtremo
    @shadowxtremo 3 місяці тому +2

    This is what using Hiccup with Clojure showed me, and because of that React never grew up on me. Knowing that there is a better way makes you wonder how React went that widespread.

  • @papyrus_13
    @papyrus_13 3 місяці тому

    I have been waiting for this one

  • @HDConcussionz
    @HDConcussionz 3 місяці тому +4

    Prime should look at Jetpack Compose

  • @noredine
    @noredine 3 місяці тому

    Each time I add a dependency I feel like i'm adding a point of failure. And sometimes I also feel like i'm reinventing the wheel

  • @Practicality01
    @Practicality01 3 місяці тому

    Might want to figure out how to compress the audio on other streams so you can keep it near 100% without peaking. (Audio compression in terms of compressing the soundwave not compressing the data)

  • @marcosdly
    @marcosdly 3 місяці тому

    Tim cooked that joke so much that I'm about to get burned out. TheJokeagen better take another rare one out of the oven before this turns mid-ium. Keep the commentary hot and fresh.

  • @Djolewatchtastife
    @Djolewatchtastife 3 місяці тому +1

    This is like next level Spring MVC

  • @celsopatiri2846
    @celsopatiri2846 2 місяці тому

    Would it create a closure for every single html element tho? If you have 100 elements that will be 100 functions for the garbage collector at server side, compared to 1 if using regular html templating

  • @BrianTakita
    @BrianTakita 3 місяці тому

    I like the builder pattern in the host language. Better than a language extension like JSX because more tools & patterns are available.

  • @bcpeinhardt
    @bcpeinhardt 3 місяці тому

    TLDR on the function based html builders (super common in functional languages): they’re super nice because they’re super testable and you get your languages tooling, but there’s a performance trade off because you have to concatenate all these little strings as opposed joining templates only on dynamic content.

  • @antehll
    @antehll 3 місяці тому +2

    i'm gonna get back to this video to watch it later. in the meantime, you better not disapprove of kotlin, kotlin is awesome

  • @viktorshinkevich3169
    @viktorshinkevich3169 3 місяці тому

    7:19 thats ruby block passing right there, but unlike ruby blocks lambda is explicit argument in function signature

  • @EllGeeLabs
    @EllGeeLabs 3 місяці тому +2

    Kotlin's string interpolation is lifted from Scala. And you can do what he does in Scala as well.

  • @captainnoyaux
    @captainnoyaux 3 місяці тому +20

    Kotlin is very good, super pragmatic and you can go very far design wise

    • @JPilsonSumbo
      @JPilsonSumbo 3 місяці тому +3

      I’ve using Kotlin and Ktor for 2 year on my side projects , and honesty I think it is the best language ever

    • @captainnoyaux
      @captainnoyaux 3 місяці тому

      @@JPilsonSumbo Ktor is awesome, I used Http4k too for a more functional programming paradigm and it was cool too !
      The only downside of Kotlin is when you do TDD the JVM is so slow to boot up tests that it hurts me a lot compared to jest in TS.
      If anyone has tips on how to make the tests launch and run in less than 1 secs I'm all ears ! Never found anything that helped

    • @AndrewBrownK
      @AndrewBrownK 3 місяці тому +1

      I get very irritated when there are traits/impls I can express in Rust but not Kotlin, but overall Kotlin is a million times better than Java

    • @captainnoyaux
      @captainnoyaux 3 місяці тому

      ​@@AndrewBrownKhaha pretty much bro. I don't understand why people still use java actually... As for rust it serves it's own purpose and have it's own trade offs too but it's an amazing language

  • @tonylangworthy5479
    @tonylangworthy5479 3 місяці тому +1

    Nice! I like Go, but this might be even better!!

  • @obsidian_bishop
    @obsidian_bishop 2 місяці тому

    BTW probably Prime would love Swift, it has some similar things. (I'm talking about how lambdas can be written, this makes UI programming is fun)

  • @thingsiplay
    @thingsiplay 3 місяці тому +7

    20:34 ... wait a second. Why can't I open Levi Dawn's channel? Is his channel down? I made to type the exact name and searched the web too.

    • @tom-delalande
      @tom-delalande 3 місяці тому +17

      I renamed it to be my actual name (sorry for the confusion)

    • @thingsiplay
      @thingsiplay 3 місяці тому +1

      @@tom-delalande Thanks for clarification!

    • @Mglunafh
      @Mglunafh 3 місяці тому +1

      I've seen the stream where this reaction was made, and it was so so long ago, almost too much time passed OG even managed to rename the channel
      us jvm devs seething about this situation ngl 😅

  • @Archheret1c
    @Archheret1c 3 місяці тому

    Remember to paste the video in the description. I prefer to put the reacted video in the background with muted sound to give them a deserved view.

  • @awesomedavid2012
    @awesomedavid2012 3 місяці тому +4

    I really like Kotlin. Its biggest problem is its biggest feature: its connection to Java. But the functional utility is so good. When I first used Rust, it felt most like Kotlin to me.

    • @tom-delalande
      @tom-delalande 3 місяці тому +2

      You may be aware, but you can essentially opt out of the JVM by using Kotlin Native* (Thanks @007arek)

    • @awesomedavid2012
      @awesomedavid2012 3 місяці тому +3

      ​@@tom-delalandeyes. I just mostly mean that the syntax itself was designed with Java in mind. I think it would be a different language if Kotlin been made without Java in mind; personally, I think a better one. But I also cannot deny the versatility of Kotlin's interoperability with Java. I think they did the best they could've given how tied to Java they have to be. 👌

    • @007arek
      @007arek 3 місяці тому +2

      @@tom-delalande won't native-image be better than Kotlin Multiplatform?

    • @HoussamElbadissi
      @HoussamElbadissi 3 місяці тому

      @@007arek For server-side development, for now I think yes, it would be better in both not losing the benefits of the JVM ecosystem, and I expect it to be faster as Kotlin/Native is still pretty new (speaking of speed, sometimes the JVM is just faster due to runtime optimizations).
      However, KMP is absolutely awesome for client-side development, especially with Compose Multiplatform. You can build UI that works on Android and Desktop (Kotlin/JVM), iOS (Kotlin/Native), and Web (Kotlin/Wasm). You can also write client-side websites with Kotlin (and something like Kobweb, or Compose HTML), and it'll build to JavaScript (Kotlin/JS).

  • @fb-gu2er
    @fb-gu2er 2 місяці тому

    Does Prime have anything on Scala?

  • @casadogaspar
    @casadogaspar 3 місяці тому +1

    As a mobile developer, I can say Kotlin and Swift are both great languages, and it's sad swift has a limited scope in development, and hope to see it change in the future... even if I don't believe it will.

  • @imflyingoverclouds
    @imflyingoverclouds 18 днів тому

    I barely heard the guy in the video. But how fantastic! I just bought Atomic kotlin last week :) More kotlin videos please!

  • @saiphaneeshk.h.5482
    @saiphaneeshk.h.5482 3 місяці тому

    Have just looked into some iOS dev for a small period, but even Swift has that thing.

  • @wdeath
    @wdeath 3 місяці тому +2

    Clojure is the best language to use with HTMX, no templates needed, html is part of Clojure code. HTML has tree syntax, like Clojure can't get more simple.

  • @renatocustodio1000
    @renatocustodio1000 3 місяці тому +1

    Thr greatest thing about this is strong typing in the template

  • @dayachettri5157
    @dayachettri5157 3 місяці тому

    Dioxus for Rust does the same kind of templating when building UI its fun tho...

  • @br3nto
    @br3nto 3 місяці тому

    7:32 stolen from Ruby!!! Ruby does this too. It is a very cool useful feature!! Works well not just with DSL building, but also iteration. It’s kinda like continuations.

    • @br3nto
      @br3nto 3 місяці тому

      8:02 Ruby also has syntax so you can pass objects to the block (Ruby calls trailing lambdas, blocks, and you take different actions whether the block is defined or not). I assume Kotlin would have similar syntax. Usually you would pass in builders or configurable options to the block that you can set inside the lambda. But Ruby also allows you to set the scope of the block to some other object, or to marshal calls to some other object. I wonder if Kotlin allows you to do this too.

    • @br3nto
      @br3nto 3 місяці тому

      9:08 oh it looks like you can do that I. Kotlin too!! Awesome 🎉

  • @ErazerPT
    @ErazerPT 3 місяці тому +1

    "the ability to extend things that already exist"... we saw what you did there... :P

  • @enkiimuto1041
    @enkiimuto1041 3 місяці тому

    Why is his link not in the description?

  • @lightningx10
    @lightningx10 3 місяці тому +5

    Tom is a genius

  • @lucasteo5015
    @lucasteo5015 3 місяці тому

    You then wrap it into functions then into classes, and maybe with some builder pattern you'll have a Form that can add input fields and tons of abstraction to get rid of all xml nonsense, that's is where the juicy part is, oop + html, your code base will pretty much be 90% business logic and 10% UI stuff.
    This is php but obj oriented and typesafe requires only one single language and your exisiting skill can be easily transferred from java.

  • @denissorn
    @denissorn 3 місяці тому

    xml and html are also easy to read. jsx too. Unless you make it large, and complicated and the same would apply to his declarative kotlin.

  • @azeek
    @azeek 3 місяці тому

    I like how Primeagen mentions things he likes every now and then. Like ketchup and stuff

  • @Aguycalledmax
    @Aguycalledmax 3 місяці тому +1

    What I've never understood about HTMX is the amount of iteration that is always required to get a component looking visually perfect. When you're doing any html/css that is even slightly more complex than a rectangle with a bit of padding you will drive yourself insane without instant feedback and HMR. Try debugging a flex overflow issue by waiting 10 minutes to recompile, rebuild and refresh each time you change one class.

    • @007arek
      @007arek 3 місяці тому

      It depends on technology. Sometimes you can have live reload.

  • @amardeep.sahota
    @amardeep.sahota 3 місяці тому +23

    We are so close to reinventing JSP (Java Server Pages) :)

    • @copypaste4097
      @copypaste4097 3 місяці тому +1

      Oh no

    • @sealoftime
      @sealoftime 3 місяці тому

      More like JSF tbh, J*va Server Faces

    • @RomanSoldier13
      @RomanSoldier13 3 місяці тому

      heheheheh

    • @chpsilva
      @chpsilva 3 місяці тому

      Everything which was will be again

    • @danio1021
      @danio1021 3 місяці тому +3

      We really are going in a circle. Once hype for HTMX started I've looked at it and it's basically the same thing that I've done on some project in the past with jQuery, now we will build more and more tooling on the backend to write divs, you know, like a template engines or things like that. And all those server-side backend thingys in JS, it just looks like PHP sites I've seen 15 years ago, but in JS

  • @luizpbraga
    @luizpbraga 3 місяці тому

    i like to mix functions and data, functions and code and functions and function. what i don't like is to extend builtin types

  • @CristianMolina
    @CristianMolina 3 місяці тому +1

    Nice! Ruby has things like Phlex, very similar to that DSL, even better IMHO. Also Lucky framework in Crystal is similar for building views. This way is easy to do reusable maintainable components. Mix it with htmx and I think it could be great for building the front-end.

  • @yonathan_jabir
    @yonathan_jabir 3 місяці тому

    Congrats on the award prime🥳🥳

  • @Bliss467
    @Bliss467 3 місяці тому +2

    KOTLIN MENTIONED

  • @saiphaneeshk.h.5482
    @saiphaneeshk.h.5482 3 місяці тому

    Sorry, but what was that save list?

  • @peteredmonds1712
    @peteredmonds1712 3 місяці тому

    copilot and such are most helpful to me when i am writing super repetitive shit, like html. the fact that i would have to translate all chat jippity output into my own special non-xml format makes that a nonstarter, but the rest of kotlin look fine.

  • @makhmudjonjamoldinov3554
    @makhmudjonjamoldinov3554 3 місяці тому

    Where is "the name, ....."? I really waited for it. But it didn't come out?

  • @build-things
    @build-things 3 місяці тому

    I worked with tom for over a year the guy is a genius!

  • @TagetesAlkesta
    @TagetesAlkesta 3 місяці тому +2

    Jokes on you, I use Neovim on a Mac to be intentionally confusing

  • @kveeti
    @kveeti 3 місяці тому

    Link to video?

  • @KENTOSI
    @KENTOSI 3 місяці тому

    Damn I love Kotlin!!! Such a pleasure to code in.

  • @FishDaddyTTV
    @FishDaddyTTV 2 місяці тому

    "we let tim cook, and I think an iphone is about to come out" 🤣

  • @angusclark1467
    @angusclark1467 3 місяці тому

    Kind of looks like he's creating objects for his html. Makes me think its similar to how you write Flutter. Just nested objects made up of your most basic components.

  • @austinsiu2351
    @austinsiu2351 3 місяці тому +2

    SwiftUI uses this kind of syntax sugar, and turns Swift into an alien language, super hard to learn and debug.

    • @pad8941
      @pad8941 3 місяці тому

      Imho it's skill issue. It is simpler to write the UI. But I aggre with you, since everything become declarative it is challenging to debug

    • @austinsiu2351
      @austinsiu2351 3 місяці тому

      @@pad8941 I agree it's skill issue. But one important thing is that the SwiftUI docs aren't really that great. SwiftUI introduces so many concepts while the docs expects you to know all of them in order to make the slightest sense.
      But this is already irrelevant to the argument whether abusing trailing lambda is good or not.

    • @pad8941
      @pad8941 3 місяці тому

      @@austinsiu2351 You are right, it requires you to know some underlying concept (beginner may label it difficult) to be able to grasp what actually happen in the UI. That's why, I always recommend to learn UIKit as a starting point to learn IOS dev. It is quite funny that apple brand SwiftUI as starting point. Maybe they just want to attract web dev to ios dev with framework that has similar syntax with HTML.

  • @sdstorm
    @sdstorm 3 місяці тому

    Learning Kotlin would be a mind expanding experience for Prime. :)