|
Thema geschlossen
|
Registriert seit: 11. Apr 2009 560 Beiträge Delphi 12 Athens |
#41
Für alle Schüler und Studenten, die sich hierher verirren, weil sie vielleicht überlegen, doch mit Delphi anzufangen: Ausnahmsweise haben Uwe Raabe und Dummmzeuch mal nicht recht. "Sic" heißt (heute) nicht "so" oder "so isses". Sic hat eine sehr spezifische und etwas unerwartete Bedeutung, die im Wikipedia-Eintrag ja auch richtig beschrieben wird. Es steht in aller Regel hinter einem scheinbar falschen oder ungewöhnlichen Wort/Ausdruck und die Bedeutung ist: "Nein, das ist kein Versehen, das ist mir Absicht so".
|
Registriert seit: 9. Okt 2003 Ort: München 252 Beiträge Delphi 10.4 Sydney |
#42
Wäre es seit dem immer so unbeliebt, wie so gerne suggeriert wird, wäre daraus sicherlich kein Geschäftsmodell geworden, dass sich wohl weiterhin zu lohnen scheint.
Sehr große und sehr erfolgreiche Firmen arbeiten damit, auch manche wo man nicht damit gerechnet hätte. Ich denke Delphis "Schwäche" ist seine Effizienz. Mit diesem Werkzeug kann man in kürzerer Zeit, mit weniger Leuten Projekte realisieren, die mit anderen Tools die Zeit grosser Teams verschlingen würde. Die erzeugten Projekte laufen immer zuverlässig, da keine Runtime Abhängigkeiten bestehen. Und dann gibt es ausgereifte Komponenten, die zur Not auch selber gewartet werden können. Ich finde die Entwicklung von Embarcadero sehr gut, 10.3 Rio ist ausgesprochen stabil. Schade finde ich, dass der Linux Compiler nur in der Enterprise Version enthalten ist, womit es sich nicht loht, dafür Komponenten zu entwickeln. Was wiederum die Attraktivität der Platform reduziert ... |
Registriert seit: 16. Jun 2003 Ort: Schönwald 1.299 Beiträge Delphi 10.3 Rio |
#43
Delphi und Alt ?
Im Vergleich zu was den ? C++ ? Das wurde 1979 entwickelt (Quelle: Wikipedia), während Object Pascal 1986 durch Borland entwickelt wurde (Quelle Wikipedia). Klar gibts jüngere Programmiersprachen (Phyton z.B.). Aber d.h. nicht unbedingt das sie gut sind. Ich hab einige Jahre als Webentwickler gearbeitet (mit PHP, Javascript und HTML). Einzig PHP kommt hier an die Möglichkeiten von Object Pascal ran. Die Lesbarkeit von Code hängt imho von 2 Faktoren ab: a) Wie lange arbeitet ein Programmier schon mit der Sprache. Je länger du mit einer Syntax arbeitest, desto vertrauter ist sie dir, und desto leicher ließt du den Quelltext. b) Die Syntax an und für sich. Da Object Pascal sehr "ausführlich" ist, fällt es einem leichter Quelltext zu lesen, dafür muss man etwas mehr tippen. Sprachen die sich syntaktisch an C orientieren sind hier natürlich etwas im Nachteil, da C für "Tipfaule" entwickelt wurde und dementsprechend weniger tiparbeit erfordern.
Uwe
e=mc² or energy = milk * coffee² |
Registriert seit: 1. Apr 2020 11 Beiträge Delphi 10.4 Sydney |
#44
Wenn es um die Delphi-IDE geht..die kann doch gar nicht unbeliebt sein. Die ist schon seit langem die Beste, die es gibt. Schon mal einer Visual Studio von Microsoft gesehen/verwendet? Absolute Vollkatastophe.
Geht es um die Sprache Object Pascal, dann kann etwas, was keiner kennt, weder beliebt noch unbeliebt sein. Mit keiner meine ich Schüler und Studenten. Denen werden Java, C++, C#, Python usw. reingeprügelt, aber kein Pascal. Das ist der Bereich, wo auch Embarcadero absolut verpennt hat. Mit folgendem Kommentar wurde eigentlich schon alles auf den Punkt gebracht: Delphi ist eine feine Sprache
aber es hat auch seine Gründe warum viele Projekte schlicht die Sprache gewechselt haben. So einige meiner Kunden wollen aus Wartungsgründen Browser-Basierte Lösungen mit vernünftigen User-Management über einen Webserver. IntraWeb zum Beispiel ist bei meinen Tests immer an Grenzen gescheitert, die im Projekt nicht zu beheben waren. Aus meiner Sicht hätte Uni-Gui oder TMS-Web-Core schon seit Jahren zur Grundausstattung gehören sollen. Wobei man auch nicht alles in einer IDE halten muss. Abgespeckte IDE's für VCL , FMX , Web wären auch sinnig. Ja das mag jetzt einiges an Diskussion hervorrufen, also gerne. Grüße in die Runde Martin |
Registriert seit: 6. Mär 2013 6.176 Beiträge Delphi 10 Seattle Enterprise |
#45
Ich denke man sollte vielleicht sogar den letzten Schritt gehen und alle Entwicklungsumgebungen außer Delphi verbieten. Manchmal muss man die Leute auch vor sich selbst schützen.
|
Der schöne Günther |
Öffentliches Profil ansehen |
Mehr Beiträge von Der schöne Günther finden |
Registriert seit: 10. Jun 2004 Ort: Garching (TUM) 4.579 Beiträge |
#46
Ich denke man sollte vielleicht sogar den letzten Schritt gehen und alle Entwicklungsumgebungen außer Delphi verbieten. Manchmal muss man die Leute auch vor sich selbst schützen.
Zitat:
Die Lesbarkeit von Code hängt imho von 2 Faktoren ab:
Und wenn sich der Code flüssig liest, ist die andere Syntax drittrangig
Zitat:
a) Wie lange arbeitet ein Programmier schon mit der Sprache. Je länger du mit einer Syntax arbeitest, desto vertrauter ist sie dir, und desto leicher ließt du den Quelltext.
b) Die Syntax an und für sich. Da Object Pascal sehr "ausführlich" ist, fällt es einem leichter Quelltext zu lesen, dafür muss man etwas mehr tippen. Sprachen die sich syntaktisch an C orientieren sind hier natürlich etwas im Nachteil, da C für "Tipfaule" entwickelt wurde und dementsprechend weniger tiparbeit erfordern. Ich sehe es eher andersherum, zum Beispiel die {} statt begin end sind viel besser für die Lesbarkeit, weil sie weniger vom Wesentlichen ablenken. Auch wenn Strg+Alt+0 nicht so praktisch zu erreichen ist. Wenn es um die Delphi-IDE geht..die kann doch gar nicht unbeliebt sein. Die ist schon seit langem die Beste, die es gibt. Schon mal einer Visual Studio von Microsoft gesehen/verwendet? Absolute Vollkatastophe.
|
Registriert seit: 16. Jun 2003 Ort: Schönwald 1.299 Beiträge Delphi 10.3 Rio |
#47
Zitat:
Vll. siehst du das nur so, weil die C Verwandte nicht gewohnt bist und es dir deshalb schwerer fällt
Ich sehe es eher andersherum, zum Beispiel die {} statt begin end sind viel besser für die Lesbarkeit, weil sie weniger vom Wesentlichen ablenken. Auch wenn Strg+Alt+0 nicht so praktisch zu erreichen ist. Insbesondere wenn die Leute sich im Team nicht einig sind ob die öffnende Klammer in eine eigene Zeile kommen soll oder nicht. Aber dieses Problem hat man immer, egal welche Synthax.
Uwe
e=mc² or energy = milk * coffee² |
Registriert seit: 8. Okt 2010 Ort: Frankfurt am Main 1.234 Beiträge |
#48
Zu den Argumenten eingangs:
1. Schnell - Compiler !
2. Exe- File - kann leicht weitergegeben werden.
3. Leichte Oberflächenerstellung. In Python komplex und langsam.
Ansonsten verweise ich auf PySide und wxPython ... 4. Und.. und.. und
ich vermute mal das für viel Delphi noch auf einem D6/8/2007-Level stehen geblieben ist und viele der Dinge die einen dir Arbeit in einem Delphi 10.x erleichtern gar nicht bekannt sind.
Was ich auch unpraktisch fand, war die Anforderung C-Header übersetzen zu müssen. Vielleicht - bzw. hoffentlich - gibt's da ja auch seit XE Fortschritte. Kurzum: für eine bestimmte Sorte von Anwendungen ist Delphi aus meiner Sicht noch immer sehr gut geeignet, bei anderen eher nicht. Man ist eben ein Aussenseiter, wenn man eine gut lesbare, bewährte Sprache und die dazugehörigen Bibliotheken und dann noch eine relativ einfache IDE benutzt.
Ein richtiger Programmierer schreibt seinen Code so, das ihn niemand verseht,im Idealfall er selber auch nicht. Auch ein Programm, welches sich simpel durch copy & past installieren lässt geht gar nicht. Ein richtiges, von einem Experten geschriebenes Programm braucht 100 dlls und eine Installationsroutine die mindestens 20 min den Rechner beschäftigt.
Mittlerweile finden es die Leute ja geil sich mit Opera, Atom, Visual Studio Code, Riot IM, Google Chrome und dem Slack Client (um nur ein paar wenige Vertreter zu nennen) quasi dutzendfach den gleichen Code in ihr Benutzerprofil zu installieren. Vor ein paar Jahren hielt man DLLs als Mittel der Wahl um den gleichen Code aus verschiedenen Anwendungen heraus zu nutzen, noch für das A und O. Die Zeiten ändern sich halt. Allerdings hat Electron eben auch zu Auswüchsen geführt bei denen mittlerweile Systemsoftware mit Systemrechten nen Chromium-Unterbau ausführt. Da kommt mir das kalte Kotzen. Falls du jemals einen kleinen Einblick in das Tagesgeschäft eines Admins bekommen solltest, wird dir die Begeisterung für Anwendungen die sich per Copy&Paste installieren lassen schnell im Halse stecken bleiben. Es hat halt seine Vor- und Nachteile, je nach Einsatzgebiet. Ja, in dem C-Array gibt es keine ''-Einträge für nicht vorhandene Werte, da der erste Leer-String das Ende der Liste definiert,
drum wird die Liste einfach komplett weggelassen. Die "Unbeliebtheit von Delphi" liegt sicherlich zum großen Teil daran, das es in der Delphi (oder Pascal) Welt
nicht alle paar Monate alles neu kommt, man seinen gesamten alten Quellcode wegschmeissen muss, um nun auf die ganz neue [Platzhalter für irgendein Buzzword] Plattform umstellt, weil das insbesondere bei [noch ein Platzhalter für irgendein Buzzword] viel besser ist .... Schonmal versucht meinen nonVCL-Code in neueren Delphi-Versionen zu bauen? Viel Erfolg! Andererseits kann ich gemütlich C-Code aus den 1990ern meinem C-Compiler füttern und der spuckt mir dafür sogar Objektcode aus. Gut, Warnungen gibt es dann durchaus hin und wieder ... Es gibt seit Jahrzehnten den gleichen Kram auch mit SQL Datenbanken, nosql ist alles viel besser, davor kamen einige
sogar mal mit XML Datenbanken, alles so viel doller als 08/15 SQL Datenbanken .... oder vielleicht doch nicht? Und auch wenn es ewig totgesagt ist, auch heute noch dominieren SQL Datenbanken sehr große Teile in betriebswirtschaftlich benutzter Software. Ich kann aus meinem Kundenkreis durchaus von einigen Kunden Projekten berichten, bei denen große Teams irgendwas in irgeneiner webbasierenden oder .NET oder java basierenden Technik umsetzen, wo ich mich frage, warum dauert das länger als eine Woche oder ein Monat? Und die verbraten da Mannjahre .... In einem Projekt bei dem Laden mit dem großen T an der Haustür war einer der Programmierer bekannt das er angeblich
mit fast jeder Programmiersprache einsetzbar war. Konkrete Nachfragen zu seinem vorliegenden Quellcode und der von ihm darin verbockte Datenbankzugriff auf gruseligen Tabellenstrukturen zeigten mir nur, das er vermutlich in vielen Programmiersprachen ein "Hallo Welt" zum Laufen bekommt, aber nirgends darüber hinaus zu gebrauchen ist. Damals war sein neuestes Steckenpferd java und alle Projektbeteiligten waren glücklich, das in dem Projekt mit Delphi und SQL für Ihn keine verwendung mehr war und der dann uns nicht mehr mit seinem Halbwissen genervt hat. Die meisten Anwender die Git benutzen sind meiner Erfahrung nach Stümper in Sachen Git (== keine Grundkenntnisse), die nach diesem Schema verfahren, aber es muß dennoch unbedingt Git sein und ja kein anderes VCS. Zurück zu deinem Thema: Unbeliebt ist nicht unbedingt das Gegenteil von beliebt! Es gibt gerade aufgrund der
Historie sehr viele weiterhin in der Pascalwelt sehr glückliche Programmierer, die Ihr Tagesgeschäft aufgrund guter Basisarchitekturen auch auf dem Spachlevel von Delphi 5 o.ä. erfolgreich gestalten. Ob die sich dann die Mühe machen, irgendjemand davon zu überzeugen, das Delphi 5 auch für den die Lösung schlechthin ist, kommt den meisten in unserem Dunstkreis überhaupt nicht in den Sinn. Es gibt aus meiner Sicht nur ganz wenige "Programmiersprachen-Prediger" in der Delphi Welt, die mit taliban ähnlichen Argumentationsketten alles andere schlecht reden nur nur die eigene Religion anerkennen. Der geneigte Delphi/Pascal Programmier reagiert da oft nach dem Motto "Was interessiert es die Eiche, wenn die Sau sich an ihr kratzt" und beendet uninteressante Monologe von solchen Predigern auch gerne mal zumindest gedanklich mit "Wenn man mal keine Ahnung hat, einfach mal Fresse halten" in dem Wissen, das die eigene Plattform bei entsprechender Architektur keineswegs durch eine ganz andere Programmiersprache in Frage gestellt werden muß. Wenn du dich als letzter Mohikaner fühlst, der den Kram noch benutzt, dann hast du sicher gute
Gründe zu wechseln, dafür sehe ich aber inbesondere im deutschsprachigen Umfeld für Delphi/Pascal keinerlei Gründe, vielleicht sogar ganz im Gegenteil (Ich kenne einige Visual Studio Ablöse-Projekte für vorhandene Delphi Projekte, wo die Firmen sehr viel Geld drin versenkt haben, aber nie mit dem neuen Projekt in den Produktionsstatus gekommen sind und daher weiterhin noch Jahrzehnte alten Delphi Quelltext mitschleppen, der es durchaus verdient hätte, mal aufgeräumt zu werden. Dafür muss man den aber nicht komplett wegschmeissen. Auch sollte jedem Entwickler klar sein, daß auf die Lebenszeit der Software betrachtet nicht auf die Erstentwicklung sondern für die Langzeitpflege hin optimiert werden sollte. Stichworte: Dokumentation, Tests, Änderungsverwaltung, Trennung von Abstraktionsebenen mit "internen" Schnittstellen ... Für Redesign innerhalb der existierenden Welt ist aber immer
nie Zeit und Geld da, die Leute, die frisch von der Uni kommen, basteln da in Ihrer dunklen Textkonsole so viel unverständliches Zeug in wenigen Minuten zusammen, das jeder gestandene Delphi/Pascal Programmierer nicht mal Bock drauf hat, das zu verstehen, [...] Ein wenig Distanz zu wahren zu der neuesten Programmiermethoden/-sprachen-Sau die gerade durch's Dorf getrieben wird, ist sicher richtig. Aber der ehemalige Vorgesetzte der auch nach 20 Jahren noch mit dem Compiler von 1996 arbeitete und einen Programmierstil hatte, der mit "Assembler-artig" und "1980er" wohlwollend umschrieben wäre, hat dennoch den Fortschritt in der Codebasis auf ganzer Linie behindert. Wenn ich halt großflächiges Refactoring machen möchte, muß man manche liebgewonnenen Gewohnheiten aus DOS-Zeiten auch mal aufgeben. Hier war es bspw. die Unsitte über Defines und einen zentralen Header zu steuern was eingebunden wird. Zu DOS-Zeiten durchaus sinnvoll um eine damals übliche Größenbeschränkung zu umgehen. Heute eher überkommen und hinderlich. Solche Dinosaurier, die mental ihre Kenntnisse auf ihrem eigenen Fachgebiet nie merklich ausgebaut haben, habe ich schon mehrfach in meiner Karriere kennengelernt. Noch hoffe ich, daß ich frühestens mit Renteneintritt auch in diese Dinosaurierphase eintrete. Ich finde es aber wenig tröstlich, daß Uni-Abgänger eine ähnliche Ignoranz an den Tag legen wie die sprichwörtlichen Dinosaurier. So sind neue entwickler nur dazu gekommen wenn sie es sich leisten konnten. Also ganz sicher keine Schüler oder Studenten!
Heute ist es schwer den Marktanteil im Business Bereich noch signifikant zu steigern. Von unbeliebt würde ich dabei noch nicht einmal sprechen, sondern eher von unbekannt oder falsch eingeschätzt...
Aber wir leben ohnehin in einer Zeit in der das nächste Quartalsergebnis (manchmal sprichwörtlich, manchmal nicht) wichtiger ist als eine langfristige und nachhaltige Wertschöpfung. Klar haben andere Sprachen und Umgebungen ihre Vorteile (C# in Visual Studio), aber es gibt auch eine Vielzahl an Sprachen und Umgebungen, da gruselt es mir, wie rudimentär, verkorkst oder aufwändig manche Sachen sind (Editor, Debugging) oder das die gefühlt nur Server- und Konsolenprogramme können (Rust).
Manch einer kann sich das kaum vorstellen, aber Sprachen und Editoren sind überhaupt nicht über Naturgesetze unzertrennlich aneinander gebunden. Und ich verdrehe jedesmal die Augen wenn mein Vorgesetzter sich drüber beschwert daß diese oder jene Funktion des Debuggers in Eclipse nicht funktioniert. Da zücke ich dann Vim, GDB und einen Terminal-Multiplexer und lasse diese nervige Entwicklungsumgebung hinter mir. Möglich, aber wenn die Lösung schon C, C++ und C# parsen kann, ist doch Object Pascal keine Unmöglichkeit.
Ich bin ja auch nur Laie, aber ich stelle mir das so vor, dass nach dem Parsen eines Softwareprojektes das als AST und (ggf. später) als logisches Modell vorliegt, gegen das man dann Regeln und Standards prüft. Selig sind, die da nehmen und nicht zurückgeben! Jupp, vermutlich ist das im Prinzip ganz einfach, wobei du hier auch ein wenig Architekturanalyse und statische Codeanalyse zum Auffinden häufiger Fehler durcheinanderzuwürfeln scheinst. Das hatte seine Zeit. Bei etlichen Kunden darf PHP nicht eingesetzt werden.
Die erste Delphi-Version erschien 1995. 1995 habe ich erstmals von anderen Programmierern gehört, dass Delphi total veraltet sei, keine Zukunft hat, unbeliebt ist ... Und das zieht sich nun seit 25 Jahren durch die Diskussionen.
Da spielt dann wohl auch immer persönlicher Geschmack und der Unwille sich mit neuen Themen auseinanderzusetzen eine Rolle. Meine Frage war eher: Welche Entwicklungsumgebung wird ähnlich lang weiterentwickelt, wie Delphi?
Wenn es um die Delphi-IDE geht..die kann doch gar nicht unbeliebt sein. Die ist schon seit langem die Beste, die es gibt. Schon mal einer Visual Studio von Microsoft gesehen/verwendet? Absolute Vollkatastophe.
Ich denke man sollte vielleicht sogar den letzten Schritt gehen und alle Entwicklungsumgebungen außer Delphi verbieten. Manchmal muss man die Leute auch vor sich selbst schützen.
Auch wenn Strg+Alt+0 nicht so praktisch zu erreichen ist.
Ich nutze seit über 15 Jahren ausschließlich eine US-Tastatur mit alternativem Layout (sprich, ich kann ohne Probleme ß, ö, ü, ä, æ, å, ø, ł, ð, ć, ę, ż, ý, ą, ©, ®, ™, ï, ᵹ, ń, μ, ℔, ś, ſ, ƿ, é, ¾, ¼, ½, ℅ usw. tippen ... und zwar sowohl auf Linux wie auch auf Windows) und möchte es nicht mehr missen. Probier's mal aus! Das entsprechende Mercurial-Repo ist derzeit offline, da Bitbucket bekanntlich die Unterstützung auslaufen läßt, aber demnächst ist es dann wieder online. Schick mir ne PN, falls Interesse besteht. Was hilft mir begin/end statt {/} wenn ich am Ende in JSON oder YAML oder wo auch immer doch wieder mit geschweiften Klammern konfrontiert bin?!
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch) |
Registriert seit: 22. Jun 2018 2.175 Beiträge |
#49
Zitat:
Wenn es um die Delphi-IDE geht..die kann doch gar nicht unbeliebt sein. Die ist schon seit langem die Beste, die es gibt. Schon mal einer Visual Studio von Microsoft gesehen/verwendet? Absolute Vollkatastophe.
|
Registriert seit: 10. Jun 2003 Ort: Berlin 9.648 Beiträge Delphi 11 Alexandria |
#50
Was auch an der interessanten Preis- und Paketierungspolitik liegen könnte. Vielleicht habe ich ja wirklich etwas verpaßt, aber die preisliche Lücke zwischen dem Angebot für Hobbyisten mit ausdrücklichem Verbot der kommerziellen Nutzung und der nächst-"größeren" Ausgabe war riesig. Und bei der nächst-"größeren" Ausgabe hatte ich dann allerlei Klimbim dabei, für den ich keine Verwendung hatte, den ich aber mitbezahlt habe.
Wenn solche Preise für eine Firma zu hoch (!) sind, ist mir das etwas suspekt ehrlich gesagt. Also man kann ja nun viel gegen Delphi sagen, unter anderem, dass man Einsteiger lange eher abgeschreckt hat. Und auch, dass die Qualität lange Jahre vernachlässigt wurde. Aber die Preise sind nun wirklich nicht hoch, wenn man nicht gerade mit kostenlosen Open Source Tools vergleicht. An der Stelle sollte man aber eben als Softwareentwickler auch bedenken, dass man ja auch möchte, dass andere die eigene Arbeitsleistung bezahlen. Das Gegenteil. Die IDE ist langsam, voll mit irgendwelchen Artfeakten wenn man sie minimiert und wiederherstellt, Refactoring (Umbenennen von Variablen) funktioniert nicht immer und endet oft in selbst der IDE unbekannten Fehlern, mehrmals täglich muss ich die IDE neustarten und dann kommt es auch zu irgendwelchen Zugriffsverletzungen. Vom Editor brauchen wir gar nicht erst reden.
In unseren aktuellen, auch größeren, Projekten läuft die IDE sehr gut und so gut wie ohne merkliche Verzögerungen. Abstürze z.B. beim Debuggen wie sie unter XE6 quasi normal waren gibt es hier quasi gar nicht mehr. Leider kommt Delphi mit Kreuzbeziehungen in den Units, aber auch exotischen Formatierungen und teilweise auch mit manchen Benennungskonventionen nicht gut klar, wenn man Refactoring oder auch nur die Klassenvervollständigung nutzen möchte. Hier lohnt es durchaus den Quelltext zumindest etwas zu modernisieren um dann effizienter arbeiten zu können. // EDIT: Ach ja, ein Bug fällt mir dabei ein: Wenn man etwas markiert hat, dauerte der Wechsel zu anderen Units und zurück recht lange, derweil hing die IDE. Deshalb entferne ich mittlerweile quasi unbewusst automatisch immer eine eventuell gesetzt Markierung ohne darüber nachzudenken.
Sebastian Jänicke
AppCentral Geändert von jaenicke (30. Apr 2020 um 15:01 Uhr) |
Thema geschlossen
|
Ansicht |
Linear-Darstellung |
Zur Hybrid-Darstellung wechseln |
Zur Baum-Darstellung wechseln |
ForumregelnEs ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus. Trackbacks are an
Pingbacks are an
Refbacks are aus
|
|
Nützliche Links |
Heutige Beiträge |
Sitemap |
Suchen |
Code-Library |
Wer ist online |
Alle Foren als gelesen markieren |
Gehe zu... |
LinkBack |
LinkBack URL |
About LinkBacks |