PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Linux welche Programmiersprache?



Seiten : [1] 2

schteff
22.01.06, 13:44
Hallo,

ich möchte eine Programmiersprache lernen und habe mir gedacht da ich jetzt Linux hab könnte ich doch gleich die Sprache lernen mit der Linux geschrieben ist!
Welche Sprache wäre dann das`?


Danke

Gruss
schteff

Ixot
22.01.06, 14:03
Linux (der Kernel) und GNU sind größtenteils in C verfasst, wage ich mal zu behaupten ohne es wirklich kontrolliert zu haben.

lfhelper
22.01.06, 14:06
Grösstenteils C, teilweise C++.

KDE zum Beispiel ist in C++ geschreiben,
doch die meisten anderen Programme in C.

EDIT:

Falls du kompletter Programmieranfänger bist ist C aber keine optimale Wahl.
Anfängern würde eher objekt orientierte Sprachen empfehlen zum Einstieg.
Meiner Meinung nach beste Wahl hierbei ist Java, gefolgt von C++.

Meillo
22.01.06, 14:21
Meiner Meinung nach beste Wahl hierbei ist Java, gefolgt von C++.... ich würde da eher PHP vorschlagen - der Einstieg ist ungemein leichter und nacher kann man immer noch auf Java/C(++) "upgraden"

IMHO: erst mal Programmieren an sich lernen, dann gut Programmieren lernen.

abd
22.01.06, 14:54
Für den Anfang evtl. Gambas
gambas.sourceforge.net
weil man damit schnell brauchbare Ergebnisse zustande bringt und das doch sehr motiviert.

tschloss
22.01.06, 15:02
Die Wahl der Sprache hängt auch davon ab, was du machen willst.

C, C++ wird mehr bei systemnahmen und/oder performancekritischen Themen eingesetzt.
PHP eignet sich gut zur Web-Programmierung.
Perl ist eine geile Skriptsprache, mit der viel Systemautomatisierung etc. machen kann.
Dann gibt es Makrosprachen, z.B. zu Office-Automatisierung.
Und und und.

Portabilität mag auch ein Kriterium sein.
Entwicklungsumgebungen auch.

Zum Erlernen einer ersten Programmiersprache undbedingt ein didaktisches Buch kaufen (kein Nachschlagewerk).
Pascal ist eine schöne Erstsprache, weil es so nett streng ist ;) Mit Perl als Erstsprache versaust du dir deine Programmierkariere sofort :D

Thomas

PierreS
22.01.06, 15:05
Python soll für den Anfang gut sein; leider hatte ich noch keine Zeit mich intensiver damit zu beschäfitgen. Aber ich glaube da lernt man eine saubere Sprache und erzielt schnell Ergebnisse.

lfhelper
22.01.06, 15:30
Ich wollte nur sagen dass "Programmiersprachen" wie Gambas/PHP/Perl
in der Regel nicht unter dem Fallen, was sich Programmieranfänger unter
einer "echten" Programmiersprache vorstellen.

Ausserdem sollte man IMHO lieber erst mal (echte) Programmiersprachen
lernen, die auch in der Industrie und Beruf gefragt sind, denn falls sich herausstellen
sollte, dass man talentiert ist, kann es sich auch positiv auf die Karierre auswirken,
anstatt dass man überflüssig Zeit/Talent mit einer "Nischensprache" verschwendet.

Hier schliesse ich mich auch der Meinung an, dass wenn man zuerst Sprachen
wie Perl lernt, es einen negativen Einfluss auf eventuell folgende Sprachen haben kann.

Insbesondere würde ich einem Anfänger davon abraten,
"extra leicht zu erlernende" Programmiersprachen zuerst zu lernen.
Wenn man von Anfang an eine "echte, schwere" Programmiersprache wie Java auf
niedrigen Niveau lernt, also mit einfachen Aufgaben zuerst, bringt das IMHO VIEL mehr,
als wenn man schneller "komplexere" Programme mit einer Playmobilsprache bastelt.
Daher rate ich auch von sog. RAD-Tools ab und lege jedem Programmieranfänger
wärmstens ans Herz, sich gleich an IDEs wie Eclipse oder KDevelop zu gewöhnen.

Gruss,
lfhelper.

sepp2k
22.01.06, 15:42
Grösstenteils C, teilweise C++.

KDE zum Beispiel ist in C++ geschreiben,
doch die meisten anderen Programme in C.
Falls das als Antwort auf die Frage sein soll, worin Linux geschrieben ist, möchte ich anmerken, dass KDE kein Bestandteil von Linux ist - nicht einmal, wenn man Linux als Synonym zu GNU/Linux versteht.

Was übrigens noch keiner erwähnt hat: Teile von Linux sind natürlich auch in Assembler geschrieben worden.

lfhelper
22.01.06, 15:52
@sepp

Darunter verstand ich die Frage womit man in der Linux-welt,also Linux-PROGRAMME, so programmiert,
oder denkst du wirklich ein Programmieranfänger würde sich an der Linux-Kernelentwicklung beteiligen (wollen)?
Ganz zu schweigen davon, dass sich der Linux-Kernel nicht in Perl und Gamba oder Java programmieren lässt?

Und dass KDE kein fester Bestandteil von GNU/Linux ist spielte aus o.g. Gründen keine Rolle.

Gruss,
lfhelper.

tschloss
22.01.06, 16:34
Ausserdem sollte man IMHO lieber erst mal (echte) Programmiersprachen
lernen, die auch in der Industrie und Beruf gefragt sind.... "Nischensprache" verschwendet.


Was ist denn eine "echte" Sprache? Das Kriterium, ob der Code interpretiert oder in einen Zwischencode compiliert und dann ausgeführt wird, ist für mich nicht entscheidend.
Ich weiss nicht, ob man PHP oder Perl heutzutage noch als "unechte" oder "Playmobil-" oder "Nischensprache" bezeichnen sollte. Es hängt halt wieder vom Einsatzzweck ab.

Thomas

Versin
22.01.06, 16:48
Ich würde Python empfehlen, Ruby gefällt mir zwar besser, aber ich denke, dass es zu Python mehr geeignete Bücher für Anfänger gibt.
Der Meinung von lfhelper kann ich mich nicht anschließen, ich sehe nichts schlechtes daran, mit einer "einfacheren" Sprache anzufangen.

sepp2k
22.01.06, 17:00
@sepp
Darunter verstand ich die Frage womit man in der Linux-welt,also Linux-PROGRAMME, so programmiert,
Ich halte die Formulierung "mit der Linux geschrieben ist" für relativ eindeutig. Sonst hätte er von den Sprachen geredet, mit denen unter Linux programmiert wurd.



oder denkst du wirklich ein Programmieranfänger würde sich an der Linux-Kernelentwicklung beteiligen (wollen)?
Wenn er Anfänger genug ist, die Schwierigkeit dieses Unterfangens nicht einschätzen zu können, ist das durchaus möglich (dass er's will - nicht dass er's tut).
Wobei der OP hier ja nur gesagt hat, dass er es in Betracht zieht, die Sprache zu lernen, in der Linux geschrieben ist - nicht dass er vorhat, selbst an Linux mit rumzuprogrammieren.

Meillo
22.01.06, 17:15
Ich würde Python empfehlen, Ruby gefällt mir zwar besser, aber ich denke, dass es zu Python mehr geeignete Bücher für Anfänger gibt.
Der Meinung von lfhelper kann ich mich nicht anschließen, ich sehe nichts schlechtes daran, mit einer "einfacheren" Sprache anzufangen.... dann würde ich aber doch eher zu PHP greifen, da dort gleich in der C-Syntax gearbeitet wird (wenn das Ziel C++ ist) und die Community ist um einiges größer

--

@lfhelper: wer in der heutigen Zeit Scriptsprachen, VB, etc nicht zu den "echten" Programmiersprachen zählt, der hat IMHO irgendwas nicht richtig verstanden!

lfhelper
22.01.06, 17:27
Es hängt halt wieder vom Einsatzzweck ab.

Thomas

... = Nischensprache.

C/C++/Java sind so mächtig, dass ich diese in keinem Fall als Nischensprache kategorisieren würde. Wenn man alles damit machen kann, kann man diesen Sprachen ergo nicht per se einen Einsatzzweck in die Schuhe schieben.

PHP = vorwiegend in Websprogrammierung.
Perl = vorwiegend in Automatisierung.
COBOL= vorwiegend in Buissnessanwendungen.
Assembler = vorwiegend in embedded oder Hochoptimierung.
usw. und sofort.

Hier kann man durchaus von Nischensprachen sprechen.

Java kann man höchstens noch vorwerfen, dass es für embedded-Maschienen
eher ungeeignet ist, da diese (meistens) nicht über JVM verfügen.

Ich will damit nur sagen, dass man "echte"- von Nischensprachen sehr wohl unterscheiden kann, _eben_ am Einsatzzweck.
Kein konkreter Einsatzzweck = meistens C/C++/Java(/Ada95/usw...).

tschloss
22.01.06, 17:27
Ich halte die Formulierung "mit der Linux geschrieben ist" für relativ eindeutig. Sonst hätte er von den Sprachen geredet, mit denen unter Linux programmiert wurd.
Schon, schon, aber die Form der Fragestellung ließ die Möglichkeit durchaus zu, dass der Fragesteller sich der Konsequenzen und Alternativen gar (noch) nicht bewußt ist.

Also Kernel-Aspirant oder nicht, die Beratung hier im Thread macht durchaus Sinn, meine ich.
Nur schade, dass der Fragesteller sich nicht mehr geäußert hat :D

Ist doch außerdem ein nettes Thema, um mal wieder Religionskriege auszutragen. :cool:

Thomas

lfhelper
22.01.06, 17:35
Ich halte die Formulierung "mit der Linux geschrieben ist" für relativ eindeutig. Sonst hätte er von den Sprachen geredet, mit denen unter Linux programmiert wurd.

Wenn er Anfänger genug ist, die Schwierigkeit dieses Unterfangens nicht einschätzen zu können, ist das durchaus möglich (dass er's will - nicht dass er's tut).
Wobei der OP hier ja nur gesagt hat, dass er es in Betracht zieht, die Sprache zu lernen, in der Linux geschrieben ist - nicht dass er vorhat, selbst an Linux mit rumzuprogrammieren.

Ich würde das ganze etwas realistischer deuten:
Wer jetzt gerade auf Linux umsteigt lernt nicht zwangsläufig
die Programmiersprache des Betriebssystems, in das er
jetzt umgestiegen ist.

Ich würde ganz einfach mal darauf setzen, dass er noch nicht
einmal weiss, was der unterschied zwischen Linux dem KERNEL
und Linux, was er sieht = Linux PROGRAMMEN ist.

Er kann es uns aber ja erzählen...dann nehme ich meine Aussage selbstverständlich zurück,
denn dann habe ich ihn tatsächlich falsch gedeutet.

Ich will damit nur sagen, dass man bei derartigen Aussagen vorsichtig
sein soll und nicht alles wörtlich nimmt, denn ich halte es für recht unwahrscheinlich,
dass er Programmier- oder Linuxerfahrung hat, deswegen meine ich nach wie vor er "meint" Linux-Programme.

Wie gesagt er kanns ja bestätigen/widerlegen, indem er hierauf antwortet.

derguteweka
22.01.06, 17:36
Moin,

Muss jetzt aber doch mal anmerken, dass ich hier die Versuche, bestimmte Sprachen als besonders geeignet fuer Anfaenger anzupreisen, recht gewagt finde.

Die Frage, welche Programmiersprache man lernen soll, wenn man eine Programmiersprache lernen will, ist aehlich allgemein gestellt wie:

Ich wuerde gerne was studieren, was studier' ich denn am besten?

oder

Welchen Beruf soll ich erlernen?

Also: wer auf solche Fragen mit konkreten Studiengaengen, Berufen - oder wie hier teilweise schon geschehen - mit konkreten Programmiersprachen antwortet, ohne mehr ueber den Fragenden zu wissen, legt imho keine grosse Kompetenz an den Tag.
Sowas wie "Ich wuerd' mit Sprache X anfangen" oder "Bla-sprachen sind sowieso immer besser als Blupp-sprachen" halt ich fuer aehnlich qualifizierte Ratschlaege, wie dem frischgebackenen Abiturienten ohne Kenntnisse seiner LKs, Vorlieben und Begabungen zu raten:
"Studier' doch BWL, solche Leute werden immer gebraucht" :ugly:

Damit die Frage zurueck an den Threadersteller:
Was willst du denn mit der Programmiersprache programmieren koennen, oder fuer welche Bereiche in der IT interessierst du dich mehr und wo weniger, etc...?

Gruss
WK

lfhelper
22.01.06, 17:36
Schon, schon, aber die Form der Fragestellung ließ die Möglichkeit durchaus zu, dass der Fragesteller sich der Konsequenzen und Alternativen gar (noch) nicht bewußt ist.

Also Kernel-Aspirant oder nicht, die Beratung hier im Thread macht durchaus Sinn, meine ich.
Nur schade, dass der Fragesteller sich nicht mehr geäußert hat :D

Ist doch außerdem ein nettes Thema, um mal wieder Religionskriege auszutragen. :cool:

Thomas

1. dito
2. eine Minute zu spät. :)

sepp2k
22.01.06, 17:55
Ich würde ganz einfach mal darauf setzen, dass er noch nicht
einmal weiss, was der unterschied zwischen Linux dem KERNEL
und Linux, was er sieht = Linux PROGRAMMEN ist.
Man muss ja nicht wissen, was ein Kernel ist, aber den Unterschied zwischen dem OS und einer Anwendung sollte man schon kennen.



Ich will damit nur sagen, dass man bei derartigen Aussagen vorsichtig
sein soll und nicht alles wörtlich nimmt, denn ich halte es für recht unwahrscheinlich,
dass er Programmier- oder Linuxerfahrung hat, deswegen meine ich nach wie vor er "meint" Linux-Programme.
Ich denke immer noch, er meinte, was er schrieb, war sich aber nicht im Klaren darüber, wie kompliziert das zu lernen wäre.
Ich habe ja auch nichts dagegen gesagt, dass Leute hier Sprachen empfehlen, in denen Linux nicht geschrieben wurde (der OP hat sich ja auch nicht darauf festgelegt, nun unbedingt diese Sprache zu benutzen), aber ich denke dennoch, dass die Frage, in welcher Sprache Linux geschrieben wurde (die in meinen Augen ganz klar im Posting drin steckt), ebenfalls richtig beantwortet werden sollte.

tschloss
22.01.06, 18:04
OMG was muss mir langweilig sein ;)

@lfhelper: Ich kann dem Kriterium "bestimmter Einsatzzweck => Nischensprache" nicht zustimmen. Beispiel KfZ. "Welches KfZ soll ich kaufen?": ist ein Sportwagen, ein LkW, ein Kombi, ein Bus etc. ein Nischenprodukt, nur weil man es einem bevorzugten Einsatzzweck zuordnen kann?

Also der Threadowner will mit Programmieren beginnen. Für mich gibt es zwei Entscheidungswege: entweder ich habe ein bestimmtes Ziel vor Augen (z.B. Web-Programmierung oÄ), dann würde ich eine nach diesem Ziel geeignete Sprache auswählen.
Oder ich möchte einfach nur Programmieren lernen. Dann nehme ich eine Sprache, die didaktisch wertvoll ist und mir einen Transfer auf realere Sprachen ermöglicht. Z.B. Pascal: kein Mensch schreibt Programme in Pascal (oder?), aber wegen der strengen Typprüfung etc. mag es sich für Einsteiger dennoch gut eignen. Dort lernt man auch klar z.B. Unterschiede zwischen Values/Variablen und Referenzen, was bei C und anderen Real-Life SPrachen teilweise schon wieder etwas impliziter abgeht.

Das war mein Schlußwort. Macht doch was ihr wollt. Ich bin fort. Mahlzeit!
Thomas

lfhelper
22.01.06, 18:32
OMG was muss mir langweilig sein ;)

@lfhelper: Ich kann dem Kriterium "bestimmter Einsatzzweck => Nischensprache" nicht zustimmen. Beispiel KfZ. "Welches KfZ soll ich kaufen?": ist ein Sportwagen, ein LkW, ein Kombi, ein Bus etc. ein Nischenprodukt, nur weil man es einem bevorzugten Einsatzzweck zuordnen kann?

Man kann behaupten LkWs sind meist für Unternehmen, Sportwagen meist für Reiche, Busse meist für öffentliche Dienste usw...

Ich kenne keine Privatperson die einen LkW/Ferrari/Bus besitzt.*

Du hast eine bestimmte Nischensprache, egal welche => und die ist meist für einen (oder wenige) Einsatzzwecke gut (meist sogar per-Design).
Das war meine Aussage. Deinen Vergleich mit den Autos finde nicht passend.

EDIT:
* kenne keine Privatperson persönlich. In meinem Umfeld gibts keine Ferrarifahrer,
obwohl es sicher Privatpersonen gibt, die einen Ferrari besitzen. ;) Mit Privatperson
meine ich also Otto-Normal-Person. Und bitte komm mir jetzt nicht mit:
"Mein getuneter VW Corrado ist auch ein Sportwagen." sonst schmeiss ich mich hin. :D

Gruss,
lfhelper.

lfhelper
22.01.06, 18:46
@lfhelper: wer in der heutigen Zeit Scriptsprachen, VB, etc nicht zu den "echten" Programmiersprachen zählt, der hat IMHO irgendwas nicht richtig verstanden!

Was die Wichtigkeit von Scriptsprachen, gerade im Unixumfeld, betrifft, gebe ich dir schon Recht (Perl usw.),
auch was VB bertifft, aber ich würde trotzdem C/C++/C#/Java nicht wirklich gerne mit VB oder Perl vergleichen.
Schon garnicht würde ich sie einen Programmieranfänger ans Herz legen.

Formulieren wir es doch umgekehrt:
Was kann man C/C++/C#/Java _nicht_ machen, was man mit Scriptsprachen machen kann?
(Wohlbemerkt machen kann, nicht _optimal_ machen kann. ;) )

Nochmal:
Ich propagiere einem Programmieranfänger eine mächtige, verbreitete, objektorientierte Programmiersprache zu erlernen.
Ich rate ab von Scriptsprachen (Perl...), Maschinensprachen (ASM...), funktionalen Sprachen (LISP...) und (rein) prozeduralen Programmiersprachen (C...).
Ich empfehle konkret Java und/oder C++.

Gruss,
lfhelper.

schneemensch
22.01.06, 18:53
Ich habe in der Schule mal Pascal programmiert und das ging eigentlich ganz leicht. Ich hatte meistens eine 1 oder 2 als Note. Wenn ich jetzt C++ lernen möchte, wäre das sehr schwer oder für mich der Erfahrung mit Pascal hat einfacher?

tschloss
22.01.06, 18:56
Ich habe in der Schule mal Pascal programmiert und das ging eigentlich ganz leicht. Ich hatte meistens eine 1 oder 2 als Note. Wenn ich jetzt C++ lernen möchte, wäre das sehr schwer oder für mich der Erfahrung mit Pascal hat einfacher?

Aus ganz persönblicher Erfahrung kann ich dir sagen, dass du dich in C schnell zurecht finden solltest. Objektorientierte Ansätze in C++ werden dich aber nochmal fordern.

Thomas

lfhelper
22.01.06, 19:12
@schneemensch

Pascal wurde eigens dafür konzipiert, programmieren-zu-lernen (oder programmieren zu lehren) und ist daher schon "geeignet".
Leider gibts in der "echten" Welt ausserhalb von Schulen und Unis kaum nachfrage an Pascalprogrammierern.
Wenn dir Pascal einfach viel, versuche auf jeden Fall C oder C++ aus.

Übrigends: Man kann C++ auch prozedural programmieren, wenn man will,
denn C++ ist eine Obermenge von C und nicht zwingend objektorientiert.

An meiner Hochschule haben wir auch als Anfänger objekt orientiert angefangen,
nur halt mit Kunde,Person,Partner oder Frucht,Kernfrucht,Apfel Situationen (für UML).
Will damit sagen, wenn man ganz unten anfängt und einen Schritt nach dem anderem macht,
ist es nicht "schwerer" gleich eine OO Sprache zu erlernen.

Sidolin
22.01.06, 19:19
Ich würd dir ganz klar python empfehlen, es gibt sehr viele bindings dafür, fast jeder hat nen interpreter installiert, schnell genug und sehr einfach zu programmieren. Man kann sich wirklich auf den inhalt konzentrieren und muss wirklich kaum nen gedanken an die sprache verwenden.

Meillo
22.01.06, 19:34
Nochmal:
Ich propagiere einem Programmieranfänger eine mächtige, verbreitete, objektorientierte Programmiersprache zu erlernen.
Ich rate ab von Scriptsprachen (Perl...), Maschinensprachen (ASM...), funktionalen Sprachen (LISP...) und (rein) prozeduralen Programmiersprachen (C...).
Ich empfehle konkret Java und/oder C++.eben.
Ich dagegen meine, dass man es gerade so nicht machen sollte.
Denn als Anfänger wird man ganz schnell wieder die Lust verlieren, wenn man sich mit C(++) (oder auch Java) frustet ...

Ich gebe dir recht, dass z.b. Java eine gute Sprache für das Studium ist, oder zum Aufbauen auf Grundkenntnisse, wer aber noch gar nicht wie ein Programmierer denken kann, der braucht etwas Einfaches, etwas das Fehler verzeiht, etwas zum Rumspielen ... schnelle Ergebnisse!
Da ist es unerheblich ob es eine "gute" Sprache ist - Anfänger schreiben sowieso uneffektiven und chaotischen Code.

Meiner Meinung nach sollte man Anfänger ruhig dazu tendieren lassen "schlechten" Code schreiben lassen (= das was normalerweise dafür angesehen wird)
Wenn der Neuling, dann Spaß daran hat und weiterkommen möchte, dann sollte man ihm z.B. Java an's Herz legen.

Meine Vorgehensweise hat nat. die Konsequenz, dass man ihm dann evtl. einige schlechte Angewohnheiten wieder abgewöhnen muss. Aber insgesamt wird er mit deutlich mehr Freunde lernen.


--

und btw: ich kenne viele Programmiersprachen passiv (= lesen/verstehen), meine (wirklich) aktiven Kenntnisse beschränken sich dagegen auf einige wenige. Das liegt primär an der Zeit die ich dafür investieren kann.
Und ich persönlich muss wirklich kein C(++) können, denn fast alles lässt sich auch mit anderen Sprachen realisieren, und das um einiges schneller, einfacher und (in heutiger Zeit) durchaus ausreichend performant.
IMHO muss man als Hobby-Programmierer kein C(++) können - da investiert man die gleiche Zeit lieber in 2+ andere Sprachen ...


however ...

Henni
22.01.06, 19:46
Um mich hier einmal einzumischen:

Ich würde jedem empfehlen, erstmal sauberes C und dann C++ und/oder Java zu lernen. Die Gründe hierfür liegen wie folgt:


Sobald man den C Syntax beherrscht, kann man Programme in so gut wie jeder anderen Programmiersprache zuminderst verstehen. (Syntax der meisten Programmiersprachen ist an C angelehnt)
Sobald man einmal den Syntax von C beherrscht, kann man daran gehen, Programmierkonzepte zu verstehen und umzusetzen. (Es ist auch möglich OO in C zu schreiben, absolut kein Problem).
C++ verwendet genauso wie C Pointer. Wenn man mit C++ anfängt kommt aber zum beliebten Verständnisproblem der Pointer ansich noch die OO Spezialfälle hinzu. Lernt man aber zuerst in C mit den Pointern umzugehen, fällt diese Hürde in C++ weg.
Sobald man C kennt, weiss man wieso gewisse Dinge in C++/Java so gelöst sind wie sie es sind.


Das sind die Punkte die mir nach kurzem nachdenken einfallen. Wahrscheinlich würden mir bei längerem nachdenken mehr Gründe einfallen.

lg, Helmut

Meillo
22.01.06, 20:08
.... Pointer ...wir wollen nicht vergessen, dass es sich hier um einen _Anfänger_ handelt - unser Freund hat noch nie programmiert!