Programmiersprachen der Zukunft



  • @hustbaer Was genau vermisst du denn bei git? Binärdaten?



  • @Tyrdal
    Rename-Tracking, Cherry-Picking mit vernünftigem Merge-Tracking



  • Wie geht Ihr denn damit um, wenn andere Leute sich negativ über Eure präferierte Programmiersprache + Ökosystem äußern? Als junger/relativ frischer Entwickler muss ich schon sagen, dass mich das verunsichert.
    Ich hatte auf der Arbeit erst vor kurzem wieder so ein Fall. Ich war an einem ~4 monatigen Java-Projekt
    (mit etwa 10 Entwicklern) beteiligt, das am Ende dann aufgrund der zu hohen entstehenden Kosten abgesagt wurde. Gerade von neueren Kollegen (die wohl davor mit anderer Technologie gearbeitet haben) hat man am Ende des Projekts dann auch gerne mal die "Java ist aber auch sch***" Aussage gehört. Es sei alles viel zu umständlich, alles over-engineered und viel langsamer und verboser als das beispielsweise bei node.js oder anderen Sprachen der Fall wäre. Gerade das Spring Framework wäre totaler Müll und insgesamt müsste man doch in der Firma mal anfangen, die anderen Alternativen zu verwenden. In den anderen Sprachen "macht man einfach" und muss nicht vorher erstmal alles in 5 Schichten aufteilen.
    Ich kann grundsätzlich zu sowas nicht viel sagen, weil ich selber noch nie in realen, größeren Projekten mit sowas wie node.js gearbeitet habe. Mir fehlt da also völlig der Vergleich und auch das Vorstellungsvermögen. Keine Ahnung ob das alles viel schneller und besser geht.
    Da frage ich mich dann schon, ob ich mir vielleicht nicht Gedanken machen sollte, mal Zeit und Energie zu investieren, um die Alternativen zu erforschen. Ich stelle mir das aber sehr schwer vor, da auch das generelle Strukturieren vom Code irgendwie reiner Erfahrungswert ist. Ich persönlich strukturiere meinen Code so, wie ich es während der Arbeit in Java-Projekten von anderen Senior-Entwicklern gelernt habe. Macht man halt so. Hier in der Web-Welt teilt man halt nach MVC auf, baut sich seine Controller, Services, Repositories, DTOs, Converter, etc. Dann hat man gelernt was ungefähr der Controller übernehmen sollte, was der Service, was das Repository und so weiter. Aber auch dazu hört man immer mal wieder, wie umständlich das doch ist. Inversion of control ist auch unnötig, sowas wie dependency injection braucht man nicht und so weiter und so fort.
    Wo soll man da ansetzen? Einfach mal die anderen Sprachen ausprobieren und schauen, ob man persönlich auch der Meinung ist? Kann man als junger Software-Entwickler überhaupt seiner eigenen Meinung vertrauen?



  • @Reconsider sagte in Programmiersprachen der Zukunft:

    Wo soll man da ansetzen? Einfach mal die anderen Sprachen ausprobieren und schauen, ob man persönlich auch der Meinung ist?

    Das wird sicherlich nicht schaden.

    Ansonsten ist das viel BlaBla von Fanboys. Ja, manche Sachen gehen in manchen Sprachen besser. Das zu beurteilen bedarf dann Erfahrung. Die kommt mit der Zeit. Also hilft tatsächlich mal links und rechts über den Tellerrrand zu schauen.



  • @Tyrdal sagte in Programmiersprachen der Zukunft:

    @hustbaer Was genau vermisst du denn bei git? Binärdaten?

    Bin zwar nicht hustbaer, aber das stört mich bei git ganz gewaltig:
    Es ist nicht möglich, Snapshots anderer Repositories in einen Snapshot aufzunehmen. Angenommen ich habe ein Projekt, das von libA, libB und libC anhängen. Ich möchte im Projekt Repository einen Snapshot anlegen, der von libA Rev 1, libB Rev 2 und libC Rev 1.2 abhängt. Das geht mit git nur, wenn ich die einzelnen Libs als Submodule zum Repository hinzufüge, aber damit habe ich einen Klon des Originals im Repo. Wenn im Klon was geändert wird (zB. Bugfixes) muss ich die wieder in den Master mergen. Bei einem Projekt ist das ok, aber wenn ich einige Projekte mit mehreren Klonen habe muss ich die überall mergen, und das gefällt mir nicht.
    Was ich wirklich vermisse ist ein Feature, das einen Pull mit Abhängigkeiten in anderen Repositories macht und dabei die Repositories, zu denen Abhängigkeiten bestehen, automatisch "mitpullt".



  • @DocShoe Für sowas setzen wir hier conan ein. Da wird mittels git eine config für conan gespeichert und conan holt alles für den Entwickler notwendige.



  • @Tyrdal sagte in Programmiersprachen der Zukunft:

    @DocShoe Für sowas setzen wir hier conan ein. Da wird mittels git eine config für conan gespeichert und conan holt alles für den Entwickler notwendige.

    Das wird bei uns nix. Hier wird noch diskutiert, welche (und ob) ein VCS Vorteile gegenüber Zip Archiven bietet.



  • @Tyrdal sagte in Programmiersprachen der Zukunft:

    @DocShoe Für sowas setzen wir hier conan ein. Da wird mittels git eine config für conan gespeichert und conan holt alles für den Entwickler notwendige.

    das ist wohl sowas wie gradle und maven bei java. 🙂



  • @Bushmaster Ja ist ähnlich.



  • "Uncle" Bob Martin - "The Future of Programming"
    https://www.youtube.com/watch?v=ecIWPzGEbFc



  • Es wird wohl noch etwas dauern aber ich denke es ist eine Frage der Zeit bis menschliche Programmierer nicht mehr effizient genug sind. Ich könnte mir vorstellen dass es in Zukunft KI Systeme geben wird die die eigentliche Programmierung ausführen. Die Aufgabe des heutigen Programmierers könnte dann sein der KI möglichst exakte Befehle und Abhängigkeiten mitzuteilen und die Ergebnisse in den verschiedenen Entwicklungsschritten zu validieren. Die KI kann nicht in unseren Kopf rein schauen und weiß nicht was das Programm genau tun soll. Daher wird am Anfang noch eine intensive Kommunikation mit menschlichen Leitern sicher wichtig sein. Bis in einer fernen Zukunft die KI mindestens genau so klug ist wie der Mensch und die Kommunikation auf ein Minimum sinkt. Dann wird nur noch beschrieben werden was für eine Software man möchte und welche Funktionen sie haben soll und die gesamte technische Umsetzung kann die KI erzeugen und validieren.

    Vielleicht kommt es aber auch anders. Wenn der Mensch offen dafür ist sich selbst genetisch und technisch zu verbessern, werden es vielleicht noch "Menschen" sein die programmieren. Aber nicht mehr mit den Fingern auf einer mechanischen Tastatur sondern mit Gehirn-Maschine Schnittellen. Das wird dann quasi viel schneller und effektiver sein als mit emacs und vim 😉
    Vielleicht wird man sich die Funktionen nur denken und ein automatisches KI System erzeugt den optimierten und passenden Code dazu. Ich glaube ich würde das Geräusch der Tasten beim tippen vermissen 😃



  • @DocShoe sagte in Programmiersprachen der Zukunft:

    Das wird bei uns nix. Hier wird noch diskutiert, welche (und ob) ein VCS Vorteile gegenüber Zip Archiven bietet.

    Also die Diskussion hätte ich schnell beendet 🙂



  • @hustbaer sagte in Programmiersprachen der Zukunft:

    @DocShoe sagte in Programmiersprachen der Zukunft:

    Das wird bei uns nix. Hier wird noch diskutiert, welche (und ob) ein VCS Vorteile gegenüber Zip Archiven bietet.

    Also die Diskussion hätte ich schnell beendet 🙂

    Magste uns mal besuchen kommen? 😉


  • Mod

    @DocShoe sagte in Programmiersprachen der Zukunft:

    @hustbaer sagte in Programmiersprachen der Zukunft:

    @DocShoe sagte in Programmiersprachen der Zukunft:

    Das wird bei uns nix. Hier wird noch diskutiert, welche (und ob) ein VCS Vorteile gegenüber Zip Archiven bietet.

    Also die Diskussion hätte ich schnell beendet 🙂

    Magste uns mal besuchen kommen? 😉

    Das würde mich auch mal interessieren, was hustbaers Erfolgsmethode ist, um sture Fortschrittsverweigerer zu überzeugen. So etwas könnte ich täglich brauchen.




  • Mod



  • @DocShoe @SeppJ
    Wenns um sowas krasses geht wie als Firma die Softwareentwicklung betreibt kein VCS zu verwenden, dann bin ich da nicht sehr diplomatisch und sage klar und unmisverständlich dass ich das für vollkommen wahnsinnig halte. Plus natürlich die sachlichen Argumente dazu warum.

    Wenn die Argumente ignoriert bzw. wegdiskutiert werden ist der nächste Schritt dass ich sage "OK, wenn ihr glaubt dass wir das nicht brauchen, mir egal, glaubt es weiter, aber ich will es trotzdem haben". In einer Art und Weise die klar macht dass es sich dabei nicht um einen Wunsch handelt den die Firma ohne Konsequenzen ignorieren kann. Ist jetzt schwer da eine genaue Anleitung zu schreiben, aber im Prinzip geht es darum dem Gegenüber klar zu machen dass man sehr sehr angepisst sein wird wenn diesem Wunsch/dieser Forderung nicht entsprochen wird.

    Vorausgesetzt natürlich die Forderung ist vernünftig. Aber ich kann mir wenig Gründe vorstellen warum die Forderung ein VCS zu verwenden in einem speziellen Fall unvernünftig sein könnte.

    Und wenn auch das nichts hilft, und es mir wichtig genug ist, dann würde ich einfach kündigen. Bzw. davor vermutlich nochmal mit meinem Vorgesetzten sprechen und ihm erklären warum ich kündigen werde wenn sich nichts ändert. Wobei ein grosser Teil des Grundes dann sein wird dass ich keine Lust habe für eine Firma zu arbeiten die entweder glaubt dass ich Dinge wie ob es Sinn macht ein VCS zu verwenden nicht objektiv beurteilen kann oder die meint die Forderung aus einem anderen Grund ignorieren zu müssen/können.

    Im Prinzip das selbe wie wenn ich deutlich unter Wert bezahlt werde und dann deswegen kündige - was ich bereits getan habe.


  • Mod

    Ich weiß nicht. zip-Archive habe für uns immer gut funktioniert. Und ich habe mal git ausprobiert, das war total kompliziert. Die Leute jammern auch überall, dass es so kryptisch wäre. Ich denke auch nicht, dass wir dort unseren bisherigen zip-Archiv Workflow abbilden können.



  • @SeppJ Willst du jetzt ne Demo oder was soll das werden?

    Davon abgesehen: git ist auch total kompliziert. Aber es muss ja nicht git sein. Subversion ist auch gut und viel einfacher. Und wenn die Devs sogar für Subversion zu doof sind gibt es immer noch Systeme wie SourceGear Vault.



  • @hustbaer
    Ich glaube das ist nur Spaß.

    Git mag auf der Console kompliziert sein, aber hierfür gibts Oberflächen wir TortoiseGit. Und ehrlich gesagt ist damit ist die Sache aus meiner Sicht einfach.

    Aber ich habe auch diverse "Abgründe" in Sachen CVS bzw. ZIP Archiven erlebt. Meine Erwartungen an eine Versionsverwaltung sind daher ein wenig niedriger als vielleicht bei anderen Leuten.

    @SeppJ
    Und das Branching ist so einfach! Einfach [Strg]+[c], [Strg]+[v] und gut iss! 😆

    SCNR


Anmelden zum Antworten