C oder Script?
C oder Script?
Ich wollte mal wissen was zum programmieren von einfachen Anwendungen und Abfragen unter Linux besser und schneller ist.
Ich lerne in der Schule "C" und komme damit auch super klar aber wenn ich im Internet nach irgendetwas suche um eine bestimmte Funktion unter Linux zu realisieren bekommt man immer irgendein script genannt.
Was ist denn jetzt besser zum realisieren von einfachen Funktionen.
Ich möchte das mein Server jeden meiner Rechner im Netzwerk nach einer bestimmten Zeit nach seiner cpu und Festplatten Temperatur abfragt und diese zum einen in eine Datei schreibt und zum anderen mir auf meine Internet startseite anzeigt.
Ich kenne mich zwar nicht mit script sprachen aus, denke aber das sie für soetwas einfacher sind wie ein Programm in c oder einer ähnlichen sprache zu schreiben.
Kann mir jemand eine gute Script sprachen für solche oder ähnliche aufgaben nennen und vielleicht auch ein gutes Buch zum erlernen?
Gruss Andre
Ich lerne in der Schule "C" und komme damit auch super klar aber wenn ich im Internet nach irgendetwas suche um eine bestimmte Funktion unter Linux zu realisieren bekommt man immer irgendein script genannt.
Was ist denn jetzt besser zum realisieren von einfachen Funktionen.
Ich möchte das mein Server jeden meiner Rechner im Netzwerk nach einer bestimmten Zeit nach seiner cpu und Festplatten Temperatur abfragt und diese zum einen in eine Datei schreibt und zum anderen mir auf meine Internet startseite anzeigt.
Ich kenne mich zwar nicht mit script sprachen aus, denke aber das sie für soetwas einfacher sind wie ein Programm in c oder einer ähnlichen sprache zu schreiben.
Kann mir jemand eine gute Script sprachen für solche oder ähnliche aufgaben nennen und vielleicht auch ein gutes Buch zum erlernen?
Gruss Andre
- Mr_Snede
- Beiträge: 2323
- Registriert: 08.07.2003 13:48:49
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Ruhrpott
Naja bei Linux werden Scripte in Bash, Perl, Python gerne genutzt, weil die entsprechenden Interpreter eben schon vorhanden sind. Ausserdem liegt ein Script ja im menschenlesbaren Quellcode vor, den man gut an eigene Bedürfnisse anpassen kann.
Wenn du mit C gut klarkommst - mach es doch einfach mit C.
Wenn du was neues lernen möchtest, dann versuch mal mit den oben genannten.
Was verstehst du unter schneller?
Schneller geschrieben, schneller nach 6-Monaten zu Wartungszwecken verstanden und angepasst, schneller in der Ausführung, schneller auf andere Betriebsysteme / Prozessorarchitekturen portiert?
Aus meiner ganz persönlichen Vorliebe lege ich dir Python ans Herz. Bei Fragen ist zB http://www.python-forum.de super.
Für eine C ähnliche Syntax dürfte Lua ein Blick für dich wert sein (wenn ich mich nicht irre).
Wenn du mit C gut klarkommst - mach es doch einfach mit C.
Wenn du was neues lernen möchtest, dann versuch mal mit den oben genannten.
Was verstehst du unter schneller?
Schneller geschrieben, schneller nach 6-Monaten zu Wartungszwecken verstanden und angepasst, schneller in der Ausführung, schneller auf andere Betriebsysteme / Prozessorarchitekturen portiert?
Aus meiner ganz persönlichen Vorliebe lege ich dir Python ans Herz. Bei Fragen ist zB http://www.python-forum.de super.
Für eine C ähnliche Syntax dürfte Lua ein Blick für dich wert sein (wenn ich mich nicht irre).
Software Finder - Software in Kategorien Debian ohne Ballast - Tipps für ein schlankes Debian
- Leonidas
- Beiträge: 2032
- Registriert: 28.04.2003 13:48:49
- Lizenz eigener Beiträge: MIT Lizenz
-
Kontaktdaten:
Stimme zuMr_Snede hat geschrieben:Aus meiner ganz persönlichen Vorliebe lege ich dir Python ans Herz. Bei Fragen ist zB http://www.python-forum.de super.
Oder C-Script. Wobei der Nachteil ist, dass Lua nicht so eine Verbreitung hat wie die anderen Scriptsprachen (womit ich nicht ausdrücken will, dass es schlecht ist, sondern nur dass es Probleme mit Usersupport geben kann), für C-Script gibt das gleiche, sogar noch stärker.Mr_Snede hat geschrieben:Für eine C ähnliche Syntax dürfte Lua ein Blick für dich wert sein (wenn ich mich nicht irre).
Wie es mit dem deutschen Communities aussieht kann ich dir nur so weit sagen: die deutsche Python-Community ist ziemlich groß und sehr hilfsbereit, die Ruby-Community ist etwas kleiner, aber ebenso freundlich. Zu Perl kann ich nichts sagen, weil mich Perl nie sonderlich instessiert hat.
Bücher können wir dir erst nennen, nachdem du weißt was du willst.
Wir wollten einen Marsch spielen, aber wir hatten nur Xylophone.
- dopehouse
- Beiträge: 452
- Registriert: 01.09.2005 12:02:16
- Lizenz eigener Beiträge: GNU General Public License
- Wohnort: Hildesheim (Niedersachsen)
-
Kontaktdaten:
Also bei kleineren Problemen löse ich diese meist erst mit einer Scriptsprache wie Perl oder PHP (andere hab ich mir noch nicht angeeignet). Wenn es dann noch darum geht, dass das ganze möglichst schnell abgearbeitet werden soll, dann schreibe ich das Ganze nochmal in C oder C++, ansonsten lasse ich es einfach. Wenn das Problem komplexer ist, benutzte ich meist gleich C/C++, um mir den doppelten Aufwand zu sparen. Dinge wie die Behandlung von Zeichenketten kann man in Scripten meist einfach lösen, weshalb ich Scriptsprache für solche Dinge dann meist vorziehe, bevor ich mir die Mühe mache das Ganze in C anzugehen.
Danke für die bisherigen Antworten.
Werde mir dann wohl mal pyton anschauen.
Kennt einer denn ein gutes Buch dazu? Da lesen eines Buches für den anfang meist verständlicher ist als das suchen im Internet.
Zu deinen Fragen Mr_Snede:
Woher soll ich wissen was schneller geschrieben ist oder welches man besser versteht.
Ich bezog das schneller auf die Ausführung.
Ja ich will was neues Lernen.
Ich möchte zum einen für jede Aufgabe eine geeignete Sprache kennen und zum anderen möchte ich auch ein Script verstehen das mir jemand anderes nennt.
Gruss Andre
Werde mir dann wohl mal pyton anschauen.
Kennt einer denn ein gutes Buch dazu? Da lesen eines Buches für den anfang meist verständlicher ist als das suchen im Internet.
Zu deinen Fragen Mr_Snede:
Woher soll ich wissen was schneller geschrieben ist oder welches man besser versteht.
Ich bezog das schneller auf die Ausführung.
Ja ich will was neues Lernen.
Ich möchte zum einen für jede Aufgabe eine geeignete Sprache kennen und zum anderen möchte ich auch ein Script verstehen das mir jemand anderes nennt.
Gruss Andre
- meandtheshell
- Beiträge: 4054
- Registriert: 14.01.2005 17:51:30
Re: C oder Script?
Dafür nimmst Du Dinge die es fertig von der Stange gibtCentauri hat geschrieben:I
Ich möchte das mein Server jeden meiner Rechner im Netzwerk nach einer bestimmten Zeit nach seiner cpu und Festplatten Temperatur abfragt und diese zum einen in eine Datei schreibt und zum anderen mir auf meine Internet startseite anzeigt.
- Munin oder
- Nagios oder
- Cacti
- etc.
Eine Software in C, welche Daten über ein Netzwerk polling an zentraler Stelle sammelt und aufbereitet ist alles andere als trivial zu realisieren
- Netzwerkprogrammierung
- Semaphores und Deadlocks lassen grüssen
FAZIT
Ich würde eines der fertigen Tools ( evtl. Nagios) verwenden und zum Zwecke des erlernens einer Programmiersprache die Forums Suche verwenden um einen der unzähligen "Wie lerne ich programmieren", "Welche Programmiersprache?" etc. zu lesen und daraus Schlüsse zu ziehen.
markus
- meandtheshell
- Beiträge: 4054
- Registriert: 14.01.2005 17:51:30
Centauri hat geschrieben: Ich möchte zum einen für jede Aufgabe eine geeignete Sprache kennen ...
Jede "Sprache" kann alles.
Jede "Sprache" die aus einer 1 eine 0 (und vice versa) machen kann, kann jede Aufgabe bewältigen.
Wie dopehouse hat durchklingen lassen, ist Pyhthon "nett". Python nehmen Leute auch sehr gerne für prototyping. Python als Sprungbrett für Ada, C, C#, C++ etc. zu verwenden ist IMHO sehr sinnvoll um bei imperativen bzw. OO (object oriented) Programmiersprachen zu bleiben. Ganz "nett" und smooth ist das "duck typing" von Python wenn man weiß was man tut.
Zu Anfangs würde ich mir ein paar Monate shell scripting genehmigen - dies sehe ich als mandatorisch an bevor man an Python oder sonst etwas geht sonst hat alles andere kein gutes Fundament und man wird niemals wirklich gut werden.
http://cnswww.cns.cwru.edu/~chet/bash/bashtop.html
http://www.tldp.org/LDP/abs/html/index.html
Erst wenn man die beiden Links oben durchgearbeitet hat rate ich weiter zu einer "echten" (how ironic) Programmiersprache zu ziehen.
Programmierspache
Welche Programmiersprache man nimmt ist im Grunde nicht wichtig - auch wenn Anfänger das immer als "DIE FRAGE" deklarieren. Es geht darum die Konzepte hinter Sprachen zu verstehen - gute Programmierer wechseln innerhalb von Tagen/Wochen auf eine Ihnen neue Sprache da die Konzepte (im Falle von änlichen Konzepten) sehr ähnlich oder beinahe ident sind. Mit DotGNU (einer .NET Implementierung) wird das sowieso egal werden (siehe Thread zu DotGNU --> Forums Suche).
markus
Stimmt. Theoretisch. Man kann auch mit einer Turingmaschine einen Baum sortieren oder in Lisp einen Webserver schreibenmeandtheshell hat geschrieben:da stimme ich zu!Centauri hat geschrieben:I
FAZIT
Ich würde eines der fertigen Tools ( evtl. Nagios) verwenden und zum Zwecke des erlernens einer Programmiersprache die Forums Suche verwenden um einen der unzähligen "Wie lerne ich programmieren", "Welche Programmiersprache?" etc. zu lesen und daraus Schlüsse zu ziehen.
Aber wenn du dich auch weiterhin mit der Programmierung auseinander setzen willst, dann empfehle ich dir Python und das Buch Python in Action. Python ist eine objectorientierte(OO) Sprache und in letzter Zeit echt beliebt in der Unix-Welt sowie im Webbereich. Python Interpreter sind in Etch fest integriert, bleibt also noch sehr lange Aktuell. Die Sprache an sich unterstützt auch schon weitere Ansetze wie aspectorientierte Programmierung (AOP). Falls du nochmal etwas technisches studieren willst, rate ich dir in die OO einzusteigen. Unter anderem ist die Sprache auch sehr witzig
Take a good choice, take python
Jede "Sprache" kann alles.
Jede "Sprache" die aus einer 1 eine 0 (und vice versa) machen kann, kann jede Aufgabe bewältigen.
Jedoch hat jede Sprache ihre Vor- und Nachteile, C ist schnell, Python ist OO and so on. Diese mußt du für dich abwiegen
- Leonidas
- Beiträge: 2032
- Registriert: 28.04.2003 13:48:49
- Lizenz eigener Beiträge: MIT Lizenz
-
Kontaktdaten:
Ich habe da so meine Einwände. Ich finde, man kann duchaus ohne Bashscript gut werden, ich programmiere seit mehreren Jahren, ohne Bashscript jemanls gekommt zu haben. Das heißt ich kann durchaus ein paar simple Scripte schreiben und verstehen, aber nicht flüssig. Die Sache mit Bashscript ist die, dass sich dort die Befehle etwas seltsam verhalten, das Programm [ finde ich ziemlich konfus. Für das bearbeiten von Dateien ist Bash ganz ok, aber für größere Sachen ist es mir zu inkonsistent.meandtheshell hat geschrieben:Zu Anfangs würde ich mir ein paar Monate shell scripting genehmigen - dies sehe ich als mandatorisch an bevor man an Python oder sonst etwas geht sonst hat alles andere kein gutes Fundament und man wird niemals wirklich gut werden.
http://cnswww.cns.cwru.edu/~chet/bash/bashtop.html
http://www.tldp.org/LDP/abs/html/index.html
Erst wenn man die beiden Links oben durchgearbeitet hat rate ich weiter zu einer "echten" (how ironic) Programmiersprache zu ziehen.
Was ich als Programmiereinstieg überhaupt empfehlen kann ist Wie ein Informatiker denken lernen (und als kleinen Untertitel "mit Python"). Das schöne an der Einführung ist, dass es eben nicht so Programmiersprachenfixiert ist, sondern die Konzepte am Beispiel Pythons erklärt. Erinnert etwas an Structure and Implementation of Computer Programs, aber wesentlich kürzer.
Und Lisp ist lustig, dazu gibt es auch ein gutes Buch kostenlos im Internet, aber für den Anfänger vielleicht nicht so das optimum. Unbestritten, dass man mit Lisp eine Menge über Programmierung allgemein lernt, aber man kommt nur schwer zu praktischen Lösungen. Und für Netzwerkserver würde ich mir Erlang ansehen, scheint dafür gut geeignet zu sein.
Python-Interpreter gab es schon seit langem in Debian, in bereits in Woody waren 2.1 und 2.2 dabei, Potato hatte das schon wirklich alte Python 1.5.2. Aktuell ist übrigens Python 2.5.
Edit: Was das "Nimm eine fertige Software" angeht, da stimme ich meandtheshell völlig zu.
Wir wollten einen Marsch spielen, aber wir hatten nur Xylophone.
Wenn jeder so denken würde "nimm was fertiges" dann gebe es heute kein Linux.
Klar bin ich mit was fertigen schneller aber dann fehlt mir zum einen das lernen und man lernt an etwas praktischem besser und zum anderen wo bleibt der Spass.
Jede Sprache kann alles das stimmt im grunde.
Warum nimmt man dann kein Java, Python oder sonst was zum Programmieren eines OS oder
warum nimmt man kein Assembler zum programmieren eines Webbrowser?
Ich mache gerade schon meinen E-Techniker.
Gruss Andre
Klar bin ich mit was fertigen schneller aber dann fehlt mir zum einen das lernen und man lernt an etwas praktischem besser und zum anderen wo bleibt der Spass.
Jede Sprache kann alles das stimmt im grunde.
Warum nimmt man dann kein Java, Python oder sonst was zum Programmieren eines OS oder
warum nimmt man kein Assembler zum programmieren eines Webbrowser?
Ich mache gerade schon meinen E-Techniker.
Gruss Andre
- meandtheshell
- Beiträge: 4054
- Registriert: 14.01.2005 17:51:30
- Leonidas
- Beiträge: 2032
- Registriert: 28.04.2003 13:48:49
- Lizenz eigener Beiträge: MIT Lizenz
-
Kontaktdaten:
Der Spaß besteht darin, dass man abwägen muss, was es gibt und ob das was es gibt, die gegebene Aufgabe besser (besser kann auch schneller heißen) erfüllt als das was man selbst machen würde. Wenn jeder alles selbst machen würde, dann gäbe es ebenso kein Linux, weil jeder sich selbst das OS bauen würde. Programmieren ist kein Selbstzweck. Programmieren ist das reagieren auf Bedürfnisse.Centauri hat geschrieben:Wenn jeder so denken würde "nimm was fertiges" dann gebe es heute kein Linux.
Klar bin ich mit was fertigen schneller aber dann fehlt mir zum einen das lernen und man lernt an etwas praktischem besser und zum anderen wo bleibt der Spass.
Meinst du das ernst? Man nimmt durchaus Python oder Java zum programmieren von Betriebssystemen. Schau dir doch Unununium oder JNode an. Man benutzt dort aus dem gleichen Grund Java oder Python wie dem warum Linux größtenteils in C geschrieben ist. Weil es einfach für den Programmierer wesentlich einfacher ist. Es ist viel einfacher abstrakte Konzepte wie Objekte oder Variablen zu nutzen, als sich mit Hardwareregistern zu beschäftigen. Noch dazu ist es wesentlich portabler, da bei Neuerungen nur die Compiler angepasst werden müssen, nicht aber die Programme selbst.Centauri hat geschrieben:Warum nimmt man dann kein Java, Python oder sonst was zum Programmieren eines OS oder
warum nimmt man kein Assembler zum programmieren eines Webbrowser?
Find ich tollmeandtheshell hat geschrieben:Gut das ich Trotz und Ironie resistent bin.
Wir wollten einen Marsch spielen, aber wir hatten nur Xylophone.
Danke benwol für den Lesetip.
Danke Leonidas für den Lesetip.
Man lernt nie aus. Werde mir die beiden OS bei gelegenheit mal ansehen.
Danke meandtheshell für den Tip mit dem fertigen Programm für die eine beispiel Aufgabe, werde sie mir mal genauer anschauen, auch wenn das nicht meine eigentliche Frage war.
Wünsche allen einen guten Rutsch ins neue Jahr
Gruss Andre
Danke Leonidas für den Lesetip.
Man lernt nie aus. Werde mir die beiden OS bei gelegenheit mal ansehen.
Danke meandtheshell für den Tip mit dem fertigen Programm für die eine beispiel Aufgabe, werde sie mir mal genauer anschauen, auch wenn das nicht meine eigentliche Frage war.
Wünsche allen einen guten Rutsch ins neue Jahr
Gruss Andre
- Mr_Snede
- Beiträge: 2323
- Registriert: 08.07.2003 13:48:49
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Ruhrpott
Dass es keine Betriebsysteme gibt, die in Assambler geschrieben wurden halte ich für ein Gerücht:
http://tanakrie.vs1207.vserver4free.de/ ... ssemblerOS
Gerade das ist selbst für mich als Anwender ein bedeutender Wesenszug von GNU Systemen.
"one Tool for a Job" wenn es komplexer wird verkettet man halt diese Werkzeuge miteinander. Und genau hier kommen Scriptsprachen ins Spiel.
zB benutzt man Bash gerne für Jobs wie:
(Log)Dateien öffnen, den Inhalt per awk, oder grep nach interessanten Stellen durchsuchen und dann per Mail am Tagesende jemanden zuschicken.
Da fang ich doch nicht an, einen Mailer selbst zu basteln (mal abgesehen von Studienzwecken).
http://tanakrie.vs1207.vserver4free.de/ ... ssemblerOS
Doch.Wenn jeder so denken würde "nimm was fertiges" dann gebe es heute kein Linux.
Gerade das ist selbst für mich als Anwender ein bedeutender Wesenszug von GNU Systemen.
"one Tool for a Job" wenn es komplexer wird verkettet man halt diese Werkzeuge miteinander. Und genau hier kommen Scriptsprachen ins Spiel.
zB benutzt man Bash gerne für Jobs wie:
(Log)Dateien öffnen, den Inhalt per awk, oder grep nach interessanten Stellen durchsuchen und dann per Mail am Tagesende jemanden zuschicken.
Da fang ich doch nicht an, einen Mailer selbst zu basteln (mal abgesehen von Studienzwecken).
Software Finder - Software in Kategorien Debian ohne Ballast - Tipps für ein schlankes Debian
Sorry, mit dem Lesetip habe ich mich vertan Python in a Nutshell ist ein sehr gutes Buch. Aus der in Action Reihe kann ich für GUIs wxPython in Action empfehlen. wx sieht einfach am besten aus.Centauri hat geschrieben:Danke benwol für den Lesetip.
Danke Leonidas für den Lesetip.
Man lernt nie aus. Werde mir die beiden OS bei gelegenheit mal ansehen.
Danke meandtheshell für den Tip mit dem fertigen Programm für die eine beispiel Aufgabe, werde sie mir mal genauer anschauen, auch wenn das nicht meine eigentliche Frage war.
Wünsche allen einen guten Rutsch ins neue Jahr
Gruss Andre
Privat beschäftige ich mich jetzt auch mit Python und muß sagen, die Sprache gefällt mir richtig gut. Am Anfang störte die Syntaxkonvetion etwas, man gewöhnt sich jedoch schnell dran und erkennt auch die Vorteile der Leserlichkeit fremden Codes.
Falls du mal fragen hast, meld dich einfach
- peschmae
- Beiträge: 4844
- Registriert: 07.01.2003 12:50:33
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: nirgendwo im irgendwo
Du verwechselst Betriebssystem mit Webbrowser. Mir ist schon klar dass diese Unterscheidung mittlerweile durch die Propaganda der Firma Microsoft durchaus nicht mehr so selbstverständlich ist, wie sie es früher einmal war und imho auch sein sollte. Trotzdem möchte ich dich bitten diese Anstrengung auf dich zu nehmenMr_Snede hat geschrieben:Dass es keine Betriebsysteme gibt, die in Assambler geschrieben wurden halte ich für ein Gerücht:
http://tanakrie.vs1207.vserver4free.de/ ... ssemblerOS
So, jetzt wo wir das geklärt hätten allen ein schönes Wochenende!
MfG Peschmä
"er hätte nicht in die usa ziehen dürfen - die versauen alles" -- Snoopy