Java, PHP, Flash or Rails? Choose the right technology for your Web 2.0 job! Masoud Kamali, Sebastian Meyen
Masoud Kamali CEO, S&S Media
Sebastian Meyen CCO, S&S Media
S&S Media: Brands
S&S Media: Offices Germany – Frankfurt/Main (Headquarter) – Potsdam – Munich India – Bangalore Singapore Indonesia – Jakarta USA – San Francisco
Who are you?
Techie? Company? – Startup – SMB – Enterprise
Technology DesignBusiness
Tech Requirements Business Agility Scalability Connectivity
User 99
User 03
User 08
Technology Stacks Java Microsoft.NET PHP Perl Python Ruby / Rails
Java Java = Programming Language Java = Programming Platform Languages: Java, Groovy, JRuby, Scala, Rhino, Fan, … Compatibility Mantra – Big Emphasis on Standards
Java Strategic Open Source Sun plays a central role (but the community could also work without them) Java Friends: Oracle, SAP, IBM, HP, Red Hat, … More Java Systems: Eclipse, Netbeans, Android
Java References: All Fortune 1000 Companies worldwide
Requirement Check Business Agility: Scalability: Connectivity:
Microsoft.NET Internal Compatibility is excellent External? Microsofts Commitment to standards (but always loves its own products more than others) Multiple Language Platform: VB, C#, ASP.NET, C++, …
Microsoft.NET Always creating its own flavors – SaaS => S+S – Flash/RIA & Co. => Silverlight – Google, Salesforce, & Co. => Windows Live
Requirement Check Business Agility Scalability Connectivity
PHP Grassroot Open Source Community driven Zend plays a central role (but the community could also work without them) Dynamic Language
PHP High number of Frameworks, Tools, Components – Content Management – Blogs, Wikis – Architecture Frameworks References: Facebook, Yahoo!, Wikipedia, Sixt Car Rental, …
Requirement Check Business Agility Scalability Connectivity
Perl, Python Perl is Old School – but still providing Web 2.0 virtues Python – capable to adopt new technology paradigms Dynamic Languages
Requirement Check Business Agility Scalability Connectivity
Ruby/Rails Newcomer Dynamic Language Ingenious concept (adopted by many others) – Convention over Configuration – DRY (Dont repeat yourself) Community driven
Requirement Check Business Agility Scalability Connectivity
Job statistics
User Interfaces / RIA Ajax, JavaScript Flash, Flex Silverlight JavaFX
Ajax & JavaScript Runs (almost) everywhere JavaScript is maturing these days Frameworks, Libraries still not mature The real big Internet players love JavaScript
Flash, Flex Flash Runtime almost on every machine Mature technology Designers love flash; programmers hate it Flash combined with Flex is a real programming platform
Silverlight Microsofts new baby Mature technology? (Silverlight 2.0) Targets both: – designers (Expression) – programmers (Visual Studio) (Almost) platform independant (Firefox, Mac OS X) Impressive references: NBA, Olympics
JavaFX Sun Microsystems new baby Next Gen Java Applets Not mature yet (Previews these days) Targeting both: Designers and Programmers
More technology stuff Mashups – Ad hoc integration Web Services – Using the network – Amazon Web Services SOA – The heawy weight approach SaaS – Single Services or even application platforms
Everything in the Web is based on XML
Architecture Every technology needs to be architected Ad hoc applications: – No Flexibility – No Extensibility – No Scalability
Agility Communication between business people, designers, technologists is sometimes not easy Agile Processes – Extreme Programming – Scrum – Crystal – Feature Driven Development
Open Source Strategic vs. Grassroot Freedom (Free beer vs. Freedom of speech) Intellectual Property Wikinomics
Resources Open Source Software: Job Trends: indeed.com Tech Trends: tiobe.com Agility: are_development Wikinomics:
Questions?