Das alte Denken
-
Ahoi!
Ich arbeite gerade mit einem alten Hasen zusammen, der zwar ordentlich was drauf hat, sich aber vehement gegen neues wehrt. Besagte Person kommt aus der C-Ecke und ist programmiertechnisch vor ~10 Jahren stehengeblieben.
Das Problem ist, dass alles neue grundsätzlich abgelehnt wird. Damit meine ich Dinge wie OOP, grundlegende Regeln (Wiederverwendung, wenig/keine globalen Variablen, ...), allgemeines Vorgehen (Vorher überlegen WAS WIE gemacht werden soll, vorhandene Frameworks/Klassen aus dem Internet verwenden). Das ganze endet also quasi in einer riesigen Frickelei bei der jegliche nachträgliche Änderung zur Qual werden wird.
Mir ist bewusst, dass man behutsam vorgehen muss und nicht versuchen darf 8347 neue Dinge einzuführen die letztendlich nur verwirren. Allerdings beiße ich hier zu 80% auf Granit.
Was sind eure Erfahrungen in dieser Hinsicht
Basteln will doch eigentlich niemand, irgendwie muss ich die Vorteile rüberbringen/schmackhaft machen
!
-
OldSchool schrieb:
Was sind eure Erfahrungen in dieser Hinsicht...
Unsere Erfahrungen? Du musst die Ohren offen halten und aufmerksam zuhören, was der alte Hase zu sagen hat. Punkt.
-
Mobb ihn raus!
-
naja, gibt alte sturre koepfe die angst vor jeglichem neuen haben und es gibt junge spunte die ihr halbwissen mit propaganda loefeln gegessen haben. die sollten nicht zusammenarbeiten muessen.
-
rapso schrieb:
naja, gibt alte sturre koepfe die angst vor jeglichem neuen haben und es gibt junge spunte die ihr halbwissen mit propaganda loefeln gegessen haben. die sollten nicht zusammenarbeiten muessen.
-
OldSchool schrieb:
Ahoi!
Das Problem ist, dass alles neue grundsätzlich abgelehnt wird. Damit meine ich Dinge wie OOP, grundlegende Regeln (Wiederverwendung, wenig/keine globalen Variablen, ...), allgemeines Vorgehen (Vorher überlegen WAS WIE gemacht werden soll, vorhandene Frameworks/Klassen aus dem Internet verwenden). Das ganze endet also quasi in einer riesigen Frickelei bei der jegliche nachträgliche Änderung zur Qual werden wird.
OOP ist auch nicht das gelbe vom Ei, und man kann nicht alle Probleme der Welt mit OOP lösen. Der alte Hase wird schon seine Gründe haben, frag mal nach.
-
Jo, ich muss auch mit so einem Arbeiten und es ist eine Qual. Ich liebe vor allem seine verschachtelten Makros (also Makros in Makros in Makros). Wohlgemerkt, er hält sich für einen spitzen C++ Entwickler. Und nein, ich bin auch kein junger Spunt mehr... Dürfte sogar mehr Jahre als Progger auf dem Buckel haben als er. Nur das er im Kopf vor ca 10 Jahren stehengeblieben ist.
Wir haben letztens (vergeblich) versucht ihn davon zu überzeugen, daß die "Bitte rebooten Sie jetzt ihren Rechner" Dialogbox ans Ende der Installation gehört und nicht an den Anfang...
Sowas hat aber gar nix mit OldSkoolo zu tuen. Ein Amateur bleibt ein Amateur auch wenn er älter wird. Um Profi zu werden muß man bereit sein zu Lernen... Lernen heisst aber auch sich neuen Ideen öffnen und sie zumindest zu verstehen. Sicher, ich muß OOP nicht gut finden, mich aber grundsätzlich davor zu verschließen ist falsch.
Wobei, gerade bei solchen vorgeblichen "OldSkool" Leuten sollte man berücksichtigen das die meisten aus dieser Generation Autodidakten sind und ihr Handwerk nie richtig gelernt haben. Vielleicht verschließt er sich ja auch deswegen z.B. vor OOP weil er es nicht versteht...
-
Naja ich kenne das, habe auch ein "rel" alten Programmierer hier sitzen. Der hat sich schon paar jahre auf dem buckel. Er weis auch viel kann viel, kurz gesagt er ist verdamt schlau: Aber er ist auch in diversen dingen hängen geblieben. Oder nach dem Motto :"Never stop a running model"
Er programmier eigentlich nur C und bischen VB/C# .NET gedöns. Aber wenn ich mir sein C++ anschaue, hat er tausend methoden in einer Klasse bzw. er hat nur eine Klasse^^ Er vermischt C und C++:) etc. aber er funktioniert.
Wir sollen ein neue logging system entwickeln, und er will das ganze mit ner Access DB machen, weil er es schon seit jahren damit macht. Ich hab ihm vorgeschlagen (gerade wg. den datenmengen) auf mysql oder postgre umzusteigen, zudem argumentiere ich damit, das access bei (mehruser - schreibbetrieb) undefinierten verhalten vorweisen kann. Ich mag access ja auch , man kann viel machen und es ist easy. Aber ich geh gern mit der zeit;)
-
loks schrieb:
Wobei, gerade bei solchen vorgeblichen "OldSkool" Leuten sollte man berücksichtigen das die meisten aus dieser Generation Autodidakten sind und ihr Handwerk nie richtig gelernt haben. Vielleicht verschließt er sich ja auch deswegen z.B. vor OOP weil er es nicht versteht...
Gerade als Autodidakt muss man sich selbst eingestehen, dass es gelernte Profis gibt die einem noch viel beibringen können. Und gerade als Autodidakt sollte man eigentlich wissen, dass man nie auslernt und sollte immer hungrig nach neuem Wissen sein.
Sich hinzusetzen und zu sagen "so, ich bin fertig mit lernen, mir macht keiner mehr was vor" ist dumm und arrogant, für Autodidakten aber auch für Leute mit entsprechender Ausbildung die meinen ein Zeugnis oder Zertifikat bedeutet dass es nichts mehr zu lernen gibt in dem Bereich.
-
loks schrieb:
Wir haben letztens (vergeblich) versucht ihn davon zu überzeugen, daß die "Bitte rebooten Sie jetzt ihren Rechner" Dialogbox ans Ende der Installation gehört und nicht an den Anfang...
sowas gehört eigentlich nirgendwo hin.
-
Lernen heisst aber auch sich neuen Ideen öffnen und sie zumindest zu verstehen. Sicher, ich muß OOP nicht gut finden, mich aber grundsätzlich davor zu verschließen ist falsch.
Darum geht's doch eigentlich, und nich darum irgendwelche aufgeschnappten Schlagworte bzw. das was dahinter einzuführen.
Wer am Ball bleibt und nicht bloß an "wie komme ich von 1 nach 2" denkt macht sich das Leben einfacher!
-
loks schrieb:
Um Profi zu werden muß man bereit sein zu Lernen... Lernen heisst aber auch sich neuen Ideen öffnen und sie zumindest zu verstehen. Sicher, ich muß OOP nicht gut finden, mich aber grundsätzlich davor zu verschließen ist falsch.
aber ein profi sollte auch profi genug sein um bei den meisten revolutionen die aufkommen objektiv zu sehen was sie sind und nicht nur auf die marketing abteilungen zu hoeren und alles zu glauben.
Ich seh nur zu oft dass viele sich sowas hingeben, weil sie glauben dass sie pleotzlich besseren code schreiben wuerden, weil irgendwas neues ihnen die moeglichkeiten nimmt und sie somit weniger moeglichkeiten haben fehler zu machen.
Code und Programqualitaet haengt weniger davon ab ob man oop oder nicht benutzt, man sollte ein gutes design haben. danach sucht man sich das werkzeug aus, mit dem man persoenlich das beste resultat erzielt.btw. ich halte OOP irgendwie schon fuer oldschool, data driven design FTW
-
rapso schrieb:
aber ein profi sollte auch profi genug sein um bei den meisten revolutionen die aufkommen objektiv zu sehen was sie sind und nicht nur auf die marketing abteilungen zu hoeren und alles zu glauben.
Objektiv beurteilen und nicht alles zu glauben ist richtig. Einige handeln aber eher nach dem Grundsatz "garnichts glauben und alles abblocken"
-
rapso schrieb:
loks schrieb:
Um Profi zu werden muß man bereit sein zu Lernen... Lernen heisst aber auch sich neuen Ideen öffnen und sie zumindest zu verstehen. Sicher, ich muß OOP nicht gut finden, mich aber grundsätzlich davor zu verschließen ist falsch.
aber ein profi sollte auch profi genug sein um bei den meisten revolutionen die aufkommen objektiv zu sehen was sie sind und nicht nur auf die marketing abteilungen zu hoeren und alles zu glauben.
Ich seh nur zu oft dass viele sich sowas hingeben, weil sie glauben dass sie pleotzlich besseren code schreiben wuerden, weil irgendwas neues ihnen die moeglichkeiten nimmt und sie somit weniger moeglichkeiten haben fehler zu machen.
Code und Programqualitaet haengt weniger davon ab ob man oop oder nicht benutzt, man sollte ein gutes design haben. danach sucht man sich das werkzeug aus, mit dem man persoenlich das beste resultat erzielt.btw. ich halte OOP irgendwie schon fuer oldschool, data driven design FTW
So ein bißchen gehst du auch in die Abblockrichtung
Übrigens sind mittlerweile Case-Tools ftw. Am Anfang war ich auch total skeptisch. Aber: offen für neues sein und mittlerweile nervt es mich schon wenn ich selber ne Headerdatei anlegen muss und dann ifndef dann define blablabla.
-
pumuckl schrieb:
Einige handeln aber eher nach dem Grundsatz "garnichts glauben und alles abblocken"
glauben ist eher was für theisten. beim proggen hat man's in so fern einfacher, als das man sich selbst davon überzeugen kann, ob gewisse konzepte passen oder nicht.
-
rapso schrieb:
loks schrieb:
Um Profi zu werden muß man bereit sein zu Lernen... Lernen heisst aber auch sich neuen Ideen öffnen und sie zumindest zu verstehen. Sicher, ich muß OOP nicht gut finden, mich aber grundsätzlich davor zu verschließen ist falsch.
aber ein profi sollte auch profi genug sein um bei den meisten revolutionen die aufkommen objektiv zu sehen was sie sind und nicht nur auf die marketing abteilungen zu hoeren und alles zu glauben.
Ich seh nur zu oft dass viele sich sowas hingeben, weil sie glauben dass sie pleotzlich besseren code schreiben wuerden, weil irgendwas neues ihnen die moeglichkeiten nimmt und sie somit weniger moeglichkeiten haben fehler zu machen.
Code und Programqualitaet haengt weniger davon ab ob man oop oder nicht benutzt, man sollte ein gutes design haben. danach sucht man sich das werkzeug aus, mit dem man persoenlich das beste resultat erzielt.btw. ich halte OOP irgendwie schon fuer oldschool, data driven design FTW
is Data-driven design nicht eine design methode für oop? ^^
-
Also meine Erfahrung ist, daß die anderen nicht immer erkennen, daß ich doch alles besser weiß. Sie wollen es einfach nicht glauben und sind oft der Meinung, sie wüssten irgendetwas besser als ich.
-
newschooler schrieb:
So ein bißchen gehst du auch in die Abblockrichtung
wie meinen?
PRIEST schrieb:
is Data-driven design nicht eine design methode für oop? ^^
nein, ganz sicher nicht. OOP steht fuer klassendesign. DDS ist eben das gegenteil, du sparst dir ein oft overengineertes design von klassenhierarchieen, abhaengigkeiten und pattern wie diese verknuepft sind und interagieren.
beispiel: kleines RTS
du hast im oop vielleicht diese hierarchy
basis-objekt - gebaeude - bauegebuaede - verteidigungsgebaeude - fahrzeuge - ernter - kampffahrzeuge
irgendwann denkt man sich, dass viele der dinge von fahrzeugen gleich sind und versucht objetke mit komposing zu generieren, also
basis-object - gebaeude - fahrzeug
dabei erhalten diese
-bau -ernt -waffen
als objekte uebergeben.
nun willst du aber dass der ernter auch schiessen kann, also entweder mit zwei elementen komposen oder ein std::vector?.... naja, kannst auch wieder loeschen, der gamedesigner hat sich doch dagegen entschieden.
data driven hast du:
-objektbeim instanzieren davon uebergibst du ein xml, daraus zieht es sich alles rein was der gamedesigner wollte (nein, du hast nichts mehr damit zu tun neue objekte anzulegen).
aus der xml liest sich jedes objekt raus wie schnell es sich bewegen kann, bauhof.speed =0
tank.speed = ...
ach, du willst dass ein objekt mitten beim spiel zum gebaeude wird, weil es altererie ist? gerne, artelerie.speed=0;artelerie.firepower=...man muss nur die balance finden zwischen datandriven und spezialisierung.
-
rapso schrieb:
OOP steht fuer klassendesign.
OOP Steht für Object Orientated Design.
Das hat primär absolut gar nichts mit Klassen zu tuen. Klassen unterstützen lediglich OOP, sie machen es aber nicht aus...
rapso schrieb:
artelerie.speed=0;artelerie.firepower=...
Sieht für mich aber unheimlich nach OOP aus... Nur weil die Objektdefinition vom Code ins Xml verlagert wird verliert es doch nicht den Objekt status? Artelerie ist doch immer noch ein Objekt, speed ein Attribute usw.
-
loks schrieb:
rapso schrieb:
OOP steht fuer klassendesign.
OOP Steht für Object Orientated Design.
Das hat primär absolut gar nichts mit Klassen zu tuen. Klassen unterstützen lediglich OOP, sie machen es aber nicht aus...
objekte an sich kannst du sonst in c mittels structs haben.. mit klassen erst verbindest du daten und funktionalitaet, sowie reduzierung von redundanz mittels vererbung usw. OOP ist weniger ein technisches mittel, sondern eine designphilosophy die mit klassen eine art der realisierung findet. deswegen schliessen sich klassen und DDS auch nicht aus, denn mit klassen kann man auch wunderbar DDS verwirklichen. aber mit den moeglichkeiten die dir c bietet waere das ebenfalls sauber und einfach moeglich.
rapso schrieb:
artelerie.speed=0;artelerie.firepower=...
Sieht für mich aber unheimlich nach OOP aus... Nur weil die Objektdefinition vom Code ins Xml verlagert wird verliert es doch nicht den Objekt status? Artelerie ist doch immer noch ein Objekt, speed ein Attribute usw.
OOP primitivster art, quasi ne struct. das objektverhalten wird nicht vom typen entschieden, sondern anhand der daten. Im einfachstem fall koenntest du als ein gebaeude selektieren und einen marschbefehl geben, das wuerde sich dann nen pfad raussuchen und tatsaechlich mit speed 0 loslaufen.