{"id":121,"date":"2019-04-01T10:33:17","date_gmt":"2019-04-01T08:33:17","guid":{"rendered":"http:\/\/www.b2b-shop-system.de\/blog\/?p=121"},"modified":"2019-04-01T16:24:50","modified_gmt":"2019-04-01T14:24:50","slug":"4-programmiersprachen-fuer-e-commerce-js-php-perl-python","status":"publish","type":"post","link":"https:\/\/www.b2b-shop-system.de\/blog\/2019\/04\/01\/4-programmiersprachen-fuer-e-commerce-js-php-perl-python\/","title":{"rendered":"4 Programmiersprachen f\u00fcr E-Commerce Shopsysteme (JS, PHP, Perl, Python)"},"content":{"rendered":"<p>Welche Programmiersprachen gibt es, um Onlineshop-Seiten dynamisch auf dem  auf dem Webserver zu erstellen.<br \/>\nMich hat einfach mal interessiert, was sich in den letzten Jahren getan hat und was die Unterschiede sind. Dabei kann ich nat\u00fcrlich keinen kompletten \u00dcberblick geben, dazu ist die Angelegenheit zu komplex. Ich greife deshalb nur einige Punkte heraus, die mich als Programmierer besonders interessieren.<\/p>\n<p>Das w\u00e4re insbesondere der Programmierstil der jeweiligen Sprache, die Unterst\u00fctzung f\u00fcr den Programmierer, die Performance etc.<br \/>\nZun\u00e4chst einmal habe ich in der jeweiligen Sprache einige Zeilen Code geschrieben, der im wesentlichen das gleiche macht. In einer Schleife werden einige arithmetisch Operationen durch gef\u00fchrt und ein Wert in einem Assoziativen Array gespeichert und wieder ausgelesen.<br \/>\nEin Assoziatives Array ist ein wichtiges Element, wenn man mit Daten arbeitet. Denn es erm\u00f6glich die Verkn\u00fcpfung zweier Inhalte. Das Ganze ist im Grunde ohne Sinn. Es soll zeigen, was die Unterschied der L\u00f6sung in den verschiedenen Sprachen ist und wie es mit der Performance aussieht. <\/p>\n<p>Erstaunlich ist die \u00c4hnlichkeit des Codes. Insbesondere von Python, Perl und PHP. Variablen werden bei Perl und PHP mit dem Dollar Pr\u00e4fix gekennzeichnet.<br \/>\nBei Python und JavaScript ist das nicht notwendig. Hier sind Variablen immer Objekte, die f\u00fcr alle m\u00f6glichen Typen stehen k\u00f6nnen.<\/p>\n<h2>Python<\/h2>\n<p><img fetchpriority=\"high\" decoding=\"async\" class=\"alignnone size-medium wp-image-125\" src=\"https:\/\/www.b2b-shop-system.de\/blog\/wp-content\/uploads\/2019\/03\/py-300x215.png\" alt=\"\" width=\"300\" height=\"215\" srcset=\"https:\/\/www.b2b-shop-system.de\/blog\/wp-content\/uploads\/2019\/03\/py-300x215.png 300w, https:\/\/www.b2b-shop-system.de\/blog\/wp-content\/uploads\/2019\/03\/py.png 360w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/p>\n<h2>PHP<\/h2>\n<p><img decoding=\"async\" src=\"https:\/\/www.b2b-shop-system.de\/blog\/wp-content\/uploads\/2019\/04\/php-300x193.png\" alt=\"\" width=\"300\" height=\"193\" class=\"alignnone size-medium wp-image-130\" srcset=\"https:\/\/www.b2b-shop-system.de\/blog\/wp-content\/uploads\/2019\/04\/php-300x193.png 300w, https:\/\/www.b2b-shop-system.de\/blog\/wp-content\/uploads\/2019\/04\/php-360x230.png 360w, https:\/\/www.b2b-shop-system.de\/blog\/wp-content\/uploads\/2019\/04\/php.png 400w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/p>\n<h2>Perl<\/h2>\n<p><img decoding=\"async\" class=\"alignnone size-medium wp-image-123\" src=\"https:\/\/www.b2b-shop-system.de\/blog\/wp-content\/uploads\/2019\/03\/perl-300x209.png\" alt=\"\" width=\"300\" height=\"209\" srcset=\"https:\/\/www.b2b-shop-system.de\/blog\/wp-content\/uploads\/2019\/03\/perl-300x209.png 300w, https:\/\/www.b2b-shop-system.de\/blog\/wp-content\/uploads\/2019\/03\/perl.png 375w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/p>\n<h2>Javascript<\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-122\" src=\"https:\/\/www.b2b-shop-system.de\/blog\/wp-content\/uploads\/2019\/03\/js-300x193.png\" alt=\"\" width=\"300\" height=\"193\" srcset=\"https:\/\/www.b2b-shop-system.de\/blog\/wp-content\/uploads\/2019\/03\/js-300x193.png 300w, https:\/\/www.b2b-shop-system.de\/blog\/wp-content\/uploads\/2019\/03\/js-360x230.png 360w, https:\/\/www.b2b-shop-system.de\/blog\/wp-content\/uploads\/2019\/03\/js.png 406w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/p>\n<h1>Auswertung<\/h1>\n<p>In der Schleife werden 5 Millionen Operationen ausgef\u00fchrt.<\/p>\n<table>\n<tbody>\n<tr>\n<td><\/td>\n<td>Python<\/td>\n<td>PHP<\/td>\n<td>Perl<\/td>\n<td>JavaScript<\/td>\n<\/tr>\n<tr>\n<td>Ohne assoziativem Array<\/td>\n<td>5.48<\/td>\n<td>3<\/td>\n<td>2<\/td>\n<td>1.25<\/td>\n<\/tr>\n<tr>\n<td>Mit assoziativem Array<\/td>\n<td>9.16<\/td>\n<td>4<\/td>\n<td>9<\/td>\n<td>12.2<\/td>\n<\/tr>\n<tr>\n<td>Beispiel<\/td>\n<td><a href=\"http:\/\/demo.getlfs.com\/\" target\"_new\">LFS<\/a><\/td>\n<td><a href=\"http:\/\/oxid-e-shop.exyst.de\/\" target\"_new\"> Oxid-eSales <\/a><\/td>\n<td><a href=\"http:\/\/demo.shoppilot.de\/\" target\"_new\">ShopPilot<\/a><\/td>\n<td>unbekannt<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Die Unterschiede in der Performance sind nicht allzu gro\u00df. \u00dcberraschend ist, dass PHP den schnellsten Zugriff auf die Werte im Assoziativen Array hat. Python scheint durchgehend etwas langsamer zu sein. Perl im Mittelfeld und JavaScript bei arithmetischen Operationen schnellster. Die wichtigen Faktoren wie Testbarkeit (Debugging), Schnittstellen, Bibliotheken und Verbreitung habe ich hier gar nicht testen k\u00f6nnen.  <\/p>\n<p>F\u00fcr neue Projekte w\u00fcrde ich wahrscheinlich Python oder JavaScript w\u00e4hlen, weil sie beide ein eingebaute Objektorientierung haben. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Welche Programmiersprachen gibt es, um Onlineshop-Seiten dynamisch auf dem auf dem Webserver zu erstellen. Mich hat einfach mal interessiert, was<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-121","post","type-post","status-publish","format-standard","hentry","category-allgemein"],"_links":{"self":[{"href":"https:\/\/www.b2b-shop-system.de\/blog\/wp-json\/wp\/v2\/posts\/121","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.b2b-shop-system.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.b2b-shop-system.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.b2b-shop-system.de\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.b2b-shop-system.de\/blog\/wp-json\/wp\/v2\/comments?post=121"}],"version-history":[{"count":8,"href":"https:\/\/www.b2b-shop-system.de\/blog\/wp-json\/wp\/v2\/posts\/121\/revisions"}],"predecessor-version":[{"id":135,"href":"https:\/\/www.b2b-shop-system.de\/blog\/wp-json\/wp\/v2\/posts\/121\/revisions\/135"}],"wp:attachment":[{"href":"https:\/\/www.b2b-shop-system.de\/blog\/wp-json\/wp\/v2\/media?parent=121"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.b2b-shop-system.de\/blog\/wp-json\/wp\/v2\/categories?post=121"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.b2b-shop-system.de\/blog\/wp-json\/wp\/v2\/tags?post=121"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}