Frage von ComanderJB, 156

Webanwendung programmieren, welche Sprache?

Hey Leute, ich habe eine kleine Idee für eine Webanwendung und würde auch gerne eine neue Sprache lernen. Allerdings bin ich etwas verwirrt in welcher Sprache ich diese programmieren soll. Man liest viel von PHP (damit habe ich schon etwas Erfahrung), Ruby, Java oder auch Python.

Meine Idee ist eine Art Textverarbeitungsprogramm mit Kalender etc. Wie kann man sowas realisieren?

Vielen Dank für eure Unterstützung.

Antwort
von Doubi, 77

PHP ist die meistbenutzte Sprache für serverseitige Dinge. Wenn du also einen möglichst billigen Webserver haben möchtest, nimm am besten PHP. Wenn du es in Java machst, brauchst du einen Servlet-Container (z.B. tomcat). Dafür brachst du entweder ein teures tomcat-hosting oder einen Server, auf dem du vollen root-Zugriff hast. (Achtung! Javascript und Java sind zwei verschiedene Dinge, die absolut gar nichts miteinander zu tun haben!)

Die Dinge, die nur auf dem Server gemacht werden können, wie z.B. Datenbankzugriff, machst du also am besten in PHP. Was auf dem Client oder dem Server gemacht werden kann, kannst du in PHP oder Javascript machen. Das kommt darauf an, was dir besser gefällt. Wenn es dir um Sicherheit geht, ist aber PHP besser, da Javascript manipuliert werden kann. Es läuft schließlich auf dem Client. Was nur auf dem Client geht, wirst du in Javascript programmieren müssen. Zum Beispiel der Text-Editor ist eine typische Aufgabe für Javascript.

Mit Python kenne ich mich leider nicht aus.

Kommentar von triopasi ,

Aber als Anfänger ist das etwas overkill und arg schwer, oder? ;)

Kommentar von triopasi ,

Oh fail falsche Antwort xD Sorry :D

Antwort
von Azdak, 82

Das kann man nicht einfach so locker-flockig beantworten. Eigentlich könntest du jede Programmiersprache verwenden, die es gibt. Es geht ja um eine Server-Client-Kommunikation. Die Schnittstelle ist - glaube ich - meist CGI. Zwar haben "hohe" Programmiersprachen wie PHP oder Perl so genannte Module, um sich CGI und vieles andere, was nützlich sein kann, einfach einzubinden, aber dafür sind sie auf dem Server weniger performant, weil sie mit jeder Ausführung jedes mal neu interpretiert werden müssen (zumindest so bei PHP und Perl). Performanter wird es, wenn die serverseitigen "Teile" der Webanwendung zum Beispiel in C oder C++ geschrieben sind und bereits kompiliert sind. Am performantesten programmierst man - glaube ich - in Assembler, aber da wird es schwer den Überblick zu behalten, da Assembler Befehle quasi Maschinenbefehle sind.

Nun, ich verfüge leider auch nur um ein schlechtes Meta-Halbwissen. Was ich noch weiß, ist, dass man für eine Webanwendung nicht nur den Code für die Ausführung auf der Serverseite schreiben muss. Es kommt noch die Clientseite hinzu. Dann hat man nicht mehr die "freie Wahl" der zu verwendenden Programmiersprache. Denn der clientseitig ausgeführte Code wird in der Regel im Browser ausgeführt. Hat der Client beispielsweise keine Java Virtual Machine (Laufzeitumgebung für Java) installiert, so ist dieser Client außen vor. Ähnlich verhält es sich mit anderen Laufzeitumgebungen wie dem .NET-Framework. Auf der kompatibelsten Seite ist man auf Clientseite - glaube ich - wenn man klassisches JavaScript verwendet (nicht zu verwechseln mit Java). Aber es soll megamäßig kompliziert sein eine "richtig geile" Webanwendung mit Features wie Drag-n-Drop etc. per JavaScript auf der Clientseite und beliebiger Programmiersprache auf der Serverseite auf die Beine zu stellen.

Das Buzz-Word heißt in diesem fall AJAX

Kannst du denn schon wenigstens HTML (How to make Love)?
Ich denke schon, wenn du bereits PHP-Kenntnisse hast.

Mir hat die Lektüre von SelfHTML http://selfhtml.org sehr geholfen.


Kommentar von ComanderJB ,

Vielen Dank für die ausführliche Antwort :D Ja, mit HTML und CSS etc. kenn ich mich aus :D

Antwort
von SiliconeSoul, 81

Heutzutage empfehle ich ein gutes, leistungsstarkes Framework das auf dem MVC Prinzip basiert.

Für Ruby, welches wohl die beste Wahl wäre, empfiehlt sich "Rails" (Ruby on Rails genannt). Ruby hat aber den großen Nachteil das du eine spezielle Serverkonfiguration benötigst.

Alternativ dazu ist Laravel ein äußerst potentes Framework. Daher geht meine Empfehlung auch dahin Laravel zu verwenden.

Kommentar von triopasi ,

Ist aber etwas overkill für nen Anfänger oder? Und zu schwer wsl auch..

Kommentar von SiliconeSoul ,

ein Anfänger der eine Textverarbeitungs-App für den Online Betrieb programmieren will.

Kommentar von triopasi ,

Wenn er nicht Anfänger wäre würde er nicht hier fragen oder?

Kommentar von ComanderJB ,

Also blutiger Anfänger bin ich nicht aber doch noch recht am Anfang :) Die Idee mit der Textverarbeitung ist mein Endziel, quasi meine Motivation. 

Kommentar von triopasi ,

Dann ist Laravel etc aber erstmal zu viel... Kannst du evtl schon dafür nutzen aber erst nachdem du noch PHP gelernt hast.

Kommentar von SiliconeSoul ,

joah, zum lernen und einarbeiten ist Laravel perfekt.. Du lernst HTML und CSS von Grund auf und PHP (sowie die Laravel Syntax) nebenbei. Natürlich muss man sich da hinter Klemmen und viele Tutorials schauen/Lesen.

Kommentar von coding24 ,

Zum einarbeiten halte ich Laravel nicht für perfekt. Dieses ganze Facade-Gedöns verführt in meinen Augen dazu, sich NICHT auf die Grundlagen guter Programmierung zu stützen - sondern einfach wild überall irgendwelche Fassaden zu benutzen, die im Static-Scope überall in Laravel verfügbar sind.

Kommentar von triopasi ,

Tu das nicht. Laravel benutzt Klassen/Namespaces/Callbacks uvm. Das brauchst du am Anfang erstmal nicht zu lernen und es ist auch einiges schwerer als "straigt-forward" PHP

Kommentar von coding24 ,

Du willst ihm eine OOP-Sprache wie PHP empfehlen, ihm aber sagen: "Namespaces und Klassen brauchst du am Anfang erstmal nicht" ?! Was für ein Quark, soll er jetzt prozedural programmieren oder was?

Kommentar von coding24 ,

Warum (deiner Meinung nach) wäre Ruby denn die beste Wahl?

Kommentar von triopasi ,

Prozedural ist einfacher und recht am anfang vollkommend aus. PHP ist eh nur so halb OOP, da kann man mehr oder weniger auch OOP weglassen.

Kommentar von coding24 ,

Was ist das denn für eine komische Einstellung?

Aber gut - jetzt erklär mir mal, was an PHP "nur so halb OOP" ist. Kann es keine Vererbung? Keine Klasseninstanzen? Kennt es keine Klassen-Properties und keine Sichtbarkeiten?

Kommentar von triopasi ,

zB Datentypen/Arrays sind keine Klassen (strlen($string) vs $string->length), zB MySQLi kannste als Objekt benutzen oder mit den ganzen mysqli_...-Funktionen. Gibts RegEx ne Klasse? (Kann sein bin nicht sicher.) Wenn du Klassen nutzen willst musst du das selbst implementieren, in Java zB wird ja immer das main() in der Hauptklasse aufgerufen. Man braucht in PHP theoretisch keine Klassen zu nutzen, man KANN alles ohne Klassen bauen (ist auch nicht so sinnvoll), aber zB in Java kann man ohne Klassen NICHTS. Und gerade am Anfang ist das Konzept schwer. Man sollte erst andere Grundlagen lernen (wie man arrays RICHTIG nutzt usw), dann OOP.

Kommentar von coding24 ,

Okay, also weil Datentypen in PHP keine Objekte sind, ist PHP nur halb OOP und man kann die komplette Objektorientierung weglassen.

Schnittstellen braucht man nicht mehr, Namespaces, Überladungen, ...

Ach nein, warte aus deinem: man kann OOP bei PHP weglassen wurde ja jetzt ein "ist nicht so sinnvoll, keine Klassen in PHP zu nutzen". Kannst du dich da erstmal festlegen, was deine eigene Meinung diesbezüglich ist?

Zu behaupten, weil in Java ohne Klasse nichts ginge, in PHP aber sowohl OOP als auch prozedurales Programmieren möglich sind, OOP in PHP braucht man nicht .... finde ich ziemlich ..... :)

Kommentar von SiliconeSoul ,

@coding24 weil Ruby die einfachste Sprache ist, man sie spielend erlernen kann, 110% OOP ist, permanentes Cutting-Edge verfolgt uuuuuuund weil ich Ruby programmieren bin und damit meine Brötchen verdiene :-p Aber da man für Ruby ModPassenger braucht ist das für Einsteiger immer das größte Problem. Da man ja irgendwann auch Mal vom Localhost Weg möchte. Daher meine Empfehlung zu anderen MVC Frameworks, da das einfach die Zukunft ist (in meinen Augen). Und da ich notgedrungen vor kurzem Mal was mit Laravel realisieren musste und extrem Positiv überrascht war wie weit Php schon in Sachen MVC ist, ist Laravel von nun an meine erste Wahl. Von CakePHP war ich vor 5 Jahren keines Falls beeindruckt. Aber vielleicht haben sie dort mittlerweile auch ordentlich zugelegt und das Ware vielleicht eine Empfehlung wert.

Kommentar von SiliconeSoul ,

Nachtrag: Ich hab gestern erst gesehen das JavaScript auch gut am Start ist mit der Node.js Klamotte. Da hätte man ebenfalls Front und Backend in der selben Sprache. Aber ich kenne mich da echt null aus, vielleicht gibts hier ja nen Node.js'ler der mal zum besten geben kann wie Einsteigerfreundlich das ganze ist und ob man dafür spezielle configs auf dem Server braucht

Kommentar von regex9 ,

An sich ist nodejs eine ziemlich coole Sache, nur einem Einsteiger würde ich es vorerst nicht empfehlen. Zum einen könnten die Konzepte von JavaScript den kommenden Programmierer für weitere Sprachen versauen^^ und zu unsauberen Coding anregen, des Weiteren - und das wäre mein wesentlichster Minuspunkt, wird es bei asynchroner Programmierung schnell unübersichtlich und somit auch kompliziert.

Für die Einrichtung auf einem Server müsste man sich nochmal explizit befassen, Dokumentationsmaterial sollte es inzwischen aber zuhauf geben. Wunderbar wird es dann, wenn man ein Tool wie npm zur Verfügung hat, welches Libraries etc. für den Programmierer installiert, ohne dass er sich noch viele konkrete Gedanken darum machen muss. Einfach installieren und fertig, da ist es schon. :)

Antwort
von klugshicer, 55

Also ich mache recht viel in PHP  der Hauptgrund ist, dass die meisten Webserver (in Bezug auf die installierten Module) optimiert sind - außerdem sind viele APIs nur in PHP verfügbar.

Ein weiterer Pluspunkt für PHP ist, dass man PHP-Code direkt neben HTML-Code verwenden kann - dass sieht zwar mit unter recht schludrig aus aber wenn man fertig ist kann man ja immer noch aufräumen ;-)

Kommentar von coding24 ,

Welche APIs sind denn nur in PHP verfügbar?

Kommentar von klugshicer ,

wenn ich mich richtig erinnere wären das z.B. PayPal und die API mit der man Umsatzsteuer-IDs prüfen kann - es gibt sicher noch weitere APIs die nur in PHP verfügbar sind.

Kommentar von klugshicer ,

Aber wie ich gerade sehe hat sich bei PayPal einiges getan inzwischen haben sie auch:

  • Java
  • Node
  • Python
  • Ruby
  • .NET

Aber Perl fehlt immer noch...

Kommentar von coding24 ,

Nur, weil Paypal keine fertigen Klassen zum Einbinden für die Abstraktion ihrer API anbietet heißt das nicht, dass man das nicht damit nutzen kann. Auch mit Perl kannst du nen POST und nen GET-Request abfeuern ...

Kommentar von klugshicer ,

Vorausgesetzt im Web-Server sind die benötigten Module bereits installiert - ansonsten muss man nachinstallieren was aber nicht alle Provider zulassen.

Kommentar von coding24 ,

Ja. Ist mit der PHP-Implementierung genauso. Wenn kein CURL installiert ist, funktioniert die vorgefertigte Library nicht. Von daher zu 100% ein ungültiges Argument.

Kommentar von coding24 ,

Paypal bietet eine REST-API an. Die kann man mit jeder X-Beliebigen Sprache verwenden.

https://developer.paypal.com/docs/api/

Generell kannst du jede SOAP, RPC oder REST-API mit beliebigen Sprachen aufrufen, denn genau dafür sind "Schnittstellen" ja gemacht.

Deine Antwort ist dahingehend irgendwie totaler Quatsch, keine Ahnung wie du darauf kommst ...

Kommentar von klugshicer ,

Programmieren kann man viel - die Frage ist doch ob es auf dem Zielsystem läuft und da hat man mit PHP nun mal die größten Chancen.

Kommentar von coding24 ,

Hat man überhaupt nicht. Wenn ich PHP5.6 Funktionen nutze oder PHP7-Code programmiere, auf dem System aber nur PHP5.5 läuft, funktioniert es nicht. Da hat man mit PHP aufgrund der Versionsvielfalt nämlich extrem große Probleme ;)

Wer programmiert denn eine Anwendung, ohne vorher einen passenden Webspace dafür gesucht zu haben? Jemand, der 'ne Paypal-Anbindung macht und Ruby, Python oder Perl verwendet, weiß ganz sicher auch welche Module er einsetzen muss und wird sicherstellen, dass seine Software auf dem System läuft.

Darf ich fragen, wie groß die Softwareentwicklungsbude ist, bei der du arbeitest?

Kommentar von klugshicer ,

Ich arbeite nicht als Entwickler - meine Projekte sind in der Regel privater Natur.

Kommentar von coding24 ,

Oh, das ist ja schade.

Daher kommt also deine Unerfahrenheit und deine komischen Einwürfe. Ne Rest-API auf nem System ohne HTTP-Post und HTTP-Get-Funktionalität ansprechen zu wollen ....

Da helfen dir auch die von Paypal vorprogrammierten Libraries nicht. Ist dir das soweit klar?

Kommentar von klugshicer ,

So blöd war ich dann nun auch wieder nicht - meine Lösung war wesentlich eleganter als irgend etwas in Perl zu stricken und läuft seit drei Jahren stabil.

Kommentar von regex9 ,

Ein weiterer Pluspunkt für PHP ist, dass man PHP-Code direkt neben HTML-Code verwenden kann (...).

Was bei anderen serverseitig orientierten Sprachen für die Webentwicklung nicht anders ist. Bsp.: JSP, ASP.NET. Als direkten Pluspunkt würde ich das dennoch nicht werten. Ziel sollte es sein, so viel Programmcode wie möglich aus dem Markup herauszuhalten, um die Wartung einfach zu halten.

Kommentar von klugshicer ,

ASP findet man aber eher in Windows-Umgebungen - Programmcode und HTML nebeneinander ist halt praktisch wenn man mal schnell etwas ausprobieren möchte. Zwischendurch muss man halt mal wieder aufräumen...

Wenn ich z.B. PHP mit Perl vergleiche, dann muss ich sagen, das Perl wesentlich umständlicher zu coden ist.

Insbesondere wenn man HTML-Code hat, der unterschiedliche Quotierungen beinhaltet, dann kommt man in Perl nicht umhin erst einmal seine HTML-Vorlagen zu erstellen in die man dann die Platzhalter  für die Ersetzungen einfügen muss.

Diese Ersetzungen benötigen dann nicht selten komplizierte Regulär Expressions (sind nicht gerade meine Stärke).

Dem gegenüber ist es viel einfacher in einer Sprache wie PHP eine Konstante über ein einfaches "echo" einzufügen.

<title><?php echo _PAGE_TITLE; ?></title>

Oder den Content über einen Funktionsaufruf einzufügen

<body>
<div id="content"><?php content($mysqli); ?></div>
<body>

Dazu muss man noch nicht einmal studiert haben oder einen IQ von 120 besitzen.

Antwort
von triopasi, 85

Grundgerüst: HTML/CSS

Backend programmierung: PHP

Evtl. dynamische Frontendsachen: JavaScript

Kommentar von Elni94 ,

Genau und am besten verbindest du das über das Framework AngularJS und nutzt das Style-Framework Bootstrap zur Gestaltung.

Kommentar von coding24 ,

Genau - und für das erstellen der CSS-Files benutzt er dann am besten noch LESS und das JS bundled er natürlich mit Grunt-Tasks, während er die Abhängigkeiten wie jQuery/Angular über npm installiert.

Kommentar von triopasi ,

STOP: Am Anfang bitte erstmal so lernen bevor du Frameworks nutzt, sonst fehlen einfach die Grundlagen. Manchmal ist es viel einfacher ne SQL-Query zu tippen als iwelche Models etc zu verwenden - dafür muss man halt auch mal SQL gelernt haben ;)

Kommentar von triopasi ,

Stylus ist viel cooler werag schon LESS xD

Kommentar von triopasi ,

Stlyus ist viel cooler wer mag schon LESS?? xD

Keine passende Antwort gefunden?

Fragen Sie die Community