Impure Pics

Impure Pics

FP Advocat. Distilling functional programming for the good of all

LHBG 7.  Working with IO

LHBG 7. Working with IO

Пікірлер

  • @musicalintuition
    @musicalintuition2 күн бұрын

    There is now MoonBit, which targets WASM and JS

  • @eeronat
    @eeronat3 күн бұрын

    You're right, the square hole

  • @dusilva3796
    @dusilva37963 күн бұрын

    For me this video is S tier.

  • @user-gd3ch9ix1x
    @user-gd3ch9ix1x4 күн бұрын

    Where's clojure?

  • @sundae6610
    @sundae661010 күн бұрын

    whats scala real world use case?

  • @felixa4705
    @felixa47059 күн бұрын

    Spark is probably the thing it's best known for in the real world. Of course, most users are using the Python API now. Additionally, I think Flink and Kafka were originally written in Scala, but also have substantial Java components. For consumer facing applications, Twitter is a pretty major Scala user. They switched from Ruby on Rails when they had scaling issues. Also, Lichess (open source chess server) is written in Scala,

  • @user-tx4wj7qk4t
    @user-tx4wj7qk4t13 күн бұрын

    Yes it is

  • @user-tk2jy8xr8b
    @user-tk2jy8xr8b13 күн бұрын

    Scala has path-dep types, Haskell doesn't

  • @impurepics
    @impurepics13 күн бұрын

    Is this a plus or a minus?

  • @MrDejvidkit
    @MrDejvidkit12 күн бұрын

    @@impurepics Plus

  • @user-tk2jy8xr8b
    @user-tk2jy8xr8b12 күн бұрын

    @@impurepics I'd say a plus for Scala. Not a huge one, but still

  • @Jankoekepannekoek
    @Jankoekepannekoek13 күн бұрын

    Scaladoc also has hoogle-like search based on type signatures, since Scala 3.

  • @impurepics
    @impurepics13 күн бұрын

    @@Jankoekepannekoek oh! Is there a way to have scaladoc/search work across multiple libraries or organizations?

  • @Jankoekepannekoek
    @Jankoekepannekoek12 күн бұрын

    @@impurepics I don't know this answer. I have not dived that deep into the rabbit hole.

  • @i-am-the-slime
    @i-am-the-slime13 күн бұрын

    Great video! It's quite fair of you to leave out PureScript!

  • @impurepics
    @impurepics13 күн бұрын

    I've only used PS in 2.5 companies, it would've broken the symmetry

  • @hdbrot
    @hdbrot13 күн бұрын

    But it‘s "Quota" :)

  • @impurepics
    @impurepics13 күн бұрын

    😵‍💫

  • @hdbrot
    @hdbrot13 күн бұрын

    @@impurepicsNo worries! If the program code says it‘s "Qouta", then so be it. The computer makes no mistakes.

  • @vigneshwaranm1989
    @vigneshwaranm198914 күн бұрын

    Very nice. Thank you.

  • @samuraijosh1595
    @samuraijosh159515 күн бұрын

    If you want to get popular on live-streams you could consider teaming up with slightly more popular FP bros on Twitch like Tsoding or TJ.

  • @samuraijosh1595
    @samuraijosh159515 күн бұрын

    fuck man your channel is only one of the few that talk about Haskell and fp in this detail. Hope you get more views and subs, you got a sub from me!!! thanks for the good work

  • @NoOne-ev3jn
    @NoOne-ev3jn18 күн бұрын

    Haskell has everything needed to do what any imperative language does

  • @isaacvandoren4733
    @isaacvandoren473320 күн бұрын

    Roc is great! It’s the performant pragmatic language with great tooling that I’ve been wanting. The combo of structural records, structural tag unions, and type inference is delightful. And I think some very interesting things will come from the platform design. Definitely worth checking out!

  • @smores56
    @smores5617 күн бұрын

    ROC MENTIONED

  • @Danielo515
    @Danielo51522 күн бұрын

    Have you been spying on me recently while I was researching some new languages and just made a video about it?

  • @tusharadhatrao4749
    @tusharadhatrao474923 күн бұрын

    Loved it :)

  • @UrsEnzler
    @UrsEnzler24 күн бұрын

    Well played! However, as an F# developer, I wish the base library had been built with FP concepts in mind rather than for C#.

  • @Son0fBeelzebub
    @Son0fBeelzebub26 күн бұрын

    lack of lisps, but based. didn't notice any bias here

  • @timedebtor
    @timedebtor27 күн бұрын

    not a single lisp

  • @Mglunafh
    @Mglunafh27 күн бұрын

    Thank you for the comprehensive and thorough analysis of the available functional programming languages, i could wish i had a time to effectively learn them all 😭

  • @Jankoekepannekoek
    @Jankoekepannekoek27 күн бұрын

    No variant of Lisp in the list? (pun intended)

  • @kmr_tl4509
    @kmr_tl450927 күн бұрын

    Useful vid. I hear these a lot, so I can just respond with a timestamp to this video next time.

  • @iraqinationalist7778
    @iraqinationalist777827 күн бұрын

    Where is Elixir?

  • @jhonyhndoea
    @jhonyhndoea27 күн бұрын

    No elixir or clojure. why?

  • @oserodal2702
    @oserodal270227 күн бұрын

    Why does no one ever talk about Idris? (I've never written a line of Idris code)

  • @ukrustacean
    @ukrustacean28 күн бұрын

    Cool. Absolutely loved the video ❤ Probably I need to spend some time this weekend checking out Unison and Gleam 🤔

  • @mctechcraft7
    @mctechcraft728 күн бұрын

    I feel like I’m starting to notice a pattern 🤔

  • @greyshopleskin2315
    @greyshopleskin231528 күн бұрын

    I forgot about PureScript. Basically Haskell in the browser. Very very nice. I need to try it out. Also, did you know ReScript? It’s Ocaml for browsers

  • @balogunakanbi6329
    @balogunakanbi632928 күн бұрын

    Clojure???

  • @hyperrealhank
    @hyperrealhank28 күн бұрын

    F sharp is F tier

  • @user-dn7qr7vs1h
    @user-dn7qr7vs1h28 күн бұрын

    I wouldn't put Elm in one row with languages that allow to build abstractions. Elm is like a Go from the FP world. As for the Purescript, which is my main working language... The only things that are better in Purescript than in Haskell is row polymorphism and JS interop. However the type inference sucks (most likely because of the row polymorphism), type errors suck, built-in linting rules (no orphane instances at all and things like that) suck. It is no fun to code on Purescript in comparison to haskell. One of the worst languages to learn FP or programming, much worse than haskell (actually I think Haskell is good as the first programming language). I could recommend to learn Purescript strictly AFTER Haskell, when you already know how a language like this works, so you can find the actual type errors (since Purs pretty often will explode pretty far from the place where the actual error occurs) and so on. Also don't forget that purescript lacks many type-level features of Haskell that you will always miss: type families (prepare to a huge amount of boilerplate if you want to have nice type-level abstractions!), GADTs, DataKinds, linear types, etc..

  • @ZombieJig
    @ZombieJig28 күн бұрын

    I would chose F# due to the strength of the standard library, which is in my view as important as the language.

  • @lilbigdooter
    @lilbigdooter26 күн бұрын

    It's also got the most consistent editor tooling in my experience, although I haven't tried every language on the list

  • @roelhemerik5715
    @roelhemerik571526 күн бұрын

    Its also the least “functional” functional programming language of the bunch, especially when you use that extended standard library.

  • @the_mastermage
    @the_mastermage25 күн бұрын

    @@roelhemerik5715 Isnt that due to the fact it can use most of .NET which is mainly based in C# to begin with?

  • @user-vz9cq8ci9b
    @user-vz9cq8ci9b28 күн бұрын

    I actually like Idris 2 more than Haskell, so I would add it to S tier as well. Also, I'm not quite comfortable with putting a language that has been abandoned for 5 years (Elm) to S tier

  • @sigmundwong2489
    @sigmundwong248928 күн бұрын

    Gotta love Idris2! Dependent types, quantitative types, fancy interactive compiler, eager rather than lazy... and single colon for type annotations. \*chef kiss\*

  • @kilianvounckx9904
    @kilianvounckx990417 күн бұрын

    Elm is not abandoned, it is done. Also, latest commit to it was 8 months ago, so far from 5 years. Not all languages need new features every week

  • @protosevn
    @protosevn28 күн бұрын

    Least biased programming tier list video :D

  • @victorpinasarnault9135
    @victorpinasarnault913528 күн бұрын

    What about LISP? And Scheme?

  • @smallcat2820
    @smallcat282027 күн бұрын

    Not sure, but I guess S tier :)

  • @simpleprogrammingcodes
    @simpleprogrammingcodes28 күн бұрын

    I had to use Oz for studies. What is your opinion on Oz? Is it a functional language? If so, how good is it?

  • @impurepics
    @impurepics28 күн бұрын

    I've never seen it tbh

  • @capability-snob
    @capability-snob27 күн бұрын

    Everyone who loves the BEAM languages should at least try Oz for contrast. It's functional-reactivity applied to distributed systems.

  • @simpleprogrammingcodes
    @simpleprogrammingcodes27 күн бұрын

    @@capability-snob BEAM? What do you mean? What makes these languages special?

  • @capability-snob
    @capability-snob26 күн бұрын

    ​@@simpleprogrammingcodes logic variables (like the ones Oz uses) for concurrency is a great concept, and feel very functional IMO. Languages that target the BEAM (erlang, elixir, etc) also have concurrent interaction baked into the languages themselves.

  • @stercorarius
    @stercorarius13 күн бұрын

    if anyone reading this wants to learn more about Oz, check out the book "Concepts, Techniques, and Models of Computer Programming" (2004)

  • @NiDeCo
    @NiDeCo28 күн бұрын

    My man just disguised an introduction to which functional programming languages there are as a ranking video, just because it gets the clicks... touché.

  • @megaman13able
    @megaman13able28 күн бұрын

    No elixir??

  • @avinashsridhar7124
    @avinashsridhar712428 күн бұрын

    I think he prefers statically typed languages, he mentioned it at the beginning.

  • @HonzaPokorny
    @HonzaPokorny28 күн бұрын

    Where are the lisps? 🙂

  • @pierrefley5000
    @pierrefley500027 күн бұрын

    If Lisp counts as a functional language, then so does Perl.

  • @ninjaaron
    @ninjaaron27 күн бұрын

    @@pierrefley5000 He said "Lisps". Common Lisp may not be particularly function (though it is moreso than Perl), Scheme is pretty much functional and Clojure is very much function--moreso than some of the languages in this video.

  • @sayanmallick2644
    @sayanmallick264428 күн бұрын

    s teir video

  • @amr3162
    @amr316228 күн бұрын

    Based, and absolutely unbiased :)

  • @MikkoRantalainen
    @MikkoRantalainenАй бұрын

    15:52 I would argue that neither monads for "abilities" are teachable. Definitely not easy to teach as direct style procedural programming.

  • @Axman6
    @Axman6Ай бұрын

    I really enjoyed watching this, it felt far more realistic than many dev videos where people don’t make mistakes. Getting quantifiers working is *hard*, and I’m sure that I would’ve gotten just as lost. In my last job, I had to implement a parser and evaluator for the reflexes found in XML schema. Luckily the Haskell wiki has the page “Regular expressions for XML Schema”, which has the most beautiful implementations of regexes you’ll ever see. I’d love to see you go back through this exercise after reading that (and discussing the page too). This is your first video I’ve watched but I’m loving it - instant subscribe ❤

  • @MikkoRantalainen
    @MikkoRantalainenАй бұрын

    Great video! I think it would be better to use more readable font in the editor such as Source Code Pro (free open source font) because your current font uses kerning and glymph substitution tricks to make it harder to understand what you're actually typing.

  • @Axman6
    @Axman6Ай бұрын

    As someone who’s been programming Haskell for about 15 years, and a lot of that time using Fira Code, I didn’t even notice 😅 This is a good tip though, for anyone trying to make programming understandable.

  • @GavinFreeborn
    @GavinFreebornАй бұрын

    Just curious, what program do you use for ceeating your usual slideshows?

  • @impurepics
    @impurepicsАй бұрын

    The slides with text? Either google slides or apple keynotes. With “animations” via procreate

  • @FredMaterias
    @FredMateriasАй бұрын

    Hey, just a tip I stumbled upon a while back, instead of changing the haskell version of your project just compile hls using ghcup, you can do that using "ghcup compile hls -g master --ghc ${your-target-version}" and it is much better than changing the version and probably breaking something down the line.

  • @federicoagustinsawadyoconn2716
    @federicoagustinsawadyoconn2716Ай бұрын

    Some things I read in the comments or see in the video make me realize that some poeple analyze Haskell as if its computing model were the same as other traditional languages, when it is not. Referential transparency, in the computing model that Haskell chooses to have, is extremely important, so it is not that optional. That is the main reason why the language is lazy. And it is the main reason why one also chooses to program in Haskell. Algebraic structures like monads or applicative functors are excellent in terms of maintaining equational reasoning more than other options, so they are not criticizable in the same way as a feature in a imperative language. They are not just a feature that solves something from a utilitarian point of view neither, because they are a mathematical solution for mantaining clear reasoning about pure code, which in Haskell is more important than in other languages. I know that many want features in Haskell that are also utilitarian, which is not bad, but please understand that the language was not designed for that, so you have to be aware of what I mentioned before when analyzing some of the pain points of the language.

  • @user-pe7gf9rv4m
    @user-pe7gf9rv4mАй бұрын

    Thank you 100%; this was a very informative and concrete video, its been hard to find real understandable (but not trivial "calculatory") haskell materials.

  • @Jankoekepannekoek
    @Jankoekepannekoek2 ай бұрын

    Misleading title. You didn't just swap Stack for Cabal. You are still using some other tools that offer the same functionality as Stack.