The monad tutorial to bind them all
October 29th, 2007
Many thanks to zipMe who provided some extremely valuable links in the comments to my last entry.
You could have invented monads is the monad tutorial I have always longed for.
It explains the basics (the monad interface) and then describes how these basics can be used to achieve the various stuff you always see monads being used for (sequential programming, side effects) all with very focused examples and excercises, without much Haskell background needed. Not too theoretical to recognize the connection to Haskell, nor too practical to provide insight about the ideas behind monads.
Web 2.0 für den Desktop - Teil 2
September 21st, 2007
Es ist fünf Monate her da ich Web 2.0 für den Desktop geschrieben habe.
Vor einigen Tagen schrieb Joel Spolsky seinen Strategy Letter VI:
So if history repeats itself, we can expect some standardization of Ajax user interfaces to happen in the same way we got Microsoft Windows. Somebody is going to write a compelling SDK that you can use to make powerful Ajax applications with common user interface elements that work together. And whichever SDK wins the most developer mindshare will have the same kind of competitive stronghold as Microsoft had with their Windows API.
If you’re a web app developer, and you don’t want to support the SDK everybody else is supporting, you’ll increasingly find that people won’t use your web app, because it doesn’t, you know, cut and paste and support address book synchronization and whatever weird new interop features we’ll want in 2010.
Imagine, for example, that you’re Google with GMail, and you’re feeling rather smug. But then somebody you’ve never heard of, some bratty Y Combinator startup, maybe, is gaining ridiculous traction selling NewSDK, which combines a great portable programming language that compiles to JavaScript, and even better, a huge Ajaxy library that includes all kinds of clever interop features. Not just cut ‘n’ paste: cool mashup features like synchronization and single-point identity management (so you don’t have to tell Facebook and Twitter what you’re doing, you can just enter it in one place). And you laugh at them, for their NewSDK is a honking 232 megabytes … 232 megabytes! … of JavaScript, and it takes 76 seconds to load a page. And your app, GMail, doesn’t lose any customers.
But then, while you’re sitting on your googlechair in the googleplex sipping googleccinos and feeling smuggy smug smug smug, new versions of the browsers come out that support cached, compiled JavaScript. And suddenly NewSDK is really fast. And Paul Graham gives them another 6000 boxes of instant noodles to eat, so they stay in business another three years perfecting things.
Ich mache hier darauf aufmerksam, weil das thematisch so gut zu meinem Text von damals passt, nicht unbedingt weil ich noch viel Schlaues hinzuzufügen hätte. Das einzige was mir spontan dazu einfällt ist dass das in der Form ziemlich nach Java Webstart oder ClickOnce riecht.
Natürlich ist Joels Ansatz reichlich polemisch, trifft aber den Nagel genau auf den Kopf:
And that’s exactly where we are with Ajax development today. Sure, yeah, the usability is much better than the first generation DOS apps, because we’ve learned some things since then. But Ajax apps can be inconsistent, and have a lot of trouble working together — you can’t really cut and paste objects from one Ajax app to another, for example, so I’m not sure how you get a picture from Gmail to Flickr. Come on guys, Cut and Paste was invented 25 years ago.
Hey Hey OCaml
August 7th, 2007
Wie’s aussieht hat sich auch Steve Yegge schon damit beschäftigt:
OCaml has threads, exceptions, call-with-continuation, calling conventions to and from C, a rich standard library with collections, networking, I/O, graphics, a complete interface to the Unix programming API, and a powerful module system that blows Java’s packages away. It has interfaces and bindings for Oracle, MySQL, postgres, berkeley DBs, CORBA, COM, xml-rpc, SOAP, XML, perl-compatible regular expressions… the list goes on. You name it, it’s there.
OCaml has the potential to make me happy as a programmer, finally.
Mjamm :) Read the rest of this entry »