Java Script Frameworks

Cool Master schrieb:
Mag ich überhaupt nicht da nur unter Win lauffähig aber gut wenn man es damit machen muss gehts halt nicht anders.

Bevor es zu sehr offtopic wird, nur diese eine Anmerkung noch:
Dass .NET nur auf Windows läuft ist natürlich ein riesiger Nachteil. Ich habe allerdings an einem ziemlich komplexen Modul in PHP gearbeitet und die OOP Fähigkeiten, sowie die Performance von PHP sind einfach zum kotzen. Die Sprachfeatures an sich genauso. Eine kompilierte Sprache wie .NET ist einfach so unends viel schneller und schon wegen der Typisierung viel übersichtlicher und damit fehlerunanfälliger.

Consumerprodukte werden bis auf die Bigplayer ohnehin nicht mehr nativ auf einem Desktop entwickelt. Und daher kann man alles mit HTML5 und JS machen. Die Services würden bei mir definitiv auf einem Windows Server mit MSSQL laufen. Der Performanceunterschied zu MySQL hat mich schon beeindruckt. Ich glaube ohne LINQ (und Lambda Expressions im allgemeinen) könnte ich gar nicht mehr arbeiten.
 
Mit ASP.NET vNext wurde übrigens vieles neu geschrieben, hat nen neuen Host und ist auf Windows/Linux/Mac lauffähig. Soll in der ersten Hälfte 2015 fertig werden. Man darf gespannt sein :)
 
Zuletzt bearbeitet:
trialgod schrieb:
Ich habe allerdings an einem ziemlich komplexen Modul in PHP gearbeitet und die OOP Fähigkeiten, sowie die Performance von PHP sind einfach zum kotzen.
Wer weiß, was für eine Steinzeit-Version von PHP du da laufen hattest, und auf was für einer Fehlkonfiguration.

PHP 5.5/5.6 bietet zwar nicht ganz so viele OOP-Features wie z.B. Java, aber es sind mehr als genug. Außerdem ist PHP halt kein erzwungenes OOP (wie Java).
Und die Performance? Ein schönes PHP-FPM - Setup mit aktivem OpCode-Cache (z.B. Zend oder APC) ist ziemlich flott. Wem das nciht reicht, der packt ne HHVM drum herum und erreicht beinahe den Speed einer nativen Implementierung.

Der Performanceunterschied zu MySQL hat mich schon beeindruckt.
1.) MySQL ist tot, es lebe MariaDB... Gegen die Fähigkeiten und Performance von MariaDB 10 kommt MySQL nicht im Traum an, schon gar nicht wenn die nicht mal mit was neuerem als 5.6 zu Potte kommen)
2.) Es gibt noch deutlich mächtigere und schnellere freie RDBMS, z.B. PostgreSQL.

Wer sich freiwillig MSSQL bzw. MS-Server allgemein, ans Bein nagelt, an dessen geistiger Gesundheit erhebe ich starke Zweifel. Ressourcenverschwendung mit eingebauter Sicherheitslücke...
 
WOW!!! Ich bin ja überwältigt von der Resonanz meiner Frage, ja vielen Dank. Ich werde mir Eure Anmerkungen mal genau studieren. Angular.js habe ich auch schon oft angedacht bekommen, ja aber klar, wer weiss wie die Welt in 5 Jahren aussieht, man muss sich daruaf einstellen immer stets und ständig dazuzulernen. Aber das macht die Sache ja auch Spannend !!!

Danke allerseits!
 
Eben genau wegen dem "Wer weiß, was in 5 Jahren ist" würde ich auf etwas setzen, dass schon seit >5 Jahren sehr erfolgreich funktioniert.... also Mootools oder jQuery.
 
Daaron schrieb:
Wer weiß, was für eine Steinzeit-Version von PHP du da laufen hattest, und auf was für einer Fehlkonfiguration.
Als ich diese Firma verlassen habe ist gerade PHP 5.4 heraus gekommen, gearbeitet haben wir allerdings noch unter 5.2. Die Systemtechnische Seite konnten wir Entwickler nicht beeinflussen. Aber als Library für verschiedenste Portale konnten wir nicht die neuste Version unterstützen. Erst mussten alle Portale gehoben werden.

Ich glaube allerdings nicht, dass an einem Servercluster mit 150+ Webservern nur Leute gearbeitet haben, die "Fehlkonfigurationen" erstellt haben.

Daaron schrieb:
PHP 5.5/5.6 bietet zwar nicht ganz so viele OOP-Features wie z.B. Java, aber es sind mehr als genug.

Ist ja interessant, dass du bestimmst für wen welche Features "mehr als genug" sind.
Aber bitte, was ist mit Multitasking? - gibt es nichts oder nur besch****
Was ist mit dem endlosen Schreiben von Gettern und Settern, vorallem wenn ich diese Typsicher haben möchte? - ja es gibt generatoren, die sind aber meist auch unzulänglich (typehinting, casten und exceptionhandling auf einfache datentypen)
Was ist das Pendant zu den Attributen in .NET? - Achja gibt es nicht, wo sollen Präprozessoren ohne Kompilierung auch zum Einsatz kommen.
PHP ist unübersichtlich, was Operationen auf skalaren Datentypen anbelangt. Eben weil diese nicht OOP sind und daher für alles Funktionen existieren, die zudem inkosistent benamt sind (strlen vs. str_pad), gibt genug andere Beispiele.

Daaron schrieb:
Außerdem ist PHP halt kein erzwungenes OOP (wie Java).

Und wo genau ist hier der Vorteil für ein wohlgemerkt komplexes System?

Daaron schrieb:
Und die Performance? Ein schönes PHP-FPM - Setup mit aktivem OpCode-Cache (z.B. Zend oder APC) ist ziemlich flott. Wem das nciht reicht, der packt ne HHVM drum herum und erreicht beinahe den Speed einer nativen Implementierung.

Dass sich die Performance seitdem verbessert hat kann sein, ich kann mir aber kaum vorstellen, dass sie an .NET auch nur annähernd heranreicht. Und warum sollte ich so ein Gefrickel, wie eine HHVM nutzen, wenn ich gleich eine kompilierte Sprache nutzen kann?

Performancehits die aus dem Scriptsprachencharakter entstehen können auch durch eine HHVM nicht, oder nur wenig beeinflusst werden. Eine typisierte Sprache wird immer um ein vielfaches schneller sein.

Daaron schrieb:
1.) MySQL ist tot, es lebe MariaDB... Gegen die Fähigkeiten und Performance von MariaDB 10 kommt MySQL nicht im Traum an, schon gar nicht wenn die nicht mal mit was neuerem als 5.6 zu Potte kommen)
2.) Es gibt noch deutlich mächtigere und schnellere freie RDBMS, z.B. PostgreSQL.

Als ich mich aus der PHP Welt verabschieded habe, war der Hype um MariaDB noch nicht da. Ich kann dazu deshalb auch nicht allzuviel sagen. Allgemein habe ich wenig Erfahrungen mit anderen RDBMS als MySQL und MSSQL.

Daaron schrieb:
Wer sich freiwillig MSSQL bzw. MS-Server allgemein, ans Bein nagelt, an dessen geistiger Gesundheit erhebe ich starke Zweifel. Ressourcenverschwendung mit eingebauter Sicherheitslücke...

Die Kosten für einen Server sind heutzutage sowas von scheiß egal im Vergleich zur Entwicklungszeit. Daher ist die Resourcenverschwendung vernachlässigbar. Zudem skalieren .NET Applikationen viel besser als PHP. Daher ist das Argument totaler Müll.

Und der Rest ist reines Fanboygeblubber.

Hast du überhaupt mal produktiv mit .NET gearbeitet? Hast du überhaupt mal eine wirklich komplexe Applikation mit PHP erstellt? Deine Argumentation lässt nicht darauf schließen.

Ich gebe dir gerne ein Beispiel:
Nimm einen onlineshop mit x-tausend Produkten. Wir leben in einer SOA, das heißt kein direkter DB Zugriff. Die Produkte müssen je nach Produktkategorie nach verschiedenen anderen Parametern (die der Produktkategorie zugeordnet sind) weiter gruppiert werden und dann in dieser Gruppe "gewichtet" und evtl. manipuliert werden. Die Ausgabe wird dann nochmal nach den manipulierten Eigenschaften sortiert. Viel Spaß mit PHP. Du weißt bestimmt in welchen Fällen PHP bei übergaben die Arrays als Referenz und in welchen es als Kopie benutzt wird, bzw. die Referenzen zu Kopien umgewandelt werden.

Erstell dir für o.g. Beispiel nur mal ein flaches POCO mit meinetwegen 20 Properties. Und nimm eine Liste von 500 Produkten und führ o.g. Operation aus. Live ist das nahezu unmöglich. Caching aufgrund ständiger Veränderung nicht möglich.

Ich gebe zu, dass das ein recht spezifisches Problem ist. Aber überall wo es um Datenoperationen und nicht nur um das herumschubsen zwischen persistentem Speicher und Ausgabe geht, ist PHP einfach unbrauchbar.

PHP hat seine Stäken (anfängerfreundlich, kostenlos, schnelles Ergebnis). Genauso wie .NET seine Schwächen hat (MS gebunden, für kleine Projekte rel. umständlich). Ich verstehe nicht, warum immer einige Weltverbesserer kommen müssen und einem erklären müssen, dass das eine Scheiße sei und das andere der heilige Gral. Es kommt wie immer auf die Anwendung an.

@Topic
jQuery zu können kann sicher kein Fehler sein. Allerdings gibt es da nicht viel zu können, weil es einfach nur DOM Manipulation ist. Wer Javascript und CSS beherrscht, beherrscht auch jQuery.
AngularJS mit Dependency Injection, MVC und Databinding sieht da schon ganz anders aus.
 
Zuletzt bearbeitet:
trialgod schrieb:
Als ich diese Firma verlassen habe ist gerade PHP 5.4 heraus gekommen, gearbeitet haben wir allerdings noch unter 5.2.
...
Ich glaube allerdings nicht, dass an einem Servercluster mit 150+ Webservern nur Leute gearbeitet haben, die "Fehlkonfigurationen" erstellt haben.
Wenn da 5.2 lief, dann waren die Kisten aus heutiger Sicht garantiert ranzigst aufgebaut. Damals gabs z.B. noch kein Stable Release von PHP-FPM, und auch OpCode Caches waren damals noch in weiter Ferne.
Mit 5.3 wärt ihr signifikant performanter gefahren. PHP-FPM + APC hättens locker gerissen.

Aber bitte, was ist mit Multitasking? - gibt es nichts oder nur besch****
PHP ist halt nicht threadsicher. Und? Du kannst zwar einen einzelnen Request nicht threaden, du kannst aber sehr wohl parallele Requests sowohl per Multiprocessing als auch per Multithreading lösen. Apache2-MPM-Worker (oder nginx) + PHP-FPM

Was ist mit dem endlosen Schreiben von Gettern und Settern, vorallem wenn ich diese Typsicher haben möchte? - ja es gibt generatoren, die sind aber meist auch unzulänglich (typehinting, casten und exceptionhandling auf einfache datentypen)
Wenn du zwanghaft Typsicherheit willst, dann ist PHP halt nichts für dich. Aber wieso "endloses Schreiben"? Gabs zu deiner Zeit keine Magischen Methoden?

Und wo genau ist hier der Vorteil für ein wohlgemerkt komplexes System?
Kommt auf die Komplexität an. Muss man denn jeden Scheiß OO schreiben?

Performancehits die aus dem Scriptsprachencharakter entstehen können auch durch eine HHVM nicht, oder nur wenig beeinflusst werden. Eine typisierte Sprache wird immer um ein vielfaches schneller sein.
HHVM ist ca. 6x so schnell wie ein klassisches Interpreter-Setup (mit OpCode Cache etc.)
Wenn HHVM nicht schnell wäre, dann hätte sich niemand die Mühe gemacht, den Kram zu entwickeln. Du weißt ja sicher, welche weltweit dominierende Plattform dahinter steht und wieso sie sich den Stress angetan hat...

Allgemein habe ich wenig Erfahrungen mit anderen RDBMS als MySQL und MSSQL.
MariaDB 10 ist MySQL 5.6 + mehr Speed + mehr Features (z.B. rudimentäres NoSQL oder der Galera Cluster)

Was ich bisher an ASP.NET gesehen habe, hat mich nie wirklich vom Hocker gehauen. Für all diese Anwendungszwecke gibt es auch FOSS-Lösungen in PHP, Perl, Python, Ruby/Rails oder Java, die ich danach auf einer deutlich breiteren Hardware-Basis aufspielen kann.
 
Daaron schrieb:
Wenn da 5.2 lief, dann waren die Kisten aus heutiger Sicht garantiert ranzigst aufgebaut. Damals gabs z.B. noch kein Stable Release von PHP-FPM, und auch OpCode Caches waren damals noch in weiter Ferne.
Mit 5.3 wärt ihr signifikant performanter gefahren. PHP-FPM + APC hättens locker gerissen.

Ich kann dazu wenig sagen, da das einfach nicht in meiner Hand lag. Es war Apache mit FastCGI und memcache. Ich glaub als Opcodecache wurde XCache eingesetzt? Bin mir jetzt nicht ganz sicher.

Ich habe allerdings privat auf 5.3 und APC gearbeitet. Auch hier war die Performance für mich nicht merklich besser, allerdings bis auf Ausnahmen ausreichend.

Daaron schrieb:
PHP ist halt nicht threadsicher. Und? Du kannst zwar einen einzelnen Request nicht threaden, du kannst aber sehr wohl parallele Requests sowohl per Multiprocessing als auch per Multithreading lösen. Apache2-MPM-Worker (oder nginx) + PHP-FPM

Hier kommt es halt stark auf den UseCase an. Es gibt einfache Anwendungen, die für viele bereit stehen müssen oder komplexe Anwendungen, die für wenige bereit stehen müssen (Businessportale). Und es gibt komplexe Anwendungen für viele Leute. Letzteres kann man meist ohnehin nur mit einem guten Cachingmechanismus und einem guten Loadbalancer performant gestalten. Da ist die Architektur wichtiger.

PHP kannst du für ersteren Fall gut brauchen, für zweiteren allerdings weniger gut (Performance nicht gut, kein Multithreading). .NET kann beides.

Daaron schrieb:
Wenn du zwanghaft Typsicherheit willst, dann ist PHP halt nichts für dich. Aber wieso "endloses Schreiben"? Gabs zu deiner Zeit keine Magischen Methoden?
Oh noch so eine Unart von PHP. Es gibt keine Überladung, also machen wir alles magic. Ob den Code dann noch jemand lesen oder verstehen kann? Interessiert nicht.. Frag mal die Entwickler von Doctrine 1 ;)
Zudem können magische Methoden das nicht abbilden. Was ist, wenn ich nur ein Getter haben will? Zudem habe ich keine Autocompletion in einer IDE.

Daaron schrieb:
Kommt auf die Komplexität an. Muss man denn jeden Scheiß OO schreiben?

Ehrlich? Ja! Wie sonst willst du Modularität, Schnittstellenprogrammierung und Testbarkeit abbilden?
Pseudo OOP wie in PHP oft benutzt braucht natürlich niemand.

Daaron schrieb:
Wenn HHVM nicht schnell wäre, dann hätte sich niemand die Mühe gemacht, den Kram zu entwickeln. Du weißt ja sicher, welche weltweit dominierende Plattform dahinter steht und wieso sie sich den Stress angetan hat...

Schnell ist halt relativ. Facebook hat HipHop garantiert nicht entwickelt, weil PHP so geil ist. Und weil es schneller als andere wäre. Nein das waren rein wirtschaftliche Gesichtspunkte: Codebase war bereits vorhanden, die internen Entwickler waren PHP Entwickler und diese sind zudem billiger als Entwickler anderer Programmiersprachen. Niemand bei klarem Verstand, der ein neues Projekt starten und vorher weiß, dass es die Größe von FB erreichen würde, würde ernsthaft PHP einsetzen.

Daaron schrieb:
Was ich bisher an ASP.NET gesehen habe, hat mich nie wirklich vom Hocker gehauen. Für all diese Anwendungszwecke gibt es auch FOSS-Lösungen in PHP, Perl, Python, Ruby/Rails oder Java, die ich danach auf einer deutlich breiteren Hardware-Basis aufspielen kann.
Wie ich gesagt habe, für simple Webapplikationen reicht PHP vollkommen aus. Das ist doch auch völlig in Ordnung so. Simple heißt bei heutiger Rechenleistung und Optimierung von PHP halt nicht nur die Webseite vom Karnevalsverein, sondern auch von größeren Onlineshops. Das ist alles noch recht simple, weil es zu 99,9% CRUD auf einer DB ist.

Es geht aber immer mehr ins Web bzw. auf mobile Endgeräte. Und überall da, wo Businessprozesse im Code abgebildet werden müssen, ist PHP einfach schlecht. Backendlogik z.B. einer SOA hat einfach nichts in PHP zu suchen. Da ich genau daran arbeiten musste, bin ich auch von PHP weg.

Wenn du das Topic gelesen hättest, hättest du gelesen, dass ich immer mehr dafür plädiere das Serverrendering abzuschaffen. Also rede ich hier nicht von ASP.NET, sondern maximal von WebApi (was natürlich dazu gehört). Man kann aber auch andere Service Implementationen wie ServiceStack nehmen.

Daaron nimm es mir nicht übel, aber du argumentierst wie jemand, der nichts anderes kennt. Ich bilde mir ein das beurteilen zu können, weil ich bis vor 2 1/2 Jahren genauso war. Erst als mir die Grenzen von PHP aufgezeigt wurden und ich die Möglichkeiten Anderer kennen gelernt habe, hat sich das gewandelt. Es mag sein, dass die Grenzen mit steigender Performance von PHP und steigender Serverleistung nach oben gegangen sind, sie sind aber definitiv nicht verschwunden. Mit HHVM fange ich jetzt nicht an, weil dann könnte ich genauso mit MONO argumentieren und die MS Bindung ad acta legen.

Ich hab keine Ahnung, wie das in Java ist. Ich weiß nur, dass C# die am weitesten entwickelste der aktuell großen Sprachen ist. Java hat 5 Jahre gebraucht um mit ihrer Stream Api halbwegs mit .NET Lambdas mithalten zu können.

Ich argumentier übrigens genauso gegen die MS Jünger. MS hat viel Kacke verzapft und macht es immer noch. Ich kann ASP.NET (WebForms), SOAP Services und WCF nicht mehr sehen. Es ist einfach scheiße. Es gibt aber sehr gute FOSS Projekte für .NET, die die Genialität von C# nutzen um ordentliche Frameworks/Tools für die jeweiligen Einsatzgebiete zu erstellen. Aber auch MS befindet sich langsam auf besseren Wegen, ASP.NET MVC ist den großen PHP Frameworks mindestens ebenbürtig.
 
Zuletzt bearbeitet:
Zurück
Oben