Webanwendung programmieren, welche Sprache?

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 ;-)

coding24  14.10.2016, 10:55

Welche APIs sind denn nur in PHP verfügbar?

0
klugshicer  14.10.2016, 10:59
@coding24

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.

0
klugshicer  14.10.2016, 11:04
@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...

0
coding24  14.10.2016, 11:06
@klugshicer

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 ...

2
coding24  14.10.2016, 11:07
@klugshicer

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 ...

1
klugshicer  14.10.2016, 11:12
@coding24

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

0
klugshicer  14.10.2016, 11:15
@coding24

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.

0
coding24  14.10.2016, 11:15
@klugshicer

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.

0
coding24  14.10.2016, 11:18
@klugshicer

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?

0
klugshicer  14.10.2016, 11:32
@coding24

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

0
coding24  14.10.2016, 11:41
@klugshicer

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?

0
klugshicer  14.10.2016, 12:03
@coding24

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.

0
regex9  15.10.2016, 01:06

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.

0
klugshicer  15.10.2016, 02:25
@regex9

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.

0

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.


ComanderJB 
Fragesteller
 14.10.2016, 09:56

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

0

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.

triopasi  14.10.2016, 09:35

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

0
SiliconeSoul  14.10.2016, 09:38

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

1
triopasi  14.10.2016, 09:42

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

0
ComanderJB 
Fragesteller
 14.10.2016, 09:59
@triopasi

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

0
triopasi  14.10.2016, 10:01

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

0
SiliconeSoul  14.10.2016, 10:04

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.

0
coding24  14.10.2016, 10:36
@SiliconeSoul

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.

0
triopasi  14.10.2016, 10:14

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

0
coding24  14.10.2016, 10:35
@triopasi

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?

0
coding24  14.10.2016, 10:37

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

0
triopasi  14.10.2016, 10:50

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.

0
coding24  14.10.2016, 10:57
@triopasi

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?

0
triopasi  14.10.2016, 11:38

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.

0
coding24  14.10.2016, 12:01
@triopasi

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 ..... :)

0
SiliconeSoul  14.10.2016, 20:42

@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.

0
SiliconeSoul  14.10.2016, 21:03

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

0
regex9  15.10.2016, 01:20
@SiliconeSoul

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. :)

0

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

Woher ich das weiß:Studium / Ausbildung – Informatikstudium
Elni94  14.10.2016, 09:19

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

0
coding24  14.10.2016, 10:39
@Elni94

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.

0
triopasi  14.10.2016, 09:22

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 ;)

2
triopasi  14.10.2016, 10:47

Stlyus ist viel cooler wer mag schon LESS?? xD

0