C++ Mac, ANFÄNGER

Also kann man sagen Swift denkt mit zumindest in Notfällen gibt es sich Mühe. Bei C könnte ab hier schon die App vielleicht abstürzen. Sorry bin kein Developer. Wollte nur mal von den Developer hören,was die für Argumente haben.
 
Ich wollte damit nur darstellen das moderne Programmiersprachen mehr abstrahieren.
Heute sind Funktionsaufrufe eben keine Sprünge an Speicheradressen.

Man hat late Binding (es wird zur Laufzeit entschieden welche Methoden aufgerufen werden), Klassen können zur Laufzeit verändert und ausgetauscht werden.
Das ist alles gut, wenn man die entsprechende Rechenpower hat.
Manchmal möchte man aber kontrollieren was wirklich passiert, gerade bei "kleineren" mobilen Geräten.

Ob etwas abstürzt oder nicht ist dabei erstmal zweitrangig.
Interessant wird es dam wo ich z.B einen Algorithmus mit bestimmter Laufzeit-Characteristik wähle,
ich aber nicht mehr sagen kann was der Compiler daraus macht.

Das halte ich für ein Problem.
Aber ich bin alt. Ich bin irgendwann in den 90er Jahren bei dem geblieben was ich für "vernünftig" halte.
Nicht falsch verstehen, ich kenne eine Menge Sachen und muss mir eine Menge davon anschauen.
Aber was man davon wirklich einsetzt, steht auf einem anderen Blatt.

Ich bin zum Beispiel kein Freund von JavaScript, Ruby, oder sogar Python.
Wobei letzteres gerade noch geht ;)
 
@pmau
Was ist dein Favorit? C,Swift oder andere? Für iOS,watchOS natürlich. Wenn du willst darfst auch für OSX sagen.
 
@Willeswind: wieso ungern? Du hast mit Deinem Einwand doch völlig recht!

@pmau: die Optimierungssache hinkt aber so gewaltig finde ich! Natürlich optimiert C! Sehr massiv sogar. Es gibt kaum einen Assemblerprogrammierer der es noch schafft manuell effektiveren Code zu generieren als ein C-Compiler. Allerdings wird in Deinem schlichten Beispiel der Addition auch keine Optimierung nötig sein. Interesant wird es, wenn es sich eben nicht mehr um skalare Datentypen handelt oder der Aufruf rekursiv via Stack zigfach passiert oder ... so alleinstehend ist die schnöde Addition ja fast schon Assembler und in der Tat nicht optimierungswürdig. Ich denke Du wolltest auf etwas anderes bezüglich darunterliegender Datenstrukturen hinaus?
 
Ja, sicher wird C massiv optimiert. Ich wollte nur kein wirklich langes Beispiel zeigen.
Ich kenne Aliasing, Code Reordering, Common Sub Expression Optimization und vieles andere.

Ich kenne i386 Maschine Description Dateien noch aus gcc 3.3 Zeiten.
Gibt sogar irgendwo einen Patch von mir.

Sprachen wie Swift mit ihren Abstraktionen würden dynamisch zur Laufzeit andere interne Implementierungen für sprach-eigene Idiome wählen. Arrays, Listen oder Maps sind dann vielleicht gar nicht wirklich so implementiert wie sie von der Syntax her aussehen.

Ein "a[9]" ist dann eben nicht das zehnte Element einer definierten Größe eines Speicherbereichs.
Manchmal will man aber eine Sprache wie C, die eben bestimmte Garantien bzgl. der Code Generierung einhält.

Du weisst bestimmt was ich meinte, ich habe halt nur zu kurz formuliert.
Sollte Swift übrigens zur "Standardsprache" ohne die Möglichkeit der Einbindung von C Code werden, wegen dem Bitcode und so weiter, würde ich mich ernsthaft ärgern und iOS nur noch als Hobby sehen.
 
  • Gefällt mir
Reaktionen: wegus
@pmau
Was ist dein Favorit? C,Swift oder andere? Für iOS,watchOS natürlich. Wenn du willst darfst auch für OSX sagen.

Für iOS und OSX noch Obj-C.

Ich bin allerdings was berufliches und privates angeht mehr auf der Serverseite unterwegs,
C, Perl ,C++, Python in der Reihenfolge. Sachen wie Shell und "anderes" Scripting habe ich jetzt mal weggelassen.

Gute Web Frameworks sind nur meiner Meinung nach Mojolicious für Perl und Django für Python.
Mit Apache und den entsprechenden Modulen.
 
Aber ich bin alt. Ich bin irgendwann in den 90er Jahren bei dem geblieben was ich für "vernünftig" halte.
Das ist das Problem - etwas "vernünftig" machen bringt halt langsamer Resultate.
Will man mit ner App etwas verdienen, macht es einfach keinen Sinn, sich da Monate einzuschließen, um mit C++ an dem absolut perfekten Speichermanagement zu arbeiten.
Die Detailtiefe, die man mit C++ erreicht, interessiert 99,9% der Leute nicht. Wozu also sich darauf als Anfänger einlassen?
Oft ist es auch suboptimal - heutige Compiler können aus absolut hingerotztem Code oft bessere Binaries bauen als die aller aller meisten, wenn sie sich "händisch" und "ganz tief" dransetzen.
Merke: Denke niemals, Du seist schlauer als der Compiler
 
Man sollte auch nicht ausser Acht lassen, wie viel Zeit eine App (und ich meine jetzt bewusst Consumer Apps für iOS & Co.) effektiv im eigenen Code verbringt und wie viel in irgendwelchen Frameworks (und VMs), über die man sowieso keine Kontrolle hat.
 
  • Gefällt mir
Reaktionen: pmau
Man sollte auch nicht ausser Acht lassen, wie viel Zeit eine App (und ich meine jetzt bewusst Consumer Apps für iOS & Co.) effektiv im eigenen Code verbringt und wie viel in irgendwelchen Frameworks (und VMs), über die man sowieso keine Kontrolle hat.

Das ist ein guter Punkt der gerade auf iOS zutrifft.
Allerdings muss man zugeben, dass dadurch wenigstens relativ einfach ein Minimal Standard eingehalten wird was die Qualität angeht.
Wenn es UIViewController UITableViews und alle möglichen UIControls nicht gäbe wäre allles noch viel inkonsistenter.

Und durch Dinge wie URL Sessions und Hintergrundtasks bekommt Apple wenigstens noch einigermassen ein Powermangement hin.
Wenn jeder machen könnte wie er wollte, mit HTTP Requests, Multitasking und was noch alles, wäre das iPhone in einer Stunde leer.
 
@pmau
Kann man Obj-c Projekte ins Swift importieren,das aber schnell. So ähnlich wie grad Microsoft tut.
Oder mit Glück erst bei iOS 10
 
Zurück
Oben Unten