BlitzBasic - die richtige Programmiersprache?

Übersicht Sonstiges Smalltalk

Gehe zu Seite Zurück  1, 2, 3, 4, 5, 6, 7  Weiter

Neue Antwort erstellen

Casiopaya

BeitragMo, Jul 07, 2008 23:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Silver_Knee hat Folgendes geschrieben:
und zum 10.000 mal ob ich schreibe $row["file"] oder $row->file ist doch mal vollends egal oder?


Wenn du wirklich der Meinung bist, dass solche Dinge die einzigen Unterschiede zwischen OO und imperativer Programmierung sind, dann kannst du schlicht keine Ahnung davon haben, was Objektorientierte Programmierung ist. Sorry für die harten Worte, aber das ist eindeutig.

Das wäre aber ja auch gar nichts schlimmes, ob jemand sich mit einer Technik befasst oder nicht ist seine Sache. Es sprießen jährlich mindestens 20-30 neue "Super-Technologien" auf den MArkt, die umfassend sicher keiner mehr kann (und das ist auch gut so).

Ich rate dir persönlich entweder keine Aussagen mehr über OO zu machen, oder (besser) dir mal ein gutes Buch zu OO durchzulesen und dann 1-2 große Projekte in OO durchziehen. Ich wäre wirklich gespannt (meine ich ernst Smile ), ob deine Meinung sich dadurch ändern würde.

Willi die Rübe

BeitragDi, Jul 08, 2008 0:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Leute, jetzt macht mal kein Zickenkrieg hier Rolling Eyes

Zitat:
Ich sträube mich nicht gegen OOP, sondern gegen ein "Alle finden das toll, weil's so cool und neu ist und wenn man das kann/ist, ist man der Held des Tages."


Ich denke Silver_Knee wollte damit einfach nur satirisch ausdrücken, dass viele OOP-Proklamierer (gerade im Zusammenhang mit BM) eigentlich keinen Schimmer von dessen Vorteile haben. Wenn hier Neulinge fragen, für was sie sich entscheiden sollen, B3D oder BM, argumentieren einfach viele BM User mit dem Motto OOP sei zukunftssicherer oder was weiß ich nicht alles Smile ) Ich behaupte jetzt an dem Punkt einfach mal, dass vllt. 5% der BM User hier im Forum wirklich Vorteile gegenüber Blitz3D in der Codestruktur durch OOP haben.

Und wenn man sich mal das "Projekteniveau"(soll jetzt nicht negativ klingen) hier anschaut, scheint hier noch niemand soetwas wie OOP vermisst zu haben. Auch nicht in den seltenen potentiellen größeren Projekten Wink

Zitat:
Und du hast recht, es ist verdammt plausibel, dass Softwareentwicklungs-Firmen sich schon längst in fast allen BEreichen rein auf die OO konzentrieren um "cool zu sein".

Laughing Wenn man sich z.B. mal die Mediamarkt Werbung anschaut, würde mich das echt nicht wundern. Wenn es z.B. heißt "Superscharfe, realistische und atemberaubende Grafik" heißt und danach eine Lowend Grafikkarte gelistet wird, denkt man echt manchmal nur noch Wtf.?? Very Happy Aber natürlich hast du in diesem Punkt Recht Casopaya.

Fazit: Wer meint er braucht OOP, egal ob wirklich oder nur "um cool zu sein", soll es auch nutzten, letztendlich bringt ja OOP auch keine Nachteile.
Ich habe keine Lösung, aber ich bewundere das Problem.
Tehadon
Q6600, MSI Neo2-FR, 4GB Ram, nVidia 7800 GTX

At the Farewell Party visit: MySpace | Homepage
 

BIG BUG

BeitragDi, Jul 08, 2008 0:58
Antworten mit Zitat
Benutzer-Profile anzeigen
OOP hin oder her, letztendlich ist BlitzBasic/BlitzMax für 98% der Leute die mal ein bisschen Spiele entwickeln wollen genau richtig.
Das Problem ist mehr, dass der größte Teil dieses Personenkreises(speziell Anfänger) das leider einfach nicht glauben wollen.
Wie kein OOP und keine Shader?

Ok, man kann damit kein GTA4 oder World-of-Warcraft oder Crysis entwickeln, NUR genau die Leute die danach fragen, werden ein solches Spiel trotzem niemals entwickeln können, EGAL welche Sprache benutzt wird. Viel zu groß die Organisation, der Aufwand, das Budget, etc... und das hat alles rein GARNICHTS mit der benutzen Sprache zu tun.
Und letzendlich wird man mit BlitzBasis seinem Ziel meistens noch am nächsten kommen.
B3D-Exporter für Cinema4D!(V1.4)
MD2-Exporter für Cinema4D!(final)

Silver_Knee

BeitragDi, Jul 08, 2008 2:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Willi die Rübe hat Folgendes geschrieben:
Ich denke Silver_Knee wollte damit einfach nur satirisch ausdrücken, dass viele OOP-Proklamierer (gerade im Zusammenhang mit BM) eigentlich keinen Schimmer von dessen Vorteile haben. Wenn hier Neulinge fragen, für was sie sich entscheiden sollen, B3D oder BM, argumentieren einfach viele BM User mit dem Motto OOP sei zukunftssicherer oder was weiß ich nicht alles Smile Ich behaupte jetzt an dem Punkt einfach mal, dass vllt. 5% der BM User hier im Forum wirklich Vorteile gegenüber Blitz3D in der Codestruktur durch OOP haben.

Vielen Dank Cool


Und natürlich ist mir bewusst dass "$row["file"] oder $row->file" nicht der einzige unterschied ist, allerdings ist mir schon oft genug aufgefallen, dass es für viele wirklich der einzige unterschied ist, also da sie nicht mehr "Features" einer Objekt orientierten Programmierung nutzen.

Was neu und alt ist... das Zeitgefühl hab ich noch nicht so... bin ja erst 2 jahre im Netz... und dennoch....

Am Anfang war GOTO. ob ich jetzt ne Prozedur schreibe... oder eine Methode eines Objekts.... es bleibt im großen und ganzen GOTO. und man kann mir erzählen was man will aber das goto was aus der Methode kommt ist nicht "besser" als das goto, was aus der Prozedur oder direkt vom assambler kommt (ist mir wurscht ob das da JUMP / JMP heißt). Leute die Das Behaupten davor sträubt es mich.

Die Argumente die ihr bringt sind völlig korrekt. OOP erleichtert vieles, aber es ist nicht das Tor zum Himmel und es kann nichts, was nicht auch ein sauberer Prozedural-Programmierer könnte.

Jolinah

BeitragDi, Jul 08, 2008 9:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

Zitat:
Am Anfang war GOTO. ob ich jetzt ne Prozedur schreibe... oder eine Methode eines Objekts.... es bleibt im großen und ganzen GOTO...


Natürlich ist es am Ende mehr oder weniger das gleiche. Aber sonst könnten wir ja alle direkt in Assembler programmieren Wink Ich behaupte auch nicht dass man mit Prozeduraler Programmierung weniger weit kommt, und ich programmiere auch noch häufig so.

Wann immer ich aber die Wahl habe, werde ich mich für OOP entscheiden. Nicht weil ich damit angeben möchte, sondern weil es einfach nur praktisch ist, und einem viel Arbeit abnimmt.

Ausserdem verhindert OOP keineswegs die Nutzung von Arrays. Man sollte immer die Mittel verwenden die sich für das zu lösende Problem auch besser eignen. Man kann ja auch als Eigenschaft eines Objekts ein Array verwenden, und dort kannst du dann wie gewohnt folgendes schreiben:

Code: [AUSKLAPPEN]
$objekt->array["test".$nr]


Oder du machst ne Methode die intern ein Array durchgeht und dann nur noch das Ergebnis zurück gibt etc... In der OOP geht es nicht darum einfach alle Variablen in Objekte zu verwandeln. Objekte bzw. Klassen sollen Eigenschaften und Funktionalität die zum selben "Objekt" gehören kapseln.

Richtig angewendet und im Zusammenhang mit Vererbung, Polymorphismus usw. entfaltet die OOP erst so richtig ihre Vorteile.

Man kann alles ohne Probleme auch Prozedural oder in Assembler machen das stimmt, aber wer nimmt denn schon gerne mehr Arbeit in Kauf wenn es auch einfacher geht. Vielleicht in speziellen Fällen, wo es sehr auf die Geschwindigkeit ankommt, aber ansonsten werde ich mich immer für OOP entscheiden.

PS: Dass viele Firmen OOP nur verwenden weil es cool klingt etc. halte ich persönlich für Schwachsinn. Gerade da kommt es doch drauf an, möglichst effizient und kostengünstig zu Arbeiten. Und genau diese Vorteile bietet OOP den Firmen.

Edit:

Um noch was zum eigentlichen Thema zu schreiben: Der Text oben ist nicht auf BB bezogen, sondern einfach allgemein zu OOP, ich wollte BB also nicht schlecht reden. Man kann damit sehr viel erreichen, auch bei grösseren Projekten. Hier finde ich die fehlende OOP auch gar nicht so schlimm. BB erfüllt seinen Zweck und ist sowohl für Anfänger, wie auch für alle anderen geeignet, die möglichst einfach zu guten Ergebnissen kommen möchten Wink

BladeRunner

Moderator

BeitragDi, Jul 08, 2008 11:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Am Anfang war GOTO. ob ich jetzt ne Prozedur schreibe... oder eine Methode eines Objekts.... es bleibt im großen und ganzen GOTO.

Code: [AUSKLAPPEN]
a9008d20d0
Das ist korrekter Machinencode für den 6502 von Commodore. Gab es sehr lange vor
Code: [AUSKLAPPEN]
setclscolor 0,0,0

und funktioniert genauso gut.
Dennoch werde ich immer die zweite Variante bevorzugen weil sie für mich als Mensch einfach besser nachzuvollziehen ist.
Ähnlich verhält es sich mit OOP - OOP wurde mit prozeduralen Mitteln erschaffen, und alles geht auf Maschinencode zurück. Dennoch ist die Objektorientierung mit ihrer Datenkapselung das was dem Menschen von seinem Weltverständnis näher kommt als ein prozedurales Vorgehen. Wir neigen dazu unsere Umwelt unbewusst in Objekte zu zerlegen, zu abstrahieren und diesen abstrahierten Objekten ihre eigenen Methoden auf den Weg zu geben. Du würdest nie auf die Idee kommen auf einen Ofen 'bremse()' anwenden zu wollen, weil dass eine Methode der Klasse Auto, welche von 'Fahrzeug' abgeleitet wird, ist.
Nichts anderes macht OOP, es fügt Objekte (also Sammlungen von Daten, teils für den Anwender bekannt, teils unsichtbar) und die Methoden zum Manipulieren derselben zusammen, und passt sich somit unserem Verständnis an.

Mir ist von daher ein Auto.bremse() auch alle mal lieber als ein irgendwas = auto: bremse(irgendwas).

Ich habe selbst sehr lange gebraucht bis ich mit der OOP öffnen konnte, grade weil ich jahrzehntelang prozedural programmiert habe, aber wenn man erstmal die Vorteile dieses Systems erkannt hat will man sie einfach nicht mehr missen.
Nochmal: Mit prozeduralem Vorgehen ist alles möglich. Das bestreitet niemand. Nur ist es mit OOP etwas bequemer (und sicherer, da übersichtlicher), und weil ich ein bequemer Mensch bin und gern Übersicht habe werde ich bei OOP bleiben.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Blitzcoder

Newsposter

BeitragDi, Jul 08, 2008 11:39
Antworten mit Zitat
Benutzer-Profile anzeigen
OOP hilft auch, den Code gut strukturiert und übersichtlich zu halten, wobei BMax gut daran täte mal public und private ordentlich zu implementieren. Ich vertrete eine ähnliche Meinung wie Blade und habe recht lange nur prozedural programmiert. Aber wenn man OOP erst einmal verstanden hat und den Sinn darin sieht, will man es nicht mehr missen.
P4 3 Ghz@3,55Ghz|GF 6600GT 256MB|Samsung 80GB | 2x Samsung 160GB|2048MB DDR-400 RAM|6 Mbit Flatrate | Logitech G15 | Samsung 225BW-TFT | Ubuntu Gutsy Linux | Windows Vista | Desktop | Blog | CollIDE | Worklog
________________
|°°°°°°°°°°°°°°||'""|""\__,_
|______________ ||__ |__|__ |)
|(@) |(@)"""**|(@)(@)****|(@)
 

0penguin0

BeitragDi, Jul 08, 2008 17:53
Antworten mit Zitat
Benutzer-Profile anzeigen
BladeRunner hat Folgendes geschrieben:
Mit prozeduralem Vorgehen ist alles möglich. Das bestreitet niemand.

möglich... theoretisch zumindest^^
ich glaube nicht, dass es jemand schafft, zb. ein observer-pattern zu programmieren, das es so gut läuft wie mit oop.
i never finish anyth

tft

BeitragDi, Jul 08, 2008 18:24
Antworten mit Zitat
Benutzer-Profile anzeigen
hi ....

dazu müste man mal wissen was das ist? Eine erleutrung wäre hilfreich.

Gruss TFT
TFT
https://www.sourcemagic.ch
Monkey,HTML5,CSS3,W 10 64 Bit, 32 GB Ram, GTX Titan, W8 ist Müll !!!!!!

hectic

Sieger des IS Talentwettbewerb 2006

BeitragDi, Jul 08, 2008 18:54
Antworten mit Zitat
Benutzer-Profile anzeigen
tft http://de.wikipedia.org/wiki/B...smuster%29

---

Mit anderen Worten: Observer ist eine spezielle verdeutlichung von unter anderem OO. Man könnte nun ''genau so'' behaupten:

Prozedualles programmieren ist kein OOP,
weil prozedualles programmieren kein OOP ist.


---

0penguin0 hat Folgendes geschrieben:
BladeRunner hat Folgendes geschrieben:
Mit prozeduralem Vorgehen ist alles möglich. Das bestreitet niemand.

möglich... theoretisch zumindest^^
ich glaube nicht, dass es jemand schafft, zb. ein observer-pattern zu programmieren, das es so gut läuft wie mit oop.


Doch! Denn dein OOP ist auch irgendwie programmiert worden, und als letzte Instanz eben Assember. Assembler ist kein OOP und kann denoch alles. Ist so, als würde man den Amiga auf heutigem PC emulieren und behaupten, sowas ist mit den heutigen PC garnicht mehr möglich. Laughing

---

Ich zu meinem Teil - wie auch vieler anderer hier - sage mal; jeder kann damit arbeiten:

- womit er am besten klar kommt,
- er seine größten Ergüsse ausleben kann,
- am schnellsten ans Ziel kommt.

Eine Disskusion ist absolut schwachsinnig und ich bereue bereits jetzt, warum ich mich hier habe wieder mitreissen lassen. Für mich gilt, schnelles vorankommen, stabile und qualitative Umgebung beim programmieren. Wer meint mit C++ besser aufgehoben zu sein, kann sich ja an ein C++ -Forum anmelden und da weiter machen.

Noch ein Nachtrag:

BlitzBasic, Blitz3D und BlitzMax sind vorzugsweise für Spiele angedacht, die von einer Person programmiert werden. Erzähle mir jetzt bitte, wie man ein observer-pattern für ein Spiel benötigt. Und bitte klare Argumente und bitte auch nur solche, wo du dir selbst bei einem Projekt die Mühe machen würdest. Am besten noch ein Link zu deinen bisherigen Großprojekten (Spiele) in denen du mitgewirkt hast bzw. dich mit den ganzen Zeugs beschäftigt hast. Denn Spieleentwiklung ist was anderes als eine Handels, (Lager)Verwaltungs oder Logistik -Software.

Wenn das nicht geht, dann gilt für dich sicherlich auch:

- Ein Porsche ist grundsätzlich besser als ein VW-Lupo
- Männer sind grundsätzlich stärker als Frauen
- Nokia ist grundsätzlich besser als Sony Ericsson
- ...

Vergleich 1)
Eine Aussage darüber, dass ein Porsche besser sei ist quatsch, wenn man vorher nicht die Bedingungen gestellt hat. Setzt man auf Geschwindigkeit, Leistung ist der Porsche tatsächlich besser. Setzt man allerdings auf Umweltschutz, Preis pro km, Wendigkeit im Stadtverkehr, Kofferraumerreichbarkeit ist ein Lupo die bessere Wahl.

Also bitte, bereitet euch nicht selbst Kopfschmerzen mit so einem Quatsch hier.
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D

Artemis

BeitragDi, Jul 08, 2008 18:55
Antworten mit Zitat
Benutzer-Profile anzeigen
http://de.wikipedia.org/wiki/B...rfsmuster)

tft

BeitragDi, Jul 08, 2008 19:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi ...

sonnenkrar. Observer sind eine Abstrackte Struckturierung die alles widermal komplizierter macht als nötig. Ich denke in verbindung mit OOP kann es recht nützlich sein. Aber ich als Hobby Coder kann nichts damit anfangen. Für mich ist es in etwa so.

Deutsch in Englisch übersetzen.
Das Englisch in Chinesisch.
Und dann wider nach Deutsch.

Wobei das Übersetzen in Chinesisch eigentlich mer als Überflüssig ist.

Wer sich mit dieser Abstraktion auseinandersetzen kann. Der ist bestimmt auch in der Lage sehr Komplizierte Struckturen miteinander zu Verbinden. Ohne den Überblick zu verlieren. Das ist aber hir ..... in der BB Comunity doch eher fehl am platze. Oder liege ich da föllig falsch?

Gruss TFT
TFT
https://www.sourcemagic.ch
Monkey,HTML5,CSS3,W 10 64 Bit, 32 GB Ram, GTX Titan, W8 ist Müll !!!!!!
 

0penguin0

BeitragDi, Jul 08, 2008 21:32
Antworten mit Zitat
Benutzer-Profile anzeigen
war ja auch nicht auf BB oder so bezogen... (is der thread ja auch schon lange nicht mehr^^)

@hectic:

hectic hat Folgendes geschrieben:

Doch! Denn dein OOP ist auch irgendwie programmiert worden, und als letzte Instanz eben Assember.


dann mach mal! ich hab ja geschrieben "theoretisch zumindest". weil wenn das richtig funktionieren soll, dann sind interfaces und polymorphie esentiell. und, wie TFT ja auch schon schrieb, sind ja hier eher hobby-programmieren unterwegs und das thema lautet "BlitzBasic - die richtige Programmiersprache?" und darauf muss man halt antworten, dass es SEHR GUT für hobby-projekte (is ja völlig egal wie gross das spiel sein soll... wie definierst du überhaupt ein "grosses" spiel/projekt), aber wenn man zb (<- ZUM BEISPIEL Wink ) ein observer-pattern implementieren will/muss ist einen anderen sprache (am besten eine mit oop in diesem fall) die bessere lösung.

also ich rede jetzt natürlich über das ursprüngliche thema bzw. die vorangegangene diskussion und lasse die community hier mal ein bisschen ausser acht (also die hobby-progger).
i never finish anyth

Silver_Knee

BeitragDi, Jul 08, 2008 21:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich wiederhole mich... OOP kann nichts, was nicht auch ein sauberer Prozedural-Programmierer könnte. Aber ich denke für sowas ist es sicherlich bequemer.

EDIT: Ich überlege grade ob ich einen OOP-BB Pre-compiler auf Type-Basis schreiben soll.... hmm ich komme deiner Signatur ziemlich nahe

Zitat:
i never finish anyth

Jolinah

BeitragMi, Jul 09, 2008 9:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Da wurde dir ja auch mehrfach zugestimmt. Aber es bedeutet halt mehr Aufwand so etwas prozedural zu schreiben:

Code: [AUSKLAPPEN]
Type Control Abstract
  Field X:Int, Y:Int, Width:Int, Height:Int
  Field Text:String
  Field SubControls:TList = New TList

  Method Update()
    For Local c:Control = EachIn SubControls
      c.Update()
    Next
  End Method

  Method Draw()
    For Local c:Control = EachIn SubControls
      c.Draw()
    Next
  End Method
End Type

Type Button Extends Control
  Field Win:Window
  Field Pushed:Int

  Method Draw()
    SetColor(255,255,255)
    DrawRect Win.X + X, Win.Y + Y, Width, Height
    Super.Draw()
  End Method

  Function Create:Button(X:Int, Y:Int, Width:Int, Height:Int, Win:Window)
    Local b:Button = New Button
    b.X = X
    b.Y = Y
    b.Width = Width
    b.Height = Height
    b.Win = Win
    b.Win.SubControls.AddLast(b)
    Return b
  End Function
End Type

Type Window Extends Control
  Method Draw()
    SetColor(255, 0, 0)
    DrawRect X, Y, Width, Height
    Super.Draw()
  End Method

  Function Create:Window(X:Int, Y:Int, Width:Int, Height:Int)
    Local w:Window = New Window
    w.X = X
    w.Y = Y
    w.Width = Width
    w.Height = Height
    Return w
  End Function
End Type

Graphics 800, 600, 0

Local w:Window = Window.Create(50, 50, 200, 100)
Local b:Button = Button.Create(10, 10, 50, 15, w)

Cls
w.Update()
w.Draw()
Flip

WaitKey

EndGraphics
End


Ich vermute mal das würde dann irgendwo im prozeduralen Code so, oder so ähnlich aussehen:

Code: [AUSKLAPPEN]
...
If o\typ = "Button" Then
  UpdateButton(o)
Else if o\typ = "Window" Then
  UpdateWindow(o)
End If
...


Bei OOP fällt dieser ganze Verwaltungskram mit den Ifs halt weg, und der Code wird übersichtlicher. Man kann einfach o.Update() schreiben, egal ob das nun ein Button, ein Window oder sonst was ist. Ausserdem lässt sich viel schneller jederzeit ein neues Control hinzufügen.

hectic

Sieger des IS Talentwettbewerb 2006

BeitragMi, Jul 09, 2008 11:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Man nehme ein OO-Kontrukt und versucht nun zwanghaft dieses auf prozedual zu zwingen, dann kommt so ein Mist wie der eben geposteter zustande. Bei prozedualem programmieren geht man also gleich vom Anfang an ganz anders ran, um genau so etwas zu verhinden.

Im grunde wollte ich aber auf 0penguin0 eingehen. Gerade mit Assembler könnte man OO ganz leicht mit kaum Mehraufwand nachahmen. Mit anderen Worten: Ob ich nun mit Assember das verhalten eines Arrays programmiere, kann ich auf die selbe Technik setzen um Banks aufzubauen. Ähnlich verhält es sich, wenn ich ein Type (verkettete Liste) erstelle, kann ich mit Assembler auch mit kaum Mehraufwand gleich OO integrieren. Gebe mir 3 Monate (habe schon lange nicht mehr mit Assembler gearbeitet) und bezahle mich die Zeit lang, dann gebe ich dir OO-Verhalten mit Assembler programmiert.
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D

Jolinah

BeitragMi, Jul 09, 2008 15:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Stimmt schon, aber selbst ohne OOP-Kenntnisse würde ich für ne GUI im Fall von BB wahrscheinlich Types (Linked Lists) verwenden, da die einfacher zum Verwalten von einer dynamischen Anzahl von Controls sind.

Angenommen ich mach dann für jedes Control einen eigenen Type, dann werd ich wahrscheinlich für jedes Control die Grundfunktionalität immer wieder neu schreiben müssen, denn ohne OOP gibts ja keine Generalisierung, also kann man nicht einfach eine Funktion schreiben die für jeden Type verwendet werden kann. Ausserdem muss man auch die X, Y, Width und Height-Felder immer wieder neu schreiben. Wenn was an der Grundfunktionalität geändert werden soll, muss ich den redundanten Code an mehreren stellen anpassen.

Dann überlegt man sich, wie man das besser lösen könnte. Z.B. indem man einen Type schreibt mit den Grund-Eigenschaften X, Y, Width und Height und diesen bei den anderen Controls als Field einfügt. Oder man verwendet für alle Controls den gleichen Type. Damit die Controls aber unterschieden werden können, baut man ein Feld Namens typ ein.

Und dann sind wir schon wieder bei dem Code von oben...

Genau das wollte ich mit dem Beispiel zeigen.

Edit: Man könnte die Controls natürlich auch in Form von Arrays oder Banks speichern usw.. aber genau darauf habe ich keine Lust mehr... ist doch viel praktischer in Objekten zu denken und zu programmieren Wink

tft

BeitragMi, Jul 09, 2008 18:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi ....

praktischer ----- das liegt wohl im Auge des Betrachters. Für den einen ist es Pracktisch. Und für den anderen Umständlich. Und einer der keine Ahnung hat ..... für den ist es unmöglich auch nur die Grundidee dahinter zu verstehen.

Kommen wir doch mal wider auf das Thema zurück.

BlitzBasic - die richtige Programmiersprache?

Würde sagen .... je nach veranlagung.... wissen und Zeit. Ja !!!!!!!
Um zu lernen wie Programieren überhaupt geht. Ja !!!!!! Weil schnelle erfolge garantiert sind und die Comunity einfach sackstark ist Smile
Und überhaubt .... Ja !!!!!!!

Gruss TFT
TFT
https://www.sourcemagic.ch
Monkey,HTML5,CSS3,W 10 64 Bit, 32 GB Ram, GTX Titan, W8 ist Müll !!!!!!
 

MasterK

BeitragMi, Jul 09, 2008 20:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Casiopaya hat Folgendes geschrieben:
Ein 8-Mann-Projekt mit 10 Monaten und 450 Mann-Stunden sollten reichen oder?

Nur 450 Mann-Stunden bei 8 Leuten und 10 Monaten? Die 450 bekomm ich ja alleine schon in 3 Monaten zusammen Smile

Casiopaya hat Folgendes geschrieben:
Ganz ehrlich, bei uns hat jeder im Team nach ner Weile nur noch abgemotzt über c++ Very Happy. Man muss sich um so viel Kram kümmern, der einem von neueren Sprachen komplett abgenommen wird. Trotzdem ist es natürlich möglich, auch in c++ saubere Software zu schreiben, man muss mmN nur mehr Aufwand in die QS stecken.

Ich empfehle dir einen Blick auf boost zu werfen oder auf Qt.

Casiopaya hat Folgendes geschrieben:
Ich kann mich noch an einen Satz erinnern, der mich heute noch wundert: Nach der ersten Entwurfsphase (Grob + Feinentwurf) sagten sie: "Verwendet keine virtuellen Methoden, die sind zu langsam." Ähhh... ja. Very Happy

Ja, auf der uni springen leider auch viele fachidioten rum. Und etliche davon leider auch als übungsleiter.


Mir kommts vor, als wenn hier manche meinen, OOP wäre nur das verpacken der funktionen in klassen. Das ist NICHT oop. OOP ist deutlich mehr. Funktionen in einzelne Module auslagern (ohne dass sie ohne weiteres global sichtbar sind) kann ich auch in C. Deswegen hat C noch lange keine OOP-merkmale.

tft hat Folgendes geschrieben:
Observer sind eine Abstrackte Struckturierung die alles widermal komplizierter macht als nötig. Ich denke in verbindung mit OOP kann es recht nützlich sein. Aber ich als Hobby Coder kann nichts damit anfangen.

Unnötig komplizierter? Im gegenteil, ein sauberes OOP-design macht einen code deutlich besser wartbar.
Und wer mit java arbeitet (was ja auch als hobby erlaubt sein sollte) trifft da ganz automatisch auf diverse entwurfsmuster.

tft hat Folgendes geschrieben:
Oder liege ich da föllig falsch?

Ja.

tft hat Folgendes geschrieben:
praktischer ----- das liegt wohl im Auge des Betrachters. Für den einen ist es Pracktisch. Und für den anderen Umständlich. Und einer der keine Ahnung hat ..... für den ist es unmöglich auch nur die Grundidee dahinter zu verstehen.

Dann ist es trotzdem nicht "umständlich". Wenn einer keine ahnung hat, dann hat er keine ahnung. Ändert aber an der sache an sich nix.
+++ www.masterk.de.vu +++
Lila FTW!

Silver_Knee

BeitragMi, Jul 09, 2008 21:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
ein sauberes OOP-design

Da liegt bei den meisten Anfängern das Problem.

wenn ich als Anfänger:
Code: [AUSKLAPPEN]
o:Object=GetObject(of,any,reason)
o\TControl\TButton\Move(2,3)
o\TControl\Show()
o\tag="shown"

lese oder sowas schreiben soll, da drehts einem doch gleich den Magen um.


Code: [AUSKLAPPEN]
button=GetButton(of,any,reason)
MoveButton(button,2,3)
ShowControl(button)
SetObjectTag(button,"shown")


sieht finde ich, allein weil es weniger zeichen sind, freundlicher aus.

Außerdem kann ich mit dem Ersten code viel mehr scheiße bauen als mit dem 2.
zb:
Code: [AUSKLAPPEN]
o\TControl\Move(2,3)

Gehe zu Seite Zurück  1, 2, 3, 4, 5, 6, 7  Weiter

Neue Antwort erstellen


Übersicht Sonstiges Smalltalk

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group