• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Programmiersprache gesucht

AndreasHL

Newbie
Hallo,

welche Programmiersprache ist sowohl unter Linux als auch unter Windows einzusetzen ? Bzw. anders ausgedrückt:: das Programm soll sich eben unter beiden BS aufrufen lassen. Speicherfunktion von Daten ist wichtig. Kommt da auch Java in Frage ?

Am besten ganz was einfaches ähnlich wie Basic, da ich absoluter Anfänger bin. (Aber auch lernwillig).

Gruss

Andreas
 

gameboy

Hacker
Hallo AndreasHL,

es gibt eine ganze Reihe von Programmiersprachen (unter anderem auch Java, Perl, Python, Ruby), in denen man grundsätzlich Programme schreiben kann, die sowohl unter Linux als auch unter Windows laufen. Du solltest also schon etwas umfangreichere und präzisere Anforderungen an Dein Programm haben, um eine geeignete Wahl treffen zu können...

Viele Grüße,
gameboy.
 

homer65

Hacker
Hallo AndreasHL,
gebe meinem Vorredner Recht. Ohne genauere Aunforderungen deinerseits, ist schwer zu entscheiden, was für eine Sprache für dich sinnvoll ist. Wenn du z.B. systemnah programmieren willst, wäre Java völlig ungeeignet. Geht es dir um plattformunabhängigkeit, wäre Java sicherlich sinnvoll.
Christian
 

regexer

Advanced Hacker
Nun ist die Frage, was du unter "Speicherfunktionen" vestehst. Willst du eine bestimmte Datenbank ansprechen? Oder einfach nur in Textfiles herumlesen und schreiben.

In letzterem wäre perl sehr mächtig. Als Anfänger mit etwas Programmier-Erfahrung ist das "Lama-Buch" (Benutze bitte die Suchfunktion) emfpehlenswert. Es enthält eine gute Beschreibung dieser Scriptsprache und viele Übungen.

Nachteil ist nur, dass sich perl eher an C als an BASIC anlehnt. Java übrigens auch ...
 
Moin AndreasHL,

was die Mächtigkeit von Perl bei Textbearbeitung angeht, kann ich notoxp nur voll beipflichten. Das schönste ist das Du bei Verwendung der richtigen Module dir nicht mal Gedanken machen mußt unter welchem Betriebssystem dein Skript ausgeführt wird, da diese Module das selbstständig erkennen und deine Aufrufe entsprechend umwandeln. Das ist eines der Features von Perl die mich echt vom Hocker gehauen haben.

Was die Einfachheit angeht: Laß die Finger von den ganzen Abkürzungen die man gehen kann, dann ist Perl recht einfach zu lernen und zu schreiben. Schwierig wird es nur wenn Du ganz 'schlauen' Code schreiben willst, aber das ist wohl bei jeder Sprache so. Ansonsten wirst Du mit Perl sehr schnell deine ersten 'mächtigen'¹ Programme schreiben können.

Da dir die einfachen Konstrukte wie Schleifen und Ähnliches vetraut sind, kann ich dir ebenfalls das Lamabuch empfehlen, ich habe es mir gerade selber gekauft (siehe http://www.linux-club.de/viewtopic.php?t=52316) und entdecke immer noch wieder Punkte in denen Perl mich überrascht (positiv wie negativ). Wenn Du allerdings über das Einsteigen hinaus kommst, wirst Du wohl um das Kamelbuch nicht herum kommen, es sei denn dir langen dann die englischen Perldocs.



¹ das ist nicht abwertend gemeint, sondern so das Du mit wenig Zeilen sehr viel Gutes wie Schlechtes anrichten kannst. Perl wurde/wird nicht umsonst als Nachfolger vieler Kommandozeilenprogramme angesehen.
 

joka

Member
Wie meine Vorredner würde ich am Anfang eine Skriptsprache empfehlen. Tcl, Perl, Python und Ruby sind alle plattformunabhängig. Das Linux-Magazin Sonderheft Skriptsprachen stellt diese Sprachen in leicht verständlichen Einstiegsartikeln vor.

Über die Frage, welche Sprache die einfachste, mächtigste, wartbarste und beste ist, gab es schon endlose Diskussionen. Hier ein kurzer, alter humorvoller Python-Perl-Vergleich: Python vs. Perl according to Yoda.
(Meine Lieblings-Skriptsprache ist übrigens Tcl).
 

Torben

Member
du könntest auch mit delphi programmieren, dann kompilierst die programme für windows mit delphi unter windows und die programme für linux unter linux mit lazarus (zumindest werde ich das so machen)

ich programmier allerdings mit delphi weil wir das gerade in der schule lernen, kann also nicht sagen wie gut oder schlecht es ist (ich würde ja lieber c++ oder so können :( )

edit: da fällt mir ein, ich würde ja gerne spiele programmieren können, welches sprache ist dafür am geeignetesten? würde mir dann bücher usw. dazu besorgen, so als hobby.
 
gameboy schrieb:
es gibt eine ganze Reihe von Programmiersprachen (unter anderem auch Java, Perl, Python, Ruby), in denen man grundsätzlich Programme schreiben kann, die sowohl unter Linux als auch unter Windows laufen.
C-Programme laufen auch ueberall!, z.B.
Code:
#include <stdio.h>
int main(void) {
    printf("Hello world\n");
}
 
OP
A

AndreasHL

Newbie
Hallo,

erstmal ein dickes Dankeschön für die vielen Antworten :D .

Eine Erklärung ist natürlich fällig, ich versuche, mich kurz zu fassen.

"Programmiert", wenn ich das so nenne darf, habe ich viel in Word Basic, also der Programmiersprache von Word 6.0. Leider wurde ab Word97 WordBasic zugunsten VBA gestrichen, und VBA habe ich mir leider nicht angewöhnt.

In WordBasic habe ich sehr viele (einfache) Makros programmiert, ich habe nach und nach eine große Formular- und Datensammlung in unserer Dienststelle aufgebaut.

So, genug auf die Schulter geklopft, ist Schnee von gestern.

Ich möchte bestimmte persönliche Daten erfassen, am besten als Textfile. Es soll eine Maske geben mit den "Stammdaten" und Schaltflächen, um ggfls. weitere Daten anzuzeigen.

Z. B. Name, Vorname, Geb.-Dat., Anschrift in der Grundmaske. Und dann Schaltflächen, um Angaben zur Renten- und Krankenkenversicherung, zum Sozialamt usw. abzurufen.

Weiter soll eine Terminverwaltung integriert werden. Und eine Schnittstelle zur Textverarbeitung, damit die grade angezeigten Daten ganz oder teilweise in die Textverarbeitung übernommen werden.

Mir wird schlecht. Was ist von diesem meinem Wunsch realisierbar und in welcher Zeit ? Ich glaube, da habe ich mir zu viel vorgenommen :shock: . Oder ?

Gruss

Andreas
 
nun, das ist ja schon eine ganze menge, wenn es hier um graphische oberflächen geht, dann brauchst du dafür schon so einiges an zeit.
ich persönlich bin absoluter c++ fan und kann dies auch jedem nur empfehlen, der sich mit der materie etwas näher auseinandersetzen will. es ist bestimmt nicht die am schnellsten zu erlernende sprache, aber mit qt (q++) finde ich es einfacher, als java (awt), was wir momentan in der schule machen.
hier mal ein beispiel, wie das dann konkret aussieht: http://doc.trolltech.com/4.1/tutorial-t1.html
 

homer65

Hacker
Im Gegensatz zu Doniel bin absoluter Java Fan. Hatt eben jeder so seine Vorlieben. :lol:
Um mal in Java hineinzuschnuppern gibt es ein gutes Online Buch:
http://www.galileocomputing.de/openbook/javainsel4
Habe damit vor zwei Jahren selber angefangen Java zu lernen.
So eine Anwendung, wie du skizziert hast, ist damit sicherlich zu machen. Etwas Mühe macht da sicherlich die GUI, aber das ist auch nur eine Frage der Übung. Ich würde dir auch empfehlen gleich eine Datenbank für die Speicherung deiner Daten zu benutzen.
Ansonsten wünsche ich dir noch viel Spaß beim deinen ersten "Gehversuchen".
Christian
 

TeXpert

Guru
Textverarbeitung ist wieder vielschichtig ;) wenn es immer noch um MS Textverarbeitungen geht: nimm Perl und die OLE-Funktionen, das ist echt witzig :)

OpenOffice ist etwas offener, hier würde ich aber auf Java oder Python setzen, für die beiden Sprachen gibts gute UNO-Bindings... (Die OOo-Schnittstelle)
 
Bei Java fehlen halt "Walking Pointer". Was du in C (und entspr. Assembly) wie folgt machen kannst
Code:
const char *x = "Hello world\n";
while(*x != '\0')
    putc(*x++);
dauert in Java viel laenger, weil man ne extra Zaehlvariable nehmen muss, weil man charAt nehmen muss:
Code:
String x = "Hello world\n";
for(int i = 0; i < x.length(); ++i)
    System.out.print(x.charAt(i));
Kurzum: alle diese Function Calls machen gewiss nen Overhead.
 

TeXpert

Guru
naja :) ob man sich jetzt nur wegen der pointerschiesserei von Java abwenden sollte...

Wenn Du häufig auf char-Arrays rumrennen willst, geht in Java natürlich auch so was:

Code:
String foo = "Hallo ich bin eine Zeichenkette";
char[] fooarr = foo.toCharArray();

und dann kann man bequem mit fooarr spielen :) natürlich hat man auch hier einen kleinen Overhead, da Java kein fooarr[stringlength + X]-Zugriff zulässt, bei C musst Du da schon wieder selber aufpassen.

Java ist nicht a priori langsamer als C, es sei denn Du suchst genau solche Synthetischen Situationen aus... die Robustheit von java-Code macht leichte Performance-nachteile in diesen Situationen in vielen Fällen locker wett...
 

TeXpert

Guru
jengelh schrieb:
Schreib Seti@Home in Java, dann könn' wir den Vergleich ziehen.


*g* ich sagte in vielen Situationen :)

Numbercrunching gehört sicher nicht ganz zu den Idealen Vergleichsbereichen, aber der Punkt ist doch, dass in realen Business-Anwendungen selten diese Aufgabe gefragt ist ;) gerade bei modernen Rechnern verbringen (Schätzung von mir) 90% der Rechner 95% Ihrer Zeit im idle und warten auf die Usereingabe... insbesondere wenn wir hier auch über die hier gestellte Aufgabe reden ;)

klar, wenn wir uns mehr hin zum Scientific-Computing bewegen, dann kann (und sollte) man da mehr Überlegungen drüber Anstellen welche Sprache die richtige ist, aber so...

wie immer: es kommt darauf an, was man machen will.
 
TeXpert schrieb:
Numbercrunching gehört sicher nicht ganz zu den Idealen Vergleichsbereichen, aber der Punkt ist doch, dass in realen Business-Anwendungen selten diese Aufgabe gefragt ist ;)
Erklaert auch, warum die Server aller grossen Firmen die sowas verwenden, langsamer scheinen.
gerade bei modernen Rechnern verbringen (Schätzung von mir) 90% der Rechner 95% Ihrer Zeit im idle und warten auf die Usereingabe...
Denkst du! Hast du mal auf `top` und die Load Average bei _echten_ HTTP und FTP-Servern geguckt? Da wirste staunen.
 

TeXpert

Guru
OK, wir müssen jetzt unterscheiden zwischen Servern und den entsprechenden Prozessen (mit JBoss, Tomcat und Co hab ich mich noch nicht tiefergehend beschäftigt, da konnte ich mich bis jetzt vor drücken so dass ich die Performance Probleme nicht einschätzen kann, was FTP und Indianer bei größeren Seiten leisten hab ich schon gesehen...) und den Client-Maschinen unterscheiden.

Wobei, der Load ist auch nicht alles, auf einer X86-Maschine mit Linux und Load 50 macht arbeiten nicht mehr so viel Spass, aber ich durfte letztens etwas auf einer Sun E-Irgendwas machen, die war richtig flott interaktiv bei einem Load von 280....

Jetzt zurück zu meinen Zahlen, wenn ich dann mal in so ein paar größere Mittelständische Unternehmen (ganz grob um 1000 MA) schaue, dann finde ich da 20-50 Server für Datenbanken, Fileservice, Mail etc... und 1000-1250 Desktopmaschinen, und für die Desktops trifft das wieder zu ;) (auch viele Fileserver langweilen sich) nicht jedes Unternehmen betreibt Webseiten mit 1.000.000 PIs im Monat...

Deshalb, bitte jetzt nicht mit "Servern" argumentieren, wenn es hier um eine kleine Office-Applikation geht...
 

regexer

Advanced Hacker
jengelh schrieb:
Schreib Seti@Home in Java, dann könn' wir den Vergleich ziehen.
TeXpert schrieb:
Robustheit von java-Code macht leichte Performance-nachteile in diesen Situationen in vielen Fällen locker wett...
Naja, übertrieben gesagt sollte sich überlegen (wenn man denn wirklich die Wahl hat) ob man die 24 Stunden von LeMans fahren oder ein Feld umpflügen will. Dann sollte man als zweiten Schritt darüber nachdenken, ob man einen Audi-Rennwagen oder einen Traktor nehmen sollte.

Meine Erfahrung ist: Bei größeren Projekten wird den Informatikern diese Entscheidung i.d.R. abgenommen. In diesem Sinne habe ich schon oft genug ein Traktor-Rennen gefahren. :wink:
 
Oben