Remember the classic UML “sailboat” book Applying UML and Patterns?
It has kind of a neat image on the cover of a picture of a sailboat, a uml diagram of a sailboat, along with the words “This is not a sailboat”.
(Click on the image to zoom in):
Never noticed before, but I bet it is a tip of the hat to this:
Last June I read “The Evolution of C++”. I was pleasantly surprised by just how fun it was to read. If you’ve ever read Bjarne Stroustrup before you know that he has got a sense of humor and frankness that makes his work quite accessible and informative.
Continue reading “Fun read on the evolution of C++”
One common complaint about non-mainstream programming languages is that there hasn’t been any “real code” written in that particular language. One response to this is the Practical Common Lisp book.
Whether or not a MP3 database or a spam filter is “real code” is up for debate. Nonetheless, based on the success of the book, people clearly want to see “real code”.
In your mind, what is “real code”? What is it that you need to see in order to believe that a language can do “real work”?
ms-window-move-resize-info is a project to provide both the libraries
and helper programs to do three things:
- Get information about the windows on your MS Windows desktop.
- Move windows on your MS Windows desktop.
- Resize windows on your MS Windows desktop.
Here is how map may be implemented in F Sharp. (At the very least, it is my attempt at implementing it!)
You can run this in the interactive shell.
#light;; let rec my_map fn xs = match xs with | first::rest -> (fn first) :: (my_map fn rest) |  ->  ;; my_map (fun x -> x + 1) [1; 2; 3; 4; 5;];;
val it : int list = [2; 3; 4; 5; 6]
To help drum up excitement for the recently released Visual Studio .NET 2008 (VS08) at the WI-INETA Holiday Party this year, folks who are passionate about .NET are being encouraged to give 5-minute micro-presentations on new features about which they are particularly excited. One rumor that piqued my interest was that F# would be released as part of VS08.
As it turns out, although F# did not get released with VS08, F# RC 220.127.116.11 is available in the form of a stand alone installer which provides VS08 integration. Installation is fast and easy, and in no time you will be up and running with a powerful functional programming language, a great IDE, and full access to the latest and greatest APIs that Microsoft has to offer. The following is a screenshot with a few niceties highlighted in blue:
Although technically it may fall outside the bounds of the original WI-INETA goal of presenting only on VS08 features, I’m hoping that optionsScalper will return to reprise his role as the local F# evangelist by giving a micro-presentation on F# and VS08.
Someone noticed that I’ve learned how to practice guitar. I asked what they meant by that, and they said that I “start slow, memorize the piece, and keep practicing, a little faster each time”. That is what works for me. When it comes to learning how to become a better programmer, I’m not sure that it is so simple (not to say guitar is simple of course!).
How do you practice programming?
I’ve got some ideas on how I do it, but it I’m going to take some time to think about it.
That post is over the hills and far away!
One of the most common reasons cited for not learning more about functional programming is the lack of both good libraries and good development environments. This is a little bit surprising, because when it comes to learning a language, these two features are likely to have the least impact on the learning process. Despite that, this lament continues; there must be more to it!
Programmers, like most folks today, are largely short on time. Wherever they invest it, they expect a good return. When it comes to programming, every programmer hopes that the investment he makes in learning a new language has at least a fighting chance at being applied to solving a billable problem.
F# completely blows away these two huge barriers to folks learning more about functional programming: it has complete access to the .NET platform and has excellent integration with Visual Studio .NET.
This is very, very exciting: even if a programmer never ends up using a functional programming language for billing work, he will have had a lot of fun learning a new paradigm, and will be a better programmer for it!