Why I Don't Code in Haskell Anymore?

  Рет қаралды 125,305

Tsoding Daily

Tsoding Daily

Күн бұрын

Пікірлер: 365
@TsodingDaily
@TsodingDaily 2 жыл бұрын
How do you like my Data Center?
@leongarcia3281
@leongarcia3281 2 жыл бұрын
The best use for an old laptop that served you well for 10+ yrs and has, like, a pentium and 3gb of ram
@stevegremory3849
@stevegremory3849 2 жыл бұрын
Hey, look at the bright side! Glowies can't sniff your data!
@maxreuv
@maxreuv 2 жыл бұрын
The DataCenter looks a bit like your Haskell comment ;)
@bertrodgers2420
@bertrodgers2420 2 жыл бұрын
@@maxreuv Why can't you pay for a VPS, sorry?
@lubricustheslippery5028
@lubricustheslippery5028 2 жыл бұрын
@@bertrodgers2420 Probably something to do with living in Russia
@VojtěchJavora
@VojtěchJavora Жыл бұрын
As someone who mostly programs in C, any package manager that actually exists is magic to me.
@biomorphic
@biomorphic Жыл бұрын
I feel the pain. Maybe it's time to learn Rust.
@niktedig853
@niktedig853 Жыл бұрын
I know your comment is relatively old, but fuck it. I don't really understand why a package manager has any business being attached to a language. It seems like a glaring fuck-up in terms of compartmentalization and modularity. What's the point? The package manager should be separate from the language, like apt is separate from C. Apt works great, install packages, use them from C, it's all good. Why do we need to have a special package manager for a language when it really should be an external tool?
@VojtěchJavora
@VojtěchJavora Жыл бұрын
@@niktedig853 Hmm, I think I do actually agree with you, but you cannot deny that having the package manager with the compiler is easier to use and more practical.
@VojtěchJavora
@VojtěchJavora Жыл бұрын
@@niktedig853 also haskell package managers are not attached to the language.
@Bbdu75yg
@Bbdu75yg Жыл бұрын
Isn’t cmake and bazel painful for cc+ development ?
@dimator
@dimator 2 жыл бұрын
Ah, but that is too bad for us, because your old Haskell videos are some of them most informative and important videos I've seen. Monoids, IO monads, your explanations were just 👌
@MdImrulHassan
@MdImrulHassan 2 жыл бұрын
+1 to that. I learnt a lot from your Haskell videos on how to use Haskell effectively without getting bogged down by advanced features. However, I only use Haskell for pet projects and offline competitive programming.
@driden1987
@driden1987 2 жыл бұрын
@@MdImrulHassan +2 more haskell/scala/lisp please
@sebastiangudino9377
@sebastiangudino9377 2 жыл бұрын
@@driden1987 I don't think he used lisp very often. But I do think that lisp is a lot more "Developer Friendly" than Haskell in the way this video points out
@driden1987
@driden1987 2 жыл бұрын
@@sebastiangudino9377 Oh no, i don't think it is either. I still want to see more videos from him on those langs :D He did one on clojure which is a lisp dialect in the jvm and he enjoyed it, but it was more for solving a specific codewars problem rather than a whole project on it.
@Mutual_Information
@Mutual_Information 2 жыл бұрын
This was the first time I heard anything about Haskell that wasn’t Haskell propaganda
@jawad9757
@jawad9757 Жыл бұрын
Where are you finding this Haskell propaganda, I want it
@MattLaine
@MattLaine 4 ай бұрын
You clearly haven't read my Quora posts.
@youtubepooppismo5284
@youtubepooppismo5284 2 жыл бұрын
a monad is a monoid in the category of endofunctors.
@leongarcia3281
@leongarcia3281 2 жыл бұрын
He said the line!
@mishikookropiridze
@mishikookropiridze 2 жыл бұрын
Trivial
@nicolareiman9687
@nicolareiman9687 2 жыл бұрын
Shit that's easy why do people still don't get it quickly.
@birdbeakbeardneck3617
@birdbeakbeardneck3617 2 жыл бұрын
my brain is frying
@mishikookropiridze
@mishikookropiridze 2 жыл бұрын
@@nicolareiman9687 It's actualy easy once you know definitions of category, functor, monoid, endofunctor.
@HoloTheDrunk
@HoloTheDrunk 2 жыл бұрын
The "server" that hosts all of my projects is basically two Raspberry Pis connected by a cheap ethernet switch and a lot of hope and prayers 😅
@lonelyfloat2582
@lonelyfloat2582 2 жыл бұрын
As someone who loves programming in Haskell, I can't agree more LMAO
@ccgarciab
@ccgarciab 2 жыл бұрын
Doing katas in Haskell is fun and satisfying at least
@SimGunther
@SimGunther 2 жыл бұрын
Dependency Roulette is the most fun game for anyone who is tired of C's packaging brilliancy and just want to mess around with XML, JSON, or cabal files guessing which version of which package is compatible only to find out it was out of order. If you were missing stress in your life, this is totally the game for you!
@torarinvik4920
@torarinvik4920 2 жыл бұрын
Haha so true! Underrated comment!
@redpepper74
@redpepper74 2 жыл бұрын
Maybe I don’t want to learn Haskell
@torarinvik4920
@torarinvik4920 2 жыл бұрын
@@redpepper74 its a lot of fun 🙂
@redpepper74
@redpepper74 2 жыл бұрын
@@torarinvik4920 I now have stack installed on my computer and am trying to figure out how to use it
@torarinvik4920
@torarinvik4920 2 жыл бұрын
@@redpepper74 I found Cabal to be easier.
@john.dough.
@john.dough. 2 жыл бұрын
I love these shorter, to the point, videos in addition to the longer ones :)
@rogergalindo7318
@rogergalindo7318 2 жыл бұрын
after having spent 20+ hours trying to get a Haskell project working, can confirm, it’s a fucking pain in the ass
@Axman6
@Axman6 2 жыл бұрын
Have you used Haskell/Cabal recently? Things have improved a lot, and there’s a strong emphasis on making the tooling around the language much better for commercial use. Obviously I’m biased, Haskell has been paying my bills for most of the past decade, but because of that, I have seen the huge effort that’s gone into improving things. It’s also worth remembering Haskell is relatively old, so the designed of tools like Cabal were amazing in their time, but newer languages have made improvements from having a clean slate.
@miku4j
@miku4j 2 жыл бұрын
Are you brainwashed by haskell propaganda?
@godnyx117
@godnyx117 2 жыл бұрын
Then why not redesign them? And don't tell me "It's hard". Of course it is, programming is hard! But isn't this what we do?
@sohangchopra6478
@sohangchopra6478 2 жыл бұрын
@@godnyx117 I'm sure cabal / stack could be redesigned, but that has two big problems: 1. Backward Compatibility (existing packages have to support Cabal & Stack - now they will also have to support the new, re-designed package manager). 2. Community Fragmentation - there are already big debates around Cabal vs Stack - adding a third option is not going to help.
@godnyx117
@godnyx117 2 жыл бұрын
@@sohangchopra6478 1. The oldest problem. Now take my opinion on this with big care. I think that backwards compatibility should never be kept. It keeps projects for truly improving and getting better. This is the approach OpenBSD takes (from what I heard) and the reason that while it's far beyond Linux (at least in regular desktop usage), it's catching up with each version. And that's another reason software have "maintenance". But in any case, people can still use the old version of the project if they want and if they cannot for some reason update. But again, this is just my humble opinion 2. The fact that the community is split between these two says it all! The fact that there is not one tool that the majority of the community likes and uses means that none of them are good enough. So we need to either add a new one (probably not) or re-design on of the existing ones to eliminate its flaws. Again, these are just my opinions, there is no right or wrong. In general, this is the approach I'm thinking to follow with my programming language and its tools.
@Axman6
@Axman6 2 жыл бұрын
@@godnyx117 Cabal has been redesigned, significantly, that’s the point I’m making.
@myfavouritecolorisgreen
@myfavouritecolorisgreen 2 жыл бұрын
No one gets to hate on Haskell, except for the ones that love it. So yeah, you are allowed to hate on Haskell.
@beauteetmusculation8191
@beauteetmusculation8191 Жыл бұрын
I hate it as much as I love it. Best language, biggest missed opportunity.
@Czeckie
@Czeckie 2 жыл бұрын
as a mathematician: how do you dare to be this right?!
@vonBottorff
@vonBottorff 2 жыл бұрын
Haskell seems to be split between super-mathy research people . . . and people who want it to be a working programming language. Alas. And even the mathy stuff about Haskell seems very often one-off and lost-in-the-weeds. Evidence: Bad docs that are not much better than stream of conscience/reference dumps. Haskell needs a big, centralized effort to deal with all this fragmentation. But then there's also this feeling that it's just the temporary "base camp" of some great assault on category theory, that Agda is the true "peak" language. Fragmented and schizoid is Haskell for sure.
@beauteetmusculation8191
@beauteetmusculation8191 Жыл бұрын
Good thing you mentioned documentation. That's one of the most frustrating parts of trying to get into Haskell. I don't mind reading a bit of theory, but to the point where you need HOURS to learn how to do something completely abstract which seems like necessary to actually just write simple applications, that's insane.
@vonBottorff
@vonBottorff Жыл бұрын
@@beauteetmusculation8191 There's a lot of programming environments, projects out there where you're pretty much on your own having to read source code. Haskell is definitely like that. I think lots of contributors just think you need to read the code because that's the league you're playing in. So yeah, Haskell is big in the academic world -- and they're not about writing O'Reilly books. I think the "center" of Haskell can be seen in _The Haskell Road to Logic, Maths, and Programming_ by Doets and van Eijck. It's sort of an answer to Paulson's _ML for the Working Programmer_ which is a seminal CS text. _Haskell Road_ really complements the discrete stuff you learn in a CS program.
@Ryan-xq3kl
@Ryan-xq3kl 2 жыл бұрын
rewrite haskell in rust
@Adityarm.08
@Adityarm.08 2 жыл бұрын
I never even tried doing anything except abstract problem solving in Haskell despite it being my favourite language of all. Somehow python, go, c++ just naturally feel far better for application development - which sadly is often far from elegant.
@timwhite1783
@timwhite1783 2 жыл бұрын
Yeah, I'm starting to think the only way to get things done is to learn to be comfortable with ugly code. You can make it beautiful after it works but lets be honest, you probably won't.
2 жыл бұрын
@@timwhite1783 "Learn to be comfortable with ugly code". See "Perfect is the enemy of good". And of course, "You can make it beautiful" brings to mind Knuth's "Premature -beautification- optimization is the root of all evil." and the old principle "first make it work, then make it right, and, finally, make it fast" (as quoted from an article in a 1983 issue of BYTE by Stephen Johnson and Brian Kernighan).
@jadetermig2085
@jadetermig2085 9 ай бұрын
Haskell being your favorite language despite not having done anything besides "abstract problem solving" in it, tells me you're just fangirling over it and it's not a serious or substantive opinion.
@Adityarm.08
@Adityarm.08 9 ай бұрын
@@jadetermig2085 thank you internet stranger for reminding me that my opinion is invalid & my experience irrelevant :)
@samuraijosh1595
@samuraijosh1595 8 ай бұрын
​@@jadetermig2085 and your comment tells me you've never used Haskell or have the IQ to use Haskell. A Haskell enthusiast might not be able to get an actual production ready app out not because he doesn't have any experience in production or enough experience with Haskell but it has more to do with the poor ecosystem and tooling of Haskell.
@seanmcghee2373
@seanmcghee2373 3 ай бұрын
Thank you! Haskell is giving me fits and I am trying to learn it but you've nailed part of my problem.
@totalmonkeyspeed260
@totalmonkeyspeed260 Жыл бұрын
You defined an opportunity: create a maintainable Haskell.🙂🙏
@harry3life
@harry3life 2 жыл бұрын
Haskell is not developed by mathematicians. I don't think any of the main GHC developer is a mathematician.
@max3446
@max3446 6 ай бұрын
The language is certainly designed primarily by theoretical computer scientists (i.e., mathematicians) though.
@harry3life
@harry3life 6 ай бұрын
@@max3446 What does theoretical computer scientist even mean? The entire field is practice basically. I don't think you can call the people implementing a real world production compiler theoretical anything.
@max3446
@max3446 6 ай бұрын
​@@harry3life I'm talking about the backgrounds of those originally involved in the design of the language. Simon Peyton Jones, Philip Walder, etc. All (originally) academics with backgrounds in language design and semantics, so it's natural that the beauty of the language itself will take precence over creating the most convenient tooling (something which from their prespective is/was probably just a necessary evil).
@einargs
@einargs 3 ай бұрын
​@@harry3life you have clearly not done enough type theory or algorithms work
@harry3life
@harry3life 3 ай бұрын
@@einargs It's a skill issue if you didn't found applications for your type theory or algorithms.
@breakprismatshell6270
@breakprismatshell6270 2 жыл бұрын
oh man I feel you.. both cabal and stack really suck ... Personally though this is worth it in exchange for the language itself, but people might differ on that. Worse to me is that fact, that it's so difficult to estimate and optimize for resource usage in haskell, because it is so abstract.
@abraund
@abraund Жыл бұрын
How amusing, I'm using your parser as a project to orientate myself into how you actually go about development, and here you refute the language. Ultimately I suppose most people who wish to work in Haskell are more interested in a new way of thinking, rather than creating working solutions.
@samuraijosh1595
@samuraijosh1595 8 ай бұрын
If you can somehow make your way out of the build process and packaging mess, sure you can get something working. I myself am trying to use Haskell as backend server script, tried multiple Haskell wed frameworks, only one was easy to quickly set up and get some work done right off the bat. As he says, such an elegant sexy language but God awful tooling.
@hulucius1479
@hulucius1479 2 жыл бұрын
The real issue of Haskell is not really its type system or its language concepts, but its toolchain….
@Boxing_Gamer
@Boxing_Gamer Жыл бұрын
The many weird symbols are also annoying..a few would have been enough, like the dot operator and the dollar operator. But when people start defining their own symbols which are often just chains of other symbols it becomes too difficult for most people .
@samuraijosh1595
@samuraijosh1595 8 ай бұрын
​@@Boxing_Gamernot difficult at all. Get back to your haskell textbook and put in the effort.
@Boxing_Gamer
@Boxing_Gamer 8 ай бұрын
@@samuraijosh1595 it's not difficult when you made it yourself but when you look at other people's code it can be. Some code I've had to give up on understanding.
@samuraijosh1595
@samuraijosh1595 8 ай бұрын
@@Boxing_Gamer oh sorry I misread your comment, I read it as just too many symbols. I agree, abusing the symbol functions meta programming because it's fun or makes aesthetic sense to you personally is awful.
@filmamundo9194
@filmamundo9194 Ай бұрын
so...c++?
@RedStone576
@RedStone576 Жыл бұрын
aw man i get into haskell because of your videos. you're totally right about the math folks building languages part
@exnihilonihilfit6316
@exnihilonihilfit6316 5 ай бұрын
Impulse person, right?... A year later, you got nowhere, didn't ya? ;-))
@davidyanceyjr
@davidyanceyjr 2 жыл бұрын
It's a crime, I have tried many ways to use haskell in my current project- I too love the language. I've resorted to Nix as a last ditch effort.
@woobilicious.
@woobilicious. 2 жыл бұрын
What don't you like about the tooling (if that's what you mean?) Poorly documented libraries to me seem the worst aspect, trying to write in any language, except maybe C, these days seems to have a tooling issue in general where you're overloaded with choice and can't just do some coding. Nix could probably solve your issues, and introduce a whole bunch more :P
@TsodingDaily
@TsodingDaily 2 жыл бұрын
I like when people answer their own questions.
@kopuz.co.uk.
@kopuz.co.uk. 2 жыл бұрын
@@TsodingDaily hypophora
@MyAce8
@MyAce8 2 жыл бұрын
as someone who uses nix. You only start to make back the time invested in nix once you use it for everything and idk if it will be worth it for most people without many more years of maturation unfortunately
@ribosomerocker
@ribosomerocker 2 жыл бұрын
as someone who uses nix... dont use nix. do yourself a favour.
@victorandreverdipereira7440
@victorandreverdipereira7440 Жыл бұрын
​@@ribosomerockerwhy?
@MasthaX
@MasthaX Жыл бұрын
I never coded much Haskell myself like you did, though I did read allot about it and watched your videos amongst many others because the language is really nice like you noted. I seem to never actually used it practically for the same negative reasons as you pointed as well. There are just too much good alternatives to use out there which are usually far easier to learn and are far more practical to use. Nevertheless I enjoyed your Haskell videos and learned quite a bit more about how it all works.
@anderdrache8504
@anderdrache8504 2 жыл бұрын
That's why I'm excited about Roc.
@wlcrutch
@wlcrutch Жыл бұрын
So…what is a good alternative to Haskell? Something that enhances functional style and with an elegant syntax yet isn’t a pain in the ass for packaging/building? I agree, stack and cabal seem like they were created by HS students…
@CHR1SZ7
@CHR1SZ7 9 ай бұрын
Scala will let you do whatever abstract functional stuff you like (with a few different flavours of that e.g Cats, ZIO, etc.) but as a jvm language it can piggyback on much of the enormous java tooling ecosystem. The syntax is not as mathy as haskell but is very expressive and generally clean
@samuraijosh1595
@samuraijosh1595 8 ай бұрын
​@@CHR1SZ7Scala syntax is ugly lmao
@max3446
@max3446 6 ай бұрын
OCaml isn't as elegant as Haskell but its tooling is certainly a lot better.
@rezamirhosseini1369
@rezamirhosseini1369 5 ай бұрын
Maybe Erlang?
@TheRealisticNihilist
@TheRealisticNihilist 2 жыл бұрын
I feel the fuck out of this pain. I LOVE Haskell but I've never had more problems with a language's implementation mechanics except, of course, Java (because I refuse to use intellij or eclipse).
@jordanmcconnon6214
@jordanmcconnon6214 Жыл бұрын
Yeah java without IDE is hell. Glad i never have to look at that shite again
@Boxing_Gamer
@Boxing_Gamer Жыл бұрын
I think emacs and language servers will give you a nice java idea. So far I've used emacs with rust, elm and csharp and it worked perfectly. Even has refactoring and goto definition etc. For a much easier learning curve you could use spacemacs.
@jawad9757
@jawad9757 Жыл бұрын
I really hope there is an achievable solution for Haskell's toolchain
@torarinvik4920
@torarinvik4920 2 жыл бұрын
I've been learning Haskell for some time now, and you just read my mind. I couldn't agree more. The language is awesome, but the ecosystem particularly Cabal and Stack as you mentioned is so unreliable its almost broken. And just like you said the creators of Haskell care much, much more about language design than useful tools. I've been having so much trouble with cabal it's not even funny. I use Haskell for prototyping and other languages to code in. Swift has so amazing support for functional programming that I can almost directly translate all the Haskell code. Now I cant really put all the blame on the Haskell designers since Haskell has a healthy community the experienced users should also contribute if they want the language to become more popular. Pharo Smalltalk has a tiny community and they have been able to create an incredibly impressive IDE far more impressive than anything I have seen in the Haskell world.
2 жыл бұрын
Haskell was, is, and probably will forever be a research language first and foremost. Well, all functional languages are research languages more (much more) than practical languages. You go through a lot of pain, to get… what exactly? I tried my hand at studying computer science (at university, for real). And we did functional programming (in StandardML I think)… the goal was to *prove* programs correct, but I don't see that happening, not on a scale that is useful. And I also doubt it can even *really* be done what with a) side-effects (which you need to have to do IO) and b) the halting problem. Sure, you can prove parts of software correct. But is that such a huge benefit? But in the end, the biggest problem for functional programming (pure functional, but also non-pure, like Lisp or Scheme) is that it goes against our "natural" way of thinking, against the way most people's thought processes work. It's hard enough for most folks to get into a programming mindset. And then they expect those to start to think *functional*? No way, Jose.
@torarinvik4920
@torarinvik4920 2 жыл бұрын
@ That was an amazing post! I agree 100%. Its basically correctness vs ease of use.
@firelights3675
@firelights3675 2 жыл бұрын
@ to me functional is the "natural" way of thinking. You type out functions that transform inputs inside out, you tell exactly what to do. The only disadvantage is there's a lot more base functions, but for example expressing "sumList = fmap (+)" instead of needing to declare local variables and a for loop
2 жыл бұрын
@@firelights3675 To you, and good for you. But to *most* people it's completely foreign (as I said). Look for people complaining that math is hard, or that math sucks, and how many people can be seen to agree. All joking how bad they were at math and that nobody needs it (and then getting the wool pulled over their eyes thanks to their ignorance and innumeracy).
@Boxing_Gamer
@Boxing_Gamer Жыл бұрын
@ yeah once people have been programming in oop for some time, it's hard for them to break free from that thought process. But I wonder how hard fp would be to learn if it was your first language?
@scvnthorpe__
@scvnthorpe__ 2 жыл бұрын
In retrospect its the kind of thing you want to be using for like, a microservice or something that intuitively doesn't deal in side effects. So for spam filtering for example it's actually spot on.
@Adam-yf2ux
@Adam-yf2ux 2 жыл бұрын
Your IO Monad video was the only one that sunk in. I watched like 100s of them btw :)
@xravenx24fe
@xravenx24fe 2 жыл бұрын
The amount of info online that potential Haskell programmers dig through just to learn the tool chain and language is so fickle it's ridiculous. It's terribly hard to find up to date learning materials and parts of the tool chain are frequently deprecated or replaced and documentation just doesn't keep up. I remember Haskell Platform or w/e it was was the de facto toolchain, then Cabal, now Stack which still uses Cabal somewhere, and God knows what it's going to be next lol.
@vadymbiliuk1505
@vadymbiliuk1505 2 жыл бұрын
Because u need to learn things better. U didn't use Cabal for package managment. It was cabal-install actually. And Cabal is a library which Stack uses, yeah
@softwarelivre2389
@softwarelivre2389 2 жыл бұрын
I sense strong JS development vibes here lol
@vadymbiliuk1505
@vadymbiliuk1505 2 жыл бұрын
@@softwarelivre2389 and good salary
@jboss1073
@jboss1073 Жыл бұрын
GHCUP is next.
@Lin_The_Cat_
@Lin_The_Cat_ Жыл бұрын
I think Haskell is an interesting and expressive language, but I gotta agree that maintenance, from my limited experience in it, does seem like a nightmare. The error messages can be very obfuscated, like with how it says there's a type error in a function for example, as well as just the syntax of the language can be a bit difficult to read coming from the imperative side of the programming world.
@spartanA01
@spartanA01 11 ай бұрын
The things you described have nothing to do with what makes Haskell maintenance difficult, but ok. Type errors are one of the main benefits that help with refactoring of Haskell codebases that other languages do not provide in the same level of detail.
@samuraijosh1595
@samuraijosh1595 8 ай бұрын
Wrong justification for the right complaint. Resolving type errors are not the problem, the type errors being so elaborate is part of the intended design. You need to learn about typeclasses and how type meta programming works in general and you'll love those type errors in the long run. The problem actually lies with the poorly managed libraries and tooling and packaging
@crides0
@crides0 2 жыл бұрын
Not sure about Haskell, but people say that Go is a write only language, and I think that's very true. Good for maintenance? Probably not
@Caldera510
@Caldera510 2 жыл бұрын
I also love Haskell...but I don't use it anymore for similar reasons.
@straw4320
@straw4320 2 жыл бұрын
Completely agreed. I wish we have 1/10 compilation time and a 30-second quick project/IDE setup in Haskell.
@deidyomega
@deidyomega 2 жыл бұрын
compile time doesn't really bother me in haskell, but sweet baby jesus does package management need to be fixed.
@AnarchySane
@AnarchySane 2 жыл бұрын
Somewhere Bragilevsky and Granin began to cry(
@AlexanderGranin
@AlexanderGranin 2 жыл бұрын
Well :)) Actually I support the main points of the video. I have a long storry fighting with the overall lack of engineering in Haskell, and I can confirm that the propoganda exists. In fact, it's based on the ideology that Haskell is a superior language, and Haskellers are doing well. Unfortunately, it's prohibited to openly talk about problems (social mostly, technical secondly). I hate to say that, but for decades, the most powerful camps of Haskell were demonstrating the lack of pragmatism and knowledge in software engineering. Also, self-isolation ideology from the outside (mainstream) world was an obstacle to see the ignorance. Despite that, Haskell managed to get some traction of software engineering and attracted some businesses, although these pragmatic people rarely sound in the community as the core believers that math is everything. That's my long-term staying opinion. P.S. Thank you for mentioning me and Vitaly!
@WilliametcCook
@WilliametcCook 2 жыл бұрын
Tried to implement a programming language in Haskell but I could never figure out I/O :P
@insidetrip101
@insidetrip101 Жыл бұрын
cabal (haven't used stack), does suck. However, I think it sucks because its way too involved. You should be able to just say you want package x, and then run package x, but because everything is so hooked to their dependency versions and so many customizable options, it is really really hard to use and a huge pain in the ass. That's not to say it can't work correctly, but it is to say that I've spent at least as much time just learning how to work with cabal as I have having to learn about haskell. The expectation for the developer to get cabal to work right is just too involved, however, I do think a lot of this can be solved simply by containerization. This doesn't solve maintainability and upgrading packages, which is kind of its own beast, but at least you don't end up with hundreds of competing dependencies in a global environment.
@samuraijosh1595
@samuraijosh1595 8 ай бұрын
Yeah I've not been able to install popular Haskell backend frameworks because of stupid Cabal, it complains complains, complains about shit than actually getting shit done.
@willmcpherson2
@willmcpherson2 2 жыл бұрын
Haskell tooling is certainly better than C and C++, but not as good as Rust and JavaScript. Fortunately it's steadily improving
@sky_kryst
@sky_kryst 2 жыл бұрын
Interesting point you make there. I just got into functional programming a year back, explored elixir. Felt disappointed for lack of type system. Was peeking my interests in Haskell, although it was ocaml first. What functional programming language would you recommend for backend use?
@cat-.-
@cat-.- 2 жыл бұрын
Scala, Closure, F# are used a lot in “the real world”. Other brilliant, more elegant languages abound but suffer from similar problems with Haskell.
@jamesgood7894
@jamesgood7894 2 жыл бұрын
I’ve felt that same want coming from Elixir. I tried using Crystal, you can do functional programming, but it’s not immutable by default; if I remember correctly, there are mutable and immutable update functions for arrays, and I always just used structs and instantiated a new one. I haven’t gotten around to doing performance tests. Other than than, I just saw the Kotlin library Arrow, which seems to have a similar feature set as scala’s Cats library, supporting monads and for comprehensions, optics, etc. Ahh, I also wanted a language that could just compile to an executable, and it seems there’s kotlin native which can support that, rather than having to run it on JVM.
@deidyomega
@deidyomega 2 жыл бұрын
Second F#, its not the best, but its great because it works with the entire dotnet ecosystem and tooling.
@digitalspecter
@digitalspecter Жыл бұрын
I'm doing backend stuff with F# at the moment, it's not half bad. That being said, have you looked at IHP (Integrated Haskell Platform)? I've only played around with it but it's very cool platform... and their focus is very much on getting stuff actually done with it :)
@aradarbel4579
@aradarbel4579 2 жыл бұрын
the fault is not in the language, it's in the users. it's too elegant for us mortals and our pity production uses
@TsodingDaily
@TsodingDaily 2 жыл бұрын
I also have another Haskell rant regarding some people overusing custom operators for no good reason, and turning the language into a shitshow despite Haskell having very simple syntax at its core. But that's a story for another time.
@meanmole3212
@meanmole3212 2 жыл бұрын
Just how Bjarne said C++ is great language for experts. Unreal cope.
@herrkrake8106
@herrkrake8106 2 жыл бұрын
I feel you brother! Gods damned already properly installed library can't be found by GHC for fuck sake! Going to ditch xMonad and Haskell.
@fennecbesixdouze1794
@fennecbesixdouze1794 2 ай бұрын
This is a super L take. Haskell's tooling doesn't suck because "Haskell is created by mathematicians and mathematicians aren't great software engineers". Mathematicians make fantastic software engineers. Haskell's tooling sucks because it has very little resources put into it. Cabal is like an afterthought side-project of Duncan Coutts, who has two full time jobs already teaching and working as a consultant. Do you understand how incredible of an engineer you have to be to maintain a project like Cabal in your spare time with two other full time jobs? Literally ONLY mathematicians can be that good at software engineering. Haskell's tooling was actually pretty great for back in the day with ghc-pkg etc, back then programming languages didn't typically come with package managers, so Haskell largely pioneered the model that is now the gold-standard today. The industry has simply taken these ideas and improved on them incrementally, and Haskell hasn't kept up because it doesn't have any money behind it. For the record, I agree Haskell is not suitable to use in industry specifically because it has poor tooling. But mathematicians make outstanding software engineers, and they are typically incredibly practical and pragmatic engineers despite the uninformed stereotypes.
@emszamot
@emszamot 2 жыл бұрын
Could you elaborate what problems with cabal you had?
@SimonClarkstone
@SimonClarkstone 2 жыл бұрын
The second half of this video is a good point about how Haskell's nice maths is held back by problems with the software engineering side. (I myself haven't used it for like 15 years.) It has become a great place to copy ideas from. The first half of the video is at risk of repelling people who need to hear the second half by calling them lying and brainwashed. I can tell you weren't trying to convince any Haskell fans. :-)
@TsodingDaily
@TsodingDaily 2 жыл бұрын
> The second half of this video is a good point... I'm glad you liked my Data Center!
@SimonClarkstone
@SimonClarkstone 2 жыл бұрын
@@TsodingDaily Hehe, that too.
@nolanfaught6974
@nolanfaught6974 Жыл бұрын
As a mathematician, I wouldn’t dream of using Haskell. Julia is another language designed by mathematicians and it manages to look elegant without sacrificing functionality
@vikinggeorge7007
@vikinggeorge7007 Жыл бұрын
Roc is on the way man, and damn it does look promising
@philipkaim7447
@philipkaim7447 Жыл бұрын
"Porn Folder: 9.2 GiB" 🧐
@Michal_Peterka
@Michal_Peterka 2 жыл бұрын
Did you try F#?
@z0nx
@z0nx 2 ай бұрын
Somebody clue me in, is C better on this front?
@slowpnir
@slowpnir 2 жыл бұрын
_Stares in silence_
@rodU65
@rodU65 2 жыл бұрын
Odd. This video was recommended after I spend days studying for my mathematics finals. I never looked anything in KZbin about Haskell.👽
@friedrichwaterson3185
@friedrichwaterson3185 2 жыл бұрын
As Napoleon used to say, "With philosophers, you cannot do anything" or something like that
@ivanjermakov
@ivanjermakov 2 жыл бұрын
Too bad there is no viable alternative being pure functional typed language with a better tooling
@explosionspin3422
@explosionspin3422 2 жыл бұрын
Purescript gang
@khodis2002
@khodis2002 2 жыл бұрын
OCaml?
@tylert2413
@tylert2413 2 жыл бұрын
F# is probably the closest to that ideal. Large ecosystem, IDE, tooling.
@andrescamilo7406
@andrescamilo7406 2 жыл бұрын
Elixir?
@Axman6
@Axman6 2 жыл бұрын
Unison is definitely worth looking at, it’s pretty revolutionary.
@paulcosma2823
@paulcosma2823 2 жыл бұрын
I had the same experience with Haskell sadly. A beautiful language with crappy tooling
@IronicHavoc
@IronicHavoc 6 ай бұрын
Haskell is very fun to learn and then apply the stuff you learned somewhere else
@oliveiracaio57
@oliveiracaio57 2 жыл бұрын
What's your favorite language for functional programming?
@scalacode
@scalacode 2 жыл бұрын
Scala
@saultube44
@saultube44 6 ай бұрын
Yes, their syntax is crap too
@aly-bocarcisse613
@aly-bocarcisse613 2 жыл бұрын
I say to people myself that Haskell is not production friendly. So I cannot say I do not see where you’re coming from. Haskell tooling has improved tremendously in this last 5/7… Saying that it has not been “engineered properly” is going to far IMHO. Also, Go ? I mean come 🤣
@masterlup
@masterlup 9 ай бұрын
what do you recommend instead of Haskell?
@samuraijosh1595
@samuraijosh1595 8 ай бұрын
As in something that gives the feel of Haskell but with better tooling?
@masterlup
@masterlup 8 ай бұрын
@@samuraijosh1595 no as in: What are you using instead of Haskell and how is it better.
@DavidEngelen
@DavidEngelen 2 жыл бұрын
Cardano stans SEETHING rn
@pyogomushroom
@pyogomushroom 2 жыл бұрын
Yeah, I totally agree with you. The Haskell development environment is the worst in the world. If you've ever experienced a rust analyzer, the bloody experience of a haskell language server would want to put Haskell in the trash right away
@taylorallred6208
@taylorallred6208 2 жыл бұрын
I love Haskell as a language for things like niche problems but any time I try to build a larger project I don’t enjoy it very much. I tend to get lost in the details of the implementation instead of just making something that works.
@cat-.-
@cat-.- 2 жыл бұрын
Module system is so bad honestly it should be remade because the language is so good. I gave up the idea before even getting to cabal because when I see how modules worked I knew immediately what it would be like to build large, practical projects with it Still a brilliant language and I don’t regret spending time on it one bit.
@samuraijosh1595
@samuraijosh1595 8 ай бұрын
​@@cat-.- are modules the problem or how cabal handles modules the problem?
@cat-.-
@cat-.- 8 ай бұрын
@@samuraijosh1595 implicit importing unqualified symbols from other NS is what made me die inside, but on retrospect this should not have stopped me from learning it, there are acceptable import patterns that solve that problem
@arkeynserhayn8370
@arkeynserhayn8370 2 ай бұрын
Once i read somewhere that Haskell is NOT a good first functional programming language because you spend more time learning Haskell itself than functional programming. Right now that i am learning haskell (first FP language i am learning) i couldn't agree more; quirks of haskell sytanx is giving me more trouble than lambda calculus and type enforcement combined. How scoping works is bane of my existence. I think i will be much happier learning OCaml and just be mindful not write imperative code.
@ShawnShaddock
@ShawnShaddock 8 ай бұрын
If you think the Haskell tool chain in a pain in the ass, why not develop some tools to make it better?
@kratanuva725
@kratanuva725 2 жыл бұрын
Cabal and Stack are a pain in the ass... Compared to what? Stack and Cabal are the best package managers I've used outside of cargo. I'll take them over gradle any day.
@meanmole3212
@meanmole3212 2 жыл бұрын
yes but cargo is heaven
@cesarfigueroa6119
@cesarfigueroa6119 Жыл бұрын
any thoughts on purescript?
@christophervalerio5964
@christophervalerio5964 Жыл бұрын
Learning haskell... I feel the pain of stack and cabal, specially coming from Rust :) cargo just works.
@maithilijsk7698
@maithilijsk7698 2 жыл бұрын
Do you use any different keyboard or just remap the keys with xmodmap or something. Because I have seen you using Emacs so fast. Just share with use. If you rebind the keys tell us which one. You are awesome btw
@aesthetic3777
@aesthetic3777 2 жыл бұрын
Opinion on OCaml? And how long will it take to learn it to intermediate level? (self-study)
@galtrapecar2702
@galtrapecar2702 2 жыл бұрын
There is really not enough documentation so the majority of the learning you spend trying to figure out why and how something works. Personally I like to build things and OCaml is not suited for that. It’s great for learning in college classes but if you’re going to learn a langage why not go with something more modern/used. As for the time it takes to learn I’ve had it this semester and at the end of the year I still don’t get everything to the point where it feels comfortable.
@xybersurfer
@xybersurfer Жыл бұрын
how about learning F#? it is based on OCaml, but the advantage is that it has the .NET ecosystem including Visual Studio (not Visual Studio Code) for debugging. also .NET Core is now open source and cross platform
@janruysch6612
@janruysch6612 Жыл бұрын
Can you recommend any books about haskell?
@Zetornator
@Zetornator 2 жыл бұрын
Thank you!! Finally i can send this to my professor so he can fck off and pass me.
@Axman6
@Axman6 2 жыл бұрын
If you’re learning Haskell at university, you’re not running into any of the problem Tsoding is talking about.
@xelaxander
@xelaxander 2 жыл бұрын
Hah! Am mathematician, completely agree. My peers and myself have no clue how to develop software.
@Sorc47
@Sorc47 2 жыл бұрын
To be fair, most software developers don't either.
@birdbeakbeardneck3617
@birdbeakbeardneck3617 2 жыл бұрын
are you intrested in maintaining a repo of a programming language inspired by Haskell, but is well engineered as well?
@FDominicus
@FDominicus Жыл бұрын
Just curious why don't you give Ocaml and F# a try? I'd like you to do stuff with that.
@FDominicus
@FDominicus Жыл бұрын
I'm sorry, you did havn't seen it in your channel because I'm sometimes a bit too dumb.
@SebastianPereira
@SebastianPereira 2 жыл бұрын
Don't let the Cardano guys hear that.
@oShinobu
@oShinobu 2 жыл бұрын
This is so relatable
@yecinemegdiche3202
@yecinemegdiche3202 2 жыл бұрын
It's hard for me to say, but many things around Haskell are really a pain...
@ProjectVastness
@ProjectVastness Жыл бұрын
What about using something like F#?
@griof
@griof 2 жыл бұрын
I haven't found Haskell tooling more difficult that Python's. Have you used the tooling as in 2022? Ghcup for example. Not Haskell propaganda just honest interest hahaha
@annie3606
@annie3606 2 жыл бұрын
Ghcup isn't part of the normal tooling imo, its just for managing versions of the actual tooling and compiler. Ghcup working fine doesn't solve the issue of cabal(both the library and the cli tool) and stack just being horrible to use.
@griof
@griof 2 жыл бұрын
@@annie3606 can you extend more??? cabal build or stack build just works fine
@Cat_Stevens
@Cat_Stevens Жыл бұрын
i tried to use stack to install a very small simple dependency for Advent of Code so I could partition a list, and getting stack or cabal set up was so frustrating over 2 days i dropped it
@samuraijosh1595
@samuraijosh1595 8 ай бұрын
​@@griof for me I tried to install some web frameworks based on Haskell through cabal and it just crashes complaining about some niche dependency problem.
@akaalkripal5724
@akaalkripal5724 Жыл бұрын
What happened to frege?
@andyl.5998
@andyl.5998 2 жыл бұрын
Hope you're doing well, man. You look so different now from yourself on the main channel.
@correaswebert
@correaswebert 2 жыл бұрын
too smol PepeHands 🤣
@TsodingDaily
@TsodingDaily 2 жыл бұрын
It is what it is
@anisometropie
@anisometropie Жыл бұрын
Is it something that can be fixed ? I mean, is it just because there not enough tools that make your life easier (Like in JavaScript, nvm, yarn and shit ) or is the language fundamentally unrecoverable ?
@samuraijosh1595
@samuraijosh1595 8 ай бұрын
The language is fine. The tooling, libraries, community support, ecosystem is bad.
@musdevfrog
@musdevfrog 2 жыл бұрын
man spitting facts.
@JT-mr3db
@JT-mr3db 6 ай бұрын
I love Haskell, it’s incredibly fulfilling to be productive in it but it’s true that it’s a complete PITA. When I picked up Go i realized what a completely abusive relationship I was in with Haskell.
@michaelmueller9635
@michaelmueller9635 2 жыл бұрын
Monads were causing too much headache xD xD xD
@simplehaskell4949
@simplehaskell4949 Жыл бұрын
Imo, the way monads are explained is often way too abstract, but in use they click and its really just "oh I can ignore this wrapper" unless you want to write a research paper lol. Have you tried learning parsers? Personally that's when monads clicked for me.
@shalokshalom
@shalokshalom Жыл бұрын
Maybe FSharp is for you
@rubyviolet8
@rubyviolet8 2 жыл бұрын
Tried to get into haskell recently. It seems like kind of a cool concept, but I have no idea in fuck how you'd actually use it to build any kind of serious software. A lot of the functional languages don't seem to like... map very well onto the actual hardware you have. They're meant to be abstract mathematical concepts, they were only implemented as languages after the fact. I prefer lisp lol
@Axman6
@Axman6 2 жыл бұрын
I’ve been writing Haskell professionally for most of the last decade, happy to answer any questions about how you use it for real work.
@davidlynch4202
@davidlynch4202 2 жыл бұрын
@@Axman6 would the code you write on the job be purely functional or would you have to use imperative techniques?
@rubyviolet8
@rubyviolet8 2 жыл бұрын
@@Axman6 how would you implement game engine stuff in Haskell? Like what's the Haskell equivalent of looping through a table of entities and updating everything? Obviously gamedev isn't what Haskell's for, but that's kinda my point, for me personally anyway. Gamedev isn't exactly what c is for either, but implementing a game engine in c is fairly trivial. I just feel like for my purposes I can make so much more happen with imperative programming, but I like functional programming as a concept/for scripting tho.
@datmickey1966
@datmickey1966 2 жыл бұрын
@@rubyviolet8 every iteration-based routine can be replaced with a recursion-based routine. Instead of looping through a table, you can recurse through it, each time processing one element
@lubricustheslippery5028
@lubricustheslippery5028 2 жыл бұрын
@@datmickey1966 If it's still recursion after going through the compiler you would get performance issues. And thus still don't work for any bigger game.
@neroamayo6345
@neroamayo6345 2 жыл бұрын
What is the font he is using on his terminal. Can anyone tell ?
@МаксатРсымбетов-з9о
@МаксатРсымбетов-з9о 4 ай бұрын
Iosevka
@fulcanelly
@fulcanelly 2 жыл бұрын
why don't you write own haskell implementation then ?
@bibliusz777
@bibliusz777 2 жыл бұрын
do u know Unison?
@alaindevos4027
@alaindevos4027 Жыл бұрын
Why don't use F# or Ocaml
@DeltaEpsilon7787
@DeltaEpsilon7787 2 жыл бұрын
Yep, precisely my thoughts. I gave Haskell a full month of use and it's been nothing but pure pain to write in, culminating in a rant-style wall of text of everything wrong with it. At least it gave me an appreciation for small programmer-friendly things other languages do. It's almost as bad to write in as VBA and that's saying something. Really good conceptually, other languages should take inspiration from it, but the language is unironic flaming garbage otherwise. At least it helped me get up to speed with Rust quickly.
@alexanderskusnov5119
@alexanderskusnov5119 2 жыл бұрын
А как же ваш коллега Александр Гранин? Использовал Free Monads и все дела.
@AlexanderGranin
@AlexanderGranin 2 жыл бұрын
Хехехе :) Ну, я смею думать, что делаю это вопреки всем возможным идеологиям Хаскеля, и развиваю альтернативный взгляд на то, чем может быть этот язык и практика его применения. Это гораздо глубже, чем просто использовать фри монады, это прагматизм и инженерный подход. P.S. Я рад, что вы обо мне вспомнили :)
@ziggy6698
@ziggy6698 7 ай бұрын
Haskell community might be the most gate keepy in software, I dont imagine they see their build tools as an issue.
Can't solve this in Haskell and even Clojure
1:24:23
Tsoding Daily
Рет қаралды 53 М.
I tricked MrBeast into giving me his channel
00:58
Jesser
Рет қаралды 24 МЛН
😜 #aminkavitaminka #aminokka #аминкавитаминка
00:14
Аминка Витаминка
Рет қаралды 2,2 МЛН
SISTER EXPOSED MY MAGIC @Whoispelagheya
00:45
MasomkaMagic
Рет қаралды 19 МЛН
Configuring my Emacs. Vim users are not invited!
16:37
Tsoding
Рет қаралды 91 М.
Simon Peyton Jones - Haskell is useless
6:23
bunidanoable
Рет қаралды 370 М.
Why I Prefer Emacs Over VSCode and vim
8:23
Code to the Moon
Рет қаралды 126 М.
Have You Tried These Popular Haskell Programs? (You Should!)
10:44
I tried Swift and came out a different person
1:56:59
Tsoding Daily
Рет қаралды 103 М.
Projects Every Programmer Should Try
16:58
ThePrimeTime
Рет қаралды 494 М.
Gleam: Past, Present, Future! • Louis Pilfold @ FOSDEM 2024
40:33
Louis Pilfold
Рет қаралды 24 М.
Why Rust Tutorials Do This Every Time? - Tsoding
2:12
Tsoding Highlights
Рет қаралды 19 М.
What is a Monad? - Computerphile
21:50
Computerphile
Рет қаралды 606 М.
I tricked MrBeast into giving me his channel
00:58
Jesser
Рет қаралды 24 МЛН