PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : D lernen


aths
2008-05-17, 20:33:16
Während ich Sprachen wie C# für modische Erscheinungen und Java für eine Insel halte, und C++ zu umständlich finde, scheint D genau das zu sein was ich immer wollte: Eine effiziente, durchdachte, mächtige Programmiersprache ohne Wildwuchs.

Kennt jemand ein gutes D-Buch (deutsch oder englisch) welches keine oder keine großen C++-Erfahrungen voraussetzt?

Hintergrund: Object Pascal (Delphi) hat wahrscheinlich keine große Zukunft – wenn ich mal aus Unfähigkeit, zum Beispiel statistische Werte analytisch zu berechnen diese einfach nummerisch mit Versuchsreihen ermitteln will, brauche ich eine Programmiersprache.

del_4901
2008-05-17, 21:11:09
Während ich Sprachen wie C# für modische Erscheinungen und Java für eine Insel halte, und C++ zu umständlich finde, scheint D genau das zu sein was ich immer wollte: Eine effiziente, durchdachte, mächtige Programmiersprache ohne Wildwuchs.

Kennt jemand ein gutes D-Buch (deutsch oder englisch) welches keine oder keine großen C++-Erfahrungen voraussetzt?

Hintergrund: Object Pascal (Delphi) hat wahrscheinlich keine große Zukunft – wenn ich mal aus Unfähigkeit, zum Beispiel statistische Werte analytisch zu berechnen diese einfach nummerisch mit Versuchsreihen ermitteln will, brauche ich eine Programmiersprache.
Schlecht ist die Sprache mit sicherheit nicht, aber ich denke die wird eher ein Nischendasein führen, weil einfach keiner von den Großen dahintersteht. Wenn es wirklich ein sehr gutes Buch geben sollte, würde ich mir das aber auch hohlen.

Gast
2008-05-17, 21:45:32
http://de.wikipedia.org/wiki/Programmiersprache_D#Literatur

nuja, recht überschaubar...

noid
2008-05-17, 23:01:56
Während ich Sprachen wie C# für modische Erscheinungen und Java für eine Insel halte, und C++ zu umständlich finde, scheint D genau das zu sein was ich immer wollte: Eine effiziente, durchdachte, mächtige Programmiersprache ohne Wildwuchs.

Kennt jemand ein gutes D-Buch (deutsch oder englisch) welches keine oder keine großen C++-Erfahrungen voraussetzt?

Hintergrund: Object Pascal (Delphi) hat wahrscheinlich keine große Zukunft – wenn ich mal aus Unfähigkeit, zum Beispiel statistische Werte analytisch zu berechnen diese einfach nummerisch mit Versuchsreihen ermitteln will, brauche ich eine Programmiersprache.

D wie Dead?
Hand auf's Herz - warum was nutzen was sonst keiner nutzt? Genau deswegen?
Für statistische Auswertungen nimmt man zB R, oder SAS. Wenn man nur einen Hammer hat, dann ist eben alles ein Nagel ;D

aths
2008-05-17, 23:15:52
D wie Dead?
Hand auf's Herz - warum was nutzen was sonst keiner nutzt? Genau deswegen?
Für statistische Auswertungen nimmt man zB R, oder SAS. Wenn man nur einen Hammer hat, dann ist eben alles ein Nagel ;DIch habe keine Lust, mich für spezielle Sachen in spezielle Programmiersprachen einzuarbeiten wenn es auch welche gibt, die alles können. Sicher haben z. B. Scripte in Matlab ihre Berechtigung aber für alles was neues lernen? Nee.

Schlecht ist die Sprache mit sicherheit nicht, aber ich denke die wird eher ein Nischendasein führen, weil einfach keiner von den Großen dahintersteht. Damit könnte D im Kampf zwischen Java und C# der lachende Dritte sein.

pajofego
2008-05-17, 23:30:28
Ich habe keine Lust, mich für spezielle Sachen in spezielle Programmiersprachen einzuarbeiten wenn es auch welche gibt, die alles können. Sicher haben z. B. Scripte in Matlab ihre Berechtigung aber für alles was neues lernen? Nee.

Damit könnte D im Kampf zwischen Java und C# der lachende Dritte sein.

Komme ebenfalls aus der Delphi Ecke und stehe ebenfalls immer vor der Frage was nehmen beim nächsten Projekt. C++, mag ich nicht so richtig, nur wenn's sein muss...D finde ich Klasse. Überlege ob ich es nicht demnächst intensiver nutzen sollte. In Sachen Matlab Skripte muss ich sagen, das ist echt einfach. Du brauchst keine 10 min. um die Sprache zu lernen. Tausende Funktionen die nicht neu implementiert werden müssen, super Ausgabe, Vektor-, Matrizendarstellung super einfach...und mein Liebling sind Cells! Kann man nur empfehlen. Teilweise gibt's soviele frei verfügbare Skripte für unterschiedliche Problemstellungen. Man kann auch die Matlab Runtime Machine weitergeben falls eine Anwendung verteilt werden soll. Also Matlab würde ich für mathematische Probleme nie links liegen lassen...im Gegenteil, ich verspreche dir, dass du damit um Faktor 10 schneller bist als mit jeder anderen Programmiersprache. Und wenn's kostenlos sein soll, dann eben Octave, ist auch nett, natürlich nicht so umfangreich wie Matlab, dafür für lau.

Gruß
pajofego

Gast
2008-05-18, 00:17:21
Oh Leute, merkt ihr denn nicht, daß Java einst auch so verspottet wurde.

Und wenn jeder so denkt, daß aus D nichts wird, dann kriegt ihr auch nichts besseres als ihr verdient (C++ und PHP).


D ist Geil und ich würde es nutzen wo immer ich kann.

Gast
2008-05-18, 03:30:15
Während ich Sprachen wie C# für modische Erscheinungen und Java für eine Insel halte, und C++ zu umständlich finde, scheint D genau das zu sein was ich immer wollte: Eine effiziente, durchdachte, mächtige Programmiersprache ohne Wildwuchs.
Wo siehst du denn die gigantischen Vorteile von D gegenüber C++?
Das meiste wirkt auf mich wie Kleinigkeiten und manches find ich richtig hässlich.

Eine neuen Sprache trau ich erst zu sich großflächig durchsetzen, wenn sie die Möglichkeiten/Performance von C++ mit einer JIT-Umgebung wie LLVM verbindet. C++ mit einer leicht besserer Syntax, weniger Limitierungen, befreit von den qualvollen includes und besonders mit Reflection wäre schon fast traumhaft.

Gast
2008-05-18, 03:43:21
Wo siehst du denn die gigantischen Vorteile von D gegenüber C++?
Das meiste wirkt auf mich wie Kleinigkeiten und manches find ich richtig hässlich.


Das D aufgeräumter ist.

Mit C++ kann man ganz schön viel Blödsinn machen und es gibt viele Fallstricken
oder Möglichkeiten die zu schlechtem Code führen können.

RattuS
2008-05-18, 03:45:45
Während ich Sprachen wie C# für modische Erscheinungen ... halte...
Was spricht denn gegen C#?

Es ist eigentlich immer so. Jede Programmiersprache hat irgendwo seine Vor- und Nachteile, die jeder unterschiedlich betrachtet. Ich z.B. sehe diese ganzen Sicherheitsrestriktionen als unnötig bzw. zumindest als optionalen Faktor an. Wenn ich direkt mit den Adressen arbeiten will, dann sollte mir die Entwicklungsumgebung das auch ohne meterweite Umstände ermöglichen.

Gast
2008-05-18, 07:51:18
Was spricht denn gegen C#?


Es existiert schon Java.

Monger
2008-05-18, 09:29:36
Oh Leute, merkt ihr denn nicht, daß Java einst auch so verspottet wurde.

Gemessen daran, wer sich alles für Java eingesetzt hat, ist Java imho auch relativ unerfolgreich.

Und Java zeigt auch, dass eine hochentwickelte Sprache alleine noch kein Erfolgsgarant ist. Ich halte Java immer noch für die durchdachtere und geschliffenere Sprache gegenüber C#, auch was das Standard-Framework angeht.

Aber es kommt halt auf die Tools und den Support an. Mittlerweile arbeite ich auch lieber mit C# - man kommt in der Windows Welt damit schlicht wesentlich schneller zum Ziel.

The_Invisible
2008-05-18, 09:42:26
für java gibt es wenigstens für viele systeme eine gescheite vm, bei c# muss man ja aufpassen das man nicht zu weit geht und es zb unter mono noch läuft.

mfg

beos
2008-05-18, 12:42:22
Während ich Sprachen wie C# für modische Erscheinungen und Java für eine Insel halte, und C++ zu umständlich finde, scheint D genau das zu sein was ich immer wollte: Eine effiziente, durchdachte, mächtige Programmiersprache ohne Wildwuchs.


Ich persönlich habe D noch nicht programmiert - aber ich frage mich, wie Du es mit C# und Java vergleichen kannst....die Einsatzgebiete von z.B. Java liegen doch ganz woanders als die von D :confused:

Coda
2008-05-18, 14:05:22
Und wenn jeder so denkt, daß aus D nichts wird, dann kriegt ihr auch nichts besseres als ihr verdient (C++ und PHP).
PHP hat einen schlechteren Ruf als es verdient. Seit PHP 5 kann man damit wirklich sehr ordentlichen Code schreiben.

instinct
2008-05-18, 14:11:18
PHP hat einen schlechteren Ruf als es verdient. Seit PHP 5 kann man damit wirklich sehr ordentlichen Code schreiben.


Auch wenn man in PHP5 nun objektorientiert programmieren kann, so sind doch sehr viele Dinge sehr unsauber gelöst.
Beispiel: Es ist das reinste Chaos in PHP ne saubere Vererbung hinzubekommen (im Vergleich zu JAVA)

PHuV
2008-05-18, 15:33:19
Wie war das mit den toten Pferden? :biggrin:

Na ja, nach einigen Jahren Berufserfahrung scheue ich, ehrlich gesagt, jede exclusive und seltene Programmiersprache, sei sie noch so schön und elegant, aus folgenden Gründen:

1) Keine entsprechender und kompetenter Support möglich
2) Keine Portabilität und Flexibilität bei den Plattformen
3) Codepflege und Wartung schwierig (wenn der entsprechende MA fehlt oder kündigt)
4) keine große Basis in der Unterstützung (IDE, Tools, usw.).

Gut, für Hobbyprogrammierer ist das vielleicht ok. Aber wer beruflich vorankommen will, sollte auf diese Dinger verzichten. Es kostet doch Mühe und Zeit, sich einzuarbeiten, und die fehlt dann relevant bei allen anderen Dingen. Ein C und Java hat halt den Vorteil, daß ich es immer gut auf andere Plattformen portieren kann und auch mit diesen entsprechend arbeiten kann. Natürlich ist es nicht immer optimal, und die Nischensprachen haben durchaus ihren Reiz und viel bessere Ansätze bzw. Codequalität, aber was nützt mir das, wenn es keiner einsetzt oder die Industrie nicht verwendet, oder ich mit Kollegen damit im Projekt nicht zusammenarbeiten kann?

Ectoplasma
2008-05-18, 16:47:43
Wie war das mit den toten Pferden? :biggrin:

Na ja, nach einigen Jahren Berufserfahrung scheue ich, ehrlich gesagt, jede exclusive und seltene Programmiersprache, sei sie noch so schön und elegant, aus folgenden Gründen:



Auf der einen Seite hast du ja Recht. Aber hör dich mal selber, wie eingestaubt und trocken das klingt, was du schreibst. Damit beziehe ich mich nicht speziell darauf ob D etwas wird, sondern im Allgemeinen. An Java und C# hat auch niemand so recht geglaubt.

Und lass doch nicht immer deine vielen Jahre Berufserfahrung raushängen, das haben andere auch hier im Forum und lassen es nicht dauernd raus.



Gemessen daran, wer sich alles für Java eingesetzt hat, ist Java imho auch relativ unerfolgreich.


Du irrst dich gewaltig. Software-Projekte werden in vielen Firmen fast ausschließlich nur noch mit Java und C# entwickelt. Wobei C# weniger vertreten ist. Im Consumer - Bereich sind diese Sprachen eher wenig bis gar nicht anzutreffen.

Coda
2008-05-18, 17:22:32
Auch wenn man in PHP5 nun objektorientiert programmieren kann, so sind doch sehr viele Dinge sehr unsauber gelöst.
Beispiel: Es ist das reinste Chaos in PHP ne saubere Vererbung hinzubekommen (im Vergleich zu JAVA)
Inwiefern? Ist doch auch Single Inheritance mit Interfaces.

instinct
2008-05-18, 17:27:04
Inwiefern? Ist doch auch Single Inheritance mit Interfaces.


Wenn ich in der Oberklasse gerne mehrere Konstruktoren mit dem selben Namen, aber unterschiedlicher Paramterliste hätte. In der Oberklasse bekomme ich das hin, aber einen bestimmten Konstruktor aus der Unterklasse aufrufen funktioniert nicht, es sei denn ich nenne alle Konstruktoren unterschiedlich => unsauber

Gast
2008-05-18, 17:34:03
Gut, für Hobbyprogrammierer ist das vielleicht ok. Aber wer beruflich vorankommen will, sollte auf diese Dinger verzichten.
Ich mach gerade mal wieder die genau gegenteilige Erfahrung. Während z.B. der Java-Markt vollkommend übersättigt ist, suchen wir händeringend .NET Entwickler.

Und C# hat keine Zukunft? Meine Firma arbeitet im Windows Sektor und Microsoft stellt mittlerweile so gut wie jedes Produkt auf .NET Support um. Selbst grosse Softwarebrocken wie z.B. der Team Foundation Server sind fast nur noch über .NET APIs ansprechbar.

Was hat man auch als Alternative?

C++ mit Win32/MFC & Co? Für Brot- und Butteranwendung viel zu aufwendig.
Java? Empfinden viele Kunden immer noch als Fremdkörper.
Delphi? Tot.

Und die Plattformunabhängigkeit einer Lösung ist bei uns auch noch nie ein Kundenwunsch gewesen. C++ mit MFC war jahrelang genauso plattformabhängig wie heute C# mit .NET. Hat damals keinen gestört und tuts heute auch nicht.

PHuV
2008-05-18, 17:55:43
Ich mach gerade mal wieder die genau gegenteilige Erfahrung. Während z.B. der Java-Markt vollkommend übersättigt ist, suchen wir händeringend .NET Entwickler.
:
Und C# hat keine Zukunft?


Das habe ich auch nicht behauptet! C# hat den Vorteil, durch MS und Windows bzw. durch .NET eine große Basis zu haben, was D ja eindeutig nicht hat.

Auf der einen Seite hast du ja Recht.


Siehe ;).


Aber hör dich mal selber, wie eingestaubt und trocken das klingt, was du schreibst.


Ich weiß, und mir gefällt es persönlich auch nicht. Aber was nützt meine Überzeugung oder mein Glaube, wenn die Realität eine andere Sprache spricht? Über die Jahre bin ich ein Pragmatiker geworden.


Damit beziehe ich mich nicht speziell darauf ob D etwas wird, sondern im Allgemeinen. An Java und C# hat auch niemand so recht geglaubt.


Moment, C# und Java haben durch zwei solche Größen wie Sun und MS wohl eine andere Basis als eine vergleichsweise Nischensprache wie D.


Und lass doch nicht immer deine vielen Jahre Berufserfahrung raushängen, das haben andere auch hier im Forum und lassen es nicht dauernd raus.


Aber wie Du sagtest, ich habe leider Recht, und leider wird die Kompetenz immer hier recht schnell und vor allen Dingen unsachlich angezweifelt, so daß für die Untermauerung von Argumenten leider nichts anderes übrig bleibt, wenn Du das Untermauern als "Heraushängen" betrachtest, ist es Dein Problem. Was wirklich Praxis ist und eingesetzt wird, das ist, was zählt, und nicht nur die Phantasiegedanken einiger. Aber um nicht falsch verstanden zu werden, Phantasie ist natürlich wichtig, und vielleicht schafft es ja doch mal ein vernünftiger Außenseiter.

Coda
2008-05-18, 18:23:40
Wenn ich in der Oberklasse gerne mehrere Konstruktoren mit dem selben Namen, aber unterschiedlicher Paramterliste hätte. In der Oberklasse bekomme ich das hin, aber einen bestimmten Konstruktor aus der Unterklasse aufrufen funktioniert nicht, es sei denn ich nenne alle Konstruktoren unterschiedlich => unsauber
parent::Klassenname(params) geht nicht?

Edit: Hä? PHP erlaubt doch gar nicht dass man mehrere Konstruktoren deklariert :|

instinct
2008-05-18, 18:28:20
Dann kommt ein Fehler, dass die Methode diese Parameter nicht besitzt, da mehrere vorhanden sind.

Monger
2008-05-18, 19:37:41
Ich weiß, und mir gefällt es persönlich auch nicht. Aber was nützt meine Überzeugung oder mein Glaube, wenn die Realität eine andere Sprache spricht? Über die Jahre bin ich ein Pragmatiker geworden.

Kommt wohl auch sehr auf die Branche an. So wie ich das bei dir rauslesen konnte, arbeitest du ja wohl ausschließlich mit Industriekunden.

Kenne ich auch zu gut. In meiner Branche (Automatisierungstechnik) wird auch nix angefasst, solange es noch irgendwie funktioniert. Das liegt sicherlich daran, dass das große Geld dort nach wie vor mit Hardware und Service, und nicht etwa Software, verdient wird.

Ein großes Softwarehaus wie eben Microsoft oder SAP hat naturgemäß ein viel größeres Interesse daran, ihre Prozesse auf den allerneuesten Stand zu bringen. Da folgt eben die Nachfrage dem Fortschritt, und nicht andersrum.

noid
2008-05-18, 21:10:36
Kommt wohl auch sehr auf die Branche an. So wie ich das bei dir rauslesen konnte, arbeitest du ja wohl ausschließlich mit Industriekunden.

Kenne ich auch zu gut. In meiner Branche (Automatisierungstechnik) wird auch nix angefasst, solange es noch irgendwie funktioniert. Das liegt sicherlich daran, dass das große Geld dort nach wie vor mit Hardware und Service, und nicht etwa Software, verdient wird.

Ein großes Softwarehaus wie eben Microsoft oder SAP hat naturgemäß ein viel größeres Interesse daran, ihre Prozesse auf den allerneuesten Stand zu bringen. Da folgt eben die Nachfrage dem Fortschritt, und nicht andersrum.

Software lange nicht anzufassen ist aber _Der_ Todesstoß für Neuerungen - weil oftmals die Architektur vor 10 Jahren so gewählt wurde, dass es auf alten Gurken lief. Jetzt hat man tonnenweise mehr Rechenleistung und kriegt das neue nicht rein, weil das alte so Grütze ist.
;(

Wuzel
2008-05-18, 22:01:15
C++ mit boost ist unschlagbar, Automatisierung und embedded mit C.
D = Wayne.

C#/.NET ist für die Windows Jung/Mädels wohl unumgänglich und eigentlich garnicht von schlechten Eltern.
Java ist sowas wie New York in Software. Riesig, Multi Kulti, dauernd Stau und man braucht Jahre um eine gescheite Pizza Bude zu finden ;)

Wuzel
2008-05-18, 22:08:11
Software lange nicht anzufassen ist aber _Der_ Todesstoß für Neuerungen - weil oftmals die Architektur vor 10 Jahren so gewählt wurde, dass es auf alten Gurken lief. Jetzt hat man tonnenweise mehr Rechenleistung und kriegt das neue nicht rein, weil das alte so Grütze ist.
;(

Er redete ja von Automatisierung. Und da braucht man halt keine grossen Neuerungen, da der alte Krempel noch immer locker ausreicht und nach wie vor stellenweise overpowered ist. Man schaue sich nur mal an, wie weit die 8051'er dort noch verbreitet sind. 8bit reichen noch für die nächsten Jahre locker aus.

Ich selber wurschtle mit LPC's rum. Ist immer wieder erstaunlich was diese kleinen 'futzel Teile' alles managen können.

Demirug
2008-05-18, 22:17:08
C++ mit boost ist unschlagbar

Vor allem bei den Supportkosten. ;)

RMC
2008-05-18, 23:07:17
Java ist sowas wie New York in Software. Riesig, Multi Kulti, dauernd Stau und
man braucht Jahre um eine gescheite Pizza Bude zu finden ;)

Und dennoch ist New York DIE Weltstadt schlechthin ;)

noid
2008-05-18, 23:11:18
Er redete ja von Automatisierung. Und da braucht man halt keine grossen Neuerungen, da der alte Krempel noch immer locker ausreicht und nach wie vor stellenweise overpowered ist. Man schaue sich nur mal an, wie weit die 8051'er dort noch verbreitet sind. 8bit reichen noch für die nächsten Jahre locker aus.

Ich selber wurschtle mit LPC's rum. Ist immer wieder erstaunlich was diese kleinen 'futzel Teile' alles managen können.

Das hat man mir auch immer gesagt... bis wir/ich jetzt alles _neu_ machen :cool:
8bit, und ja möglichst alles selbst wie damals in ASM optimieren :ubash:

zu Java + New York: und alle 2 Wochen sind die Straßenzüge komplett anders bzw die Straßenkarten veraltet.

PHuV
2008-05-19, 10:52:06
Ein großes Softwarehaus wie eben Microsoft oder SAP hat naturgemäß ein viel größeres Interesse daran, ihre Prozesse auf den allerneuesten Stand zu bringen. Da folgt eben die Nachfrage dem Fortschritt, und nicht andersrum.

Na ja, wenn man dann sich anschaut, wie das so in den Firmen umgesetzt wird. :rolleyes:. Klar, viele rennen den aktuellen Trends und Neuerungen in gewissen Bereichen hinterher, weil ihnen Effizienz und Kostenersparnis versprochen werden. Wenn man sich jedoch mal genauer ausrechnet, was das alles immer kostet und Geld wirklich versemmelt wird, ich glaube, da bräuchte ich nicht mehr arbeiten. Man braucht sich nur mal die Strategie von SAP anschauen, die ständig Neuerungen und Zeugs anbringen, die Firmen mühsam kostenintensiv etwas noch nicht ausgereiftes migrieren, und schon kommt das nächste. Ein Schelm, wer böses dabei denkt. Vor allen Dingen sieht man immer wieder die krude Kombination, alte organisatorische Strukturen auf die IT bzw. umgekehrt anzupassen. Das mal jemand auf die Idee kommt, mal beides entsprechend anzugleichen und aufeinander abzustimmen...:rolleyes:

So sacken diverse Beraterfirmen tonnenweise Geld ein, die Prozesse werden nur marginal optimiert, die Kosten steigen immens (und man will ja nicht aussteigen, weil man ja schon so viel reingesteckt hat). Von den ganzen Grabenkämpfen zwischen den diversen Fachabteilungen (sogar untereinander) und den Entscheidungsträgern mal ganz zu schweigen. Der größte Witz: Jeder weiß, wo es läuft, was schiefläuft, und warum. Aber keiner kann/will/möchte was ändern. Sehr paradox. :|

Und BTW, momentan arbeite ich in einer Behörde, mehr muß ich ja wohl nicht sagen. ;)

PHuV
2008-05-19, 11:07:26
Aber um mal beim Thema zu bleiben, es gibt so viele Dinge, die bei Programmiersprachen uneffizient laufen oder unausgereift umgesetzt sind. Was mich beispielsweise ärgert, ist daß die switch-case-Anweisung in fast allen Programmiersprachen bis heute nach wie vor nur Integer zulassen. Jedoch benötigt jeder Programmierer in der Praxis so was auch für String-Werte. Daran sieht man, daß bei der Definition einer Programmiersprache oft nur Theoretiker dran sitzen.

Genauso war ich sehr erstaunt, daß Java so viel Funktionen und Mist drin hat, aber eine lummelige Funktion zum Ermitteln einer Tagesdifferenz zwischen 2 Tagen gibt es nicht, muß man wieder selbst schreiben.

catamaran
2008-05-19, 11:21:08
Aber um mal beim Thema zu bleiben, es gibt so viele Dinge, die bei Programmiersprachen uneffizient laufen oder unausgereift umgesetzt sind. Was mich beispielsweise ärgert, ist daß die switch-case-Anweisung in fast allen Programmiersprachen bis heute nach wie vor nur Integer zulassen. Jedoch benötigt jeder Programmierer in der Praxis so was auch für String-Werte. Daran sieht man, daß bei der Definition einer Programmiersprache oft nur Theoretiker dran sitzen.

Genauso war ich sehr erstaunt, daß Java so viel Funktionen und Mist drin hat, aber eine lummelige Funktion zum Ermitteln einer Tagesdifferenz zwischen 2 Tagen gibt es nicht, muß man wieder selbst schreiben.

Für solche Dinge gibt es 4GL Sprachen.

Shink
2008-05-19, 11:21:29
Was mich beispielsweise ärgert, ist daß die switch-case-Anweisung in fast allen Programmiersprachen bis heute nach wie vor nur Integer zulassen. Jedoch benötigt jeder Programmierer in der Praxis so was auch für String-Werte. Daran sieht man, daß bei der Definition einer Programmiersprache oft nur Theoretiker dran sitzen.
Naja, wenn du meinst. Was mich beispielsweise ärgert ist daß man diese Programmierkonstrukte bei modernen Programmiersprachen nicht schon abgeschafft hat:P.

Ectoplasma
2008-05-19, 11:39:57
C#/.NET ist für die Windows Jung/Mädels wohl unumgänglich und eigentlich garnicht von schlechten Eltern.
Java ist sowas wie New York in Software. Riesig, Multi Kulti, dauernd Stau und man braucht Jahre um eine gescheite Pizza Bude zu finden ;)

Aus dem Bauch heraus empfinde ich das auch so, aber faktisch entspricht es nicht den Tatsachen. Java ist groß, stimmt. Das hat aber auch sehr viele Vorteile. Es gibt schon so viele Bibliotheken für jeden Quark, dass es echt eine Erleichterung ist. Für größere WEB-Anwendungen im Profi-Bereich, kommt eigentlich nichts ausser Java in Frage. Für reine Desktop-Anwendungen würde ich allerdings immer C++ wählen.

Ectoplasma
2008-05-19, 11:50:44
Und BTW, momentan arbeite ich in einer Behörde, mehr muß ich ja wohl nicht sagen. ;)

:D

Die wahren Behörden sind die Krankenkassen ;)

Ich habe auch mal für die Polizei (für welche Stadt wird nicht verraten) an einem größeren Projekt gearbeitet und war erstaunt, wie gut die Prozesse im Gegensatz zu manch anderer nicht öffentlich rechtlichen Anstalt waren. Behörden sollte man nicht über einen Kamm scheren. Verrate doch mal, was das für eine Behörde ist.

PHuV
2008-05-19, 12:03:58
Für solche Dinge gibt es 4GL Sprachen.
Pffff, nenne mir mal eine 4GL-Sprache, die es wirklich bringt. In den 80ern war das großes Thema, aber was ist davon übrig geblieben. Im Prinzip ist die ganze UML-Modellierung mit anschließender Code-Generierung eigentlich in diesem Gebiet anzusiedeln.
:D
Ich habe auch mal für die Polizei (für welche Stadt wird nicht verraten) an einem größeren Projekt gearbeitet und war erstaunt, wie gut die Prozesse im Gegensatz zu manch anderer nicht öffentlich rechtlichen Anstalt waren. Behörden sollte man nicht über einen Kamm scheren.

Das stimmt.

Verrate doch mal, was das für eine Behörde ist.
Nürnberg, fürs gesamte Bundesgebiet.. :D

PHuV
2008-05-19, 12:04:50
Naja, wenn du meinst. Was mich beispielsweise ärgert ist daß man diese Programmierkonstrukte bei modernen Programmiersprachen nicht schon abgeschafft hat:P.

:confused: Das mußt Du mir jetzt genauer erklären.

Shink
2008-05-19, 12:20:24
Case-Anweisungen können in fremdem Code (oder wenn man selber nicht mehr weiß was man damit tun wollte...) zu viel Ungewissheit führen und auch toll mißbraucht werden. Wirklich wiederverwendbar sind sie auch nicht (wie realisier ich: "case-Anweisung x macht das was case-Anweisung y macht, nur dass..."? Durch Nacheinanderreihung?)

Kann man durch einfache Patterns ersetzen.

Gast
2008-05-19, 12:35:37
Für größere WEB-Anwendungen im Profi-Bereich, kommt eigentlich nichts ausser Java in Frage.

Natürlich kommen da noch andere Technologien in Frage. Und große Anwendungen, von denen du sprichst, sind sowieso nie monolithisch aufgebaut. Die bestehen oft aus unterschiedlichen Teilkomponenten, die von unterschiedlichen Verfahrensabteilungen betreut werden, und dann auch oft unterschiedliche Technologien einsätzen.

catamaran
2008-05-19, 12:40:28
Pffff, nenne mir mal eine 4GL-Sprache, die es wirklich bringt.

Eine 4GL ist immer nur für spezifische Einsatzbereiche gedacht. Eine universelle Verwendung wird man dafür nie finden. Kostenpflichtige Sprachen finden außerdem selten eine ordentliche Verbreitung.
Dank .Net und immer besserer IDEs schwindet der 4GL Vorteil im Bereich Anwendungsentwicklung.

Topic: Die Sprache D wird leider ein Schattendasein fristen und höchstens unter Hobbyisten eine gewisse Verbreitung finden.

Pinoccio
2008-05-19, 13:02:55
Also Matlab würde ich für mathematische Probleme nie links liegen lassen...im Gegenteil, ich verspreche dir, dass du damit um Faktor 10 schneller bist als mit jeder anderen Programmiersprache. Und wenn's kostenlos sein soll, dann eben Octave, ist auch nett, natürlich nicht so umfangreich wie Matlab, dafür für lau.Eine imho noch bessere Alternative ist SciLab (http://www.scilab.org/). Dank dem dahinterstehenden Know-How der INRIA (http://de.wikipedia.org/wiki/Institut_national_de_recherche_en_informatique_et_en_automatique) prophezeie ich der ganzen Sache eine erfolgreiche Zukunft.
Ob man allerdings 10-mal schneller ist, hängt ganz entscheidend vom Problem ab. Spätestens, wenn man die Code-Erstellungszeit einberechnet, ist alles möglich.Genauso war ich sehr erstaunt, daß Java so viel Funktionen und Mist drin hat, aber eine lummelige Funktion zum Ermitteln einer Tagesdifferenz zwischen 2 Tagen gibt es nicht, muß man wieder selbst schreiben.Lummelige Funktion? Ich glaube dank (mittelalterlicher) Kalenderumstellungen, moderner Schaltsekunden und unterschiedlichste Datums- bzw Zeitformate ist das kein ganz triviales Problem!
dayDifference("12. Oktober 1492, 13:35:11 EDT", "July 4, 1976, 9 A.M. 35 Minutes 11 Seconds AKST") ;-)

Und lass doch nicht immer deine vielen Jahre Berufserfahrung raushängen, das haben andere auch hier im Forum und lassen es nicht dauernd raus.Ich glaube, der allergrößte Teil hat sie ebend nicht, schreibt oftmals aber in einem Brustton der Überzeugung absoluten Nonsens. Wdragon und viele anderen dagegen schrieben oft Sachen, die ich für mich unzutreffend sind, aber die ich ebend aufgrund ihrer genannten (beruflichen) Praxis und meinem (eher theoretischem, wissenschaftlichen) Background einordnen kann.
Und nciht so wie manch D lobender Gast, den ich eher in eine PR-Argentur einordnen würde. ;-)

Aber zum Thema: Wozu D? Das die Sprache an sich einige Vorteile hat, mag sein. Aber spätestens, wenn du mal etwas brauchst, wo es in JAVA, php, C/C++/C#, Delphi oder anderen, weit verbreiteten Programmiersprachen schon fertige Bibliotheken gibt, wirst du dir eine nicht ganz so exotische Sprache wünschen.

mfg

Ectoplasma
2008-05-19, 13:29:32
Natürlich kommen da noch andere Technologien in Frage. Und große Anwendungen, von denen du sprichst, sind sowieso nie monolithisch aufgebaut. Die bestehen oft aus unterschiedlichen Teilkomponenten, die von unterschiedlichen Verfahrensabteilungen betreut werden, und dann auch oft unterschiedliche Technologien einsätzen.

Was für Teilkomponenten meinst du denn genau? Klar gibt es in größeren Projekten auch immer Komponenten aus anderen Projekten oder von Fremdherstellern. Das hat aber wenig mit der umzusetzenden Aufgabe zu tun. Geh doch mal in die größeren Firmen und frage danach, mit welcher Sprache dort Projekte im WEB-Umfeld erstellt werden. PHP etwa? Kein Stück sage ich dir. C# kommt schon häufiger vor. Bei D werden die meisten Firmen nicht mal wissen, dass es eine Programmiersprache ist.


Ich glaube, der allergrößte Teil hat sie ebend nicht, schreibt oftmals aber in einem Brustton der Überzeugung absoluten Nonsens. Wdragon und viele anderen dagegen schrieben oft Sachen, die ich für mich unzutreffend sind, aber die ich ebend aufgrund ihrer genannten (beruflichen) Praxis und meinem (eher theoretischem, wissenschaftlichen) Background einordnen kann.

Hilft es dir denn, wenn ich auch schon 15 Jahre Berufserfahrung habe und in vielen Branchen als IT-Berater tätig war? Z.B. Fernsehen/Radio, Bahn, Lufftfahrt, Umweltamt, Polizei, Krankenkassen, Versicherungen, Banken usw. Glaubt man mir jetzt dadurch mehr oder sollte man versuchen durch Inahlte zu überzeugen?

Bei wdragon hört man auch so, dass er schon viel Erfahrung hat.

PHuV
2008-05-19, 13:36:21
Hilft es dir denn, wenn ich auch schon 15 Jahre Berufserfahrung habe und in vielen Branchen als IT-Berater tätig war? Z.B. Fernsehen/Radio, Bahn, Lufftfahrt, Umweltamt, Polizei, Krankenkassen, Versicherungen, Banken usw. Glaubt man mir jetzt dadurch mehr oder sollte man versuchen durch Inahlte zu überzeugen?

Klar, mir schon, dann kann ich Deinen Background ganz anders einordnen. Ich erinnere nur mal an den Editor-Thread

http://www.forum-3dcenter.org/vbulletin/showthread.php?t=415460

behauptet wird, daß große Projekte mit vim eine Legende seinen. :rolleyes:
Von dem hier kann ich dann Deine Aussagen ganz anders bewerten als die von einem Berufseinsteiger oder einem Hobbyprogrammierer.

PHuV
2008-05-19, 13:41:10
Lummelige Funktion? Ich glaube dank (mittelalterlicher) Kalenderumstellungen, moderner Schaltsekunden und unterschiedlichste Datums- bzw Zeitformate ist das kein ganz triviales Problem!
dayDifference("12. Oktober 1492, 13:35:11 EDT", "July 4, 1976, 9 A.M. 35 Minutes 11 Seconds AKST") ;-)


So weit wollte ich damals nicht gehen, ich wollte nur wissen, wieviele Tage zwischen den 24.04 und dem 07.06 liegen. Und wie arbeiten die meisten Funktionen hier? Rechnen beiden Datumsfeld in Ticks seit dem 1.1.1970 zurück, bilden die Differenz, und dann wird aus der Differenz durch Ticks und Teilung wieder eine Zahl in Tagen. Nicht gerade effizient, gelle.

Gast
2008-05-19, 13:56:24
Was für Teilkomponenten meinst du denn genau? Klar gibt es in größeren Projekten auch immer Komponenten aus anderen Projekten oder von Fremdherstellern.

War vielleicht falsch ausgedrückt, ich meine eher Teilanwendungen. Ein Konzern z.B. unterliegt oft vielen Wandlungen, es gibt viele innerpolitische Strömungen. Oft gibt es sogar viele konzerninterne Anwendungen, die den selben Zweck erfüllen, nur von unterschiedlichen Verfahren sind. Es wird dann sehr oft versucht, alle Anwendungen über irgendwelche Schnittstellen zusammenzuflanschen.

Nur weil man für eine Oberfläche vielleicht PHP verwendet, heißt das doch nocht lange nicht, dass der ganze dahinterliegende Rest ebenfalls in PHP ist. Das wird garantiert nie so sein. Trotzdem heißt das nicht im Umkehrschluss, dass niemand PHP verwendet.

Letztendlich hängt auch vieles davon ab, auf welcher Plattform nur ein Projekt realisiert wird. Im Unixumfeld wirst du eher Java sehen, im Windowsumfeld eher VB/.NET. Das liegt auch daran, weil Windowsserver z.B. schon von Haus aus die Funktionen bieten, was z.B. in der Java Welt über sogenannte Java Applicationserver wie von BEA usw. realisiert wird.

In einem Konzern wirst du aber i.d.R. sowieso alles haben, da dort nach meinen Erfahrungen fast nur heterogene Landschaften existieren.

ScottManDeath
2008-05-19, 17:58:24
Case-Anweisungen können in fremdem Code (oder wenn man selber nicht mehr weiß was man damit tun wollte...) zu viel Ungewissheit führen und auch toll mißbraucht werden. Wirklich wiederverwendbar sind sie auch nicht (wie realisier ich: "case-Anweisung x macht das was case-Anweisung y macht, nur dass..."? Durch Nacheinanderreihung?)

Kann man durch einfache Patterns ersetzen.

In C# kann man einen switch auf strings machen. Case Blöcke fallen nicht durch, man muss goto next oder goto xxx machen um expliizit die Reihenfolge der Blöcke anzugeben.

Ich stimme aber zu, einen Grossteil der Fälle kann man switch durch besseres Design umgehen.

pajofego
2008-05-19, 20:24:04
Eine imho noch bessere Alternative ist SciLab (http://www.scilab.org/). Dank dem dahinterstehenden Know-How der INRIA (http://de.wikipedia.org/wiki/Institut_national_de_recherche_en_informatique_et_en_automatique) prophezeie ich der ganzen Sache eine erfolgreiche Zukunft.
Ob man allerdings 10-mal schneller ist, hängt ganz entscheidend vom Problem ab. Spätestens, wenn man die Code-Erstellungszeit einberechnet, ist alles möglich.
mfg

Das mit dem 10 mal schneller, bezog ich auf die reine Codeerstellung bzw. bis zu dem Zeitpunkt an dem ich produktive Ergebnisse erhalte. Scilab hatte ich schlichtweg nicht bedacht. Wir haben's installiert und unsere IT ist dabei die Skritpe umzuschreibe. Bis heute war ich zu faul mich in die Syntax von SciLab einzuarbeiten. Aber laut Feature Liste sieht das Werkzeug ganz vernünftig aus. Wenn der Kostendruck durch die imensen Lizenzgebühren von Matlab meinem Chefle zuviel werden, muss ich dann umsatteln... :biggrin: Aber bis heute bin ich ein absoluter Matlab Fan...da geht so ziemlich alles damit. Ist halt nur verdammt teuer und das mit einer absolut abgespeckten Bibliotheksfunktion.

Gruß
pajofego

Ectoplasma
2008-05-19, 22:49:10
Letztendlich hängt auch vieles davon ab, auf welcher Plattform nur ein Projekt realisiert wird. Im Unixumfeld wirst du eher Java sehen, im Windowsumfeld eher VB/.NET. Das liegt auch daran, weil Windowsserver z.B. schon von Haus aus die Funktionen bieten, was z.B. in der Java Welt über sogenannte Java Applicationserver wie von BEA usw. realisiert wird.


Versteh jetzt was du meinst.

Mal was zu den Begriffen "Unixumfeld" oder "Windowsumfeld". Die Begriffe kannst du nach meiner Erfahrung auch so definieren. WEB-Anwendungen und andere Server-Dienste = Unix; Entwicklungsumgebung, Office- und Browser-Anwendungen = Windows PCs. Zumindest ist so die Hauptgewichtung in den Branchen/Firmen anzutreffen, die ich oben genannt hatte. Ganz selten steht mal ein Unix PC als Arbeitsgerät bei jemanden auf dem Tisch.

Gerade die Application-Server im Java-Umfeld sind es, die verwendet werden. Du musst bedenken, das alles, aber auch wirklich alles kostenlos ist im Java-Umfeld. Und glaub mir, die Auftraggeber schauen sehr auf die Kosten. Klar BEA und IBM-App-Server kosten Geld, dafür haben sie aber auch einen besseren Support. Beim kostenlosen JBoss kannst du den Support ebenfalls kaufen. Und um Oracle oder andere Datenbankanbieter kommt man kaum herum.


In einem Konzern wirst du aber i.d.R. sowieso alles haben, da dort nach meinen Erfahrungen fast nur heterogene Landschaften existieren.

Kann man so nicht stehen lassen. In einigen Firmen ist es vielleicht noch so. Da kenne ich auch die ein oder andere. Allerdings ist man dort auch bemüht, die Rechnerlandschaft zu vereinheitlichen. Das hat vorallem Kostengründe. Früher oder später wird sich kein großer Konzern mehr eine heterogene Landschaften leisten können.

Gast
2008-05-20, 00:10:34
Mal was zu den Begriffen "Unixumfeld" oder "Windowsumfeld". Die Begriffe kannst du nach meiner Erfahrung auch so definieren. WEB-Anwendungen und andere Server-Dienste = Unix; Entwicklungsumgebung, Office- und Browser-Anwendungen = Windows PCs. Zumindest ist so die Hauptgewichtung in den Branchen/Firmen anzutreffen, die ich oben genannt hatte. Ganz selten steht mal ein Unix PC als Arbeitsgerät bei jemanden auf dem Tisch.


Nach meiner Erfahrung werden auch oft Windows Server mit Microsoft Technologien eingesetzt. Kommt halt drauf an. Da ich nicht im Unix Umfeld tätig bin, kann ich da nicht so viel drüber sagen.


Kann man so nicht stehen lassen. In einigen Firmen ist es vielleicht noch so. Da kenne ich auch die ein oder andere. Allerdings ist man dort auch bemüht, die Rechnerlandschaft zu vereinheitlichen. Das hat vorallem Kostengründe. Früher oder später wird sich kein großer Konzern mehr eine heterogene Landschaften leisten können.

Kann ich nicht bestätigen. Großkonzerne bestehen i.d.R. aus zig Gesellschaften. Es gibt hier keine klare Entscheidungsgewalt und jeder will seine Souveränität nicht aufgeben. Dazu kommt, dass sich unzählig viele Externe Unternehmen in Konzernen rumtummeln. Primär, weil sie billiger sind und weil man die Leute schneller rausbekommt als Festangestellte. Die wiederum haben ihr eigenes KnowHow bzw. bringen ihre Technologien mit ein, mehr oder weniger Offiziell. Klar werden i.d.R. einige Rahmenpunkte vorgegeben, was z.B. die Wahl der Plattform/Sprache betrifft. Daran hält sich doch eh niemand bzw. interessiert das so lange niemanden solange der Preis stimmt.
Eigentlich ist das auch der ganze Trend in der IT, nämlich Interoperabilität.

Shink
2008-05-20, 08:43:45
Gerade die Application-Server im Java-Umfeld sind es, die verwendet werden. Du musst bedenken, das alles, aber auch wirklich alles kostenlos ist im Java-Umfeld.
Nö, leider nicht. (Embedded-Benutzung von Java ist z.B. immer lizenzpflichtig, auch wenn man nicht die Sun-VM verwendet und auch wenn das die wenigsten wissen)


Eigentlich ist das auch der ganze Trend in der IT, nämlich Interoperabilität.
Ja; selbst reine M$-Serverumgebungen brauchen Interoperabilität. Wenn mit Vista 64 Bit für den Heimanwender viel nicht so läuft wie mit XP mag das in Ordnung gehen (oder auch nicht).
Wenn aber ein Großkonzern damit rechnen muss, dass vielleicht irgendwann seine Software nicht mehr läuft muss er dem vorbeugen. (Auch) deshalb gibt es .NET.

Pinoccio
2008-05-20, 16:22:07
Wenn der Kostendruck durch die imensen Lizenzgebühren von Matlab meinem Chefle zuviel werden, muss ich dann umsatteln... :biggrin: Aber bis heute bin ich ein absoluter Matlab Fan...da geht so ziemlich alles damit. Ist halt nur verdammt teuer und das mit einer absolut abgespeckten Bibliotheksfunktion.Jep, genau der Kostenpunkt hat mich zu SciLab gebracht.
In der Uni ist (zumindest in meinem Bereich) MatLab überall drauf und man kann es im Prinzip sich so auch per SSH nach Hause holen. Aber 1. muß dafür der/ein Rechner in der Uni laufen (ich zahl den Strom zwar nicht, aber ...) und 2. empfinde ich das als etwas umstandlich. Und als Student für Hausaufgaben etc. mag man die Lizensierungsgeschicht etwas lockerer sehen :wink:, aber spätestens wenn man doch mal was publiziert oder ebend gar sein Geld mit verdient, sollte man auf sowas achten.
IMHO auch einer der Gründe, warum sich im Forschungsbereich freie kostenlose Software (Linux, TeX, Scilab, JAVA etc) durchsetzen wird.

(sry 4 oT)

Nö, leider nicht. (Embedded-Benutzung von Java ist z.B. immer lizenzpflichtig, auch wenn man nicht die Sun-VM verwendet und auch wenn das die wenigsten wissen)Überaschend. Ich dachte, das wäre vorbei, nachdem Sun JAVA freigegeben hat. (http://www.sun.com/software/opensource/java/index.jsp)

mfg

Shink
2008-05-20, 20:15:41
Überaschend. Ich dachte, das wäre vorbei, nachdem Sun JAVA freigegeben hat. (http://www.sun.com/software/opensource/java/index.jsp)
Nein, (noch?) nicht.
siehe http://java.sun.com/javase/embedded/

Ectoplasma
2008-05-20, 23:56:54
Nö, leider nicht. (Embedded-Benutzung von Java ist z.B. immer lizenzpflichtig, auch wenn man nicht die Sun-VM verwendet und auch wenn das die wenigsten wissen)

Finde ich auch überraschen, aber ich muss zugeben, dass ich für Embedded-Benutzung noch gar nichts gemacht habe.