Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

DATA TURBOFLOW ULTRAPROGRAMS

Name: Anonymous 2014-07-08 22:37

OK, /prog/, I am KIND OF DRUNK, like I've just had a couple of turbo margaritas, so just bear with me here

Unix pipelining is the thing about Unix we actually like, right? It can be understood as a stringly typed dataflow language where the individual "nodes" (I forget what the real terminology is) call out to implementations in native code. The flow of data is an immutable fact, which I am stating for the record, because that's what a pipeline fucking is. But we all know stringly typed data is a pain in the ass to work with, and the whole reason Perl (for example) became popular was that it imparted just the barest degree of structure to the pipeline by spitting that fucker up into arrays and hashmaps and whatnot and still giving you the power to put it in the ear when you're working with actual text. But the essence of Unix power, the pipeline, was no longer there.

Right now we have three technologies in (pseudo-)popular use that recreate some of the usefulness characterizing the Unix pipeline, but without resuscitating it in its pure, entire glory. The first of these is generators in Python, and since every competent programmer obviously knows Python, I won't actually say anything about them, because you already know everything I could possibly say. The second is LINQ, which you can only use if you sell your soul to Microsoft and chop off your left thumb for the summoning ritual. The third is the most general case: Lazy sequences, available in Haskell (OBVIOUSLY), Clojure (part of the basic design), Go, and some other shit I can't remember or don't care to mention.

Anyway, these new technologies give you a godlike power which the Unix devs of yore could only dream about: The ability to COMBINE MULTIPLE PIPELINES INTO A SINGLE PIPELINE!!! In Haskell you can do this using zipWith. It's not necessarily formalized into a function in the others, but it's there.

DISCLAIMER!!! IN MODERN SHELL SCRIPTING YOU CAN COMBINE PIPELINES BY USING A FIFO OBJECT!!! IN BASH AND ZSH YOU CAN DO THIS WITH THE <(secondpipeline) SYNTAX BUT IT'S NOT ACCOUNTED FOR IN THE DESIGN OF MOST UNIX PROGRAMS!!! COMMANDS WHICH USE THIS FUNCTIONALITY ARE NOT REALLY STANDARD!!!

Coming from totally the other side of the putrid orifice, we find something known as """Reactive Programming""", inspired by spreadsheets, which attempts to actually bring real precedent from dataflow programming to the world of Haskell and its most incestuous cousins. Additionally, we see the parallelization efforts balls deep in the modern wonder of the GPU, including Haskell's own Repa project, which some guy wrote his thesis on!!!

And then there's all these new languages which try to do crazier things with their type system than Haskell is capable of. You've heard of Coq and Agda, but there's also Idris, which wants to murder Haskell and devour its heart so it can absorb its power and claim its throne. These dependently typed languages are NOT TURNING COMPLETE!!! They can't be. You have to prove to the compiler that you're not a fucking idiot when you program in them, unlike in Haskell where you're allowed to write head []!

What I'm contemplating now is the Mega Man of programming languages, the Captain Planet of dataflow, which COMBINES THEIR POWERS for a new kind of programming paradigm. You write the processing nodes in "level 1," which is dependently typed and proves that it terminates, and looks like a bunch of Python generators with nitro in the engine and flames painted on the doors. Then you hook it together in "level 2," which is more like a souped up version of a Unix pipeline and tracks the Big-O complexity of its arguments so it can shoot lava out of its balls!

I AM GOING TO PASS OUT!!!

Name: Anonymous 2014-07-08 23:37

>>2
Looks like the Haskell faggot is false flagging again.

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List