| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Feb 2004 Ort: Dresden
Beiträge: 105
| Why we need a collection framework in ActionScript
Auf der Suche nach kompakten Datenstrukturen ist mir aufgefallen, wie wenig das Thema "collections" bisher in ActionScript besetzt ist. Ich bin mir nicht sicher, ob es daran liegt, dass wir zu wenig Know- how aufbieten können oder ob wir collections tatsächlich einfach aus bestimmten Gründen nicht brauchen. Wie auch immer, es gibt eine ganze Reihe von Individuallösungen, ausgerichtet auf verschiedene Bedürfnisse (Geschwindigkeit, Architektur, Framework-Konformität). Man kann aussagen, dass wir für dieses grundsätzliche Problem der clientseitigen Datenhaltung stets das Rad neu erfinden. Im Ergebnis meiner Beschäftigung mit dem Thema habe ich einen Artikel veröffentlicht, welcher sich elementar mit der Definition von collections befasst und die Rolle eines möglichen Frameworks beleuchtet. Diesen Artikel möchte ich hier vorstellen und gleich- zeitig eine Diskussion über die Rolle von collections und den Einsatz eines entsprechenden Frameworks anregen. Zum Text: http://sibirjak.com/blog/index.php/c...-actionscript/ |
| | |
| | #4 (permalink) |
| zimmer 101 Registriert seit: Jul 2003 Ort: LE
Beiträge: 1.584
|
hm, ich finde (zumindest der teil, den ich benutze) tut ziemlich gut, was datenstrukturen so tun sollen: http://lab.polygonal.de/ds/ erst kürzlich begegneten mir eben die in einem kommerziellen produkt.
__________________ Illogical comparison with NaN. Any comparison operation involving NaN will evaluate to false because NaN != NaN. SimPholders - iPhone Simulator aufbohren |
| | |
| | #6 (permalink) |
| Nagelneuer User Registriert seit: Dec 2005
Beiträge: 924
|
Ich will ja niemanden abhalten, aber ich kann mich nicht erinnern, dass ich jemals eine Art von Collection vermisst hätte. Die Gründe, die du angibst machen schon Sinn. Aber vielleicht nur für einige sehr spezielle Projekte, die sehr große Collections benutzen. Du kannst ja spasseshalber mal eine paar Messungen für deine verschiedenen Collections machen. Deine Tabelle gibt ja schon ganz gut vor, was du messen kannst. Dann kann man besser entscheiden, ob ein Framework Sinn macht oder nicht. Ich denke, dass die meisten Collections, die einem so begegnen, weit unter 100 Elemente enthalten.
__________________ The fact that you've got "Replica" written on the side of your gun and the fact that I've got "Desert Eagle written on the side of mine ... :D Geändert von hazy fantazy (03-04-2009 um 21:19 Uhr) |
| | |
| | #7 (permalink) |
| ~~~~~~~~~~~~ Registriert seit: May 2002 Ort: AUSTRIA (OÖ)
Beiträge: 3.308
|
@hazy fantazy: Da muss ich dir jetzt wiedersprechen. Collections bzw. streng typisierte Datenhaltung macht immer Sinn. Besonders im Hinblick auf Erweiterungen bzw. Skalierbarkeit von Anwendungen. Bei komplexen Anwendungen hat keiner Lust sich 100 mal zu überlegen "hm.. welchen index aus dem Array brauch ich da nochmal ..." und debuggen wird zum Horrorszenario. Bzw. erleichtert es auch die Kommunikation wenn man sagen kann: "Da hab ich nen DoubleLinkedList verwendet" weil dann kennt sich jeder aus, ähnlich wie bei Designpatterns. lg
__________________ --- :P --- Blog Bei unerwünschten Nebenwirkungen zerreißen Sie die Packungsbeilage oder erschlagen ihren Arzt oder Apotheker Geändert von _geo_ (03-04-2009 um 21:43 Uhr) |
| | |
| | #9 (permalink) |
| ~~~~~~~~~~~~ Registriert seit: May 2002 Ort: AUSTRIA (OÖ)
Beiträge: 3.308
|
@Omega Psi: Mit "streng typisiert" war hier gemeint dass die Collection nur einen Datentyp annimmt (den man vorher frei wählen kann. Das hebt für mich aber nicht die Typisierung auf). Da dass in Flash bisweilen "nicht" (Vector) zu realisieren ist (Generics) fallen die AS3 Collections aber nicht in diese Kategorie, da hast du recht. Es ging mir aber nicht um die "was_auch_immer Typisierung" sondern um die Argumente welche für den Einsatz von Collections sprechen. lg
__________________ --- :P --- Blog Bei unerwünschten Nebenwirkungen zerreißen Sie die Packungsbeilage oder erschlagen ihren Arzt oder Apotheker Geändert von _geo_ (05-04-2009 um 21:36 Uhr) |
| | |
| | #10 (permalink) |
| Neuer User Registriert seit: Feb 2004 Ort: Dresden
Beiträge: 105
| Ich kannte die sympathische Seite leider noch nicht. Danke für den Link. Ich habe das AS3-Collection-Framework in die Sammlung von bestehenden Entwicklungen mit aufgenommen. Tatsächlich spricht der Link aber eigentlich für eine weitere Framework- Diskussion und weniger dagegen. Die Aussage zu Beginn des Threads ist nicht, dass wir keine Implementierungen haben sondern dass wir uns auf keine einigen, dass es keinen Wettbewerb gibt (und damit auch keine Fortentwicklung) und dass das Thema Collections offensichtlich nur ausgewählten Entwicklern zugänglich ist. Anders verhält es sich mit etwa Tweening-Libraries oder MVC-Frameworks. Hier ergibt eine Suche einige Kandidaten, wobei ziemlich schnell klar wird, welche von denen etwas taugen. In Java oder .NET sind die Collections gleich Teil der Sprache. Damit sind sie auch gleich Thema in jedem Programmier-Anfängerkurs. -- Man nehme zwei Entwickler, die jeweils eine Library erstellen. Jede Library verwendet andere collections. Der Endanwender, der beide Libraries nutzen möchte, muss sich nun mit zwei verschiedenen Collection-Frameworks plagen. Man stelle sich vor, er würde selbst ein drittes favorisieren und für seinen eigenen Code verwenden. |
| | |
| | #11 (permalink) | |
| Neuer User Registriert seit: Feb 2004 Ort: Dresden
Beiträge: 105
| Zitat:
Collection-Framework hinaus. Z.B. braucht man vom normalen Anwender keine Entscheidung über den zu verwendenden Suchalgorithmus erfragen/erwarten. Es gibt hier auch ein paar nachteilige Aspekte, weswegen sich die Datenstrukturen nicht als allgemeine Lösung anbieten (kaum Interfaces, Handling der LinkedLists, Code-Duplizierung aus Performancegründen). | |
| | |
| | #12 (permalink) |
| thinkin aBout tha lib. Registriert seit: Nov 2001 Ort: Kölle
Beiträge: 1.379
| ...
... aus diesem Grunde Array ... krakenbock ich geb dir 100% recht: es ist Kacke wenn man Datentypen verwenden will von einer Bibliothek und dann ein anderes Projekt braucht/hilfreich wäre welches eine andere Bibliothek verwendet. Nicht nur ein bischen Kacke sondern so richtig dick fett... In Java oder anderen Sprachen gibt es (für flash verhältnisse unglaubliche) Interface definitionen die standardisiert sind - und dafür können dann Datenhalter noch und nöcher gemacht werden. Ich habe lange nach Gründen gesucht warum das bei Flash nicht wirklich klappt (habs zu AS2 zeiten versucht und bin gescheitert - vielleicht weil ich zu dumm/unerfahren war, wer weiss) - Ich vermute das sowas einfach im Sprachenkit vordefiniert sein muss damit Menschen das wirklich verwenden können. Und genau aus diesem Grunde lande ich in 90% der Fälle bei Array, mittlerweile denke ich über einen Schwenk auf Vector nach - aber da meine Entwicklungen zum Grossteil auf Flash9 laufen -> Array. Man kann ja ein Array auch als Queue und als Stack vergewaltigen; Listen gehen sowieso die meisten mit Array problemlos(beim broadcasten von irgendwas verwende ich für gewöhnlich aus Implementationsgründen eine Linked List, weils schnell sein muss). Wenn ich für irgendwas spezialisierte Datenhalter brauche dann stelle ich den Code aber nicht online/open source. Es wäre an der Zeit dafür eine Taskforce zu gründen - aber die Grossen der branche sind viel mehr daran interessiert Kinky zeugs zu machen als das...
__________________ Back to community with http://leichtgewicht.at |
| | |
| | #13 (permalink) |
| Perverted Hermit Registriert seit: Mar 2004 Ort: Delmenhorst
Beiträge: 12.898
|
Nicht Java als Sprache bietet die Collections an sondern die API (bei anderen Sprache ist das auch so). Und solche Datenstrukturen sind in der rege auch nicht schwer zu implementieren, ganz zu schweigen davon, dass es geheime Implementierungen sind. Deswegen verstehe ich auch nicht, warum das nun so extrem wichtig zu sein scheint, ein allgemeines Framework zu haben. PS: ein Array ist auch ein Stack - das hat mit einer falschen Nutzung des Array nichts zu tun. |
| | |
| | #14 (permalink) |
| thinkin aBout tha lib. Registriert seit: Nov 2001 Ort: Kölle
Beiträge: 1.379
| ...
Eine Sprache definiert sich immer durch die Basiselemente und die Standardbibliothek. Quasi alle Datenhalter in der Java API werden durch die VM hochgetrimmt (spezieller optimierungscode). Unabhängig davon: Da Sun diese Klassen zur Verfügung stellt kann man davon ausgehen das jeder Entwickler der Welt diese Verwenden kann und wird(zumindest die Inferfaces). Wenn ich ein GameFramework verwenden möchte das Polygonal Datenhalter benutzt und gleichzeitig mein immeraktives IOC Framework habe das Add2Fl Datenhalter verwendet dann müsst ich mir überlegen wo ich jetzt wie mit den Daten anfange rumzukonvertieren - nicht zu reden davon das alle Frameworks immer die selben namen verwenden und Codecompletion einen in den Wahnsinn treibt -> hach schon wieder die falsche LinkedList verwendet - mist. Thema Array als Stack: Code: arr.unshift( "mäh" ); Deswegen sage ich vergewaltigen... naja
__________________ Back to community with http://leichtgewicht.at |
| | |
| | #15 (permalink) | |||||
| Perverted Hermit Registriert seit: Mar 2004 Ort: Delmenhorst
Beiträge: 12.898
| Zitat:
Zitat:
Zitat:
Zitat:
Zudem: Sind die Namensräume unterschiedlich, merkt man die falsche Verwendung schnell. Sind sie gleich, kriegst du auch einen Fehler für unklare Verweise. Thema Array als Stack: Code:
Zitat:
2. LinkedList ist tendenziell schneller wenn die Implementierung einigermaßen vernünftig ist. 3. Von einer naiven Verwendung von "general purpose" Collections wird im allgemeinen abgeraten, da sie nicht typsicher sind in Bezug auf den Anwendungs Kontext. Collections sollten besser gekapselt werden im illegale Zugriffe zu vermeiden. | |||||
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |