Was könnte die Programmierung der Zukunft sein. Ein neues Aussehen
Die Menschen sind immer an der Zukunft interessiert. Ich bin ein Mensch, ein menschlicher Programmierer und ich interessiere mich für die Zukunft des Programmierens. Auf Habré / Geektimes wurden bereits ähnliche Artikel gefunden, und auch im Netzwerk war es möglich, viel zu diesem Thema zu zeichnen. Heute gebe ich meine Liste möglicher Neuerungen in der Programmierung in den nächsten 10-20-50 Jahren. In diesem Beitrag finden Sie eine vergleichende Analyse der Ursachen und der Notwendigkeit der Entstehung aktueller Programmiersprachen sowie eine Beschreibung der möglichen Ursachen für die Entstehung neuer Sprachen und Werkzeuge. Das Schlüsselwort hier ist die Notwendigkeit, da die Ursache die Notwendigkeit an sich hervorruft.Historischer Hintergrund der Entstehung von Sprachen
Am Anfang möchte ich eine Tabelle mit Voraussetzungen für die Entstehung und Popularisierung aktueller Programmiersprachen geben, die allgemeinste Liste:Zunge | Grund / Notwendigkeit |
Assembler | Das Erscheinen der ersten Computer, die Notwendigkeit der Humanisierung von Maschinencodes |
C. | Die Zunahme der Anzahl der Arten von Computern und ihrer Architekturen. Die Notwendigkeit für Universal Assembler. |
C ++ | Die Entwicklung von Benutzeroberflächen. Die Notwendigkeit der Humanisierung und Strukturierung von C-Programm-Code. |
Java | Der Niedergang der Sonne, die Entwicklung des Web. Die Notwendigkeit einer interaktiven Benutzer-Browser-Interaktion. |
C # | Popularisierung von Java, aktuelle Probleme der Softwareentwicklung für Microsoft und Webplattformen. Microsoft benötigt einen eigenen Technologie-Stack. |
Javascript | - Netscape - . - . |
Objective-C | Apple- . Apple . |
PHP/Ruby/Whatever | . -. |
Your Language | ??? |
Was nicht weiter unten steht, ist eine gründliche wissenschaftliche Analyse der gegebenen Konzepte. Es gibt jedoch eine Beschreibung der Gründe für die Entstehung neuer Sprachen oder Werkzeuge, wie in der obigen Tabelle.QuantencomputerDas erste, was mir in den Sinn kommt, ist der Wechsel der Ära von Halbleitercomputern durch Quantencomputer. Die Kapazitäten werden um eine Größenordnung unterschiedlich sein, und die Aufgaben, die die Quantentechnologie lösen kann, werden auch die Grenzen der Vorstellungskraft von Programmierern verändern. Die ersten Sprachen für einen Quantencomputer werden bereits erstellt. Man kann mit Sicherheit sagen, dass mit der Entwicklung der Technologie neue Sprachen auftauchen werden, die höchstwahrscheinlich auf den aktuellen basieren.AIDie zunehmende Verwendung von KI unter alltäglichen Bedingungen wirkt sich auf die Tools des Entwicklers und die Struktur des PL aus und wirkt sich bereits auf diese aus. Nehmen wir die Sprachassistenten auf die Telefone. Oder zum Beispiel mit künstlicher Intelligenz chatten. Oder was ist, wenn sich die KI so weit entwickelt, dass sie Programme schreibt? Im letzteren Fall scheint es wahrscheinlich, dass eine spezielle Sprache erscheint, in der die KI leicht Programme entwickeln kann, die auf den Anforderungen basieren.Neue GeräteMit der Veröffentlichung von iPhones wurde Objective-C populär. Es ist möglich, dass das sehr beliebte Gerät von Corporation X bereits entwickelt wird, was die Popularität der Y-Sprache kennzeichnet. Vielleicht ist es Tesla?Globale KatastrophenEs kann vorkommen, dass es, Gott bewahre, zu einer globalen Katastrophe oder einem globalen Krieg kommt, der die Methoden der Interaktion zwischen Menschen und Maschinen grundlegend verändert. Es ist davon auszugehen, dass das Internet, falls vorhanden, ebenfalls zu seinen Wurzeln zurückfällt und nicht mehr so allgegenwärtig ist. Im Falle eines globalen Krieges müssen Autos militarisiert werden. Wo es in erster Linie weniger Benutzerfreundlichkeit als Berechnungen und Zuverlässigkeit gibt. Aus diesem Grund kann davon ausgegangen werden, dass OOP-ähnliche Sprachen in den Hintergrund treten und Computersprachen wie R, Fortran die Handfläche geben. Vielleicht ist es eine Symbiose, wie eine Art R ++ oder Fortran ++.Entdeckungen in der PhysikDie Wissenschaft steht nicht still, Forschung wird in allen Bereichen betrieben, und jeder von ihnen kann für die Menschen dominant werden. Was passiert, wenn Menschen Raum und Zeit manipulieren können? Was passiert, wenn wir die fünfte Dimension öffnen ? Zeitmaschine? Es wird offensichtlich sein, dass Software für die Bewegung im Weltraum auf etwas Neuem geschrieben werden muss, das an große Datenmengen angepasst ist. Wenn ich riesig spreche, stelle ich mir die Volumina von Galaxien und Universen vor, dies liegt nur in der Vorstellung. Was wird eine solche Sprache sein? Offensichtlich auf Parallel Computing, Netzwerkinfrastruktur, Datenverarbeitung und Visualisierung ausgerichtet.Neue Möglichkeiten zur Interaktion mit GerätenSprachsteuerung, Gestensteuerung, gestenbasiertes Eingabegerät, Computersteuerung von Gedanken. Es ist bereits, es bleibt Technologie, um populär zu werden.
Werkzeuge
Werkzeuge sind eine separate Klasse von Anforderungen eines Programmierers. Ohne sie ist Fortschritt undenkbar, so wie Sprache ohne Instrument nicht sein kann.Visuelle ProgrammierungEs ist noch nicht lange her, Versuche, visuelle Programmierwerkzeuge zu erstellen, können nicht gezählt werden . Und oft, wenn nicht immer, stießen solche Tools auf die Unfähigkeit, die Anzahl der Teile, die zur Lösung des Problems benötigt werden, in visueller Form anzuzeigen. Der Autor selbst hat versucht, ein ähnliches Werkzeug zu erstellen, für die er von Kollegen ignorante Fi erhielt. Die meisten verglichen, wie viel Zeit benötigt wird, um ein Programm visuell zu erstellen, und wie viel sie jetzt ausgeben. Was die zweite Methode immer gewonnen hat. Ich bin jedoch immer noch davon überzeugt, dass Sie, nachdem Sie häufig auftretende Lösungen in visueller Form verpackt und ein zentrales Repository dieser Lösungen organisiert haben, die Notwendigkeit umgehen können, ständig zu Details zurückzukehren und den Code zu lesen.Schnittstellengeneratoren gibt es schonlange, aber warum fehlt ihnen die Flexibilität? Und jedes neue Formular oder Layout müssen Sie noch manuell ausführen und jedes Attribut und Tag aufschreiben? Nehmen Sie zum Beispiel LightSwitch . Ein großartiges Werkzeug, aber für einen sehr engen Aufgabenbereich geeignet. Die Schnittstelle, die aus den Daten generiert wird .immer Boilerplate. Es ist ziemlich schwierig, es irgendwie anzupassen, was die Verwendung auf die Eingabe von Formularen und CRUD-Daten reduziert. Der Autor hat lange von solchen Lösungen geträumt:- Formulargenerierung (WinForms, WPF, Swing, WinAPI) basierend auf Daten
- PSD-basierte native Schnittstellengenerierung
Existiert es schon? Oder sehe ich schlecht aus?Berührungsprogrammierung (Stimme, Gesten, Berührungen)Stellen Sie sich vor, zukünftige Programmierer winken aktiv mit den Händen und sagen laut „Zaubersprüche“in neuen Sprachen. Ehrlich gesagt bin ich als Programmierer sehr erdrosselt von der Unfähigkeit,beim Schreiben von Code Emotionen zu zeigen . Jeden Tag klopfe ich lautlos an den Clave und werde zu einem emotionslosen Roboter, der aufDenken und Rechnen basiert . Wenn ich nach solchen Codierungssitzungen in die reale Welt gehe, habe ich echteSchwierigkeiten, mit Menschen zu kommunizieren und Emotionen auszudrücken. Leute, es ist Zeit für uns, ausdrucksvoller zu sein!GeneratorenprogrammeFabriksoftwareentwicklung , Softwaregeneratoren. Ja, das alles ist, aber nicht weit verbreitet. Warum? Wir können einen Stein in den Garten der Flaggschiffe werfen, die Entwicklungswerkzeuge herstellen, aber wir können sagen, dass das Spiel nicht die Kerze wert ist, sondern das Ergebnis der Arbeit. Ich sehe jedoch keine Programmierung der Zukunft ohne ein Repository mit vorgefertigten Lösungen und einen darauf basierenden Programmgenerator.
Prognose
Abschließend möchte ich eine Prognose für die Zukunft abgeben:- Anpassung und Erweiterung bestehender Sprachen an neue Bedingungen
- Erstellen eines zentralen Repositorys für schlüsselfertige Lösungen
- Schnittstellen- und Programmerstellung
- Berührungs- und visuelle Programmierung basierend auf Gesten und Stimme
- Oh ja, hier ist was ich sonst noch möchte. Vergleichende Dokumentation von Sprachen und Frameworks, in der Sie wissen, wie die Methode
in der X-Sprache implementiert ist, und der Service würde ihre Implementierung in der Y-Sprache zeigen. Analog hätten wir alle diese Frameworks schneller gemeistert.
Source: https://habr.com/ru/post/de383543/
All Articles