zurΓΌck zu gif industries

5 haskell microframeworks you will love

abstract

The internet is a great technology, but is it still relevant? We believe that the answer is yes.

With the increasing number of personal homepages under construction on the internet, it has become apparent that cyberspace is here to stay.

So many youngsters are participating in the ever growing landscape of hypertext document linking. But the complexity of these tag trees is increasing at an exponential rate. How will the web masters of tomorrow tame their mainframes?

The Haskell programming language that was forged in the fires of mount Glasgow offers a solution for escaping from the tar-pit of tangled structures: microframeworks.

We will present 5 of the most extraordinary m-words ever created, and we believe that you will love them!

flora power

🌻 is a rather interesting πŸ’»πŸ“š. You're most certainly going to 😍 this one!

Unlike most πŸ“š, 🌻 takes full advantage of your πŸ’»'s text processing capabilities. Most πŸ’» are able to represent a wide range of logical πŸ”€. By taking full advantage of 🎹, creating 🌈 is now easier than it has been ever before!

Here is a full code sample that produces ✨.

🎩 :: πŸ‡ 🎩 = ⭐

This is just one of many iconomorphic functions provided by 🌻. It is worth noting that 🌻 is powered by πŸŽ† and πŸ“Ž. Oh and also 🌞.

πŸŒ€

asking for a friend

asking for a friend is a popular microframework based on deflection theory. Upon installation, a disclaimer is presented. Like with most open sores software, you will not get your money back.

Nevertheless, asking for a friend is used by many large companies, and has a strong community behind it.

One of the major challenges of technology is respecting the privacy of the users. Many popular cloud services will accidentally collect all of the personal information about their users, including their sexual and love interests, medical history, favourite pornographic actors, location, friends, conversations.

Of course, they do not do this on purpose. It is just an accidental side-effect, not of the algorithmic design, but of the implementation, to collect and store forever all of the personal information of all users.

Luckily, functional programming allows us to avoid such undesired side-effects. asking for a friend solves this problem by not allowing any interaction with databases, the filesystem, or reality.

We have taken a code sample, that we would like to present here.

app = asking for a friend | lol no really

This code fragment will not store any private data. It follows the semantics of HTTP by being stateless and idempotent.

int main

Have you ever wanted the power of C with the comfort of your neighbour's dog pissing in your garden? This is exactly what you get with int main.

Most code will behave exactly the same way, independent from context or platform that it is running on. The curry-howard correspondence ensures this. However, int main has found a way of beating curry-howard.

int main ships with its very own embedded domain specific language. This language has a semantics that depends on the domain name that the site is hosted on.

Once a request hits the server, the domain name is taken from the host header and passed through a hashing function. The hash is then interpreted as an encoding of a turing machine configuration, to be run on a Universal Turing Machineβ„’.

This allows the same server to serve many different web sites, and the server is not only stateless, but also codeless. The code is provided as part of each request.

We demonstrate an example request that makes you want to curl up beneath the covers:

$ curl -v gif.industries * Rebuilt URL to: gif.industries/ * Hostname was NOT found in DNS cache * Trying 176.58.127.253... * Connected to gif.industries (176.58.127.253) port 80 (#0) > GET / HTTP/1.1 > User-Agent: curl/7.37.1 > Host: gif.industries > Accept: */*

We did not make this feces up, it is actually a valid int main request!

foldr

foldr is an enterprise grade holomorphic microframework built on functional reductions.

Most of the time, reductions are applied on a level of gender, personality, physical appearance, race, or economic status. All of these reductions are very effective, but they are also quite superficial.

While each one of them serves a seemingly different oppressive purpose, it is important to note that they all have a common goal: keeping intact the power structures that benefit those in power.

Why not, then, skip the superficial aspect and focus on the functional: oppression. This is what foldr does. It reduces superfluous dependencies.

As a matter of fact, foldr is so reductive, that when its own source code was fed back into itself, it was reduced to a single bit (binary digit).

We believe that this makes foldr the smallest yoctoframework. We have reproduced the entire foldr source code here:

0

For the sake of brevity, the comments have been omitted from this source listing. They are left as an exercise to the reader.

ACMEScript

ACMEScript is arguably the most popular Haskell microframework.

It was popularized in the 1990s by raves, cheap snortable heroin and goth clubs.

But it has come a long way since then. Not only has it become a very popular compiler target, it is also being targetted by many compiler writers who are deciding to leave the industry, just in time for a new generation to take over.

The ACME corporation, famous for their explosives and various research labs, have produced an explosive microframework that has the potential to completely fry all computers in existence.

That microframework is ACMEScript. It's the future. Just like your future, it is dark and full of errors. Just like your future, it does not really exist. Just like your future, it will make you regret your life choices.

Because you will love your future, we believe that you will love ACMEScript!

conclusion

The landscape of web tooling is vast and diverse. Finding the right tool for the wrong job is often a tedious task.

We hope that the selected slices of the metaphorically delicious cake were able to provide a cross-section of what Haskell has to offer.

With microframeworks like these, who needs enemies?

~igor