Wow, Konrad. Damit hätte ich jetzt nicht gerechnet.

Ich habe durch das Wirtschaftsinformatikstudium gelernt, dass ich keine
Lust mehr auf selbst programmieren habe. Java und OOP ist derart merkwürdig
zu programmieren, dass macht mich auf dauer krank. Wenn ich für "Hello
World" einen Monat in Vollzeit brauche, ist das für jemanden der mit
programmieren und OOP aufgewachsen ist eine Sache von 3 Minuten (inklusive
PC hochfahren).
Wenn ich an Webanwendung denke, dann habe ich zum Beispiel Telegram im
Kopf. Allerdings sehe ich optisch nicht, dass Telegram als Webanwengung
irgendwie was mit HTML/HTML5 zu tun hat. Es muss auch etwas geben das sich
CSS nennt, da weiss ich aber auch nicht wann ich das brauche.
Aktuell gibt es zwei Domains. Bei der einen Domain soll der normale
Webauftritt stattfinden. Er repräsentiert das Unternehmen in jedem Land, in
diesem Fall Deutschland. Das Unternehmen soll weltweit agieren,
dementsprechend kommen im Laufe der Zeit noch weitere hinzu. Ist aber
irrelevant. Hinter der anderen Domain ist dann die Webanwendung und
Datenbank versteckt. In der Datenbank sind neben allgemeinen Informationen
auch sensible Daten der Nutzer, welche nicht unbedingt ständig durchs
Internet müssen.

Die Webanwendung (Programmiersprache noch unklar) muss sich also mit der
einen Domain verbinden. Ich habe mich schon mit dem Gedanken angefreundet,
dass die Nutzer sich einerseits mittels Webbrowser in ihren Account
einloggen können oder sich eben die Webanwendung "installieren", wie so ein
Telegram, die ganzen Google Anwendungen, etc. Müssen sensible Daten
verarbeitet werden, soll dies auf dem Server passieren, alle weitere
Aktionen auf dem Client.

Kann ich mit den Angaben jetzt weiter die richtige(n) Programmiersprachen
filtern? Wenn nein, welche Fragen muss ich noch stellen um die Suche weiter
einzugrenzen?


Gruß Stefan

Am Fr., 5. März 2021 um 13:28 Uhr schrieb Konrad Rosenbaum <[email protected]
>:

> Hi,
>
> On 05/03/2021 12:15, Stefan Engelhardt wrote:
> > ich würde gerne lernen/verstehen, wie Webanwendungen aufgebaut sind,
> > welche Programmiersprachen wann verwendet werden, etc. Ist
> > zufälligerweise jemand unter euch, der sich in dem Thema Zuhause fühlt?
>
> Es kommt sehr stark darauf an was Du unter "Webanwendung" verstehst und
> in welche Umgebung die Anwendung eingebettet ist.
>
>
> Grundsätzlich kannst Du jede beliebige Programmiersprache benutzen um
> aktive Webinhalte zu programmieren, ein paar typische Beispiele in mehr
> oder weniger historischer Reihenfolge:
>
> C/C++: klassische CGI-"Scripte". Wird gerne verwendet um irgendwelche
> Low-Level Informationen über den Browser anzusprechen (z.B. klassische
> Web-Cam, Sensor-Status abfragen, etc.) ohne große Ansprüche an die
> Interaktivität. Ist normalerweise in ein größeres Framework eingebettet
> bei dem dann kaum noch auffällt dass ein paar CGIs da drin versteckt
> sind (z.B. die Konfiguration Deiner FritzBox). Heute werden auch gerne
> mal solche Sprachen wie Go oder Rust verwendet um CGIs zu schreiben.
>
> Perl: war bis vor 10 Jahren der Platzhirsch unter den Web-Sprachen. Man
> kann einfache CGIs oder sehr komplexe Anwendungen damit schreiben. Heiko
> kann sicherlich mehr zu Perl sagen als ich. Von mir nur eine kleine
> Warnung: Perl ist eine "write-only Sprache" - d.h. es ist sehr einfach
> Scripte so zu schreiben dass man sie ein paar Tage später nicht mehr
> versteht - auf der anderen Seite habe ich auch schon sehr schöne
> Perl-Scripte gesehen (aber nicht viele).
>
> Java: hat in verschiedensten Formen das Web beeinflusst. Auf der Client
> Seite gab es "Applets" (lern es nicht, funktioniert nicht mehr). Auf der
> Server Seite gab es verschiedene Konzepte wie "Java Server Pages",
> "Application Server", etc. Wird im Business-Umfeld relativ häufig als
> Framework eingesetzt (z.B. Jenkins CI Server, Gerrit Code Review,
> Tomcat, ...). Hat den Vorteil dass es sehr dicht an der klassischen
> Anwendungsprogrammierung ist und den Browser nur als Schnittstelle zum
> User benutzt.
>
> Javascript, CSS: im Wesentlichen Client-Seite. Beide werden benutzt um
> Applikationen interaktiver zu machen und "schöner" zu gestalten. Es ist
> erstaunlich wie weit man mit der Kombination kommt (ich habe z.B. mal
> eine HTML-Seite entwickelt die Barcodes ausspuckt ohne den Server fragen
> zu müssen). Es ist aber auch erstaunlich wie schlimm die Kopfschmerzen
> nach ein paar Stunden Javascript sind. Wird normalerweise als Ergänzung
> zu anderen Server-seitigen Frameworks eingesetzt.
>
> PHP: de-facto Standard für interaktive Web-Inhalte, gefühlt über 90% der
> Webseiten sind heute mit PHP geschrieben. Die Sprache ist explizit für
> Web entwickelt und bietet so ziemlich alles was man sich vorstellen
> kann. In bestimmten elitären Kreisen gilt PHP wahlweise als unsicher
> (behobenes historisches Problem) oder unästhetisch (Geschmacksfrage).
> Auf der anderen Seite beweisen große Projekte wie Wikipedia oder
> Phabricator, dass PHP für anspruchsvolle Sachen geeignet ist. Wenn Du es
> lernst orientier Dich bitte an den größeren Projekten, es gibt (genau
> wie bei anderen verbreiteten Sprachen) viel Schrott, der einem gut zeigt
> welche Fehler man machen kann...
>
> Ruby/Python: sind beide angetreten Perl zu verdrängen. Die Fans sind
> üblicherweise auf den Erfolg von PHP wütend. Es gibt in beiden Sprachen
> gute Frameworks und beeindruckende Anwendungen. Ob Du sie lernen willst
> hängt davon ab ob Du sowieso Fan einer dieser Sprachen bist oder ob Du
> ein Projekt zum Thema hast.
>
> C#: Microsoft ist wie üblich auf Java neidisch und versucht es aus dem
> Business-Umfeld zu verdrängen - mit teilweisem Erfolg. Würde ich nur
> lernen wenn mein Chef die Bücher und die Zeit bezahlt.
>
> Ich habe auch schonmal eine Mini-Spass-Webseite mit Bash programmiert,
> aber ich würde empfehlen bei den verbreiteteren Frameworks zu bleiben.
>
>
> Zum Einstieg würde ich Dir empfehlen PHP zu lernen - es ist schön
> einfach, flexibel und Du kommst relativ schnell zu Erfolgserlebnissen,
> kannst aber auch relativ weit damit kommen. Es ist recht gut geeignet
> die wichtigsten Konzepte zu begreifen und Du wirst immer Leute finden,
> die weiterhelfen können. Wenn Du die Grundlagen begriffen hast mach' mal
> etwas "Urlaub" von PHP und schau Dir andere Frameworks an (z.B. indem Du
> in die Sourcen anderer Anwendungen schaust). Genau wie bei "klassischen"
> Anwendungen hängt die Wahl der Sprache vom Einsatzgebiet der Anwendung
> und von deren Umgebung ab.
>
>
> Architektonisch reichen Webanwendungen von simplen Datentransformatoren
> (z.B. Wert aus einer Datei lesen und in HTML verpacken) über die
> klassischen multi-tier Applikationen bis hin zu komplexen
> Cluster-Anwendungen (z.B. Phabricator oder Wikipedia wenn sie
> vollständig ausgenutzt werden). Sie können komplett alleine dastehen
> (nur Webserver), eine Datenbank benutzen oder eine komplette
> Server-Umgebung brauchen. Etwas Literaturstudium kann nicht schaden
> bevor Du größere Projekte angehst.
>
>
> Sobald Du die Grundlagen verstanden hast solltest Du auch anfangen Dich
> mit den Problemen zu beschäftigen - insbesondere Security-Probleme
> (Cross-Site Scripting, SQL Injection, etc.). Die allermeisten Frameworks
> haben Lösungen für die Probleme, aber man muss es wissen um es korrekt
> einzusetzen. Bei Web-Anwendungen ist das wichtiger als bei klassischen
> Anwendungen, da Deine Anwendung offen da steht und Angreifer quasi
> einlädt sich auszutoben. Es gibt reichlich Literatur (auch online) zum
> Thema.
>
>
>      Konrad
>
>
>

Antwort per Email an