Hallo zusammen,
vor geraumer Zeit hatte ich mal gefragt, welche Programmiersprache man
heute lernen sollte, um als Hobby-Bastler fit zu sein.
Zu recht hatte man mir damals gesagt, dass man zwecksgebunden
Programmiersprachen einsetzt und sich im Zweifel das nimmt, was man für
seine Zwecke benötigt.
Das habe ich dann für mich an einem kleinen Projekt getan.
*Rolladensteuerung mit Raspberry Pi und Funktsteckdosen von Intertechno
Server mit Node.js und wirklich einfache html-Seite (als Kind hab ich
mal mit der schönen Seite selfhtml angefagen) zum Steuern der Rollläden
via Requests.
Läuft auch alles. Was mich ein wenig stört ist, dass mir so ein wenig
das generelle Verständis in Richtung Web-Programmierung fehlt (grade in
Hinblick auf Sicherheit, falls ich mal auf die Idee komme, meine
Rollläden übers Internet zu steuern.
Daher würde ich mich mit der Schnittstelle Raspberry - Web vllt. doch
etwas tiefer beschäftigen wollen, auch z.B. wie ich die Befehle dann
umsetzte.
Ich glaub meine eingebaute Exe-Shell wäre nicht grade als "sicher"
einzustufen.
Daher zwei Fragen:
1. Trotz suche im App-Store und Web hab ich keine vernüftiges Tutorial
gefunden, dass einem Grundlagenwissen zum Webprogrammieren vermittelt,
habt Ihr Tipps?
2. Womit wird ein Hobby-Baster am ehesten glücklich? Apache, Node.js,
Tomcat? (Ich dachte da an etwas wie den Arduino unter den Webservern).
Vielen Dank.
Daniel schrieb:> 1. Trotz suche im App-Store und Web hab ich keine vernüftiges Tutorial> gefunden, dass einem Grundlagenwissen zum Webprogrammieren vermittelt,> habt Ihr Tipps?
Im Web werden sehr viele unterschiedliche Technologien benötigt und da
hilft es, die Unterschiede zu verstehen:
- Darstellung einer Web-Seite (frontend): HTML, CSS, JavaScript
- Evtl. dynamischen Erstellen der Seite (backend): z.B. JavaScript
(Node.js), Ruby (Rails), PHP (würde ich die Finger von lassen)
- Transport der Seit vom Server zum Browser: HTTP
(https://tools.ietf.org/html/rfc2616)
- Webserver: Apache etc.
> 2. Womit wird ein Hobby-Baster am ehesten glücklich? Apache, Node.js,> Tomcat? (Ich dachte da an etwas wie den Arduino unter den Webservern).
Das hängt am ehesten davon ab, mit welcher Sprache Du das backend
implementierst. Da Du Dich ja schon mit Node angefreundet hast, würde
ich dabei bleiben.
mfg Torsten
Torsten R. schrieb:> - Evtl. dynamischen Erstellen der Seite (backend): z.B. JavaScript> (Node.js), Ruby (Rails), PHP (würde ich die Finger von lassen)
PHP verteufeln und Javascript empfehlen. Da treibst du aber den
Beltzebub mit dem Teufel aus.
Wenn es nur "schnell" gehen soll ist javascript nicht schlecht. Bringt
aber eine Menge Fehlerquellen mit auf die man keinen Einfluss. Siehe
hier als Beispiel z.B. JSFuck
Nachteil: Nicht typisiert und sehr, sehr mekrwürdige auto-casts. Nie als
Backendsprache geplant worden. Der NodeJS Server hat sich in der
vergangenheit aufgrund dieser cast-Probleme immer wieder als sehr
verwundbar gezeigt.
Wenn es schnell und einiger Maßen professionell sein soll, ist sauber
geschriebenes PHP die Wahl.
Nachteil: Nicht typisiert, alte Bibiliotheken sehr uneinheitlich
geschrieben.
Vorteil: Sehr viele Tutorials und "best practice" Artikel. Sehr viele
Analogien zu C / CPP.
Ruby ist inzwischen relativ exotisch und wenig verbreitet.
Auch exotisch bzw. nur bei embedded / high-performance Webseiten:
Java (NICHT Javascript. "echtes" Java!)
C / CPP
Vorteil: Die Sprachen sind typisiert und compilierbar. Daher ungefähr
einen Faktor 10 Resourcensparender. Nachteil: Die Entwicklung dauert
länger.
waflija schrieb:> PHP verteufeln und Javascript empfehlen.
Wo habe ich JavaScript "empfohlen"?
Ich persönlich würde Ruby oder Python empfehlen. Da JS den "Job" tut und
der OP JS offensichtlich beherscht, wäre das meine Wahl.
Sprachen kommen und gehen. Man wird sowieso nicht ein ganzes
Entwicklerleben lang mit einer einzigen Sprache auskommen.
Sinnvoll ist, aus den verschiedenen Bereichen jeweils etwas zu können:
-eine prozedurale Programmiersprache (z.B. C)
-eine objektorientierte Programmiersprache (z.B. Java oder C++ oder C#)
-eine Skriptsprache
Es schadet auch nicht, sich mal eine funktionale Programmiersprache wie
z.B. Haskell oder LISP näher anzuschauen. Freilich werden rein
funktionale Programmiersprachen in vielen Firmen selten oder auch gleich
gar nicht eingesetzt. Aber manche Konzepte davon findet man als
Ergänzung in anderen Programmiersprachen wieder.
Ich würde es nicht zu kompliziert machen. Tomcat oder Apache sind schon
sehr umfangreich und die meissten Features brauchst du wahrscheinlich
nicht. Als Webserver für den Anfang wäre vielleicht lighttpd eine ganz
gute Wahl. Node.js kann man auch machen, bietet aber schon mehr
Fehlerquellen. Dann schaue dir HTML5 und jQuery (mobile) für die
Clientseite an. Da kann man schnell und einfach gute Mobilseiten
erstellen.
Auf der Serverseite solltest du den Zugriff schon auf
Betriebssystemebene so konfigurieren, dass es möglichst dicht ist.
Dann den Webservice (Webserver) so bauen, dass er nur die Dinge
ausführen kann, die du auch möchtest.
Für den Zugriff aus dem Internet gibt es dann eine Menge mehr zu
beachten. Dazu könnte man später einen Reverseproxy einrichten, der
alles aus dem Internet verarbeitet und deinen Service abgesichert.
Ich würde mir zumindest mal Go ansehen. Läuft überall (von Windows bis
Plan9), statisch typisiert, mittlerweile ganz brauchbare Tools,
eigenständiger Http-Server nicht nötig, brauchbare C-Anbindung, falls
Low-Level-Sachen gebraucht werden (https://golang.org/cmd/cgo/).
Go -> JavaScript = https://github.com/gopherjs/gopherjs
Hab die Unterhaltung zwar nicht ganz durchgelesen, aber es bringt es
schon schön auf den Punkt.
Ich hab mir den Spaß gegönnt und auf udemy einen Kurs gebucht.
Naja er sagt html wäre eine Skriptsprache :-) Kann ja was werden.
Daniel schrieb:> Läuft auch alles. Was mich ein wenig stört ist, dass mir so ein wenig> das generelle Verständis in Richtung Web-Programmierung fehlt (grade in> Hinblick auf Sicherheit, falls ich mal auf die Idee komme, meine> Rollläden übers Internet zu steuern.
Wenn es nur darum geht, dann würde ich den Webserver hinter eine
Firewall mit VPN-Zugang stellen und fertig.
Seit wann ist html eine Programmiersprache? Das sind reine
Formatierungstags. Wenn man einen Text in Writer oder Word verfasst, hat
man dann programmiert?
@Man oh man (Gast)
>Seit wann ist html eine Programmiersprache? Das sind reine>Formatierungstags. Wenn man einen Text in Writer oder Word verfasst, hat>man dann programmiert?
Ansichtssache.
Eigentlich ist alles irgendwie Programmierung. Auch meine Nachbarn
können programmieren - nämlich ihren Fernseher, oder den Bordcomputer
des Autos ;-)
Ok, man würde das eher als Konfigurieren bezeichnen ...
HTML wird von einem Interpreter im Browser interpretiert, und
entsprechend auf dem Bildschirm umgesetzt, damit der User was buntes
sehen/lesen kann. Es ist aber damit ein sehr beschränkter
Einsatzbereich, dieser aber mit viel Liebe zum Detail ...
Interpretersprachen machen da nix anderes, auser daß die einen
anderen/univerelleren Wertebereich des Computers ansprechen.
Dazu hat sogar Wikipedia einen Absatz:
https://de.wikipedia.org/wiki/Auszeichnungssprache#.C3.84u.C3.9Fere_Systematik:_Einordnung_als_Programmiersprache_oder_Datenformat
HTML würde ich also als eine sehr spezialisierte Programmiersprache
betrachten.