Why Programming Languages

Why Programming Languages? When I present my research work on programming languages, people often ask me “why do you need a new programming language to solve this problem? Why not just implement it as a library?” Or, I get asked “why didn’t you implement it as an extension to {some existing language}?” In this essayContinue reading “Why Programming Languages”

Google and Design

User interaction design is possibly one of the [most difficult parts of software engineering](http://www.amazon.com/gp/product/0672326140/ref=as_li_tf_tl?ie=UTF8&tag=sta080-20&linkCode=as2&camp=217145&creative=399369&creativeASIN=0672326140) . It is also an aspect that has not been the strong point of Google. Google’s strength is in its culture of algorithms and data analysis. The way to win an argument at Google it to _prove_ the other wrong withContinue reading “Google and Design”

Mobile Web Browsers Wars: iOS vs. Android

iOS 5 will be featuring a few new features that enable a better user-experience for web applications. Great news for those rooting for mobile web apps. [Matteo Spinelli (creator of iScroll) even claims](http://cubiq.org/ios5-the-first-true-web-app-ready-platform) that web apps are now completely ready to replace native apps on iOS: > The real revolution might be iOS5. In theContinue reading “Mobile Web Browsers Wars: iOS vs. Android”

Mobile Apps Are Bad At Mobile

David Singleton monitored his Internet connection while on a train journey. Most people have experienced what it is like using mobile Internet in a driving vehicle — it’s generally pretty unreliable. David found that the big issue is incidental latency. Latency can vary wildly, in his measurements between 100 milliseconds and 20 seconds. TCP does not dealContinue reading “Mobile Apps Are Bad At Mobile”

Lisp: The Programmable Programming Language, with Manuel Simoni

Lisp is the ultimate power tool. The language can be extended by the programmer in almost any way it sees fit, without having to wait for Lisp 2.0 or 3.0. It appears to be the ultimate road to infinite programmer expressivity. Nevertheless, with great power comes great responsibility. Are programmers capable of dealing with soContinue reading “Lisp: The Programmable Programming Language, with Manuel Simoni”

Keyword Arguments

Brian Carper blogs about keyword arguments in Ruby, Clojure and Common Lisp: Why are keyword arguments good? You can omit arguments. You can supply arguments in an arbitrary order. Arguments are labeled, so you know what argument means what. Positional arguments require mentally lining up the 7th argument in your function call with the 7thContinue reading “Keyword Arguments”

Microsoft to sponsor Windows version of node.js

From the node.js blog: I’m pleased to announce that Microsoft is partnering with Joyent in formally contributing resources towards porting Node to Windows. As you may have heard in a talk we gave earlier this year, we have started the undertaking of a native port to Windows — targeting the high-performance IOCP API. This requires a ratherContinue reading “Microsoft to sponsor Windows version of node.js”

Are Web Apps An Insult To Users?

Web apps vs. native apps for mobile — this appears to be what everybody is talking about these days. I think native apps currently provide the best user experience, don’t you? As a user, given the choice between a web app and native app, which one would you pick? Unless you signed your life away to theContinue reading “Are Web Apps An Insult To Users?”