For the third time last week, I went to the 33rd Degree Conference in Poland, organized by Grzegorz Duda. From beautiful Krakow it moved to unknown Warsaw at the hotel Gromada near the airport – huge conference hotel, perfect for a conference but charmless for the guests – adequate, that’s all.
There were two exhibition areas: upstairs and downstairs. Thanks to Grzegorz I had a privilege spot next to Atlassian. Our area was very lively with Luxoff, the composing software people that demonstrated their stuff and invited public participation. You guessed at times it was a little too lively or shall I say plain noisy. Unfortunately I did not manage to go to the second exhibition floor, all I know is that JetBrains was there…. And with JetBrains comes Hadi Hariri. Hadi has the most wonderful personality – he has the knack to make me laugh. Like a lot of funny guys, he give the impression that he does not care but behind the curtains he is pretty scared even though he puts a lot of time preparing his presentations. On the last day, he invited me to listen to his keynote – Developers: Prima Donna’s of the 21st Century. You can see a resume of his talk here.
Other speakers included some of our authors:
. Venkat Subramaniam who wrote the bestseller of this conference – Programming Concurrency on the JVM. Venkat mentioned that he is writing yet another book on functional programming and Java. The book is not going to be available for a long time as he awaiting the latest release of the software.
. Oliver Gierke, co-author of Spring Data.
. Tim Berglund co-author of Building and Testing with Gradle.
I also should mention Dan North who gave several talks and did a great job explaining me what MapReduce means . I think I got it at the time but I slept since and it is gone. Next time I will write it down.
As you can see, the 33rd Degree conference brought together a great bunch of speakers who delivered timely information on the latest developments.
…but what do I think of Warsaw?
COLD! I suppose I should have expected it since most of Northern Europe suffered heavy snow showers that week. As previously mentioned the conference was near the airport so no chance of seeing the town. So on Saturday afternoon, I took the 175 articulated bus and ended up in the Old Town. I was told that 85% of the buildings in Warsaw were completely destroyed during the 2nd World War. The Old Town has been painstakingly completely rebuilt in the old style. It is just beautiful. I would very much like seeing Warsaw in the Summer with its spacious squares and lots of trees. Unfortunately I saw only a little of Warsaw –
- Copernicus statue
- the University
- The University Library
- the Royal Palace
- the cathedral
- the Vistuala (never walk near a river when it is cold)
- the monument celebrating the 1944 Warsaw uprising.
As you can see one could spend a few more days there exploring the town architecture, history, arts etc. Unfortunately it was too cold to go and see the Chopin statue in Łazienki Park. That will be for another trip.
Yes of course, Poland was part of the Eastern block and some of the features of that time are recognizable such as the Palace of Culture and Science and of course the large blocks of flats. Here the blocks have been painted! Would I go back? Yes, but in the Spring or Summer.
March 6th to March 8th saw the 7th annual QCon in London. Like every year, QCon was held at the Queen Elizabeth II Hall next door to Westminster Abbey – a great venue. This year there were even more delegates than in previous years, and key sponsors included Oracle, Skype, 10gen, AppDynamics, Azul Systems, basho, Erlang Solutions, jFrog, Neo4j, Soundcloud, splunk, Windows Azure and many more. With over 110 speakers and 22 different tracks, I was very happy to meet our authors who spent some time at the O’Reilly booth:
- Maximiliano Firtman – it was Maximiliano’s second visit to QCon. He is the author of the forthcoming Programming the Mobile Web, 2nd Edition (due in April) and jQuery Mobile: Up and Running.
- Ian Robinson, Jim Webber and Savas Parastatidis – the 3 authors of REST in Practice, 1st Edition, together for the first time in a long time. Ian and Jim have also written Graph Databases due in June but already available here as an e-book.
- Russ Miles, author of some O’Reilly classics and allegedly writing a new book, Programming Spring, due in November.
- Damian Conway – most of you know Damian as a prominent member of the Perl community, author and presenter. I was lucky enough to attend his “Instantly Better Presentations” keynote. Damian captures his audience very quickly and holds their interest 100%: not only does he educate them but entertains them for 50 minutes. In this talk, he explores seven simple and effective techniques to help us achieve great presentations. It all sounds so easy when Damian is presenting, but one should not forget that he spends hours and hours preparing one talk.
- Francesco Cesarini who wrote Erlang Programming. I believe he is now working on another book on Erlang.
Unfortunately, I was unable to meet Arun Gupta (Java EE 6 Pocket Guide) and Mike Amundsen (Building Hypermedia APIs with HTML5 and Node) who were also speakers. I am sure we will meet somewhere in the future.
Delegates came from all over the world, as far as Australia, Mexico etc. One of my little games is to look at the name badges or listen to the accent and try to figure out where the person come from. I usually get it wrong but I suppose that’s the reason I keep trying.
Off to 33rd Degree Conference in Warsaw!
Free tea and patisserie…
Enjoy!
In this second part of the All about Perl 6 series, we uncover Niecza, the Perl 6 implementation on the .NET platform.
While .NET might not be an obvious candidate for hosting dynamic languages, it can, and very effectively do so, as demonstrated by the Iron languages IronPython, IronRuby or IronJS.
Niecza works with both .NET and Mono which means that is usable not only on Windows based machines but on Linux boxes too. Both Niecza and Rakudo follow the Perl6 specs to the letter and as this comparison chart reveals, although Niecza is faster and has support for threading/concurrency, Rakudo is more complete as an implementation.
The main man of the project Stefan O’Rear will take us through the background of porting the language to the CLR as well as what the advantages of that move are, or in other words what you can do with Perl 6 on .NET.
NV: For starters, what does Niecza mean? Where does the word’s come from?
SO’R: It is butchered Czech for a lack of time. The origins are documented at gist.github.com.
NV: So why Perl for .NET? What is the idea and motivation behind it?
SO’R: I wanted to try my own implementation of Perl 6; I asked around for a good implementation language with the features I wanted, and Matthew Wilson (diakopter) suggested C#. I had never touched .NET prior to this point.
NV: Why target the CLR and not the DLR which is specifically targeted for Dynamic languages?
SO’R: One reason is that nobody told me about the DLR until it was too late. Also, I think the DLR is a bad fit for Perl 6 conceptually and would require a lot of slow glue. In particular, the DLR has a very different idea than Perl 6 about how arithmetic operator overloading should work.
NV: Is language interop with the rest of the .NET languages possible?
SO’R: There is interop support but it’s not transparent; it tries to be as transparent as it can, but when bridging two systems as different as Perl 6 and C#, there will be roughness.
NV: Does Niecza plug into out of the box facilities of .NET like the GC, threading etc?
SO’R: Yes, it uses .NET GC and threading.
NV: So generally speaking that is the big plus of VM’s, plugging in into ready made facilities?
SO’R: Yes.
NV: Do Rakudo and Niecza start in common ground and then branch off, like being two branches of the same tree ? can they both follow the Perl 6 specs to the letter while at the same time targeting two different VM’s?
SO’R: Both implementations follow the spec to the letter, except when buggy. The language isn’t adapted to the VM; it would certainly be faster and easier, but we don’t want to create branches.
NV: Ultimately what can one do with Niecza? Is it possible to access .NET libraries or use Linq? Or through Silverlight can you achieve Perl on the browser?
SO’R: You can definitely access .NET libraries, there are a couple of Gtk# samples. Language Integrated Query is a C# feature, and Niecza does not make it available in Perl 6. Silverlight can probably be made to work with some effort; as far as I know it has not been attempted. But Perl in the browser is already a reality thanks to Flavio Glock’s “Perlito” system.
For the full interview please follow Niecza – Perl 6 Implemented in .NET on I Programmer
Nikos Vaggalis has a BSc in Computer Science and a MSc in Interactive Multimedia. He works as a Software Engineer/Database Application Developer and codes in Perl and C#.
For the upcoming edition of DevopsDays London I sat down with Gareth Rushgrove @garethr (GR) – he’s the guy behind devopsweekly.com, the newsletter the #devops community expects in their inbox every Sunday.
KB: So devopsdays is finally coming to London, after years of travelling around Europe. Although London has had a pretty active #devops community, it’s finally happening. How come it took such a long time?
GR: London is a big city with too many technology conferences and events to count! Lots of people from London have made the trip for devopsdays events in Ghent, Hamburg and Gothenburg, as well as visiting events like Velocity and occasional London Devops meetups drawing 80 or more people, London has been well served. As the devops community has grown, however, it makes sense to have a devopsdays event in the UK.
KB: At the first #devopsdays in Ghent there was already a pretty large UK delegation. Why do you think there is such a broad interest in devops in the UK?
GR: The UK, and maybe London in particular, has an interesting mix of start-ups, large media companies and financial services organisations. This brings with it a large group of tech-savvy business people, developers and systems administrators, all looking for anything that makes often large complex organisations run better. Devops has grown out of this rich melting-pot of like-minded people too
KB: London has a mix of traditional enterprise and start-up cultures. Do you think that will impact the type of visitors to Devopsdays London? Will it be different to other events?
GR: I hope so. I think all the devopsdays events I’ve been to have had a local flavour to them. The different tribes in London, say the startup crowd around Old Street or the financial services companies around The City, often go to different events. I’m hoping devopsdays gets everyone together in one place to share ideas and stories.
KB: As a long time devops enthusiast, what’s rocking your boat about Devopsdays London?
GR: Without question the quality of the talks. Real war stories from inside interesting, complex organisations with real problems (and hopefully some solutions). The open spaces format as well in the afternoon is always incredibly interesting too – it’s great to be able to discuss something that happened that week or the week before with other knowledgeable people.
Kris Buytaert is a long time Linux and Open Source Consultant. He’s one of instigators of the devops movement, currently working for Inuits.
He is frequently speaking at, or organizing different international conferences and has written about the same subjects in different Books, Papers and Articles
He spends most of his time working on bridging the gap between developers and operations
with a strong focus on High Availability, Scalability , Virtualisation and Large Infrastructure Management projects
hence trying to build infrastructures that can survive the 10th floor test, better known today as the cloud while actively promoting the devops idea !His blog titled “Everything is a Freaking DNS Problem” can be found at http://www.krisbuytaert.be/blog/.
We set to explore Perl 6’s key language elements and at the same time get behind the scenes of the underlying infrastructure provided by its two implementations, Rakudo and Niecza.
In this first part of the series we interview Moritz Lenz about Rakudo, Perl 6’s implementation on the Parrot VM,
while we also establish the relationship between Perl 5 and Perl 6 and examine where they differ.
Moritz is a Physicist from Germany who fell in love with Perl from an early age, a regular contributor to the Rakudo compiler as well as an acknowledged member of the People of Perl 6 club.
His great experience and knowledge in Perl 6’s internals will allow us to take a deep look into the language and discover its potential, merits and reasons to try it out!
NV: Recently you went to a town called Perl for a meeting about unification of the Perl 5 and Perl 6 communities. Are the Perl5 and Perl6 two distinct communities or do they overlap?
ML: There is a certain overlap. For example p5 and p6 folks go to the same conferences, workshops, hackathons but many Perl 5 core developers ignore Perl 6 and while most Perl 6 core hackers roughly know what’s going on in Perl 5 land, there had been a big lack of communication.
NV: Is that true of the languages as well? I mean are Perl 5 and Perl 6 two distinct languages, or will past experience of Perl 5 make adoption of Perl 6 easier?
ML: They are distinct languages from the same family of languages. On the surface they look quite similar and they are designed using the same principles:
- easy to learn (it’s possible to speak “baby perl” without learning much of the language)
- get things done quickly
- there’s more than one way to do it
On the other hand they are different enough that a Perl 5 program doesn’t run on a Perl 6 compiler, or vice versa and different enough that automatic translation from one to the other is quite challenging. So if you know Perl 5, Perl 6 feels familiar, but under the hood a lot has changed.
For example, Perl 6 is object oriented to the core, where Perl 5 is not.
NV: Why switch to Perl 6, what does it offer to programmers, i.e what features stand up in a programming end-level? Is there a niche field that it really shines in?
ML: First, it supports both object-oriented and functional programming styles really well and then it has lots of features that no other language has combined before.
For example, Perl 6 has lazy lists, which are usually only found in pure functional languages, and it offers a meta object system, which means you can create your own object types (like classes, roles, enumerations).
Also, its function signatures are powerful enough to compete with the pattern matching facilities you might know from functional languages like Haskell. And the nice thing is that you don’t have to know all those fancy features to get started — you can write well-readable Perl 6 code with basic knowledge, but an experienced programmer can use all the “power” features.
Oh, and it is dynamically typed, but you can chose to add type annotations, and profit from enhanced speed and safety where you do
NV: For people that have experience in other classic or static OOP languages, Roles can be used to construct Interfaces, Abstract classes, as well composition over inheritance?
ML: Right, you can use them both for interfaces as you know them from Java, and for code reuse, where they detect method conflicts at compile time, which multiple inheritance usually does not.
NV: What does Parrot offer a language implementer? Better parsing facilities or out of the box ones like a GC or JIT?
ML: It has a pretty good GC and there’s a compiler toolkit, which makes it quite easy to parse languages, and generate parrot’s assembler code from it. It also offers pretty good abstraction of OS-specific features and it lets you write extensions in C. For example, Rakudo uses a custom dispatcher for multi-dispatch and has several custom opcodes to speed up hot paths.
NV: Are you concerned that Parrot is too tightly related to Perl 6 and therefore doesn’t get that much attention from other dynamic languages?
ML: No. That was Allison Randall’s concern, when she was Architect of the Parrot VM. In the end it didn’t really attract developers from other dynamic languages, but made life harder for the Rakudo developers.
NV: In the end what would you tell aspiring language implementers so as to lure them into Parrot instead of them opting for another VM like .NET?
Look at the Squaak tutorial (http://en.wikibooks.org/wiki/Parrot_Virtual_Machine/Squaak_Tutorial) and see if you’d like to develop your compiler like this. If yes, chose Parrot.
For the full interview please follow :
Perl 6 and Parrot – In Conversation with Moritz Lenz on I Programmer
Nikos Vaggalis has a BSc in Computer Science and a MSc in Interactive Multimedia. He works as a Software Engineer/Database Application Developer and codes in Perl and C#.
Mobile Tea is a series of afternoon meetings dedicated to the development of mobile devices. The third Mobile Tea will be in Rome on March 13th. This meeting is organized by codeinvaders.net, MobiLovers and Developers Google Group of Lazio and Abruzzo and headed by Giorgio Natili. Not only this event is free to attend but you will also be offered pastries and tea – sound a little weird as I find the Italian coffee so wonderful. Never mind, we are talking about “mobile Geeks” after all. As you know nothing is free in this life, so the tea and pastries is a way to ensure that you will stay and discuss the different talks, ideas until the end. The meeting will be held at The Carrot’s Caffe, Piazza Euclide 1, Roma, RM from 3 pm.
Some talks have already been announced:
- Cloud in a universe of Resources for Development by Antonella Blasetti from Google Developer and Groups – Learn all about OpenData, Google Services and App Designs.
- Open Source Mobile Development by Alessio Biancalana – Learn how to work on mobile using open source tools.
- WebRTC and Node.JS by Giorgio Natili – Learn how to start to work with WebRTC on mobile and desktop browsers.
Please sign up here – you will not regret it and if I am lucky, you will tell me about the greatness of the Italian tea.
We’re all used to hearing horror stories about healthcare in the UK: hospital failings, billions wasted on broken IT, budget cuts and the MRSA virus spring to mind. But I’d like to draw your attention to something positive, the NHS Hackdays – volunteer led weekends of intense collaboration between doctors, nurses, patients and free-software hackers to create disruptive solutions to the problems facing the NHS.
Here’s just a small selection of the work done so far:
- What’s in my Fridge? A web-based inventory database for tracking, finding and sharing laboratory stock within the NHS.
- Cellcountr. A free browser-based tool for haematologists to use to identify and count cells in blood samples. Replaces the current solution: an abacus and notepad.
- ActiveLetter. A system for improving continuity of care when patients are discharged to GP care.
- ChecklistHQ. Research shows that when medical professionals follow check-lists they save more lives and make fewer mistakes. ChecklistHQ is to medical check-lists as GitHub is to source code.
- The NHS-ePortfolio Liberation Front. Every doctor in the UK must use a closed source, locked down and clunky ePortfolio website for tracking their continued professional development. The NELF has created a tool so doctors can log in to this site and liberate their data from the clutches of the closed system. They’ve also started to work on an open-source replacement for the service.
- SharpScratch. A collaborative platform for helping healthcare professionals perform safer and more effective clinical procedures whilst maximising patient experience.
Various participants have blogged about their contributions. These give us a great sense of the effort put in and fun to be had at these events.
If you are interested in taking part in a free-to-attend NHSHackday you’re in luck! There are three coming soon to the following locations: Edinburgh, London and Cambridge. Check out the NHSHackday website for more details.
Perl 6 is a language specification for a new version of the programming language Perl. Any implementation that passes the official test suite can call itself “Perl 6”. Several implementations exist at various levels of maturity and completeness.
These implementations have in turn influenced the design of the language by highlighting misfeatures, contradictions, or features of difficult implementation and little benefit. This process of iteration has produced a more cohesive and consistent language specification.
Implementations of Perl 6
The most complete of the implementations at the moment is Rakudo Star.
Other well-implemented ways that are followed to implement Perl 6:
- Niecza Perl 6 – a Perl 6 implementation focusing on optimization and efficient implementation research, mainly focused on Mono and .Net .
- Perlito, also known as MiniPerl6 – a compiler collection that implements a (subset) of Perl 5 and Perl 6: it can compile Perl 5 and Perl 6 into another ‘backend language’ : Perl 5 to Perl 6 (v.v.), Perl 5 / 6 into Javascript, Perl 6 into Python 2.6, Ruby 1.9, Go, Common Lisp.
Why the ‘6’ in Perl 6
Perl 6 is versatile, intuitive, and flexible. It embraces several paradigms like procedural, object-oriented, and functional programming, and offers powerful tools for parsing text. Perl 6 is the newest member of the family of languages known as Perl. It represents a major break in syntactic and semantic compatibility from Perl 5, thus the increase from 5 to 6. However, this does not mean that Perl 5 is going away anytime soon. In fact, it is quite the opposite. Both Perl 5 and Perl 6 have very active developer communities which mold the languages.
Differences and similarities between Perl 5 and Perl 6
Perl 5 developers try to extend the language in various ways while keeping backwards compatibility with past versions of Perl. Perl 6 developers extend the language by adding new syntactic and semantic features that enable more power and expressiveness without the restriction of backward compatibility with Perl 5 or earlier versions.
Some might ask, “Why call it Perl if it’s a different language?” Perl is both the vagaries of syntax and a philosophy (there’s more than one way to do it; easy things should be easy, and hard things possible); Perl is custom (comprehensive testing, idioms); Perl is architectural edifice (the Comprehensive Perl Archive Network); and Perl is community (perl5-porters, perl6-language). Both Perl 5 and Perl 6 share these attributes to varying degrees. As well, Perl is syncretic. Just as Perl borrows good ideas from other languages, Perl 5 and Perl 6 share features.
Download, use
You can find:
- Complete instructions for downloading and installing Rakudo
- Source code releases
- binary release for windows
Book “Using Perl 6”
A group of Rakudo Perl 6 developers are maintaining an online book. It is free and is a work-in-progress. It teaches you how to program in Perl 6. The title of the book: “Using Perl 6” (last version as of this writing: 2012.05.23 snapshot). The book is written by well-known Perl 6 developers: Jonathan S. Duff, Moritz Lenz, Carl Masak, Patrick R. Michaud & Jonathan Worthington.
All of the examples in this book run with the Rakudo Perl 6 Compiler, but they are in no way specific to Rakudo – any sufficiently advanced Perl 6 implementation can run them. Good luck and – as the Perl 6 community often says – have fun!
To run a Perl 6 program with Rakudo, you will need to include the installation directory in your system PATH variable and issue a command like:
$ perl6 hello.pl
(this must look familiar to any Perl developer).
If you invoke the Rakudo compiler without an explicit script to run, it enters a small interactive mode that allows the execution of Perl 6 statements from the command line.
Getting involved
If you are inspired now and want to contribute to the Perl 6 community, there are some resources available to you.
- the Perl 6 homepage with links to many useful resources.
- IRC: the channel #perl6 on irc.freenode.net discusses all things Perl 6.
- Mailing lists: if you need programming help with Perl 6, send an email to perl6-users@perl.org For issues regarding the Perl 6 language specification, contact perl6-language@perl.org For issues regarding Perl 6 compilers, send email to perl6-compiler@perl.org
Modules for Rakudo Perl 6
A growing list of modules is published on http://modules.perl6.org/ and at the moment of writing this, the number of modules exceeded 140. Of course, this can (not yet) be compared with the immense number of Perl 5 modules on CPAN.
Nevertheless, this growing number of modules makes Perl 6 more useful by the month. Rakudo Perl has a module management tool, panda, to make your life as a module user easier.
Last year, one of the Perl 6 developers exclaimed: “There is DarkPan for Perl 6” which means he found two independent, unknown, groups of people who published some Perl 6 modules on Github. This shows that Perl 6 is in production (without the knowledge of the Perl 6 developers). It is in use.
Perl 6 is here. It exists. It is ready to be used.
Enjoy.
Wendy van Dijk is a website pioneer and Perl enthusiast since 1994. She is also busy in the Perl-community visiting (and sometimes organising) Perl meetings, including workshops and conferences, spreading the good words for Perl.
We arrived in Brussels on Friday and decided to spend a few hours enjoying ourselves before the big weekend. After booking in at the hotel, we decided to walk to the Musée de la Bande Dessinée (aka The Belgian Comic Strip Museum). There we were reminded that comic strips started a long time ago – see les caves de Lascaux, and through the centuries they got better and better or should I say more irreverent and of course funnier. There I learnt that the Strumfs did not translate well, so they are called the Smurfs in English but they are still the little blue people. Unfortunately Asterix was missing, big mistake – he is doubtless le roi de la bande dessinée.
From the Museum we went to the Delirium – one has to go there once in a lifetime on the eve of Fosdem. It is tradition, that attendees of Fosdem will meet at this drinking house on the Friday evening. All the rooms are packed with a large amount of people waiting, talking, drinking in the street. There you meet most of your friends but it is also where my memory leaves me. So should you get a blank look from me, please do not get upset, even though, I don’t remember your name, your face or where we met before I still love talking with you – just give me some little reminders. It is a genuine lack of memory and not that I do not want to remember. After spending an hour at the Delirium, we went for dinner Chez Léon – a well-known place to the Fosdem attendees. The service is perfect, the food is good and not over expensive. After a meal of Chicons and moules, it was time to go to bed and be ready for the onslaught next morning.
Got to the University Libre at 7am and was welcomed by 49 boxes of books to display in a kind of order before the arrival of the delegates at 9.30. The taxi we took that morning was the last time we sat down until we got driven back to the hotel at 7 or 8 pm. As every year, Fosdem is busy or should I say extremely busy. This year seems to be even busier than ever, I am pretty sure that there were over 5000 attendees during the two days. It is always a pleasure to meet our old friends- Ian, Paul, Gerv from the UK, Vim from Belgium, Laurent from France, Liz and Wendy from the Netherlands, Marian and Toni from Bulgaria, Andrew from Russia or new authors Pieter Hintjens (ZeroMQ: The Definitive Guide) , Lorna Mitchell (PHP Web Services) , Daniel Pocock (Monitoring Ganglia) or not so new authors like Brian King. Fosdem is always full of surprises – you never know who will turn up and have a chat.
On Saturday night we went to dinner with the Perl people – Dinner was arranged for 20 people but somehow we ended up over 40 to the annoyance of the chef who could not cope. The food was not the greatest but the beer and the chair were very welcomed as well as the company. At long last I met Ovid Poe, not only a perl guru but an expat as well so we do have one thing in common. What I like about Fosdem is the internationality – at my table for example we had people from UK, Bulgaria, Norway, Finland and France. Language is never a problem – we all talk a kind of English but funny I cannot recall talks about Perl.
Next day we had a lie-in, we did not have to be at the university until 8 am and the tables of books were ready. Sunday is always a repeat of Saturday – busy, no time for lunch and definitely no time to sit down. We had a surprise visit from Raphael Bauduin – one of the key founders of Fosdem but unfortunately retired. Soon the conference was over and it was time to pack, to clean and as you can see nothing changed. Sorry things have changed we now have more than one broom.
But what is Fosdem? It is the meeting of 5000+ open source enthusiasts from all around the world. There are 250+ lectures, lightning talks, dev rooms, key signings, job corner section and of course stands where people can show their open source projects and where you can buy our latest books :).
Thank you to the Fosdem team for such a brilliant show and yes – I will definitely be there next year – will you?