Programmiersprache von Linux

Das Forum für den Linux-Pinguin - auch andere Unix-Derivate (*BSD, (Open)Solaris, Apple's Darwin / MacOS X, ...) sind hier willkommen!
Forumsregeln
Das Forum für den Linux-Pinguin - auch andere Unix-Derivate (*BSD, (Open)Solaris, Apple's Darwin / MacOS X, ...) sind hier willkommen!

Beitragvon dreamwalker » Do 22 Dez, 2005 12:01

brennkopf hat geschrieben:Ich wollte eigentlich einen _perfekten_ Gaming-Addon für Linux proggen, sowas wie ein "Windows-Emu" für Linux, damit man auch auf Linux _alle Games_ zocken kann...


C/C++
wenns in ein paar jahren fertig is, gib mir bescheid bitte ;)
10Mbit up/down mit OpenBSD 4.0/i386 Router/Firewall (Soekris net4801 board), 1 x HP ProCurve 1800 8G, 1 x Apple Airport Extreme Basestation

De Raadt says, "I don't know what his (Linus Torvalds) focus is at all anymore, but it isn't quality."
dreamwalker
Junior Board-Mitglied
Junior Board-Mitglied
 
Beiträge: 33
Registriert: Mi 16 Feb, 2005 10:51

Re: Programmiersprache von Linux

Beitragvon dreamwalker » Do 22 Dez, 2005 12:04

hannibal218bc hat geschrieben:
dreamwalker hat geschrieben:Java ist fuer manche sachen sicher nicht schlecht, nachteil ist dass du immer den interpreter brauchst sowie der performance unterschied zu einem sauberen C/C++ programm


Ja, das ist aber auch der große Vorteil: der Java-Bytecode rennt überall, wo eine Java VM vorhanden ist, *sofort* und ohne ./configure; make; make install .
Falls man für sein C-Proggi überhaupt passende Skripte gemacht hat und überall die richtigen Header-Files herumliegen.... ;-)


Soweit ich weiß hat sich auch in Punkte Performance viel im Java-Interpreter getan, sodass das wahrscheinlich bei nicht-nur-CPU-intensiven Anwendungen gar nicht auffallen muss.


Der Standpunkt ist sicher gefärbt (habe C noch nie gebraucht *G*), aber so pauschal darf man Java nicht abtun. Sicher, zum Linux-Programmieren isses das falsche... (aber jemand, der mit HTML und Visual Basic Linux-programmieren will sollte es vielleicht eh lieber gleich lassen...)


lg,
-hannes


vorteil: jap, das ist ein vorteil, nachteil ist eben dass dadurch alles langsamer wird
es gibt sogar schon zwischen C und C++ messbare unterschiede
(vergleich uebrigens mal die unterschiedlichen binary groessen bei einem Hello World in C und bei einem in C++)

natuerlich hat sich die performance von java schon stark verbessert in letzter zeit.. aber ganz wirst du den unterschied nie wegkriegen.. und ausserdem.. eine sprache ohne pointerfehlern, bufferoverflows, etc. is doch fad oder? ;)
10Mbit up/down mit OpenBSD 4.0/i386 Router/Firewall (Soekris net4801 board), 1 x HP ProCurve 1800 8G, 1 x Apple Airport Extreme Basestation

De Raadt says, "I don't know what his (Linus Torvalds) focus is at all anymore, but it isn't quality."
dreamwalker
Junior Board-Mitglied
Junior Board-Mitglied
 
Beiträge: 33
Registriert: Mi 16 Feb, 2005 10:51

Beitragvon Kakashi » Do 22 Dez, 2005 19:45

"Saying that Java is nice because it works on all OS's is like saying that anal sex is nice because it works on all genders"
Kakashi
Board-User Level 1
Board-User Level 1
 
Beiträge: 512
Registriert: Do 09 Jun, 2005 18:54

Beitragvon dreamwalker » Fr 23 Dez, 2005 10:42

korrekt :)
10Mbit up/down mit OpenBSD 4.0/i386 Router/Firewall (Soekris net4801 board), 1 x HP ProCurve 1800 8G, 1 x Apple Airport Extreme Basestation

De Raadt says, "I don't know what his (Linus Torvalds) focus is at all anymore, but it isn't quality."
dreamwalker
Junior Board-Mitglied
Junior Board-Mitglied
 
Beiträge: 33
Registriert: Mi 16 Feb, 2005 10:51

Beitragvon sp » Sa 07 Jan, 2006 17:30

Hmm, das gibt mir zu schmunzeln.

"Welche Programmiersprachen ausser VB, HTML und Java muss ich koennen?"

und dann

"Ich will ein Windows Emulations-System schreiben - damit ich alle Spiele unter Linux spielen kann".

Naja, mit keiner der drei "Programmiersprachen" wirst du dabei weit kommen. Weiters kann man davon ausgehen dass dir das noetige Hintergrundwissen von x86 generell (naja, teilweise notwendig fuer sowas, wenn es wirklich eine *Emulation* wird), dem Aufbau und der Funktionsweise eines Betriebssystems und auch von anderen Dingen die du unbedingt brauchen wirst (PE/Coff Executable Format, etc) fehlt.

Wenn du so etwas suchst, kann ich dir Wine und einen Fork von Wine, speziell fuer Spiele, namens Cedega (www.transgaming.com) ans Herz legen.

Es ist schoen Traeume zu haben, aber du scheinst dir nicht im klaren zu sein dass dir dazu nicht nur die noetige Zeit (alleine unschaffbar in weniger als 5 Jahren imho) sondern auch das Wissen fehlt.

Wenn du wirklich Programmieren lernen willst solltest du dir als erstes C ansehen, damit du ein Grundverstaendnis (*sehr* grundlegend) ueber die Funktionsweise eines PCs und eines Programmes hast (nein, VB und Java werden dir dieses Verstaendnis *NIE* vermitteln).
Weiters wuerd ich dann mit C++ in die Objektorientierung einsteigen.

Ich sehe auch keinen Grund warum C++ fuer "Fensterlprogrammierung" besser sein sollte oder nicht. Wenn wir einmal MFC/VC++, Glade und andere aussen vor lassen, ist der Unterschied zwischen C und C++ nurnoch die Objekt Orientierung, und das ist wirklich nichtmehr dramatisch. Man muss in 'beiden Sprachen' fuer 'richtige' grafische Programmierung ein gutes Verstaendnis davon haben wie gross denn jetzt das neue 200x400 Pixel Fenster sein wird, und wo der Button bei 50,50 mit Groesse 50,10 sein wird und wie gross er ist.

Ich finde es beschaemend wenn selbst-ernannte Programmierer der festen Meiung sind dass grafische Programmmierung immer mit MFC-aehnliche Point-and-Click Tools verbunden ist bzw *NUR* so gemacht wird und man genau deshalb C++ einsetzt, weil es ja VC++ heisst. Ich will niemanden was unterstellen, aber *GENAU* so klingt das.
sp
Junior Board-Mitglied
Junior Board-Mitglied
 
Beiträge: 37
Registriert: Di 22 Nov, 2005 23:07
Wohnort: Villach, AT

Beitragvon Alien » Sa 07 Jan, 2006 20:01

C ist schon lange nicht mehr das Nonplusultra.
Ein sehr gutes Beispiel ist das berühmte MMORPG Eve Online, welches in Python programmiert worden ist.

C ist IMO "nur noch" gut für Compiler und OS (obwohl es beides auch schon in anderen Sprachen geschriebenen wurde (z.B.: Unununium - auch in Python)).

Es ist nur leider (noch) so, dass man besonders im komerziellen Bereich auf C setzt (mit Ausnahmen, wie eben Eve Online).

Im "Bereich Internet" sind vor allem Perl und Python weit verbreitet (Google, eBay, Yahoo, und viele andere große Unternehmen).

IMO ist C etwas aufwendig und es gibt schon jede Menge Ersatz dafür. Wen man OSs progammieren will sind ausserdem auch Assemblerkentnisse angebracht.

Ich weill keiner Webung machen und ich selbst spiele Eve Online auch nicht. Will aber nur zeigen, dass es keineswegs ein "billiges" Spiel ist:
http://www.eve-online.com/
http://de.wikipedia.org/wiki/EVE_Online

Hierbei handelt es sich nicht um das ganz orginale Python, sondern um eine Implentierung, die als sehr performant gilt.
http://wiki.python.org/moin/StacklessPython

Und nein, ich bin kein Pythonprogrammierer ^^

Es gibt aber auch noch genug andere Sprachen :)
Ich glaube, dass es nur ein Vorurteil ist, dass man C/C++ können muss. Man kann schneller etwas anfangen, wenn man Sprachen, wie Perl oder Python lernt.
Alien
Neu im Board
Neu im Board
 
Beiträge: 17
Registriert: Mi 24 Aug, 2005 04:25

Beitragvon sp » Sa 07 Jan, 2006 20:27

Unununium, naja klingt interessant.
Das "Problem" ist nur dass man aus Python keinen anstaendigen x86 Bytecode machen kann. Weiters kann man auf OS-ebene (kernel mode) gewisse sachen kaum in einer anderen Sprache als Assembler tun. Ich kenne zB keine Moeglichkeit, ohne selbst ASM-technisch hand anzulegen einen GDT oder IDT zu laden. Ununium wird zwar in Python entwickelt, aber wie die FAQ Page verraet verwenden die Entwickler zwei Tools: Eines versucht (ich glaube kaum erfolgreich) die Python scripts in bytecode zu uebersetzen und das andere uebersetzt den Python code in C code - also hat C und auch ASM sicher seine berechtigung.

Perl und Python sind uebrigens Interpretierte Sprachen, also Scriptsprachen. Es ist rein logisch nicht moeglich eine Scriptsprache mit der gleichen Performanz rennen zu lassen wie zB ein C Programm, bei dem der Compiler aus dem Sourcecode Bytecode erzeugt der direkt - ohne Umwege von der CPU ausgefuehrt werden kann. Bei Python hat man die zusaetzliche Interpreter schicht dazwischen - in der der code zuerst in Laufzeit geparst und dann interpretiert werden muss - was natuerlich langsamer ist.

C mag aufwendig sein, ja. Aber ein PC ist technisch auf Aufwendig. Was ich gesagt habe war, dass man durch C Programmierung und "herumspielen" mit Pointern, 'manueller' Speicher allocierung sowie Freigabe, etc - einfach naeher an dem ist, was im PC wirklich passiert.
Wenn es um Performanz geht, ist C normalerweise die allererste Wahl nach Assembler.

Es ist moeglich dass man Scriptsprachen leichter lernt (obwohl ich eigentlich vom Gegenteil ueberzeugt bin), aber man wird *NIE* durch Scriptsprachen "richtiges" Programmieren lernen - und zu richtigem Programmieren sollten ausser Hardwarekenntnissen auch System-spezifische Kenntnisse stehen und vor allem "was passiert im System wenn ich zB. write() aufrufe?".

Ich bin kein Professioneller Programmierer, aber ich bin trotzdem der Ansicht, das wenn man etwas 'richtig' und 'sauber' machen will, man diese Kenntnisse benoetigt.

Es gibt allerdings einen Punkt der sehr *fuer* Interpretierte Sprachen zaehlt: Portabilitaet. Normalerweise wird ein Perl Script ohne oder mit minimalen veraenderungen auf Windows, Linux, BSD und Mac OS rennen.

Nachtrag zu meinem letzten Post: Es sollte "selbst ernannte Profi Programmierer heissen".
sp
Junior Board-Mitglied
Junior Board-Mitglied
 
Beiträge: 37
Registriert: Di 22 Nov, 2005 23:07
Wohnort: Villach, AT

Beitragvon lordpeng » Sa 07 Jan, 2006 20:31

>Es ist nur leider (noch) so, dass man besonders im komerziellen Bereich auf C setzt (mit Ausnahmen, wie eben Eve Online).
daran wird sich so schnell wohl auch nix dran ändern

>Im "Bereich Internet" sind vor allem Perl und Python weit verbreitet (Google, eBay, Yahoo, und viele andere große Unternehmen).
du solltest aber nicht davon ausgehen, dass dort nur perl und python anwendungen eingesetzt werden, für gewisse sachen sind interpreter einfach nicht geeignet ...

>Ich glaube, dass es nur ein Vorurteil ist, dass man C/C++
ich nicht ... zumindest nicht wenn man sich software-entwickler schimpfen will ...

aber, was red ich ich bin ja auch kein programmierer, ich kann nur ein paar brocken perl :-)
lordpeng
Moderator
Moderator
 
Beiträge: 10198
Registriert: Mo 23 Jun, 2003 22:45

Beitragvon Kakashi » Sa 07 Jan, 2006 22:07

Ich stimme sp zu. Es ist wesentlich schwieriger C zu lernen wenn man mit Sprachen beginnt die alles für einen machen als umgekehrt. INSBESONDERE Memory Management ist finde ich ganz nett wenn man weiß wie es geht/funktioniert.


"Free() the moloc()'s!!!" ;)
Kakashi
Board-User Level 1
Board-User Level 1
 
Beiträge: 512
Registriert: Do 09 Jun, 2005 18:54

Beitragvon Alien » Sa 07 Jan, 2006 22:25

sp hat geschrieben:Unununium, naja klingt interessant.
Das "Problem" ist nur dass man aus Python keinen anstaendigen x86 Bytecode machen kann. Weiters kann man auf OS-ebene (kernel mode) gewisse sachen kaum in einer anderen Sprache als Assembler tun. Ich kenne zB keine Moeglichkeit, ohne selbst ASM-technisch hand anzulegen einen GDT oder IDT zu laden. Ununium wird zwar in Python entwickelt, aber wie die FAQ Page verraet verwenden die Entwickler zwei Tools: Eines versucht (ich glaube kaum erfolgreich) die Python scripts in bytecode zu uebersetzen und das andere uebersetzt den Python code in C code - also hat C und auch ASM sicher seine berechtigung.


Hab ich auch so gesagt
Alien hat geschrieben:C ist IMO "nur noch" gut für Compiler und OS (...)
Wenn man OSs progammieren will sind ausserdem auch Assemblerkentnisse angebracht.

Ich meinte nur, dass es kein Muss ist ;)

Perl und Python sind uebrigens Interpretierte Sprachen, also Scriptsprachen. Es ist rein logisch nicht moeglich eine Scriptsprache mit der gleichen Performanz rennen zu lassen wie zB ein C Programm, bei dem der Compiler aus dem Sourcecode Bytecode erzeugt der direkt - ohne Umwege von der CPU ausgefuehrt werden kann. Bei Python hat man die zusaetzliche Interpreter schicht dazwischen - in der der code zuerst in Laufzeit geparst und dann interpretiert werden muss - was natuerlich langsamer ist.

Ist logisch. Aber wenn man extrem gute Performance braucht gibts Assembler *duck*
Jetzt mal im Ernst: Klar, wo es auf Performance ankommt ist wohl C dies bessere Wahl. Es ist nur so, dass man nicht immer so viel Performance braucht. Eve Online zeigt, dass man für große 3D-Grafiken nicht immer/unbedingt C braucht. Viele Leute lernen mühevoll C und schreiben ewig langen Code, den man viel schneller und einfacher auch in Interpretsprachen schreiben könnte. C ist wunderbar, nur brauch ist es nicht überall und ist, wenn ich zum Beispiel ein paar Programme schreiben will um mir die Administration meines Systems zu erleichtern oder ein paar kleinere (oder auch um einiges größere) Spiele programmieren will. Nicht alle wollen gleich ein OS oder riesige und komplexe Programme schreiben.


C mag aufwendig sein, ja. Aber ein PC ist technisch auf Aufwendig. Was ich gesagt habe war, dass man durch C Programmierung und "herumspielen" mit Pointern, 'manueller' Speicher allocierung sowie Freigabe, etc - einfach naeher an dem ist, was im PC wirklich passiert.
Wenn es um Performanz geht, ist C normalerweise die allererste Wahl nach Assembler.

Da bin ich auch zu 100% deiner Meinung :)

Es ist moeglich dass man Scriptsprachen leichter lernt (obwohl ich eigentlich vom Gegenteil ueberzeugt bin), aber man wird *NIE* durch Scriptsprachen "richtiges" Programmieren lernen - und zu richtigem Programmieren sollten ausser Hardwarekenntnissen auch System-spezifische Kenntnisse stehen und vor allem "was passiert im System wenn ich zB. write() aufrufe?".

Richtiges programmieren is aber _seeeehr_ subjektiv.
Wenn du nah an der Hardware (und das muss kein PC und kein Computer sein) sein willst, dann ist C eine sehr gute Wahl. Man kann aber auch Mikrocntroller zum Beispiel mit Basic programmieren.
Und ich finde, dass sowohl Eve Online als auch google oder sonstige Programme richtig programmiert sind. Viele Leute haben zuerst mit Pascal, Python und Perl gelernt und später mal C. Es gibt aber auch einige, die C gelernt haben und es eigentlich nie brauchten (und ich kenne viele, denen es so ergangen ist). Nochmals ich mag C und in einigen Bereichen ist sie nahzu unumgänglich, aber sie ist IMO nicht die "Supersprache", als die sie bei vielen gilt. Ich keine auch einige (nicht so viele ^^), die jahrelang C programmiert haben und dann etwas anderes gelernt haben, weil es vieles gibt, das in anderen Sprachen einfach schneller zu programmieren geht. Btw: Perl 6 ist IIRC, wenn es dann mal fertig ist *g*, auch eine "echte" Programmiersprache, oder täusch ich mich da jetzt?

Ich bin kein Professioneller Programmierer, aber ich bin trotzdem der Ansicht, das wenn man etwas 'richtig' und 'sauber' machen will, man diese Kenntnisse benoetigt.

Man braucht doch nicht für jedes Programm tiefgreifende Kentnisse über die Hardware. Die braucht man im Grunde nur, wenn man OSs, Compiler/Treiber o.ä. programmieren will. Oder wenn man C programmiert *g* SCNR
Man kann mit allen Programmiersprachen saubere Programmeschreiben. Das hat doch nichts mit der gewählten Sprache zu tun. Da wir hier im Linuxforum programmieren wäre zum Beispiel portage von Gentoo ein schönes Beispiel. Es gibt aber vor allem viele GUIs, welche in Python realisiert wurden. Aber wenn man eine Liste von Pythonprogrammen sehen will. Die gibts hier
http://wiki.python.org/moin/Applications Bittorrent dürfte zum Beispiel den meisten bekannt sein.

Es gibt allerdings einen Punkt der sehr *fuer* Interpretierte Sprachen zaehlt: Portabilitaet. Normalerweise wird ein Perl Script ohne oder mit minimalen veraenderungen auf Windows, Linux, BSD und Mac OS rennen.

Das ist der Hauptgrund für mich, Perl zu verwenden. In der Unixwelt ist ein sehr großer Teil der Scripte in Perl realisiert (Webmin läuft zum Beispiel fast überall (Ich mein mit Scripten jetzt allerdings nicht Webmin ansich sondern die einzelnen Module und Backends)). Es gibt auch Server und IIRC gab es mal ne Meldung, dass Perl sogar schon den Weg in den Linuxkernel gefunden hat.

Zwei Sachen noch:
Auch C gibt es embedded als Interpreter
Ich hab zwar als Beispiel Python und Perl genommen, aber es gibt noch viele ander Sprachen, wie Haskell die sehr interssant sind.

C ist ja gut und ich hab absolut nichts gegen C, aber wenn man schnell zu anständigen Ergebnissen kommen will ist es nicht immer die beste Lösung und wenn ich mich so umsehe gibt es mindestens genau so viele Jobanzeigen für Interpretersprachen, wie auch für C.
Alien
Neu im Board
Neu im Board
 
Beiträge: 17
Registriert: Mi 24 Aug, 2005 04:25

Beitragvon lordpeng » Sa 07 Jan, 2006 22:35

>Das ist der Hauptgrund für mich, Perl zu verwenden
>In der Unixwelt ist ein sehr großer Teil der Scripte in Perl realisiert
wird vermutlich daran liegen weil perl ursprünglich dafür entwickelt wurde um damit administrative arbeiten automatisieren zu können ...

>Webmin läuft zum Beispiel fast überall (Ich mein mit Scripten jetzt allerdings nicht Webmin ansich
hier bei mir nicht ... aus gutem grund ...
lordpeng
Moderator
Moderator
 
Beiträge: 10198
Registriert: Mo 23 Jun, 2003 22:45

Beitragvon Alien » So 08 Jan, 2006 00:05

lordpeng hat geschrieben:>Das ist der Hauptgrund für mich, Perl zu verwenden
>In der Unixwelt ist ein sehr großer Teil der Scripte in Perl realisiert
wird vermutlich daran liegen weil perl ursprünglich dafür entwickelt wurde um damit administrative arbeiten automatisieren zu können ...

Dafür verwende ich es auch. Aber es gibt auch viele Spiele, die darin programmiert sind.

>Webmin läuft zum Beispiel fast überall (Ich mein mit Scripten jetzt allerdings nicht Webmin ansich
hier bei mir nicht ... aus gutem grund ...

Ich hatte heute vor es zu instalieren. Es ging mir vor allem um die Clustermodule (Aufgaben auf mehreren Rechner ausführen). Wollte es mir mal angucken, weil einige Leute sagten, dass es so toll sei. Ausserdem will ich mein System auch von Systemen aus verwalten können, die über keinen SSH-Clienten verfügen. Was ist denn schlecht daran, bzw. warum "aus gutem Grund"?
BTW meinte ich mit überall laufe nicht, dass es jeder installiert hat, sondern dass es überall installierbar ist (solltest du das falsch verstanden haben).
Alien
Neu im Board
Neu im Board
 
Beiträge: 17
Registriert: Mi 24 Aug, 2005 04:25

Beitragvon superracer » So 08 Jan, 2006 00:13

Kakashi hat geschrieben:"Free() the moloc()'s!!!" ;)

"malloc" heißt das...

Alien hat geschrieben:Es ist nur so, dass man nicht immer so viel Performance braucht. Eve Online zeigt, dass man für große 3D-Grafiken nicht immer/unbedingt C braucht.

ich hab's mir jetzt nicht genau angeschaut, aber ich vermute mal, daß der game-code (in python) für die gesamte grafik usw. wohl nur library calls macht, und die libraries sind dann wohl doch in C geschrieben... je größer die datenmengen sind, desto kritischer wird die performance, und aufwändige grafiken bedeuten immer _viele_ daten...

Viele Leute lernen mühevoll C und schreiben ewig langen Code, den man viel schneller und einfacher auch in Interpretsprachen schreiben könnte.

der knackpunkt ist und bleibt die performance. in perl oder python bspw kann man sehr schnell sehr mächtige programme schreiben, allerdings sind die anforderungen an cpu und ram um ein vielfaches höher. wenn das ganze zeug dann skalieren soll, stößt man irgendwann an die grenzen der hardware. und dann gibt's nur zwei möglichkeiten: mehr oder bessere hardware muß her, oder das ding muß in einer anderen sprache, eben etwa C neu geschrieben werden, was dann zwar kein geld, aber zeit kostet.

aber das ist hier ja schon ein paar mal durchgekaut worden. wenn es aber um kleine programme geht, die in der perl-version 5 mb ram brauchen und 0.2 sekunden ausführungsdauern haben, während sie in der C-version 500 kb ram brauchen und 0.05 sekunden laufen, dann ist derjenige einfach nur dumm, der das in C schreibt. (oder masochist. oder er will vielleicht einfach nur C üben.)

Richtiges programmieren is aber _seeeehr_ subjektiv.

ACK, und das sollte auch niemand vergessen...

auch bash (oder andere unix shells), plus die dazugehörigen utils, ist in meinen augen eine richtige programmiersprache: man kann damit programme schreiben. (wer's nicht glaubt: es gibt sogar einen httpd geschrieben in bash. die performance ist allerdings unter aller sau :) )

ich glaub, man sollte nicht unterscheiden, was eine richtige programmiersprache ist und was nicht, sonder was ein richtiger programmierer ist und was nicht. und die erklärung:

Viele Leute haben zuerst mit Pascal, Python und Perl gelernt und später mal C. Es gibt aber auch einige, die C gelernt haben und es eigentlich nie brauchten (und ich kenne viele, denen es so ergangen ist). Nochmals ich mag C und in einigen Bereichen ist sie nahzu unumgänglich, aber sie ist IMO nicht die "Supersprache", als die sie bei vielen gilt. Ich keine auch einige (nicht so viele ^^), die jahrelang C programmiert haben und dann etwas anderes gelernt haben, weil es vieles gibt, das in anderen Sprachen einfach schneller zu programmieren geht.

ein computer spricht in seiner muttersprache maschinensprache, also z.b. x86 bytecode. um den bytecode für menschen lesbar zu machen, gibt es assembler.

C sehe ich als eine art frontend zu assembler. ein C-compiler spuckt üblicherweise auch keinen maschinencode aus, sondern assembler code, der dann dem assembler zum übersetzen in die maschinensprache gegeben wird. dazu gibt es in C eine reihe von eigenarten, die zumindest ansatzweises verständnis von assembler und/oder der darunterliegenden hardware voraussetzen. (beispiele: die "register" anweisung, sizeof(), das ganze drumherum mit pointern, noch schlimmer bei funktionspointern, ganz haarig wird's bei funktionen mit ner variablen anzahl an argumenten, ditto für longjmp() et al, sehr heikel sind "atomic" operationen, bei denen man bei multi-threading, aber auch bei signal handlers sehr aufpassen muß, usw usf...)

wer also ein "richtiger" C-programmieren sein will, muß auch zumindest eine ahnung von assembler haben.

wenn wir einen schritt weiter gehen: in perl und in python gibt es ebenfalls eine reihe eigenarten, die zumindest ansatzweises verständnis von C voraussetzen. (immerhin sind die interpreter auch in C geschrieben.) beispiele sind reference counting bei objekten, die daraus resultierenden effekte aufs speichermanagement, typecasts und type juggling, signal handling, die eigenarten bestimmter systemnaher funktionsaufrufe usw...

wer also ein "richtiger" perl- oder python-programmieren sein will, muß auch zumindest eine ahnung von C haben.

wer das nicht hat, kann zwar natürlich trotzdem saubere und voll funktionsfähige perl- oder python-programme schreiben, auch in größerem umfang. allerdings wird er in bestimmten gebieten an seine grenzen stoßen, weil ihm einfach die kenntnisse über die interne funktionsweise der darunterliegenden sprache fehlen. in solchen fällen greift der programmierer dann oft zu irgendwelchen schmutzigen hacks, um ein problem zu lösen... (selbiges gilt übrigens auch für C-programmierer und fehlende assembler-kenntnisse.)

Bittorrent dürfte zum Beispiel den meisten bekannt sein.

dann schau dir mal den bittorrent-code genauer an. du wirst _sehr_ viele codeschnippsel finden, die ihren ursprung in der C-welt haben, und die ein programmierer ohne C-kenntnisse unmöglich hätte schreiben können.

Es gibt auch Server und IIRC gab es mal ne Meldung, dass Perl sogar schon den Weg in den Linuxkernel gefunden hat.

vorsicht... in der distribution der kernel-sourcen sind zwar perl-scripte vorhanden, aber _im_ kernel selbst läuft kein perl. wäre auch gar nicht möglich.
superracer
Board-User Level 3
Board-User Level 3
 
Beiträge: 1073
Registriert: So 04 Jul, 2004 11:18

Beitragvon lordpeng » So 08 Jan, 2006 00:20

>Dafür verwende ich es auch.
>Aber es gibt auch viele Spiele, die darin programmiert sind.
nicht dass es mich interessieren würd, aber wenn ich "perl game" auf freshmeat.net eingeb bekomm ich grad mal 15 hits das würd ich nicht als viel bezeichnen

>Was ist denn schlecht daran, bzw. warum "aus gutem Grund"?
weils schrott ist, abgesehen davon gabs in letzter zeit desöfteren gravierende probleme mit miniserv.pl was mich in meiner meinung bestärkt ...

>BTW meinte ich mit überall laufe nicht, dass es jeder installiert hat, sondern dass es überall installierbar ist
ich weiss schon was du gemeint hast, ich kenne webmin seit version 0.6.irgendwas (oder so ähnlich auf jedenfall war da grad noch linux kernel 2.2.x aktuell)
lordpeng
Moderator
Moderator
 
Beiträge: 10198
Registriert: Mo 23 Jun, 2003 22:45

Beitragvon sp » So 08 Jan, 2006 00:48

Kurz zu Webmin: In den letzten Versionen gab es *SEHR* viele kritische Sicherhtisluecken, die meistens in Root access fuer remote 'user' endeten.
Persoenlich wuerd ich von Webmin abraten. Wenn du ein System zur configuration von clustern benoetigst solltest du dir eventuell cfengine angucken.

ad "richtig":

Von mir schon aus gutem Grund quoted - es ist immer Subjektiv.

Mein groesstes bedenken bei Leuten die keine breite Erfahrung mit dem System (sei es Hardware- oder OS-technisch) ihrer wahl haben ist, dass dies oft aus Unwissenheit zu mehr-oder-weniger kritischen Bugs fuehren kann.

Aber zurueck zum eigentlichen Topic: Es steht fest, dass es nicht moeglich ist einen Emulator fuer Windows (ich gehe von einem richtigen Emulator aus) in einer der vom urspruenglichen Poster moeglichen Sprachen zu schreiben. Java waere zwar irgendwie moeglich, aber eben nicht performant - und ein Emulator sollte sehr performant sein. Die restlichen genannten Scriptsprachen disqualifizieren sich somit auch fuer diese Aufgabe und wir bleiben auf C (eventuell C++) und assembler sitzen.
sp
Junior Board-Mitglied
Junior Board-Mitglied
 
Beiträge: 37
Registriert: Di 22 Nov, 2005 23:07
Wohnort: Villach, AT

VorherigeNächste

Zurück zu LINUX & UNIX-DERIVATE

Wer ist online?

Mitglieder in diesem Forum: Exabot [Bot] und 54 Gäste