Authors: Paul Hammant
A project like PicoContainer is always made possible by the effort of a lot of people. Read about the developers and the contributers' names below. All of them have worked together to make PicoContainer the most valued IoC framework on the planet.
PicoContainer committers introduce themselves in their own words and are listed in alphabetical.
Paul is 36, has worked for ThoughtWorks UK since 2002 and is co-lead of the PicoContainer project. He used to freelance but is now very happy at TW. Paul practices XP on client sites and loves open source on which he is chief zealot for TW. He formerly worked at Apache on the Avalon project and remains there working on AltRMI. He loves the simplest thing as a design metaphor, hates too much XML. He loves the lowest common denominator (LCD) as a mechanism for facilitating divergent designs. To that end, he encourages multiple implementations of LCD ideas and APIs. Paul hopes to see Milli, Kilo and Mega implementations of the Pico idea. He hopes to see a myriad of interchangeable Pico Components. He hopes to see standard APIs for components emerge from those implementations, but never be forced when teams cannot agree. It would be fairly easy to guess that Paul does not like big up-front design. That not withstanding the fact that he used to do bucket-loads of it Paul with Aslak, wrote the first lines. Paired, under the influence of a couple of beers, and based on Joe's story of Rachel Davies' comments to his setter injector IoC work at the start of June 2003.
It is also worth noting that Paul got drunk with Aslak to start PicoContainer on the day a world class coder was effectively expelled from Apache. He voted against that action and won't go into details, but believes that it was wrong. PicoContainer was a way of handling the pain he felt. It deliberately embraces the LCD ideal, and multiple implementations. Paul will eternally resist the unification of all Pico and Nano containers, and also resist a big fat XML design for declarations of component needs and wants in Pico and Nano containers.
Paul is also well known for Enterprise Object Broker and Jesktop
Thomas, introduce yourself …
Aslak is very accomplished in the Open Source space and co-lead of PicoContainer. He leads XDoclet, and has taken over QDox from Joe. He wrote most of the impressive MiddleGen, and has refactored Generama out of both. From an observers point of view Aslak is prolific. Aslak was assimilated into ThoughtWorks in 2003. [ Words by Paul ]
Paul asked me to introduce myself to the list so you can get a better picture of what I'm about. I'm not great at these bio pieces so I'll use a section of Paul's email to prompt me:
>could you introduce yourself to the mail list? A few
>paragraphs on who you are what makes you tick, how old,
>where live, passions, philosophy,
>methodologies, design ideals, hopes for Pico etc
Right then. I'm 30. I'm from a small town in the middle of nowhere in Ireland. I'll buy you a pint if you've head of it. "Clara". In Irish it means "flat place". It is. The Irish don't have much imagination. Except for Joyce.
I've been in software for about 10 years. Highlights include tech lead on Iona's OrbixWeb orb, research on a "next generation case tool" that has patents pending (although company is now bust). Currently freelancing through IBM into Nokia where I'm leading a team that produces the user administration component of a B2B portal. I'm personable, a good leader (by example, I like to think) and practical. I refuse to get involved in politics and try to "fight a good fight" by focussing on getting the job done. I'm living in Helsinki, near the sea.
My primary non-software hobby is fiction writing. I post some of it, the humorous stuff, on my personal website www.mikehogan.net. The picture there is not really me I see a large overlap between fiction writing and software writing and the connection gets stronger in my mind the more I do both. Fundamentally both are about encoding of knowledge. One executes in a CPU, another in a brain. I feel our industry we might have something to learn from the writing industry, where there are career disciplines that we don't have, namely editor, critic and reviewer. I can go into this in more detail when the thoughts properly fuse in my head, maybe in a blog. Its an interesting discussion.
Anyway, back to software. I'm on the agile side of the agile-BigM divide. I believe that the single most important thing in software is the code, and never cease to be amazed by how complicated the world of management have made things. As such, I personally strive to install many of the XP practices where I work, within the limits of the corporate culture, although I try to avoid the word "extreme".
My passion is hard core OO, which is what I want to master. I have a long way to go, but I believe this knowledge transcends all technology fads and is therefore one of the underpinning disciplines. Of the paths open to me, I am not totally gone on an "enterprise architecture", management, methods, web services, bpel etc. So I want to really master the craft of decomposing a system in to an elegant domain object, hence my interest in component oriented programming, aspects, composition and the kind of software metrics preached by Robert C Martin/Mike Clark.
Design ideals? I have none that are unique. I try to follow the advice of the agile movement and iterate (see, this is like fiction, except writers call it "drafting"), unit test (I am not yet a hard core TDDer), keep it simple, document only when necessary (and even then on a wiki), refactor. If I was forced to chose one design over all others it would be the Pragmatic Programmers "Don't Repeat Yourself". If software is about encoding knowledge, then it is done most efficiently and elegantly when there is no repetition. (The same applies in fiction: a sentence that repeats words already in the sentence is not a nice sentence). BTW the Pragmatic Programmer is one of my fave books, along with Code Complete and anything Martin Fowler writes.
My hopes for Pico. I hope to grab Scott McNealy by the scruff of the neck, drag him down here and say "See this. Huh? See this PicoContainer thing right here? Make it part of core java right now or I'll flatten ye". I hope that Pico becomes the de facto approach for all future software, that there is a rich world of components, that components are locatable and easily composed. I'd like to see it facilitate interceptors, and maybe also a community of interceptors. I'd like to see it facilitate component composition via mixins. I'd like to see it facilitate lookup of different impls of a given interface based on a key (Paul reckons there is a better way). I'd like to investigate whether Nano can provide base classes that enable common functionality like logging. Check out BackPedalNanoContainer. Makes for neat code. I'm interested to see if there is something that can be done with JMX and Nano (hazy here), since I think management is one of the great neglected areas.
I have other aims too. I want to write a framework that produces a UI directly from an object graph. Similar to NakedObjects, but more an embeddable thing than an application framework. And once thats done, I want to complete the project I started that provides project management with brains. Now, I said I was on the agile side of things and I am. But many companies are not and will never be. They insist on their microsoft project and anal tracking and projection six months into the future. Thats how it is for me now. I have to fill out spreadsheets, proprietary forms, databases and paper work to say I worked a 60 hour week and task x is 80% done. I believe most of this stuff can be replaced by a computer. So this tool makes all this crap effortless for the developer, keeps managers from your desk and still provids them with all the data they like to play with.
We can't remember whether we've asked Mike to join ThoughtWorks. We probably did, and Mike is happy at Nokia in Finland [ Paul ]
Stephen, introduce yourself …
Dan is a passionate Agile Coach and Developer. He's adept at a huge range of languages, with Ruby being his current favorite. This is his first foray into Open Source. Dan was assimilated into ThoughtWorks in 2002. [ Words by Paul ]
I'm 32 and live in Wiesbaden. I started programming at the age of 12 and had access to really cool systems ranging from WANG 3200 through PDP 8/11 to System-360 ( actually sovjet clones of them, but who cares? ). My first "paid for" work was in 1988, and from that point I financed my study freelance software development. I developed fiscal management systems, medical video archiving, internet applications for telcos and java applet games ( later was for personal fun )…
After study I continued to freelance ( this time for better paying, but also fast failing ) companies and started to work on open source software ( xdoclet ). Now I'm permanently hired project leader, and I'am in position to use ( and develop ) whatever technologies I see fit - of course xdoclet, pico, nano and a lot of other stuff.
My biggest private interest ( besides open source programming ) is mountainbike racing.
I was invited by Paul and Aslak early this year ('04) to participate on the development of this project. I am currently 36 and write code for nearly 20 years in several languages and lately also Java. I have experience in AI software, did system programming and developed and maintained a plattform-independent GUI and database framework, and had to deal with CMS programming in JavaScript and J2EE. I was always involved in automated builds and tests for all these projects and one artifact left is JsUnit.
Pico got my interest after some first steps with IoC using the Avalon framework. I felt in love with Pico from the first moment, because of its simplicity and natural way of programming. Yet, there is a lot of space for further development on top of it and I am happy to be part of it.
My interests besides programming are my wife (who always gets too less time), reading books (a lot of fantasy and SF stuff), hearing celtic-rooted music (although I like others also lot), and - when in mood - cooking
Last, but not least, beeing a Christian is a part of my life, where I have my roots.
Leo is a well-known IoC veteran … Leo, we're waiting for your words here …
I have worked for ThoughtWorks UK since mid 2002, after moving to the UK from Adelaide, South Australia (where all the good wines come from).
I seem to be getting into the habit of working on really pathological legacy systems and leaving them just as they start to get interesting. Componentization is a key tool in fixing these beasties, hence my interest in containers.
I am a big fan of simplicity and what I think of as 'sensible defaults' and the half hour rule - if I can't get it doing something useful in half an hour then its probably not worth it.
Chris was assimilated into ThoughtWorks in 2002.
James used to dislike IoC, when the type that forced you to implement interfaces was the only choice. He championed the whole 'beans' effort at Apache, particularly in Jakarta-Commons. Most recently he's one of the CoreDevelopers and a leading figure on Apache's Geronimo project. Most exciting of all of James' activities has to be the new Groovy language (thank god James got off his XML horse - Ed). James refuses to join ThoughtWorks. [ Words by Paul ]
Mauro, introduce yourself …
Jon is a passionate fellow who's invidually accomplished in the Open Source space. Nanning is one of his babies, and he's a committer to Prevayler. With Aslak, DamageControl is is latest project. Jon was assimilated into ThoughtWorks in 2003. [ Words by Paul ]
Joe Walnes is one of those high accomplished people, with a trail of "I must work with him" fans and quality Open Source projects behind him. He wrote SiteMesh, and large chunks of OpenSymphony. He started QDox, and XStream. One of the unsung heroes of Java/.Net development. Joe was assimilated into ThoughtWorks in 2002. [ Words by Paul ]
Michael, introduce yourself …
A lot of people have contributed ideas and code to the PicoContainer's code base. See the names in the list below in alphabetical order.