Beiträge von Cictani

    Das Problem bei vielen in Cobol programmierten Altsystemen ist teilweise auch, dass sich keiner die Anfassen traut.


    Die wurden vor Jahrzehnten programmiert, die Dokumentation ist oft nicht oder nur rudimentär vorhanden. So etwas wie Unit Tests gabs da noch nicht oder es hat keiner gemacht ;). Und die Leute, welche die ursprünglich mal programmiert haben, sind meist schon längst im Ruhestand.


    Mein ehemaliger Chef hat noch ab und an etwas in Cobol gemacht, aber großartige Anpassungen waren da auch nicht drin, aus oben genannten gründen.

    Ich arbeite beruflich hauptsächlich mit Java (Spring Boot) und TypeScript (Angular2+), daneben auch mit JavaScript (meist bei legacy Projekten, bei denen es sich nicht lohnt da großartig mit Angular oder React usw. noch herumzudoktern. Für die Neuprogrammierung fehlt ja wie immer Geld/Zeit).


    Privat habe ich vor ein paar Jahren mit Python (Django) angefangen und war vor allem von dem Admin Interface recht begeistert, das automatisch eine Oberfläche erzeugt mit der man CRUD-Operationen bei den ganzen Modellen durchführen kann, die man vorher definiert hat.


    Demnächst will ich mich aber mal intensiv mit PHP auseinandersetzen (da sind meine Kenntnisse 16 Jahre alt und ich glaube wer meinen PHP-Code von damals sehen würde, der würde nur den Kopf schütteln ;)).

    Die mitgeschleifte Objektreferenz. Erster Parameter einer Methode eines Objektes ist immer der this Zeiger, frei benennbar. Warum?

    -> Sprachkerndefizit

    Ja das ist in der Tat nervig, da habe ich mich am Anfang auch gefragt, warum das so gemacht wurde. Hat vermutlich wie immer irgendwelche Kompatibilitätsgründe. Wie ja auch so vieles bei anderen Sprachen.

    Zitat

    PHP 7 hat eine saubere Objektorientierung, aus sicht des Programmierers.

    Java ist ebenfalls sauber in der Objetkorientierung, inklusive polymorphen Verhaltens.

    Ich finde es z. B. als totaler PHP Anfänger seltsam, dass ich auf Eigenschaften eines Objekts, die ich vorher mit $ vorne dran deklariert habe, dann bei einem Objekt ohne $ mit dem Pfeiloperator zugreifen.


    Auch benötigt man bei PHP für viele String Operationen und Array Operationen externe Funktionen, da es keine Objekte sind


    Zitat

    Java ist neben C++ eine der Referenzimplementierung von moderner OOP. Kein Vergleich zu Python.


    Kann man natürlich darüber streiten, da nicht alles dort ein Objekt ist, ob die dann wirklich eine Referenzimplementierung von modernem OOP sind.


    Zitat

    Pragmatisch heißt in dem Zusammenhang die einfachste, schnellste und speicheroptimierteste Lösung zu finden. Das sieht nicht unbedingt schön aus, funktioniert aber Rock-Solid.

    Einfach und schnell und speicher optimiert sind aber teilweise konträr zueinander. Gerade, was einfachen Code angeht, ist Python da schon ganz nett. Bei schnell und speicheroptimiert, natürlich nicht mehr so gut ;).


    Schnellste und speicheroptimierteste Lösung wäre wohl Assembler, aber das wäre wohl nicht mehr einfach und auch nicht schnell im Sinne von Entwicklungszeit


    Zitat

    Ein flüssiges Lesen von Python Code ist oft nicht möglich. Da fehlt die Schnittstelle zwischen "gut aussehen", "leserlich" und "funktionell". Siehe Arrays, Maps etc. im Sprachkern..

    Ist halt wieder subjektiv, da kann ich Dir deine Meinung nicht ausreden, ich persönlich finde Python Code meist gut lesbar.


    Ich bin übrigens weder Python noch Java, noch Fan einer anderen Programmiersprache. Ich finde diese Diskussionen werden oft zu emotional geführt. Letztlich hat so gut wie jede Sprache eine Daseinsberechtigung und so gut wie jede Sprache hat irgendwelche komische Syntax, die nicht logisch erscheint.

    Hat jemand schon mal was

    Hatte mit den Tabulatoren kein Problem, aber die werden sowieso nicht empfohlen: https://www.python.org/dev/peps/pep-0008/#tabs-or-spaces. Und man sollte 4 Leerzeichen zum Einrücken verwenden: https://www.python.org/dev/peps/pep-0008/#indentation


    Ich benutze für meinen Quellcode immer pep8 zur Überprüfung und autopep8 zur automatischen Formatierung.


    Ja Python ist sehr langsam, aber oft wird ja auf C Bibliotheken zugegriffen, die sind dann wieder schnell. Und wenn man ehrlich ist, benötigt man oft die Geschwindigkeitssteigerung, die man hätte, wenn man z. B. Java, C#, Go usw. einsetzt, nicht und wenn dann kann man ja immer noch bestimmte Algorithmen in C implementieren und einbinden.


    Was meinst Du mit rangeklatscht wirkende Objektorientierung? Da gibt es deutlich schlimmeres z. B. PHP, auch Java ist weniger Objektorientiert.


    Was meinst Du genau mit Pragmatischmus, fand eigentlich Python Code auch meistens recht pragmatisch ;).


    Pip ist in der Tat einer der schlechtesten "Paketmanger", den ich gesehen habe. Ich würde mir da ähnliche Funktionalität wünschen wie bei composer, maven oder npm, also dass man seine Abhängigkeiten definiert und dann werden diese direkt lokal installiert nach Aufruf eines Befehls. Bei python braucht man ja dann erst mal ein virtualenv.


    pipenv soll da Abhilfe schaffen, ich habe es aber nur ganz kurz probiert.

    Wenn Du noch nichts mit SSH gemacht hast, probierst Du erst mal aus, ob Du dich über die Konsole mit dienem Server verbinden kannst, dazu mal folgendes eingeben:


    Code
    ssh -p PORT USER@SERVER

    Wobei Du PORT durch den SSH Port ersetzt (müsste man glaub ich auch weglassen können, wenn es der Standardport ist),

    USER durch deinen Benutzernamen, den müsstest Du in den Zugangsdaten zu deinem Webhosting finden und

    SERVER mit entweder der IP oder der Domains deines Servers, auf dem dein Webhosting Paket liegt (auch das findest DU bei den E-Mails, die Du von Netcup erhalten hast).


    Wenn das geklappt hast (raus kommst DU mit dem exit Befehl), dann trägst Du bei SSH Hostname, SSH Username die Daten ein, den Port gibst Du mit :PORT dort an.


    Bei MySQL Hostname gibst Du den Datenbankserver an, der auf deinem Screenshot zu sehen ist und bei Port den Port und bei Username eben deinen Datenbankbenutzer usw. Dann auf Test Connection drücken und es sollte normalerweise gehen.


    Habe es gerade eben auch mit meinem Server getestet, ging einwandfrei.

    Du kannst ja lokal auch MySQL installieren. Einfach einen Dump von der Datenbank auf dem Server erstellen und diesen dann lokal einspielen.


    Oder meinst Du das und weißt nicht, wie das geht?

    Ich betreibe Apache, ganz einfach, weil das in Verbindung mit Linux sehr günstig ist. Vermutlich wäre IIS und Windows auf einem Webserver deutlich verbreiteter, würde das nichts kosten, so wie Linux.


    Die Performanceunterschiede dürften bei den meisten kaum eine Rolle spielen. Deshalb verwende ich auch noch Apache, weil mir das bisschen mehr Performance durch nginx bei statischen Seiten so gut wie nix bringt, da mein Server sich eh die meiste Zeit langweilt.


    EDIT: Laut diesem Benchmark scheint der IIS sowohl Apache als auch nginx zu schlagen.

    Jede moderne Zeitung hat mittlerweile einen Internetauftritt, so auch die Pyongyang Times.


    Besonders gefällt mir der blinkende Doppelpunkt bei der Zeitangabe, für den ein .gif verwendet wurde.


    Schwer wird es lediglich, wenn man bestimmte Unterseiten (z. B. die Aktivitäten des Anführers) als Favorit abspeichern will. Die Navigation mittels JavaScript ersetzt nämlich nicht die URL.