The Artima Developer Community
Sponsored Link

Ruby Buzz Forum
Two More Eye-Opening Programming Language Experiences

0 replies on 1 page.

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 0 replies on 1 page
Jeremy Voorhis

Posts: 212
Nickname: jvoorhis
Registered: Oct, 2005

Jeremy Voorhis is a Rubyist in northeast Ohio.
Two More Eye-Opening Programming Language Experiences Posted: Oct 3, 2006 7:10 PM
Reply to this message Reply

This post originated from an RSS feed registered with Ruby Buzz by Jeremy Voorhis.
Original Post: Two More Eye-Opening Programming Language Experiences
Feed Title: JVoorhis
Feed URL: http://feeds.feedburner.com/jvoorhis
Feed Description: JVoorhis is a Rubyist in northeast Ohio. He rambles about Ruby on Rails, development practices, other frameworks such as Django, and on other days he is just full of snark.
Latest Ruby Buzz Posts
Latest Ruby Buzz Posts by Jeremy Voorhis
Latest Posts From JVoorhis

Advertisement

As a followup to my last post, here are some brief musings on other recent language experiences I have had that have challenged my comprehension of programming languages. If you have any experiences to share of your own, by all means do!

Common Lisp

Lisp is among the earliest families of high-level programming languages, and it has many incarnations, from the semantically pure Scheme to the pragmatic Common Lisp. Lisp looks daunting, at first, because of its mandatory use of parenthesis for expressing nesting - if you squint, it all looks the same.

One feature that sets Lisp apart from other languages is its ability to treat code as data. Since Lisp functions and Lisp data structures are represented the same way, Lisp's macro system allows you to manipulate Lisp programs at compile time as if they were simple data structures. This allows Lispers to write custom dialects to concisely express common abstractions.

While Lisp is often written about as being esoteric and difficult to grasp for non-Lispers, Practical Common Lisp takes you through a whirlwind tour of vital Lisp techniques and makes them easy to understand; the reader should have a good grasp of macros and where they fit into the development cycle by the end of the book, as well as packaging lisp code as modules and other techniques for programming-in-the-large. Find it at your bookstore or read it online.

Text: http://www.gigamonkeys.com/book/

Language: Common Lisp - try SBCL

Important Concepts

  • Code as data
  • Rapid prototyping
  • Meta-programming
  • List processing - destructuring, et. al.

C++ Template Meta-Programming

If you're like me, you may have learned the basics of C++ at your university and left it at that. What my college didn't tell me about was how the language was re-invented within the last decade by important works such as Andrei Alexandrescu's Modern C++ Design and the Boost community.

The latest C++ techniques have led to highly flexible generic implementation of design patterns and interesting libraries for functional programming and parser generation. I was particularly surprised when I discovered relatively sane implementations for multiple dispatch over value types (think archetypal multi implementations of factorial and fibonacci functions). I implore you to go ahead and explore - you might be surprised at what you find.

Resources

Language: C++ - if you're reading my blog, it's highly likely that g++ is already installed on your system.

Important Concepts

  • Generic programming
  • Template meta-programming

Read: Two More Eye-Opening Programming Language Experiences

Topic: Ruport News, Issue 6 Previous Topic   Next Topic Topic: How To Protect A Rails Application Against Spam with Akismet

Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use