PDA

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


Masterp
2010-06-06, 20:22:24
Nabend,

ich möchte mich demnächst mit der Programmierung beschäftigen und bin gerade am Grübeln, welch Sprache für mich als Laie für die Zukuft Sinn macht.
Da ich aus den Medienbereich komme, wäre wohl eher sowas wie PHP oder ähnliches angebracht. Wichtig sollte aber eine Programmiersprache sein, womit ich unter Windows den Bereich Anwendungsentwicklung wie auch den Internetbereich abdecke.


Könnt ihr da was empfehlen ?

Exxtreme
2010-06-06, 20:24:39
Java. :)

Ansonsten sehe ich da nicht wirklich viel Auswahl. Ich weiss nicht wie "internetlastig" die .NET-Sprachen sind.

huha
2010-06-06, 20:26:01
Mit PHP kannst du keine Anwendungen für Windows schreiben (zumindest nicht vernünftig).
Für deine Zwecke würde ich Python empfehlen. Es ist vielseitig, eignet sich auch zur Webentwicklung, die Sprache hat viele Features, damit lernst du sehr viele Prinzipien aus der Welt der Programmierung kennen und außerdem zwingt sie einen zu einigermaßen strukturiertem Programmieren.
Nachteil: Etwas langsam. Das sollte dich aber nicht stören.

-huha

Sven77
2010-06-06, 20:26:39
Python ist ne wahre Freude :)

Coda
2010-06-06, 20:27:50
Ansonsten sehe ich da nicht wirklich viel Auswahl. Ich weiss nicht wie "internetlastig" die .NET-Sprachen sind.
Mindestens genauso.

http://en.wikipedia.org/wiki/ASP.NET

Aber ich würde auch mal Python in den Raum werfen.

Gnafoo
2010-06-06, 20:41:00
C# ist imho eine sehr schöne Sprache für Windows-Anwendungen. Durch das .NET-Framework hat man Zugriff auf jede Menge nützliche Funktionalitäten und Visual Studio bringt auch einen sehr schönen Designer für grafische Oberflächen mit (inzwischen sogar zwei: Windows Forms und WPF).

Mit ASP.NET kann man was Internetanwendungen angeht die Serverseite abdecken. Clientseitig ist man ja ohnehin normal auf JavaScript reduziert. Man hat mit .NET aber auch die Möglichkeit, WPF/Silverlight auf dem Client zu verwenden. Dazu kann ich allerdings nicht viel sagen.

Visual C# Express kann man umsonst herunterladen. Das eignet sich vermutlich ganz gut, um einen Einblick zu bekommen. Es kann allerdings sein, dass man für Webanwendungen noch eine weitere Express-Variante braucht.

Demirug
2010-06-06, 20:46:41
Mindestens genauso.

http://en.wikipedia.org/wiki/ASP.NET

Wobei man in dem Zusammenhang auch WCF nicht vergessen darf. Web-Diensten zu schreiben ist damit eine echt schöne Sache.

Wenn du im Internet auch Clientseitig etwas machen willst wirst du allerdings auch nicht um JavaScript herum kommen. Ich bin mir zwar jetzt nicht sicher wie es im allgemeinen Internet aussieht aber in meinem Bereich (Spiele) sind die Anforderungen im Bereich der Interaktivität enorm gewachsen. Und das geht nur mit JavaScript oder Flash (davon lasse ich aber lieber die Finger) bzw. Silverlight (nett, aber die Verbreitung ist hier ein Problem).

Marscel
2010-06-06, 20:47:53
Python ist schon nicht schlecht, für Anwendungen kann man mit IronPython recht gut arbeiten und fürs Web mit Hilfe von django oder web.py.

Masterp
2010-06-06, 21:00:18
Lohnt es sich heut noch auf PhP und MySQL zu setzen ? Ich beobachte es oft, dass Kunden Webshops einsetzen und diese gern abgeändert haben wollen. Sowas in der Richtung würd mich auch interessieren.


Sowas hier: http://www.sgd.de/informatik/datenbank-entwickler.php

Marscel
2010-06-06, 21:33:54
Lohnt es sich heut noch auf PhP und MySQL zu setzen ? Ich beobachte es oft, dass Kunden Webshops einsetzen und diese gern abgeändert haben wollen. Sowas in der Richtung würd mich auch interessieren.


Sowas hier: http://www.sgd.de/informatik/datenbank-entwickler.php

MySQL ist ein Datenbank-Serversystem, das agiert vollkommen unabhängig von Programmiersprachen. Das füttert man über die Structured Query Language.

Was PHP angeht, kann ich aus meiner Erfahrung berichten: Basic, nahezu Grundkonfiguration auf allen Host-Angeboten, damit lässt sich quick and dirty so ziemlich alles irgendwie zusammenschustern. Fiel in der Vergangenheit aber des öfteren wegen schwieriger Wartbarkeit seitens des Entwicklers auf und ich weiß gar nicht, in wie weit da irgendwie noch Innovationen voran getrieben werden. Hab ich bestimmt 4 Jahre lang mit entwickelt. Mittlerweile bin ich für alle größeren Sachen auf Ruby on Rails umgestiegen, man kann mit sehr wenig Code sehr viel machen und auch mal eben große Strukturänderungen vornehmen. Mit dem Gem-Konzept auch deutlich einfacher erweiterbar als PHP mit seinen extensions.

Bevor jemand meckert, klar, gibt auch große Bemühungen community-seitig, für PHP ähnliche Sachen auf dem Markt zu etablieren, für mich kam dieser Zug aber doch ein bisschen spät.

huha
2010-06-06, 21:33:54
Du fragtest explizit nach Programmiersprachen, mit denen du Programme für Windows schreiben kannst, die sich aber auch für Web-Programmierung eignet. PHP ist das halt nicht. ;)
PHP-Kenntnisse können nie schaden, auch Kenntnisse über Datenbanken sind nie verkehrt.

Es kommt natürlich ganz darauf an, was du letztendlich machen willst; PHP läuft auf jedem ernsthaften Hosting-Angebot, die anderen Sprachen sind weniger verbreitet und daher auch nicht gerade in den allerbilligsten Webhosting-Paketen enthalten.
Viele Programmiersprachen sind sich im Grunde genommen recht ähnlich, auch Python und PHP; ich würde dennoch eher mit Python anfangen, da es für einen Anfänger einfach nützlicher ist; man ist schneller drin, kann mehr sofort machen und auch wesentlich besser herausfinden, was im Programm vor sich geht, da Python die Standard-Datentypen relativ angenehm ausgibt.
Außerdem eignet es sich natürlich auch ganz gut dafür, wenn man mal eben ein kleines Script schreiben muß, das irgendwas macht. Schön bei Python ist ebenfalls, daß man gezwungen wird, einigermaßen übersichtlich und strukturiert zu programmieren, was später enorm hilft. Bei PHP kann man seinen Quelltext irgendwie zusammenschreiben, kein Problem.

Meine Empfehlung: Solange du nicht unbedingt sofort PHP brauchst, fang mit Python an, arbeite dich ein, finde heraus, ob dir Programmieren überhaupt liegt und lerne dann noch etwas PHP.

-huha

The_Invisible
2010-06-06, 21:36:40
verstehe nicht was alle immer gegen php wettern.

nur weil leute mit halbwissen sicherheitslücken aufreißen (sei es programmier- oder administrationsmäßig) ist es doch nicht schlecht wenn man es stattdessen ordentlich macht.

ich habe zumindest für unsere firma ein nettes framework damit geschrieben. da in unserer firma auch leute sind die nicht gerade php begeistert sind, habe ich denen mal den source gezeigt, da kam eigentlich immer ein "was, das geht mit php alles?". :D

außerdem wird einem das hosting auch erleichtert da man entsprechende angebote wie sand am meer findet (wobei man da sicherheitstechnisch natürlich bescheid wissen sollte. für andere programmiersprachen oder datenbanken bezahlt man einen netten aufpreis, vor allem windows geschichten sind da verhältnismäßig sehr teuer.

mfg

huha
2010-06-06, 21:43:54
PHP ist sicher geschickt, ich halte aber für das Anfangen mit der Programmierung i.a. eine Sprache für besser, die konsistenter ist und mehr oder weniger von Anfang entsprechend durchdacht. PHP hat viele Features, die wurden aber über einige Zeit hinzugefügt, deshalb findet man oftmals noch viel alten Scheiß in Codebeispielen oder Dokumentationen.
Python wurde davon zwar nicht ganz verschont, wichtige Sprachfeatures gab's aber schon von Anfang an, außerdem ist es wesentlich flexibler und forciert auch besseren Code. Gerade letzteres spricht extrem für Python als Sprache für den Einstieg. PHP verfolgt keine radikal anderen Programmierparadigmen als Python, insofern ist das Erlernen von PHP nicht besonders schwierig, wenn man Python beherrscht. Und Python ist eben auch ganz geschickt, wenn man mal schnell ein Script oder kleines Programm braucht, das lokal läuft und dort irgendwelche Sachen erledigt.

-huha

Monger
2010-06-06, 21:50:35
So ganz grob mal: VB.NET und C# sind hervorragend für Windows Anwendungen (insbesondere Fensterapplikationen), Java kommt viel bei Serveranwendungen und Handys zum Einsatz, C insbesondere im Embedded Bereich, Spiele- und Betriebssystementwicklung ist derzeit fast ausschließlich in C++.
PHP und ASP.NET sind beide sehr für für die Webentwicklung geeignet, und wenn du da tiefer hinein tauchen willst, lohnt sich natürlich auch JavaScript.


Lohnt es sich heut noch auf PhP und MySQL zu setzen ? Ich beobachte es oft, dass Kunden Webshops einsetzen und diese gern abgeändert haben wollen.

Datenbanken (oder ganz allgemein: Datenhaltung) ist eigentlich ein völlig eigener Berufszweig. Natürlich ist es für einen Entwickler schon interessant, wie man denn die Anbindung und das Interface zu einer Datenbank programmiert - aber das Design und die Verwaltung der Datenbank (inklusive aller Anomalien die dort auftreten können, Reparaturen, Rechtemanagement etc.) ist vom Berufsbild des Programmierers ungefähr so weit weg wie der des Administrators.

Es ist zweifellos ein wichtiges Berufsfeld, aber es gibt sehr wenige Überschneidungspunkte zur Programmierung. Ich würde an deiner Stelle nicht gleichzeitig dich in zwei große Themenkomplexe stürzen. Du wirst mit einem alleine schon mehr als genug zu kämpfen haben! ;)

Monger
2010-06-06, 21:53:35
verstehe nicht was alle immer gegen php wettern.

nur weil leute mit halbwissen sicherheitslücken aufreißen (sei es programmier- oder administrationsmäßig) ist es doch nicht schlecht wenn man es stattdessen ordentlich macht.

Das Argument hab ich in der selben Weise auch schon bei C++ gehört.
Ich finde, eine gute Sprache ist auch halbwegs robust gegen Fehltritte. Programmierer machen nunmal Fehler.

Exxtreme
2010-06-06, 22:26:19
verstehe nicht was alle immer gegen php wettern.

Wenn man auch "normale" Anwendungen schreiben will dann ist PHP nicht so der Bringer. ;) Und ja, Python ist auch ganz gut. Hab's irgendwie vergessen. :|

Djon
2010-06-06, 22:58:44
Hallo!

Ich stand vor ca. 2 Monaten vor der Entscheidung, welche Programmiersprache ich für mein Programm, welches sich auf einer Seite anmeldet, paar Links "zusammenklickt" und anschließend die erstellte Excel-Datei herunterlädt. Wäre Python für sowas geeignet gewesen? Die Kommunikation mit der Seite läuft über Cookies und "VIEWSTATE".

Mfg Djon

Coda
2010-06-06, 23:21:37
verstehe nicht was alle immer gegen php wettern.
Ich schon. Die Standard-Library ist direkt aus der Hölle und es soviele Sprach-Warzen dass es einem schlecht wird.

Btw. ich setze das ganze produktiv ein, aber PHP ist alles andere als eine schöne Sprache. Ein Anfänger wird sich damit mit fast absoluter Sicherheit erstmal das ganze Bein wegballern.

Gohan
2010-06-07, 06:58:56
Ich würde auch C# in den Raum werfen. Die Sprache ist gut zu erlernen, mit WinForms kommt man schnell zum Erfolg und mit MVC .NET hat man eine mächtiges Framework zur Entwicklung von Web Applikationen.
Zudem ist VisualStudio recht Benutzerfreundlich.

PHP ist für mich keine Programmier-, sondern eine Skriptsprache. Ich musste einmal ein Projekt damit realisieren, da graut es mir heute noch vor.

Exxtreme
2010-06-07, 08:54:06
Ich würde auch C# in den Raum werfen. Die Sprache ist gut zu erlernen, mit WinForms kommt man schnell zum Erfolg und mit MVC .NET hat man eine mächtiges Framework zur Entwicklung von Web Applikationen.
Zudem ist VisualStudio recht Benutzerfreundlich.

Bleibt die Frage ob man die Webanwendungen in .NET kostenlos entwickeln und auch testen kann. Es macht wenig Sinn eine Webanwendung zu schreiben und dann keine Möglichkeit zu haben das zu testen. Denn für sowas wird normalerweise gleich eine Serverlizenz von Windows fällig weil man idR. den IIS braucht. Da weiss ich aber absolut nicht bescheid.

Demirug
2010-06-07, 09:51:04
Bleibt die Frage ob man die Webanwendungen in .NET kostenlos entwickeln und auch testen kann. Es macht wenig Sinn eine Webanwendung zu schreiben und dann keine Möglichkeit zu haben das zu testen. Denn für sowas wird normalerweise gleich eine Serverlizenz von Windows fällig weil man idR. den IIS braucht. Da weiss ich aber absolut nicht bescheid.

Auch bei einem normalen Vista/7 ist ein IIS dabei. Muss man nur extra installieren. Zudem läuft der Debugger sowieso mit einem speziellen Webserver der zum Visual Studio gehört.

huha
2010-06-07, 11:51:31
Aber ob C# zum Erlernen der Programmierung i.a. besonders gut geeignet ist?
Ich kenne C# jetzt absolut nicht, aber wenn die Sprache einigermaßen schnell sein soll, müssen garantiert Kompromisse eingegangen werden, was die Konsistenz der Sprache betrifft. Das ist vllt. etwas suboptimal für den Anfang. Denn wenn der Threadersteller eine Programmiersprache halbwegs ordentlich lernt, dann kann er später auch auf mehr oder minder beliebige andere Programmiersprachen umsteigen.

-huha

Ganon
2010-06-07, 12:12:15
Naja, die Wahl scheint ja jetzt eh schon auf PHP gefallen zu sein?

Ich meine, wenn das Ziel ist, möglichst ein breites Wissen in Webentwicklung zu bekommen und ggf. vorhandene Software anpassen will, kommt man an PHP ja wohl nicht vorbei.

Erst weit abgeschlagen kommen dann eher Sachen wie JSP oder ASP.NET.

Will man alles können, kommt man auch um alle Sachen nicht rum. Jedes System hat so seine Tücken.

Coda
2010-06-07, 13:00:10
.NET läuft auch auf Apache via. Mono. Inwiefern das hinterherhinkt weiß ich aber nicht.

Aber ob C# zum Erlernen der Programmierung i.a. besonders gut geeignet ist?
Genauso gut oder schlecht wie Java. Das ist Jacke wie Hose.

Würde ich aber beides vermeiden. Der Anfänger soll erstmal Resultate sehen und Spaß an der Sache haben, und das funktioniert wohl sogar mit PHP eher.

Ganon
2010-06-07, 13:24:40
Genauso gut oder schlecht wie Java. Das ist Jacke wie Hose.

Je nachdem wie man anfängt. C# bietet halt einige "neumodische" Sachen, die viele andere Sprachen nicht haben.

D.h. wenn man z.B. C# lernt, könnte ein:


public string Text {get; set;};


dazu führen, dass man bei Java plötzlich anfängt:


public String text;


zu schreiben und erwartet quasi das Gleiche. Javas "Rückständigkeit" könnte für Anfänger vllt. zum besseren Verständnis führen. Aber das ist natürlich Abhängig davon wie man lernt.

Monger
2010-06-07, 14:20:00
Aber ob C# zum Erlernen der Programmierung i.a. besonders gut geeignet ist?
Ich kenne C# jetzt absolut nicht, aber wenn die Sprache einigermaßen schnell sein soll, müssen garantiert Kompromisse eingegangen werden, was die Konsistenz der Sprache betrifft.
Es gibt ein paar "Anomalien", ja. C# hat auch einiges Legacy Krams, um die Umsteiger von C++ nicht allzu sehr zu verschrecken. In der Hinsicht ist Java die deutlich sauberere Sprache.

Das wichtigste Argument für .NET ist imho dessen Entwicklungsumgebung. Visual Studio (insb. 2010) ist eine sehr, sehr runde Sache. Relativ fix, gute Editoren (Windows Forms, Resourcen etc.), und umfassendes Debugging. Das hilft doch sehr dabei, auch schnell zu Resultaten zu kommen.

Gnafoo
2010-06-07, 14:42:24
Es gibt ein paar "Anomalien", ja. C# hat auch einiges Legacy Krams, um die Umsteiger von C++ nicht allzu sehr zu verschrecken. In der Hinsicht ist Java die deutlich sauberere Sprache.

Hm worauf spielst du da an? Unsafe Code mit Pointern und co.? Da kommt man eigentlich fast nie mit in Berührung und bei der Standardeinstellung weigert sich der Compiler ja sogar dabei. Von daher sehe ich es nicht wirklich als Gegenargument. Wenn man tatsächlich mal mit C/C++-Code interagieren muss, ist man häufig froh darum. Aber das ist schon recht speziell (und vielleicht meintest du ja sowieso was anderes :D).

Ansonsten denke ich auch man kommt mit C# vergleichsweise schnell zu Ergebnissen, insbesondere wegen der guten IDE. C#/.NET ist imho auch relativ sauber aufgebaut. Das größte Manko im Vergleich zu Java ist denke ich, dass man bei anderen Plattformen als Windows Kompromisse eingehen muss. Dafür integriert sich C#/.NET in Windows besser. Ansonsten dürften sich die zwei wohl nicht viel geben.

Yavion
2010-06-07, 17:53:04
Es ist nicht nur die IDE. C# ist einfach ausdrucksstärker als Java. Auch und insbesondere in Verbindung mit LINQ. Aber man ist dann quasi mit MS verlobt. Wenn einem das nichts ausmacht ist .NET eine super Sache.

Nabend,

ich möchte mich demnächst mit der Programmierung beschäftigen und bin gerade am Grübeln, welch Sprache für mich als Laie für die Zukuft Sinn macht.
Da ich aus den Medienbereich komme, wäre wohl eher sowas wie PHP oder ähnliches angebracht. Wichtig sollte aber eine Programmiersprache sein, womit ich unter Windows den Bereich Anwendungsentwicklung wie auch den Internetbereich abdecke.


Könnt ihr da was empfehlen ?

Ja:

Scala, Ruby, Groovy, C#, Java und Python.

Diese halte ich in etwa in der Reihenfolge für Deinen Bedarf am geeignetsten.


Ich würde auf jeden Fall eine "Multiparadigmensprache" lernen (das wären z.B. die ersten 3).

Nimm am besten ein Buch wie "....von Kopf bis Fuß" (bzw "Head first ...") von O'Reilly. Damit solltest Du recht schnell Erfolgserlebnisse haben.

Java ist heute noch toll aber das muss nicht so bleiben, schon gar nicht wenn sich die Entwicklung der letzten Monate fortsetzt.

Gohan
2010-06-07, 18:27:34
Auch bei einem normalen Vista/7 ist ein IIS dabei. Muss man nur extra installieren. Zudem läuft der Debugger sowieso mit einem speziellen Webserver der zum Visual Studio gehört.

Ja, aber der Deveoplment-Server ist tierisch lahm. Lieber den IIS installieren und die Web-Anwendung auf dem IIS ausführen. Da liegen Welten dazwischen!

Monger
2010-06-07, 18:52:23
Hm worauf spielst du da an? Unsafe Code mit Pointern und co.?
Ich denke da eher an bestimmte Sprachkonstrukte, wie z.B. die Modules in VB.NET, oder Goto. Auch die ganze Geschichte mit den Value Types (Elementare Typen, Structs etc.) ist imho fragwürdig. Aus Performance Sicht sind sie in bestimmten Fällen nützlich - meistens verursachen sie aber einfach nur Ärger, weil sie z.B. auch nur begrenzt polymorph sind.
Dann, dass Enums eben kein eigener Typus sind, sondern eigentlich nur eine Integer Konstante. Da vermisse ich regelmäßig die wirklich schicken Enums aus Java.

So Zeugs gibts noch mehr. Ich persönlich finde z.B. es überflüssig, dass man das klassische Call-By-Reference überhaupt noch anbietet. Okay, so wirklich obsolet ist das erst mit dem Out-Parameter geworden, aber im Endeffekt hat man das nur erhalten, um die C++ Veteranen glücklich zu machen - und nicht etwa weil es die Sprache wirklich bereichert.

Alles in allem empfinde ich Java da als deutlich aufgeräumter und durchdachter - nicht nur in der Sprache, sondern auch im Framework. Dafür hat .NET ein paar Features, die zwar bizarr, aber höllisch nützlich sind. .NET 3.5 war da ein gigantischer Sprung vorwärts.

Edit: ich würde sogar soweit gehen, zu sagen dass VB.NET deutlich aufgeräumter ist als C#. Imho ist es rückblickend ein Glücksfall, dass Microsoft VB.NET so lange stiefmütterlich behandelt hat. VB.NET war einfach syntaktisch nicht so überladen wie C#, und als man da neue Funktionalität reingequetscht hat, stand man nicht unter dem Zwang, C++ irgendwie ähnlich zu sein. Das führt in einigen neueren Sprachkonstrukten dazu, dass VB.NET kompakter und klarer als C# ist.

Im Endeffekt sind die Unterschiede natürlich marginal, aber mich ärgert es wiedermal, dass in diesem Thread nur C# genannt wird, und nie VB.NET! ;)

Coda
2010-06-07, 19:17:42
goto hat seine Anwendungszwecke. Z.B. ist das ausbrechen aus einem verschachtelten Loop sonst nicht performant machbar.

Das heißt natürlich nicht, dass man es für herkömlichen Kontrollfluss anwenden sollte

Monger
2010-06-07, 19:22:30
goto hat seine Anwendungszwecke. Z.B. ist das ausbrechen aus einem verschachtelten Loop sonst nicht performant machbar.

Java kennt für sowas gelabelte Schleifen, so à la "break myLoop;". Deshalb braucht (und hat) Java auch kein Goto.

Demirug
2010-06-07, 19:46:16
Ja, aber der Deveoplment-Server ist tierisch lahm. Lieber den IIS installieren und die Web-Anwendung auf dem IIS ausführen. Da liegen Welten dazwischen!

Kann sein. Wir benutzen den auch nicht weil für das was wir machen ein vollständiger IIS erforderlich ist.

Gast
2010-06-07, 20:14:45
Bleibt die Frage ob man die Webanwendungen in .NET kostenlos entwickeln und auch testen kann. Es macht wenig Sinn eine Webanwendung zu schreiben und dann keine Möglichkeit zu haben das zu testen. Denn für sowas wird normalerweise gleich eine Serverlizenz von Windows fällig weil man idR. den IIS braucht. Da weiss ich aber absolut nicht bescheid.

Seit Visual Studio 2005 liefert die IDE doch einen eigenen Webserver mit und man braucht sich nicht mehr an den IIS Prozess anhängen.

Coda
2010-06-07, 20:33:30
Java kennt für sowas gelabelte Schleifen, so à la "break myLoop;". Deshalb braucht (und hat) Java auch kein Goto.
Cool, das wusste ich gar nicht. Ich hab mich nämlich schon öfters mal gefragt warum das eigentlich keine Sprache hat :ugly:

Allerdings hätte ich einfach einen Integer mitgegeben (z.B. break 2) um dann zwei Level runterzuspringen.

Gnafoo
2010-06-07, 20:40:20
Im Endeffekt sind die Unterschiede natürlich marginal, aber mich ärgert es wiedermal, dass in diesem Thread nur C# genannt wird, und nie VB.NET! ;)

Naja VB.NET ist sicher nicht so verbreitet wie C#. Außerdem denken vermutlich viele noch an das alte VB dabei, auch wenn VB.NET nicht mehr viel damit gemein hat. Schlechter als C# ist es sicher auch nicht. Beide haben ihre Stärken und Schwächen.

Danke für die restlichen Erläuterungen. Was struct/ref angeht (ich denke ref ist primär wegen den structs da): für den Interop-Teil von .NET ist das relativ wichtig, weil das Speicherlayout den C/C++-Structs entspricht (mit dem StructLayout-Attribut gehen ja sogar Unions). Und es hat natürlich auch gewisse Performance-Auswirkungen (wer schon einmal mit XNA auf der Xbox programmiert hat, weiß vielleicht wovon ich spreche ^^).

Es ist aber sicher richtig, dass es unerwartete Stolperfallen mit sich bringt, von daher kann man sicher hervorragend darüber streiten ob sie jetzt sinnvoll sind oder nicht. Das schweift allerdings vom Thema ab :D.

Der_Donnervogel
2010-06-07, 21:23:30
C# bietet halt einige "neumodische" Sachen, die viele andere Sprachen nicht haben.Wobei Properties vielleicht nicht gerade das allerbeste Beispiel sind, denn die gibts in VB schon sehr lange. Lediglich die Syntax war nicht ganz so kompakt.
Es gibt ein paar "Anomalien", ja. C# hat auch einiges Legacy Krams, um die Umsteiger von C++ nicht allzu sehr zu verschrecken. In der Hinsicht ist Java die deutlich sauberere Sprache.

Das wichtigste Argument für .NET ist imho dessen Entwicklungsumgebung. Visual Studio (insb. 2010) ist eine sehr, sehr runde Sache. Relativ fix, gute Editoren (Windows Forms, Resourcen etc.), und umfassendes Debugging. Das hilft doch sehr dabei, auch schnell zu Resultaten zu kommen.VS ist egal ob mit C# oder VB eine gute Entwicklungsumgebung, vor allem was die GUI-Editoren betrifft. Allerdings finde ich Eclipse etwas runder, da für mich grundlegende Dinge wie z.B. wie Syntaxprüfung und Refactoring bei Eclipse (mit Java) besser funktionieren. Außerdem funktionieren die GUI-Editoren von VS bei WPF nicht mehr, sobald man mal ein bisschen mehr als 08/15 XAML erzeugt und man muss das ganze erst wieder von Hand "coden" (zumindest unter VS 2008, VS 2010 hab ich noch nicht getestet).

Coda
2010-06-07, 21:37:05
WPF soll bei 2010 um einiges besser integriert sein. Getestet hab ich das aber auch noch nicht.

Gast
2010-06-07, 21:39:27
Bisher soll man ja dafür Expression Blend kaufen, um aufwendige WPF GUIs zusammenzuklicken.

PatkIllA
2010-06-07, 21:45:35
WPF soll bei 2010 um einiges besser integriert sein. Getestet hab ich das aber auch noch nicht.
ich finds jetzt nicht so berauschend.
Gott sei dank ist immer noch das XAML unten drunter. Man muss aber nicht mehr so oft manuell die Ansicht aktualisieren.

Monger
2010-06-07, 22:19:18
Ich hab hier ne 400 Seiten Schwarte von WPF liegen... und vielleicht bin ich nur blind, aber ich finde davon fast nichts im grafischen Editor wieder. Mein Verdacht ist, dass der derzeit noch SEHR rudimentär ist. Noch kein Ersatz zu den klassischen Windows Forms.

Diese ganzen Funktionen wie man z.B. an eine Gruppe von Elementen irgendwelche Attribute anhängen kann, und wie die dann ausgewertet werden, und wie man Events routen kann... all das scheint mir im graphischen Editor schlicht noch zu fehlen.
Ich würde mich deshalb aktuell noch nicht allzu sehr an WPF aufhängen, auch wenn das in Zukunft unzweifelhaft ziemlich spannend wird.

Shink
2010-06-08, 08:41:09
C# hat auch einiges Legacy Krams, um die Umsteiger von C++ nicht allzu sehr zu verschrecken. In der Hinsicht ist Java die deutlich sauberere Sprache.
Naja. Das sehe ich nicht ganz so.
Wenn man sich z.B. ansieht welche Einschränkungen Templates in Java haben um Pseudo-Rückkompatibilität (was genau hat man heute davon?) zu bewahren oder wie man überholte Konstrukte ala Marker-Interfaces ewig in den Libraries mitschleppt hat Microsoft doch auch einiges richtig gemacht mit C#.

EGG-Beater
2010-06-08, 10:12:32
oder wie man überholte Konstrukte ala Marker-Interfaces ewig in den Libraries mitschleppt

Wie sieht die moderne Alternative aus?

harrs34
2010-06-08, 11:00:53
Python ist schon die Mathematisch sauberste und einfachste Sprache.

Nur Matlab ist schöner :)
Und C# ist ganz nett, aber es muss sich noch entwickeln.

aber für Medienkramm ist wohl PHP am besten geeignet.

Shink
2010-06-08, 12:46:51
Wie sieht die moderne Alternative aus?
Nun ja; für Serializable oder Remote wäre z.B. eine Annotation wesentlich naheliegender da sich diese Eigenschaft nicht vererben muss (das Interface hingegen immer vererbt wird).

MuLuNGuS
2010-06-09, 11:16:30
Und C# ist ganz nett, aber es muss sich noch entwickeln.



ganz nett...das ist ja wohl nicht dein ernst, C# gibt's schon seit einer dekade und ist so mächtig geworden dass alleine schon das überblicken aller features einiges an zeit in anspruch nimmt.

in C#/VB.Net werden auch große projekte wie finanzbuchhaltungen oder warenwirtschaftsprogramme entwickelt, die bekommt man halt nur nicht so oft zu sehen.

Coda
2010-06-09, 13:57:48
in C#/VB.Net werden auch große projekte wie finanzbuchhaltungen oder warenwirtschaftsprogramme entwickelt, die bekommt man halt nur nicht so oft zu sehen.
Meinst du wirklich dass ist so ein glänzendes Beispiel in Sachen Codequalität? :biggrin:

Ganon
2010-06-09, 14:14:33
Meinst du wirklich dass ist so ein glänzendes Beispiel in Sachen Codequalität? :biggrin:

Hehe... *in meine IDE guck* ähm.... ich zumindest.... nunja... würde es nicht behaupten. :D

Aber hier trägt der Kunde auch eine große Mitschuld... diese ständigen Änderungswünsche

MuLuNGuS
2010-06-12, 18:53:16
Meinst du wirklich dass ist so ein glänzendes Beispiel in Sachen Codequalität? :biggrin:

naja, wenn ich es mir recht überlege..eigentlich nicht. :D


c# wird deshalb aber nicht schlechter....oder etwa doch?!

Aquaschaf
2010-06-12, 19:07:45
Python ist schon die Mathematisch sauberste und einfachste Sprache.

Pff. Richtig schön theoretisch sauber ist Haskell :)

Gast
2010-06-13, 07:11:47
Lohnt es sich heut noch auf PhP und MySQL zu setzen ? Ich beobachte es oft, dass Kunden Webshops einsetzen und diese gern abgeändert haben wollen. Sowas in der Richtung würd mich auch interessieren.


PHP verleitet zu unsicherem Programmieren bzw. unsicheren Webservern.


Fakt ist doch:

Die Leute programmieren was in PHP, dann meldet PHP Fehler wegen Sicherheitsrestriktionen und dann stellen die Leute die Sicherheit auf dem Server aus, damit ihr PHP Programm funktioniert weil sie zu doof sind, es so zu schreiben, daß es auch auf einem dichten PHP Server funktioniert und Voila, schon ist der Server für Angriffe offen wie ein Scheunentor.


Fazit:
Ich würde kein PHP nehmen.

Aber:
Ja, es wird verwendet. Es ist halt das Basic der Websprachen und die meisten Firmen sparen hier gerne am falschen Fleck.
Denn gerade weil PHP so Basicmäßig ist, sind auch die Programmierer preisgünstiger als z.B. ne Lösung in Java, denn für letzteres muß man schon mehr drauf haben, das kann nicht jeder, also ist die Entwicklung bei Java teurer und das wollen die Firmen nicht bezahlen.
Deswegen nehmen sie PHP und Quick & Dirty, nach dem Motto Augen zu und Durch.

Und wenn dann der Webserver gehackt wurde, dann will es keiner der Entscheider gewesen sein.


Tja und von der Sprache selbst ganz zu schweigen.
PHP ist an allen Ecken inkosisten und wirkt wie mit der heißen Nadel gestickt.
Ich würde es nicht freiwillig nehmen.

Nimm lieber Python, das ist schön sauber, durchdacht und gut strukturiert.

Gast
2010-06-13, 07:17:13
Außerdem, mit Python kann man auch GUI Applikationen schreiben,
einfach mit dem entsprechenden Toolkit.
Z.b. das da:
http://www.pygtk.org/


Ja und selbst einfache Spiele sind mit Python möglich:
http://www.pygame.org/news.html

Und natürlich umfangreiche Scriptingmöglichkeiten, das wurde ja schon genannt.

PHP aber kann nichts davon.
PHP reicht gerademal für Webseiten.


Also vergiß PHP.
PHP kannst du irgendwann mal später lernen, wenn du Python kannst und dir das Programmieren liegt.

Gast
2010-06-13, 07:19:25
Hallo!

Ich stand vor ca. 2 Monaten vor der Entscheidung, welche Programmiersprache ich für mein Programm, welches sich auf einer Seite anmeldet, paar Links "zusammenklickt" und anschließend die erstellte Excel-Datei herunterlädt. Wäre Python für sowas geeignet gewesen? Die Kommunikation mit der Seite läuft über Cookies und "VIEWSTATE".

Mfg Djon

Ja, wäre es.

Gast
2010-06-13, 07:23:13
Ich würde auch C# in den Raum werfen. Die Sprache ist gut zu erlernen, mit WinForms kommt man schnell zum Erfolg und mit MVC .NET hat man eine mächtiges Framework zur Entwicklung von Web Applikationen.
Zudem ist VisualStudio recht Benutzerfreundlich.

PHP ist für mich keine Programmier-, sondern eine Skriptsprache. Ich musste einmal ein Projekt damit realisieren, da graut es mir heute noch vor.


Man Leute, wenn ihr freiwillig eine Sprache wählt, dann seid nicht so blöd und laßt euch auf einen Vendor-Lock-in ein.

C# ist ne reine Windows/Microsoftsache und selbst wenn ihr auf Mono schielt gibt es da Patentfragen die euch noch schwer zu schaffen machen könnten.
Und wer dann noch auf Winforms zugreift, der hat sowieso verloren.



Also laßt so etwas bleiben und nehmt besser Java anstatt C#.


Und wenn überhaupt eine Sprache die mit dem Buchstaben C anfängt,
dann nur echtes C oder C++. Aber doch kein C#.

Gast
2010-06-13, 07:26:28
Es gibt ein paar "Anomalien", ja. C# hat auch einiges Legacy Krams, um die Umsteiger von C++ nicht allzu sehr zu verschrecken. In der Hinsicht ist Java die deutlich sauberere Sprache.

Das wichtigste Argument für .NET ist imho dessen Entwicklungsumgebung. Visual Studio (insb. 2010) ist eine sehr, sehr runde Sache.



Das ist kein Argument für .Net, denn für Java gibt's Eclipse und Netbeans.
Das sind beides ausgezeichnete IDEs die locker mit Visual Studio mithalten können.


Und Java läuft fast überall, selbst im Smartphone/Handy steckt Java.

Gast
2010-06-13, 07:30:16
Python ist schon die Mathematisch sauberste und einfachste Sprache.


Mathematisch sauber?

LACH:

Das sagt der Python Interpreter:

>>> 1.0/10.0
0.10000000000000001

EGG-Beater
2010-06-13, 13:19:00
Liegt das nicht eher an der Implementierung von IEEE754?

Coda
2010-06-13, 13:29:18
Selbstverständlich liegt das an Floating-Point. Der Gast sollte sich mal grundlegende Numerik ansehen bevor er sowas von sich gibt.

lola
2010-06-13, 15:24:47
Wenn du mit Python anfangen möchtest finde ich dieses Buch nicht schlecht

Invent Your Own Computer Games with Python (http://inventwithpython.com/)

das man als PDF kostenlos runterladen kann. Die Sprache wird einem anhand von Spielbeispielen näher gebracht.

Gast
2010-06-13, 15:34:02
Selbstverständlich liegt das an Floating-Point. Der Gast sollte sich mal grundlegende Numerik ansehen bevor er sowas von sich gibt.

Das ist irrelevant.

Mathematisch gesehen ist das Ergebnis einfach falsch.

Coda
2010-06-13, 15:35:08
"Mathematisch gesehen" rechnet jede Programmiersprache falsch. Was soll das?

Es ging ihm wohl um ganz andere Sachen - welche auch immer das sein mögen.

Aquaschaf
2010-06-13, 23:53:07
Das ist irrelevant.

Mathematisch gesehen ist das Ergebnis einfach falsch.

Das Ergebnis ist "mathematisch gesehen" korrekt; es handelt sich ja um Gleitkommazahlen und nicht um reelle oder rationale Zahlen.

Abgesehen davon dürfte sich der Kommentar aber eher auf die Syntax und Semantik der Sprache bezogen haben.

Gast
2010-06-13, 23:56:48
"Mathematisch gesehen" rechnet jede Programmiersprache falsch. Was soll das?

Es ging ihm wohl um ganz andere Sachen - welche auch immer das sein mögen.


Unsinn, selbst C kriegt das besser hin.

Wenn ich da 1.0/10.0 ausrechne, dann erhalte ich auch 0.1.

Probier's aus, wenn du es mir nicht glaubst.

Gast
2010-06-13, 23:58:35
Das Ergebnis ist "mathematisch gesehen" korrekt; es handelt sich ja um Gleitkommazahlen und nicht um reelle oder rationale Zahlen.

Da C und C++ hier richtig rechnen, kann die Feststellung, daß es Gleitkommazahlen sind keine Begründung sein, denn in C/C++ sind sie das auch.

Es bleibt mathematisch falsch.
Python kann nicht rechnen und man sollte daher Python auf keinen Fall für mathematische Aufgaben verwenden.
Auch dann nicht, wenn man innerhalb der Genauigkeit des Datentypes rechnet.

Coda
2010-06-14, 00:10:15
Unsinn, selbst C kriegt das besser hin.

Wenn ich da 1.0/10.0 ausrechne, dann erhalte ich auch 0.1.

Probier's aus, wenn du es mir nicht glaubst.
Nein, deine Ausgabe rundet es nur so. Es kommt exakt das gleiche raus.

0.1 ist nicht repräsentierbar als IEEE754-Zahl.

#include <iostream>
#include <iomanip>

int main()
{
double result = 1.0 / 10.0;

std::cout << std::setprecision(20) << result << std::endl;
}

Ausgabe: 0.10000000000000001

Und jetzt Ruhe mit dem Stuss. Da bekommt man ja Kopfweh von.

Marscel
2010-06-14, 00:39:33
Gast, versuch mal in Python:
1/4.0

Gib zu, mit dem Ergebnis hättest du nicht gerechnet, wa?

So, nimm dir mal Stift und Papier und versuch mal, mit so einer 2^x Tabelle 0.25 darzustellen und dann als kleine Herausforderung 0.1. Stellst du was fest?

Ganon
2010-06-14, 00:44:31
Und falls jetzt das Argument kommen sollte, dass das C++ ist, hier auch noch mal in C und auch noch mal mit 128bit long double:


#include <stdio.h>

int main()
{
long double result = 1.0 / 10.0;
printf("%0.20Lf \n",result);
}


Ausgabe:
0.10000000000000000555

Was auch bei Codas Code bei mir raus kommt ;)

Um sowas allgemein korrekt darzustellen, braucht man schon eine BigNum Bibliothek, die außerhalb der CPU-Grenzen rechnet, aber dafür eben langsamer.

Und btw:

python3.1
Python 3.1.2 (r312:79147, Jun 6 2010, 20:55:28)
[GCC 4.2.1 (Apple Inc. build 5659)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 1.0/10.0
0.1
>>>


;)

Aber auch Python kann nicht zaubern:



>>> print("%0.20f" % (1.0/10.0))
0.10000000000000000555

Aquaschaf
2010-06-14, 00:52:15
Da C und C++ hier richtig rechnen, kann die Feststellung, daß es Gleitkommazahlen sind keine Begründung sein, denn in C/C++ sind sie das auch.

C/C++ setzen genau wie Python den Kram in floating-point-Befehle für die CPU um. Wie sollte da überhaupt etwas anderes herauskommen können?

Coda
2010-06-14, 01:37:36
Und falls jetzt das Argument kommen sollte, dass das C++ ist, hier auch noch mal in C und auch noch mal mit 128bit long double:
80 Bit. Außer du hast nen Itanium - was ich mal bezweifel.

Gast
2010-06-14, 03:17:09
Nein, deine Ausgabe rundet es nur so. Es kommt exakt das gleiche raus.

0.1 ist nicht repräsentierbar als IEEE754-Zahl.

#include <iostream>
#include <iomanip>

int main()
{
double result = 1.0 / 10.0;

std::cout << std::setprecision(20) << result << std::endl;
}

Ausgabe: 0.10000000000000001

Und jetzt Ruhe mit dem Stuss. Da bekommt man ja Kopfweh von.

Bei C/C++ ist es bekannt:

Auch dann nicht, wenn man innerhalb der Genauigkeit des Datentypes rechnet.


Von daher rechnet C/C++ hier nicht falsch, denn das Ergebnis ist mit eingebauter Rundung im Endeffekt ja richtig.

Ganon
2010-06-14, 08:14:12
80 Bit. Außer du hast nen Itanium - was ich mal bezweifel.

Also ein sizeof(result)*8 spuckt bei mir 128 aus. Kompiliert mit clang (LLVM 2.7).

Xmas
2010-06-14, 11:07:48
Von daher rechnet C/C++ hier nicht falsch, denn das Ergebnis ist mit eingebauter Rundung im Endeffekt ja richtig.
Also rechnet C/C++ richtig und Python falsch, obwohl beide mit denselben Datentypen auf dasselbe Ergebnis kommen?

Coda
2010-06-14, 11:08:37
Also ein sizeof(result)*8 spuckt bei mir 128 aus. Kompiliert mit clang (LLVM 2.7).
Das liegt nur am Padding.

Fattyman
2010-06-24, 16:28:27
Sorry, wer Webshop-Entwicklung machen will, braucht nicht nur eine Programmiersprache. Folgende "Sprachen" kann ich hier empfehlen:

Serverseitige Sprachen:
- Java (in vielen kommerziellen Shops im Einsatz)
- PHP (Basis von Freeware-Shops)
- SQL (Datenbankabfragesprache mit unterschiedlichen Dialekten je nach Datenbank)

Clientseitige Sprachen:
- C,C++,C#,Java (in "Stand-Alone"-Applikationen)
- Javascript (in Browsern ein Muss)
- HTML,CSS -> sind zwar keine "richtigen" Programmiersprachen, kommen aber durch spezielle Features an die Komplexität einer Sprache ran

Programmierung heutzutage bedeutet nicht mehr ein einfaches "Hallo Welt"-Programm sondern den Einsatz einer Vielzahl verschiedenster Mittel, um eine mehr oder minder komplexe Aufgabe zu lösen. DIE Programmiersprache existiert deshalb nicht. Es ist eher ein Set von Sprachen - das Programmiersprachengrundgerüst -, das für die häufigsten Aufgaben als Hilfsmittel zur Lösung verwendet wird. Die oben angegebenen Sprachen stellen ein solches Set dar.

mbee
2010-06-24, 19:55:51
Die oben angegeben Sprachen beherrscht allerdings kein Mensch gerade im prof. Umfeld alle "perfekt", von den verbreiteten Frameworks auch mal ganz zu schweigen: Selbst im Web-Bereich gibt es mittlerweile fast nur noch Frontend- (CSS, JavaScript, XHTML, AJAX als "Mittelding") und Backend-Spezialisten (Java mit Frameworks wie JSF, Ice-Faces, etc.). Die Zeit der "eierlegenden" Wollmilchsäue, die im Alleingang mit PHP, CSS, JavaScript, SQL und HTML eine ganze Applikation stricken, ist zumindest bei größeren und entsprechend komplexen Projekten so ziemlich vorbei.

Natürlich schadet es dennoch nicht, wenn man sich in den anderen Bereichen halbwegs gut bewegen kann. Eine Spezialisierung ist aber für die meisten Jobs mittlerweile Voraussetzung und auch sinnvoll.

Djon
2010-06-24, 20:38:23
Hallo!

Ja, wäre es.

Hast du vielleicht ein Link für mich wo ich das nachlesen kann?

Gruß Djon

Michael.Luttmer
2010-07-11, 21:54:16
Nabend,

ich möchte mich demnächst mit der Programmierung beschäftigen und bin gerade am Grübeln, welch Sprache für mich als Laie für die Zukuft Sinn macht.
Da ich aus den Medienbereich komme, wäre wohl eher sowas wie PHP oder ähnliches angebracht. Wichtig sollte aber eine Programmiersprache sein, womit ich unter Windows den Bereich Anwendungsentwicklung wie auch den Internetbereich abdecke.


Könnt ihr da was empfehlen ?

Hi,
da kann ich dir uneingeschränkt .NET (C#/VB) empfehlen. Mit Visual Studio 2010 kann man sehr professionell und einfach Webanwendungen erstellen. Wenn du dich dann noch mit Silverlight und Expression Blend / Studio beschäftigst hast du alles was du im Medienbereich brauchst.

Ps: Wenn du noch Schüler oder Student bist bekommst du die Produkte kostenlos : https://www.dreamspark.com/Default.aspx
Gruß
Michael