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.
5 Antworten
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 ;-)
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.
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...
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 ...
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 ...
Vorausgesetzt im Web-Server sind die benötigten Module bereits installiert - ansonsten muss man nachinstallieren was aber nicht alle Provider zulassen.
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.
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.
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?
Ich arbeite nicht als Entwickler - meine Projekte sind in der Regel privater Natur.
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?
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.
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.
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.
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.
Vielen Dank für die ausführliche Antwort :D Ja, mit HTML und CSS etc. kenn ich mich aus :D
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.
Ist aber etwas overkill für nen Anfänger oder? Und zu schwer wsl auch..
ein Anfänger der eine Textverarbeitungs-App für den Online Betrieb programmieren will.
Also blutiger Anfänger bin ich nicht aber doch noch recht am Anfang :) Die Idee mit der Textverarbeitung ist mein Endziel, quasi meine Motivation.
Dann ist Laravel etc aber erstmal zu viel... Kannst du evtl schon dafür nutzen aber erst nachdem du noch PHP gelernt hast.
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.
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.
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
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.
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.
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 ..... :)
@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.
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
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. :)
Schau dir vielleicht mal NodeJS an, gibt da viel und es ist in meinen Augen super, da du seeehr einfach Ajax oder ähnliches auf deinem Server einbinden kannst, um nicht immer die Seite neu laden zu müssen sondern direkt Liveupdates zu haben, zudem is javascript recht einfach zu lernen.
Grundgerüst: HTML/CSS
Backend programmierung: PHP
Evtl. dynamische Frontendsachen: JavaScript
Genau und am besten verbindest du das über das Framework AngularJS und nutzt das Style-Framework Bootstrap zur Gestaltung.
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 ;)
Welche APIs sind denn nur in PHP verfügbar?