PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Weitere Programmiersprache?


creave
2006-02-15, 16:48:43
Hu :)

Also die Sache ist die: ich habe ca. vor einem Jahr mit PHP angefangen (davor noch nie eine Programmiersprache angefasst, nur eben Websachen wie xhtml, css) und bin mit meinem Können relativ zufrieden, soll heißen ich kann das meiste umsetzen was ich mir vorgenommen habe, nur komm ich dabei um das phpmanual zum Nachschlagen der Befehle nicht drumrum (auch lässt sich anzweifeln ob das Ganze dann Stiltechnisch nach was aussieht).

Nunja, irgendwie wollte ich mit den Websachen erstmal ne kleine Pause machen und lieber kleine Apps und Tools für den eigenen Rechner programmieren.
Wie immer stellt sich da die Frage, mit was beginnen..
Habe mich vor dem erstellen des Threads hier schon etwas erkundigt und irgendwie fiel die engere Auswahl auf Java oder C#.
Zwar wird absoluten Neulingen immer sowas wie VB empfohlen, aber ich denke den Schritt kann ich dank php überspringen, was meint ihr?
Schliesslich ist objektorientierte Programmierung auch in php5 möglich, also nicht unbedingt völliges Neuland.
Nur so Sachen wie Speicherverwaltung sagen mir nicht viel (gibts in php nicht, warum auch) habe aber gelesen, dass C# das von selbst in die Hand nimmt..

Nun bin ich mal auf eure Vorschläge gespannt, vielleicht liege ich auch ganz falsch und der Sprung von php auf Java oder C# ist ne ganze Ecke schwieriger als ich mir das vorgestellt habe..
Bin für alle Vorschläge offen :)

mfg und thx schonmal


//achja noch am Rande: anscheinend soll das dotnet Framework für C# ja standardmäßig in Windows Vista integriert sein, so dass man das nichtmehr nachinstallieren muss. Stimmt das?

Coda
2006-02-15, 16:56:20
Zwar wird absoluten Neulingen immer sowas wie VB empfohlen, aber ich denke den Schritt kann ich dank php überspringen, was meint ihr?Das ist nie ein guter Ratschlag.

//achja noch am Rande: anscheinend soll das dotnet Framework für C# ja standardmäßig in Windows Vista integriert sein, so dass man das nichtmehr nachinstallieren muss. Stimmt das?Ja.

Monger
2006-02-15, 17:00:06
Ich stimme für Java! :D

Also, mit Speicherverwaltung musst du dich weder bei C# noch bei Java rumschlagen. Ich bin kein C# Experte, aber was Produktivität angeht, ist C# wohl überlegen. Was allerdings die Lernkurve angeht, ist Java imho wesentlich fairer, weil es konzeptionell sehr streng ist, und das objektorientierte Modell auf brutalste Weise durchzieht.
C# bietet mehr Features, und bietet imho das vielseitigere Framework. Allerdings spürt man imho den Einfluss von C++ her, was einen stärker zur "Bit-Popelei" verleitet.

Aber möglicherweise sind das auch nur billige Vorurteile meinerseits. Tatsache ist wohl, dass sich beide Sprachen zum Einstieg nicht viel schenken. Auf den ersten Blick sind sie sich wirklich SEHR ähnlich!

Coda
2006-02-15, 17:01:48
Ich bin kein C# Experte, aber was Produktivität angeht, ist C# wohl überlegen. Was allerdings die Lernkurve angeht, ist Java imho wesentlich fairer, weil es konzeptionell sehr streng ist, und das objektorientierte Modell auf brutalste Weise durchzieht.Das ist beides bei beidem ungefähr gleich.

C# bietet mehr Features, und bietet imho das vielseitigere Framework. Allerdings spürt man imho den Einfluss von C++ her, was einen stärker zur "Bit-Popelei" verleitet.Ach ja? Wo denn? Überhaupt hat "Bit-Popelei" in C++ auch nur in schlechtem Code seinen Platz.

Trap
2006-02-15, 17:05:12
VB überspringen kann ich nur befürworten.

C# und Java haben beide automatische Speicherverwaltung. Java kenn ich ganz gut, C# weniger, ich würde C# empfehlen :tongue:

Von PHP zu Java oder C# muss man nicht so viele neue Konzepte lernen um es benutzen zu können. Wenn man neue Konzepte lernen will gibt es einige andere Sprachen die interessanter sind.

Monger
2006-02-15, 17:19:47
Ach ja? Wo denn? Überhaupt hat "Bit-Popelei" in C++ auch nur in schlechtem Code seinen Platz.

Naja, gewisse Sachen sind schon von C/C++ geerbt. Das hier zum Beispiel:


Console.WriteLine("Difference in days: {0} ", differenceInDays);

Diese Art von Steuerzeichenersetzung ist für Java Verhältnisse ziemlich ungewohnt.

Oder sowas:

int[,] n4 = new int[3, 2] { {1, 2}, {3, 4}, {5, 6} };

GAB es in C++ überhaupt multidimensionale Arrays? Kann mich nicht dran erinnern...

Oder die Header. Okay, es gibt keine Header mehr, aber man kann Klassen in C# mit "extern" in mehrere Teile splitten. Würde man das in Java machen, würden Fanatiker vermutlich Suns Hauptquartier niederreissen. Nur eine Klasse in einer Datei, und nur eine Datei für eine Klasse: alles andere ergibt nach Java Überzeugung Chaos.


Ich gebe zu, mir fällt es schwer, die Nähe zu C++ wirklich nachzuweisen. C# ist mit Sicherheit VIEL näher an Java dran als an C++.

Coda
2006-02-15, 17:21:10
GAB es in C++ überhaupt multidimensionale Arrays? Kann mich nicht dran erinnern...Ja. Aber nicht so

Oder die Header. Okay, es gibt keine Header mehr, aber man Klassen in C# mit "extern" in mehrere Teile splitten. Würde man das in Java machen, würde vermutlich Suns Hauptquartier niederreissen. Nur eine Klasse in einer Datei, und nur eine Datei für eine Klasse: alles andere ergibt nach Java Überzeugung Chaos.Braucht man ja nicht zu benützen.

Ich gebe zu, mir fällt es schwer, die Nähe zu C++ wirklich nachzuweisen. C# ist mit Sicherheit VIEL näher an Java dran als an C++.Eben.

Simon
2006-02-15, 17:35:49
Warum dann nicht gleich Python?
Ist mMn sehr viel schöner zu lesen, zu schreiben und zu warten als alle C/C++/Java Programme, die ich kenne... Ich würde es jedenfalls nicht gegen eine dieser Sprachen tauschen wollen :biggrin:

Argumente dafür:
- Man braucht sich nicht mit Speichermanagement rumschlagen
- Die Syntax ähnelt mehr ein "natürlichen" Sprache als einer Programmiersprache, was schreiben und lesen sehr vereinfacht
- Man braucht keine 10000 Klammern und Semikolons

Trap
2006-02-15, 17:49:12
C#, C++ und Java sind absolute Mainstreamsprachen, da braucht man keinen weiteren Grund sie zu lernen.

Wenn man dagegen Python vorschlägt hat man gleich mehrere Dutzend Alternativen wie Perl, Haskell, Erlang, ML, Scheme, Common Lisp, Eiffel, Smalltalk, Prolog usw...
Warum dann Python und nicht eine der anderen?

Simon
2006-02-15, 18:02:27
C#, C++ und Java sind absolute Mainstreamsprachen, da braucht man keinen weiteren Grund sie zu lernen.
Warum dann nicht einfach mal eine Alternative als den Mainstream lernen?

Wenn man dagegen Python vorschlägt hat man gleich mehrere Dutzend Alternativen wie Perl, Haskell, Erlang, ML, Scheme, Common Lisp, Eiffel, Smalltalk, Prolog usw...
Also bis auf eine (Perl) haben diese Sprachen nix mit dem ursprünglichen Thema zu tun. Denn da gings (mMn ;) ) wohl um objektorientierte Sprachen.


Warum dann Python und nicht eine der anderen?

- Man braucht sich nicht mit Speichermanagement rumschlagen
- Die Syntax ähnelt mehr ein "natürlichen" Sprache als einer Programmiersprache, was schreiben und lesen sehr vereinfacht
- Man braucht keine 10000 Klammern und Semikolons

Expandable
2006-02-15, 18:04:53
Ich kenn zwar Python nicht, aber wenn das einer "natürlichen Sprache" ähnelt, würde ich es nicht in einem Satz mit Haskell erwähnen... was ja nur noch grausig zu lesen ist.

@Topic: C# ist eine relativ einfach zu erlernende Programmiersprache, vor allem, wenn Du PHP schon kannst. Mit Visual C# Express Edition kannst Du auch schnell erste kleine Windows-Programme schreiben. Sowas motiviert enorm. Also mein Tipp: Lad Dir VC# Express Edition runter, besorg Dir ein gutes C#-Buch oder -Internettutorial und los geht's!

Simon
2006-02-15, 18:10:01
@Topic: C# ist eine relativ einfach zu erlernende Programmiersprache, vor allem, wenn Du PHP schon kannst. Mit Visual C# Express Edition kannst Du auch schnell erste kleine Windows-Programme schreiben. Sowas motiviert enorm. Also mein Tipp: Lad Dir VC# Express Edition runter, besorg Dir ein gutes C#-Buch oder -Internettutorial und los geht's!
Genau das gleiche kann ich über Python sagen. Nur das man da noch eine Interpreter Shell hat um sofort neu gelerntes auszuprobieren ;)

1:0 für Python :D ;)

Bei einem Freund hat er selbständig (gegen den Chef :D ) auf Arbeit (Numerikfirma) Python für Tests und Scripting eingeführt und nun laufen auch seit einer Weile die ersten GUI Programme mit Python. Das will dort keiner mehr missen. Die Entwicklungs- und Testzeit hat sich recht gut verbessert =)

Senior Sanchez
2006-02-15, 18:18:52
Ich mag persönlich python nicht, dieses eingerücke nervt mich und ich finde da klammern tausend mal übersichtlicher zumal moderne IDEs zusammengehörige Klammern auch highlighten.

Trap
2006-02-15, 18:25:36
Also bis auf eine (Perl) haben diese Sprachen nix mit dem ursprünglichen Thema zu tun. Denn da gings (mMn ;) ) wohl um objektorientierte Sprachen.
Da liegst du ziemlich falsch. Bis auf Prolog, Haskell und ML sind alle Sprachen die ich aufgezählt hab (auch) objektorientiert.

Achso: Cobol erfüllt auch alle Anforderungen.

ScottManDeath
2006-02-15, 18:28:02
Also bis auf eine (Perl) haben diese Sprachen nix mit dem ursprünglichen Thema zu tun. Denn da gings (mMn ;) ) wohl um objektorientierte Sprachen.


Erzähl mal Hellhorse das Smalltalk nicht OO ist, oder Bertrand Meyer das Eiffel nicht OO ist... :redface:


Naja, Mainstream Sprache heißt, dass man eben ne höhere Chance hat, Hilfe zu bekommen, sie zum anderen auch gesuchter ist, so dass man eben ne höhere Chance hat, diese auch als Mitglied in anderen Teams einsetzen kann.

Gast
2006-02-15, 18:33:45
http://www.microsoft.com/downloads/details.aspx?FamilyID=94082d26-e689-4f7f-859b-fec6dacf3ae8&displaylang=en

Simon
2006-02-15, 18:36:06
Naja, Mainstream Sprache heißt, dass man eben ne höhere Chance hat, Hilfe zu bekommen, sie zum anderen auch gesuchter ist, so dass man eben ne höhere Chance hat, diese auch als Mitglied in anderen Teams einsetzen kann.
Das ist sicherlich teilweise richtig. Jedenfalls der Teil, dass man damit u.U. besser einen Job findet.

Allerdings schrieb creave ja selber, dass er bisher nur PHP, HTML u.ä. gemacht hat. Und ich finde Python einfach eine bessere Alternative als jetzt mit Java (oder C++) weiterzumachen. C# kenn ich zu wenig, um da ein Statement abgeben zu können.
Der Schritt von Python zu C++ oder auch Java ist im Endeffekt nur eine minimal andere Syntax in den Kontrollstrukturen. Wenn man Python Doku lesen und anwenden kann, kann man auch Java oder C++ Doku lesen. Das sollte also auch keine Probleme bereiten.

Auf gamedev.net gibt es eine Artikelserie, wie jemand in 24h ein Spiel (RPG) damit gemacht hat. Falls das irgendwie von Belang ist ;)

http://www.microsoft.com/downloads/details.aspx?FamilyID=94082d26-e689-4f7f-859b-fec6dacf3ae8&displaylang=en
Cooler Link, danke =)
Auch wenn ich persönlich damit nicht viel anfangen kann, weils nicht unter Linux läuft ;)

Xmas
2006-02-15, 19:50:19
Wer C# kann ist schnell auf Java umgestiegen und umgekehrt. Ich würde C# empfehlen, und dazu Python. In Python hat man die Grundlagen in wenigen Tagen drauf, man kann aber mit sehr einfachen Mitteln ziemlich mächtige Programme schreiben. Leider sind die verfügbaren Tools nicht gerade das Gelbe vom Ei, und Duck Typing hat auch seine Nachteile.

Ich mag persönlich python nicht, dieses eingerücke nervt mich und ich finde da klammern tausend mal übersichtlicher zumal moderne IDEs zusammengehörige Klammern auch highlighten.
Du willst doch damit jetzt nicht etwa sagen dass du keine Einrückung verwendest? *urgs*
Geschweifte Klammern, begin/end oder Ähnliches sind IMO unnützer Müll der nur Platz wegnimmt.

Oder die Header. Okay, es gibt keine Header mehr, aber man kann Klassen in C# mit "extern" in mehrere Teile splitten.
"partial". So wie es von VS verwendet wird (um automatisch generierten Code vom Rest zu trennen) ist es eigentlich ganz nützlich.

Senior Sanchez
2006-02-15, 20:42:07
Du willst doch damit jetzt nicht etwa sagen dass du keine Einrückung verwendest? *urgs*
Geschweifte Klammern, begin/end oder Ähnliches sind IMO unnützer Müll der nur Platz wegnimmt.

Wie deine Unsicherheit schon andeutet, habe ich das nirgendwo gesagt.
Natürlich rücke ich ein, erhöht die Lesbarkeit doch schon, doch bei python alles über einrückungen abzuwickeln und auf Klammern zu verzichten finde ich einfach nur gülle.

Xmas
2006-02-15, 21:36:15
Welchen Nutzen haben geschweifte Klammern, wenn man durch die Formatierung schon eindeutig anzeigt was wohin gehört?

Senior Sanchez
2006-02-15, 21:40:40
Welchen Nutzen haben geschweifte Klammern, wenn man durch die Formatierung schon eindeutig anzeigt was wohin gehört?

Sie haben den Nutzen, dass man aus meiner Sicht wesentlich besser übersieht was zusammengehört... Auf nem Papierausdruck erkennt man Klammern sehr gute, aber nicht ob das weiße aufm Papier jetzt nen Tab, Leerzeichen oder whatever ist ;)

Außerdem kann ich persönlich zumindest damit schneller Änderungen an Blockstrukturen machen, sprich Anwendungen aus einer Schleife oder was weiß ich verschieben. Sicher geht das auch mit Einrückungen, aber bei den Klammern kann ich so mal schneller was ausprobieren, weil ich eben nicht auf ne perfekte Einrückung achten muss, sondern nur dass es im geklammerten Bereich ist.

Hauptargument für mich persönlich ist aber die Übersichtlichkeit.

Xmas
2006-02-15, 21:54:52
Sie haben den Nutzen, dass man aus meiner Sicht wesentlich besser übersieht was zusammengehört... Auf nem Papierausdruck erkennt man Klammern sehr gute, aber nicht ob das weiße aufm Papier jetzt nen Tab, Leerzeichen oder whatever ist ;)
Na man sollte die Einrückungstiefe schon ausreichend wählen so dass man kein Lineal braucht, ob mit oder ohne Klammern. Und konsistent muss die Einrückung auch sein. Eine vernünftige IDE mit Druckfunktion kann auch die Tabs durch andere Zeichen ersetzen. Frag mich allerdings nicht wann ich das letzte mal einen Codeausdruck gesehen habe...

Außerdem kann ich persönlich zumindest damit schneller Änderungen an Blockstrukturen machen, sprich Anwendungen aus einer Schleife oder was weiß ich verschieben. Sicher geht das auch mit Einrückungen, aber bei den Klammern kann ich so mal schneller was ausprobieren, weil ich eben nicht auf ne perfekte Einrückung achten muss, sondern nur dass es im geklammerten Bereich ist.
Kann ich jetzt nicht ganz nachvollziehen. Mit einer vernünfigen IDE drückst du nur Return um eine Zeile einzufügen und bist automatisch bei der richtigen Einrückung.

Hauptargument für mich persönlich ist aber die Übersichtlichkeit.
So gehen die Meinungen auseinander. Das ist für mich Hauptargument gegen Klammern.

Coda
2006-02-15, 21:55:01
Ist für den Compiler halt einfacher wenn er alle whitespaces einfach überlesen kann. Gibts in Phyton nicht Probleme mit Mac- Linux- oder Windows-Zeilenendungen?

Xmas
2006-02-15, 21:57:57
Ist für den Compiler halt einfacher wenn er alle whitespaces einfach überlesen kann. Gibts in Phyton nicht Probleme mit Mac- Linux- oder Windows-Zeilenendungen?
Jeder Texteditor der nur ein bisschen intelligenter als Notepad ist kann das automatisch erkennen, wieso sollte der Python-Compiler damit Probleme haben? Es ist ja nun nicht so, dass CR/LF noch irgendwo anders vorkommt...

SgtTynis
2006-02-15, 22:51:59
C# ist mit Sicherheit VIEL näher an Java dran als an C++.

Definitiv...was hab ich das schon manchen Leute predigen muessen... :biggrin:

creave
2006-02-16, 13:14:05
Hätte nicht gedacht dass mein Thread so eine Diskussion anheizt :)

Vielen Dank an alle hier, hat mir sehr weitergeholfen.

Hab mich nun für C# entschieden, und die kostenlose VisualC# Express Edititon kann sich eigentlich auch sehen lassen.
Nur eine Frage hab ich noch: Tutorials zu der _Sprache an sich_ (sprich Syntax, Befehle..) hab ich schon viele gefunden, die auch gut sind. Nur gabs bei php dann immer Tutorials für Anwendungen, z.b. wie man sich ein Newsscript oder Guestbook bastelt, für spezifische Sachen halt. Kennt ihr da Beispiele für C#?

mfg :)

Coda
2006-02-16, 13:17:40
Eher weniger, weil es keine "typischen Programme" bei einer general purpose Sprache gibt.