C, C++ oder Java??

CapFuture schrieb:
Die ersten Programmiererfahrung würd ich immernoch mit Turbo Pascal sammeln...
Prozedurale Programmierung ist für den leien einfach leichter zu verstehen und der ganze firlefanz der Objektorientierten Programmierung stört nicht.
TP ist einfach gestrickt, aber zum lernen immernoch das beste...
Das kann man mit Java ja auch haben. ;)
 
CapFuture schrieb:
Die ersten Programmiererfahrung würd ich immernoch mit Turbo Pascal sammeln...
Prozedurale Programmierung ist für den leien einfach leichter zu verstehen und der ganze firlefanz der Objektorientierten Programmierung stört nicht.
TP ist einfach gestrickt, aber zum lernen immernoch das beste...

Gibt's Turbo Pascal auch für den Mac, wusste ich gar nicht!

Ansonsten finde ich Pascal nicht so prickelnd, das hat für mich so etwas bürokratisches … ist aber sicher geschmacksfrage.

Im Prinzip ist es ja auch nicht so wichtig, mit welcher Sprache man beginnt. Sie sollte halt so sein, dass man nicht gleich wieder vom Programmieren abgeschreckt wird.

Gibt's eigentlich ein ordentliches Basic für Macs?

Wenn XCode zum Einsatz kommen soll, dann stehen sowieso nur C, Objective-C, C++, oder Java zur Auswahl. Die erfordern allesamt einen ziemlichen Lernaufwand.

Für den Einstieg sollte Logo (z.B. Starlogo) gut sein.

Mit Squeak gibt es eine super Smalltalk-Umgebung, leider iss da nix mehr mit Cocoa.

Naja, am besten iss es, sich alle möglichen Sprachen mal so oberflächich anzukucken (Syntax, Programmierumgebung, …) und dann zu entscheiden. Die Geschwindigkeit ist ohne konkrete Aufgabenstellung sicher zweitrangig.

AIF
 
wie wär's mit Cocoa/Objective-C?
Das ist die Programmiersprache, die Apple empfiehlt und mit der nahezu alle OS-X-Programme geschrieben sind.
 
Zum Thema Speed von Java ...

Der Tomcat 4.1 läuf auf nem G4 1.0 schneller als auf nem Windows XP P4 2.6 ....

Kommt halt drauf an, was Du machen willst. Ihc bin grosser Java-Fan ...
Und ist im Web-Bereich echt das Beste ... kannste PHP gegen vergessen ...
 
Da fknapp sich wahrscheinlich sowieso schon die Haare rauft weil wir ihm den nie endenden Java vs C++ Krieg bieten schweife ich jetzt mal komplett vom Thema ab:

Wie etabliert ist eigentlich objective-C auf dem Mac ?

@fknapp:
Im Grunde ist es egal welche Sprache du lernst. Wissen wächst langsam vor sich hin. Alles was du bastelst wird dein Wissen ein wenig erweitern, Konzepte werden anfangen einen Sinn zu ergeben ( auch die verbogenen Konzepte von C ;) ).
Aber ich glaube die erste Sprache die man lernt wird man in einem anderen Licht sehen als alle weiteren.

Grüße Sebastian
 
hi zusammen,

wo hier alle von c, c++ und java reden sollte doch auch mal .net erwähnt werden. die klassenbibliothek ist wohl bei weitem ausgefeilter als die von java und mit c# steht auch eine C ähnliche sprache zur verfügung (sofern man auf sowas steht).
als anfänger würde ich aber, wie einer der vorherigen poster schon sagte, auf ruby verweisen, ruby bietet dir auf simpelste art und weise die möglichkeit deinen computer zu programmieren und dabei kannst du gleich das gesamte spektrum der objektorientierung nutzen. prozedurale sprachen brauchst du dir nicht mehr anzueignen (ausser du suchst dein heil in der systemprogrammierung) wenn du standard anwendungen entwickeln willst dann gibt es heutzutage einfach keinen vernünftigen weg der an objektorientierung vorbeiführt. btw. wird ein garbage collector von vielen leuten als ein paradigma einer objektorientierten programmiersprache angesehen folglich fällt c++ schon von anfang raus. es ist einfach unsinn heutzutage noch im arbeitsspeicher rumzuwüllen, das kann der garbage collector (wenn auch ein wenig langsamer) um weiten besser. außerdem werden deine anwendungen gleich um einen sehr hohen faktor stabiler und sicherer da dir themen wie buffer overflows keine sorgen bereiten.

Ruby
http://www.ruby-lang.org
ruby ist im entwicklertoolkit von mac os x standardmäßig dabei, allerdings in einer relativ veralteten version

.Net
http://www.microsoft.com/net/
http://www.mono-project.com/



bovi


btw.: mit .net steht dir auch asp.net zur verfügung, welches sehr stark objektorientierung in web programmierung bringt und durch aus das zeug dazu hat java server pages abzulösen
 
Da Apple ja bekanntlich C++ und Java fuer die "besten" Sprachen haelt, und darauf auch all die iApps basieren, werd ich mich wohl fuer eine der beiden entscheiden. Von Sprachen, wei Ruby und so halt ich fuer meinen Anwendungsbereich nicht sehr viel, da sie so wie ich das mitbekommen hab nicht mit OS X "abgestimt" sind.
Ich will vor allem Programme im wissenschaftlichen Bereich schreiben koennen, die sachen wie RagTimecalcs. ueberfluessig machen. Nur noch eine Frage, hat java Loopfuktionen, wie C++? Und, naja 2. Frage, gibt es einen Unterschied zwischen C++ und Oop-c, oder ist das im Grunde das selbe.
Welche Sprache wuerdet ihr mir speziell fuer xcode empfehlen?
 
fknapp schrieb:
Da Apple ja bekanntlich C++ und Java fuer die "besten" Sprachen haelt, und darauf auch all die iApps basieren, werd ich mich wohl fuer eine der beiden entscheiden.
Und, naja 2. Frage, gibt es einen Unterschied zwischen C++ und Oop-c, oder ist das im Grunde das selbe.
Welche Sprache wuerdet ihr mir speziell fuer xcode empfehlen?

Für die i-Apps wird nicht C++ oder Java verwendet. Für die i-Apps (bzw. generell für alle native-OSX Apps) kommt "Objective-C" zum Einsatz. Java verwendet Apple, soweit ich weiß, gar nicht. Java soll nur dazu dienen, damit Programmierer von anderen Sytemen eine "bekannte" Sprache vorfinden. Aber Apple hält Java sicher nicht für "die beste" Sprache, denn dann würde sie auf dem Mac besser Performen. Denn im Vergleich Windows<->OSX laufen einige Java-Apps bis zu 10mal langsamer unter OSX, als unter Windows.

Der Unterschied zwischen C++ und Objective-C sind sehr groß, finde ich. Man kann aber die beiden Sprachen mixen. Aber das ist nur für kleine Routinen zu empfehlen.

Beispiel Methodenaufruf einer Klasse (kann sein das jetzt ein Fehler drin ist...):

C++:
Objekt->Methode(Übergabewert)

Obj-C:
[Objekt Methode:[Übergabe]]

Für XCode kann man nur Java oder Obj-C empfehlen. Mit allen anderen kann man keine grafische Oberfläche erstellen. Wie gesagt. Mit Obj-C und Cocoa bist du an OSX gebunden. Mit Java und einer Oberfläche von Java nicht. Dafür hast du u.U. Performance-Probleme.

Oder du nimmst eine andere, freie, plattformunabhängige, grafische Oberfläche und nimmst C++.
 
Zu .Net:

Das ist "keine" Programmiersprache, sondern nur ein Vermurgstes Framework... MS versuch sich ums Sun's Java zu drücken...
Der Unterschied zwischen den beiden ist meißt, dass C# einige Methoden mit großbuchstaben schreibt und Java nicht...
 
@CapFuture: Stimme Dir voll zu ...

.net ist Murks ...

und bietet bestimmt in alter MS-Manier ne Menge Angriffspunkte ... ;-)
 
Die Wahl der Programmiersprache und den benutzen Bibliotheken hängt sehr stark vom Anwendungsfall ab.

Willst du dir ein kleines Programm zusammenbauen das dir ein paar Alltagsaufgaben abnimmt (zB. BatchRenamer) ist eine Skriptsprache (Perl, Python etc.) am sinnvollsten.

Zum erstellen einer kleinen GUIApplikation (zB. Taschenrechner, Bildbetrachter etc.) ist Java sehr gut geeignet. Vorteile dabei sind Plattformunabhängigkeit, schicke Datentypen für Strings, GarbageCollector, vorgefertigte Klassen zum Umgang mit Images etc.

Willst du allerdings eine "richtige" Applikation (zB. Bildbearbeitungsprogramm, MovieConverter, schneller MediaPlayer etc.) entwickeln, bleibt dir nur eine Form von C. Hier fällt die Entscheidung aber meist anhand der verwendeten Librarys/Frameworks. Um ein sinvolles OS X Programm zu entwickeln daß die schönen Apple Frameworks (Quicktime, Quartz etc.) ausnutzt, macht ObjectiveC am meisten Sinn. Mit Java tust du dir da keinen gefallen. Eine gute Kombination ist auch C++ und eine platformübergreifende GUIBibliothek wie QT, WXWidgets, GTK+ etc. Diese sind aber meist problematisch und sehen auf keiner Platform so richtig "nativ" aus. Außerdem verzichtet man damit auf dem Mac auf die schönen Spielereinen die Apple für Entwickler eingebaut hat.

Am besten wird sein du fährst mehrgleisig und machst von allem ein bischen. Später kannst du dich ja auf einen Bereich festfahren falls es mal durch berufliche Gründe notwendig sein sollte.

BadHorsie
 
Hallo,

wenn mein Mac kommt möchte ich auch ein wenig mit der Entwicklung unter Mac-OS loslegen. Wühle mich im Moment durch ein paar Bücher und das Netz :)

Gibt es keine native C++/Cocoa-Klassenbibliothek?? Objective-C ist zwar ganz nett aber eine vierte C-ähnliche Sprache ist nun wirklich nicht nötig. Vor dem ersten Compilerlauf sehen meine Programme sowiso manchmal wie ein Mischmasch diverser Sprachen aus :)

Wie sieht das mit dem Mischen von C++ und Objective-C aus?? Zur Not müsste das mit einem C-Wrapper doch auf alle Fälle klappen. Dann könnte man GUI und Funktionalität trennen und wenigstens den Kern transportabel halten.

Gruß
Sascha
 
Wenn Du C kannst.....kannst Du jede Programmiersprache! Das ist so! Und wer das Gegenteil behauptet.....hat keine Ahnung ;) Ist so!

Ne mal im Ernst...Evtl. habe ich ja was überlesen?....Anwendungsfall....!?
 
@fknapp
Es gibt nicht die eine richtige Sprache, nicht mal als eindeutige Empfehlung für den Einstieg.
Jedes Problem braucht eine individuelle Lösung, die mal mit dem einen, mal mit dem anderen Werkzeug besser zu bauen ist.
Wer zu wenige Werkzeuge kennt wird (im übertragenen Sinne) auch mit einem Hammer versuchen, ein Brett zu zerteilen und damit offensichtlich suboptimale Resultate erzielen.

Wichtiger als die Wahl einer bestimmten Programmiersprache für den Anfang halte ich eine fundierte Unterstützung durch jemanden, der wirklich etwas von Programmieren versteht.
Die Syntax und Semantik einfacher Konstrukte kann man in jedem halbwegs guten Buch nachlesen.
Damit alleine kommt man aber kaum über das "Bastler"-Stadium hinaus.
Hier ist eher gefragt, was man besser nicht macht ;)

In diesem Zusammenhang kann ich die Bücher von Steve McConnel (insbesondere Code Complete) wirklich empfehlen.


Gruß,

?=?
 
Zuletzt bearbeitet:
@Oetzi

Nehmen wir mal an ich habe bereits ein anderes Framework um z.B. auf ORACLE zuzugreifen welcher in C++ geschrieben ist und uA neben dem C-OCI auch heftigst die STL benutzt. Möchte ich nicht unbedingt nochmal in Objective-C schreiben :)

Um Brüche zu vermeiden wär's halt einfacher direkt alles in C++ zu schreiben..

Was "C-Programmierer können alles" angeht - ja klar, solchen Source habe ich schon gesehen (und in der Anfangszeit auch selber verbrochen) :p

Gruß
Sascha
 
Also ich habe mit C angefangen...Und egal welche Sprache n och dazugekommen ist....C hat mir echt geholfen !
 
Wirklich geholfen haben mir 6502 & 68k Assembler, danach war dann alles nur Variation des gleichen Themas :p

Ob man als normaler C-Programmierer gleich in der Lage ist ein sauberes objektorientiertes Programm abzuliefern ist aber die Frage. Glaube nicht das mir das im ersten Wurf gelungen ist. Heisst zwar immer das ein gute C-Programm zu einem objektorientierten tendiert, aber ich tendiere ja auch schon seit Jahren zum Reichtum ohne das es recht gelingt :)

Mein Problem ist aber das ich die Syntax von ANSI-C/C++/Java+Objective-C langsam durcheinanderwerfe.

Ausserdem würde ich halt gerne existierenden Code weiterverwenden ohne ihn neu verpacken zu müssen.

Aber was soll's - nachdem was ich gelesen habe werde ich sowiso zumindest ein paar gehversuche in Cocoa/Objective-C machen, allein schon weil es sich interessant anhört.

Der Rest wird sich schon finden :)

Gruß
Sascha
 
saki schrieb:
@Oetzi

Nehmen wir mal an ich habe bereits ein anderes Framework um z.B. auf ORACLE zuzugreifen welcher in C++ geschrieben ist und uA neben dem C-OCI auch heftigst die STL benutzt. Möchte ich nicht unbedingt nochmal in Objective-C schreiben :)

Um Brüche zu vermeiden wär's halt einfacher direkt alles in C++ zu schreiben..

Was "C-Programmierer können alles" angeht - ja klar, solchen Source habe ich schon gesehen (und in der Anfangszeit auch selber verbrochen) :p

Gruß
Sascha
du solltest dich auf dem Mac auf Cocoa/Objektive-C konzentrieren. Das ist nun mal die Muttersprache von OS X. C++ ist dabei kein Hindernis. Du kannst in Xcode auch auf C99 schalten und dann C++Code sogar auf Source-Ebene einbinden, sprich, Objektive-C und C++ mischen.
Ansonsten: Schau mal im www.osxentwicklerforum.de herein.
 
Man kann auch mit C++ plattformunabhängig Gui Programmieren.

Das wxWidgtets bietet die entsprechenden Gui-Bibliotheken die tatsächlich auf mehreren unterschiedlichen Plattformen laufen.

Von der Geschwindigkeit ist das sogar schneller als Java (zumindest auf meinem iMac G3 400MhZ)

Optisch muss man aber klar sagen kann es nicht mit der Gui des InterfaceBuilders mithaltena, aber das ist bei Java Swing genauso - das ist nunmal der Preis der Plattformunabhägigkeit.
 
Dass Java langsamer als C/C++ sein soll ist nur ein Gerücht, schaut eucht doch mal Java2, das bald auf OSX portiert wird an!
Und wenn ihr Java mit SWT programmiert, dann habt ihr au kein "hässliches" GUI mehr, denn SWT benutz die standart Systemoberfläche.
Ich persönlich habe zuerst C/C++ gelernt, würde jedoch jedem empfehlen mit Java zu beginnen, es ist einfach sauberer ausgearbeitet und dadurch entstehen auch weniger Fehler.
Falls man aber direkt auf den Speicherbereich zugreifen will gibt es keinen Weg an C/C++ vorbei!

GruZZ Diskordia
 
Zurück
Oben Unten