PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Programmiersprachen aktuell



Alex74
29.11.2011, 13:16
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
29.11.2011, 13:43
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
29.11.2011, 14:12
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
29.11.2011, 14:36
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
29.11.2011, 14:56
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.

Frankie
29.11.2011, 15:08
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
29.11.2011, 15:24
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
29.11.2011, 16:02
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

Ich
29.11.2011, 16:17
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
29.11.2011, 16:48
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:

http://developer.android.com/videos/index.html#v=Oq05KqjXTvs

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

Alex74
29.11.2011, 18:53
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
29.11.2011, 19:26
Eclipse Einstieg:
Hier ein einfach gehaltenes Tutorial in Deutsch (für Java mit Eclipse)
http://seal.ifi.uzh.ch/fileadmin/User_Filemount/Vorlesungs_Folien/Informatik_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 (http://download.oracle.com/otn-pub/java/jdk/6u29-b11/jdk-6u29-windows-i586.exe)

Eclipse für Windows XP/Vista/Win7 (http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/indigo/R/eclipse-jee-indigo-win32.zip&url=http://artfiles.org/eclipse.org//technology/epp/downloads/release/indigo/R/eclipse-jee-indigo-win32.zip&mirror_id=1091)

[B]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
29.11.2011, 20:09
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


#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 (http://get.qt.nokia.com/qtsdk/Qt_SDK_Win_online_v1_1_4_en.exe)


Gruß, Peter

StarWolf
29.11.2011, 23:16
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
30.11.2011, 02:54
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
30.11.2011, 04:13
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 (http://www.apachefriends.org/de/index.html)
Zend-pdt (http://www.zend.com/de/community/pdt) (unter Eclipse) oder NetBeans (http://netbeans.org/features/php/)

pmvstrm
30.11.2011, 06:50
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
30.11.2011, 07:25
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

PlanetHunter
30.11.2011, 11:22
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
30.11.2011, 11:55
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

pmvstrm
30.11.2011, 12:51
Ä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

Also wenn Du größere Areale und Gebirge planst sowie einen Editor zum Arrangement der Szene benutzen möchtest, dann ist
natürlich eine Game Engine, nebst zugehöriger Programmierumgebung der richtige und vor allem weniger aufwendige Schritt.
Eine sehr gute und vor allem einfach zu erlernende Game Engine ist Unity (mit der schon viele gute Spiele umgesetzt wurden).
Die Pro Edition ist zwar kostenpflichtig, aber die Community Edition reicht auch schon für sehr Anspruchsvolle Spiele.
Als Programmiersprache kann man zwischen C#, JavaScript und Bo wählen (Bo ist eine Python Variante). Unity bietet auch
die Möglichkeit das Spiel für iOS (Apple) und Android (Google) zu erstellen.

http://unity3d.com/

Alex74
30.11.2011, 13:42
Verstehe ich das mit den Game Engines richtig, daß da quasi schon die Grundlage eines solchen Spiels vorprogrammiert ist und man diese Grundlage an die eigenen Bedürfnisse anpaßt?

pmvstrm
30.11.2011, 14:05
Verstehe ich das mit den Game Engines richtig, daß da quasi schon die Grundlage eines solchen Spiels vorprogrammiert ist und man diese Grundlage an die eigenen Bedürfnisse anpaßt?

Naja vorprogrammiert kann man nicht sagen. Die Spiellogik musst Du schon selbst erstellen. Aber komplexe Dinge wie z.B kollisionserkennung,
Physikeffekte oder das Laden von 3D Geometrie Modellen (z.B wenn Du ein Rennspiel machen willst, das Du ein Automodell designen und
in die Spielwelt laden kannst) sowie Wetter, Wasser, Partikel, Himmel und Beleuchtungseffekte kannst Du direkt ansteuern ohne das Du
wissen musst wie das alles genau funktioniert.Im Grunde genommen bietet Dir Unity vereinfacht gesagt ein profesionelles Gameconstruction
Kit, das von vielen kleinen Indy aber aber auch großen Gamestudios genutzt wird um Ihre Egoshooter, Rollenspiele oder Strategiespiele
umzusetzen.Die Dokumentation ist bei Unity übrigens ausgezeichnet und die Community ist sehr freundlich und hilfreich. Ich würde Dir zum
Einstieg Unity empfehlen, weil man sehr schnell (mit etwas Einarbeitung) lernt wie man ein wirklich gutes Spiel erstellen kann. Es gibt
auch viele Tutorials zum einarbeiten, etwas das bei diversen Gameengines (z.B CryEngine oder Unreal Engine) nicht immer selbst-
verständlich ist. Die Unreal Engine kannst DU Dir auch herunterladen und damit Ein Spiel erstellen, aber die ist erheblich umfangreicher
und auch komplizierter.Einen sehr guten Ruf hat auch die die OpenSource Game Engine IrrLicht, aber da sollte man schon ein guter
C++ Programmierer sein, da es hier keine Grafische Arbeitsoberfläche gibt und man nur im Code arbeitet (bei Unity arbeitet man hingegen
hauptsächlich mit dem Unity Editor. Damit kannst Du Sachen in die Spielwelt integrieren (z.B ein Auto oder Flugzeugmodell und daraus
direkt eine Eigenständige Exe erstellen die man z.B auf USB Stick oder DVD kopieren und/oder via Internet verteilen kann.

Mit einer Gameengine kanst Du Dich zu 90% auf den Inhalt deines Spiels konzentrieren, Bilder, Szenerie, Musik, Kontextbezogenen,
programmierte Aktionen (Kameraschwenks,positionierung von Licht und Wettereffekten) und weniger um Betriebssystem,
Grafikschnittstellen, Physik und Künstliche Intelligenz, das bietet Dir Unity alles frei Haus.

Wovon ich Dir aber absolut nur abraten kann, das ist zum einen das Microsoft XNA Kit und zum anderen die Ogre3D Engine.
beide sind eigentlich keine vollständigen Gameengines. XNA ist eigentlich nur eine Szenenbibliothek mit ein paar Codeschnippseln
und Ogre3D ist zwar Ambitioniert aber nichts für Schwache Nerven und schon gar nichts für Einsteiger und man braucht viel
C/C++ Detailwissen und Geduld. Crystalspace ist ebenfalls eine gute OpenSpource Game Engine aber ebenfalls ziemlich
Hardcore und mit recht kleiner Community. Der Austausch von Wissen passiert hier eigentlich nur über die Dev Mailingliste,
das Forum ist recht leblos. Wenn man auf OpenSource steht und in Sachen Komfort und Doku etwas Abstriche machen
kann, dann kann auch die Blender Game Engine benutzen. Die Engine ist nicht schlecht, der Umgang ist aber wesentlich
weniger Einsteigerfreundlich als Unity. Die Doku bei Blender ist oftmals auch sehr alt und manche Dinge sind gar nicht
diokumentiert. Wenn man Glück hat, weiß einer in irgend einem Forum bescheid oder man findet es durch den PRogrammcode
durch Trial and Error selbst heraus.

Gruß, Peter

Alex74
30.11.2011, 14:24
Ich glaube das ist in dem Fall schon zu viel.

Grafisch und vom Spielgefühl her soll es ähnlich wie das alte "Panzer General" werden; eben ein rundenbasiertes Taktik-/Strategiespiel.
(Hier ein Bild: http://www.planet-freeware.de/img/software/screen_lgeneral_2.jpg ; eine Bemerkung übrigens noch: ich bin absoluter Pazifist und unterscheide streng zwischen Spiel und Realität was Krieg angeht)

Mir selbst geht bis heute auf den Zeiger daß es kein solches Spiel gibt das meine eigenen Anforderungen und Wünsche erfüllt. Daher trage ich den Gedanken auch schon länger mit mir herum wieder mit dem Programmieren anzufangen.
(Und wenn ich dann schon dabei bin eben auch die anderen Sachen die ich damals halt gerne weiter ausgebaut hätte mal umzusetzen; gerade eine umfassendere Evolutionssimulation ist bei einer 16 MHz CPU und 14 MB RAM ziemlich schnell am Ende...)

Gruß Alex

SRMeister
30.11.2011, 14:48
Hallo Alex,
du solltest nun wirklich erstmal eine Programmiersprache auswählen.
Über Game Engines usw. solltest du dir zu diesem Zeitpunkt keine Gedanken machen.
Wichtig ist höchstens, dass die gewählte Programmiersprache später da nicht total unpassend ist, wie zb. Scriptsprache wie CGI oder Python. Die haben wirklich andere Einsatzzwecke.
Nimm eine anständige, weit verbreitete Programmiersprache und fang erstmal ganz einfach an, mit Hello World.
Wenn dir dann die Programmiersprache nicht gefällt, nimm die nächste.
Am besten du nimmst eine der folgenden: C# oder Java. Wenn du unbedingt bei basic bleiben willst, nimm VB.Net (Visual Basic.NET) alle drei sind kostenlos und wiederum ist C# und VB.NET kompatibel miteinander (es sind beides dotNet Sprachen). Java ist eigentlich auch eine Sprache, die für Webentwickler gemacht wurde, also eigentlich auch nicht ganz das Richtige, aber sie wurde mit der Zeit stetig erweitert.

Glaube mir, es hat einen Grund dass so viele Menschen eine dieser Sprachen wählen und keine "Exoten". Um das zu machen, was du vorhast, brauchst du keinen "Exoten" oder "Spezialisten" sondern einen "Alleskönner".

Meine Referenz ist: 1. Programmierzertifikat mit 9 für Basic. Ansonsten: C, C++, Pascal, C#, VisualBasic, PHP, Assembler usw.
pmvstrm weiß ohne Frage auch wovon er redet, aber er vergisst dass du ganz von Vorne anfangen musst und bereits jetzt über Game Engines zu reden, garkeinen Sinn hat.

Kibo
30.11.2011, 14:50
Hallo Alex,
Vielleicht wäre SDL was für dich. Das ist quasi eine Bibliothek für C++, du kannst damit also richtig programmieren und die SDL Bibliothek kümmert sich nur um die grafische Darstellung (2D). Ich fand die Tutorials auch ganz gut gemacht, man lernt nebenbei viel zur Objekt orientierten Programmierung. Hinzu kommt, dass die Tutorials auf ein ganz ähnliches Spielprinzip hinauslaufen, der Anfang also schon gemacht wäre.

mfg

pmvstrm
30.11.2011, 14:57
Ach sowas suchst Du:)

Dann brauchst Du eher etwas im Bereich 2D, sowas lässt sich heute auch schon gut im Browser realisieren und ich würde sagen
die meisten Browsergames sehen heute so oder so ähnlich aus. In den 80er oder 90er Jahren hätte man sowas sicher
in Basic, Pascal oder C/C++ gemacht aber sowas kann heute jeder Browser. Du hast ja deine Internetseite auch selbst
gestaltet, also weißt Du zumindest schon mal was HTML im groben ist. JavaScript bettest Du einfach nur in HTML ein
und drückst dann im Browser auf reload und schon siehst Du das Resultat.
Ich denke einfacher kann der Einstieg für Dich nicht sein und OOP lernst Du dadurch auch, denn auch JavaScript ist
komplett Objektorientiert und vermutlich durch das Web die am meisten verbreitete Programmiersprache der Welt.

Zum Thema Game Engines b.z.w Hilfsbibliotheken pro und contra
Ich fand es nie Hilfreich einfach nur eine Programmiersprache zu lernen um erstmal eine Gefühl fürs Programmieren zu bekommen.
Eine Programmiersprache ist ja auch nur ein Werkzeugkasten und die Werkzeuge müssen ja auch zu der Aufgabe passen
die man bewältigen soll.

Ich glaube das könnte etwas für Dich sein:
http://cocos2d-javascript.org/demo?test=cocos2d/SpriteTest

Falls Du aber auf allen Schnickschnack verzichten willst Du einfach alles selbst machen
willst (auf die MacGyver Tour) das geht natürlich auch und bei einem 2D Game ist der Aufwand auch noch vertretbar.

Du kannst So ein Game relativ einfach vonGrund auf als Browser Game gestalten. Jeder Browser in der heutigen
Zeit unterstützt den das sogenannte Canvas Element. Das ist quasi eine Zeichenfläche im Browser auf der Du malen
kannst, auf der Du deine gemalten Objekte verschieben, ausblenden oder durch anklicken eine Aktion auslösen kannst.

Hier ist eine Testseite, mit der Du einmal rumspielen kannst um ein Gefühl dafür zu bekommen
http://www.w3schools.com/html5/tryit.asp?filename=tryhtml5_canvas_first

Und hier ein paar weitere Infos rund um die JavaScript Programmierung:
http://www.w3schools.com/html5/html5_canvas.asp

Wenn Du wirklich nur so ein rundenbasiertes Game machen und schnell (binnen Tagen) zu guten Ergebnissen kommen
willst, dann ist JavaScript recht nützlich. Darüber hinaus kannst Du dann die neu gewonnenen Erkenntnisse auch an
anderer Stelle profitieren, z.B um diene eigene Homepage zu verbessern. Auch kannst Du dein Spiel dann einer der
großen Browsergames Platformen wie z.B spielmit.com anbieten und wertvolles Feedback erhalten-

Gruß,Peter

pmvstrm
30.11.2011, 23:37
Hallo Alex,
du solltest nun wirklich erstmal eine Programmiersprache auswählen.

Es macht keinen Sinn irgend eine Programmiersprache heraus zu picken, wenn die Synapsen nicht für die Spieleprogrammierung ausgelegt sind.

Über Game Engines usw. solltest du dir zu diesem Zeitpunkt keine Gedanken machen.

Das sollte er doch.Eine Game Engine oder Spielebibliothek macht es ja gerade Anfängern wesentlich einfacher ein Spiel zu Programmieren. Programmieren muss man deswegen zwar immer noch, aber eben mit klaren Fokus auf die Spieleentwicklung.Im Grunde genommen
gibst Du Alex gerade den schlechtesten Rat den Du ihm geben kannst.Wenn er so anfangen würde wie Du es vorschlägst, dann kommen
als nächstes unweigerlich die Fragen nach DirectX, DirectDraw, Physikalgorithmen, Kollisionsdetection, Raycasting, Scenegraph, u.s.w auf.
Damit ist ein Anfänger völlig überfordert und wirft den ganzen Kram nach 2 Tagen in die Ecke.
Und dann empfiehlst Du Ihm auch noch C# oder Java oder generell .NET (eine virtuelle Maschinentechnologie) mit der es ausserhalb
der Sprechblasen der Microsoft Marketingtypen keine einzige, vernünftige Spieleanwendung oder grösseres Softwareprojekt gibt die
auf diesen Kram aufbauen.NET ist sogar intern bei Microsoft verschrien und man versucht sich innerhalb von Microsoft wieder davon zu
befreien.Echte Gameprogrammierung war und ist schon immer stark durch C/C++ geprägt gewesen und niemals durch .NET
(C#.NET, VB.NET, C++.NET oder irgend eine andere Sprache die mit .NET auch nur entfernt zu tun hat). Sogar bei Microsoft intern
ist man so klug die Leute in Bezug auf die Gameprogrammierung in Richtung C#.NET, C++.NET, VB.NET oder irgend eine andere
.NET Sprache zu puschen. Darum ist das XNA GameDev Toolkit auch für Native C/C++ ausgelegt.Das ist nur natürlich,denn
die ganze MS Grafikschnittstelle Direct D3D (Teil von DirectX) ist selbst in C/C++ entwickelt und passt daher auch am besten
zum hauseigenen C/C++ native Compiler.

Top 3 der wichtigsten Programmiersprachen für Spiele in 2011
1) C/C++ (vor allem große Titel, FarCry, Unreal, Battlefield Earth, Call of Duty, Assasins Creed u,s,w) PC und Spielekonsolen.
2) JavaScript (durch die massive Präsenz des Webs hat JavaScript im Onlinespielebreich epidemische Formen angenommen)
3) Mobile Devices dominierte Sprachen (spezielles Java für die Andorid DalvikVM), Objective C für iPhone und iPad

Alle anderen Sprachen sind hier die wahren Exoten. Es stimmt übrigens auch nicht das Java für das Internet gemacht
wurde. Es gibt in Java zwar die Möglichkeit Applets damit zu bauen, der heutige Einsatzzweck von Java ist aber vor
allem im BWL (Banken, Versicherungen, große Websites, Industriekonzerne) wo Java auf fetten Servern als
Hintergrundprozesse laufen.

Gruß, Peter

SRMeister
01.12.2011, 01:53
Programmieren muss man deswegen zwar immer noch, aber eben mit klaren Fokus auf die Spieleentwicklung.

Ich glaube nicht, dass jemand sich denkt, "achja und morgen möchte ich Spieleentwickler sein" ohne überhaupt mit modernen Programmiersprachen (Objektorientierung, C-ähnliche Sprachen) vertraut zu sein.
Alex wird zunächst ganz kleine Brötchen backen müssen und da erzählst du ihm was von C++ mit Inline Assembler, XNA, Direct3D, usw ... das ist total übertrieben und unrealistisch!
Alex will ganz sicher nicht "an der Front der Spieleentwicklung" mitwirken, die schnellsten Engines und neueste DirectX Version ausnutzen.

Alex wird seine Ideen mit großer Wahrscheinlichkeit zunächst in Textform umsetzen - auch seine Spiele oder sonstigen Ideen. Da ist einzig und allein wichtig, dass man schnell Erfolg hat, also nicht 1000 Spezialfälle kennen muss. So wäre es aber wenn er anfangen würde, Direct3D Spiele in Native-C++ zu schreiben, oder gar Webbasierte Anwendungen zu entwickeln (Javascript). Du schiesst hier mit Kanonen auf Spatzen. Die Sachen, die du Ihm empfiehlst, da bräuchte er Jahrzehnte ehe er da ein Spiel entwickeln könnte.

Nicht zuletzt deswegen empfehle ich und einige Andere hier, die dotNet Sprachen.
Man kommt schnell zum Erfolg, hat rieesige Communities und trotzdem bleibt später viel Raum zur Erweiterung (zb in Richtung Grafik usw.) und die Nähe zu C++ ist auch nicht von der Hand zu weisen - man bleibt also "in der Familie" und kann später - falls wirklich nötig - einfach auf C++ gehen.

Wenn Alex ein Student wäre, der auf Biegen und Brechen jetzt ein echter Informatiker würde werden wollen - dann wäre C++ komplett richtig.
Aber überlege mal, wieviel komplizierter das wäre.

Deshalb: Klein anfangen. Textbasierte Anwendungen machen - Hello World - Auch auf der Konsole lassen sich Karten darstellen, wie es damals in Dos Zeiten mit ASCII Grafik häufig üblich war. Dann auf "einfache" Windows Appz mit 2D Grafik.

Grüße

Schade dass du mich nicht wirklich auf Ignore gesetzt hast. Am besten tust du es gleich jetzt.

Dass du auf Kritik nicht gut reagierst dass wissen wir ja spätestens seit der Aktion hier:


Ein Mann schaut am nächtlichen Himmel aus dem Fenster und er sieht den Mond.
Er wendet kurz darauf den Blick ab und schaut in dem Zimmer in dem er sich befindet auf ein Naturbild.
Ist der Mond noch da? In der klassischen Welt des relativen - eindeutig ja. In der Welt der Quantenmechanik
NEIN. Den Mond hat es dort nie gegeben. Schaut die gleiche Person einige Sek. später wieder aus dem Fenster,
so sieht er zwar den Mond, dieser wird aber erst in diesem Moment völlig neu erschaffen, so das unser Beobachter
ihn erfassen kann.

pmvstrm
01.12.2011, 05:38
Du brauchst ja nicht gleich patzig zu werden nur weil Dich jemand klar wiederlegt hat.

.Net für die Spieleentwicklung ist Hokuspokus und er will auch kein DOS ASCII Spiel sonder ein simples 2D , rundenbasiertes Spiel machen Wozu soll er sich da das fette Visual Studio .Net runterladen und erst eine Spiele untaugliche Programmiersprache lernen wenn es auch ein simpler Texteditor und ein Webbrowser mit etwas JavaScript genauso tut?



Kanonen auf Spatzen

Ich frag mich auch warum er mit deiner Kanone auf einen Spatzen schießen sollte:)



Schade dass du mich nicht wirklich auf Ignore gesetzt hast. Am besten tust du es gleich jetzt.
...
Dass du auf Kritik nicht gut reagierst dass wissen wir ja


Ach wirklich? :D

Gruß, Peter

Alex74
01.12.2011, 08:18
Ohje, da hab ich ja was ausgelöst. Vetragt Euch :)


Alex wird seine Ideen mit großer Wahrscheinlichkeit zunächst in Textform umsetzen - auch seine Spiele oder sonstigen Ideen.
Das ist in den letzten Jahren recht ausufernd geschehen. Ich habe relativ klare Vorstellungen davon wie das am Ende aussehen soll (auch wenn ich aus Erfahrung weiß daß man spätestens nach dem Testen einiges wieder verwirft oder doch ändert).

Vielleicht eines noch:
Ich habe mich schon damals schwer getan mit Programmcodes anderer, so hilfreich sie auch waren. Programmieren war immer Hobby und es gehörte einfach zu den Dingen, die mir daran keinen Spaß machten und ich daher auch immer vermieden hatte. Ich weiß daher nicht, ob ich mit Engines oder anderen Schablonen dieser Art so glücklich werden würde.

Ferner ist es ja auch so, daß dieses Spiel sozusagen nur der Aufhänger ist, mal wieder anzufangen; ich bin mir sicher daß auf Dauer einige kleinere Applikationen dazukämen, die Sprache sollte also durchaus recht allgemein und mächtig sein. Daher kam ich auch auf Java; weil es offenbar Anwendungen in allen Richtungen ermöglicht (wie gesagt z.B. auch das erwähnte Minecraft ( http://www.youtube.com/watch?v=T0FMWaaWjwk - das zeigt was Java alles kann, auch wenn das natürlich einige Ligen über meinem Projekt schwebt).

Eine wichtige Frage habe ich bezüglich der Gewöhnung an eine neue Sprache auch noch:

Mir fiel auf daß anscheinend viele Sprachen heutzutage in ganz normalen Texteditoren geschrieben werden und man daher bei einigen Sprachen sehr auf Einrückungen achten muß - oder selbst verantwortlich ist wie leserlich der Code nun ist.

Das empfinde ich als kolossalen Rückschritt.

Ich bin von meinen Programmen damals gewohnt daß die Programmiersprache, ganz egal ob Basic oder Assembler, einen eigenen Editor bereithält der Einrückungen automatisch macht und sich bei Syntaxfehlern direkt bei Eingabe beschwert.

Alles in Texteditoren zu schreiben mutet mir wie Mittelalter an.

Gruß Alex

Bernhard
01.12.2011, 10:24
Alles in Texteditoren zu schreiben mutet mir wie Mittelalter an.
Hi Alex,

gute Editoren machen natürlich automatisch Einrückungen und noch wesentlich mehr (Codeergänzung uva). Man muss normalerweise nur vorgeben, wie z.B. ein Tabulator-Zeichen interpretiert wird. Da sind dann die Geschmäcker z.T. wieder verschieden. Manche mögen die Einrückung mit 2, andere mit 4 Leerzeichen.

pmvstrm
01.12.2011, 10:27
Guten Morgen



Ich habe mich schon damals schwer getan mit Programmcodes anderer, so hilfreich sie auch waren. Programmieren war immer Hobby und es gehörte einfach zu den Dingen, die mir daran keinen Spaß machten und ich daher auch immer vermieden hatte. Ich weiß daher nicht, ob ich mit Engines oder anderen Schablonen dieser Art so glücklich werden würde.

Ok das ist natürlich der härtere Weg aber dabei lernst Du dann auch mehr (es hat alles seine Vor und Nachteile).


Daher kam ich auch auf Java; weil es offenbar Anwendungen in allen Richtungen ermöglicht (wie gesagt z.B. auch das erwähnte Minecraft ( http://www.youtube.com/watch?v=T0FMWaaWjwk - das zeigt was Java alles kann, auch wenn das natürlich einige Ligen über meinem Projekt schwebt).

Also ich habe viele Jahre in Java aktiv entwickelt und mache das hin und wieder immer noch. Gegen Java als Sprache und Pattform hatte ich eigentlich nie etwas, auch nicht so lange Java noch SUN gehörte. Nachdem die aber von Oracle gekauft wurden und Oracle Google und zig andere Firmen aus blanker Geldgier verklagt und mit Patentansprüchen gegen OpenSource schießt (und gerade die haben Java aus dem Tal der Tränen wieder zu einer breit akzeptierten Sprache gemacht, nach dem Java nun Ende der 90er ein extrem schlechtes Image hatte, vor allem wegen der Performance) . Oracle hat es aber binnen kürzester Zeit geschafft so ziemlich alle zu vergraulen die viel für Java beigetragen haben (vor allem die Apache Software Foundation, die für ca. 80% der Java Communitybeiträge verantwortlich war). Aber abseits von Oracles auftreten ist Java natürlich immer noch eine gute Plattform nebst Programmiersprache. Wenn Dich Java wirklich reitzt, dann kann ich Dir die beiden vorzüglichen Entwicklungsumgebungen NetBeansund IntelliJ IDEA empfehlen. Netbeans ist OpenSource und von IDEA gibt es eine kostenlose Version.Hier die Links:

NetBeans 7 (kostenlos, sehr mächtig und OpenSource)
http://netbeans.org/

IntelliJ IDEA (komerziell, gibt aber eine kostenlose Community Edition)
http://www.jetbrains.com/idea/

Die Top Features:
Extrem mächtige Code Bearbeitungsfuktionen. Fehler und Lösungsvorschläge werden schon beim tippen angezeigt. Codefolding und Codeblöcke sorgen dafür das man stehts den Überblick auch in sehr großen Files behält. Darüber hinaus besitzen beide Programme extrem mächtige Refactoring Features (etwas das Du noch lieben lernen wirst, wenn Du öfters programmierst). Im Grunde genommen ist Refactoring die Antwort auf deine in deinem Post gemacht andeutung(das man später oftmals alles wieder umwirft und bestimmte Dinge neu schreibt). Refactoing ist genau dafür eine sehr gute Hilfestellung. Stell Dir vor, Du hast eine Funktion geschrieben und diese Funktion wird im weitern Programmverlauf 3000 mal von anderen Routinen aufgerufen (das dürftest Du aus deiner Assembler und Basic Zeit ja noch kennen), dann wäre es heikel so eine Funktion die so oft aufgerufen wird zu verändern. Genau da springt Refactoring ein. Du veränderst die Funktion/Routine und alle übrigen, 3000 Aufrufe werden automatisch so angepasst, das keine Fehler auftreten. Das ist natürlich gerade für Leute die gerne nachträglich an Ihrem Code rumbasteln wollen enorm hilfreich und geht weit über Suchen + Ersetzen eines Texteditors hinaus.

Nostalgie...
Wenn ich jetzt neu anfangen würde zu programmieren, ich hätte mir gewünscht das mir so etwas jemand vorher erzählt, das erspart einen den einen oder anderen Wutanfall und ein paar graue Haare:)Wenn es Dir also mit OOP, Programmierung und Java wirklich ernst ist, solltest Du den beiden Programmen eine Chance geben, sie sind beide wirklich gut. Das Programmierwerkzeug Eclipse wird zwar auch von vielen Programmierern verwendet aber das ist am Anfang wirklich etwas zu kompliziert, denn Eclipse muss man sich nach der Installation noch erst "hinbiegen" damit es das macht was man eigentlich will und alleine das kann schon abschreckend sein.

Eine wichtige Frage habe ich bezüglich der Gewöhnung an eine neue Sprache auch noch:Mir fiel auf daß anscheinend viele Sprachen heutzutage in ganz normalen Texteditoren geschrieben werden und man daher bei einigen Sprachen sehr auf Einrückungen achten muß - oder selbst verantwortlich ist wie leserlich der Code nun ist.

Naja das ist eigentlich nur bei Python der Fall. Python ist schon recht mächtig, aber es hat leider auch ein ziemliches Versionschaos und ist eigentlich nur eine Sprache für die Konsole (DOS/Linux/Unix Befehlsprompt) und eventuell für die Erstellung dynamischen HTML Seiten (so wie PHP, Perl, Ruby, Groovy und Scala). Windows Fensterprogramme lassen sich damit nur mit Tricks und Haken realisieren, aber wenn man genug Geduld und Spass an der Sache hat, geht natürlich auch das.


Das empfinde ich als kolossalen Rückschritt.
Ich kann dem auch nichts abgewinnen und deswegen ist Pyhton auch nicht so meins.Aber ebenso wenig mag ich Sprachen mit dynamischer Typisierung (z.B PHP, JavaScript, VB). Sollte ein Fehler eintreten, dann weiß man bei einer stark typisierten Sprache wie Java, C/C++ oder C# einfach schneller wo der Fehler liegt und kann ihn beheben (Java und C# unterscheiden sich von der Syntax übrigens kaum).


Ich bin von meinen Programmen damals gewohnt daß die Programmiersprache, ganz egal ob Basic oder Assembler, einen eigenen Editor bereithält der Einrückungen automatisch macht und sich bei Syntaxfehlern direkt bei Eingabe beschwert.
Es gibt natürlich auch heue noch Editor die so etwas können. Aber für ernsthafte Programmierung sind die kaum geeignet,
wenn man mal von den Linux/Unix VI und Emacs Editorien absieht (aber die zu beherrschen ist ebenfalls eine eigene Kunst für sich).

Fazit:
Es gibt zwar hunderte, verschiedene Programmiersprachen, aber nur wenige Sprachen die wirklich wichtig sind und die es sich
lohnt wirklich zu lernen.

1) C/C++ (auch nach zig Jahrzehnten immer noch die wichtigste Sprache) (vor allem Pc, Mac und Linux Programmierung sowie LowLevel/Hardware)
2) Java. (immer wieder tot gesagt, aber unglaublich flexibel: Server, Web, Desktop und Mobile Programmierung - Haupteinsatz Wirtschaftsapplikationen)
3) Webspezifische Sprachen: PHP5+SQL und/oder JavaScript+HTML5 (quasi jede Website: ob letzte Drecksseite oder Largescale Website ist damit gemacht)

Zu Microsoft .NET Plattform und zugehörige Sprachen (C#.NET, VB.NET, C/C++.NET, F#, J#)...
Zum Thema der .NET Sprachen habe ich ja im vorherigen Beitrag schon einiges gesagt. Ich denke nicht, dass sich auch nur eine .NET Sprache langfristig durchsetzen wird. Ich beobachte .NET seit der Technical Preview von 1999 und war in unserer Firma einer der ersten die das blanke SDK (noch auf der DOS Befehlszeile) ausprobiert und sogar meinen Chef überredet hat es in unserer Internetagentur einzusetzen (vor allem ASP.NET). Für die Webprogrammwierung war und das war auch ok. Nur für die Clientprogrammierung bringt es einfach zu viele Nachteile, Restriktionen und Unzulänglichkeiten mit sich als das man es guten gewissens empfehlen könnte. Allenfalls das nicht von Microsoft stammende Mono ist hier eine wohltuende Ausnahme, aber das wird kaum auf Windows Systemen (und auch nicht auf Linux / Unix eingesetzt).

Ich würde sagen mit Java liegst Du mit Sicherheit nicht falsch.Die Sprache bietet wirklich eine Menge Potential und ich wäre vermutlich auch noch heute aktiv
in der Javaentwicklung involviert wenn nicht Oracle als neues Evil Empire erschienen, Java an sich gerissen und die Java Community durch seine blanke Gier und Patenttrollerrei gesprengt hätte. Es ist wirklich ein Trauerspiel was Oracle da anstellt aber man kann es leider nicht ändern.Ich persönlich bin jetzt vorsichtiger
was Closed Source Software angeht.

Gruß, Peter

pauli
01.12.2011, 12:30
btw, sehe gerade RPG und COBOL :) macht jemand das noch? Ich habe eine AS400 im Arbeitszimmer stehen :cool:

pmvstrm
01.12.2011, 12:37
Mit Cobol könnte ich mich mit einer Schmerzulage vielleicht noch abfinden aber RPG NO WAY!!!!!

sebix
03.12.2011, 20:42
Zu Microsoft .NET Plattform und zugehörige Sprachen (C#.NET, VB.NET, C/C++.NET, F#, J#)...
Zum Thema der .NET Sprachen habe ich ja im vorherigen Beitrag schon einiges gesagt. Ich denke nicht, dass sich auch nur eine .NET Sprache langfristig durchsetzen wird. Ich beobachte .NET seit der Technical Preview von 1999 und war in unserer Firma einer der ersten die das blanke SDK (noch auf der DOS Befehlszeile) ausprobiert und sogar meinen Chef überredet hat es in unserer Internetagentur einzusetzen (vor allem ASP.NET). Für die Webprogrammwierung war und das war auch ok. Nur für die Clientprogrammierung bringt es einfach zu viele Nachteile, Restriktionen und Unzulänglichkeiten mit sich als das man es guten gewissens empfehlen könnte. Allenfalls das nicht von Microsoft stammende Mono ist hier eine wohltuende Ausnahme, aber das wird kaum auf Windows Systemen (und auch nicht auf Linux / Unix eingesetzt).


Mono wird unter Linux sehr häufig eingesetz, der Media-Player Banshee etwa ist in Mono schrieben, die Notiz-Software Tomboy auch. Die Foto-Verwaltung F-Spot und gbrainy sind weitere Beispiele. Gnome hat in Ubuntu 11.04 eine Abhängigkeit zu Mono (wegen Banshee)! Alle genannten Anwendungen wurde ausschließlich für Mono erstellt, nicht für .NET
Nichtsdestotrotz gibt es Kritik gegen Mono, die sich auf mögliche Patentansprüche Microsofts auf Mono beruft.

eeralfcosmo
04.12.2011, 01:34
das waren noch zeiten, Fh karlsruhe Univax Rechner, Pascal per lochkarten
ok aber ich finde pascal ist die coolste aller sprachen, ausser assembler

turbo pascal war seiner seits nie zu schlagen, auch nicht von C

nebenbei, das UCSD pascal von apple II und Apple /// war ja schon richtig gut, da hatten basic, algol, cobol keine chance, ok auf Pc's bezogen, cobol, fortran waren natuerlich immer noch die besten Grossrechner-Sprachen

eeralfcosmo
04.12.2011, 02:05
sry, was ich hier vermisse ist Logo, oder andere aehnliche sprachen(forgot the names), habe das nicht mehr verfolgt, aber KI-languages waren angesagt, selbst compilerend und so, na ja hab diese sprachen irgendwie nie gemocht

FrankSpecht
04.12.2011, 02:27
turbo pascal war seiner seits nie zu schlagen, auch nicht von C
Stimmt, deswegen programmieren heute auch soviele in den Pascal-Derivaten Oberon, Modula oder Delphi :rolleyes:


sry, was ich hier vermisse ist Logo, oder andere aehnliche sprachen(forgot the names)
Ich hatte Prolog und Lisp bereits erwähnt!


btw, sehe gerade RPG und COBOL ... macht jemand das noch? Ich habe eine AS400 im Arbeitszimmer stehen ...
COBOL, Himmel und Hölle :eek:
Die Sprache hatte ich Anfang der 90er-Jahre als Werkstudent bei IBM gelernt - an einer AS400. Bleib mir weg damit :p

PS: @Alex74,
du hast ja schon 'ne Menge Sprachen um die Ohren gehauen bekommen. Wenn du einigermaßen modern programmieren willst, wirst du um eine funktionale Sprache kaum herumkommen. Daher wären Sprachen wie C, C++ oder JAVA schon die richtige Richtung. Plattform-übergreifend würde ich dir zu JAVA raten, da sie heutzutage eine weitverbreitete Lehrsprache ist und es daher viele Tutorials und Code-Snippets dazu gibt. Ich persönlich habe JAVA das letzte Mal im vergangenen Jahrtausend angefasst, muss aber heute immernoch aktuelle Laufzeitbibliotheken herunterladen, um z.B. auf die Orbit-Diagramme des JPL (http://ssd.jpl.nasa.gov/sbdb.cgi?sstr=2005 YU55;orb=1) zugreifen zu können.

eeralfcosmo
04.12.2011, 02:44
Stimmt, deswegen programmieren heute auch soviele in den Pascal-Derivaten Oberon, Modula oder Delphi :rolleyes:


Ich hatte Prolog und Lisp bereits erwähnt!

jajajaja, oberon war geil, der pacal erfinder, ich weiss, die programmiersprache als betriebssytem, coooooooool

und sry habe lisp und prolog vergessen nochmals sry

Ralf

oh forgot, Modula war nie richtig gut, habe mir das mal angeschaut, war aehnlich pascal, aber naja

Delhpi is best, bin aber nie ueber version sieben gekommen, staendig alle komponenten anpassen, das dauert, ich bin ein one man team

dot net , klar , aber keine zeit

pauli
04.12.2011, 02:52
und nicht zu vergessen ABAP/4 bzw. ABAP-Objects ... :)

eeralfcosmo
04.12.2011, 02:55
und nicht zu vergessen ABAP/4 bzw. ABAP-Objects ... :)

betriebssystem?, objectorientiert?, habe noch nie was davon gehoert, habe vieleich die letzten 5 jahre verpennt.

objectorientiert, klar ich seh's am namen, mein error .,)
r

pauli
04.12.2011, 03:05
betriebssystem?, objectorientiert?, habe noch nie was davon gehoert, habe vieleich die letzten 5 jahre verpennt.

objectorientiert, klar ich seh's am namen, mein error .,)
r
sagt dir SAP was, das monströse, weltweit erfolgreiche ERP-System aus deutschem Hause (Walldorf)? Die liefern ihre Systeme incl. kompletter integrierter Entwicklungsumgebung incl. debugger aus, die Programmiersprache dazu heisst ABAP, in etwa eine Mischung aus COBOL und C - seit einigen Jahren gibts ABAP auch objektorientiert

EDIT
Ich beschreibe es deshalb so ausführlich weil ich es sehr gut kenne und seit ca. 15 Jahren davon lebe ... :-)

eeralfcosmo
04.12.2011, 03:12
eins muss ich mal loss werden

wenn man die ersten programiersprachen
basic, pascal = lernsprachen
fortran = wissenschftliche sprache
cobol, algol(?) = datenbank , business sprache
assembler = fuer betriebsyteme

betrachtet, und nun die heutigen, dann wird eins klar , du braucht jahre um alles zu begreifen und zu lernen

eine heutige programmiersprache beinhaltet alles, und es ist echt schwer den ueberblick zu behalten, kein mensch kann z.B Delphi, Borland C++, microsolft C.... ausreitzen

Programmieren macht spass und es ist kreativ, aber ich glaube es wird kontra produktiv bei der vielfalt, Einsteiger werden es immer schwerer haben

ich weiss echt nicht wie das weiter gehen soll

frueher war alles besser. np

Ralf

eeralfcosmo
04.12.2011, 03:21
sagt dir SAP was, das monströse, weltweit erfolgreiche ERP-System aus deutschem Hause (Walldorf)? Die liefern ihre Systeme incl. kompletter integrierter Entwicklungsumgebung incl. debugger aus, die Programmiersprache dazu heisst ABAP, in etwa eine Mischung aus COBOL und C - seit einigen Jahren gibts ABAP auch objektorientiert

EDIT
Ich beschreibe es deshalb so ausführlich weil ich es sehr gut kenne und seit ca. 15 Jahren davon lebe ... :-)

Cool , vieleicht bin ich dein nachbar , wohne in mannheim, klar kenne ich sap, und habe auch an bewerbungen gedacht, das war aber schon lange her,
selbstaendig laesst sichs leicher, naja, meist, ich habe es noch nie gemocht wenn ich nach vorschriften programmieren musste, habe oft nur in der nacht programmiert,
habe keinen richtigen zeit- rhytmus, egal, SAP ist heute auch nicht mehr das was es frueher war, inovativ.....

Edit
walldorf , ja , da war doch ein Rock-Shop und ist noch (keine ahnung), da habe ich immer meine sticks und felle gekauft, hahaha

pauli
04.12.2011, 03:22
Programmieren macht spass und es ist kreativ, aber ich glaube es wird kontra produktiv bei der vielfalt, Einsteiger werden es immer schwerer haben

ich weiss echt nicht wie das weiter gehen soll

frueher war alles besser. np

Ralf

Ich finde web-Programmierung ziemlich komplex und insgesamt schwer zu beherrschen weil so viele "zusammengetrümmerte" Technologien zusammenkommen. Meiner Meinung nach ist ein Browser für echte "klassische" Datenverwaltung/Erfassung einfach nicht geeignet weil er nie dafür ausgelegt war.

Habe viel mit CMS-Systemen gemacht (Joomla), was musste ich (als erfahrener!) Programmierer mühsam alles neu lernen:
- HTML
- CSS
- PHP
- serverorientierte Programmierung
- JavaScript
- XML
- Browserinkopatibilitäten
- apache-Server
- mysql-Server
- FTP
- IDE wie Eclipse (wegen Debugging)
- völlig andere Sicherheitsaspekte

FrankSpecht
04.12.2011, 03:22
Moin, pauli und Ralf,

und nicht zu vergessen ABAP/4 bzw. ABAP-Objects ... :)


frueher war alles besser. np
das Schwelgen in alten Zeiten (so schön auch mir das bisweilen gefällt) hilft Alex74 leider nicht, eine heutige Programmiersprache zu finden, die seinen Anforderungen gerecht wird.

pauli
04.12.2011, 03:26
Moin, pauli und Ralf,



das Schwelgen in alten Zeiten (so schön auch mir das bisweilen gefällt) hilft Alex74 leider nicht, eine heutige Programmiersprache zu finden, die seinen Anforderungen gerecht wird.
na und, es wurden ja nun massenhaft Tipps gegeben

Nathan5111
04.12.2011, 03:27
ich weiss echt nicht wie das weiter gehen soll

frueher war alles besser. np

Ich denke, Du solltest erst einmal mit Dir ins Reine kommen, Dein Alkoholproblem bekämpfen, und dann erst auf andere Menschen zu gehen. Im Moment bist Du einfach nur peinlich!

eeralfcosmo
04.12.2011, 03:38
Ich denke, Du solltest erst einmal mit Dir ins Reine kommen, Dein Alkoholproblem bekämpfen, und dann erst auf andere Menschen zu gehen. Im Moment bist Du einfach nur peinlich!

off-topic, denke ueber dich nach
meine probleme gehen dich nichts an, sage was zu den programmiersprachen

FrankSpecht
04.12.2011, 05:05
du hast ja schon 'ne Menge Sprachen um die Ohren gehauen bekommen.


na und, es wurden ja nun massenhaft Tipps gegeben
Ich verstehe nicht. Worauf willst du hinaus?

eeralfcosmo
04.12.2011, 05:06
Ich finde web-Programmierung ziemlich komplex und insgesamt schwer zu beherrschen weil so viele "zusammengetrümmerte" Technologien zusammenkommen. Meiner Meinung nach ist ein für echte "klassische" Datenverwaltung/Erfassung einfach nicht geeignet weil er nie dafür ausgelegt war.

Habe viel mit CMS-Systemen gemacht (Joomla), was musste ich (als erfahrener!) Programmierer mühsam alles neu lernen:
- HTML
- CSS
- PHP
- serverorientierte Programmierung
- JavaScript
- XML
- Browserinkopatibilitäten
- apache-Server
- mysql-Server
- FTP
- IDE wie Eclipse (wegen Debugging)
- völlig andere Sicherheitsaspekte


ich auch , Com/Com ++ oder so hast du vergessen, hahaha, np

ganz zu schweigen von den verschiedenen SQL Dialekten

eeralfcosmo
04.12.2011, 05:24
C# vieleicht das beste zur zeit,

aber es kommt immer darauf an was man progammieren moechte

meist sind engines, umgebungen die bessere loesung, fuer spiele zum beispiel

wenn man nur primitive sachen programmieren will, ist meist das weniger entwickelte werkzeug das bessere, da hat man wenigsten noch den ueberblick

delphi 5, 6, 7
Borland c++

pauli
04.12.2011, 06:21
Ich verstehe nicht. Worauf willst du hinaus?


das Schwelgen in alten Zeiten (so schön auch mir das bisweilen gefällt) hilft Alex74 leider nicht, eine heutige Programmiersprache zu finden, die seinen Anforderungen gerecht wird.
na darauf dass du hier völlig unnütz unser nicht-ganz-Topic implizit kritisierst - Alex74 hat definitiv viele Tipps bekommen und bei konkreten Fragen wird er sicherlich auch weiterhin Topic-Hilfestellung bekommen, also was soll die Zurechtweisung ... und ABAP ist eine "heutige Programmiersprache" *kopfschüttel*

pmvstrm
04.12.2011, 07:20
Alle genannten Anwendungen wurde ausschließlich für Mono erstellt, nicht für .NET
Nichtsdestotrotz gibt es Kritik gegen Mono, die sich auf mögliche Patentansprüche Microsofts auf Mono beruft.

Ich meine Miguel de Icaza hat mit seinen Jungs echt gute Arbeit in Sachen Mono hingelegt.Natürlich gibt es auch Bereiche
wo die Mono .NET Runtime der Compiler und sogar die wirklich gute Entwicklungsumgebung Mono Develop genutzt wird
(z.B in Unity3d der Game Engine die ich hier empfohlen habe). Aber gerade die Patente von MS können das Monoprojekt
mit einem Fingerschnipps töten und das ist einfach zu gefährlich (erst gestern hat Microsoft wieder Motorolla abgemahnt
und mit der SCO Geschichte haben sie das sogar gegen Linux direkt versucht).

pmvstrm
04.12.2011, 07:57
Morgen

Moin, pauli und Ralf,
das Schwelgen in alten Zeiten (so schön auch mir das bisweilen gefällt) hilft Alex74 leider nicht, eine heutige Programmiersprache zu finden, die seinen Anforderungen gerecht wird.

Naja das hat schon etwas konstruktives. Selbst Legenden wie Bjarne Stroustrup (Erfinder von C/C++) oder Larry Wall (Erfinder der Programmiersprache
Perl) oder Richard Stallman (Gnu Compiler Collection GCC) sagen ganz klar: Die Sprachvielfalt ist nichts schlechtes. Im Gegenteil. Die einzelnen Lager
lernen voneinander und die heutigen Programmierer haben eher die Qual der Wahl sich unter den ganzen tollen Sprachen die es heute gibt zu entscheiden.
Wenn man alle Sprachen zusammen rechnet, dann kommt man sicher auf über 100 Sprachen und die besten Konzepte die ich bisher wirklich gesehen
habe, das waren Pascal, C++, Perl, Lisp und Java.

C als Sprache war offensichtlich von den Unix Erfindern mal als Joke gedacht gewesen (die haben dann später selbst Jahre lang nur in Pascal
programmiert) und konnten sich nicht vorstellen das jemand so Masochistisch damit wirklich ernsthafte Programme schreiben zu wollen:)
Wie dem auch sei, C hat überlebt und ist auch heute noch ultra wichtig und durch die Erweiterung der Programmiersprache C++ 1983
durch Bjarne Stroustrup hat es in der Kombination erheblichen Aufwind erhalten (das gleiche, wenn auch etwas geringer kann man
übrigens von Pascal/Objectpascal->Delphi und C# behaupten). Delphi wird bis heute als möchtige RAD Entwicklungsumgebung
amgeboten und damit lassen sich sogar Crosskompilate für Windows und Mac Systeme erstellen (sprich man kann auf Windows
Mac Programme erstellen die dann auf dem Mac laufen) und der heutige Delphi Compiler ist sogar 64-Bit fähig und hat eine ziemlich
hartnäckige Fanbase und das schon seit vielen Jahren. Es gibt sogar einen OpenSource Ableger (Lazarus) Für Linux/Windows und Mac.

Und was viele .NET Programmierer vielleicht gar nicht ahnen... .NET und C# wurde von Anders Heilsberg (dem Delphi Erfinder) entwickelt
der von Borland zu Microsoft gekommen ist. Jedem alten Visual Studio Hasen ist ja vielleicht schon mal aufgefallen, das Visual Studio.NET
nach Visual Stuido 6.0 etwas völlig anderes war als noch vorher.

Was ich damit sagen will:
Klar gibt es viele Experimente und unzählige Werkzeugtaschen (Programmiersprachen) aber wenn man mal Fleisch an den Knochen
bringen will, dann bleiben in der Praxis nur sehr wenige Programmiersprachen über die so mächtig sind das man damit die meisten
Anwendungszwecke erschlagen kann. C/C++ hatte bisher keine großen Affinitäten zum Internet (ausser CGI, Servererweiterungen
und seit kurzen Googles Native Unterstützung von C/C++ im Browser). Es muss ja seinen Grund haben warum C (40 Jahre alt) und
C++ (über 30 Jahre) immer noch so populär sind und jeder Compuert (von klein bis gross) native C/C++ Programme beherbergt.

Mit C/C++ und all seinen Möglichkeiten und Feinheiten kann man verdammt weit kommen bevor man auf irgendwelche Grenzen
stösst (egal in welchen Gebiet) und für alles andere (wie Webprogrammierung) gibt es halt Spezialisten wie PHP und JavaScript
und für die Gestaltung und Design halt Markup Sprachen wie HTML/CSS (das ist aber eher für Designer und Grafiker wichtig).

Mit:
C/C++ (native)
PHP5
JavaScript

Kann man aus meiner Sicht jede Programmiertechnische Herausforderung bewältigen.


Der härteste Brocken ist natürlich wirklich in C/C++ gut zu werden, aber PHP5 bekommt man damit quasi geschenkt, da
viele PHP Eigenheiten von C/C++ abstammen und relativ primitiv sind (ein echter C/C++ Programmierer muss da schon öfters
mal grinsen). JavaScript muss man aus meiner Sicht gar nicht komplett verstehen und ist von den 3 Sprachen wirklich noch
das einfachste und ist eher für Miniskripte im Browser gut als für große Projekte). Ich selbst setze JavaScript nur sparsam
ein und bin damit trotzdem immer zum Ziel gekommen.

Manchmal wundere ich mich, wie in der IT Welt in der jede Woche scheinbar eine neue Sau durchs Dorf getrieben wird im
Kern doch am Ende nur die bewährten Sachen übrig bleiben aber irgendwie ist das auch beruhigend:)

Gruß, Peter

Webmaster
04.12.2011, 13:18
Ich denke, Du solltest erst einmal mit Dir ins Reine kommen, Dein Alkoholproblem bekämpfen, und dann erst auf andere Menschen zu gehen.

Nach meiner Auffassung haben solche Bemerkungen nichts in einem öffentlichen Forum - und insbesondere nicht in diesem - zu suchen. Ich bitte auf soetwas künftig zu verzichten.

FrankSpecht
04.12.2011, 13:44
Moin, pauli,

ABAP ist eine "heutige Programmiersprache" *kopfschüttel*
Mein Fehler! Ich bitte um Entschuldigung.

pauli
04.12.2011, 17:57
Moin, pauli,

Mein Fehler! Ich bitte um Entschuldigung.
ist ok :-)

Nathan5111
05.12.2011, 00:09
- und insbesondere nicht in diesem - .

Danke für den Hinweis, ich habe verstanden.

Adieu.

Nathan5111
05.12.2011, 02:20
meine probleme gehen dich nichts an

Ich wünschte mir nichts sehnlicher!

Leider trägst Du Deine Probleme ständig und für alle sichtbar vor Dir her!

Lies Dir einmal in einem lichten Moment, sofern es diesen momentan überhaupt gibt, alle Deine Beiträge durch. Du wirst Dich wundern! (Ich weiß. wovon ich rede; vor ca. 8 Jahren habe ich auch mal 15 Monate auf einem 2-Promille-Level gelebt.)

pmvstrm
05.12.2011, 08:34
Hi Frank


Mein Fehler! Ich bitte um Entschuldigung.
Mag sein das Du ABAP nicht sofort als eine Programmiersprache identifizierenkonntest (außerhalb des SAP Mikrokosmos hat sie auch keine Bedeutung)
aber selbst ich weigere mich so etwas wie ABAP Programmiersprache zu nennen!;)

ABAP Hello World


PARAMETERS INPUT(12) DEFAULT 'Hello World!'.
CALL SCREEN 100.
SKIP TO LINE 10.
POSITION 40.
WRITE 'Hello World!'.


Das kann man aber noch toppen, siehe RPG:)

RPG Hello World


H* Hello World in RPG IV

D msg S 32 inz(*blank)
D cmd S 64

C eval msg = 'Hello World'

C msg dsply

C eval cmd = 'DLYJOB DLY(30)'
C call 'QCMDEXC'
C parm cmd
C parm 64 len 15 5

C eval *inlr = *on


Aber mein absoluter Favorit ist.....

The BrainFuck Hello World Programm;)



++++++++++[>+++++++>++++++++++>+++<<<-]>++.>+.+++++++
..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.


Ok, das ist jetzt zwar etwas schockierend, aber um zu verstehen, warum es solche Sprachen überhaupt gibt,
muss man den Kontext kennen. RPG z.B ist der direkte Nachfolger der Lochkartenprogrammierung gewesen und
hat daher histrorische Lasten zu tragen gehabt. ABAP wurde von Leuten entwickelt, die vor allem kaufmänisch
dachten und von COBOL und RPG geprägt waren und es etwas besser machen wollteb. BrainFuck ist eine Esoterisch,
nicht für den Alltagsgebrauch konzipierte, minimale, Turingkonforme Sprache mit der Zielsetzung eins möglichst
kleinen und kompakten Compilers. Hier geht es also quasi um die Grundlagenforschung für Programmiersprachen.

Ein ähnliches Konzept einer esoterischen Programmiersprache ist die Sprache Chef.
Der Erfinder wollte eine Programmiersprachen realisieren die Kochrezepte als Programmieranweisungen versteht:)


Hello World Programm in der Programmiersprache Chef


Hallo-Welt-Soufflee

Ingredients.
72 g haricot beans
101 eggs
108 g lard
111 cups oil
32 zucchinis
119 ml water
114 g red salmon
100 g dijon mustard
33 potatoes

Method.
Put potatoes into the mixing bowl.
Put dijon mustard into the mixing bowl.
Put lard into the mixing bowl.
Put red salmon into the mixing bowl.
Put oil into the mixing bowl.
Put water into the mixing bowl.
Put zucchinis into the mixing bowl.
Put oil into the mixing bowl.
Put lard into the mixing bowl.
Put lard into the mixing bowl.
Put eggs into the mixing bowl.
Put haricot beans into the mixing bowl.
Liquefy contents of the mixing bowl.
Pour contents of the mixing bowl into the baking dish.
Serves 1.


Es gibt auch Sprachen, die zum Ziel haben das Programmieren so schwer und masochistisch wie möglich zu machen,
am Anfang war die Programmiersprache C sogar dafür entworfen (laut deren Erfindern)

Hier ein paar Infos von den C Erfindern über C
Brian und ich hatten gerade begonnen, mit einer frühen Form von Pascal zu arbeiten, das von Professor Nichlaus Wirths Lehrgebiet an der ETHZ in der Schweiz entworfen wurde. Wir waren von der eleganten Einfachheit und Mächtigkeit der Sprache sehr beeindruckt. Dennis hatte gerade das Buch "Der Herr der Augenringe" zu Ende gelesen, eine urkomische Parodie auf Tolkiens großartige Trilogie "Der Herr der Ringe". Zum Spaß begannen wir, eine Parodie auf die Multics-Umgebung und Pascal zu erstellen. Dennis und ich waren für die Umgebung verantwortlich.

Wir schauten auf Multics, und entwarfen das neue System so komplex und kryptisch wie möglich, um die Frustration gewöhnlicher Benutzer so hoch wie möglich zu machen, und nannten es UNIX als Parodie auf Multics, ebenso wie einige andere Anspielungen innerhalb des Systems. Dann begannen Dennis und Brian an einer wirklich verzerrten Version von Pascal zu arbeiten, genannt 'A'. Als wir merkten, daß andere tatsächlich vorhatten, Programme mit 'A' zu entwerfen, fügten wir rasch zusätzliche kryptische Eigenschaften hinzu, und entwickelten daraufhin B, BCPL und schließlich C.

Gruß, Peter

Runzelrübe
06.12.2011, 12:11
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.

Oh ja, wenn es beispielsweise um Millisekunden geht, wie bei Resonanz in Windkraftanlagen, da lernt man so ein System zu schätzen.

Solarius
06.12.2011, 19:59
Vielleicht ist dies hilfreich:
http://www.pro-linux.de/news/1/17797/programmierwettbewerb-plat_forms-2011-sieht-ruby-in-fuehrung.html
Ruby ist genau wie Python eine Scriptsprache. Und sie ist Python recht ähnlich.

eeralfcosmo
08.12.2011, 01:20
Wirth hat vermutlich auch mit oberon angefangen , das erste betriebsystem auf basis objectorientiert

seis drum, pacal ist echt gut, ok c wird vom compiler besser umgestezt, aber die vorteile von pascal liegen in der eigen dokumetation und besseren syntax

versuch mal einen fremden source von einem C programmierer zu lesen, oder pascal programmierer, die wartbarkeit bei pascal ist besser, und wenn ich geschwindigkeit haben moechte dan benutze ich assembler

Ralf

edit

habe mich auf eine vorheriges posting bezogen, sry

eeralfcosmo
08.12.2011, 01:30
Oh ja, wenn es beispielsweise um Millisekunden geht, wie bei Resonanz in Windkraftanlagen, da lernt man so ein System zu schätzen.

milisekunden, da gehts nicht um programmiersprachen, da gehts um die jeweiligen Rechner, oder?, ich weiss das Cobol langsam ist , aber fuer mathematiche aufgaben hat man Fortran eingesetzt

Alex74
30.12.2011, 11:14
So, mal einen aktuellen Stand:

Ich habe nochmal mehrere Informatiker hier gesprochen, die mir fast geschlossen zu Java raten. Nach noch weiteren eigenem Begutachten der Situation wirds das dann auch werden; irgendwann im Neuen Jahr dann, vermutlich aber erst wenn ich mir dann einen (ohnehin fälligen) neuen Rechner einrichte (8 GB, Win 7, AMD Phenom II, im Augenblick 2 GB, XP-32 und Core2Duo...was für Studioarbeiten hart an der Grenze ist).

Gruß Alex

pmvstrm
30.12.2011, 11:42
Sers Alex

Schön das Du da voran gekommen bist. Ich persönlich hätte Dir aber nicht zu Java geraten, aber mehr aus ethischen und politischen Gründen, denn der Leistungsfähigkeit wegen.Der Grund ist einfach: Oracle, die Firma die Sun Microsystems 2010 geschluckt hat, fährt nun einen völlig anderen Kurs als SUN es selbst getan hat. Java lebte bis bis zu diesem Zeitpunkt vor allem von der Unterstützung der OpenSource gemeinde und der offenen
Community Kultur, die jedoch hat Oracle komplett, durch sein widerliches gebaren kaputt gemacht. 80% aller wichtigen Aktivitäten wurden von der Apache Foundation geleitet, aber die ist nun aus dem Java JCP (Community Process) ausgestiegen und distanziert sich von Oracle und Java.Auch
Google und IBM haben große Beiträge zu Java geleistet und der Community geschenkt (ebenso Apple) aber damit ist es jetzt auch vorbei, vor alle
weil Oracle derzeit versucht Google durch blanke Geldgier und Patenttrollerei massivst juristisch zuzusetzen und nach dem dann auch der Java
Vater und Programmierlegende Jams Gosling bei Oracle, nur kurze Zeit nach der SUN übernahme bei Oracle gekündigt hat, bin dann auch ich langsam aber sicher aus der Java Welt abgewandert.Es gab für mich zwei Alternativen. Entweder Python oder C/C++, es wurde dann wieder C/C++ und ich bin nicht unglücklich darüber. Ich kann damit alles machen, kann mehrere Compiler nutzen und der größte Teil der Software auf der Welt ist in C/C++ geschrieben.Aber wie auch immer: Java ist keine schlechte Programmiersprache. Man kann einiges damit machen, nur für 3D-Engines und Spiele reicht es auch nach Jahren noch immer nicht an C/C++ ran und das wird sich vermutlich auch nicht mehr ändern.Die meisten Java Programme in der heutigen Zeit laufen auf fetten Servern in Banken und generell im Wirtschaftsbereich.

Zur Performance: Dein Rechner den Du jetzt hast reicht dicke für Java, allenfalls dein Betriebssystem braucht vielleicht ein Update:) (z.B Win7)

Studio und Co.Also ich arbeite ebenfalls mit einem Core2Duo und 8 GByte Ram auf Windows Vista 64-Bit und mit Steinberg Cubase 5.1 und
die Leistung ist völlig ausreichend (und das obwohl ich mit vielen MIDI und Audiospuren arbeite.

Du kannst ja mal reinhören, ich mache ja auch schon etwas länger Musik (allerdings mehr im Elektro / Trance Bereich)

Siehe hier:
http://www.astronews.com/forum/showthread.php?5718-Mein-Musikprojekt-(E-Bereich-Trance-House-Elektro)

Gruß, Peter

Alex74
30.12.2011, 12:24
Klar ist der Core2Duo gut, fürs Studio kann man aber nicht genug haben...daher ;-)
Ich habe mir jetzt Studio One V2 zugelegt, bin mal gespannt ob ich da als langjähriger CuBase-User gut reinkomme.
Ich habe momentan fast alles outboard, was sich aber änden soll, daher strebe ich eine möglichst hohe Performance an, der AMD X6 sieht da auch preislich sehr gut aus.

Hm, das mit Java stimmt bedenklich. Allerdings ist mir jeder sympathisch der Google verklagt. :rolleyes:

C++ war auch die Alternative die genannt wurde. Ein wenig Zeit ist ja noch. Ich halte Euch auf dem Laufenden :-D

Gruß Alex

Chrischan
30.12.2011, 13:12
Hi Alex,

auch wenn ich mich erst recht spät melde, aber da Du schreibst
Ein wenig Zeit ist ja noch.gebe ich doch noch kurz meinen Senf dazu.

Entscheide dich für eine Sprache die dir liegt! Es bringt nichts, wenn Du dich für eine leistungsfähige und moderne Sprache entscheidest, für die Du aber immer ein Buch benötigst beim Programmieren... Du willst das Ganze ja eher Hobby-mässig für kleinere Projekte betreiben und nicht professionell.

Ich persönlich konnte mich nie mit C++ anfreunden. Liegt mir einfach nicht. Wenn es mal C++ sein musste, dann wurde das bei mir eher ein altmodisches C-Programm...
Wenn es mal auf die Schnelle ein kleines Proggi sein sollte, dann arbeite ich meistens mit Visual Basic. Da braucht man sich beim programmieren keine großen Gedanken machen über die Befehle und Programmstruktur. Für etwas performantere n-Körper Simulationen habe ich mich aber auch mal in CUDA und Direkt-X eingearbeitet, was nur mit C++ ging...
Delphi nutze ich manchmal bei Client/Server-Anwendungen.
Kleine Apps für's (Android-)Smartphone schreibe ich (zwangsweise) in Java und die Microcontroller werden noch in Assembler oder auch in C programmiert.
Die Eierlegende-Wollmilchsau unter den Programmiersprachen habe ich noch nicht gefunden...

Aber wie bereits oben geschrieben, für was auch immer Du dich entscheidest: Es muss dir liegen.
Sonst vergeht dir schnell die Lust wenn Du nach einem halben Jahr Abstinenz mal kurz was testen willst und Du nur Fehlermeldungen von der IDE bekommst ("Wie war das noch mal?". Suche in alten Sourcen oder Büchern, etc. nervt).

Gruß,
Christian

pmvstrm
30.12.2011, 15:06
Hi Alex,
Das kannst Du ja in Ruhe entscheiden. Wenn Du aber mit C/C++ anfangen solltest, dann kann ich Dir auf jeden Fall den GNU C/C++ Compiler empfehlen anstatt den Visual C/C++ Compiler von Microsoft.Die Compiler Collection (GCC) ist so ziemlich das universellste, Schweizer Taschenmesser und Du bekommst auf jedem System sogar auf dem Amiga oder Atari den Fuß in die Tür (sogar auf Googlse Android mit dem native SDK). Auch kannst Du damit deine neue DAW Software StudioOne erweitern/beglücken siehe Dev Seite von Presonus: http://www.presonussoftware.com/en_US/index.php?id=developer (z.B wenn Du willst
das Dir das Ding bei jedem Start guten Tag sagt oder für den nächsten, fetten Killer VST Synth oder VST Effect PlugIn.Zurück zu GNU. Die GNU Compiler Collection hat schon in vielen Projekten (von Linux bis KDE, Unix bis Windows und Dos) gezeigt was sie drauf hat und das for free/kostenlos.Auch ethisch mag ich die GNU Tools weil die Macher dahinter (wie z.B Richard Stallmann) einfach Legenden und Weltverbesserer sind die mir mehr zusagen als irgendwelche MegaCompanies.

Hier ein nettes Video vom guten Dr Stallmann über seinen Lieblings Texteditor, den EMacs;)

http://www.youtube.com/watch?v=S76pHIYx3ik

Gruß, Peter

freaky
02.01.2012, 13:44
Also ich würde schon mal sagen, dass da deine Kenntnisse schon ganz schön lange her sind. In der Programmiersprache hat sich jetzt schon verdammt viel geändert.
Ich würde das nochmal etwas überdenken. Es kommt ja auch darauf an was du Programmieren willst. Inzwischen gibt es da so viele Sprachen das es schon abhängig davon ist was dein Ziel ist.
Webprogrammierung ist relativ bequem zu lernen und sicher auch so (Job, Privat) von Vorteil.

pmvstrm
02.01.2012, 15:34
Erstmal willkommen.


Also ich würde schon mal sagen, dass da deine Kenntnisse schon ganz schön lange her sind. In der Programmiersprache hat sich jetzt schon verdammt viel geändert.

Kannst Du mal ins Detail gehen? Welche Programmiersprache meinst Du (C oder C++ oder Java)? Alle diese Sprachen haben sich massivst verändert und Ich kann mich nicht erinnern eine bestimmte VersionsNr genannt zu haben. Aktuell sind jedoch alle 3 und nebenbei die wichtigsten Porgrammiersprachen der Welt (besonders C/C++ schon seit jahrzehnten).

Gruß, Peter

freaky
11.01.2012, 11:17
Ehrlich gesagt verstehe ich jetzt grad nicht was du meinst :confused:
Ich hab eher auf die Ausgangsfrage des Threads geantwortet wo es hieß, dass der Ersteller 15 Jahre aus dem Job raus ist...und in der Zeit hat sich so zielmich alles geändert (egal ob Java, HTML,.....).
Was meinst du jetzt mit Version??? Die iist doch egal wenn es 15 Jahre her ist???

pmvstrm
16.01.2012, 14:02
Hallo Alex,
Ein wichtiges Argument für die Entscheidung einer Programmiersprache wurde hier noch nicht angesprochen.Es ist eine Tatsache das die CPU Frequenzen nicht mehr steigen (the free Lunch is over) und das schon seit Jahre.Dafür werden immer mehr Kerne verbaut, aber es gibt immer noch sehr wenig parallelisierte Programme.Es gibt Programmiersprachen die gut geeignet sind um die neuen Potentiale zu nutzen und welche die völlig ungeeignet sind.Eine verlässliche Automatik für die Lastaufteilung gibt es nicht.Mancher Code ist parallelisierbar und andere Teile sind es nicht (eine Grundbedingung für Mehrkernnutzung). Die Sprachen die am besten geeignet sind um Parallelisierung durchzuführen, sind Funktionale Sprachen wie ANSI C.Alles OOP zentrierte ist eher ein Hindernis.Faktisch gibt es momentan nur ein Framework und das auch nur für C++ .Bei allen anderen Sprachen sieht es noch düsterer aus und es kann gut sein das hier eine große Marktbereinigung für Programmiersprachen einsetzen wird.Vor allem ist es aber wichtig, das Neulinge die veränderte Welt verstehen und gar nicht mehr erst auf die Idee kommen, Programmcode zu entwickeln der Parallelisierung nicht unterstützt.Den besten Parallel und Mehrkern Support haben momentan noch Sprachen wie C und C++ und sämtliche Referenzimplementierungen erscheinen zuerst für diese Sprachen.Der große cleanout Prozess hat schon begonnen (das war auch nur eine Frage der Zeit). Eine völlig neue Klasse von Server und Desktopsoftware ist auf dem Sprung die alten Platzhirsche mit 1000x facher Performancesteigerung von der Oberfläche zu fegen. Einfaches Beispiel: Einer der schnellsten Webserver in der heutigen Zeit ist der russische NGINX OpenSource Webserver. Er schlägt den altehrwürdigen Apache2 und Microsoft IIS Webserver tausendfach in der Performance.Nun aber kommt ein Neuling auf dem Markt, der erstmals das volle Parallelisierungspotential heutiger CPU's nutzt und schlägt selbst NGINX noch mal um knappe 700.000 Request per Seconds bei statischen HTML und selbst bei dynamisch generieten Websites (in Form von C-Servlets).Um es noch mal auf den Punkt zu bringen: Diese Leistungssteigerungen finden auf gewöhnlicher Standardhardware und nicht auf Supercomputern statt und hier wurden noch nicht mal die Leistungsreserven heutiger GPU's in Form von CUDA oder OpenCL beachtet, die ebenfalls noch Parallelisierungspotential bieten und noch miteinbezogen werden können.

Gruß, Peter

AlphaCentauri
12.06.2014, 17:42
Ich würde speziell noch Ruby oder besser RubyonRails einwerfen wollen, ist aktuell der letzte Schrei in Sachen Webprogrammierung...