WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 27.05.2001, 05:37   #1
fran
Senior Member
 
Registriert seit: 06.02.2000
Beiträge: 174


Standard Programmieren mit und für Win+Linux

Hallo,
ich hab ein paar grundlegende Fragen zum Programmieren:

1. Wenn ich C/C++ oder Java Code schreibe - ist dieser dann grundsätzlich OS unabhängig und vom Compiler abhängig? - Kann ich z. B. einfach unter Linux auch Programme für Win und/oder umgekehrt schreiben?

2. Wie sieht es generell bezüglich Programmierumgebung und Flexibilität aus - bei Win und Linux: - ich meine, wenn ich z.B. C/C++ oder Java unter Win lerne, kann ich mit diesem Wissen auch Programme unter Linux schreiben?

Das klingt jetzt vielleicht etwas konfus. Ich möchte mich aber mehr mit richtiger Programmierung beschäftigen und weiß nicht mit welchem OS. Ich verwende Linux und Win - und möchte die Programmierkenntnisse möglichst mit beiden OS umsetzen können.

Ich bitte euch um Tipps

grüße
____________________________________
-- eof --
fran ist offline   Mit Zitat antworten
Alt 27.05.2001, 09:27   #2
Galileo
Veteran
 
Registriert seit: 18.11.2000
Beiträge: 303


Standard

also wenn du etwas in java schreibst läufts auf allen betriebssystemen, unter C musst schon betriebssystemabhängige compiler verwenden.
Galileo ist offline   Mit Zitat antworten
Alt 27.05.2001, 09:41   #3
pong
Inventar
 
Benutzerbild von pong
 
Registriert seit: 25.12.2000
Alter: 41
Beiträge: 9.063

Mein Computer

pong eine Nachricht über ICQ schicken
Standard

c/c++ sources kanns du unter win/linux schreiben des is egal, aber kompilieren musst du sie unter dem os wo die programme laufen sollen!

allerdings gibt es ein paar bibliotheken (header-files) die nur unter win bzw linux vorhanden sind zB du wirst dos.h nicht unter linux finden und unixstd.h nicht unter windoof. aber ansonsten sollten deine programme überall laufen
____________________________________
\"Ein Gewitter reinigt die Luft\", sagte der Mann, nachdem ein Blitz seine Frau erschlug

Nicht klicken!


Erstposteralarm/Beschwerde/Kummerkasten


Verplattet
pong ist offline   Mit Zitat antworten
Alt 27.05.2001, 11:42   #4
artemisia
Elite
 
Registriert seit: 07.02.2001
Beiträge: 1.441


Standard

@fran

in java kannst du natürlich applikationen für beide os schreiben (insbesondere wenn diese in einem browser ablaufen sollen), da java sowieso mit einem bytecode arbeitet.
zu c: die progs die du in c schreibst, möchtest du wahrscheinlich mit gui-elementen ausstatten. in so einem fall benötigst du bibliotheken, die auf beiden sys installiert werden können. die qt-lib. von troll ist so eine.
progs die als funktionen nur intern daten verarbeiten und an ein aufrufendes mainprog zurückgeben, können natürlich unter einem beliebigen os compiliert werden, auf dem die standard c oder cpp bibliotheken installiert sind.
wenn du zb eine hervorragende neue sortier-routine schreibst, die schneller und besser abläuft, als quick- oder heap-sort kannst du diese auf den verschiedensten os einsetzen.

greetz artemisias

ps: falls du es schaffst mit der sortier-routine, meld dich doch bitte ))
artemisia ist offline   Mit Zitat antworten
Alt 27.05.2001, 19:02   #5
fran
Senior Member
 
Registriert seit: 06.02.2000
Beiträge: 174


Standard

Hallo - und danke für eure Tipps;

bei Java ist mir die Plattformunabhängigkeit durch den Bytecode prinzipiell klar - solange es bei Applets bleibt.

Bezüglich C/C++ würde mich interessieren, wo man einen betriebssystemunabhängigen Compiler und Infos zu entsprechenden Bibliotheken bekommen kann;

Ansonsten merkt man erst im Nachhinein, welcher Code nicht kompatibel ist - und muss entsprechende Änderungen vornehmen.

Ich habe bisher nur etwas Erfahrung mit Scriptprogrammierung im Internet, ansonsten bin ich diesbezüglich ein absoluter Anfänger.

Grüße fran

____________________________________
-- eof --
fran ist offline   Mit Zitat antworten
Alt 27.05.2001, 23:10   #6
artemisia
Elite
 
Registriert seit: 07.02.2001
Beiträge: 1.441


Standard

@fran



den gcc compiler gibt es sowohl für linux als auch für win.

in linux ist er standardmässig in jeder distribution installiert . die entsprechenden doc's sind als manpages oder im info-sys integriert.

den gcc für windows erhält man zb hier:
http://bird.musik.uni-onsabrück.de/edv/gcc-inst.html

und informationen über die qt erhälst du
hier:
http://www.trolltech.com



greetz artemisias
artemisia ist offline   Mit Zitat antworten
Alt 28.05.2001, 01:05   #7
kikakater
Inventar
 
Registriert seit: 24.01.2001
Beiträge: 5.631


Standard

Plattformunabhängig zu programmieren ist eine Sache des Wissens, der Erfahrung und der Disziplin. Die Erfahrung wie was wo wann muß man machen, dann kommt eben dadurch DAS WISSEN (um die Umstände) und dann erst die Disziplin (das Wissen JEDESMAL korrekt umzusetzen).

Es gibt Maschinen (gemeint ist CPUs), die sogenannte Big-Endian Prozessoren sind, oder Little-Endian Systeme (CPUs also).

Big-Endian bedeutet das bei einem Wort (16bit Wert) das niederwertige Byte zuvorderst und hintan das höherwertige Byte im Speicher abgelegt wird. Bei einer Little-Endian CPU passiert das genau umgekehrt.

Falls man binäre Datendateien zwischen den Systemen austauscht und nicht mittels Makros die Bytefolge in der Datei innerhalb des Wortes (16bit Wert) anpaßt, kommt es zu Bytedrehern und insofern zu Inkompatibilitäten auf Datenebene und nicht nur auf prozeduraler Ebene, daß nämlich Funktionen anders heißen auf einem anderen System, beispielsweise. Gemeint sind Systeme: PowerPC, x86 code Kompatible, HP PA RISC, DEC Alpha etc.

Die wirklich professionelle Entwicklungsumgebung heißt Daten- und Procedure- Repository, das ist nicht anderes als das Speichern der Ausprägung von Datenvariablen wie auch Datenfeldern, die auch als Keyfelder daherkommen können, wie auch das Wiederverwenden von Codeteilen sowie den automatischen Einsteuerungsmechanismus von Datentypen beim Codieren, sodaß es garnicht zu inkompatiblen Datentypen beim Aufruf wie dem Ausführen der eigentlichen jeweiligen Funktion kommt. Gespeichert wird so ein Repository - das ein Nachschlagewerk darstellt - in indexsequentiellen Dateien wie auch in SQL-Tabellen gegebenenfalls.

Der Weg zu portablen Programmen führt über Bibliotheken, die eine technische Umsetzung der systemeigenen Befehle und Verfahren auf prozeduraler Ebene bieten außen aber eine einheitliche Schnittstelle anbieten. Das ganze stellt eine Prozedur dar, ist abgekapselt und wird somit als Modul oder Kapsel bezeichnet (Black Box sozusagen).

Umsetzung einer Routine zum Öffnen eines grafischen Fensters auf den einzelnen Systemen auf unterschiedliche Art und Weise.

Beispiel:

Öffnen eines Fensters (Funktion, die Schnittstelle ist allgemein"gültig")

z.B:

Öffnen eines Fensters in Windows
Öffnen eines Fensters unter X(-Windows).


Die zweite Notwendigkeit ist es, daß allgemeingültige Routinen, die nur in ganz engen Punkten systemindividuelle Anpassungen fahren müssen, die Entscheidung aus einem jedem System beigegebenen (selbst programmierten) Modul in Erfahrung bringen können, welche Systemanpassungen auf System xy notwendig sind.

sys = InquireSystem(); // InquireSystem enthält Code, der einen Wert je System zurückliefert, z.B. WINNT 1, Linux 2 usw. (das ganze ist sehr allegemein gehalten, in die Lösung eines solchen Problems fließt in der Regel das Gehirnschmalz, Unterversionen von Linux, Windows NT etc. ... wie zu implementieren ?)

deswegen hier nur sehr global ausführend ... :

Abfrage des "System-Code(werte)s" in einer an und für sich schon allgemeinen (portablen) Funktion (bzw. Funktionenlandschaft also Ansammlung von Funktionen (printf,sprintf,fprintf)).

if( sys == SYS_LINUX ) { do_something_linux_specific(); }
else if( sys == SYS_WINNT ) { do_something_winnt_specific(); }
....

usw.

Ich schreibe eine Ausgabefunktion printf oder mehrere, die sich ähneln printf,sprintf,fprintf, und baue Abfragen auf den Systemcode, der von InquireSystem zurückgeliefert wird, ein.

C++ hat den Nachteil größeren Code zu liefern und wirklich extrem down-top Programmieren vorauszusetzen, eine Scheiße für sich.

Java ist Schwabbel-Code, d.h. in der Regel - zumindest noch - langsam.

Das beste ist - meiner Meinung nach - C mit Repository RAD Umgebung, das ganze ist codekompakt, schnell, professionell genug und durchdacht einfach und auch genial lösungsorientiert (erfolgreich).

C++ ist was für große Teams, die unter Zwängen stehen (Termindruck, Kapselautomatik durch Memberzugriffsrechte, Methoden und Vererbung, Überladen von Funktionen), aufgeblähter Code und Abstürze in Grenzsituationen, die jedes C programmierte System locker wegsteckt, sind die Folge. Schon mal Visual C++ programmiert, noch dazu mit MFC, da kommt einem das Grauen, ebenso bei Microsoft Java Umsetzungen, wo eigene Extensions "angeboten" werden ... , ... - so - wie die Hexe ihren Gifttrunk 'einem' anbietet. Finger weg ! Profis coden nach wie vor in Cobol, plattformunabhängig ! und eben mehr und mehr in C mit eben solchen Hilfsmitteln oder gedrungenermaßen eben in C++ oder Sun Java.

Microsoft oder auch Borland C++ und Kollegen ist Kindergarten-Mühsal mit 'an die Wand-fahr Garantie'. Der gcc ist einzig, das Wahre, um Codebibliotheken für mehrere zigtausend Mark/Dollar angereichert oder eben SELBST programmiert, das ist Sache. Visual C++ usw. ist etwas für Einsteiger, sicher nicht für ernsthafte plattformübergreifende Programmierer(teams).

mfg Kikakater
kikakater ist offline   Mit Zitat antworten
Alt 28.05.2001, 05:30   #8
fran
Senior Member
 
Registriert seit: 06.02.2000
Beiträge: 174


Standard

@artemisias
danke nochmals. Könntest du bitte den gcc-link überprüfen; oder ist es nur ein kurzfristiger Serverausfall.
Naja - mit einer Sortier-Routine von meiner Seite wirst Du Dich wohl noch etwas gedulden müssen ... aber erste Schritte darf sollten bald folgen ;-)

liebe grüße
____________________________________
-- eof --
fran ist offline   Mit Zitat antworten
Alt 28.05.2001, 09:23   #9
artemisia
Elite
 
Registriert seit: 07.02.2001
Beiträge: 1.441


Standard

@fran

sorry mit dem gcc-link... weiß im mom auch ned, warum der ned funzt, werd mich mal drum kümmern und geb dir bescheid

greetz artemisias
artemisia ist offline   Mit Zitat antworten
Alt 28.05.2001, 18:38   #10
artemisia
Elite
 
Registriert seit: 07.02.2001
Beiträge: 1.441


Standard

@fran

sorry, der link muß natürlich so heißen

http://bird.musik.uni-osnabrueck.de/edv/gcc-inst.html

viel spaß

greetz artemisias
artemisia ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:29 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag