Final “Functional Web” Column: the Nitrogen Web Framework

December 20th, 2012  |  Published in column, erlang, framework, HTTP, web  |  Bookmark on

The November/December 2012 issue of IEEE Internet Computing magazine contains my final “Functional Web” column covering the Nitrogen web framework. As with all my previous columns, this column is available here in PDF form.

My first column for IC appeared in March 2002, nearly 11 years ago. Back then my column, called “Toward Integration,” focused around enterprise middleware. My old friend Doug Lea, who was on the IC editorial board at the time, suggested that I write it, and who in their right mind would turn down Doug Lea? In March 2009 I stopped that column and began writing the “Functional Web” column, focusing on the use of functional programming languages and techniques for web development. Prior to writing for IC, I was a columnist for the C++ Report magazine, starting in January 1995, and then later continuing that column over in the C/C++ Users Journal. That column focused on distributed object computing, and I stopped writing it in 2005.

That’s a total of 18 years as a columnist, which is a lengthy duration for a side gig done on my own time (and for IC, done on a purely volunteer basis). My common goal for all the columns was to write for practitioners like me — to try to cover topics, approaches, and ideas that other software developers could immediately apply in their own work. I also saw column writing as a way to try to pay back all the authors from whom I had learned so much over the years.

But 18 years is enough, for now anyway. While I might return to publishing in the future, for now I just want to focus on technology and software development.

Thanks to all my readers for your feedback and encouragement over the years. You definitely made it all worthwhile.

Concurrency and Message Passing in Erlang

November 5th, 2012  |  Published in concurrency, erlang, languages, message passing, performance  |  Bookmark on

In July 2011 I received an email asking if I would write an article about Erlang for the IEEE Computers in Science and Engineering (CiSE) magazine. The email said they had first invited Joe Armstrong but Joe had recommended me instead — how could I refuse a request like that? :)

It took awhile, but my resulting article “Concurrency and Message Passing in Erlang” is now published in the Nov/Dec 2012 issue of CiSE. Here’s the abstract:

Developers use the open source Erlang programming language in domains such as telecommunications, database systems, and the Web due to its superior support for concurrency and reliability. Erlang applications comprise numerous processes—lightweight user-space threads—that communicate via message passing. This article focuses on Erlang’s concurrency support and details an example 1D Poisson solver program.

Due to IEEE copyright rules I’m allowed to post only the final draft (PDF) sent to the magazine’s layout folks, but that’s OK since its text and figures are identical to the final published version. I haven’t yet received my hard copy of the magazine, but it looks like an interesting issue; it’s a special one covering concurrency in modern programming languages, and it also contains articles about Haskell and Clojure. The guest editors’ introduction explains the issue in more detail.

If you’re interested, you can purchase the full final article from the IEEE here. And now for some obligatory legalese: My article linked above is © 2012 IEEE. Personal use of this material is permitted. Permission from IEEE must be obtained for all other uses, in any current or future media, including reprinting/republishing this material for advertising or promotional purposes, creating new collective works, for resale or redistribution to servers or lists, or reuse of any copyrighted component of this work in other works. This material is presented to ensure timely dissemination of scholarly and technical work. Copyright and all rights therein are retained by authors or by other copyright holders. All persons copying this information are expected to adhere to the terms and constraints invoked by each author’s copyright. In most cases, these works may not be reposted without the explicit permission of the copyright holder.

New Column: Server-Sent Events with Yaws

October 8th, 2012  |  Published in column, erlang, events, notifications, web, yaws  |  Bookmark on

My latest Internet Computing column, Server-Sent Events with Yaws (PDF), is now available. It discusses the fact that developers are increasingly building Web applications that rely on notifications from the server, such as updates from social networks, alerts from application monitors, or information from sensor networks. But given that HTTP is a request-response protocol, such notifications can be challenging, giving rise to techniques such as long polling and to entirely new protocols such as WebSocket. These challenges can be especially significant for mobile applications due to intermittent client connectivity and device battery-life issues. This column explores how the Yaws Web server, written in the Erlang programming language, supports the W3C Server-Sent Events notification approach.

Latest Column: Play2

August 30th, 2012  |  Published in column, framework, functional programming, scala, web  |  Bookmark on

I’m a little late in posting this, but in the July/August 2012 issue of Internet Computing, guest columnist Sadek Drobi covers the Play2 framework. Sadek talks about how today’s Web evolutions and the emergence of software as a service and Web services have led to new challenges in programming: distribution, scalability, management of various data formats, stream management, and so on. He explains that Play2 can significantly aid developers in capitalizing on the opportunities the Web offers while minimizing potential risks by leveraging the strengths of functional programming. He outlines functional programming’s power in this context at several levels: data and data format manipulation using higher-order functions; reactive composition with nonblocking I/O for scalability; and reactive stream processing and manipulation using Iteratees with WebSockets and Server-Sent Events. Here’s the PDF of the column.

The same magazine issue is also the “Programmatic Interfaces for Web Applications” special issue that Tomas Vitvar, Cesare Pautausso, and I co-guest-edited. Our guest editors’ introduction explains the purpose of the special issue and introduces the five articles comprising it:

Call for Chapters on REST

August 12th, 2012  |  Published in book, call for papers, REST, SOA  |  Bookmark on

The following is excerpted from the full Call for Chapters on REST:

REST has gained popularity not only as a lightweight approach for Web Service development, but it also often used to denote a loosely coupled and Web-friendly approach to design Service-Oriented Architectures. In this book we gather contributions on applying REST beyond public Web services (e.g., in pervasive computing applications, cloud computing environments and integrated enterprise architectures) and on results of recent research studies for doing so. The goal is to go beyond the basic understanding of what REST is about as an architectural style and collect emerging and established design patterns to provide valuable guidance for the reader. The book will both give a clear, principled description of REST and show how it has made an impact in the state of the practice as well as provide an outlook on ongoing research advances. Readers will find a good starting point for making sense of REST, its design constraints, advantages and disadvantages, as well as a broad collection of novel practical application case studies where using REST has made a difference. The book is intended for service designers, information systems architects and anyone interested in learning the current state of research and application of the REST architectural style.

Please see the full call for details. I look forward to helping review your submissions for this book, especially from those of you focused on submitting interesting RESTful application case studies.