girton’s devnotes

ongoing developer notes  

Why Functional Programming?

So what's the best language for exploring FP's benefits? It depends.

Let's say you're heavily invested in Java skills and tools, and don't want to toss aside the code libraries and the skills and tools you count on. Then you should take a look at Scala.

Scala is a multi-paradigm language that integrates essential features of iterative object-oriented programming with the FP paradigm. It compiles to JVM bytecodes, you can use Java libraries in your Scala programs and inherit from Java classes. You depend on Eclipse? There's a plug-in. Scala lets you isolate those parts of your code that truly need the benefits of FP and write everything else in Java.

Mike Swaine ticks off today's functional programming languages in a list: Scala and F# (for Java and C# environments), Erlang for the hard core, and Haskell for the academically inclined.

Scala got a lot of attention when the Twitter server was re-written in Scala, and many serious java developers are either picking up Scala now, or have it on their schedule for the next year.

There's never a bad time to learn another programming language.

Loading mentions Retweet
Posted by George Girton 

Comments [0]

Links on Friday is the new black: Stylish Thoughtful, Informative, etc...

Last night I listened to Kent Beck's talk on a dozen trends. The talk was about an hour and the link is carried below.
 
KB is always interesting.
 
The trends, in order of discussion, by trend category:
 
MORE information sharing (less privacy and not feeling too bad about it), more information collecting (this call may be monitored), and more frequent software releases -- maybe between each keystroke (?!), would be the logical endpoint of the trend.
 
LESS complex data -- relational databases having hit a high water mark and now being supplanted by "stupidification" of data -- use of large files, terabytes of key-value pairs processed Hadoop/MapReduce in clusters. And SCREENLESS computing (ipod shuffle.) Kent doesn't specifically talk about wearable, but that's where the less-display computing trend is going. You could have a phone without a screen, right? What would that look like!
 
UNINTENDED CONSEQUENCES: Computers sucking up 10 percent of the world's supply of electricity. Loss of privacy.
 
GONE are both "free" and ad-supported software. They will disappear, along with other deferred revenue business models. Free only works if you have something to sell. What's left: paying for things you find valuable. Could work!
Also disappearing: talk about software re-use. If your speed of development approaches a very fast rate, you no longer care about re-use. Gone: high status for programming. Everyone knows what it is now. KB charges less than he did 15 years ago.
 
NEW trends -- DESIGN will become a more and more important skill, making clear layers, separation of concerns. In KB's responsive design project he learned that design is LEARNABLE.
The use of automated tests. How many tests do you run a day? The number is going up. With faster and faster release times, you just can't wait for someone else to catch your mistakes. Ten years from now -- run all the tests in between every keystroke? JUNIT MAX -- make test running time more productive.
 
WHY? The big question at the end of thinking about all the trends is WHY? What do I want to accomplish for the remaining years I have programming? If you focus on money alone, you end up causing problems you never thought about.
 
...
So that's the talk summary. Here's the meme-a-the-week, pass it on: Stylish, Thoughtful, Informative, Powerful and don't-do-this Radical.
 
Stylish -- A romantic getaway near Rutland Vermont
http://www.whiterocksinn.com/explore.html
 
Thoughtful -- Kent Beck on 12 trends
http://www.infoq.com/presentations/just-you-wait
 
Informative -- Robert Cadena's links of the week
http://applied-ux.com/blog/
 
Powerful -- It works for Google...
http://wiki.apache.org/hadoop/HadoopMapReduce
 
Radical (how to try things at home that you shouldn't)
http://goodexperience.com/2009/06/flamethrowers-availab.php

Loading mentions Retweet
Posted by George Girton 

Comments [0]

iPhone 3.0 SDK installed

The iPhone 3.0 SDK installed with only a slight hitch -- had o delete my entire developer folder to make room.
 
The 3.0 iPhone software went in surprisingly effortlessly after download yesterday. Cut copy paste works intuitively with a double tap, little menu entries come up in your text. A voice recorder app was added, pushing all the other apps down to other screens.
 
All good.

Loading mentions Retweet
Posted by George Girton 

Comments [0]

Joel Spolsky: A Visit to Microsoft and Google, Starting a Business Article - Inc. Article

The proliferation of meetings at Microsoft reflects a larger change in the culture there. Meetings are easy. You just have to show up and shoot the breeze for a half-hour until the large digital clock that is now standard in Microsoft conference rooms tells you it's time to move on. And you never linger: The crowd of people waiting to use the conference room immediately after you will attack you if your meeting runs over.

If what Joel is saying about Microsoft is true, the company is done for -- or will be soon enough.

Loading mentions Retweet
Posted by George Girton 

Comments [0]

Three photos of a tree in the woods

     
Click here to download:
Three_photos_of_a_tree_in_the_.zip (1060 KB)

Here are three photos of a tree in the woods, next to a stream.

Loading mentions Retweet
Posted by George Girton 

Comments [0]

Views from the balcony, North to the mountains, South to the hills.

Often the San Fernando Valley is hot and dry. Not today.

   
Click here to download:
Views_from_the_balcony_North_t.zip (251 KB)

Loading mentions Retweet
Posted by George Girton 

Comments [0]

A small project to remember "Effective Java" by Joshua Bloch

The current Java study group book is "Effective Java" (2nd edition) by Java luminary Joshua Bloch. Reviews of this book advise that you stop writing Java code until you have read the book, or alternately, that you read the book before even beginning to write Java code. I have chosen the second of these two options, although I have installed build 1.6.0_13 of the Java SE runtime environment as part of another project. Project Snore.
 
Seriously, though, Bloch's book is worth memorizing, not only because of its many pithy apothegms. It is worth memorizing because the chapters form an interconnected semantic network!
 
Actually, if you were familiar with Java 5, it's a great look what a broad range of changes have made into Java 6.
 
Starting in June, we will go through the 78 items and assign each item an Italian noun as a mnemonic. By August or perhaps September, depending upon our travel commitments, we will have it. Until then, "Settantotto," or, at the very least, "Settanta!"
 
The first item, "Consider static factory methods instead of constructor"

Loading mentions Retweet
Posted by George Girton 

Comments [0]

Who are Olivet and Sinai, and where is their new home?

Keep twitter track of these two talkin' trams, at the recently relinquished "angelsflight" twitter account, courtesy of Marissa L. Aguinaldo. And therein, no doubt, resides many a tramway tale. Well, one tale, anyway.
 
http://twitter.com/angelsflight

Angels Flight, shortest railway in the world, Circa 2007.

Loading mentions Retweet
Posted by George Girton 

Comments [0]

My Flex and Actionscript 3.0 notes

#1 IMO if your gonna use Cairngorm your better off just going ahead and skipping every framework concept and just making classes with static (global) variables. That's what it feels like to me anyway lol.

#3 If your just starting to try to learn Cairngorm and find it confusing, it's cause you can't make sense of something that doesn't make sense!

#8 Views can actually be reused in PureMVC. It's hard to do this in Cairngorm with all the views accessing directly to the global variables in the models. The reason PureMVC can decouple the view from the model is it has something called Mediators which take care of displaying and interaction in the views.

Some entertaining thoughts on Cairngorm and PureMVC ... the rest of the post is worth reading too. I remember being puzzled with the same #1 observation -- thinking isn't this just a way of simplifying your global-variable access?

Loading mentions Retweet
Posted by George Girton 

Comments [0]

One Div Zero: A Brief, Incomplete, and Mostly Wrong History of Programming Languages

A Brief, Incomplete, and Mostly Wrong History of Programming Languages

1801 - Joseph Marie Jacquard uses punch cards to instruct a loom to weave "hello, world" into a tapestry. Redditers of the time are not impressed due to the lack of tail call recursion, concurrency, or proper capitalization.

And that's just the beginning. Wonderfully, commenters pointed out that the Jacquard loom programming language DID support concurrency, or must have, because it was "multi-threaded".

Sorry not to see LOLCODE included in the history, but still managed to laugh out loud many times.

Loading mentions Retweet
Posted by George Girton 

Comments [0]