>he actually uses this
He actually uses this
Other urls found in this thread:
paulgraham.com
benchmarksgame.alioth.debian.org
youtube.com
twitter.com
It's the best high-level language. So what's the problem?
>It's the best high-level language.
It's not.
>Python
>The best high-level language
Fully retarded
Python is actually used, for starters.
parsec is the only good parser tho
M O N A D S
Yeah, MONADS!
Arrows > Monads
when it comes to parsing
soon idris
Friendly reminder that basic arithmetic operators aren't even built in to the language, you actually need to import them from the standard library.
IO is considered a side-effect and impure (because it changes state). Apparently you can get around this with some heavy mental gymnastics involving a state machine that is contained within a burrito and only returns impure code the runtime runs. So, according to this broken logic, only the runtime is tainted, not the code....
Friendly reminder that using this language, it is not uncommon to invent certain paradigms such as zygohistomorphic prepromorphisms which is the functional programming equivalent of AbstractBeanFactoryBuilderDelegator.
Friendly reminder that Haskell only works because of an extremely aggressive garbage collector and it's not uncommon to allocate several gigabytes of memory for even small calculations that's garbage collected immediately after, suspending execution while the garbage collector runs.
Haskell is more for mathematicans and not code monkeys. And thus it is also pretty useless for real world usage. Nevertheless if you like mental gymnastics it is a great language.
That's like saying that Java is a good language, if you just like to write code more than getting results.
714 pages to get started with making it a little more bearable to actually use it outside academics LUL
also
>QuickCheck
I-is this true?
IO is a monad, so you have to learn it since it assures referencial transperancy, but it is not so hard as people talk about it. Even you don't need to know category theory. For example, most programmers think a functor as a container, not a morphism in the Cat category. And that concept is extremely useful, and exists everywhere like other algebraic structures, monoids for instance.
some is true. some is overly exaggerated. some is false.
It's exaggerated and not kind of imprecise, but yeah, it's mostly correct.
*arrows your monad*
*monads your applicative*
*applicatives your functor*
>>>>>>>>>>>>>>>>>>>>>>>>Unironically implying parsing is hard
Keep using those parser generators, Brian Leto.
Not only starters, they use it in research institutions a lot too
>it's not that hard
Half the shit you said is unknown to "most programmers". You don't need it to develop a real project.
>Half the shit you said is unknown to "most programmers"
"most programmers" are Pajeets whose productivity is measured in pages of Java boilerplate
Holy fuck wrecked
And those Pajeets go to Silicon Valley on H1b visas and earn actual money, whereas you sit in your mother's basement and have hizzy fits about how Haskell is the only programming language even pure enough for you to write code in.
Nice multi threading got you there.
:)
Literally no need.
Java code is easy to teach, produce, and measure for mass numbers of mediocre programmers.
A smaller, tight-knit group of higher quality programmers like in a technical startup might be able to compete by using a more efficient but less widely used development stack.
An individual working for themselves on their own time can use whatever they want.
>Java code is easy to teach, produce, and measure for mass numbers of mediocre programmers.
Obviously.
>A smaller, tight-knit group of higher quality programmers like in a technical startup might be able to compete by using a more efficient but less widely used development stack.
Which is why they choose hipster JS frameworks.
>An individual working for themselves on their own time can use whatever they want.
And produce nothing of value.
>>>>>Individuals produce nothing of value
C-C-C-C-C-C-C-C-C-C-C-C-C-C-BITCH
That's not what I said. Individual who can afford to waste away all the time in the world (i.e. focus on shitposting about Haskell on Sup Forums) produce nothing of value.
> no need for multithreading
> in 2017, age of the ryzen threadripper 1950x
Reminder that sage goes in all the fields
>Which is why they choose hipster JS frameworks.
Paul Graham chose lisp. You do find orgs here and there choosing haskell.
>Individual who can afford to waste away all the time in the world (i.e. focus on shitposting about Haskell on Sup Forums) produce nothing of value.
Indeed? Luckily I don't waste away all the time in the world here. Perhaps you are projecting, user?
>Paul Graham chose lisp.
Lisp is not Haskell though, CL and variants such as Clojure are commonly used in the industry (Scheme/Racket not so much).
>You do find orgs here and there choosing haskell.
Are you seriously implying that Haskell is anywhere as widely adopted as literally any other language?
It would honestly not surprise me if fucking Nim and Forth were more widely used than Haskell.
>Indeed? Luckily I don't waste away all the time in the world here. Perhaps you are projecting, user?
Ah, the good old "I know you are, but what am I" comeback.
>Friendly reminder that basic arithmetic operators aren't even built in to the language
and why the fuck would that be an issue? Do you hate actually being organized?
>IO is considered a side-effect and impure
because it is - you never know what can you get from there. In order to ensure correctness in your code you must be extremely careful in your parsing. On the other hand, if you want your shit CMS to be SQL-injected in a matter of 2 days - then feel free to paste your sensible in the query as it is, I'm not your boss
>invent certain paradigms
That's where you're wrong kiddo - they were not invented, they exist as part of the discipline known as abstract algebra, so it's knowledge that, as a programmer, you're supposed to partly have already. Unless of course, as a code bootcamp pajeet which you are, you only know how to program with a bunch of bullshit artificial useless OOP complexity like the AbstractBeanFactoryBuilderDelegators you keep talking about.
>Haskell only works because of an extremely aggressive garbage collector
So does java, except for the fact that its GC is crappy as fuck.
please stop talking about it if you don't know anything about it.
java is a horrible language if you like to write code.
>So does java, except for the fact that its GC is crappy as fuck.
It runs circles around GHC's GC.
>admitting to writing code for the sake of writing code
No wonder why Haskell fags never get shit done.
Common Lisp is what Haskell desperately tries to be, but isn't.
>CL and variants such as Clojure are commonly used in the industry
Clojure programmer here, stop spewing bullshit. Except for, like, 20 companies in the entire world, nobody uses clojure - mind that I'd like it to be otherwise.
There's more people using haskell than clojure, really. It's not that because you don't see it being used by a bunch of webdev API gluers nobody cares of it.
benchmarksgame.alioth.debian.org
not really
you know, there's a world outside your CRUD apps
>not enjoying your job
enjoy suicide at 30
>benchmarksgame.alioth.debian.org
Did you read the link before posting it? Java literally runs circles around GHC for all examples except n-body calculations, which it has more or less the same execution time. n-body calculations is compute intensive no matter what language you implement it in, but for small degrees of n it can be easily vectorised (which is why Intel absolutely loves it to showcase their SSE support).
For the three last benchmarks, Haskell wouldn't even compile or run out of memory and produce bad output.
Sure, what a fantastic language it is.
>No wonder why Haskell fags never get shit done.
????
I enjoy my job, but I enjoy making shit. Not coding for the sake of coding?
>Clojure programmer here, stop spewing bullshit. Except for, like, 20 companies in the entire world, nobody uses clojure - mind that I'd like it to be otherwise.
We used Clojure in both my last jobs, so obviously you're full of shit.
I misunderstood you then. I like programming and making things as well.
Writing code for the sake of writing code is symptomatic of various anti-patterns such as as cargo cult, overengineering etc. It's how you end up with 1500 lines of code for printing Hello, world.
how does enjoying programming translate to writing code for the sake of writing code ?
and where did you observe that "haskell programmers never get shit done" ?
When you start saying shit like your Hello, world implementation is actually abstract algebra and that writing Haskell is like expressing yourself mathematically and you look down on people who prefer to use frameworks to simplify their lives and not go insane over having to reinvent the wheel over and over again.
>Haskell is abstract mathematics, whereas Java is used for menial stuff such as interacting with databases and creating CRUD applications (also known as, you know, the real world).
You really shouldn't use Sup Forums as a place to get an opinion on Haskell programmers because Haskell is basically a meme here and as always on Sup Forums people love to pretend they know shit about something they never touched.
Haskell is elegant and conside, allows for very fast development once you got it (and makes it very easy reuse old code and refactor), is also fun to learn and to code in, implements mathematical concepts, yes, but if you couldn't get shit done with it nobody would use it.
>Lisp is not Haskell though, CL and variants such as Clojure are commonly used in the industry (Scheme/Racket not so much).
>He thinks lisp is commonly used in the industry
Are you serious? Maybe you really do spend all your time on Sup Forums ...
>Are you seriously implying that Haskell is anywhere as widely adopted as literally any other language?
I see my point has sailed right over your head. No, I am not implying that Haskell is as widely adopted as other languages. I am saying that a language is not necessarily bad to use just because it is not widely used.
There are situations - such as Paul Graham and his friend running a small startup that can choose its own technology stack from scratch - in which it may be a fine choice to work in a more meritorious but less industry standard language.
>Are you serious?
It's infinitely more used than Haskell, which was my point. Clojure actually is not so obscure as Sup Forums seems to think, because it piggybacked on the success of the JVM.
>I see my point has sailed right over your head. No, I am not implying that Haskell is as widely adopted as other languages. I am saying that a language is not necessarily bad to use just because it is not widely used.
While all of these are true, these don't address my original concern, namely the lack of adoption.
A lack of adoption also means a minuscule community, which is a major concern for choosing your development platform.
>There are situations - such as Paul Graham and his friend running a small startup that can choose its own technology stack from scratch
When you are a small start up, finding new hires is always a concern and since you're small, you generally want to find good fits.
maybe you should watch that video, user.
Python is sloooooow.....
What the fuck is agressive about unsetting scoped variables once scope is over? And doing anything into so small scopes as possible.
It's faster than PHP?
>It's infinitely more used than Haskell, which was my point
And so what? When Graham chose lisp for his startup there were surely other languages "infinitely" more used than lisp. Graham argues that choosing the more meritorious but esoteric lisp served as a secret weapon for his company. And I expect that Paul Graham knows what he's talking about when it comes to startups.
>>a language is not necessarily bad to use just because it is not widely used
>While all of these are true, these don't address my original concern, namely the lack of adoption.
Huh?
>When you are a small start up, finding new hires is always a concern and since you're small, you generally want to find good fits.
Not just want to find good fits. When you're small it's still possible to find good fits. Once you grow you have to scale your hiring practices and build an organization that can deal with regular turnover and less competent workers that were drawn from a wider population of programmers. The Paul Graham strategy of a small competent team using esoteric but superior tools doesn't scale well.
tfw actually on a good salary programming haskell
Mathematical foundations are nice,but implement is shit.
I'm just not sold. "Paul Graham knows what he's doing" is not an argument to convince me of anything. Smart people make dumb decisions all the time, just look at Elon Musk and the decision that ultimately got him fired from PayPal.
so is php
I can't fucking read functional languages.
Also, I'm not sold on the argument that it is somehow inherently impossible to use good tools in large scales. That's pretty much proven wrong by hipster frameworks being adopted massively even in large enterprise environments.
I think Haskell is not a program for production but learning it has its own advantages, and teaches some very good programming practices thanks to forced purity.
I think it is the same as lisp, such as it isn't a language that you use everyday, but it still lingers somewhat in the back of your mind and teaches you how to write better code in every language
Well, I agree to that notion entirely. I still recommend that people read SICP.
The language is fine. It's beautiful. It's way more powerful than you'd believe. The compiler is fucking amazing. it teaches you a lot.
I use Haskell everyday and really the only annoying thing is the library ecosystem.
eg :
I work with sound and while there are very good synthetizer and music composition libraries; Csound bindings, euterpea, etc; there are no non-binding simple sound libraries. There are also no libraries that are not full blown synthetizers that actually fucking work on all systems . to do bearable OpenAL on haskell you actually have to rely on ALUT which is deprecated( and a nightmare to get working on windows/impossible to install with wine). There is proteaAudio but it relies on fucking pulseaudio on linux. There are SDL and SDL2 mixer but then you have to build the whole SDL libraries just for that.
sound synth libraries are super cool, I actually work with Csound for my main project, and the bindings and functional abstractions are impeccable.
But I don't want to have to launch Csound when I prototype a quick game for funsies on helm or gloss.
I'm stuck with ALUT and I want to cry. I might actually write bindings to a rust library or something.
However if you're looking for fairly mystical ways to implement concurrent coroutines that pipe into a bazillion different recursive threads using magical arrows, you have about 50 different libraries that work perfectly and that provide different implementations.
So yeah. There's that.
Cont. same for image loading btw.
Or you get libraries that can read from files; but don't play it /display it directly and you have to write the bridges between multiple libraries to get it working
Ie to display text with fonts with gloss; you have to pipe together the following libraries :
gloss
gloss-juicy
JuicyPixels
Rasterific
FontyFruity
I want more people to learn haskell so that more "general use" libraries are made. Because it's a really good language
If you come to haskell from an OO background ,do yourself a favor and learn lenses asap. You'll thank me later.
Haskell has no bindings, so it's impossible to do much of value fast like in Python. I wish Python had real, easy to use monads, though.
DELET
What GUI toolkit do you all recommend for use with haskell? Prefer something that works on macos/windows/linux. Thanks.
wow pg, didn't expect to see you here
you literally have no idea what you are talking about