064 MO. 27. NOV. 2006, 17:00 UHR JAVA & FRIENDS RUBY, C#, PHP UND JAVA: KAFFEEKRÄNZCHEN ODER FIGHT CLUB? Jens-Christian Fischer [email protected] http://blog.invisible.ch APL (nur lesend), Assembler, Basic, C, C++, Java, JavaScript, Lisp, LotusScript, Modula-2, Pascal, Perl, PHP, Prolog, Python, Ruby und Smalltalk Sprachen Frameworks Anwendungen „Language is a virus from outer space“ William S. Burroughs APL Auffrischer Primzahlenberechung von 1 bis R Before Java? FORTRAN Algol C C++ Java Pascal Modula 2 Oberon © Foto: Roland Zumbühl, CH-Arlesheim - 11.05.06 Basic Visual Basic VB.Net LISP (defun fibonacci (N) "Compute the1958 N'th Fibonacci number." garbage Collection (if (or (zerop N) (= N 1)) dynamic Types symbolic expressions 1 recursive functions macros (let ((F1 (fibonacci (- N 1))) (F2 (fibonacci (- N 2)))) (+ F1 F2)))) Smalltalk 1969 ^self <= 2 pure OO ifTrue: garbage [1]collection dynamic types ifFalse: [(self - 1) Blocks Inheritance fibonacci + (self 2) VM fibonacci] module Main where import System.Environment Haskell 1990 fibo = 1 : 1 :functional zipWith (+) strong typing fibo (tail fibo) no side-effects Monads Type Class main = do args <- getArgs print (fibo !! (read (args!!0)-1)) Ausdrucksstärke Signal vs Noise Frameworks Am Anfang war der Duke... JSF J2EE r F y b th s k r o JavaBeans w e am a e D Prevayler Anwendungen JSF J2EE Prevayler JavaBeans Elefantenjagd 80% der Anwendungen sind keine Elefanten Metrik Java Rails Zeit (halbtags) 4 Monate 4 Tage Lines of Code 3293 1164 Lines of Configuration 1161 113 Quelle: Bruce Tate, From Java to Ruby, Seite 42 Metrik Java Rails Zeit (halbtags) 4 Monate 4 Tage Lines of Code 3293 1164 Lines of Configuration 1161 113 Quelle: Bruce Tate, From Java to Ruby, Seite 42 eins.de Community Site 200‘000 User 1 Mio neue Kurzmitteilungen / Monat 40 Mio Page Impressions / Monat 4‘000 MySQL Queries / Sekunde 4 TB Transfervolumen / Monat Relaunch 4 Mann Monate Entwicklung Vorher: 50‘000 LOC PHP Nachher: 5‘000 LOC Ruby Quelle: Patrick Lenz, Scaling Rails,Vortrag an Rails-konferenz.de Was kommt nach Java? "I always thought Smalltalk would beat Java, I just didn't know it would be called 'Ruby' when it did." — Kent Beck Let‘s talk! C# / .NET PHP Seaside ? Python / Zope / Django Ruby / Rails