Was kommt nach der Objektorientierung?



  • hustbaer schrieb:

    kellerkindanwärter schrieb:

    threads/paralell und die ganzen anderen buzzwords, was wollt ihr damit eig? ist doch alles alt und langweilig 😕

    ich gebe mal ein bsp. mein aktueller webserver unterstützt nur einen thread. der geplante server hat aber 4 kerne, also werde ich einen haproxy laufen lassen und das programm 3x starten. und bei mehr kernen eben öfter. muss ich deswegen was an meinem style ändern - ich denke nicht! 😉

    jo top.
    du hast nur leider nicht verstanden worum es geht.

    dann klär mich doch mal auf 😉



  • Dinge zu "paralellisieren" indem man einfach ein Programm 4x oder 16x rausstartet ist trivial. Interessant wird es wenn du Fälle hast wo das so einfach nicht möglich ist.



  • Ich denke, man sollte sich nicht fragen, was nach OOP kommt, sondern erstmal bestehende Programmiersprachen fixen.



  • Kellerautomat schrieb:

    Ich denke, man sollte sich nicht fragen, was nach OOP kommt, sondern erstmal bestehende Programmiersprachen fixen.

    🤡



  • Mechanics schrieb:

    Xin schrieb:

    Hehehe, das sind immer "Meta-Diskussionen", denn in dem Moment, wo sie konkret würden, kommt sofort jemand an mit "Das kann man doch auch so und so lösen." und das braucht man nicht.

    Das ist aber ein wichtiger Punkt. Ich sag jetzt nichts gegen deine Idee (kenn sie ja nicht), und generell nichts gegen neue Ideen... Aber es ist schon echt schwer, sich in der Praxis tatsächlich durchzusetzen, wenn die Vorteile nicht sehr deutlich sind.

    Bis hierhin sind schon zwei Denkfehler... oder sagen wir Denkhindernisse drin, die nicht progressiv an die Sache herangehen.
    Erstens: Wer verlangt, dass es sich durchsetzt?
    Zweitens: Wieso müssen die Vorteile jedermann deutlich sein?

    Ein Experiment muss erstmal gemacht werden, dafür reicht es, wenn sich Dinge wenigstens in die richtige Richtung bewegen. Bevor das Experiment allerdings nicht zeigt, dass es umständlich oder unnütz ist, muss man es allerdings ausprobieren, wenn man sich unsicher ist.
    Das mache ich in der Regel, in der ich Probleme mit einem Konstrukt löse und mir überlege, ob mir das gefällt.

    Auch müssen die Vorteile nicht sofort für jedermann deutlich sein. Da wären wir nochmal bei den Klassen - das war früher auch nur überflüssig und der Zweck dahinter nicht jedermann ersichtlich. Ich habe ein Konstrukt entworfen, dass durch klassenbasiertes Programmieren quasi überflüssig ist - und dann habe ich probehalber die Enigma-Verschlüsslung implementiert und festgestellt, dass es für diesen Algorithmus wie gemacht ist - es war aber nicht dafür gemacht. Es war nur ein Konstrukt, was sich auf mehr als das von mir ursprünglich angedachte Szenario anwenden ließ. Es besteht also der Verdacht, dass es nützlicher sein könnte, als ich ursprünglich gedacht habe.

    Mechanics schrieb:

    Es ist ein immer ein gewisser Aufwand, sich eine neue Programmiersprache anzutun, vor allem mit den neuen Standardbibliotheken, 3rd party Bibliotheken usw. D interessiert mich z.B. gar nicht, auch wenn es einige Vorteile gegenüber C++ haben mag. Aber Scala hab ich mir gern angeschaut und setz das auch ab und zu in Java Projekten ein, weil das eine coolere Sprache als Java ist und man die Sprachen gut kombinieren kann.

    Das ist sicherlich ein Punkt. Ich spekuliere allerdings nicht direkt auf die große Masse - im Gegenteil, solange ich an der Sprache feile, habe ich inzwischen lieber ein kleines konzentriertes Publikum, dass ...

    Gregor schrieb:

    Xin schrieb:

    Hehehe, das sind immer "Meta-Diskussionen", denn in dem Moment, wo sie konkret würden, kommt sofort jemand an mit "Das kann man doch auch so und so lösen." und das braucht man nicht.

    Doch, das braucht man! Man braucht Kritiker, weil man selbst keine allumfassende Sicht auf alles hat.

    ...sehr kritisch an die Sache rangeht und Fragen stellt. Dabei ist der Hintergedanke aber da, dass ich mir wohl etwas sinnvolles dabei gedacht habe. In den öffentlichen Foren erhielt ich zumindest bisher vorrangig Antworten. Die Antworten sind eigentlich recht einfach: "Braucht man nicht", "kann man anders machen", "setzt sich eh nicht durch".

    PS: Zu dem Text den Du von mir zitiert hast (und das braucht man nicht), da habe ich die Anführungszeichen vergessen, daher war er missverständlich: << und "das braucht man nicht". >>
    Leute, die kritisieren, brauche ich in jedem Fall. Aber eben konstruktiv kritisieren.</ps>

    Antworten sind so langweilig, wenn man stattdessen Fragen haben kann. 🙂
    Antworten bekam ich meistens von Informatikern. Menschen aus anderen Fachbereichen, werden sehr kreativ, weil sie sich an die üblichen Grenzen der Programmiersprachen gar nicht herankommen oder diese einfach nicht als Gegeben akzeptieren. Da kommt dann eher die Frage "Warum kann ich etwas nicht machen?" und dann ich als Informatiker das oftmals gar nicht begründen, warum man etwas nicht machen kann. Ich kann mir aber ein Konzept ausdenken, wie man es umsetzen könnte.

    Gregor schrieb:

    Sachliche Kritiken sind etwas gutes. Man muss eben nur die entsprechende Kritikfähigkeit haben.

    Genau, deswegen liefere ich Futter auch nur noch an einen kleinen Kreis von Entwicklern und/oder Informatikern, bei dem ich von sachlichen Kritiken ausgehe. Die meisten Entwickler haben nämlich schon alle Antworten, die sie für ihren Alltag brauchen.

    buchstaben schrieb:

    Was kommt nach der Objektorientierung?

    eine Bildsprache ...wäre denkbar, ... Symbolisierung ist ein Trend, der in der Mathematik seit Jahrhunderten anhält.

    Gibt es schon, ist aber eher unpraktisch, um Algorithmen zu beschrieben.
    Hier sehe ich überhaupt keine Zukunft drin, weder in UML noch in Labview. Wissen tue ich es natürlich auch nicht, aber wenn wir wetten sollen, wette ich darauf, dass bei den professionellen Programmierern Texteditor und Konsole auch in 50 Jahren noch erhalten sind.
    Auf die Tastatur wette ich nicht, aber auch hier gehe ich davon aus, dass der Entwickler Laptops besitzt und keine Tabletts.



  • Gregor schrieb:

    Auf der anderen Seite kommen Herausforderungen durch die Veränderungen der Hardware. Wir sehen in den letzten Jahren, dass mehr und mehr Rechenkerne in die Prozessoren einziehen. Zudem werden jetzt auch noch Grafikkerne in die CPU integriert. Man hat in Zukunft also eine sehr parallele und heterogene Hardware. **In erster Linie wird das eine Herausforderung für die Compiler sein, aber ich denke, dass eine gute Ausnutzung dieser Hardware vor allem dann zu erreichen ist, wenn in die Sprachen auch ein paar Sprachmittel einfließen, die es dem Programmierer ermöglichen, bestimmte Eigenschaften seines Codes explizit zu machen. Zum Beispiel die Parallelisierbarkeit.
    **

    Das und das:

    Was funktionale Programmierung angeht, bin ich skeptisch. Es ist ja nicht so, dass Haskell oder eine andere funktionale Sprache in den letzten Jahren einen riesigen Boom jenseits der Hobbyprogrammierer-Szene hatte. Ich habe zumindest nichts in der Art mitgekriegt. Es ist eine absolute Ausnahmen, wenn irgendwo mal Haskellprogrammierer gesucht werden.

    wird dazu führen, daß etabilierte Sprachen wie C++ eine Erweiterung für die funktionale Programmierung erhalten werden.

    Die Programmiersprache D hat das schon vorgemacht, kann sich aber mangels Compilersupport nicht durchsetzen, aber das wird nichts daran ändern, dass auch C++ dieses Feature erhalten wird bzw. gar muss.



  • buchstaben schrieb:

    Was kommt nach der Objektorientierung?

    eine Bildsprache oder ein Formalismus ähnlich APL wäre denkbar, wenn ich weit in die Zukunft blicke.

    denn irgendwann werden Operatoren wie map-reduce, filter, lambda etc so selbstverständlich sein wie heute + und -, und dann braucht man für solche Operatoren ein Symbol. Zukünftige Progsprachen sind ja nicht mehr an ascii gebunden, warum also nicht eine Vielfalt neuer Symbole nutzen, um Schlüsselwörter durch kurze prägnante Formelsprache zu ersetzen - Symbolisierung ist ein Trend, der in der Mathematik seit Jahrhunderten anhält.

    Die Symbolkraft endet an der Tastatur.

    Solange ich da nicht die speziellen Unicodesymbole direkt und per default mit einem Tastendruck eintippen kann, werden Symbole für eine Programmiersprache keine Chance haben.
    Bei der Mathematik ist das anders, denn die entwickelte sich ohne Computer frei händig und hatte daher genug Freiraum Symbole einzuführen ohne an ein bestimmtes Eingabegerät gebunden zu sein.

    Und das die Maus hier helfen würde, das würde ich bezweifeln, denn mit einer Tastatur ist man dennoch schneller.



  • Kellerautomat schrieb:

    Ich denke, man sollte sich nicht fragen, was nach OOP kommt, sondern erstmal bestehende Programmiersprachen fixen.

    Das wird nicht passieren, guck dir C++ an, niemand wirft C++ über den Haufen und bricht mit dem ursprünglichen C++.

    Und Alternativen wie D setzen sich nicht durch.



  • Feriuko schrieb:

    Die Symbolkraft endet an der Tastatur.

    ... die sich aus der Schreibmaschine entwickelt hat, also historisch bedingte Grenzen hat.

    auf einem touch-Display kann man unbegrenzt viele Symbole verwenden, man braucht dazu nicht mehr als eine icon-Leiste. Zukunftsfähig.

    und was die Gewöhnung angeht:

    lies dir mal einen math. Beweis aus dem 17. Jahrhundert durch: kaum Symbole und noch in Latein. Für die damaligen Menschen wären Integralzeichen und direkte Summen unverständlicher hokuspokus gewesen, und heute lernt man es in der Schule.



  • Marty Mc Fly schrieb:

    Wildes Spekulieren über Softwareentwicklung in 10, 30 oder 50 Jahren.
    Würde mich interessieren wie ihr euch die Zukunft der Programmierung vorstellt 🙂

    Könnte mir gut vorstellen, daß Programmieren irgendwann dreidimensional, also holografisch und mit Gestensteuerung oder Spracherkennung möglich sein wird.

    Bin nicht sicher, aber z.B. bei DNA-Strängen könnte man sowas vermutlich gut gebrauchen.

    Programme wie LabVIEW und Simulink gehen da schon in die entsprechende
    Richtung.



  • Mein Mitgefuehl fuer alle, die in LabView programmieren muessen. Und ... nur weil DNA-Straenge Molekuele im 3D-Raum sind, ist die Information noch lange nicht 3-dimensional codiert.



  • redrew99 schrieb:

    Bin nicht sicher, aber z.B. bei DNA-Strängen könnte man sowas vermutlich gut gebrauchen.

    Wohl kaum. Ich glaube nicht, dass eine effizientere Eingabemöglichkeit geben wird, als eine stinknormale Tastatur, findets euch damit ab. Beim Programmieren muss man einfach viele Informationen eingeben und das wird auch so bleiben. Es wird nicht reichen, zwei Gesten im Raum zu machen (außerdem finde ich sowas sehr anstrengend). Und selbst Sprachsteuerung ist für soetwas nicht optimal. Sprechen ist (zumindest für mich, ich denke für viele andere auch) anstrengender, als tippen, und programmieren ist grundsätzlich zum Sprechen wenig geeignet und wird es wohl auch noch eine Weile bleiben.



  • Tut mir leid, dass das jetzt aus dem Gesprächsfluss heraussticht, aber ich dachte, ich hätte es schon gestern abgesendet, allerdings hatte ich dabei nur auf Vorschau geklickt.

    Feriuko schrieb:

    Die Symbolkraft endet an der Tastatur.

    Solange ich da nicht die speziellen Unicodesymbole direkt und per default mit einem Tastendruck eintippen kann, werden Symbole für eine Programmiersprache keine Chance haben.

    Ein kleines bisschen Hoffnung habe ich ja schon, dass sich endlich mal alternative Tastenbelegungen zumindest so weit verbreiten, dass ingendwann wenigstens mehr als 30% der Computernutzer überhaupt davon wissen, dass es die gibt …
    http://neo-layout.org/

    Dass es so viel mehr Symbole geben wird, glaube ich aber auch nicht, schließlich muss man die auch alle lernen, festlegen, wer welches nutzen darf, vielleicht neue schaffen, und so weiter, und so fort …
    Da finde ich den bisherigen Stand schon ganz sinnvoll und auch die Konzepte, die es gibt.

    Das, worauf ich ja noch warte, ist die Umstellung der Tastaturbedienung auf effizientere Varianten. Zum Beispiel sind die Tastaturform, insbesondere der Tastenversatz, und viele Bedienungsmuster noch Relikte aus der Schreibmaschinenzeit (zur Erinnerung: auch QWERTZ 😛 ).
    Man könnte Tastaturen ergonomischer formen, sie besser an die Form der Hand anpassen und so nicht nur den Körper entlasten, sondern vielleicht auch schnelleres Schreiben ermöglichen.
    Auch kommt mir das bisherige Programmbedienungssystem sehr suboptimal vor, Tastenkombinationen sind manchmal echt unbequem zu erreichen (besonders Emacs scheint ja dafür bekannt zu sein). Ich benutze ebenfalls bisher fast keine, sie anzuwenden war mir immer zu umständlich (und das Erlernen zugegebenermaßen wohl auch).
    Die Modifikatoren könnten mehr in die Mitte der Tastatur rücken (das wurde für Neo3 auch diskutiert).
    Ich wäre z.B. bereit, die Ebenen 5 und 6 aufzugeben, wenn ich auf sie dafür Tastenkombinationen legen könnte, die von Programmen auch erkannt werden und die irgendwie einheitlicher sind *.
    Ich habe aber schon die ganze Zeit das Ziel im Gedächtnis, irgendwann mal zu lernen, mit einem der beiden Editoren Emacs oder Vim (oder einem Abkömmling) umgehen zu können. Falls ich die beiden gerade nicht vertausche, wird es aber wohl Vim, weil ich keine Lust habe, meine Finger zu verrenken.
    Die Verteilung der Tastenkombinationen stellt mich bisher auch nicht zufrieden, ich habe mir beispielsweise g

    Noch ein Einfall: Sprächen wir eine Sprache, deren Grammatik ein Rechner vollständig anwenden könnte, so könnte man auch beispielsweise nur noch Wurzeln und ggf., falls sie sich nicht ergibt, die Form eingeben und er macht den Rest. (Wobei ich nicht weiß, ob das wirklich schneller wäre, ich bin nur grad drauf gekommen, weil ich an Plansprachen gedacht hab)

    *Mir ist gerade eine Idee wieder gekommen:
    Eine Art Tastenkombinationsdatenbank, wo für Standardaufgaben bestimmte Tastenkombinationen gespeichert werden, die dann von Programmen direkt abgefragt werden können (und sollen). So könnte man sich beispielsweise Kopieren umlegen und müsste das dann nicht bei jedem einzelnen Programm tun.
    Eigentlich alle Programme sind halt nicht auf Sonderfälle wie Neo optimiert, sondern auf QWERTZ, sodass die Bedienung manchmal – eigentlich unnötig – unbequem wird (Strg+W ist hier beispielsweise entsprechend Strg+T – da macht man die Tabs doch meistens eher mit der Maus wieder zu. Auch aufmachen liegt zwar eigentlich relativ bequem auf (entspr.) Strg+L, aber dafür muss dann entweder die linke Hand rüberspringen oder man muss beide Hände auf der Tastatur haben)
    Sie würde vom BS bereitgestellt werden.

    Nachtrag 1:

    buchstaben schrieb:

    auf einem touch-Display kann man unbegrenzt viele Symbole verwenden, man braucht dazu nicht mehr als eine icon-Leiste. Zukunftsfähig.

    Jo, ein Dadsch-Bildschirm (wie er in Franken genannt wird) ist genau das, was ich fürs Programmieren benutzen möchte 🙄

    Ansonsten möchte ich Mechanics zustimmen, Sprechen is doch viel zu anstrengend (und natürlich auch unschön, wenn man in irgendeiner Firma sitzt oder es in der Umgebung laut ist; das hatten wir ja beim Thema Sprachsteuerung schonmal)
    Gestensteuerung und Hologramme halte ich ebenfalls für ungeeignet, aber grad bei der Arbeit mit DNS könnte ich sie mir Vorstellen, weil man damit doch ziemlich gut im Modell navigieren könnte, sich Ausschnitte anschauen, usw. (macht also quasi das Debuggen einfacher).



  • Fast2 schrieb:

    *Mir ist gerade eine Idee wieder gekommen:
    Eine Art Tastenkombinationsdatenbank, wo für Standardaufgaben bestimmte Tastenkombinationen gespeichert werden, die dann von Programmen direkt abgefragt werden können (und sollen). So könnte man sich beispielsweise Kopieren umlegen und müsste das dann nicht bei jedem einzelnen Programm tun.
    Eigentlich alle Programme sind halt nicht auf Sonderfälle wie Neo optimiert, sondern auf QWERTZ, sodass die Bedienung manchmal – eigentlich unnötig – unbequem wird (Strg+W ist hier beispielsweise entsprechend Strg+T – da macht man die Tabs doch meistens eher mit der Maus wieder zu. Auch aufmachen liegt zwar eigentlich relativ bequem auf (entspr.) Strg+L, aber dafür muss dann entweder die linke Hand rüberspringen oder man muss beide Hände auf der Tastatur haben)
    Sie würde vom BS bereitgestellt werden.

    Gibt es schon bei KDE 4 ( http://www.kde.org ) Ich habe aber noch nicht ausprobiert, in wie weit sich die Programme daran halten.



  • Mechanics schrieb:

    Wohl kaum. Ich glaube nicht, dass eine effizientere Eingabemöglichkeit geben wird, als eine stinknormale Tastatur, findets euch damit ab. Beim Programmieren muss man einfach viele Informationen eingeben und das wird auch so bleiben. Es wird nicht reichen, zwei Gesten im Raum zu machen (außerdem finde ich sowas sehr anstrengend). Und selbst Sprachsteuerung ist für soetwas nicht optimal. Sprechen ist (zumindest für mich, ich denke für viele andere auch) anstrengender, als tippen, und programmieren ist grundsätzlich zum Sprechen wenig geeignet und wird es wohl auch noch eine Weile bleiben.

    Schwer zu sagen. Vielleicht braucht man dafür eine neue Programmiersprache.

    Aber selbst bei C++ müßte es möglich sein,den Großteil der Sprache in dreidimensionale, veränderbare Symbole umzuwandeln.

    Zusätzlich könnte man bestimmte Mechanismen der Sprache dreidimensional umsetzen.

    Ganz ohne Tastatur wird es natürlich vermutlich nicht gehen.



  • redrew99 schrieb:

    Aber selbst bei C++ müßte es möglich sein,den Großteil der Sprache in dreidimensionale, veränderbare Symbole umwandeln.

    Zusätzlich könnte man bestimmte Mechanismen der Sprache dreidimensional umsetzen.

    Ich stelle die Frage absolut wertfrei: Warum sollte man das tun?
    Welchen Vorteil versprichst Du Dir davon, Quelltexte in 3D zu beschreiben? Und was soll die dritte Dimension abbilden?



  • Xin schrieb:

    Ich stelle die Frage absolut wertfrei: Warum sollte man das tun?
    Welchen Vorteil versprichst Du Dir davon, Quelltexte in 3D zu beschreiben?

    Ich könnte mir vorstellen, daß durch eine zusätzliche Dimension komplexere Programme möglich sind.

    Evtl. sollte auch schnelleres Programmieren möglich sein.

    So könnte z.B. ein Vektor mit einem bestimmten Gebilde dargestellt werden, wo man den Datentyp durch Veränderung der Farbe bestimmt. Der "Vektor" könnte darüberhinaus Buttons haben oder andere Eigenschaften(evtl. Displays?), um weitere Verändungen vornehmen zu können. Auch mit Tönen könnte man arbeiten.

    Xin schrieb:

    Und was soll die dritte Dimension abbilden?

    Die dritte Dimension könnte die "Grammatik" der Sprache abbilden.
    Womöglich könnte man z.B. einen Zeiger als einen echten Zeiger darstellen.

    Natürlich könnte auch die jeweilige Anordung der Gebilde im Raum eine bestimmte Funktion haben.



  • @redrew99
    😮 Ich hoffe du meinst das nicht ernst.

    Ich kann es auf jeden Fall nicht ernst nehmen. Alles was du schreibst führt bloss dazu dass man noch weniger Chancen hat ein Programm zu verstehen, und dass man vermutlich auch länger braucht um es einzugeben/bearbeiten.

    Je genauer ich darüber nachdenke, desto eher kommt ich zu dem Schluss dass es eigentlich nur Getrolle sein kann.



  • hustbaer schrieb:

    Je genauer ich darüber nachdenke, desto eher kommt ich zu dem Schluss dass es eigentlich nur Getrolle sein kann.

    Oft ist das leider nicht so.



  • hustbaer schrieb:

    @redrew99
    😮 Ich hoffe du meinst das nicht ernst.

    Ich kann es auf jeden Fall nicht ernst nehmen. Alles was du schreibst führt bloss dazu dass man noch weniger Chancen hat ein Programm zu verstehen, und dass man vermutlich auch länger braucht um es einzugeben/bearbeiten.

    Je genauer ich darüber nachdenke, desto eher kommt ich zu dem Schluss dass es eigentlich nur Getrolle sein kann.

    Vielleicht hast Du Recht. Allerdings - gab es auch mal Zeiten, wo man sich nicht vorstellen konnte, daß Hochsprachen wie C++ ein derart hohes Leistungsniveau erreichen können.

    Was wurden die Leute niedergemacht, ein Mehr an Abstraktion führe zwangsläufig
    zu Geschwindigkeitseinbußen, etc.,etc.


Anmelden zum Antworten