Programmiersprachen aktuell

Alex74

Registriertes Mitglied
Hallo allerseits,

ich spiele im Moment mit dem Gedanken, wieder mit dem Programmieren anzufangen.

Meine letzte Zeit als Programmierer ist allerdings nun 15 Jahre her. Damals habe ich 68k Assembler und Basic beherrscht.

Die Frage die ich habe ist hauptsächlich: welche Programmiersprache ist heute eigentlich empfehlenswert, wenn man (mit guten prinzipiellen Kenntnissen und Vorwissen aus dem Bereich) da wieder einsteigen will? Wichtig wäre mir daß die Sprache nicht zu schwierig, aber trotzdem leistungsfähig ist.

Ich hatte da zunächst eigentlich an Java gedacht, komme mir aber nach den ersten Seiten des Onlinekompendiums vor wie in Böhmischen Dörfern.
Das klassische [Befehl] [Quelle],[Ziel] scheint ja einigermaßen aus der Mode gekommen zu sein. Stattdessen wird da definiert was eine Methode ist, eine Klasse, etc., aber nicht wozu das eigentlich gut ist. Ich muß auch ehrlich sagen daß die aus C bekannte Schreibweise mit den ewig großen Klammern und { } mich schon immer sehr abgeschreckt hat. Von "objektorientierter Programmierung" habe ich schon gehört (das kam damals gerade auf als ich aufhörte), kann mir aber nicht viel darunter vorstellen. Früher hat man halt eher klassisch-seriell programmiert, dafür ist Java aber anscheinend gar nicht geeignet.
Ich habe bei Java jedenfalls den Eindruck daß mir mein gesamtes Programmiererwissen von früher gar nichts mehr bringt.

Sollte ich es also eher mit Java versuchen und in meinem Hirn den Resetknopf drücken und nochmal versuchen das Thema völlig neu anzugehen? Oder gibt es eine leistungsfähige Programmiersprache die mir da eher entgegenkäme?

Gruß Alex

(PS.: das ist zugegebenermaßen schon mein zweiter Anlauf, vor einigen Jahren wollte ich auch schonmal wieder damit anfangen, was sich aber damals wegen vorübergehenden Zeitmangels erübrigt hatte.)
 

Bynaus

Registriertes Mitglied
Es geht mir nicht unähnlich. Ich habe mir ein Buch zu Python gekauft und ein bisschen damit gearbeitet, allerdings weit weniger als ich es mir wünschen würde... Python scheint mir aber eine einfache, klare und gleichzeitig sehr umfrangreiche Sprache zu sein (vielleicht nicht besonders schnell...).
 

Alex74

Registriertes Mitglied
Habe mir mal den Wikipedia-Artikel dazu durchgelesen; das scheint für mich interessant zu sein, ich werde mir nach Feierabend mal die Infos auf der Entwicklerseite genauer ansehen.

Geschwindigkeit ist nicht so wichtig. Mir geht es hauptsächlich darum, daß mir noch seit damals 2-3 Ideen im Kopf herumgeistern die ich gern mal verwirklich hätte, was damals durch mangelnde Rechnergeschwindigkeit, mangelnden Arbeitsspeicher, mangelnde Netzwerkmöglichkeiten oder zu aufwändige Programmierung einfach nicht möglich war (was heute durch zahllose Bibliotheken einfacher sein sollte, Python scheint da ja auch gut ausgerüstet zu sein).
 

Bernhard

Registriertes Mitglied
Hallo Alex,

auf welchem Betriebssystem bist Du denn zu Hause? Je nachdem gibt es ganz unterschiedliche Werkzeuge und Programmiersprachen. Wenn Dich Python interessiert, würde ich eventuell auch einen Blick auf Perl werfen. Das ist ebenfalls eine recht übersichtliche und mächtige Skript-Sprache.
Gruß
 

Runzelrübe

Registriertes Mitglied
Da möchte ich euch gern den Tipp geben, auch einen Blick auf die gewünschte Entwicklungsumgebung zu werfen statt nur die Programmiersprache.

Wer ganz ohne Hilfe auskommt und mit einem funktionslosen Texteditor vollauf zufrieden ist, dem lege ich insbesondere Python (evtl. Java) als Herz. Die Datentypen in Python sind sehr schnell erlernt und verständlich, die Unterteilung der Programmblöcke durch Einrückung ist nur anfangs ein wenig gewöhnungsbedürftig.

Wo Python als interpretierte Sprache Änderungen auf dem Quellcode noch on-the-fly zulässt, ist bei Java schon ein kleiner Bytecode-Compiler dazwischengeschaltet. Mit Java kann man sich anfangs schwer tun, da eine Menge Handbücher so geschrieben wurden, als müsste man bis Seite 1xx erst einmal erklärt bekommen, wie die Installation abläuft, bevor man mit der Sprache selbst loslegen darf. Klammerungen und das ";" zum Programmzeilenende lassen hier auch schnell mal für Anfänger unleserliche Codeblöcke entstehen. Im Grundsatz gilt jedoch: wer Java lernt, lernt häufig auch objektorientiertes Programmieren.
Als Arbeitsumgebung wird gern Eclipse empfohlen. Auch wenn man sich am Anfang damit schwer tun sollte, die Finger von den ganzen Funktionalitäten zu lassen, sollte man sich auf die Kernfunktionalität konzentrieren. Für den Anfang reichen das mitgelieferte Highlighting, die Vorschlag- und Vervollständigungsautomatik und die Referenzensuche.

Ein Vorteil von Java und Python ist, dass sie betriebssystemunabhängig sind.

Wer die Grundlagen der Objektorientierung sehr schnell lernen will, kann sich auf die frei erhältlichen Visual Studio Developer Express Kits für .NET stürzen. Betrachten wir eingeschränkt nur VB.NET und C#.NET, dann erhält man hier zwei ineinander konvertierbare Programmiersprachen, die eine jeweils unterschiedliche Lesart unterstützen. Die Entwicklungsumgebung selbst beinhaltet, wie auch Eclipse, ein Highlighting, eine Vorschlag- und Vervollständigungsautomatik und eine Referenzensuche. Der Code wird kompiliert und ausgeführt, ist jedoch auf Windows beschränkt. Bei einem Marktanteil von knapp 95% innerhalb der webfähigen OS ist es jedoch recht unkompliziert, auf diesen Zug aufzuspringen und lange Zeit mitzufahren, da hier auch viel Onlinehilfe zu erwarten ist.

C++ ist zum Einstieg heutzutage nicht mehr geeignet, wäre letzten Endes dann aber die am freiesten konfigurier- und optimierbare Sprache.

http://www.gulp.de/kb/mk/chanpos/marktstudie_java_cplusplus_csharp.html

Java befindet sich seit 2008 auf dem absteigenden Ast, besitzt aber durch die Integration in Smartphones immernoch den höchsten Marktanteil. Erwähnenswert ist auch der Umstand, dass für Java und C#/VB .NET eine Community zur Verfügung steht, die Deutsch spricht, was bei anderen Programmiersprachen eher die Ausnahme ist.
 
Zuletzt bearbeitet:

Frankie

Registriertes Mitglied
Na, das JAVA auf dem absteigenden Ast ist, kann ich so gar nicht bestätigen... es kommt halt drauf an wofür man es einsetzt.

Überhaupt hat hier noch niemand erwähnt, daß man bei der Auswahl der Programmiersprache darauf achten sollte, was das Ziel der Programmierung ist.

Daher also die Frage: was willst Du denn eigentlich programmieren?
 

Alex74

Registriertes Mitglied
Danke erstmal für die vielen Tipps :)

Wie ich auf Java kam: ich habe den Eindruck daß es umso populärer denn je ist; zum einen wegen der Smartphones, zum anderen scheint es auch recht schnell zu sein (z.B. läuft das Indie-Spiel Minecraft komplett auf Java).

Was ich will:
-Ein auf Spielrunden basierendes Strategiespiel umsetzen, mt begrenzten Onlinefähigkeiten (z.B. als E-Mail-Spiel) (wofür Geschwindigkeit nicht gebraucht wird)
-wieder ein Werkzeug zur Hand haben mit dem ich mir selbst kleine Applikationen schreiben kann die man hin und wieder braucht
-Kleinere Simulationen wie die hier schon besprochenen mal angehen; mein eigenes Evolutions-Simulationsprogramm das ich damals schrieb würde ich auch gern mal weiterentwickeln; hierfür wäre eine schnelle Sprache natürlich schon vorteilhaft.

Gruß Alex
 

mac

Registriertes Mitglied
Hallo Alex,

EDIT: Diese Antwort habe ich nach dem dritten Post hier angefangen /EDIT

wenn Du bei Basic bleiben willst, dann kannst Du es mit GFA-Basic versuchen.

Python scheint zumindest an der TU-Dortmund weit verbreitet zu sein, wie ich von meinen Söhnen weiß und es schein eine sehr große aktive ‚Gemeinde‘ zu geben, die die Zahl der Routinen schneller vermehrt, als man ihre Titel lesen kann.


Objektorientierte Programmierung habe ich, wie leider auch alle anderen Programmierkonzepte niemals systematisch beigebracht bekommen, einfach weil es zu den Zeiten als ich’s gelernt habe, weder didaktische Konzepte noch Lehrer dafür gab. Was ich Dir also dazu schreibe ist sicher keine erschöpfende Auskunft, ja vielleicht sogar noch nicht mal bis zu Kern vorgedrungen. Das macht aber erst mal nix, denn des ist die Hürde über die man zumindest drüber muß, wenn man z.B. selber eine Datenbank erstellen möchte, die nicht nur Daten sammelt sondern damit auch was tut.

Der kardinale Unterschied der mir (bei einem etwas umfangreicheren Access-Projekt) am deutlichsten aufgefallen ist, ist gar kein kardinaler Unterschied z.B. zu GFA-Basic. Man kann das auch damit programmieren, nur ist es damit extrem viel umständlicher (wenn man die entsprechenden Erweiterungen von GFA nicht verwendet).

Diese Programme stellen einem eine Oberfläche und eine Werkzeugkiste zur Verfügung, mit der man die ganzen Möglichkeiten, die die Windows-Oberläche bietet, nicht mehr zu Fuß selber programmieren muß.

Beispiel:
In Basic mußt Du die Position der Maus auf dem Bildschirm auslesen und die Koordinaten in zwei Variablen ablegen. Dann mußt Du alle ‚Fenster‘, die Du vorher auf den Bildschirm hast zeichnen lassen nacheinander abfragen, also die zwei Koordinatenpaare, die ein nicht schief liegendes rechteckiges Fenster definieren darauf prüfen, ob die Mauskoordinaten innerhalb sind und wenn’s auf mehrere zutrifft zusätzlich unterscheiden welches davon ‚oben‘ ist.

In Access z.B. nimmt Dir die Oberfläche diesen langweiligen Verwaltungsaufwand ab. Du kannst sozusagen gleich den Fenstern die Lieder zuordnen die sie singen sollen wenn die Maus vorbeikommt oder sie kitzelt oder sie zwickt. Du kannst also festlegen was 'Maus im Fenster', linke/rechte Maustaste wird (im Fenster) gedrückt, wird im Fenster gedrückt gehalten, wird im Fenster losgelassen, auslösen soll. All‘ diese ‚Eigenschaften‘ (also daß es z.B. unterscheiden kann was Du mit der Maus machst) mußt Du nun auch nicht für jedes Fenster einzeln programmieren, sondern jedes Fenster hat sie schon, wenn Du es erzeugst. Abgefragt werden sie unter VB mit dem Befehl ON. On mouse … (Den gab’s aber auch schon 1979 in Basic. Z.B. das Basic-Betriebssystem der HP9845 Rechner konnte das)

Das gilt nun nicht nur für die Maus, sondern auch für z.B. Zahlen/Text die Du in das Fenster schreiben willst. Welche Farbe, welche Schriftart, welche Zeichengröße und, und, und soll er haben.

Wenn Dir während Deines Entwurfs die Idee kommt, daß das Fenster für die Namenseingabe des Patienten doch besser 2 cm weiter links liegen und das Geburtsdatum lieber als erstes zu sehen sein sollte, dann brauchst Du die Fenster nur auf die entsprechende Position zu schieben und muß nicht mehr in Deinen tausenden von diesen Fensterdaten die richtige Stelle finden, wo Du den Koordinatenursprung des Fensters verändern kannst, damit es auch tatsächlich beim Öffnen dort auftaucht, wo Du’s haben willst. Die Programmieroberfläche erledigt das für Dich. Du kannst das aber auch in die Eigenschaften Liste dieses Fensters direkt schreiben.

Für jedes dieser Fenster kannst Du neben den Eigenschaften die sie alle, jedes für sich, haben, nun eigene Routinen schreiben, die noch am ehesten dem entsprechen, was wir von früher her unter Programmieren verstehen. Jedes Fenster hat seine eigenen lokalen Variablen, man kann aber auch auf die Variablen anderer Fenster zugreifen. Also z.B. direkt nach der Eingabe des Geburtsdatums kannst Du in dem lokalen Unterprogramm ausrechnen, wie alt der Patient ist und das Ergebnis ins Nachbarfenster schreiben, auch wenn das zur Zeit gar nicht den Fokus hat, sich also ‚von selber‘ gar nicht angesprochen fühlen würde, durch Deine Eingabe des Datums.

Die ganze Oberfläche die Du hergestellt hast, indem Du Fenster für Fenster erstellst und es auf dem Bildschirm platziert u. ihnen Programme und Progrämmchen zugeordnet hast, wie sie sich bei den Eingaben des späteren Benutzers verhalten sollen, arbeiten nun nicht mehr ein Programm in Top-Down-Architektur ab, sondern ‚warten‘ darauf daß jemand ihnen sagt: Eh‘ Du! Du bist jetzt gemeint. Z.B. dadurch daß man es mit der Maus anklickt, oder mit der Tabulatortaste der (festlegbaren) Reihe nach bei ihm ankommt. Dieses Fenster nimmt dann z.B. die Tastaturanschläge an, speichert sie in seiner, extra dafür angelegten Variablen ab, deren einzige Aufgabe es ist den Text für dieses Fenster bereitzuhalten, damit das Fenster ihn Dir zeigen kann (wenn Du es ihm beim Programmieren erlaubt hast) und arbeitet auch Dein Programm/Progrämmchen ab, das Du dafür programmiert hattest.

Ein deutlicherer Unterschied zum althergebrachten ist nun, daß die Oberfläche nicht tot ist, bis das angesprochene Fenster-Programm mit Abarbeiten fertig ist, sondern mit oberster Priorität weiterhin seine Aufgaben erfüllt – also darauf zu achten, was Du z.B. inzwischen mit der Maus machst. Die Reihenfolge mehrerer Aufträge kannst Du ebenso über Prioritäten festlegen, die darüber entscheiden wer bei Konflikt zuerst abarbeiten darf.



Wenn Du also etwas in der Art einer Eingabemaske wie bei einem Datenbankprogramm, einem Browser, einem Shooter, herstellen willst, bei dem Du mit dem Programm sehr viel kommunizieren willst, dann würde ich eine solche Oberfläche wie bei Access z.B. vorziehen. Wenn Du aber eine Formel/einen ganzen Formelkomplex immer wieder abarbeiten willst, dann würde ich das eher in Basic/C/Python ... programmieren.

Am Ende hängt diese Entscheidung sicher auch davon ab in welcher Umgebung Du Dich souveräner bewegen kannst. Am Schlimmsten finde ich immer, wenn ich (ohne Übertreibung) stundenlang nach einer Funktion suchen muß, von der ich zwar weiß was sie machen soll und daß sie existieren muß, aber ich sie ums Verrecken nicht finde, weil ich keine Ahnung habe, wie sie ausgerechnet in dieser Sprache heißt.

Herzliche Grüße

MAC
 
Zuletzt bearbeitet:

Ich

Registriertes Mitglied
Ich würde dir auch Visual Basic oder C# auf .net empfehlen, aus folgenden Gründen:

1. Kostenlos
2. Ganz gute Hilfe und Beispielprogramme
3. Trainingsprogramme für Anfänger (bist du ja, was Objektorientierung angeht), z.B. Telerik (hat mein Sohn ausprobiert)
4. Viele Foren
5. Es funktioniert! Das heißt, du öffnest ein neues Projekt, drückst auf "Compilieren" (oder so), und es erscheint z.B. ein Fenster, keine kryptische Fehlermeldung! Das ist für mich der wichtigste Punkt, insbesondere im Vergleich mit manchen Open-Source-Geschichten.

Bei Basic hast du wenigstens noch ungefähr die bekannte Syntax; um Klassen, Methoden etc. kommst du heutzutage nicht mehr herum, aber ich denke, da gibt's genug Beispielmaterial.
 

pmvstrm

Registriertes Mitglied
Hallo,

Du hast ja schon anklingen lassen, dass Smartphones für Dich interessant sind und in diesem Bereich gibt es
derzeit nur zwei Unternehmen die den Markt unter sich aufgeteilt haben und das wären Apple und Google.
Apple ist etwas länger präsent als Google und hat längere Zeit die absolute Dominanz inne gehabt.Microsoft
versucht ebenfalls seit vielen Jahren und mit erheblichen Aufwand in diesem Bereich Fuß zu fassen, spielte
und spielt aber weiterhin keine nennenswerte Rolle und verliert sogar derzeit noch Anteile. Das aktuelle
Windows Phone 7 steht irgendwo zwischen 2-3% Marktanteil im Mobilebereich. Nokias Symbian Betriebssystem
hat viele Jahre eine erhebliche Dominanz auf dem Handy und Smartphonebereich ausgeübt, ist jedoch
wegen Management Fehlentscheidungen ins Abseits geraden, ebenso wie Blackberry.
Unterm Strick bleiben derzeit also nur Google mit seinem OpenSource Betriebssystem Android und Apple
mit iOS übrig und wenn man kann, sollte man beide Platformen bedienen.

Apple iOS / ObjectiveC
Um für iPhone und iPad zu entwickeln, benötigt man Apples hauseigene Entwicklungsumgebung XCode.
Diese gibt es allerdings nur für den Mac-Rechner (mindest. Mac OS X 10.5 Lepard, 10.6 Snow Leopard
oder Lion 10.7).Die Programme auf dem Mac sowie auf dem iPhone und iPard werden mit ObjectiveC
programmiert (ein Applespezifisches, objektorientiertes C - kein C++). Darüber hinaus verlangt Apple eine
Registrierung damit Du XCode von der Apple Website oder den App Mac Store herunter laden kannst.
Während der Registrierung (um das aktuelle XCode 4.2 zu erhalten) muss man auch eine Zahlungsart
angeben (Kreditkarte oder PayPal Konto) auch wenn der eigentliche Download dann kostenlos ist.
XCode3 und/oder XCode4 (für das neueste Mac OS X) ist ein ca. 4 GByte großes Mac DMG File.
Um XCode3 zu bekommen, muss man nicht wie bei XCode4 Zahlungsinfos angeben, aber man muss
sich (wie bei allen XCode Versionen) eine Apple ID anlegen und sich zumindest für die kostenlose
Mac Developer Mitgliedschaft entscheiden. Will man seine Appz später an iPhones, iPads, iPods
verteilen, muss man eine Jahresgebühr von 99$ entrichten. Darüber verlangt Apple eine Beteiligung
am Umsatz, übernimmt dafür aber das gesammte Marketing der App via Appstore und die Abrechnung.

Weitere Infos:Mac DevCenter
http://developer.apple.com/devcenter/ios/index.action

Google Android / Java
Bei Google ist das ganze etwas einfacher.Google hat eine eigene, virtuelle Maschine namens DalvikVM entwickelt,
auf der die Appz auf Android Systemen laufen (Android ist ein auf Linuxbasierendes Mobile Betriebssystem) Derzeit
unterstützt die DalvikVM hauptsächlich Java aber genau wie Microsoft .NET kann es potentiell auch völlig andere
Programmiersprachen als Eingabesprachen nutzen.Die Entwicklungswerkzeuge (Android SDK) sind kostenlos und
man benötigt eigentlich nichts weiter um schon damit ein Hello World Android Programm zu bauen. Allerdings
ist es alleine mit dem Android SDK etwas umständlich und daher empfehle ich Dir die freihe Eclipse Entwicklungs-
umgebung, die ausser Android auch noch viele andere Programmiersprachen unterstützt (die meisten Android
Appz werden hauptsächlich mit Eclipse realisiert, weil es einen guten Codeeditor, Debugger und Hilfreiche
Extras beinhaltet und alles etwas einfacher macht.Aber Vorsicht: Eclipse ist eigentlich mehr ein Baukasten
denn eine ready to run Programmierumgebung, deshalb gibt es im Eclipsebereich auch sogenannte "Distributionen".
Google unterstützt derzeit die Eclipse Distributionen Helios und Indigo (jeweils für Windows, Mac und Linux).
Das besondere an Eclipse ist, dass man die gesamte Eclipse Arbeitsumgebung anhand von zahlreichen PlugIns
erheblich erweitern kann und da dies so ist, bietet Google für sein Android SDK auch die passenden PlugIns
für Eclipse an um damit komfortabel Android Appz zu entwickeln. Falls Du Dich also für Android oder einfach
nur für unverselle Programmierung mit Eclipse interessierst (man kann damit auch C++, Python, C#, SQL nebst
Java entwickeln - passende PlugIns vorausgesetzt).

Hier ein Video von Google zur Android Entwicklung:
[video]http://developer.android.com/videos/index.html#v=Oq05KqjXTvs[/video]

Weitere Infos:
http://developer.android.com/guide/basics/what-is-android.html

ps: Natürlich kann man mit Eclipse auch ganz normale Desktop oder Server Java Programme in 32 oder
64-Bit schreiben.

Grüße, Peter
 
Zuletzt bearbeitet:

Alex74

Registriertes Mitglied
Nochmal Danke an Mac, Ich und pmvstrm, ich gehe mal einzeln drauf ein;

wenn Du bei Basic bleiben willst, dann kannst Du es mit GFA-Basic versuchen.
LOL, das gibts noch?!
Genau das habe ich früher benutzt; war einfach und trotzdem sehr leistungsstark.
Bei welcher Version sind die denn jetzt? 2 Millionen? :D
Ich frage mich wie aber in einem Basic z.B. die Ansteuerung von Polygonroutinen der Grafikkarte erfolgen soll; da das ja per OS gemacht wird sollte ein richtiges Basic ja eigene Befehle dafür bereithalten oder? Also z.B.:
Polygon [x1,y1], [xn, yn], [textur$], schattenwurf%, gouraud-shading, ...
Kann ich mir irgendwie schlecht vorstellen wie ein Basic damit heute umgeht.

Objektorientierte Programmierung habe ich, wie leider auch alle anderen Programmierkonzepte niemals systematisch beigebracht bekommen, einfach weil es zu den Zeiten als ich’s gelernt habe, weder didaktische Konzepte noch Lehrer dafür gab.
Es tröstet mich aber, daß ich tatsächlich nicht der einzige bin dem das etwas fremd ist.

In Basic mußt Du die Position der Maus auf dem Bildschirm auslesen und die Koordinaten in zwei Variablen ablegen. Dann mußt Du alle ‚Fenster‘, die Du vorher auf den Bildschirm hast zeichnen lassen nacheinander abfragen, also die zwei Koordinatenpaare, die ein nicht schief liegendes rechteckiges Fenster definieren darauf prüfen, ob die Mauskoordinaten innerhalb sind und wenn’s auf mehrere zutrifft zusätzlich unterscheiden welches davon ‚oben‘ ist.
Das mußte man auf dem Atari ST aber schon nicht mehr, da gabs Betriebssystemroutinen die einem genau das abgenommen hatten. Man fragte nur noch den Status von diversen Systemvariablen ab und wußte dann: aha, Event_Mausklick_links oder Event_Windows_minimize hat eben stattgefunden.

Ironischerweise war das aber in Assembler einfacher als in Basic, weil solche Systemroutinenaufrufe recht kryptisch gehalten waren, während man beim direkten Aufruf per Maschinencode einfach nur die Nummer der Systemroutine wissen mußte und welche Variablen auf den Stack kamen. Und das hatte man eh alles in ner Bibliothek^^.

Am Ende hängt diese Entscheidung sicher auch davon ab in welcher Umgebung Du Dich souveräner bewegen kannst. Am Schlimmsten finde ich immer, wenn ich (ohne Übertreibung) stundenlang nach einer Funktion suchen muß, von der ich zwar weiß was sie machen soll und daß sie existieren muß, aber ich sie ums Verrecken nicht finde, weil ich keine Ahnung habe, wie sie ausgerechnet in dieser Sprache heißt.
Ja, das glaube ich auch; wobei ich früher meist eh das dicke Buch nebendran liegen hatte, ob für Assembler (um zu sehen wieviel Taktzyklen der Befehl braucht ...oder halt die Systemroutinen) oder Basic (für die krypischen Systemaufrufe).
Aber ich dachte daß genau das heute mit Multitasking und Suchfunktionen schneller gehen sollte^^.

So, zu Ich;
5. Es funktioniert! Das heißt, du öffnest ein neues Projekt, drückst auf "Compilieren" (oder so), und es erscheint z.B. ein Fenster, keine kryptische Fehlermeldung! Das ist für mich der wichtigste Punkt, insbesondere im Vergleich mit manchen Open-Source-Geschichten.
Ja, da sprichst Du mir aus der Seele. Ich hasse Befehlssyntax die nicht nachvollziehbar ist.
Habe mir neulich erst ein älteres Laptop mit ner Linuxdistribution eingerichtet, findet den WLan-Adapter aber nicht. Dann fragt man Linux-Kenner und deren Problemlösung sieht dann jedesmal so aus daß man irgendsowas wie "hwinf --usb", das andere mal "shwcsblobs +-*---; ARGH" eingeben muß und so weiter. Ohne Kommandozeilendreck geht da ja gar nix. Ähnlich halt bei Compilern - ich meine, das haben schon die Compiler auf dem alten Atari gekonnt: echte sinnvolle Fehlermeldungen ausgeben. Ich verstehe bis heute nicht wieso so viele Freaks auf dem PC bis heute an ihrem kryptischen Zahlenwust hängen.

um Klassen, Methoden etc. kommst du heutzutage nicht mehr herum
Wollen wir wetten? :D ;)
Naja, ich überlege ja noch was ich nun wie mache.

nun pmvstrm;
Du hast ja schon anklingen lassen, dass Smartphones für Dich interessant sind und in diesem Bereich gibt es
derzeit nur zwei Unternehmen die den Markt unter sich aufgeteilt haben und das wären Apple und Google.
Ja, das könnte nett sein wobei es nicht mein Hauptaugenmerk ist.
Ich kenne mich bei Handys und Smartphones übrigens sehr gut aus da ich die Geräte unseres Landesverbandes verwalte, dort die VPN-Verbindungen einrichte und so weiter. Wir sind übrigens (noch!) auf WinMobile 6 angewiesen und eigentlich mag ich dieses System - weil einzig hier wirklich vernünftige Anwendungen machbar sind. Bei Smartphones die sich nur noch per Finger bedienen lassen (die Stifte die es hierfür gibt taugen alle nix) ist es unmöglich, kleine Checkboxen anzuhaken...bzw. zu treffen...
Schon das WinMobile auf den HTCs ist sowas von kacke, diese Betriebssysteme sind nur noch für Anwender gemacht, aber wehe man muß was konfigurieren. Das war bei älteren Systemen viel einfacher.
Naja, nun kriegen wir demnächst auch Android...

So, ich lese jetzt erstmal ein bißchen in den Links die Ihr mir gegeben habt. Danke nochmal, ich melde mich dann :D
 

pmvstrm

Registriertes Mitglied
Eclipse Einstieg:
Hier ein einfach gehaltenes Tutorial in Deutsch (für Java mit Eclipse)
http://seal.ifi.uzh.ch/fileadmin/Us...ormatik_I/WS04_05/Uebung/Eclipse-Tutorial.pdf

Folgende Downloads brauchst Du:
Da Eclipse selbst zum größten Teil auf Java basiert benötigst Du ein aktuelles Java JDK (kein JRE).
Das JRE ist kleiner und beinhaltet lediglich die Laufzeitkomponenten aber nicht die notwendigen Dinge für das Programmieren
in Java. Das JRE ist nur für den Anwender deines Programms wichtig (kommt also in die Setup Exe für dein fertiges Produkt):)

Das benötigte Java JDK bekommst Du hier:
JDK6 Download


Eclipse für Windows XP/Vista/Win7

Noch etwas über OOP:
Objektorientierung ist eigentlich mal als eine Vereinfachung gedacht gewesen (der Maschine ist es recht egal ob der Assemblercode nun aus
einer funktionalen oder OOP Sprache herrührt). Der Grundgedanke bei OOP ist vor allem die Kappsellung) Nimm z.B das Beispiel einer
Funktion (in der OOP Welt heißen Funktionen übrigens Methoden). Eine Funktion hat ja irgend eine Thematische Zuordnung z.B
die Mwst berechnen. Da macht es doch Sinn Funktionen/Methoden in einer Klasse/Bereich zu kappseln wo es nur um die Mwst
Steuersatzberechnung geht.

ps: Das mit der Klammerung (curly Brackets {...} ) fand ich am Anfang übrigens auch total abtörnend wenn ich ehrlich
bin und habe dann lieber erstmal Pascal ausprobiert. Aber im Grunde genommen sind die Klammern ja nichts anders als BEGIN {
und END } Moderne Programmierwerkzeuge wie Eclipse zeigen Dir aber genau wo eine Klammer fehlt, das ist fast wie
programmieren auf Schienen:) Aber noch schlimmer als dass, finde ich da eher Pyhton. Es hat zwar keine Klammern oder Begin
und End Konstrukt, dafür musst Du deinen Text aber richtig einrücken und ansonsten teilt Dir pyhton das ein Fehler vorliegt;)
Abraten kann ich Dir für mittel bis langfristige Programmierung allerdings wirklich von Perl. Wenn es um einen Einzeiler geht
oder Du große Textdateien parsen willst oder in der Unix/Linux Systemadministration zu Hause bist, dann ist Perl5 oder höher
eine tolle Sache, nur wenn Du viel Code hast wirst Du wahnsinnig und Du blickst selbst nicht mehr durch was Du da eigentlich
gemacht hast.:D



Grüße, Peter
 

pmvstrm

Registriertes Mitglied
Erinnerungen...

Nochmal Danke an Mac, Ich und pmvstrm, ich gehe mal einzeln drauf ein;
Ironischerweise war das aber in Assembler einfacher als in Basic, weil solche Systemroutinenaufrufe recht kryptisch gehalten waren, während man beim direkten Aufruf per Maschinencode einfach nur die Nummer der Systemroutine wissen mußte und welche Variablen auf den Stack kamen. Und das hatte man eh alles in ner Bibliothek^^.

Ich weiß nicht ob Du mal von der Programmiersprache RPG gehört hast, aber da war das noch viel schlimmer.
Die Assembler Statements waren wesentlich simple und einfacher als die in Basic gehaltene, IBM Mainframe
Programmiersprache RPG. Es ist nicht zu fassen, aber es gibt heute noch jede Menge Systeme auf denen Millionen
Zeilen RPG und COBOL Code läuft und die aktiv gewartet und weiter entwickelt werden. Da kommt Freude auf:D


So, zu Ich;
Ja, da sprichst Du mir aus der Seele. Ich hasse Befehlssyntax die nicht nachvollziehbar ist.
Habe mir neulich erst ein älteres Laptop mit ner Linuxdistribution eingerichtet, findet den WLan-Adapter aber nicht. Dann fragt man Linux-Kenner und deren Problemlösung sieht dann jedesmal so aus daß man irgendsowas wie "hwinf --usb", das andere mal "shwcsblobs +-*---; ARGH" eingeben muß und so weiter. Ohne Kommandozeilendreck geht da ja gar nix. Ähnlich halt bei Compilern - ich meine, das haben schon die Compiler auf dem alten Atari gekonnt: echte sinnvolle Fehlermeldungen ausgeben. Ich verstehe bis heute nicht wieso so viele Freaks auf dem PC bis heute an ihrem kryptischen Zahlenwust hängen.

Zum Teil kann ich Dir da recht geben, aber das liegt eher an so Firmen wie Microsoft. Ich arbeite nun schon seit den 80er Jahren mit deren Zeugs und wenn ich mir anschaue wie mangelhaft manche Dinge im Betriebssystem und in den Compilern umgesetzt wurden, dann schaudert es mich
auch heute noch regelmäßig.

Ein wirklich guter, zuverlässiger Compiler ist der GNU GCC (für Windows gibt es den auch MinGW) und ist wirklich ein sehr brauchbarer
Compiler + Linker. Er unterstützt eine Vielzahl Hardware Architekturen und Betriebssysteme sogar noch 68K wenn Du es drauf anlegst:)

Bernhard und ich verwenden ihn für unser My3D Star Chart Projekt sogar als Hauptcompiler und obwohl ich auch den MS
Visual C/C++ Compiler mag, bietet der GNU C++ Compiler immer noch einen Tick mehr. Unser Projekt basiert auf dem GCC und
dem QT Framework mit dem auch KDE und unzählige Linux Programme gemacht realisiert wurden.Als Programmier Workbench
nutzen wir den QTCreator von Nokia, der den GCC für Windows samt QT gleich mitbringt und in dem man binnen Sek sein erstes
Programm erstellen kann (wenn Dich das interessiert, schau mal in unseren My3D Star Chart Thread hier im Forum, da gibts
auch ein paar Video Tuts falls Du Dich mehr zu C/C++ oder x86 Assembler hingezogen fühlst:)

Hier ein Beispiel wie man in QTCreator einfach x86 Assemblercode in das C Programm einbetten kann
Code:
#include <QtCore/QCoreApplication>
#include <stdio.h>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    int foo = 10, bar = 15;
    __asm__ __volatile__("addl  %%ebx,%%eax"
                         :"=a"(foo)
                         :"a"(foo), "b"(bar)
                         );
    printf("foo+bar=%d\n", foo);

    return a.exec();
}

Natürlich ist x86 Assembler nicht so toll wie der 68k auf dem Atari oder Amiga, aber damit kann man auch
nette Dinge anstellen!Das ganze wird dann in eine Exe oder DLL kompiliert und fertig ist das Programm. Heute
geht zwar keiner mehr her und schreibt komplette Programme in Assembler, Rechenintensive Optimierungen
und/oder Gerätetreiber werden aber wie seit je her auch heute noch damit realisiert (z.B virtuelle Laufwerks-
Treiber oder ein USB-Treiber für ein eigens gebasteltes Gerät (z.B Teleslkopfernsteuerung vom Laptop, vom
Smartphone oder über das Internet - nur mal so als Idee).


Falls Dich QTCreator, der GCC Compiler und QT interessiert,kannst Du ihn hier downloaden
Download


Gruß, Peter
 
Zuletzt bearbeitet:

StarWolf

Registriertes Mitglied
Bezüglich objektorientiertes Programmieren:

Es tröstet mich aber, daß ich tatsächlich nicht der einzige bin dem das etwas fremd ist.

Da bist du echt nicht der Einzige, ich hab auch mal mit Basic (C64 :D) angefangen, bin dann aber zu dBase/Clipper und zu C gekommen, war halt alles vor der Zeit der graphischen OS, aber C geht auch heute plattformübergreifend.

Nostalgische Grüße - Wolfi
 

FrankSpecht

Registriertes Mitglied
Moin,
Erinnerungen...
Ich weiß nicht ob Du mal von der Programmiersprache RPG gehört hast, aber da war das noch viel schlimmer.
Yepp, genauso bei Forth, Lisp, Prolog und APL ;)
Und werden Modula oder Fortran heute noch ernsthaft benutzt?
Wer diese Programmiersprachen miterlebt und/oder gelernt hat, hat einen nicht unerheblichen Vorsprung in der IT-Welt.
Man weiß nämlich noch, wie man optimal programmiert :)

Ein wirklich guter, zuverlässiger Compiler ist der GNU GCC (für Windows gibt es den auch MinGW) und ist wirklich ein sehr brauchbarer
Compiler + Linker. Er unterstützt eine Vielzahl Hardware Architekturen und Betriebssysteme sogar noch 68K wenn Du es drauf anlegst
Kann ich nur unterstreichen!

__asm__ __volatile__("addl %%ebx,%%eax"
:"=a"(foo)
:"a"(foo), "b"(bar)
);[/CODE]

Ich glaube, das ist so ziemlich das abschreckenste Beispiel für eine Programmiersprache.
Aber :cool:, solche Konstrukte gibt es heute eben!

Ich bin für jegliches C++-Paket, Objekt-orientiert halt ;)
 

pauli

Registriertes Mitglied
hm, habe nicht erkannt, welches Ziel genau dabei verfolgt wird? Falls es aber mehrheitlich web-Programmierung sein sollte, dann würde ich Java und/oder PHP empfehlen, Entwicklungsumgebung Eclipse mit Versionierung, debugging usw. Der Nachteil bei web-Programmierung ist, man muss sich zusätzlich massiv mit Rotz wie Servern, xml, html, css beschäftigen.

Für PHP, damit habe ich gute Erfahrungen gemacht:
apache-Server
Zend-pdt (unter Eclipse) oder NetBeans
 

pmvstrm

Registriertes Mitglied
Moin,
Ich glaube, das ist so ziemlich das abschreckenste Beispiel für eine Programmiersprache.
Aber :cool:, solche Konstrukte gibt es heute eben!
Ich bin für jegliches C++-Paket, Objekt-orientiert halt ;)

Du hast doch jetzt nicht wirklich gedacht dass ich für Assemblerprogrammierung Werbung machen
wollte oder??;)

Dieser asm Schnippsel war eigentlich nur für Alex. Es sollte zeigen, dass wenn man es drauf
anlegt dem guten GNU C/C++ sogar plain Assembler zu fressen geben kann und er schluckt es.
Natürlich baut man sein Programm hauptsächlich mit C/C++ aber wenn Du einen Assemblerbackground
hast, dann interessiert Dich vielleicht wie Du das in einem Standard C/C++ Programm einbauen kannst
um z.B bestimmte Programmstellen etwas zu beschleunigen (denn nichts ist dichter dran am Silicon als
Assembler):D

Gruß Peter
 

pmvstrm

Registriertes Mitglied
hm, habe nicht erkannt, welches Ziel genau dabei verfolgt wird? Falls es aber mehrheitlich web-Programmierung sein sollte, dann würde ich Java und/oder PHP empfehlen, Entwicklungsumgebung Eclipse mit Versionierung, debugging usw. Der Nachteil bei web-Programmierung ist, man muss sich zusätzlich massiv mit Rotz wie Servern, xml, html, css beschäftigen.

Du sagst es.Am Anfang wollten diese Heilsverkünder einem immer etwas möglichst einfaches verkaufen. Nicht zuletzt um den
Anfängern und Screendesignern ebenfalls einen einfachen Einstieg zu ermöglichen. Gute Idee, jedoch kamen die falschen Lösungen.
SOAP war so ein Thema. Simple Object Access Protocol. Daran ist heute so ziemlich nichts mehr simple und spezialisierte Experten
mit SOA-Architektur Kenntnissen sind extrem selten und auch noch teuer. Ausserdem untergräbt es so ziemlich jede Sicherheits
Architektur, die sich ein Admin mal für seine Firma überlegt hat, weil alles über Port 80 und HTTPS hinaus gejagt wird (auch
Binärdateien) von dem Rechenaufwand der massenhaftes XML parsen mit sich bringt ganz zu schweigen.

Für PHP, damit habe ich gute Erfahrungen gemacht

Die Entwicklungstools sind schon ok, aber PHP ist so ziemlich einer der schlimmsten Ungetüme (nebst Javascript)
die in der heutigen Zeit das Web verpesten. Die meisten Websites sehen vom Codingstandard aus wie Spaghetticode und
erinnern eher an Frankensteins Monster anstatt an eine WebApplication. Was ich echt schlimm finde ist dieses ganze HTML5
als Unversallösung. Die Sprache mit der man HTML5 WebApplikationen schreiben soll, ist JavaScript, alle anderen Sachen wie
CSS und HTML sind nur Markup und besitzen keine Intelligenz. Dagegen versuche ich mich zu wehren wo es nur geht.

Gruß, Peter
 
Zuletzt bearbeitet:

PlanetHunter

Registriertes Mitglied
So, als Informatiker muss ich dann auch noch meinen Senf dazugeben :)

15 Jahre und Assembler?? Das hört sich für mich eher wie vor 25 Jahren an. Vor 15 Jahren gabs schon Java!

Also für deine Belange empfehle ich dir die .NET-Umgebung mit C# (Visual Basic hat zuviele Altlasten und Eigenheiten, die nur im Weg sind). Visual Studio erlaubt es dir zudem, graphisch gut voranzukommen.
.NET ist eigentlich nur eine Weiterentwicklung von Java, das mit den Jahren auch schon merkliche Altlasten vor sich her schiebt (generische Klassen, die keine sind z.B.). Mit C# wird die Plattformunabhängigkeit allerdings schwer zu erreichen. Es läuft eigentlich nur auf Windows, die Linux-Portierung (Mono) kann man fast vergessen (Bibliothek ist auf dem Stand von Version 1.3 oder so, aktuell ist 4). Aber ich glaube, dass ist für deine Abforderungen keine Hürde.

Wenn du Datenbanken verwenden willst (und es scheint mir so, dass du das musst), dann lass die Finger weg von MS Access. Nimm SQLite, wenn du eine Standalone-DB willst oder MySQL, wenn du eine Server-Anbindung brauchst. Sind beide einfach ins Programm einzubinden und SQL sollte sich über die Jahre nicht viel geändert haben ;-)

Python ist gut zum mal-eben-programmieren, aber nichts für größere Projekte, C++ zu schwer, um irgendwie reinzukommen.

Ich hoffe, ich konnte dir helfen!
 

Alex74

Registriertes Mitglied
15 Jahre und Assembler?? Das hört sich für mich eher wie vor 25 Jahren an. Vor 15 Jahren gabs schon Java!
Das ist doch völlig wurscht ob es vor 15 Jahren schon Java gab wenn ich aber bis dahin Assembler programmiert habe.
Da dies auf dem 68000, 68030 und 68060 war (auf dessen Plattformen ST und Falcon es bis dahin auch keine Java-Entwicklungsumgebung gab) bin ich damit nie in Berührung gekommen.

Wenn du Datenbanken verwenden willst (und es scheint mir so, dass du das musst)
Das ist eine gute Frage. Müssen muß glaube ich nicht (denn frühere Brettspielumsetzungen kamen ja auch ohne aus), es ist wohl eher eine Frage inwiefern es zumindest das Brettspielprojekt oder die Simulation erleichtern würde.
Aus meiner Gewohnheit heraus wäre ich so vorgegangen, daß ich für das Spiel einen extra Editor programmiert hätte, mit dem sich Spielfeld und Einheiten editieren lassen und das dann in eine Szenario-Datei ablegt, die quasi ein Spielstand ist.
Ähnlich mit der Evolutions-Simulation; die, die ich bislang programmiert hatte, hatte eine ebene Fläche als Grundlage. Eine Erweiterung könnte nun darauf abzielen hier ebenfalls eine Spielfläche mit unterschiedlichen regionalen Eigenschaften und Trennlinien (Gebirge, Meere, Klimazonen) einzuführen, wozu ebenfalls ein Editor notwendig wäre.

Würde man sowas heute eher über Datenbanken lösen?
Ich hätte da einfach ein mehrdimensionales Feld im Programm definiert.

Gruß Alex
 
Oben