Archive for the ‘CeBit 2010’ Category

Things I showed to people not knowing Perl but PHP

Sunday, March 7th, 2010

Thank you for reading this article. If you continue, please read it completly before judging or writing about it and expecially before using any information written here!

We were talking to many PHP guys on CeBit 2010. I tried showing the huge power of Perl but – as far as I remember – I never said anybody “forget PHP”. Here are the most important items (odered by usual order of appereance):

1. You don’t need to learn Perl

Neither PHP not Perl people like that fact, but PHP was originally based on Perl. There are still many similarities between both considering keywords and syntax. But most PHP people agree if you say: “If you know PHP, you basically know a good amount of Perl.”

2. CPAN

There are about 20.000 modules for all kinds of things on CPAN, like database access, file parsing, templating and math and all of them are free. All CPAN modules could be installed by a CPAN client which usually comes with your Perl.

Please tell me if you know any other language which has something comparable.

3. DBIx::Class

Most of the PHP users also use MySQL but for the full time of CeBit 2010, I met only one person (who actually was a database expert with some PHP knowledge) who answered the question “Do you like to write SQL statements, expecially SELECT JOINs over some tables?” with yes, all others answered between “no”, “not really” and “less than writing PHP”.

Basically DBIx::Class abstracts the SQL statement layer: Your source dosn’t need to contain one SQL statement any longer. The results are:

  • No need to SELECT JOIN, just point DBIx::Class to some property of the table row you need, maybe using a referenced table in just one line of source.
  • Once you got your object, you could use all referenced tables as simple childs. Sample: $user->customer->company gets the company name out of the customer table starting from the user table pointing to the customer table.
  • DBIx::Class reduces database load by fetchting the object when it’s first actually used, not at the time the object is created.
  • DBIx::Class makes SQL injection impossible because it’s encapsulated by DBIx::Class without any additional development.
  • Reduces development time of database actions by about 50% compared to writing SQL statements (depending on the developer, of course)

Nothing written above has anything to do with comparing PHP and Perl. It’s just comparing DBIx::Class to $dbh->select… (or other ways sending SQL statements in other languages). There is something on PHP which might be compareable to DBIx::Class even (up to me) it isn’t nearly as powerful as DBIx::Class, but most PHP – people I met on CeBit 2010 were still writing plain SQL statements – as I did about eight month ago.

Also remember that using DBIx::Class will introduce a slight part of OOP even to people who don’t actually use it. Up to me this would be the preferred way of starting OOP development because it’s a slow start – you could add more and more OOP as time goes by and you feel ready to look into another world.

4. Catalyst and Template::Toolkit

There are technologies for PHP which are really better in many situations than these two. Catalyst is a complete Web framework which reduces the typical programming amount for weblications and Template::Toolkit (TT) provides a very powerful template engine, but I was working together with some webdesigners in the past which can’t handle it because it was too programmish.

If you pass a DBIx::Class object to TT, the one writing the HTML code could easily access all data of the table row including any child objects and any future changes to the table structure without any additional application source.

5. Coming back to CPAN

I wrote about three examples of the more than 20.000 CPAN modules, but if you ask people what else do they want to do and live-search for it on CPAN, it usually gives you some results. Please recheck this if/when the CPAN search engine (which shows modules even on very slow relations to the search) is being fixed.

Good samples to show are

  • Parse::CSV for parsing CSV files in two minutes development time instead of ten
  • Creating or modifiing PDF files
  • Accessing external things like network servers of any kind

6. How to start

Padre, the free Perl IDE comes with some few lessons within the examples, not enough for really learning Perl but good for looking into the syntax.

The next step would be http://learn.perl.org for many more resources how to learn Perl.

If you want to meet the community, look at the PerlMongers groups who meet maybe also in your area.

If you don’t even want to look at Perl…

…you should at least try Padre which also has a PHP plugin for working on PHP files. You’re welcome to improve it by testing or changing the source.

Last notice: Writing Padre Plugins in PHP should theoretically be possible using the Parrot engine, if you want to try it, please add your experiences to the Padre Trac wiki.

CeBit und die Illusionen…

Friday, March 5th, 2010

Eigentlich wollte ich jeden Abend hier ein bisschen über die CeBit 2010 und unsere Erlebnisse auf dem Perl-Stand bloggen. Eigentlich.

Die Realität sieht so aus, dass das gesamte Perl::Staff – Team @ CeBit Abends einfach nur fertig ist :-)

Wir hatten sehr sehr viele interessante Gespräche und mussten feststellen, das unser Plan, Firmen für Perl zu begeistern, in den allermeisten Fällen undurchführbar ist – weil fast jede Firma es bereits nutzt.

Wir haben von vielen interessanten Applikationen erfahren, wurden aber in aller Regel gebeten, keine Firmennamen oder Anwendungsdetails zu veröffentlichen, bevor die entsprechen Marketingabteilungen der Firmen ihr OK gegeben haben.

Hier vorab eine kleine Liste von Branchen, in denen Perl teilweise sogar sehr weitreichend engesetzt wird:

  • Banken
  • Telekommunikation (SMS, Datenaufbereitung, Datenbankkopplung)
  • ISPs
  • Consulting
  • Wetterdatenaufbereitung

Morgen ist der letzte CeBit-Tag und das ist einerseits schade, denn es macht viel Spaß mit den Leuten über Perl zu reden und andererseits gut, weil die Energie und Konzentration jeden Tag nachlässt – bei allem Spaß ist es auch ein ziemlicher Stress.

Als CeBit Fazit kann man bereits jetzt sagen, das ich nicht annähernd mit diesem Erfolg gerechnet hätte. Wir haben fast durchgehend Leute auf dem Stand, sehr sehr viele kannten Perl bereits und fast allen konnten wir Perl nahebringen oder zumindest einige neue Informationen und Arbeitserleichterungen vermitteln. Zudem haben wir viele sehr interessante Kontakte knüpfen können, die nächste Woche nachbearbeitet und gepflegt werden müssen.

CeBit 2010: Es kann losgehen

Tuesday, March 2nd, 2010

Nach einigen kleineren Problemchen wie defekten Autos oder sturmbedingte Zugausfälle haben es dennoch alle geschafft, wie geplant am Abend vor der Messe in Hannover einzutreffen.

Was erwartet Besucher am Padre / Perl – Stand?

  • Padre – Entwickler und Perl – Experten treffen
  • In Perl geschriebene Spiele mit der Möglichkeit, diese nach Bedarf abzuwandeln
  • Präsentationen von Foswiki, OTRS und anderen Perl – Projekten
  • Viel Informationsmaterial rund um Perl

Perl und Padre sind in der Open Source Lounge in Halle 2, Stand F34.