Programmiersprache für Anfänger

Zum einen ist Lua sehr, sehr simpel. Es grenzt schon fast an Pseudocode. Zum Anderen ist Löve recht nett. Das Tutorial geht in die Richtung "schreib das und schiebe das Lua-File auf das Löve-Shortcut". Eigentlich ist Löve nur ein Wrapper für ein paar Libraries, vor allem SDL, wird aber trotzdem als Engine bezeichnet.

Genau hier liegt aber auch der Vorteil von Löve. Wenn man schon mehr Programmiererfahrung hat denkt man sich vielleicht, dass einem Löve nichts bringt, aber es geht geht einfach darum, dass man wirklich mit Editor und dem Shortcut schon alles hat was man braucht und die Anforderungen so sind, dass man solang man einen Editor bedienen kann, Drag and Drop und Bilddateien versteht man wirklich alle Skills hat die man braucht. Am Anfang hat man ja meist viel Overhead, wenn man IDEs verstehen muss (auch wenn es mit ZeroBrane Studio eine sehr, sehr gute, umfangreiche Lua-IDE gibt, die Live-Coding und Debugging in Löve und vielen anderen Umgebungen unterstützt), die erweiterten Konzepte einer Sprache, wie man nun das Programm ausführt, etc. Damit wird man ja regelrecht erschlagen, was gerade wenn man das in der Freizeit macht dann doch ein wenig viel ist. Auch denke ich, dass wenn man ins Programmieren reinkommt nicht gleich in die teilweise philosophischen Diskussionen zum Thema "guten Code schreiben" reingezogen werden muss, wie man Module strukturiert, etc. Das sollte man zwar auch mal lernen, aber nicht bevor man die grundlegenden Dinge versteht.

Zu Beispielen würde ich einfach die Website besuchen:

https://love2d.org/

Kurzum beginnt man quasi mit zwei Bausteinen, einer load-Funktion und einer draw-Funktion. In die eine schreibt man rein, was bei der Initialisierung passiert (wenn man zum Beispiel ein Bild laden weill) und die draw-Funktion, wo eben der Frame vorbereitet wird und einer update-Funktion in welcher der Gameloop stattfindet. Selbst das klingt komplizierter als es ist.

Ein kleines RPG machen geht natürlich. Löve tut genau das was alle Engines in irgendeiner Form tun und du bist wirklich nicht limitiert. Der Unterschied ist, dass alles sehr simpel gehalten wird.

Bei den Tutorials würde ich dir aber empfehlen was zu nehmen, was dir zusagt. Ich empfehle generell ungern Tutorials, weil da verschiedene Leute, verschiedene Dinge bevorzugen. Das Wiki des Projekts ist aber recht gut.

Noch eine ganz kleine Anmerkung bei Spieleentwicklung: Du brauchst natürlich Grafiken und die haben mal ganz grundsätzlich wenig mit Programmierung zu tun. Es gibt aber zum einen freie Grafiken und zum anderen ist es ganz nett da abstrakt zu werden.

Das erste Projekt hieß Lords of Space, das zweite Projekt Impulse, Screenshots finde ich leider keine. Man muss anmerken, dass sich Löve seither (ca. 2008) verändert hat, auch wenn die grundlegenden Konzepte gleich geblieben sind.
 
Ja, das Lua-Buch gibt es auch auf deutsch. Das kann man im übeigen auch leicht mit einer gamz kurzen Suche bei Amazon feststellen. ;)
 
Ja, das Lua-Buch gibt es auch auf deutsch. Das kann man im übeigen auch leicht mit einer gamz kurzen Suche bei Amazon feststellen. ;)
Ja, sorry, ich hatte wohl die falsche Vorstellung und dachte "Lua? kenn doch kein Schwein, dafür gibts bestimmt nur englische Bücher" :D
Irren ist menschlich, lass mich Mensch sein. :D
 
Lua und NetBSD herzen sich auch. Und auf der asiabsdcon wirds einen Vortrag über "Lua as the FreeBSD loader scripting language" geben. Klingt schon mal interessant.
 
Naja, Lua wird garnicht mal so selten verwendet. NetBSD Kernel, Nginx Scripting, Datenbankscripting (Redis zm Beispiel), gibt eigenständige Projekte, wie Prosody und dessen Abkömmlinge (XMPP Server) und ist in Unmengen an Spielen drin (siehe auch Wikipedia). Ist sicher keine gehypte Sprache, aber einfach in C/C++-Anwendungen integrierbar und klein genug für Embedded-Sachen.

Wie gesagt, in die Sprache kommt man sehr schnell rein (deutlich schneller als Python, was in diesem Zusammenhang auch gern genannt wird).

Ich selbst kann nicht gut mit Büchern, ist aber bei jedem ander. Programmieren aus einem Buch lernen halte ich für sehr schwer, weil das erste was man braucht ist mal ein Gefühl. Deshalb auch Löve als Empfehlung. Bücher sind da manchmal ein Overkill. Oder anders gesagt: Wenn du ein Buch nimmst, dann am Besten auch schon nach den ersten 20 Seiten mal was machen. Man braucht wirklich nicht viel. Wenn du weißt wie du Variablen anlegst, wie du Kontrollstrukturen (if, while, for, etc.), Operatoren (>, <, +, ...) und Funktionsdefintionen und Funktionsaufrufe (function()) verwendest dann kannst du programmieren. Das sieht man vielleicht am Anfang nicht gleich, weil man sich mehr erwartet - wieder eine Anekdote, was mich betrifft. Alles was darüber hinausgeht ist zwar spannend, basiert aber zum einen auf diesen Dingen und ist nicht unbedingt erforderlich, bzw. siehst und lernt man die Dinge dann meist, wenn man braucht. Es gibt da so ein paar Konzepte, die die Hölle zu erklären sind, aber selbst ohne Erklärung recht simpel zu verwenden sind. Das ist ja bei natürlichen Sprachen auch manchmal so. Die kann man mit einem Gefühl dafür auch sprechen ohne zu wissen, wie man das jetzt nennt, woher das nun genau kommt und in welchen Fällen man das nun genau anwendet.

Vielleicht übertreibe ich damit auch etwas, aber ich selbst und vielen dürfte es ähnlich zu gehen trauen sich nicht einfach reinzuspringen, auch weil man nichts falsch machen kann und vielleicht auch weil man denkt, das Profis nicht so viele Fehler machen. Dem ist aber nicht, oder nur bedingt so. Du kannst nicht zu früh mit dem Bauen von dem Programm, das du im Kopf hast beginnen. Und wie bei allem, aber beim Programmieren noch viel mehr: Nicht verzagen, wenn es nicht auch Anhieb klappt. :)
 
@Athaba:
Nun ja, wenn es eh nur ums Variablen, Funktionen und Kontrollstrukturen geht, dann kann ich schon C programmieren. ;)
Ich habe eigentlich auch ein Problem mit den Büchern, da sie grottenschlecht beschrieben sind. Aber erst so nach 400 Seiten "hat" man den Dreh raus und versteht diese Kack-Sprache, wo man erst mal 10 Mal durchlesen muss, bevor man einen Satz versteht. Aber auch nach 400 Seiten gibts immer noch Stellen, wo man die Logik des Satzes nicht versteht, wobei die Programmierung eher in den Hintergrund gerät.

Ich habe mal bei mir im Linux Reps nachgeguckt und Love2d habe ich da nicht gefunden. :(
Sonst habe ich eher das Problem, dass mein Buch nur grundlegend basiert und nicht wirklich den ganzen Code erklärt, wieso das so ist und nicht anders.

Und mit Love2d dachte ich eigentlich auch, dass dort schon alle grundlegenden Grafiken drin sind.
Jetzt noch mit Gimp rumzuspielen, ist für mich nicht so prickelnd.
 
[OFF-TOPIC GAMEDEV]
@ninti: Meistens wird love2 als "love" geführt. Wahrscheinlich wegen des coolen Gefühls, wenn man sagt "install love"... :)

Was meinst du mit grundlegenden Grafiken? Wie soll die Game Engine wissen, was für ein Spiel du machen möchtest? Da müsste Löve2D zuviel Grafiken mitbringen und das ist nicht der Sinn dahinter. Wenn du aber nach 2D-Grafiken suchst, dann hab ich dir Links:
OpenGameArt ist immer eine gute Anlaufstelle, desweiter kriegst du hier und hier einen guten Überblick über Möglichkeiten an freie Grafiken zu kommen.

Achja, und in Gimp machst du keine Grafiken... Eher Krita
[/OFF-TOPIC GAMEDEV]
 
@ninti: Worum es mir geht ist, dass man (oder zumindest ist, als ich angefangen habe) dazu neigt recht wenig einfach mal zu machen. Das ist nicht der optimale Weg wenn man professionell ein großes, komplexes Projekt angeht, aber der richtige Weg um schnell viel zu lernen ohne den Spaß daran zu verlieren. Man muss am Anfang nicht jedes Detail einer Sprache verstehen und ja auch was C und C++ betrifft kommt man ziemlich weit ohne vieles zu können. Das wird zwar meist dann als unschön angesehen, aber um das sollte man sich meines Erachtens beim Lernen erstmal nicht kümmern.

Man beginnt ja beim Schreiben lernen auch nicht mit den Thema, wie man den Text strukturiert, welcher Wortwahl man sich bedient, wie man Dinge effizienter vermitteln kann, etc. Nach den grundlegenden Dingen kannst du dich in einer Programmiersprache quasi ausdrücken. Vieles von den erweiterten Konzepten sind auch wenn man es nicht immer gleich sieht einfach nur eine Möglichkeit Dinge effizienter zu gestalten, sei es jetzt was Performance angeht, die Erhöhung von Lesbarkeit (nicht unbedingt von Anfängern, sondern von Leuten, die bestimmte Konzepte schon verstehen), Reduktion von Code, Wiederverwendbarkeit von Code, etc.

Bücher bringen einem bestimmte Dinge nicht gut bei, weil sie schwer in Worte zu fassen sind und wenn man da Vergleiche anstellt, dann passen die vielleicht für eine Person, aber nicht für die Andere. Es gibt dann noch andere Themen, zum Beispiel, dass man ein Buch lesen kann und sich dann fragt "Wie mache ich ein Fenster wo ein Text steht und ein Button ist". Da sieht man vielleicht, dass das weit hinten beschrieben wird und denkt sich, dass es da noch weit hin ist, aber einer der Hauptgründe, dass das meist ganz am Ende ist ist, dass es so viele Möglichkeiten gibt das zu machen und es (meist) relativ wenig oder garnichts mit der Programmiersprache selbst zu tun hat. Selbiges gilt eben auch für Datenbanken, Netzwerksachen, Webentwicklung, etc. Das ist wieder der Punkt wo Löve gut ist. Da braucht man relativ wenig wissen. Genauso, wie du für die Verwendung eines Browsers nichts über HTML, HTTP, etc. wissen musst. Gibt ja viele, die mit dem Begriff Browser, URL, Button, etc. nichts anfangen können und nicht wissen, wie man ein Programm installiert - vor allem nicht am Anfang und trotzdem Bücher bei Amazon bestellen. Mit Lesezeichen, Shortcuts, etc. beschäftigt man sich erst wirklichen, wenn alles sitzt und man mehr will. Ein bisschen ist das so auch mit Löve. Drag and Drop und Grundkenntnisse in Lua sind erstmal genug und danach kommt man auch sehr weit (gibt einige, die ihre Spiele mittlerweile recht erfolgreich verkaufen).

Vielleicht setze ich da auch zu viel Fokus drauf, aber bei mir war das eben am Anfang der Mangel an "einfach mal drauf los tun, mit dem was ich schon weiß" was mich zurückgehalten und mir auch die Motivation genommen hat.

Jemand meinte dann mal, ich solle einfach ein Projekt im Kopf haben und Bücher, etc. nur als Referenz verwenden bzw. die eben mit dem Projekt im Hinterkopf lesen und immer ein wenig weiterbauen, wenn ich was lerne. Das war der beste Tipp, den ich je was Programmieren lernen betrifft erhalten habe.
 
Jemand meinte dann mal, ich solle einfach ein Projekt im Kopf haben und Bücher, etc. nur als Referenz verwenden bzw. die eben mit dem Projekt im Hinterkopf lesen und immer ein wenig weiterbauen, wenn ich was lerne. Das war der beste Tipp, den ich je was Programmieren lernen betrifft erhalten habe.
Ja das stimmt, so habe ich HTML gelernt und meine eigene Seite auch nach und nach aufgebaut und verbessert.

Vielleicht kurz zu C?
Ich lese "immer wieder", dass C eigentlich für den Anfänger richtig ist, weil es noch nicht so überladen wie C++ ist.
Und mir selber macht schon immer wieder sehr viel Spaß C zu lernen und ständig was neues zu lernen.
Wobei ich immer noch bei den Anfängen bin und jetzt nichts besonderes programmieren könnte.

Vielleicht setze ich da auch zu viel Fokus drauf, aber bei mir war das eben am Anfang der Mangel an "einfach mal drauf los tun, mit dem was ich schon weiß" was mich zurückgehalten und mir auch die Motivation genommen hat.
Nun ja, also du kA wann es anfängt, wann deine Eltern dir das Sprechen beigebracht haben, da konntest du so gesehen auch nur sagen wie printf if for, aber keine richtigen Sätze bilden bzw. ein Programm schreiben, das ist dann genauso beim Programmieren lernen - jeden Falls sehe ich das so.
Du bist jetzt sogar in Vorteil du kannst lesen und dein Gehirn ist voll entwickelt. :D
Und das drauflosprogrammieren geht natürlich nicht, weil du noch nicht "reden" bzw. schreiben kannst. Ist wie, du bist ein Kleinkind und weinst und bist traurig, weil du mit kA mit 3 Jahren nicht schon so reden kannst wie deine Eltern. :D :D
Deshalb finde ich beim Programmieren lernen ist das wichtigste Ruhe behalten und sich vielleicht schon ein kleines Projekt ausdenken.


Wenn das mit Lua und Love2d mit Drag & Drop plus Lua programmieren ist, dann habe ich es im Hinterkopf abgespeichert. :)

Bücher bringen einem bestimmte Dinge nicht gut bei, weil sie schwer in Worte zu fassen sind
Nun, ich bin der Meinung, dass die Autoren dann eigentlich keine Programmierer sein sollten, sondern Autoren von Klassikern.
Die können sich immer richtig ausdrücke, jedenfalls paar davon. Vielleicht so eine Koproduktion: Dostojewski + Programmierer :D
Wobei Dostojewski leider schon lange tot ist.

Gruß
 
Hehe. Ja.

Aber du, sorry, dass das jetzt so ausgeartet ist. Im Grunde sind die Diskussionen ein wenig groß. Du kannst ehrlich gesagt mit jeder Sprache anfangen. Man sollte es einfach wirklich nur tun und dann auch wirklich programmieren, nicht nur lesen. Man kann ja, wenn man wo konkret festhängt googeln oder fragen. Sprachdiskussionen werden wie Betriebssystemdiskussionen sehr, sehr schnell philosophisch und am Ende sollte man dann einfach mal loslegen. Klar macht man Fehler, klar kann man Sachen optimieren.

Noch ganz kurz zur Einfachheit von Sprachen. Das lässt sich garnicht so leicht beurteilen und versteht man erst, wenn man mal ein paar Jahre mit mehreren auf den Rücken hat, aber was ist einfach?

C ist unheimlich einfach, wenn du dir die Größe davon anschaust und mit Python, JavaScript oder sonst was vergleichst. Du kannst mit einem ganz kleinen Set an Bausteinen wirklich alles machen. Andererseits gelten Sprachen, wie Python als einfach, obwohl sie so viel größer sind und es so viel mehr darüber zu lernen gibt.

Der Grund ist, dass man in C mit viel kleineren Bausteinen arbeitet. Das heißt man muss mehr tippen, man muss wirklich wissen, wie man die Bausteine so zusammenbaut, dass das rauskommt, was man am Ende will. Im Großen und Ganzen ist es aber relativ egal, was du nimmst. Gerade wenn du keinen allzu großen Wert auf bestimmte Dinge kannst du Programme in verschiedenen Programmiersprachen sehr ähnlich aussehen lassen. Allerdings ist das nicht gut, weil das viele Leute eher dann machen, wenn sie die Konzepte eine Programmiersprache nicht ganz verstehen und teilweise krampfhaft versuchen in einer einer dynamischen Sprache zum Beispiel Java- oder C-style zu programmieren. Das sind dann auch die Dinge, die über die Basics hinausgehen und nur schwer zu vermitteln sein können,

Das ist auch das was ich meinte, dass du relativ wenig brauchst. Zu deinem Beispiel: Es wird nicht mehr. Du wirst loops schreiben, du wirst Funktionen aufrufen, du wirst Variablen und Fuktionionen definieren. Mehr können Programmiersprachen auch garnicht. Um deinen Vergleich herzunehmen: Du kannst wenn du reden oder schreiben lernst alles was du brauchst. Du kannst ziemlich schnell alles irgendwie ausdrücken. Du kannst Befehle erteilen, du kannst darüber reden, wie du dich fühlst, etc. Aber auch wenn es ein Politiker, Poet, Buchautor, Showmaster oder sonstwer viel, viel besser kann, werden am Ende wieder nur Befehle, Emotionen, etc. über die selbe Sprache ausgedrückt.

Bei mir war es einfach so, dass ich lange was großes, neues, revolutionäres erwartet hat, damit ich quasi vollständig programmieren kann. Hat eine Weile gedauert bis ich begriffen habe, dass das ganze GUI-Zeug, Netzwerke, Betriebssystemtreiber, Datenbanken, etc. auch nur mit Funktionen, Variablen, Kontrollstrukturen, etc. funktionieren (und, dass OO auch nur Variablen und Funktionen sind). Will nur vorwarnen, damit dir das nicht auch passiert. ;)

Stimme dir auch mit dem Ruhe behalten zu. Das Schlimmste was man machen kann (auch schon alles ewig hinter mir) ist dann irgendwie zwischen Sprachen und Technologien zu hoppen.

Deshalb der Vorschlag ein Projekt beginnen (am Besten wirklich eines!) und das dann mit einer Sprache fertig zu stellen und zumindest bis das fertig ist nicht schon ein anderes Projekt oder eine andere Sprache angehen, sonst passiert es schnell, dass man hängen bleibt. Ist vielleicht ein kleinwenig wie die Diskussion, dass es wichtig ist mal die Muttersprache zu beherrschen.
 
Ich mag lange und kluge Diskussionen. :)

Ich bin nicht wirklich so weit, um irgendeine Idee für ein kleines Projekt zu haben, weil das alles so printf, scanf, getchar Sachen sind.
Dann spielt man noch mit Arrays und Zeigern, die ich eigentlich kapiert habe, auch wenn ich mir gerne immer neue Sachen dazu ansehe, sprich YT Videos.
Man lernt ja nie aus und es vertieft ja auch.
Aber außer Speicherbereiche zu verändern, auf die zu schreiben und Kontrollstrukturen zu machen, ist da nichts, womit man was wenigstens etwas brauchbares für sich programmieren könnte.
Aber ich habe schon so ein kleines Projekt im Kopf, so ein menü, womit man so Zaubersachen mit C machen kann. :)
Ich bin aber noch nicht so weit, könnte erst nur das Menü erstellen, wobei ich da auch nicht wirklich einen Plan habe bzw. machen kann.

Noch ganz kurz zur Einfachheit von Sprachen. Das lässt sich garnicht so leicht beurteilen und versteht man erst, wenn man mal ein paar Jahre mit mehreren auf den Rücken hat, aber was ist einfach?
Ich finde eigentlich, fürs Programmieren muss für sich die Zeit kommen, dann ist irgendwie alles einfach, außer das Buch zu lesen. :D
Na ja, einfach ist immer noch die Maus halten und zu klicken. ;)
Ich habe vielleicht so vor 10 Jahren auch mal mit programmieren angefangen und schon alles vergessen.
Ich habe eigentlich irgendwie ein Verständnis für alles, wenn man es auch erklärt, wo manche vielleicht versagen können.
Bzw. das Lernen von C macht mir so keine Probleme. Auch wenn ich vorher schon über Bash Scripting gelernt habe.
Vielleicht liegts eher an meiner Motivation?
Vielleicht sollte sich unser Anfänger fragen, was seine Motivation ist?
Wenn er einfach so programmieren will, weil er eh nicht anders weiß die Zeit tot zu schlagen, dann denke ich, dass mit dem Programmieren nicht viel bringt und man dann auch wirklich bei wirklich einfachen Sprachen bleiben sollte, wenn man irgendwie doch was coden will.
C ist unheimlich einfach, wenn du dir die Größe davon anschaust und mit Python, JavaScript oder sonst was vergleichst. Du kannst mit einem ganz kleinen Set an Bausteinen wirklich alles machen. Andererseits gelten Sprachen, wie Python als einfach, obwohl sie so viel größer sind und es so viel mehr darüber zu lernen gibt.
Das frage ich mich auch immer, warum diese Sprachen für Anfänger empfohlen werden? Ich glaube, weil die Python usw. Gemeinschaft mehr Jünger braucht. :D
Oder weil auch so ein Hype gemacht wird und jedes "Sprachen-Opfer" unbedingt das lernen muss, wo C eigentlich die Sprache ist, wo man wirklich alles machen kann, naja alles was hardwarenahe Sachen sind, also alles was wichtig ist. :)

Ich denke auch, in C gibts schon paar Bibliotheken, aber in Phyton wirst du davon "ermordert" :D :D
Außerdem möchte der Programmierer nicht so viel tippen, weil die PCs ja eh immer besser, schneller usw. werden, da braucht kein Schwein mit C zu spielen und z.b mit den Bitfeldern zu spielen, was vor 30 Jahren noch streng genommen wichtig war, weil man damals mit 16k oder so hantieren musste.


Bei mir war es einfach so, dass ich lange was großes, neues, revolutionäres erwartet hat, damit ich quasi vollständig programmieren kann. Hat eine Weile gedauert bis ich begriffen habe, dass das ganze GUI-Zeug, Netzwerke, Betriebssystemtreiber, Datenbanken, etc. auch nur mit Funktionen, Variablen, Kontrollstrukturen, etc. funktionieren (und, dass OO auch nur Variablen und Funktionen sind). Will nur vorwarnen, damit dir das nicht auch passiert. ;)
O, Kacke! :)
Nun ja, ich warte eigentlich nun auch nur auf weitere Standard-Funktionen wie strcpy(), die ich dann endlich benutzen kann und nicht immer mit printf() "rumgurke" :)
Sonst hatte ich da schon so ne Ahnung. :)

Stimme dir auch mit dem Ruhe behalten zu. Das Schlimmste was man machen kann (auch schon alles ewig hinter mir) ist dann irgendwie zwischen Sprachen und Technologien zu hoppen.
Ja, zwischen Sprachen hin und her zu hopsen ist eher das schlimmste, auch für dein Hirn. :)
Du willst dann in Java schreiben, nimmst aber die Namensräume und Gültigkeit von C++, jetzt als einfaches Beispiel, wobei sich das bestimmt ähnelt.
Dann kriegst du n Dreher und wirst nach der Beendigung der Programmentwicklung erst mal eingeliefert. ;)

Deshalb der Vorschlag ein Projekt beginnen (am Besten wirklich eines!) und das dann mit einer Sprache fertig zu stellen und zumindest bis das fertig ist nicht schon ein anderes Projekt oder eine andere Sprache angehen, sonst passiert es schnell, dass man hängen bleibt. Ist vielleicht ein kleinwenig wie die Diskussion, dass es wichtig ist mal die Muttersprache zu beherrschen.
Ich wäre eigentlich bereit für ein kleines Projekt, vielleicht hast du ein Beispiel, was auch praktisch wäre?
Jetzt irgendwas berechnen ist nicht so prickelnd, ne ;)
So gesehen könnte ich erst mal alle Mathe Formeln nehmen und die durcharbeiten, aber das wäre auch nicht so doll, da man eh nicht mehr arithmetische Operratoren hat als nur die paar. :)
 
Das frage ich mich auch immer, warum diese Sprachen für Anfänger empfohlen werden? Ich glaube, weil die Python usw. Gemeinschaft mehr Jünger braucht. :D Oder weil auch so ein Hype gemacht wird und jedes "Sprachen-Opfer" unbedingt das lernen muss, wo C eigentlich die Sprache ist, wo man wirklich alles machen kann, naja alles was hardwarenahe Sachen sind, also alles was wichtig ist. :)
In dynamischen Sprachen hast du alles was du brauchst um programmieren zu lernen: Funktion, Schleifen, Rekursion etc pp. Das hat den Vorteil dass du dich zunächst nicht mit solchen Sachen wie Pointer, Speicherverwaltung, maschinennahe Datentypen etc befassen mußt und dadurch den Kopf frei bekommst für Algorhytmen. Das macht schon Sinn, wobei ich hierfür nicht gerade Python empfehlen würde. Außerdem haben sie alle eine REPL (read-eval-print-loop) mit der du schnell etwas ausprobieren kannst und nicht erst umständlich den edit-compile-link-run Zyklus durchlaufen must.Ist also zum lernen schon gut, - und nicht nur dafür.
Ich denke auch, in C gibts schon paar Bibliotheken, aber in Phyton wirst du davon "ermordert" :D :D
Außerdem möchte der Programmierer nicht so viel tippen, weil die PCs ja eh immer besser, schneller usw. werden, da braucht kein Schwein mit C zu spielen...
C ist nach wie vor ein besserer Macro-Assmbler was seine Vorzüge aber eben auch enorme Nachteile hat. Aber es ist auch die Lingua-Franka der Programmierung den es gibt wohl niemanden der nicht zumindest ein wenig C versteht und auch schreiben kann. Und alle höheren Sprachen haben ein Interface mit dem man C-Biblotheken einbinden kann. Man kommt nicht darum herum.

Man kann allerdings fragen ob nicht durch diese archaische Sprache und nicht weniger archaische Werkzeuge auch Entwicklungen verhindert worden sind...
 
nicht erst umständlich den edit-compile-link-run Zyklus durchlaufen must.
Was meinst du damit? Ist gcc -o prog prog.c zu schreiben schon umständlich???

Man kann allerdings fragen ob nicht durch diese archaische Sprache und nicht weniger archaische Werkzeuge auch Entwicklungen verhindert worden sind...
Wenn ich es richtig verstehe - wohl nicht, da Unix-Welt immer noch existiert. :)

Haben die höhren Sprachen auch ein Interface für Asm?
 
Mit Verlaub, ninti,

aber kannst du noch was anderes als Schei--e zu verzapfen?

Zu "C": Genau so fängt man an. Simple Sachen, sehr simple Sachen.

Zu "Python": Python ist eine ganz andere Ebene als C.

Zu "libraries": Dass es dafür sehr viele gibt ist eine Stärke von (u.a.) Python. Aber: Für C gibt es noch weitaus mehr.

Nimm's mir nicht übel, aber mir scheint, dir geht's nicht um Programmieren (lernen) sondern um Aufmerksamkeit und Beachtung und verzweifeltes dazu gehören wollen.
Erwäg doch einfach mal, über etwas zu reden, wovon du wenigstens ein bisschen Ahnung hast.
 
Ich habe von nichts ne Ahnung, deshalb rede ich von allen.
"Aufmerksamkeit und Beachtung" habe ich eigentlich zu viel. Dafür brauch ich eigentlich nicht mal ins Internet zu gehen. :)

Und damit es nicht beendet wird, ich habe mir die C Bibliothken und und Python angeschaut.
Vielleicht waren es nicht alle bei C?
Ich glaube das waren die Standardlibs.

Wie war der Spruch, hast du Quellen, womit du es beweisen kannst?
Und der andere Spruch: Bitte hijackt unser Thema nicht.
 
Was meinst du damit? Ist gcc -o prog prog.c zu schreiben schon umständlich???
Nur dauert es bei einem
Code:
gcc -o prog prog.c && ./prog
bis zum Segmentation fault in der zweiten zeile der Mainfunktion evtl. wesentlich länger, als wenn man das quasiinteraktiv in Python erlebt.
 
@chaos: Ich habe dafür ein Terminal bereit und ändere nur den Dateinamen.c und mit Pfeil hoch kann gleich in der nächsten Sekunde ./prog ausführen.
Aber dein Beispiel zum Vergleich zu meiner Vorgehensweise finde ich dann "umständlich", da man etwas mit dem Crursor wandern muss, wenn jetzt für einige die Zeile zu viel ist. ^^
Dann kann man meine "Technik" anwenden. ;)
So also, dauert es nur so 3 Sekunden bis ich das Ergebnis habe. Natürlich sind das erst mal eher kleine Programme, das kann dann bei größeren Programmen bestimmt ins Gewicht fallen, also nur die Compilierzeit.
Aber ich fände es falsch nur daran diese oder andere Sprache zu verweigern.

Na ja, ich benutze auch keine IDE. Ah jetzt habe ich mich verraten - gib mir "Aufmerksamkeit und Beachtung" :cool:
Ich brauch meine nächste Dosis :p
 
Nööö, aber wer macht das schon? Bei 200, 2000 oder 20 000 und mehr Dateinen + Headerfiles wird das dann ein wenig anders.
Dafür hat man dann eine IDE. Bei wirklich vielen Dateien kann man eigentlich nur noch eine IDE benutzen oder man ist auch noch RegExp Spezi und codet sich noch vorher schnell ein Shell Script :)

Sagen wir's mal so: Im Reich der Blinden ist der Einäugige König!
Ich dachte eigentlich, auch wenn Windows die Nase vorn hat, in Sachen Marktanteile usw. dass doch die Unixoide sich bei den Servern bewährt hätten und langsam den Markt erobern? Oder ist das nur so eine Täuschung von mir, weil ich nun nicht mehr Windows benutze und irgendwie das Gefühl habe, Unixe würden alles erobern. :)
Werden doch immer mehr, die dann Linux/*BSD benutzen.
Denn so wie du das schreibst, müsste es noch viel schlimmer sein als ich mal im Internet gesehen habe?
 
Dafür hat man dann eine IDE. Bei wirklich vielen Dateien kann man eigentlich nur noch eine IDE benutzen oder man ist auch noch RegExp Spezi und codet sich noch vorher schnell ein Shell Script :)
?
Da brauchst du keine IDE und auch kein ShellScript, das machen Make & Co, auf dem Server und intern in den IDEs. Das Wort "Build-System" hast du ja schon gehört, damit fängt das Vergnügen an C/C++ erst an ....:rolleyes:

Auf dem Server sind die Unixes wohl dominierend, aber was sagt das ?
 
So, ich hab mich zum wiederholten Male mit Lua beschäftigt, diesmal von der praktischen Seite. Gibts einen Grund warum man sich das freiwillig antun will? Meine Probleme damit sind so zahlreich und vielschichtig, ich kann mir nicht vorstellen dass das nur mir so geht.
Fangen wir bei der Sprache an. Sehr kurz, an einigen Stellen zu kurz, fühlt sich ein wenig wie Matlab an, aber krankt an vielen Stellen. Da gibts ein break aber kein continue, dafür aber ein goto. Dafür gibts ein repeat until. Ebenso der In-Operatoren muss man sich nachprogrammieren um nicht sehr lange Bedingungen zu prüfen mit vielen Codedubletten.
Prinzipiell ist die mitgelieferte API sehr minimalistisch. Entweder zwingt man seinen Nutzer Distributionen auf oder lässt es besser gleich sein. Selbst sowas simples wie Listen der Dateien bedarf Shellakrobatik oder LFS(lua file system). Daraus folgt auch eine gewöhnungsbedürftige API, beispielsweise das Modul io. Da übernehmen read die gepufferte Eingabe, das Gegenstück ist write, aber um einen File Handler zuzuweisen ist da auch noch open drin. Das führt dann zu solchen Zeilen(Erklärung später):

Code:
file = io.open(filename, "r")
content = file:read("a") ; -- hübscher Doppelpunkt und magisches a

Es gibt viele Abkürzungen in der Sprache und API wie Länge(#) und Konkatenation(..) von Strings. Leider fehlen elementare Listenoperationen wie append. Viele davon sind sehr speziell, io.lines oder file:read("a"), alles fühlt sich so an, als ob der Programmierer das gerade für sinnvoll erachtete oder Sinn und Verstand integriert.
Das Iteratorenkonzept ist auch ein wenig abenteuerlich, normalerweise sollte es kein Problem darstellen über Arrays zu iterieren. Aber nein, hier holt man sich lieber Paare und wovon der Index gleich entsorgt wird. Möchte man sein Array dynamisch wachsen lassen, hilft das 1x1 von Matlab(code[#code + 1] = ...) statt den Arrays eine Methode dafür zu spendieren. Auch interessant, man kann die Paare "zufällig" holen oder geordnet. Solche Implementierungsdetails haben in einer Sprache nichts zu suchen.
Die Fehlermeldungen sind natürlich auch ein Unding. Sowas unpräzises hab ich bisher selten gesehen. Da gibts den Punkt, der für Module und Attribute von Objekten genutzt wird und den Doppelpunkt für Methoden. Äußert verwirrend und sinnfrei dieses Unterscheidung, was auch die result. Fehlermeldung erklärt.
Generell fühlt sich die Sprache nicht erwachsen an. Ich les was ein und es wird automatisch in den passende Typ konvertiert. Viele Typen gibts auch nicht, weshalb alles zahlenartige in Number zusammengefasst wird. Elementare Dinge wie UTF8, Endianess oder Bitoperatoren wurden erst neulich eingeführt!

PS: Ich vergas das Entwicklerkonzept hinter Lua. Neuer Code wird irgendwann herausgekotzt, in größeren Stücken. Keine Versionierung oder Verfolgung möglich. Open Source, nur eben keine Open Source Entwicklung. Vielleicht bin ich zu verwöhnt bei Python aber wenigstens eine Übersicht über neue Typen und Operationen samt Beispiele, Paper warum das so implementiert wurde, wären schön gewesen.
 
Zurück
Oben