ubuntuusers.de

[Suche] Programmiersprache (Details im beitrag)

Status: Ungelöst | Ubuntu-Version: Ubuntu
Antworten |

i-mehl

Avatar von i-mehl

Anmeldungsdatum:
30. August 2005

Beiträge: 401

Hallo.

Also meine derzeitigen Kenntnisse sehen so aus:
PHP, MySQL, HTML, CSS sitzt alles ziemlich gut.
Java machen wir in der Schule .. aber da geht nur langsam was weiter 😉 ihr kennt das vielleicht.. \^^

Bei PHP, MySql, etc hab ich in den letzten Jahren viel Erfahrung gesammelt und unzählige Scripte und Progrämmchen fürs Web geschrieben.

Jetzt würde ich aber auch gerne Erfahrung für lokale Programme sammeln bzw überhaupt welche erstellen können. (Das was wir in Java bisher gemacht haben waren nur Grundlagen der Programmierung, welche ich schon längst von PHP kannte)

Super wäre natürlich auch wenn ich die 2 Schichten auch verbinden könnte. Also das lokale Programm und PHP-Scripte im Web.

Also möchte gerne grafische Programme erstellen.. Irgentwelche Verwaltungen oder so was.

Naja die Frage ist jetzt natürlich: Welche Sprache sollte ich jetzt lernen?

Danke schonmal

Mfg michi

yabuti

Avatar von yabuti

Anmeldungsdatum:
3. Februar 2006

Beiträge: 94

Wohnort: Augsburg

hallo,

ich würde dir Python empfehlen,die Programmiersprache ist einfach zu erlernen und auch bei vielen Linux
distributionen auch Ubuntu schon mit vorinstalliert.Auch mit Python lassen sich grafische programme gut umsetzen.Tkinter,wxPython,GTK+/GNOME usw.
hier mal ein paar infos

http://www.python.org/
http://www.python-forum.de/
http://www.pygtk.org/
http://www.pythonware.com/library/tkinter/introduction/index.htm

empfehlen würde ich dir einfach mal im Python forum zu stöbern 😉

yabuti

i-mehl

(Themenstarter)
Avatar von i-mehl

Anmeldungsdatum:
30. August 2005

Beiträge: 401

ok danke!
kann man das programm dann auch unter windows nutzen?..
und was für vorteile gibt es gegenüber c# oder c++ bzw da untereinander.. sry die fragen aber kenn mich bei diesen sprachen überhaupt nicht aus.. deshalb will ich ja mein wissen erweitern..

gibs vielleicht eine gute seite wo die ganzen verglichen werden

basti33

Avatar von basti33

Anmeldungsdatum:
20. November 2005

Beiträge: 538

Wohnort: Nürnberg

Also ich mach jetzt seit kurzem Python und kann es dir nur empfehlen. Vorteile gg. C/C++ wüsste ich jetzt nicht, die Sprache ist halt einfacher und hat daher wahrscheinlich weniger Möglichkeiten, aber das kann ich nicht so im Detail erklären. Gut ist, das du die Skripte gleich ausführen kannst und du sie nicht erst kompilieren musst. Ansonsten ist es mit py2exe möglich, exe Dateien für Windows zu erstellen.

i-mehl

(Themenstarter)
Avatar von i-mehl

Anmeldungsdatum:
30. August 2005

Beiträge: 401

oke danke ! .. eine frage noch.. was würdet ihr mir für eine entwicklungsumgebung / editor für python empfehlen.
und 2tens: gibs ein gutes online buch das ich ausdrucken kann? .. fahre morgen in urlaub und brauche lesestoff 😉

yabuti

Avatar von yabuti

Anmeldungsdatum:
3. Februar 2006

Beiträge: 94

Wohnort: Augsburg

also sicher kannst du ein in Python geschriebenes programm mit grafischer Oberfläche auch in Windows nützen.
Da gibt es mehrere möglichkeiten
-Python auf windows installieren
oder Py2Exe-ein Programm wo man ein Python Script in eine Exe Datei umwandelt
der vorteil ist das der Anwender dann kein Python installieren muss

es gibt noch mehrere solche tools..

aber Vorteile und Nachteile...
http://wiki.python.de/Python#WelcheVorUndNachteileHatPython

Dieser thread ist auch interessant aber lang diskutiert,nimm dir zeit dafür
http://forum.ubuntuusers.de/topic/32265/

Python hat viel Möglichkeiten

Der Python-Empfehlung kann ich mir nur anschliessen - Python ist relativ einfach zu erlernen und man kann mit wenigen Zeilen Code zum Erfolg kommen, wo man bei anderen Sprachen locker doppelt soviele Code-Zeilen zu schreiben hat. Ausserdem gibt es eine grosse Anzahl an Bibliotheken fuer Python. Und wenn man dann einmal drinsteckt - Python-Programme mit Benutzeroberflaechen auszustatten ist nicht schwer, es gibt diverse Web-Anwendungen, die auf Python aufsetzen (Zope, Django, TurboGears, CherryPie, ...). Ich weiss gar nicht, warum ich mich frueher mit Java/PHP befasst habe ... Winken

habe ich aus einem thread

😉

yabuti

p.s. Vergleiche mit anderen Sprachen-vielleicht musst du noch bei google schauen oder in ein anders forum wo dies mehr diskutiert wird

basti33

Avatar von basti33

Anmeldungsdatum:
20. November 2005

Beiträge: 538

Wohnort: Nürnberg

Als Entwicklungsumgebung empfehle ich dir eric, gibts in den Ubuntu Quellen. Als Lesestoff für den Anfang wäre vielleicht "A Byte Of Pyton" nicht schlecht. Die deutsche Übersetzung gibt es hier.

yabuti

Avatar von yabuti

Anmeldungsdatum:
3. Februar 2006

Beiträge: 94

Wohnort: Augsburg

also ich nütze SciTE

http://www.scintilla.org/SciTE.html

kann ich nur empfehlen-über Synaptic kannst du den installieren

auch...

Pida finde ich gut

Einsteiger tutorial
http://www.freenetpages.co.uk/hp/alan.gauld/german/index.htm
http://www.cl.uni-heidelberg.de/kurs/skripte/prog1/html/

yabuti

SirSiggi

Avatar von SirSiggi

Anmeldungsdatum:
12. September 2005

Beiträge: 823

So, jetzt wo die Pythonfanatiker fertig sind hab ich was schöneres für dich: Ruby. Da können die Schlangenbeschwörer noch so lange mit ihrer Flöte vor mir fuchteln, meinen Rubin geb ich nicht mehr her. 😉

Sid_Burn

Anmeldungsdatum:
23. Oktober 2004

Beiträge: 2159

Naja,
SQL, HTML und CSS würde ich nicht gerade als Programmiersprache bezeichnen. PHP eigentlich auch nicht. 😉

Also im großen und ganzen gibt es eigentlich zwei Arten von Programmiersprachen. Systemnahe Programmiersprachen und Skriptsprachen. Zu den gängigen Systemnahen Programmiersprachen zähle ich mal C und C++.

Zu den gängigen Skriptsprachen die heute benutzt werden Perl/Python/Ruby.
Java sehe ich irgendwo dazwischen, richtig Systemnah ist es nicht, als Skriptsprache geht es aber auch nicht durch.

Damit du deine eigene Wahl besser entscheiden kannst, erzähle ich etwas über die eigenheiten der beiden Gruppen.

Früher hat man hauptsächlich in Assembler Programmiert. Es ist verdammt schnell aber auch sehr sehr Hardwarenah. Alleine das Wechseln des Prozessors führt schon dazu das dein Programm nicht mehr läuft. Auch Programmierst du da wie gesagt auf der untersten Ebene, daher du führst einzelne Prozessorbefehle aus. Je größer die Projekte wurden, desto komplizierter wurden also auch die Programme, und sie wurden immer schwerer zu Warten.

Daher wurde Hauptsächlich C entwickelt um Hardwareunabhängig zu sein. Daher du musst den Code nicht anpassen wenn du mal eine andere CPU benutzt. Einzelne C Befehle Repräsenstieren mehrere Assembler Befehle. Dadurch ist ein Programm zwar langsamer als wenn man es direkt in Assembler schreiben würde, hat aber die Vorteile das die Entwicklungszeit sehr gering ist, und schwere Programme leichter werden. Da C und auch C++ trotzdem noch sehr Hardwarenah ist bist du aber immer noch in der Lage Treiber, Betriebssysteme und anderes zu schreiben. Behalte dir einfach mal im Kopf das jeder C Befehl sagen wir mal bis zu 10 Assembler Befehle ausführt.

Jetzt etwas zu den Skriptsprachen. Die Skriptsprachen an sich werden meistens selber in C geschrieben. Dies ist bei Perl/Python so, bei Ruby weiß ich das nicht. Das heißt man ist wieder ein Schritt weiter gegangen, und anstatt mehrere Assembler Befehle zusammenzufassen, fasst man nun mehrere C Befehle zusammen und Entwickelt daraus eine neue Sprache. Diese Sprache ist aber alleine nicht lauffähig, letztendlich hast du also ein C Programm, und dieses C Programm führt jetzt je nachdem was du in einer Textdatei schreibst unterschiedliche Befehle aus. Dieses C Programm wird dann meistens Interpreter genannt. Eine spezielle Form des Interpreters ist der Bytecode-interpreter. Dieses wird auch meistens VM (Virtuelle Maschine) genannt. Perl/Python und Java basieren auf solch einen bytecode Interpreter. Diese Skriptsprachen haben wieder das gleiche Ziel wie damals den Schritt von Assembler nach C. Dir selber soll es einfacher sein schwere und komplexe Dinge zu tun. Allerdings wieder auf Kosten der Geschwindigkeit. Mitlerweile sind die Heutigen CPUs aber schnell genug so das du die meisten Anwender Applikationen in solch einer Sprache schreiben kannst, ohne das der Anwender davon etwas merkt.

Wenn es dir aber auffällt dann hängen all diese Sprachen letztendlich von C/C++ ab. Jedenfalls ist das bei Perl/Python/Ruby so. Der Sinn hinter diesen 3 Sprachen kannst du folgendermaßen verstehen. Du enwtickelst deine Componenten in einer Systemnahen Programmiersprache. Das heißt deine Componenten sind z.B.: in C geschrieben. Allerdings schreibst du keine fertigen programme. Du entwickelst z.B. ein Datenbank Interface, stellt eine Grafik Bibliothek zur Verfügung etc. Du machst aber kein Programm in der Systemnahen Programmiersprache. Den dieses erstellst du in der Skriptsprache, indem du die Komponeten sozusagen verbindest.

Du hast also wieder einfachheit gegen Performance eingetauscht. Zum Vergleich mit dem Assembler Befehlen kannst du bei einer Skriptsprache meistens sagen das jeder Befehl von 100-1000 Assemblerbefehlen ausführt. Also nochmal eine ganze Abstraktionsschicht höher.

Allerdings wirst du dabei auch die Probleme sehen. Den wenn du neue Features haben möchtest, dann musst du diese meistens wieder in C schreiben, damit du deine Skriptsprache erweitern kannst. Und jetzt ist das alles eine Frage wie "tief" du in die Materie eintauchen möchtest. Beziehungsweise ab wann du tiefer in die Materie eindringen musst. Heutige Skriptsprachen wie Perl/Python/Ruby bieten an sich meist schon genug Module/Bibliotheken etc. Bei Perl auf das ich mich festgelegt habe gibt es z.B. knapp 12.000 Module. Viele davon sind in C geschrieben, andere wiederrum selber in Perl. Man kann also sagen das du sehr viele Programme schreiben kannst, ohne das du tiefer in die Materie eindringen musst. Sprich vorzeitig C Lernen weil du bestimmte Funktionen benötigst.

Hier möchte dann in dieser Stelle z.B. TCL erwähnen. TCL selber versteht sich gerade eben als eine Sprache die genau das obere Erreichen möchte. Sprich C Programmierer sollen sozusagen ihre Bibliotheken entwickeln, und TCL dann benutzen um Ihre Bibliotheken zu verbinden und daraus eine Programm zu machen. Ich selber habe noch nie in TCL Programmiert, aber man hört doch schon sehr oft das man bei TCL eher auf C ausweichen muss, als man eigentlich möchte.

Perl/Python/Ruby sollten an sich genug Module bieten damit du lange nichts mit C zu tun musst. Bei Perl kann ich es definitiv bestätigen. Python hat weniger Module, und bei Ruby sollten es noch weniger sein (weiß es aber da nicht genau). Ruby ist in Europa/Amerika noch nicht so weit verbreitet ist aber langsam auch hier im kommen.

Ansonsten ist das aber so ziemlich volkommen egal was du da genau Lernst. Von den Features her gesehen kann jede Sprache an sich das selbe. Beziehungsweise hängt es von den bisher zur Verfügung gestellten Modulen ab. Die aber ausreichen sollten. Je nachdem wie tief du nachher in die Materie eintauchst (ich tue es gerade) wirst du auch sehen das es ziemlich egal ist was du da genau Lernst. Bei der einen oder anderen Programmiersprache ist die Syntax etwas anders, die Logik und wie es Funktioniert ist aber fast identisch.

Ich würde mich wie gesagt entweder für eine Systemnahe Programmiersprache entscheiden: Also C oder C++ und diese Lernen. Mit der du dann auch wirklich alles machen kannst. Oder du Lernst eine der genannten Skriptsprachen mit der du es sehr einfach hast und schnell Programme entwickeln kannst. Die Bibliotheken sollten bei allen 3 (Perl/Python/Ruby) ausreichen. Aber wie gesagt je nachdem wie tief du in die Sprache eintauchst wirst du letztendlich wieder bei C landen. (Bei Perl6 was demnächst heraus kommt stimmt diese Aussage allerdings nicht mehr) Was bei den drei Sprachen aber nicht unbedingt notwendig ist. Für normale Applikationen wirst du da wahrscheinlich nie landen.

Von daher kannst du entweder die Universell Sprache C oder C++ nehmen. Oder einer der drei Skriptsprachen die ich empfehlen würde. Welche Skriptsprache du da genau wählst ist von den Features her egal. Schau dir an welche Sprache dir am besten gefällt und Lerne diese dann.

Ich würde dir jedenfalls ruhig eine Skriptsprache empfehlen. Das normale Umfeld von Datenbank Programmierung, GUI programmierung, CLI Programmierung und allgemeine Programme bis hin zu kleinen Shell Sachen wirst du mit jeder von den drei gennanten machen können.

Um Java nicht zu vergessen. Der Minimale Kern von Java ist in C oder C++ geschrieben (weiß jetzt nicht welches genau ist aber auch egal). Darauf aufbauend sind die einzelnen Programme selber in Java geschrieben. Z.B. ist der Compiler selber "javac" wiederrum in Java geschrieben. Java übernimmt eher die Features von den Systemnahen Programmiersprachen. Hat also ein starke typisierung. Und ist ansonsten auch nicht so High-Level wie eine Skriptsprache. Es ähnelt also schon C/C++. Das dir Java also sehr viel leichter ist im Vergleich zum Sprung von C nach Skriptsprache würde ich nicht sagen.

Allerdings fehlen Java wie gesagt dann wieder so Funktionen wie in den Skriptsprachen. Z.b. gibt es keine dynamische Codegenerierung was alle drei genannten Skriptsprachen können. Und gerade die schwache Typisierung und die einfachheit und vor allem die Abstraktion mit wenigen befehlen viel zu erreichen macht das ganze irgendwie aus.

Das soll jetzt keine negative Kritik sein. Was dir da jetzt am besten gefällt und was deinen Vorstellungen am ehesten entsprichst musst du am besten selber heraus finden.

Ich hoffe der Post war dir bei deiner Entscheidung hilfreich.

yabuti

Avatar von yabuti

Anmeldungsdatum:
3. Februar 2006

Beiträge: 94

Wohnort: Augsburg

SirSiggi hat geschrieben:

So, jetzt wo die Pythonfanatiker fertig sind hab ich was schöneres für dich: Ruby. Da können die Schlangenbeschwörer noch so lange mit ihrer Flöte vor mir fuchteln, meinen Rubin geb ich nicht mehr her. 😉

bedenke das die GOOGLE webseite vor allem in Python geschrieben ist 🤣 ....Ruby ist aber auch klasse aber schwerer für den Anfang
es kommt auch darauf an auf welche Schwerpunkte man legt bei der Programmierung.

gefuchtelt....

SirSiggi

Avatar von SirSiggi

Anmeldungsdatum:
12. September 2005

Beiträge: 823

Was ist denn an Ruby schwerer als in Python? Das man ein end hinter die Blöcke setzen muss? 🙄

Meine etwas verstümmelte Wiki-Seite zu Ruby, alles wichtige ist von dort aus erreichbar...

/e: SidBurn, auch wenn ich in früheren Threads deinen Argumentationen nicht immer folgen konnte/wollte muss ich hier einfach mal ein Lob für solche Posts aussprechen. ☺

Sid_Burn

Anmeldungsdatum:
23. Oktober 2004

Beiträge: 2159

yabuti hat geschrieben:

bedenke das die GOOGLE webseite vor allem in Python geschrieben ist 🤣

Bedenke das 90% der Desktop Systeme Windows Benutzen. Es MUSS also besser sein als GNU/Linux.
Bedenke das Britney Spears lieber Cola als Pepsi trinkt. Cola muss also besser sein.

\––\––\––\––\–––-

Schwerer halte ich es keinesfalls. Die Grundlegenden Kontrollstrukturen wie if,for,while etc. werden wahrscheinlich das gleiche tun wie in jeder anderen Programmiersprache auch.

Und wenn man Funktionen aufruft einen Rückgabewert bekommt (oder mehrere) sollte auch gleich sein. Auch sollte die Logik hinter der Objektorientierung die gleiche sein. (Vererbung etc.) Die Sprachen zu Verstehen sollten gleich schwer, beziehungsweise gleich leicht sein.

Ich Persönlich finde jedenfalls Ruby auch ganz Interessant, liegt aber wohl eher daran das es für mich sehr stark nach Perl aussieht.

EDIT:

/e: SidBurn, auch wenn ich in früheren Threads deinen Argumentationen nicht immer folgen konnte/wollte muss ich hier einfach mal ein Lob für solche Posts aussprechen.

Danke. 😉

Chaoswind

Anmeldungsdatum:
10. August 2005

Beiträge: 544

yabuti hat geschrieben:

bedenke das die GOOGLE webseite vor allem in Python geschrieben ist 🤣 ....

Also so stimmt das nicht.

basti33

Avatar von basti33

Anmeldungsdatum:
20. November 2005

Beiträge: 538

Wohnort: Nürnberg

@Sid Burn:
Gute Erklärung!! Wo ordnet man denn jetzt Sprachen wie Pascal oder Delphi ein?

Antworten |