Wie wird in C gekapselt?



  • player424 schrieb:

    Dann halt imperativ. Jedenfalls sehe ich hier keine sinnvolle Disskussionsgrundlage mehr.

    Die hast du von Anfang an nicht geboten: Es geht um OOP in C, du schreibst das soll man nicht machen. Dein Argument dafür: C sei eine Funktionale (mittlerweile "imperative") Programmiersprache.

    Das sollte auch keine Beleidigung sein. Ich weiß auch vieles nicht. Aber in diesem Thread hast du mit deinem Unwissen etwas genervt 🙂



  • player424 schrieb:

    Dann halt imperativ. Jedenfalls sehe ich hier keine sinnvolle Disskussionsgrundlage mehr.

    Gut und die meistens Objektorientierte Programmiersprachen sind auch imperativ, wie
    C++
    D
    Java
    Object Pascal (Delphi)
    Ruby
    Python
    Objective C/ Objective C++
    ...



  • Was willst du damit jetzt sagen?



  • player424 schrieb:

    Dieser Beitrag hat dich jetzt bei mir komplett disqualifiziert...Nun weiss ich, dass du keine fachliche Kompetenz besitzt, und hier nur schreibst um zu flamen.

    Ähm. Und das vom Autor von "C ist für Funktionale Programmierung geschaffen worden." 😮



  • Toll weil ich funktional mit imperativ verwechselt hab. Kommst du dir toll vor wenn du gleich drauf rumreiten kannst wenn andere mal einen Fehler machen?



  • player424 schrieb:

    Was willst du damit jetzt sagen?

    Ich wollte damit deine Sicht korrigieren.

    Ich hoffe dir ist schon klar, dass die Funktionale Programmierung eine eigene Vorgehensweise darstellt, die nur wenig mit OOP zu tun hat (auch wenn in OOP etwas der Grundgedanke der funktionalen Programmierung steckt).

    OOP ist meistens ein Konzept, dass in der Sprache selbst ergänzt bzw erweitert, aber nicht etwas totales gegensätzliches ist wie dein Zitat es belegt, dass du so denkst.

    Toll weil ich funktional mit imperativ verwechselt hab. Kommst du dir toll vor wenn du gleich drauf rumreiten kannst wenn andere mal einen Fehler machen?

    Wer austeilt, muss auch einstecken!



  • Meine Tante Puhvogel in Schleswig-Holstein hat immer gesagt: "Jung, diene Sorgen un Otje sien Geld!"

    Hattu C++? Muttu nehmen, wenn du kapseln willst! 😮 Wer es will kriegt OOP auch mit reinem C hin. Versucht das aber mal mit einem alten BASIC-Interpreter nur mit gotos. 🕶 Oder anders gefragt: "Hat da jemand den Schuss nicht gehört?" 😕



  • DrGreenthumb schrieb:

    player424 schrieb:

    C ist für Funktionale Programmierung geschaffen worden.

    ja nee is klar 😃

    btw: Es gibt auch Pizza und Schnitzel für den Toaster. Da sollte Kuchen doch auch gehen. Aber da passt die Analogie noch weniger.

    Zumindest aber kann man Kuchen im Kühlschrank backen. 🤡



  • berniebutt schrieb:

    Meine Tante Puhvogel in Schleswig-Holstein hat immer gesagt: "Jung, diene Sorgen un Otje sien Geld!"

    Hattu C++? Muttu nehmen, wenn du kapseln willst! 😮 Wer es will kriegt OOP auch mit reinem C hin. Versucht das aber mal mit einem alten BASIC-Interpreter nur mit gotos. 🕶 Oder anders gefragt: "Hat da jemand den Schuss nicht gehört?" 😕

    Besser hätte man es kaum formulieren können 😃



  • player424 schrieb:

    berniebutt schrieb:

    Meine Tante Puhvogel in Schleswig-Holstein hat immer gesagt: "Jung, diene Sorgen un Otje sien Geld!"

    Hattu C++? Muttu nehmen, wenn du kapseln willst! 😮 Wer es will kriegt OOP auch mit reinem C hin. Versucht das aber mal mit einem alten BASIC-Interpreter nur mit gotos. 🕶 Oder anders gefragt: "Hat da jemand den Schuss nicht gehört?" 😕

    Besser hätte man es kaum formulieren können 😃

    also nochmal zusammengefasst: In C kann man nicht kapseln oder OOP'en und man soll gefälligst eine andere Sprache nehmen. 👍



  • Wenn man gar mit Assembler OOP-Konzepte umsetzen kann, sollte das mit C auch möglich sein. So ähnlich wurde C++ damals vor etwa 20 Jahren auch entwickelt.

    Man hatte C und man kannte damals schon andere OOP-Sprachen.

    Erst hat man versucht mit C die OOP nachzubilden und war nicht ganz glücklich.
    Dann hat man Zusatztools entwickelt, die es ermöglichten mit einem C-Compiler einfacher C++ Quelltext zu übersetzen.
    Kurz danach oder etwa zur gleichen Zeit kamen auch die erste C++ Compiler ( Zortech ? ) auf den Markt.
    Etwa 10 Jahre hat es dann gebraucht bis dann C++ nicht nur eine Erweiterung von C war. Ob das nun mangelnde Absprache der Normenkommitees war oder Absicht, wer weiss 😃
    Kurz vor der Jahrtausendwende begannen dann die ersten C++ Gurus von einer eigenständigen Sprache C++ zu sprechen.

    MfG f.-th.



  • f.-th. schrieb:

    Wenn man gar mit Assembler OOP-Konzepte umsetzen kann, sollte das mit C auch möglich sein.

    Ja.

    f.-th. schrieb:

    So ähnlich wurde C++ damals vor etwa 20 Jahren auch entwickelt.

    Vor 30 Jahren.

    f.-th. schrieb:

    Man hatte C und man kannte damals schon andere OOP-Sprachen.

    [ironie]Oh ja, sehr viele. [/ironie]Simula und Smalltalk. Aber Struppi kannte Simula.

    f.-th. schrieb:

    Erst hat man versucht mit C die OOP nachzubilden und war nicht ganz glücklich.

    Ein Satz, den ich so stehen lassen kann.

    f.-th. schrieb:

    Dann hat man Zusatztools entwickelt, die es ermöglichten mit einem C-Compiler einfacher C++ Quelltext zu übersetzen.

    Naja. Nein. Er hat einen Präprozessor geschrieben, der aus C++-Code C-Code macht. Oder meinstest Du das mit deinem sprachlichen Konstrukt?

    f.-th. schrieb:

    Kurz danach oder etwa zur gleichen Zeit kamen auch die erste C++ Compiler ( Zortech ? ) auf den Markt.

    Ja, zwei Jahre oder so.

    f.-th. schrieb:

    Etwa 10 Jahre hat es dann gebraucht bis dann C++ nicht nur eine Erweiterung von C war. Ob das nun mangelnde Absprache der Normenkommitees war oder Absicht, wer weiss 😃
    Kurz vor der Jahrtausendwende begannen dann die ersten C++ Gurus von einer eigenständigen Sprache C++ zu sprechen.

    Nö, gar nicht. Aber schwierig zu belegen. Ich such mal.



  • Man sollte nicht versuchen in C OOP zu machen dafür gibt es C++. Wenn der letzte Mikrocontroller auch C++ kann hat sich das mit C eh erledigt. Ausser zur Pflege von alter Software wird C dann nicht mehr benötigt. ja selbst GPUs verstehen schon C++. Der Trend hin weg von C zu C++ ist also auch für die kleinsten Chips zu erkennen. Mal ehrlich vermissen wird es niemand, jede Sache die mit C geht geht auch in C++ wenn man es denn unbedingt braucht, nur das man hier wieder den Vorteil hat es richtig gut kapseln zu können.



  • Na, ohne viel nachzusehen ging das doch mit der Trefferquote im vorigen Beitrag 😉

    Weiss nicht ob ich das Tool noch hab und das Medium noch lesbar ist, das dem C-Compiler von Microsoft ( ? ) etwa 1990 zu C++ verhelfen sollte. Hab damals aber nicht viel oder gar nicht damit gespielt.

    MfG f.-th.



  • volkard schrieb:

    Allerdings soll man sich nicht mit langsamen und undurchschaubaren Tricks in C eine kleine Privatsprache bauen, die beinahe C++ riecht, aber dann doch ganz anders gekocht werden muß.
    Einfach C nehmen.

    signed.



  • Es ist gerade die hervorragende Leistung der Entwickler von C++, die weitere Einsatzfähigkeit von C voll beibehalten zu haben - auch gemischt! 👍
    Also nimmt man Kapseln und OOP von C++ und - wenn man will - anderes von C. :p



  • Hi

    Also wen man schon OOP will, sollte man doch gleich C++ nehmen.
    Klar kann man soetwas in C auch realisieren (OOP), doch man muss doch nicht gleich das Rad neu erfinden.
    Mit Beiden Programmiersprachen kann man alles erreichen, das sollte ja klar sein.
    Doch geht es ja hier um OOP und Kapselung. Und wen man jetz ein reines C Project etwicklen will, das dazu noch recht gross wird, und ein OOP aufbau haben soll, dann ist die Sprache C definitiv das falsche. Da es schnell unübersichtlich wird und viel zu viel Code entsteht der durch die erreichung von OOP Code in C erreicht werden will.
    Meine Ansichten sind daher, wer OOP programmieren will soll auch eine Sprache lernen oder einsetzen die OOP mit sich bringt. C++ / oder was auch immer.
    Ich selber bin ein C nar. und nur weil man mit C nicht OOP programmieren kann ( wer nicht einen eigenen objektorientierten Ansatz programmieren will) heisst das noch lange nicht das man C verbannen soll ! Oder hat jemand von euch schon mal einen microcontroller mit C++ angesteuert ? Ausser Symbian und ... kenne ich auch kein OS das in C++ geschriben wurde. Sondern mit C und Assembler. Von wegen C verbannen. Und zum schluss... C++ wurde auch mit C und Assembler entwickelt ... mit was sonnst!

    lowbyte



  • Tim schrieb:

    volkard schrieb:

    Allerdings soll man sich nicht mit langsamen und undurchschaubaren Tricks in C eine kleine Privatsprache bauen, die beinahe C++ riecht, aber dann doch ganz anders gekocht werden muß.
    Einfach C nehmen.

    signed.

    Mal ketzerisch gefragt, wo endet C, wo beginnen die schmutzigen "Privatsprachen- Tricks" für Euch?

    In eine struct functionpointer und Datenblock (als union of structs z.B) zu packen, ist ja durchaus probat, erfüllt einen gewissen Kapselungsanspruch, aber auch andere Kennzeichen der OOP. Kann man viel drumrum stricken, ohne das Schema in seiner Konsistenz zu stören. Sieht als ASM aufgelöst nicht viel anders aus, als "echte OOPs" (hab' allerdings zuletzt Delphi vor 10 Jahren zerlegt, weiß nicht, wie's bei aktuellem Zeug ausschaut), in der Source differiert's deutlicher, meist mehr Schreibarbeit auf C- Basis.

    Der Vorteil für mich besteht darin, daß ich damit Sachen bauen kann, die sich mit minimalem Aufwand portieren lassen, solange ich bei C89 bleibe, wobei ich zugeben muß, daß ich mich normalerweise nicht um die OS- Basis schere, sondern auf Lib- Basis auf Controllerhardware zugreife. Die Erfahrungen, die ich da mit C++ gesammelt habe, waren eher abschreckend, weil das Einstiege in Mixprojekte C/C++ waren. Meist hatten sich da wohl schon zwei oder drei Entwickler zuvor erschossen. 😉
    Naja, und die Abdeckung von C++- Compilern für kleine Embeddeds ist wirklich noch nicht toll.

    Also, was soll dagegen sprechen, sich mit C sowas zurechtzuschnitzen und wo zieht ihr die Grenze?

    berniebutt schrieb:

    Es ist gerade die hervorragende Leistung der Entwickler von C++, die weitere Einsatzfähigkeit von C voll beibehalten zu haben - auch gemischt! 👍

    Sowas hatte ich befürchtet 🙄



  • Ich glaube hier erliegen einige einem Denkfehler. Wenn man in C ein Objektsystem baut, dann nähert man sich nicht unbedingt an C++ an. Der Einwurf, man solle doch gleich C++ nehmen, gilt natürlich nur, wenn das Objektsystem dem von C++ ähnelt.



  • Bashar schrieb:

    Ich glaube hier erliegen einige einem Denkfehler. Wenn man in C ein Objektsystem baut, dann nähert man sich nicht unbedingt an C++ an. Der Einwurf, man solle doch gleich C++ nehmen, gilt natürlich nur, wenn das Objektsystem dem von C++ ähnelt.

    Das ist schon sehr "fielosofisch" oder wie Garfield das mal sagte. Letzlich kommen ASM- instructions raus, also ein Prozessor weiß davon gar nix. 😉

    Ich halte mich nichtmal bewußt von C++ fern, sondern nur des Gedankens wegen, daß ich für kleinere MCUs nichtmal gegen viel Geld einen Compi kriege. Dafür kann ich in fast alle C- Compis mit ein paar #ifdef s meinen Kram unterbringen.

    So, what should be wrong with it 😕


Anmelden zum Antworten