SlideShare une entreprise Scribd logo
1  sur  12
Télécharger pour lire hors ligne
Vybrané témy implementácie
    webových aplikácií

         JÁN SUCHAL
Ktorý implementačný jazyk & framework?

 Programátor
   Rýchlosť (výpočtová, vývojová)
   Podpora (dokumentácia, knižnice, pluginy, IDE, komunita)
   Prehľadnosť, intuitívnosť (štandardy, konvencie)
   Koľko mi zaplatia a kde?

 Manažér
   Koľko to stojí? (licencie, nástroje...)
   Koľko to ušetrí náklady? (menej serverov?, menej ľudí?)
   Koľko ľudí to vie? (ako rýchlo Ťa viem nahradiť?)

 Zákazník
   ???
“Rýchlosť”




http://shootout.alioth.debian.org/
“Popularita”




http://news.ycombinator.com/item?id=3746692
“Popularita”




http://news.ycombinator.com/item?id=3746692
Implementačné jazyky

 Ruby, Python                                     mixiny, bloky, OO,
                                                    otvorené triedy
 PHP                                              dynamické typovanie




                              Produktivita * 10
                  Výkon * 2
                                                   GC, objekty +
 Java, C#
                                                    primitívne typy

 C++, C                                           štruktúry, funkcie,
                                                    “objekty”, knižnice
 Assembler                                        inštrukcie
Kde mi za to zaplatia?

 profesia.sk
   “java” – 288 ponúk

   “php” – 131 ponúk

   “c#” – 114 ponúk

   “python” – 26 ponúk

   “ruby” – 7 ponúk



     “j2ee” – 110 ponúk
     “asp” – 59 ponúk
     “rails” – 7 ponúk
     “django” – 0 ponúk
Prehľad veľkých webaplikácií

 Wikipedia – PHP, MySQL
 YouTube – Python, MySQL
 Facebook – PHP, MySQL, HBase
 Twitter – Ruby on Rails, MySQL, Scala
 Groupon – Ruby on Rails, MySQL
 Foursquare – Scala, MongoDB
 Bit.ly – Python, Tornado, MySQL, MongoDB
 LinkedIn – Java, Spring MVC, Ruby on Rails
 StackOverflow – C#, ASP.NET

http://www.quora.com/What-are-the-programming-languages-and-frameworks-the-top-NYC-startups-are-using
Frameworky (Django vs. Rails 2.x)




http://www.scribd.com/doc/121814/RailsDjango-Comparison
Frameworky na webaplikácie

 Event-based vs. MVC
    “desktopové” vs. “RESTful”
 Perzistencia
    Adaptéry (MySQL, PostgreSQL, Oracle, MSSQL...)
    Objektovo-relačné mapovanie
    NoSQL databázy (dokumentové, grafové, key-value)
 Bezpečnosť
    SQLi, XSS, CSRF, cookie tampering
 Šablónovací jazyk
    generovanie formulárov, formátovanie...
 AJAX
 Validácia
    Server + klient
Frameworky na webaplikácie

 Testovanie
   unit testy, integračné testovanie, testovanie s db, záťažové testy

 Automatizácia
   Generátory kódu (modely, kontrolery, testy)
   Automatické administračné rozhranie
   Inštalácia závislostí aplikácie

 Cachovanie
 Podpora zmien databázy počas vývoja
 Podpora v editoroch a IDE
 Komunita (vývoj, fóra, biznis)
Zhrnutie

 Menej výkonný jazyk > dlhší vývoj
   Rýchla verzia 1.0, úzke hrdlo sa prepíše do rýchlejšieho jazyka



 Trend polyglot programovania
   Aplikácie používajúce niekoľko jazykov sú čoraz bežnejšie

   Použite najlepší nástroj/jazyk/framework na daný problém



 “Koľko jazykov vieš toľko krát si programátorom.”

Contenu connexe

En vedette

Profiling and monitoring ruby & rails applications
Profiling and monitoring ruby & rails applicationsProfiling and monitoring ruby & rails applications
Profiling and monitoring ruby & rails applicationsJano Suchal
 
Slovensko.Digital: Čo ďalej?
Slovensko.Digital: Čo ďalej?Slovensko.Digital: Čo ďalej?
Slovensko.Digital: Čo ďalej?Jano Suchal
 
Nove trendy v html a css
Nove trendy v html a cssNove trendy v html a css
Nove trendy v html a cssTomas Majer
 
Leveraging microblogs for resource ranking
Leveraging microblogs for resource rankingLeveraging microblogs for resource ranking
Leveraging microblogs for resource rankingTomas Majer
 
MONOGRAM Tech Mondays: GIT
MONOGRAM Tech Mondays: GITMONOGRAM Tech Mondays: GIT
MONOGRAM Tech Mondays: GITTomas Majer
 
Spracovanie velkych dat MONOGRAM Tech Monday 27.07.2011
Spracovanie velkych dat MONOGRAM Tech Monday 27.07.2011Spracovanie velkych dat MONOGRAM Tech Monday 27.07.2011
Spracovanie velkych dat MONOGRAM Tech Monday 27.07.2011Tomas Majer
 
elasticsearch - advanced features in practice
elasticsearch - advanced features in practiceelasticsearch - advanced features in practice
elasticsearch - advanced features in practiceJano Suchal
 
Ruby on Rails Presentation
Ruby on Rails PresentationRuby on Rails Presentation
Ruby on Rails PresentationJoost Hietbrink
 

En vedette (9)

Profiling and monitoring ruby & rails applications
Profiling and monitoring ruby & rails applicationsProfiling and monitoring ruby & rails applications
Profiling and monitoring ruby & rails applications
 
Slovensko.Digital: Čo ďalej?
Slovensko.Digital: Čo ďalej?Slovensko.Digital: Čo ďalej?
Slovensko.Digital: Čo ďalej?
 
Nove trendy v html a css
Nove trendy v html a cssNove trendy v html a css
Nove trendy v html a css
 
Leveraging microblogs for resource ranking
Leveraging microblogs for resource rankingLeveraging microblogs for resource ranking
Leveraging microblogs for resource ranking
 
MONOGRAM Tech Mondays: GIT
MONOGRAM Tech Mondays: GITMONOGRAM Tech Mondays: GIT
MONOGRAM Tech Mondays: GIT
 
Čo po GAMČI?
Čo po GAMČI?Čo po GAMČI?
Čo po GAMČI?
 
Spracovanie velkych dat MONOGRAM Tech Monday 27.07.2011
Spracovanie velkych dat MONOGRAM Tech Monday 27.07.2011Spracovanie velkych dat MONOGRAM Tech Monday 27.07.2011
Spracovanie velkych dat MONOGRAM Tech Monday 27.07.2011
 
elasticsearch - advanced features in practice
elasticsearch - advanced features in practiceelasticsearch - advanced features in practice
elasticsearch - advanced features in practice
 
Ruby on Rails Presentation
Ruby on Rails PresentationRuby on Rails Presentation
Ruby on Rails Presentation
 

Similaire à Aký programovací jazyk a framework si vybrať a prečo?

Node.js @ Rubyslava
Node.js @ RubyslavaNode.js @ Rubyslava
Node.js @ RubyslavaIvan Srba
 
Require.JS & Backbone.JS
Require.JS & Backbone.JSRequire.JS & Backbone.JS
Require.JS & Backbone.JSsrigi
 
AppMonitor Insight Edition
AppMonitor Insight EditionAppMonitor Insight Edition
AppMonitor Insight EditionAdam Lieskovsky
 
BarCamp - Zváračský kurz na Web
BarCamp - Zváračský kurz na WebBarCamp - Zváračský kurz na Web
BarCamp - Zváračský kurz na WebJuraj Michálek
 
Návrh a realizácia web stránky skriptovacím jazykom PHP vrátane administračné...
Návrh a realizácia web stránky skriptovacím jazykom PHP vrátane administračné...Návrh a realizácia web stránky skriptovacím jazykom PHP vrátane administračné...
Návrh a realizácia web stránky skriptovacím jazykom PHP vrátane administračné...Catana0605
 
Čo sú to webové aplikácie ?
Čo sú to webové aplikácie ?Čo sú to webové aplikácie ?
Čo sú to webové aplikácie ?Drahoslav Madar
 
Samuel Hopko & Daniel Rajčan - Cloud Computing
Samuel Hopko & Daniel Rajčan - Cloud ComputingSamuel Hopko & Daniel Rajčan - Cloud Computing
Samuel Hopko & Daniel Rajčan - Cloud ComputingDavinci software
 
MongoDB: Repository for Web-scale metadata
MongoDB: Repository for Web-scale metadataMongoDB: Repository for Web-scale metadata
MongoDB: Repository for Web-scale metadatatkramar
 
MONOGRAM Tech Mondays: REDIS
MONOGRAM Tech Mondays: REDISMONOGRAM Tech Mondays: REDIS
MONOGRAM Tech Mondays: REDISTomas Majer
 
Drupal ako nízkonákladová platforma pre business web aplikácie
Drupal ako nízkonákladová platforma pre business web aplikácieDrupal ako nízkonákladová platforma pre business web aplikácie
Drupal ako nízkonákladová platforma pre business web aplikácieJozef Toth
 
DAWINCI / Ján Grman
DAWINCI / Ján Grman DAWINCI / Ján Grman
DAWINCI / Ján Grman Infodays
 
Zváračský kurz na BlazeDS a Google App Engine
Zváračský kurz na BlazeDS a Google App EngineZváračský kurz na BlazeDS a Google App Engine
Zváračský kurz na BlazeDS a Google App EngineJuraj Michálek
 
WAME IS - modulárny informačný systém
WAME IS - modulárny informačný systémWAME IS - modulárny informačný systém
WAME IS - modulárny informačný systémMário Babej
 
Bezpečnosť webových aplikácií (Martin Zajíček)
Bezpečnosť webových aplikácií (Martin Zajíček)Bezpečnosť webových aplikácií (Martin Zajíček)
Bezpečnosť webových aplikácií (Martin Zajíček)DCIT, a.s.
 

Similaire à Aký programovací jazyk a framework si vybrať a prečo? (20)

Node.js @ Rubyslava
Node.js @ RubyslavaNode.js @ Rubyslava
Node.js @ Rubyslava
 
Mdsd
MdsdMdsd
Mdsd
 
Require.JS & Backbone.JS
Require.JS & Backbone.JSRequire.JS & Backbone.JS
Require.JS & Backbone.JS
 
AppMonitor Insight Edition
AppMonitor Insight EditionAppMonitor Insight Edition
AppMonitor Insight Edition
 
Tastypie
TastypieTastypie
Tastypie
 
BarCamp - Zváračský kurz na Web
BarCamp - Zváračský kurz na WebBarCamp - Zváračský kurz na Web
BarCamp - Zváračský kurz na Web
 
Návrh a realizácia web stránky skriptovacím jazykom PHP vrátane administračné...
Návrh a realizácia web stránky skriptovacím jazykom PHP vrátane administračné...Návrh a realizácia web stránky skriptovacím jazykom PHP vrátane administračné...
Návrh a realizácia web stránky skriptovacím jazykom PHP vrátane administračné...
 
Čo sú to webové aplikácie ?
Čo sú to webové aplikácie ?Čo sú to webové aplikácie ?
Čo sú to webové aplikácie ?
 
Samuel Hopko & Daniel Rajčan - Cloud Computing
Samuel Hopko & Daniel Rajčan - Cloud ComputingSamuel Hopko & Daniel Rajčan - Cloud Computing
Samuel Hopko & Daniel Rajčan - Cloud Computing
 
Analytika
AnalytikaAnalytika
Analytika
 
MongoDB: Repository for Web-scale metadata
MongoDB: Repository for Web-scale metadataMongoDB: Repository for Web-scale metadata
MongoDB: Repository for Web-scale metadata
 
Cv_sk
Cv_skCv_sk
Cv_sk
 
MONOGRAM Tech Mondays: REDIS
MONOGRAM Tech Mondays: REDISMONOGRAM Tech Mondays: REDIS
MONOGRAM Tech Mondays: REDIS
 
Drupal ako nízkonákladová platforma pre business web aplikácie
Drupal ako nízkonákladová platforma pre business web aplikácieDrupal ako nízkonákladová platforma pre business web aplikácie
Drupal ako nízkonákladová platforma pre business web aplikácie
 
DAWINCI / Ján Grman
DAWINCI / Ján Grman DAWINCI / Ján Grman
DAWINCI / Ján Grman
 
Zváračský kurz na BlazeDS a Google App Engine
Zváračský kurz na BlazeDS a Google App EngineZváračský kurz na BlazeDS a Google App Engine
Zváračský kurz na BlazeDS a Google App Engine
 
WAME IS - modulárny informačný systém
WAME IS - modulárny informačný systémWAME IS - modulárny informačný systém
WAME IS - modulárny informačný systém
 
Flask vs django
Flask vs djangoFlask vs django
Flask vs django
 
Bezpečnosť webových aplikácií (Martin Zajíček)
Bezpečnosť webových aplikácií (Martin Zajíček)Bezpečnosť webových aplikácií (Martin Zajíček)
Bezpečnosť webových aplikácií (Martin Zajíček)
 
Programovanie v C++
Programovanie v C++Programovanie v C++
Programovanie v C++
 

Plus de Jano Suchal

Improving code quality
Improving code qualityImproving code quality
Improving code qualityJano Suchal
 
Beyond search queries
Beyond search queriesBeyond search queries
Beyond search queriesJano Suchal
 
Rank all the things!
Rank all the things!Rank all the things!
Rank all the things!Jano Suchal
 
Bonetics: Mastering Puppet Workshop
Bonetics: Mastering Puppet WorkshopBonetics: Mastering Puppet Workshop
Bonetics: Mastering Puppet WorkshopJano Suchal
 
Peter Mihalik: Puppet
Peter Mihalik: PuppetPeter Mihalik: Puppet
Peter Mihalik: PuppetJano Suchal
 
Tomáš Čorej: Configuration management & CFEngine3
Tomáš Čorej: Configuration management & CFEngine3Tomáš Čorej: Configuration management & CFEngine3
Tomáš Čorej: Configuration management & CFEngine3Jano Suchal
 
SQL: Query optimization in practice
SQL: Query optimization in practiceSQL: Query optimization in practice
SQL: Query optimization in practiceJano Suchal
 
Garelic: Google Analytics as App Performance monitoring
Garelic: Google Analytics as App Performance monitoringGarelic: Google Analytics as App Performance monitoring
Garelic: Google Analytics as App Performance monitoringJano Suchal
 
Miroslav Šimulčík: Temporálne databázy
Miroslav Šimulčík: Temporálne databázyMiroslav Šimulčík: Temporálne databázy
Miroslav Šimulčík: Temporálne databázyJano Suchal
 
Vojtech Rinik: Internship v USA - moje skúsenosti
Vojtech Rinik: Internship v USA - moje skúsenostiVojtech Rinik: Internship v USA - moje skúsenosti
Vojtech Rinik: Internship v USA - moje skúsenostiJano Suchal
 
Petr Joachim: Redis na Super.cz
Petr Joachim: Redis na Super.czPetr Joachim: Redis na Super.cz
Petr Joachim: Redis na Super.czJano Suchal
 
Metaprogramovanie #1
Metaprogramovanie #1Metaprogramovanie #1
Metaprogramovanie #1Jano Suchal
 
PostgreSQL: Advanced features in practice
PostgreSQL: Advanced features in practicePostgreSQL: Advanced features in practice
PostgreSQL: Advanced features in practiceJano Suchal
 
Postobjektové programovanie v Ruby
Postobjektové programovanie v RubyPostobjektové programovanie v Ruby
Postobjektové programovanie v RubyJano Suchal
 

Plus de Jano Suchal (15)

Datanest 3.0
Datanest 3.0Datanest 3.0
Datanest 3.0
 
Improving code quality
Improving code qualityImproving code quality
Improving code quality
 
Beyond search queries
Beyond search queriesBeyond search queries
Beyond search queries
 
Rank all the things!
Rank all the things!Rank all the things!
Rank all the things!
 
Bonetics: Mastering Puppet Workshop
Bonetics: Mastering Puppet WorkshopBonetics: Mastering Puppet Workshop
Bonetics: Mastering Puppet Workshop
 
Peter Mihalik: Puppet
Peter Mihalik: PuppetPeter Mihalik: Puppet
Peter Mihalik: Puppet
 
Tomáš Čorej: Configuration management & CFEngine3
Tomáš Čorej: Configuration management & CFEngine3Tomáš Čorej: Configuration management & CFEngine3
Tomáš Čorej: Configuration management & CFEngine3
 
SQL: Query optimization in practice
SQL: Query optimization in practiceSQL: Query optimization in practice
SQL: Query optimization in practice
 
Garelic: Google Analytics as App Performance monitoring
Garelic: Google Analytics as App Performance monitoringGarelic: Google Analytics as App Performance monitoring
Garelic: Google Analytics as App Performance monitoring
 
Miroslav Šimulčík: Temporálne databázy
Miroslav Šimulčík: Temporálne databázyMiroslav Šimulčík: Temporálne databázy
Miroslav Šimulčík: Temporálne databázy
 
Vojtech Rinik: Internship v USA - moje skúsenosti
Vojtech Rinik: Internship v USA - moje skúsenostiVojtech Rinik: Internship v USA - moje skúsenosti
Vojtech Rinik: Internship v USA - moje skúsenosti
 
Petr Joachim: Redis na Super.cz
Petr Joachim: Redis na Super.czPetr Joachim: Redis na Super.cz
Petr Joachim: Redis na Super.cz
 
Metaprogramovanie #1
Metaprogramovanie #1Metaprogramovanie #1
Metaprogramovanie #1
 
PostgreSQL: Advanced features in practice
PostgreSQL: Advanced features in practicePostgreSQL: Advanced features in practice
PostgreSQL: Advanced features in practice
 
Postobjektové programovanie v Ruby
Postobjektové programovanie v RubyPostobjektové programovanie v Ruby
Postobjektové programovanie v Ruby
 

Aký programovací jazyk a framework si vybrať a prečo?

  • 1. Vybrané témy implementácie webových aplikácií JÁN SUCHAL
  • 2. Ktorý implementačný jazyk & framework?  Programátor  Rýchlosť (výpočtová, vývojová)  Podpora (dokumentácia, knižnice, pluginy, IDE, komunita)  Prehľadnosť, intuitívnosť (štandardy, konvencie)  Koľko mi zaplatia a kde?  Manažér  Koľko to stojí? (licencie, nástroje...)  Koľko to ušetrí náklady? (menej serverov?, menej ľudí?)  Koľko ľudí to vie? (ako rýchlo Ťa viem nahradiť?)  Zákazník  ???
  • 6. Implementačné jazyky  Ruby, Python  mixiny, bloky, OO, otvorené triedy  PHP  dynamické typovanie Produktivita * 10 Výkon * 2  GC, objekty +  Java, C# primitívne typy  C++, C  štruktúry, funkcie, “objekty”, knižnice  Assembler  inštrukcie
  • 7. Kde mi za to zaplatia?  profesia.sk  “java” – 288 ponúk  “php” – 131 ponúk  “c#” – 114 ponúk  “python” – 26 ponúk  “ruby” – 7 ponúk  “j2ee” – 110 ponúk  “asp” – 59 ponúk  “rails” – 7 ponúk  “django” – 0 ponúk
  • 8. Prehľad veľkých webaplikácií  Wikipedia – PHP, MySQL  YouTube – Python, MySQL  Facebook – PHP, MySQL, HBase  Twitter – Ruby on Rails, MySQL, Scala  Groupon – Ruby on Rails, MySQL  Foursquare – Scala, MongoDB  Bit.ly – Python, Tornado, MySQL, MongoDB  LinkedIn – Java, Spring MVC, Ruby on Rails  StackOverflow – C#, ASP.NET http://www.quora.com/What-are-the-programming-languages-and-frameworks-the-top-NYC-startups-are-using
  • 9. Frameworky (Django vs. Rails 2.x) http://www.scribd.com/doc/121814/RailsDjango-Comparison
  • 10. Frameworky na webaplikácie  Event-based vs. MVC  “desktopové” vs. “RESTful”  Perzistencia  Adaptéry (MySQL, PostgreSQL, Oracle, MSSQL...)  Objektovo-relačné mapovanie  NoSQL databázy (dokumentové, grafové, key-value)  Bezpečnosť  SQLi, XSS, CSRF, cookie tampering  Šablónovací jazyk  generovanie formulárov, formátovanie...  AJAX  Validácia  Server + klient
  • 11. Frameworky na webaplikácie  Testovanie  unit testy, integračné testovanie, testovanie s db, záťažové testy  Automatizácia  Generátory kódu (modely, kontrolery, testy)  Automatické administračné rozhranie  Inštalácia závislostí aplikácie  Cachovanie  Podpora zmien databázy počas vývoja  Podpora v editoroch a IDE  Komunita (vývoj, fóra, biznis)
  • 12. Zhrnutie  Menej výkonný jazyk > dlhší vývoj  Rýchla verzia 1.0, úzke hrdlo sa prepíše do rýchlejšieho jazyka  Trend polyglot programovania  Aplikácie používajúce niekoľko jazykov sú čoraz bežnejšie  Použite najlepší nástroj/jazyk/framework na daný problém  “Koľko jazykov vieš toľko krát si programátorom.”