"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

S: Perfekte Sprache für Cross-Plattform Web-Backend

XeroXs 25.02.2016 - 16:16 8837 55
Posts

XeroXs

doh
Avatar
Registered: Nov 2000
Location: Lieboch
Posts: 10300
Grüß euch

Ich bin auf der Suche nach einer geeigneten Programmiersprache für ein Web-Backend. Bislang habe ich so etwas immer in Java geschrieben (mit Spring MVC).. aber das ist nicht umbedingt sonderlich performant (zumindest mein Eindruck) und auch etwas schwer zu "warten".

Jetzt gibts ja allerhand tolle "neue" Programmiersprachen.. Erlang, Go, .. allerdings fehlt mir der Überblick was da jetzt wirklich geeignet wäre für mein "Problem". Vielleicht habt ihr da ja eine Empfehlung.

Was ich genau brauche:

- REST API (hauptsächlich JSON, eventuell XML)
- Datenbankzugriff (auf jeden Fall MySQL/MariaDB, toll wäre auch PostreSQL)

- Einfache Cross-Plattform-Lösung. Soll heißen: Idealerweise hätte ich gerne wenns fertig ist ein paar Bundles die man auf allen Möglichen Plattformen laufen lassen kann - wird konfiguriert und dann als Service gestartet und wartet dann auf HTTP API aufrufe.

..und das ganze mit möglichst wenig Codeaufwand ;)

Maestro

:)
Avatar
Registered: Nov 2005
Location: Wr. Neustadt
Posts: 747
Ich werf mal Node.js in den Raum :)

-=Willi=-

The Emperor protects
Avatar
Registered: Aug 2003
Location: ~
Posts: 1624
- Python (in deinem Fall + Flask, SQLAlchemy und ev. Flask-RESTful oder Django + Django REST Framework)
- node.js

Tried and trusted.

Wegen Cross-Plattform-Kompatibilität kann ich dir nur Docker oder Vagrant ans Herz legen :).

XeroXs

doh
Avatar
Registered: Nov 2000
Location: Lieboch
Posts: 10300
Hm mein Reply ist irgendwo verloren gegangen, vermutlich hab ich den Tab einfach geschlossen :D

Also nochmal:

Node.js halte ich (zusammen mit klassischem Web-JavaScript) für die Pest und Cholera der Programmiersprachen. Also nein, das wirds nicht werden - selbst wenn es wirklich Gründe dafür gäbe ;)

Über Python stolpert man ja in der Tat "dauernd" was das angeht. Das werde ich mir mal ansehen, danke für den Tipp.

Von Docker/Vagrant halte ich da nicht viel, ist für mich die falsche Lösung. Also Ziel ist es wirklich dass man das Zeug dann überall laufen lassen kann. Mit Docker ginge da zwar vermutlich viel, aber Windows würde ja schonmal nicht gehen oder? Und außerdem bin ich da schon sehr "technisch" unterwegs - d.h. keine Lösung die mal eben "irgendjemand" der nicht so technik-versiert ist nutzen kann.
Bearbeitet von XeroXs am 07.03.2016, 16:04

-=Willi=-

The Emperor protects
Avatar
Registered: Aug 2003
Location: ~
Posts: 1624
Die Pest und Cholera? Dann will ich nicht wissen das du von PHP denkst :D.

Docker und Vagrant sind genau dafür gemacht, System-agnostisch Software auszuliefern. Was meinst du denn mit "überall laufen lassen"? Installiert das jemand, der sich auskennt und im Zweifel eben auch Docker/Vagrant installieren kann oder wird das 0815-Usern übergeben?

XeroXs

doh
Avatar
Registered: Nov 2000
Location: Lieboch
Posts: 10300
Zitat von -=Willi=-
Docker und Vagrant sind genau dafür gemacht, System-agnostisch Software auszuliefern. Was meinst du denn mit "überall laufen lassen"? Installiert das jemand, der sich auskennt und im Zweifel eben auch Docker/Vagrant installieren kann oder wird das 0815-Usern übergeben?
Ziel wäre es dass es ein "leicht technisch versierter" User installieren kann.

Also im Endeffekt so wie z.B. Apache seine Software ausliefert.. als Binary für alle Plattformen. Das wäre Ideal..

Bzgl. PHP: no comment :D
Bearbeitet von XeroXs am 07.03.2016, 16:37

-=Willi=-

The Emperor protects
Avatar
Registered: Aug 2003
Location: ~
Posts: 1624
Haha - Sprachen-Hass-High-5 :D

Ich hab mal unter Linux mit Flask und verschiedenen Python-Freezern experimentiert und das ging schon ganz gut. Ich probier das mal direkt auf Windows, ob es da auch so reibungslos funktioniert.

Mr. Zet

Super Moderator
resident spacenerd
Avatar
Registered: Oct 2000
Location: Edge of Tomorrow
Posts: 11991
XeroXs und sein Feldzug gegen JavaScript :D

XeroXs

doh
Avatar
Registered: Nov 2000
Location: Lieboch
Posts: 10300
Doch Comment :D Haha Zet ;)

Folgendes: Ich will da JS, PHP etc. gar nicht unnötig bashen. Haben bestimmt ihre Berechtigung, aber ich persönlich mag einfach eher Sprachen die einen soweit unterstützen dass man am Ende des Tages auch bei einem großen Projekt einen guten Überblick hat, und wo es z.B. guten Support für Unittests etc. gibt. Ich hab ein sehr großes Javascript Projekt an der Backe, und wenn da einmal ein paar Leute daran herumprogrammiert haben, ist es einfach nur noch unübersichtlich. Da braucht man einfach soo viel mehr Disziplin um da halbwegs Ordnung zu behalten, und gleichzeitig merkt man Fehler dann meist erst wärend der Laufzeit -> brr. nichts für mich ;)
Strong Typed + Compiled = yay ;)

-=Willi=-

The Emperor protects
Avatar
Registered: Aug 2003
Location: ~
Posts: 1624
Script-Sprachen und Newbies sind oft eine tödliche Mischung für ein Projekt...Nur bei PHP ned...PHP is immer crap :p..

Auf jeden Fall hab ich grad ein bisschen mit cx_Freeze und Flask herumprobiert und eine .exe+DLLs erzeugt die läuft :). Einen sonst unnötigen import musste ich einbauen und die Templates selber kopieren. Wenn man das Ergebnis zippt und verteilt sollte das ganz ok funktionieren.
Bearbeitet von -=Willi=- am 07.03.2016, 16:50

Master99

verträumter realist
Avatar
Registered: Jul 2001
Location: vie/sbg
Posts: 12593
vorweg, mein wissensstand ist sehr angestaubt, mich würd aber interessieren was ihr von ruby bzw in diesem kontext rails haltet.

das wäre wohl das direkte pendant zu django mit vielen eingebauten testfunktionen usw.
Bearbeitet von Master99 am 07.03.2016, 17:16

Mr. Zet

Super Moderator
resident spacenerd
Avatar
Registered: Oct 2000
Location: Edge of Tomorrow
Posts: 11991
Bzgl. "Strong Typed" bin ich ganz bei dir XeroXs. Strong vs. Weak Typing ist zwar nicht klar definiert, aber mir sind generell Sprachen suspekt die z.B. Variablen ohne explizite Typangabe erlauben oder auch so Dinge wie implizite Typkonvertierungen.. *brr* Gerade wenn Anfänger am Werk sind passieren da so schnell Fehler und auch als "alter Hase" muss man eigentlich immer auf der Hut sein.

Kommt aber vermutlich auch daher, wie ich Programmieren gelernt habe: in der Schule Object Pascal (Delphi) und auf der Uni primär Java (und bisschen C als "Randnotiz").


Ich bin selbst gerade erst dabei mir JavaScript anzueignen (hatte ich zuletzt in der Schule Kontakt damit...) und kann noch nicht wirklich eine qualifizierte Meinung dazu abgeben, aber langsam gewöhne ich mich daran. ;)

Ich hab auch erst vor kurzem von jQuery erfahren und mir das angeschaut. Jedenfalls bin ich da über ein "Schwesterprojekt" für Unittests gestolpert:
Also grundsätzlich gibt es die nötigen Tools für Unit-Tests, ist natürlich die Frage wie man sowas nachträglich bei einem großen Projekt durchzieht ;)

-=Willi=-

The Emperor protects
Avatar
Registered: Aug 2003
Location: ~
Posts: 1624
Python wird auch außerhalb von Web verwendet aber Ruby sehe ich nur im Zusammenhang mit Rails. Selber verwendet hab ich Rails noch nicht aber es soll ja ein recht fähiges Framework sein.

XeroXs

doh
Avatar
Registered: Nov 2000
Location: Lieboch
Posts: 10300
Von der Sprache her find ich Erlang extrem geil. Aber da das eine (hauptsächlich) funktionelle Sprache ist, trau ich mich da (noch) nicht drüber.

Mein "Hauptproblem" ist halt echt dass ich am Ende des Tages gerne CP-Builds hätte, die dann "einfach laufen".. ohne dass man da händisch viel installieren muss... aber mir kommt vor das gibts nirgends so richtig :(

-=Willi=-

The Emperor protects
Avatar
Registered: Aug 2003
Location: ~
Posts: 1624
Wahrscheinlich wär tatsächlich eine kompilierbare Sprache dem herumgetue mit Python + cx_Freeze vorzuziehen was mich auf Go bringt. Das ist gerade recht beliebt. Natürlich gibts wie zu jeder Sprache auch ein Webframework :D: https://revel.github.io/. Damit kannst du auch deine Binaries + Files verteilen.
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz