• 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

Anfängerfragen zur Programmierung

schibulski

Gala
Registriert
12.02.07
Beiträge
53
Hallo zusammen!

Ich möchte gerne in die Softwareprogrammierung reinschnuppern und bräuchte dazu mal einige Tipps von den Profis. :)

Zunächst mal meine Ziele und Anforderungen:

  • Es sollen erstmal kleine, nützliche Applikationen sein. (CD/DVD-, Spieleverwaltung oder ähnliches)
  • Die Apps sollen natürlich unter Mac OS X (Leo) laufen, wäre aber auch schön wenn ich die Windowsverwandschaft auch in den Genuss meiner Programme bringen könnte. (Stichwort: plattformunabhängige Programme. Ich hasse aber irgendwie Java-Programme. Möglichst möchte ich dann auch nicht in Java programmieren :) )

Dazu folgende Fragen:

  • Könnt ihr mir hierzu gute Literatur (möglichst in Buchform) empfehlen?
  • Welche Programmiersprache ist empfehlenswert?


Programmiertechnich bin ich absoluter Laie bisher. Habe vor etlichen Jahren mal ARexx auf dem Amiga ausprobiert. Bin aber aus Zeitmangel nie wirklich weiter gekommen als diverse "Hello World!"-Programme.

Da ich ein bischen gegoogelt habe, verstehe ich das so: X-Code scheint ja mit einigen Sprachen klar zu kommen. Villeicht gibt es hierfür eine Sprache, die ich mit X-Code problemlos für Mac OS X kompilieren kann, dessen Quellcode ich aber auf einen Windowsrechner "mitnehmen" kann, um das Programm dort ebenfalls zu kompilieren.

Ich danke schonmal recht herzlich im Vorraus für eure Mühen.
 

Dr. Koffein

Empire
Registriert
19.01.05
Beiträge
89
Hallo schibulski,

es gibt nicht allzu viele Möglichkeiten Deine Anforderungen problemlos zu erfüllen, da wie Du sicher weißt das Cocoa-Framework nicht auf Windows verfügbar ist. Eine Möglichkeit wäre es, das Programm in Objective-C unter Verwendung des GNUStep-Frameworks zu erstellen.

Weitere Informationen bieten:
http://www.gnustep.org/
http://www.oreillynet.com/cs/user/view/cs_msg/22037

Eine vielleicht noch bessere Möglichkeit wäre es, Dein Programm auf Webprogrammierungsbasis zu erstellen, womit jetzt hübsche Programme auf verschiedenen Plattformen ohne viel Zusatzaufwand möglich sind. Du programmierst dann mit HTML, Ajax, Flex und Flash. Dies wird ermöglicht durch AIR von Adobe:

http://de.wikipedia.org/wiki/Adobe_Integrated_Runtime
http://labs.adobe.com/technologies/air/

Ein Beispielprogramm (bzgl. Aussehen, nicht Quellcode) findest Du hier:
http://pownce.com/



Hoffe, ich konnte Dir weiterhelfen.
drk
 

FrankR

Gascoynes Scharlachroter
Registriert
15.11.07
Beiträge
1.537
Wenn Du plattformunabhängig bleiben willst, würde sich ein plattformübergreifendes Toolkit wie Qt (http://www.trolltech.com) oder WxWidgets (http://www.wxwidgets.org/) anbieten. Programmiersprachen sind da C/C++. Verwenden kannst Du da XCode oder einfach nur einen Editor und das Terminal.

Allerdings ist da natürlich ersteinmal eine ziemliche Lernleiter zu erklimmen, aber wenn Du ambitioniert bis...

Webbasiert wäre sicher auch eine Idee, würde da für Anfänger eher RubyOnRails empfehlen. Herstellerspezifische Sachen wie AIR (oben) würde ich eher meiden. Ist aber sicher Geschmacksache.
 

schibulski

Gala
Registriert
12.02.07
Beiträge
53
vielen Dank schonmal für deine Antwort, Dr. Koffein.

Das mit dem Adobe AIR schaut wirklich SEHR interessant aus. Da werde ich mich heute Abend mal einlesen.

Jedoch Alternativen?
Gibt es eine Programmiersprache, deren Quellcode ich verwenden kann sowohl eine native Aqua-Anwendung zu kompilieren als auch eine native Windows-Anwendung?

Wie macht das zum Beispiel Apple selbst mit iTunes oder Safari? Ich kann mir kaum vorstellen, dass iTunes oder Safari in der Windowsversion komplett neu geschrieben wurden. Da wurde doch sicherlich nur schnittstellenmäßig was angepasst, oder?
 

schibulski

Gala
Registriert
12.02.07
Beiträge
53
Warum magst Du Java Programme nicht?

Die sehen irgendwie beschissen aus (Look and Feel passt nicht zum OS), bilde mir ein die sind laaaangsam und sollen wohl riesige unüberschaubare Bibliotheken haben (lt. diverser Foren). Korrigiere mich wenn ich daneben liege. :-D
 

Skeeve

Pomme d'or
Registriert
26.10.05
Beiträge
3.120
Die sehen irgendwie beschissen aus (Look and Feel passt nicht zum OS),
Das hängt m.W. davon ab, welche Bibliothek man verwendet. Eclipse z.B. ist ja auch in Java geschrieben. Ich finde, es nun nicht unbedingt so arg häßlich. Shortcuts sind (ich nutze es nicht sehr häufig) m.W. alle umgesetzt.

bilde mir ein die sind laaaangsam
Da hat sich aber schon viel getan. Weder bei Eclipse noch meinem Lieblings Editor jEdit merke ich, daß es sich hier um Java handelt.

und sollen wohl riesige unüberschaubare Bibliotheken haben
Oh ja! Das ist, außer meinem fehlenden OO-Gen, mein größtes Java-Hemnis. Allerdings: Braucht man wirklich alle diese Bibliotheken? Ich würde mal vermuten: Nein! Man sieht sich halt die an, die man benötigt.
 

FrankR

Gascoynes Scharlachroter
Registriert
15.11.07
Beiträge
1.537
vielen Dank schonmal für deine Antwort, Dr. Koffein.
Jedoch Alternativen?
Gibt es eine Programmiersprache, deren Quellcode ich verwenden kann sowohl eine native Aqua-Anwendung zu kompilieren als auch eine native Windows-Anwendung?

Wie schon gesagt, dass Qt Toolkit.

Wie macht das zum Beispiel Apple selbst mit iTunes oder Safari? Ich kann mir kaum vorstellen, dass iTunes oder Safari in der Windowsversion komplett neu geschrieben wurden. Da wurde doch sicherlich nur schnittstellenmäßig was angepasst, oder?

Ich denke schon, dass das eine "komplett" andere Codebase ist, zumindest, was die GUI angeht. Allerdings kann es auch so sein, dass Apple ein Subset von Cocoa auf Windows portiert hat, allerdings nützt Dir das sicher nichts.
 

tjp

Altgelds Küchenapfel
Registriert
07.07.04
Beiträge
4.059
Gibt es eine Programmiersprache, deren Quellcode ich verwenden kann sowohl eine native Aqua-Anwendung zu kompilieren als auch eine native Windows-Anwendung?
Nein, man kann aus einem Programmcode keine perfekte Windows und keine perfekte MacOS X Applikation bauen. Die ganzen Crossplattform Toolkits unterstützen vieles aber nicht alles der jeweiligen Plattformen.

Man kann zwar mittels bedingter Übersetzung "einen" Programmcode verwenden und so doch alle Features einer Plattform ausnutzen, aber große Teile des Programmcodes sind dann nur jeweils für eine Plattform geschrieben.

Und bevor Du Dich an größere Dinge wagst, lerne am besten erstmal Programmieren als Tätigkeit. Ruby oder Python sind dafür besser geeignet als die Compilersprachen, da man hier leichter Fehler findet.
 

tjp

Altgelds Küchenapfel
Registriert
07.07.04
Beiträge
4.059
Weder bei Eclipse noch meinem Lieblings Editor jEdit merke ich, daß es sich hier um Java handelt.
Eclipse verwendet eine spezielle plattformspezifische Bibliothek. Netbeans wäre als Beispiel daher besser geeignet.
 

Skeeve

Pomme d'or
Registriert
26.10.05
Beiträge
3.120
Eclipse verwendet eine spezielle plattformspezifische Bibliothek. Netbeans wäre als Beispiel daher besser geeignet.
Ne. Wäre es nicht, da Netbeans häßlich ist.

EIKNW ;)

Aber Danke für den Hinweis! Wenn ich das aber richtig verstehe bedeutet das doch, daß man, um den "Eclipse-Effekt" zu erhalten, nur die passende, plattformspezifische Bibliothek benötigt und das Programm selbst dadurch plattformunabhängig bleiben kann, oder?
 

tiriqs

Cripps Pink
Registriert
26.06.06
Beiträge
155
hast du dir nunmal realbasic näher angeschaut? für anfänger ist es sehr leicht.
da hast du das jeweilige "feeling" in jedem system.

es gibt zwar auch hier einige schwachstellen, aber das wirst du bei jeder sprache haben.
 

FrankR

Gascoynes Scharlachroter
Registriert
15.11.07
Beiträge
1.537
Nein, man kann aus einem Programmcode keine perfekte Windows und keine perfekte MacOS X Applikation bauen. Die ganzen Crossplattform Toolkits unterstützen vieles aber nicht alles der jeweiligen Plattformen.

Man kann zwar mittels bedingter Übersetzung "einen" Programmcode verwenden und so doch alle Features einer Plattform ausnutzen, aber große Teile des Programmcodes sind dann nur jeweils für eine Plattform geschrieben.

Klar sicher nicht perfekt, aber je nach Anwendung kannst Du schon einen Großteil des Codes mit einem dieser Toolkits plattformneutral halten. OS spezifische Sachen kannst Du ja immer noch mit bedingter Compilierung machen.
 

tjp

Altgelds Küchenapfel
Registriert
07.07.04
Beiträge
4.059
Wenn ich das aber richtig verstehe bedeutet das doch, daß man, um den "Eclipse-Effekt" zu erhalten, nur die passende, plattformspezifische Bibliothek benötigt und das Programm selbst dadurch plattformunabhängig bleiben kann, oder?
Jein, dieses Framework ist im Gegensatz zu den meisten anderen Java Frameworks kein reines Java Framework sondern erfordert weitere plattformspezifische Bibliotheken (die über den Umfang der Java SE Abhängigkeiten hinausgeht), die den Einsatz solcher Applikationen auf deutlich weniger Plattformen reduziert als dies mit einem reinem Java Swing der Fall wäre.
 

Mitglied 7974

Gast
Ich sehe da eigentlich nur zwei Möglichkeiten:

1. Kombination aus HTML, PHP und MySQL
2. Trotzdem Java verwenden

Die PHP-Variante ist meines Erachtens äußerst gut dazu geeignet, erstmal einen leichten Einstieg zu bekommen. Ich empfehle das Buch PHP & MySQL von Kevin Yank. Das Buch wendet sich v.a. an Einsteiger und erklärt genau, wie man die benötigte Software unter Windows und Linux installiert. Zu beachten: Unter OS X musst du gar nichts installieren, weil da schon alles per Standard drauf ist.

Warum PHP? PHP ist sch***einfach und von der Syntax her stark mit C-ähnlichen Sprachen und ganz massiv mit Perl verwandt. Die Sprache ist extrem leicht zu erlernen und bietet neben guten Möglichkeiten zur Stringverarbeitung und hoher Performanz eine hervorragende, in der Standardbibliothek enthaltene Anbindung zum Datenbanksystem MySQL. Damit kannst du so ziemlich jede Art von "Organisationssoftware" realisieren.

Gut, man braucht laufende Apache-Server auf den angestrebten Systemen und man kann das Programm dann auch nur im Webbrowser bedienen, aber dafür ist grafische Programmierung mit HTML um vieles leichter als mit "normalen" Sprachen und zusätzlich hast du die Möglichkeit, dein Konstrukt auf einen Webserver zu laden und es damit per Web verfügbar zu machen.

Damit sollte dann eigentlich auch die Plattformunabhängigkeit dieser Kombination geklärt sein.


Was Java anbelangt, kann ich nicht ganz nachvollziehen, warum es so viele Leute gibt, die offensichtlich nichts damit anfangen können. Es gibt mehr als genügend Firmen, die wirklich ausschließlich mit Java programmieren, eben weil das Thema Schnelligkeit bei aktuellen Rechnern kaum noch relevant ist und die Programme meist ohne Neukompilation sofort auf allen anderen Systemen lauffähig sind.

Außerdem ist es egal, ob du dann grafisch mit Swing oder SWT programmierst. Swing ist zwar etwas langsamer, dafür aber in allen Java-Distributionen mit enthalten und passt sich automatisch im Aussehen an das Look&Feel des Betriebssystems an, auf dem das Programm läuft. Noch dazu ist Swing einfacher zu programmieren (obwohl auch SWT nicht allzu schwer ist).

Ist zwar ein teurer Schinken, aber das einzige Buch, das ich zum Thema Java ruhigen Gewissens empfehlen kann (okay, es sind eigentlich zwei Bücher): Core Java 2 von Cay Horstmann und Gary Cornell. Es ist nicht nur ganz hervorragend dazu geeignet, Java an sich von grundauf und für jedermann verständlich zu lernen, sondern liefert ausgezeichnete Information zu allen Bereichen, die Einsteiger, Fortgeschrittene und auch Profis brauchen können. Da bleibt fast nichts offen.

Meine persönliche Theorie bezüglich der Java-Abneigung, die ich auch in meinem Bekanntenkreis sehe, ist die, dass wohl viele Leute Berührungsängste mit objektorientierter Programmierung haben. Wenn man das Prinzip aber mal verstanden hat, möchte man gar nicht mehr anders programmieren. Und für meinen Geschmack ist die OO-Syntax in Java wesentlich besser gelungen als in Objective-C, was ja auch objektorientiert ist.

So, soviel von meiner Seite.

Viel Spaß beim Programmieren!
 

schibulski

Gala
Registriert
12.02.07
Beiträge
53
Wow! Vielen Dank schonmal für die vielen Antworten und die interessanten Diskussionen die dadurch entstanden sind. Ist echt ein tolles Forum! Ich denke ich werde den Ratschlag
Und bevor Du Dich an größere Dinge wagst, lerne am besten erstmal Programmieren als Tätigkeit. Ruby oder Python sind dafür besser geeignet als die Compilersprachen, da man hier leichter Fehler findet.
erstmal befolgen und nur für OSX programmieren. Meine Wahl fiel deshalb auf X-Code und Python. X-Code ist ja schließlich kostenlos und Python anscheinend leicht zu lernen.

Gibt es schon ein gutes Buch zu X-Code 3.0 oder ist das noch zu neu? Wenn ja: Wird in diesem Buch auch auf Python eingegangen, oder sollte ich diesbezüglich separate Literatur besorgen?

@tiriqs:

ja, habe mir realbasic mal angeschaut. Leider ist mir das zu teuer. Ich will als Anfänger nicht direkt hunderte Euros für eine Entwicklungsumgebung ausgeben. Aber interessant schaut es allemal aus. Vielen Dank für den Tipp!
 

tiriqs

Cripps Pink
Registriert
26.06.06
Beiträge
155
von realbasic gibt es eine demoversion, die zum lerne völlig ausreicht.

ansonsten kann ich dir dann auch nur java empfehlen
 

FrankR

Gascoynes Scharlachroter
Registriert
15.11.07
Beiträge
1.537
Hmm, wenn Du auschliesslich ersteinmal mit Python arbeiten möchtest tut es sicher auch jeder normale Texteditor (SubEthaEdit, Textmate, vim, emacs, ...) und ein Terminalfenster - XCode würde ich da als den absoluten Overkill bezeichnen
 

appahappa

Ingrid Marie
Registriert
28.03.07
Beiträge
273
Die sehen irgendwie beschissen aus (Look and Feel passt nicht zum OS), bilde mir ein die sind laaaangsam und sollen wohl riesige unüberschaubare Bibliotheken haben (lt. diverser Foren). Korrigiere mich wenn ich daneben liege. :-D


Schöne Look&Feels sind schon wichtig, wobei "Feel" der wichtigere Teil ist. Ich finde nicht, dass das Java-LAF auf dem Mac vom nativen so sehr abweicht. Also Netbeans sieht meiner Meinung nach auf dem Mac gut aus und verhält sich ganz natürlich - fühlt sich nicht wie ein Fremdkörper an.


Allgemein gefragt, muss eine Anwendung wirklich haargenau wie das System Look&Feel aussehen um gut zu sein? Ich sag nein, solange das Programm gut aussieht und sich gut bediehnen lässt, ist es gut. Wenn ich mir Logic Pro, Aperture, Garageband anschaue, so sehen sie schon stellenweise ganz schön anders aus. Und Final Cut erst, da sieht fast gar nichts nativ aus, trotzdem alles tolle Programme.


Auf anderen Plattformen ist das genau so. Offise XP, Office 2003, Offize 2007 sehen alle anders aus, genau wie der MediaPlayer, der Messanger, Firefox, Opera - von iTunes und Winamp reden wir besser mal gar nicht. Und unter Linux gibt es noch mehr Durcheinander.
 

Anhänge

  • finalCut.jpg
    finalCut.jpg
    204,3 KB · Aufrufe: 215
  • NetBeansSchnappschuss001.png
    NetBeansSchnappschuss001.png
    221,9 KB · Aufrufe: 194
Zuletzt bearbeitet: