• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Buch: Objective C 2.0 Thema: Speicherlecks (Verständnissprobleme))

Tekl

Fairs Vortrefflicher
Registriert
01.06.05
Beiträge
4.630
Danke für den Tipp. Bin dabei auch auf nu gestoßen, wobei Lisp nun auch nicht meine Traumsyntax ist. MacRuby scheint dann wohl das einzig brauchbare zu sein, wobei mir ja eigentlich eher Python zusagt, aber da gibt’s wohl nur Bridges.

Es dann direkt richtig zu machen schwirrt mir ja auch immer wieder mal im Kopf rum, aber die Syntax und so Aussagen wie versuche es mal ein paar Monate, schrecken mich dann gleich wieder ab. Die Grundkonzepte von Python, PHP oder JavaScript begreift man ja ein ein paar Tagen, aber Monate will ich da jetzt nicht investieren, bis ich was richtiges machen kann. Schließlich muss ich mich ja irgendwie auf einen Bereich festlegen und kann nicht auf allen Hochzeiten tanzen. Mit den ganzen Webgeschichten ist man schon ausgelastet genug.
 

Jamsven

London Pepping
Registriert
21.11.07
Beiträge
2.046
Naja Ruby kannst dann ja mit RoR kombinieren. Dann hast auch was brauchbares im Web Bereich.
Das schöne an MacRuby ist, dass es von Apple entwickelt wird.
Es soll wohl die Java bridge ablösen.
 

Amin Negm-Awad

Süsser Pfaffenapfel
Registriert
01.03.07
Beiträge
665
Ich sprach von der Syntax, nicht von den Konzepten. Und Syntax ist einfach Gewöhnung.
 

Tekl

Fairs Vortrefflicher
Registriert
01.06.05
Beiträge
4.630
Bei ObjC scheint die Syntax aber irgendwie auch das Konzept zu sein. Aber vielleicht sehe ich das aus meiner beschränkten Skripter-Sicht auch falsch.

Sicher ist Syntax Gewöhnungssache, aber wenn die Syntax so extrem vom Alltag abweicht, dann frage ich mich halt, ob ich es dann nicht besser ganz sein lasse. Z. B. die polnische Notation in Lisp oder gar die umgekehrte in Postscript. Das tue ich mir bewusst nicht an. Eine Notation reicht mir und sie funktioniert für mich und in vielen Skriptsprachen auch gut und ist vor allem auch lesbarer da Operator auch gleich der Separator ist ( 1 + 1 statt + 1 1 ).

Muss man in ObjC Strings immer mit "NSString*" definieren? Warum so ein Aufwand?
 

Amin Negm-Awad

Süsser Pfaffenapfel
Registriert
01.03.07
Beiträge
665
Bei ObjC scheint die Syntax aber irgendwie auch das Konzept zu sein. Aber vielleicht sehe ich das aus meiner beschränkten Skripter-Sicht auch falsch.
Ich sehe da keinen konzeptionellen Ansatz, außer natürlich der Syntaxkonzeption. Was meinst du? Es wird einfach die absolut saubere Trennung von prozeduralen Elementen von oo Elementen versucht. Tatsächlich existieren inzwischen Objective-Aufsätze für andere Sprachen.

Sicher ist Syntax Gewöhnungssache, aber wenn die Syntax so extrem vom Alltag abweicht,
von deinem Alltag. Smalltalk sieht ähnlich aus.

dann frage ich mich halt, ob ich es dann nicht besser ganz sein lasse. Z. B. die polnische Notation in Lisp oder gar die umgekehrte in Postscript. Das tue ich mir bewusst nicht an. Eine Notation reicht mir und sie funktioniert für mich und in vielen Skriptsprachen auch gut und ist vor allem auch lesbarer da Operator auch gleich der Separator ist ( 1 + 1 statt + 1 1 ).
Wie gesagt: Gewöhnung. Da kann ich jetzt ja weder dafür noch dagegen argumentieren. Andererseits habe ich gerne ungewöhnliche Dinge gemacht, um die Probleme der Gewöhnung für mich selbst zu erkennen. Ich finde es spannend, etwas mal anders zu sehen, und wenn es auch nur dazu dient, dass bisherige zu verstehen. Aber auch hier ist Syntax sicherlich eher untergeordnet.

Muss man in ObjC Strings immer mit "NSString*" definieren? Warum so ein Aufwand?
?

a) Müssen muss man das nicht:
Code:
id var = @"Amin";
Wollen will man das schon. Aber die Vor- und Nachteile der Typisierung brauchen wir jetzt nicht durchzudiskutieren.

b) Wie machst du es denn sonst?
 

Jamsven

London Pepping
Registriert
21.11.07
Beiträge
2.046
Bei ObjC scheint die Syntax aber irgendwie auch das Konzept zu sein. Aber vielleicht sehe ich das aus meiner beschränkten Skripter-Sicht auch falsch.

... wenn die Syntax so extrem vom Alltag abweicht. Eine Notation reicht mir und sie funktioniert für mich und in vielen Skriptsprachen auch gut und ist vor allem auch lesbarer da Operator auch gleich der Separator ist ( 1 + 1 statt + 1 1 ).

Muss man in ObjC Strings immer mit "NSString*" definieren? Warum so ein Aufwand?

Dann hast du wohl noch nie einen HP Taschenrechner benutzt. :cool:

Der Aufwand ist aus technischer Sicht so gegeben. PHP basiert auch auf C und da haben dir die PHP Entwickler halt viel Arbeit weggenommen. Wobei C++ und C noch schlimmer als OC sind.

Das ist quasi wie der Pfanni Kartoffel Püree. Man muss ihn nur anrühren.
 
Zuletzt bearbeitet:

Tekl

Fairs Vortrefflicher
Registriert
01.06.05
Beiträge
4.630
Ich sehe da keinen konzeptionellen Ansatz, außer natürlich der Syntaxkonzeption. Was meinst du? Es wird einfach die absolut saubere Trennung von prozeduralen Elementen von oo Elementen versucht. Tatsächlich existieren inzwischen Objective-Aufsätze für andere Sprachen.

Gehörem die eckigen Klammern und Verschachtelungen nicht zum Sprachkonzept? Falls nicht, ließe es sich also auch einfach in Punktnotation formulieren? Oder bietet das Klammerkonzept Vorteile, außer dass den eckigen Klammern nicht mehr so langweilig ist?

von deinem Alltag. Smalltalk sieht ähnlich aus.

Mein Alltag als normaler Mensch und Anwender. Programmieren ist für mich auch nur eine notwendige Anwendung, weil viele Aufgaben eben nicht anders oder nur sehr zeitraubend zu lösen sind. Wenn’s anders ginge, oder man seinen persönlichen Programmierer an der Hand hätte, würde ich mich gar nicht mehr damit abquälen.

... Aber auch hier ist Syntax sicherlich eher untergeordnet.

Ich nicht, da ich mich damit rumplagen muss und für jede Sprache eine eigene Syntax lernen muss und es dann auch nicht verwechseln darf.

a) Müssen muss man das nicht:
Code:
id var = @"Amin";
Wollen will man das schon. Aber die Vor- und Nachteile der Typisierung brauchen wir jetzt nicht durchzudiskutieren.

Ist aber immer noch syntaktisch aufgebläht.

b) Wie machst du es denn sonst?

var = "string"
oder vielleicht
$var = "string".

Ich verstehe nicht warum sich da Leute was komplizierteres ausdenken. Wozu noch der Klammeraffe? Um Typisierung will ich mich eigentlich nicht kümmern, wozu habe ich einen Computer. Jaja, ich weiß ObjC ist keine Skriptsprache. Das ist wohl auch mein Problem.

Die ideale Sprache wäre für mich eine Skriptsprache, die aber auch kompilierbar und damit portabel und performant ist. Die direkte Möglichkeit auf Cocoa zuzugreifen und einfach GUIs zu implementieren und eben ein leichte und konsistente Syntax wie bei vielen existierenden Skriptsprachen. Okay PHP ist nicht besonders konsistent, aber dieses auf Lesbarkeit getrimmte AppleScript ist leider in der Anwendung auch nicht sonderlich konsistent (contains, does contain, containing, does not contain, not containing ...) und leider brauchen AppleScript-Programm-Bundles ewig, bis sie ausgeführt werden. MacRuby muss ich mir da mal anschauen, ob das meine Ansprüche erfüllt.

Okay, lassen wir das. Das führt zu nichts. Die Diskussion ist für mich zwar interessant, aber eigentlich sehe ich nur die Möglichkeit Cocoa zu lernen oder es ganz sein zu lassen kleine Programme mit GUI am Mac zu entwickeln.

Vielleicht passiert es ja noch mal, dass jemand sowas wie AutoIt oder AutoHotkey für OS X auf die Beine stellt.

Aber eine Frage noch. Wenn ich ObjC nun aus dem FF beherrsche, ist damit dann genau so schnell wie mit eine Skriptsprache möglich z. B. einen Textparser zu basteln, der Textdateien annimmt und sie z. B. in ein anderes Format umschreibt oder mit komplexen regulären Ausdrücken Inhalt extrahiert? Ich vermute ja eher nicht, da das Kompilieren ja schon extrem aufhält, oder?
 

Bananenbieger

Golden Noble
Registriert
14.08.05
Beiträge
25.515
Gehörem die eckigen Klammern und Verschachtelungen nicht zum Sprachkonzept? Falls nicht, ließe es sich also auch einfach in Punktnotation formulieren? Oder bietet das Klammerkonzept Vorteile, außer dass den eckigen Klammern nicht mehr so langweilig ist?
Punktnotation gibt es bei Objective-C auch.

Aber wenn man sich mal das Konzept der eckigen Klammern genauer ansieht, dann ist es deutlich mächtiger und flexibler als die Punktnotation.
 

Amin Negm-Awad

Süsser Pfaffenapfel
Registriert
01.03.07
Beiträge
665
Gehörem die eckigen Klammern und Verschachtelungen nicht zum Sprachkonzept? Falls nicht, ließe es sich also auch einfach in Punktnotation formulieren? Oder bietet das Klammerkonzept Vorteile, außer dass den eckigen Klammern nicht mehr so langweilig ist?
Es gehört nicht zum Sprachkonzept, weil eckige Klammern kein Konzept sind. Das Pluszeichen gehört auch nicht zur Konzeption der Mathematik. Tief gestellte Zahlen gehören auch nicht zur Konzeption der Chemie. Das alles könnte man ändern ohne irgendwelche Konzepte zu berühren.

Man kann teilweise Punktnotation benutzen. Aber wenn man Punktnotation gewählt hätte, wüde am Ende noch einer darauf kommen, dass das zum Konzept der Sprache gehört. Und das wäre ja Unfug.

Mein Alltag als normaler Mensch und Anwender.
Normale Menschen und Anwender formulieren gar nicht in Programmiersprachen.

Programmieren ist für mich auch nur eine notwendige Anwendung, weil viele Aufgaben eben nicht anders oder nur sehr zeitraubend zu lösen sind. Wenn’s anders ginge, oder man seinen persönlichen Programmierer an der Hand hätte, würde ich mich gar nicht mehr damit abquälen.
Das mag sein, kann ich letztlich nicht beurteilen, hat aber nicht mit Objective-C zu tun.

Ich nicht, da ich mich damit rumplagen muss und für jede Sprache eine eigene Syntax lernen muss und es dann auch nicht verwechseln darf.
Man muss für jede Sprache eine eigene Syntax lernen.

Wenn du allerdings von instance.function() auf [instance method] umlernen musst, ist das vielleicht einfach in der Tat nichts für dich.

Übrigens, und damit sind wir bei den Konzepten: Das ist kein Zufall, dass ich mal function und mal method schrieb.


Ist aber immer noch syntaktisch aufgebläht.
"[instance method]" ist im Gegensatz zu instance.function() aufgebläht? Das verstehe ich nicht.

Ansonsten dürfte wohl Objective-C die kürzeste Syntaxdefinition aller tatsächlich eingesetzter Sprachen haben.

var = "string"
oder vielleicht
$var = "string".
Was soll das $ da? Total kompliziert und aufgebläht.

Ich verstehe nicht warum sich da Leute was komplizierteres ausdenken.
Was kompliziert ist, bestimmt ja der Verbraucher. Und die sind verschieden.

[
Wozu noch der Klammeraffe?
Wozu das Dollarzeichen?

Um Typisierung will ich mich eigentlich nicht kümmern, wozu habe ich einen Computer. Jaja, ich weiß ObjC ist keine Skriptsprache. Das ist wohl auch mein Problem.
Och, die Leiden der untypisierten Sprachen kenne ich auch.

Die ideale Sprache wäre für mich eine Skriptsprache, die aber auch kompilierbar und damit portabel und performant ist.
Meine ideale Sprache würde mir gebratene Tauben in den Mund fliegen lassen. Gibt es aber auch nicht. Möglicherweise hat das einen Grund.

Die direkte Möglichkeit auf Cocoa zuzugreifen und einfach GUIs zu implementieren und eben ein leichte und konsistente Syntax wie bei vielen existierenden Skriptsprachen.
Die Syntaxdefinition von Objective-C ist leichter und dünner als die von PHP. Das lässt sich objektiv messen.

Okay PHP ist nicht besonders konsistent, aber dieses auf Lesbarkeit getrimmte AppleScript ist leider in der Anwendung auch nicht sonderlich konsistent (contains, does contain, containing, does not contain, not containing ...) und leider brauchen AppleScript-Programm-Bundles ewig, bis sie ausgeführt werden. MacRuby muss ich mir da mal anschauen, ob das meine Ansprüche erfüllt.
AppleScript?

Okay, lassen wir das. Das führt zu nichts. Die Diskussion ist für mich zwar interessant, aber eigentlich sehe ich nur die Möglichkeit Cocoa zu lernen oder es ganz sein zu lassen kleine Programme mit GUI am Mac zu entwickeln.

Vielleicht passiert es ja noch mal, dass jemand sowas wie AutoIt oder AutoHotkey für OS X auf die Beine stellt.

Aber eine Frage noch. Wenn ich ObjC nun aus dem FF beherrsche, ist damit dann genau so schnell wie mit eine Skriptsprache möglich z. B. einen Textparser zu basteln, der Textdateien annimmt und sie z. B. in ein anderes Format umschreibt oder mit komplexen regulären Ausdrücken Inhalt extrahiert? Ich vermute ja eher nicht, da das Kompilieren ja schon extrem aufhält, oder?

Wie meinen? Das Kompilieren hält auf?
 

Tekl

Fairs Vortrefflicher
Registriert
01.06.05
Beiträge
4.630
Wie würde man denn folgendes in Punktnotation schreiben?

-(Fraction *) add: (Fraction *) f
oder
NSString* helper = [[NSString alloc] init];

Das $ vor Variablennamen lässt sie gut vom Rest unterscheiden.

Warum ist er @ vor dem String? Was passiert ohne?

Kompilieren dauert seine Zeit, wenn man öfter mal die Auswirkungen seiner Änderung testen will, hält das auf.

PHP mag mehr Befehle haben, aber sie sind leicht in der Doku zu finden und haben gleich Praxisbeispiele. Ich weiß, dass PHP ein heilloses Durcheinander ist, aber man findet zumindest schnell was man sucht und weiß gleich wie man es einsetzen kann. In Xcode finde ich nicht mal eine Erklärung zu "if", nur zu #if.
 

Amin Negm-Awad

Süsser Pfaffenapfel
Registriert
01.03.07
Beiträge
665
Wie würde man denn folgendes in Punktnotation schreiben?

-(Fraction *) add: (Fraction *) f
oder
NSString* helper = [[NSString alloc] init];
Gar nicht, weil es nicht um Eigenschaften geht.

Das $ vor Variablennamen lässt sie gut vom Rest unterscheiden.
Du meinst ganz anders als ein @? Verstehe ich schon wieder nicht.

Warum ist er @ vor dem String? Was passiert ohne?
Weil ein Objective-C-String erzeugt wird. Ohne wird ein C-String erzeugt. So wie stehst ein @ vor Objective-C-Eigenheiten steht. Scheint eine einfache Regel zu sein.

Kompilieren dauert seine Zeit, wenn man öfter mal die Auswirkungen seiner Änderung testen will, hält das auf.
*räusper* Irgendwelche Tippfehler erst zur Laufzeit zu bemerken, hält deutlich länger auf – es sei denn man programmiert nach dem "ich probiere es einfach einmal"-Prinzip. Also nach gar keinem Prinzip.

PHP mag mehr Befehle haben, aber sie sind leicht in der Doku zu finden
Du meist leichter, als mit dem Cursor auf das Wort gehen und in den bereits auf dem Bildschirm befindlichen Assistenten zu scheuen? Das kann ich mir eigentlich nicht vorstellen. Ist aber auch egal, was das keine Spracheigenschaft ist, sondern eine der IDE.

und haben gleich Praxisbeispiele.
Ja, die kenne ich von php.org. Die sind sehr wertvoll. Sieht dann so aus:

add – Addiert eine Zahl
Praxisbeispiel:
fraction.add(5)

Bringt natürlich total viel! Irgendwie so wie malen nach Zahlen.

Ich weiß, dass PHP ein heilloses Durcheinander ist,
Nein, ein konzeptionelles, syntaktisches und gedankliches Chaos. Leute mit klarem Verstand müssen das hassen.

aber man findet zumindest schnell was man sucht und weiß gleich wie man es einsetzen kann. In Xcode finde ich nicht mal eine Erklärung zu "if", nur zu #if.
Du findest in Xcode überhaupt keine Hilfe zu Schlüsselwörtern. Die paar Stück hat man auch im Kopf.

Du findest in Xcode indessen Hilfe zum Framework. Denn das ist riesig.

Allerdings verhält sich das beim vermanschtem PHP mutmaßlich anders.
 

Bananenbieger

Golden Noble
Registriert
14.08.05
Beiträge
25.515
Ja, die kenne ich von php.org. Die sind sehr wertvoll. Sieht dann so aus:

add – Addiert eine Zahl
Praxisbeispiel:
fraction.add(5)

Bringt natürlich total viel! Irgendwie so wie malen nach Zahlen.
Ich denke mal, dass eher die User-Notes gemeint waren, wo ziemlich viele Praxisbeispiele gepostet werden (sind aber auch teilweise totaler Müll)
 

Amin Negm-Awad

Süsser Pfaffenapfel
Registriert
01.03.07
Beiträge
665
Ich denke mal, dass eher die User-Notes gemeint waren, wo ziemlich viele Praxisbeispiele gepostet werden (sind aber auch teilweise totaler Müll)

Ja, stimmt, das gibt es auch. Allerdings teile ich auch deine Einschätzung. Da ist mir ein Forum wie osentwicklerforum.de oder dieses hier deutlich lieber.
 

Amin Negm-Awad

Süsser Pfaffenapfel
Registriert
01.03.07
Beiträge
665
Deswegen mag ich die Dot Notation nicht. Die bringt nur Unfrieden ins Haus.

Weiß nicht, inzwischen mag ich es. Die Compilermeldungen sind Crap. Aber das weiß man irgendwann zu lesen.

Insgesamt mag ich es wegen der Prägnanz.
Code:
[self setAge:[self age]+1];
self.age++;