Welche Sprache für ehemaligen Turbo Pascal Fan

@BlackCrack: Habe selten Posts gelesen, die geballte Kompetenz mit einer philosopischen Ader vereinen. Und das auf eine solche beeindruckende Art, samt der guten Syntax/Lesbarkeit.

Ich selbst programmiere derzeit in JavaScript und muss dem widersprechen, dass JS-Code unleserlich sein muss. Es kommt ganz darauf an, wie die Code-Conventions aussehen. Legt man sich auf gewisse Verschachtelungstiefen fest, benutzt fleissig pseudo-asynchrone Callbacks anstatt nicht funktionierenden returns und schaut sich mal Deffereds an, dann kann JavaScript wirklich toll sein. Man muss jedoch bei wachsender Komplexität der Problemstellung einige Dinge mehr beachten, als einem vorher klar war (z.B. leere returns und man kann sich anfangs nicht erklären warum; AMD-Loader; etc.).

Die Sache, dass man dem User mit Java die JVM aufhalst, ist in meinen Augen kein gutes Argument. C# benötigt ebenso das .NET-Framework und ob ich nun etwas von Micro$oft oder von Oracle verwende, hm... ;)

Außerdem möchte ich noch erwähnen, dass es sicherlich sehr wenige Programmier bzw. Leute gibt, die Programmieraufgaben ohne jegliche C&P-Aktion von z.B. Stackoverflow gelöst haben. Man ist teilweise doch gottfroh, wenn man einen Codeschnippsel findet, der einem eine Problemstellung löst und anhand seines eigenen Codes auch noch erklärt, oder?
 
Wegen Java, ja, Java als solches und Node.js natürlich, aber wiederum so mächtig,
daß es eben wirklich nur für größere Sachen benutzt werden sollte und man schauen sollte
Erstens: .
Zweitens: Node.js eignet sich für viele Sachen, auch für kleinere. Es ist keine Frage der Komplexität oder des Umfangs an sich, sondern eine Frage des Anwendungsfalls. Für manche Sachen eignet sich Node.js, für andere weniger.

"Und zu unsauberem Code verleitet man sich nur selbst."
Quatsch, der mensch lässt sich leiten und wird verleitet, auf die Ausschau,
das man ihm vor Augen währen kann und ihn bekräftigt, dieses oder jenes zu tun..
darum setzt man sich im Grunde normalerweise Grenzen, die man selbst,
wenn man Willenstark genug ist, selbst einhält, auser, man wird verleitet und
führt hier noch zusätzliche Energie ein..
Das ist das selbe umformuliert: Wer unsauberen Code schreibt ist selbst schuld. Es geht nicht darum, abgelenkt zu werden, sondern sich ablenken zu lassen. Wobei Ablenkung das falsche Wort ist. Es ist vielmehr eine Frage der Einstellung: Möchte ich möglichst schnell mein Ziel erreichen, oder möchte ich wartbaren, sauberen, und wiederverwendbaren Code schreiben. All diese Entscheidungen liegen beim Entwickler.

Die Sache, dass man dem User mit Java die JVM aufhalst, ist in meinen Augen kein gutes Argument. C# benötigt ebenso das .NET-Framework und ob ich nun etwas von Micro$oft oder von Oracle verwende, hm... ;)
Das .Net-Framework ist etwas ganz anderes als die JVM. Die beiden Sachen kann man nicht direkt vergleichen.

Außerdem möchte ich noch erwähnen, dass es sicherlich sehr wenige Programmier bzw. Leute gibt, die Programmieraufgaben ohne jegliche C&P-Aktion von z.B. Stackoverflow gelöst haben. Man ist teilweise doch gottfroh, wenn man einen Codeschnippsel findet, der einem eine Problemstellung löst und anhand seines eigenen Codes auch noch erklärt, oder?
Es ist ein Unterschied ob man zu einem Problem ein Snippet im Netz findet, es versteht und dann verwendet, oder ob man sich mehr oder minder blind sein Programm zusammen copypastet.
 
misterunknown schrieb:
Das .Net-Framework ist etwas ganz anderes als die JVM. Die beiden Sachen kann man nicht direkt vergleichen.

Das .NET-Framework beinhaltet eine Laufzeitumgebung, Schnittstellen, Services und Bibliotheken. Das JDK beinhaltet ebenfalls die JRE (Laufzeitumgebung), JVM, Bibliotheken und diverse Werkzeuge. So einen riesen Unterschied sehe ich hier jetzt nicht. Möchte man nun tiefer in die Materie gehen, finden sich sicherlich größere Unterschiede. Jedoch würde ich schon sagen, dass man die zwei Dinge miteinander vergleichen kann.

misterunknown schrieb:
Es ist ein Unterschied ob man zu einem Problem ein Snippet im Netz findet, es versteht und dann verwendet, oder ob man sich mehr oder minder blind sein Programm zusammen copypastet.

Da gebe ich Dir völlig recht.

Übrigens finde ich die Vergleiche Java/JavaScript immer sehr amüsant. Man sollte bedenken, dass JavaScript nur aus marketingtechnischen Gründen das Wort "Java" im Namen trägt.

Edit: Ich meinte im Post davor schon das JDK und nicht nur die JVM, die für die Ausführung des Byte-Codes zuständig ist.
 
Jedoch würde ich schon sagen, dass man die zwei Dinge miteinander vergleichen kann.
Ja, so grob gesehen, kann man .Net und das JDK schon vergleichen. Nur, die JVM ist eben nur ein Teil davon. Ein Teil von dem ich froh bin, bei .Net darauf verzichten zu können^^

Man sollte bedenken, dass JavaScript nur aus marketingtechnischen Gründen das Wort "Java" im Namen trägt.
Warum genau "Java" in "JavaScript" steckt weiß ich gar nicht so genau, aber die harte Erziehung im SelfHTML-Forum hat mich den Unterschied eindringlich gelehrt :D
 
Irgendwie versteh ich nicht, warum hier überhaupt Javasript genannt wird. Mit Javascript kann man wundervolle Dinge vollbringen. Aber die gesamte Sprache ist eigentlich nur ekelerregend. Javascript wäre das Letzte, was ich jemandem als (Wieder)-Einstieg empfehlen würde.
 
Aber die gesamte Sprache ist eigentlich nur ekelerregend.
Schlechte Erfahrungen gemacht?

Ich empfehle ja jedem, sich mal durchzulesen und . Unabhängig, ob Javascript die Sprache der Wahl für Einsteiger ist oder nicht, sollte man sich mal einen Moment Zeit dafür genommen haben, und zwar über die Erfahrungen mit dem klassischen Javascript der späten 1990er und frühen 2000er hinaus.
 
Bzgl: "Javascript ist ja so gut weil es in allen Plattformen gleich rennt!": Pff. Ich hab damals NoVNC auf unsere Webseite einbinden "dürfen". Im Internet Explorer und Chrome hat das wunderbar funktioniert und ist auch immer brav gelaufen. Im Safari und Firefox hat es massiv rumgezickt. Der Grund ist einfach genannt: Nicht jeder Browser lädt gleichermaßen die Javascript Dateien. Als ich meine Start-Methode aufgerufen habe fehlten noch Teile des Sourcecodes was dazu geführt hat das ich erst umständlich mich absichern musste ob die notwendigen Dateien überhaupt schon geladen worden sind bevor ich das Ganze gestartet habe. Das war grauslich bis zum Umfallen.

Genauso == VS === -> Führt einfach zu massive Fehler. Wenn DOM dann auch noch reinspuckt in die Suppe ist es auch widerlich - ein PC welches eine SmartBoard Software verwendet wurde dann aufgrund der Programmierlogik als Touchscreen erkannt und führte dazu, das die Maus nicht richtig bewegbar war.
 
Uncleben, danke.. :) *g* Alte Schule ;)

" Problem ein Snippet "

finden und einbauen.. ach, ich dachte, man sollte div. Sachen anpassen und dann einbauen *g*

Irgendwie versteh ich nicht, warum hier überhaupt Javasript genannt wird. Mit Javascript kann man wundervolle Dinge vollbringen. Aber die gesamte Sprache ist eigentlich nur ekelerregend. Javascript wäre das Letzte, was ich jemandem als (Wieder)-Einstieg empfehlen würde.

lol... *bg*


wegen Java, man sollte auch überlegen, was man mit welcher Programmiersprache machen
möchte Nur Programme schreiben und Maschinen bewegen oder sich nur im
web aufhalten und über Netzwerk div. Dinge fabrizieren.. Wie war das, Objektorientiert arbeiten ?

Java für ne .. nein, ich meine jetzt nicht Javascript.. Für eine Steuerconsole zu nehmen
ist nicht gerade das optimaleste , dagegen ist C für x86 ganz okey.. denke ich doch mal...

liebe Grüße
Blacky


hach, waren sie Zeiten noch schön, wo es leute gab, die binär schreiben konnten *g*
 
Das ist eine subjektive Meinung.
Na, wir suchen hier die beste[tm] Sprache - da kann man nicht so objektiv sein wie bei der Frage nach dem besten Fußballverein - weil es eben keine BVB-Sprache gibt.

Und zu unsauberem Code verleitet man sich nur selbst.
Klar - aber in anderen Sprachen haut dir sofort der Lexer/Compiler/Linker auf die Finger, wenns nicht schon die IDE macht; Toleranz ist genau das, was man an der Stelle (ich will lernen) nicht gebrauchen kann. Da will man auch ein "treat warnings as errors" bzw. ein -Wall -Wextra und am besten ein -Weven-harder. Im Produktivbetrieb bin ich zumeist froh über eine fehlertolerante Laufzeitumgebung - aber will ich etwas lernen, muss ich zuerst einmal meine Fehler sehen.

Das .NET-Framework beinhaltet eine Laufzeitumgebung, Schnittstellen, Services und Bibliotheken. Das JDK beinhaltet ebenfalls die JRE (Laufzeitumgebung), JVM, Bibliotheken und diverse Werkzeuge. So einen riesen Unterschied sehe ich hier jetzt nicht.
Nur damits hier, in einem Thread der von Anfängern ggf. gelesen wird, auch nochmal explizit steht (und ich bin mir sicher, dass ist nur in der Hitze des Gefechts vergessen worden zu erwähnen):
Die eigentliche Gemeinsamkeit ist die, dass beide Laufzeitumgebungen vorkompilierten Bytecode interpretieren (bei MS heisst der IML) - eine .NET-exe/dll kann man prinzipiell sogar mit nem Texteditor öffnen und man findet Schleifenkörper, Funktionen usw.

Bzgl: "Javascript ist ja so gut weil es in allen Plattformen gleich rennt!": Pff. Ich hab damals NoVNC auf unsere Webseite einbinden "dürfen". Im Internet Explorer und Chrome hat das wunderbar funktioniert und ist auch immer brav gelaufen. Im Safari und Firefox hat es massiv rumgezickt.
Ach, das sind doch noch harmlose Randerscheinungen - toller[tm] sind da Effekte wie . Ja, das liegt primär am IE, aber das sind reale Probleme, vor denen ein Anfänger steht. Das erklär dann mal ;)
Gerade wenn man lernen will, braucht man -meiner Meinung nach- ein deterministisches Verhalten.
 
Javascript hat ein geniales Konzept der klassenlosen Objektorientiertheit
Ja und JavaScript hat nur ungefähr 10Mio Nachteile. Etwa, das an vielen Stellen einfach undefinierte und vollkommen irrsinnige Verhalten.
Etwa was passiert, wenn du Arrays und Objekte zusammenaddierst.

auch kann man damit ziemlich einfach .
Und das soll ein Vorteil sein? Windows Store Apps kannst du auch mit anderen Programmiersprachen entwickeln und ich sehe nicht unbedingt einen großen Markt für Windows Store Apps. Das modernUI, auf das die Apps zur Zeit noch beschränkt sind, wurde von den meisten Nutzern ja aufgenommen wie ein Kanister radioaktiver Sondermüll. (Informationen, wie MS mit dem modernUI in Windows 9 verfahren möchte, sind ja bereits geleakt.)

Um sich weiterzuentwickeln. Formelrechner gibt es wie Sand am Meer. Wenn man sich selbst einen programmiert will man lernen. PASCAL ist alt und nicht mehr zeitgemäß. Warum sich also nicht in einer anderen, moderneren Sprache versuchen?
Weißt du eigentlich, wie alt JavaScript ist und dass JavaScript eine 'über Nacht' entwickelte Sprache ist?
 
Ja und JavaScript hat nur ungefähr 10Mio Nachteile. Etwa, das an vielen Stellen einfach undefinierte und vollkommen irrsinnige Verhalten.
Etwa was passiert, wenn du Arrays und Objekte zusammenaddierst.
Das ist sinnlos. Klar kommt da quatsch raus, weil es nicht sinnvoll ist. In anderen Programmiersprachen gibts einen Fehler, in Javascript kann man das tun, wird aber nicht damit arbeiten können. Gesunden Menschenverstand sollte man schon an den Tag legen, wenn man eine Programmiersprache lernt.

Und das soll ein Vorteil sein? Windows Store Apps kannst du auch mit anderen Programmiersprachen entwickeln und ich sehe nicht unbedingt einen großen Markt für Windows Store Apps.
Oha, du siehst keinen Markt? Nun, andere sehen einen. Und erstens ist es nicht Ziel eines Programmiereinsteigers Programme für einen breiten Markt zu schreiben und zweitens war das nur ein Teil der Aussage: Für viele Browser kann man Plugins mit Javascript schreiben, außerdem GTK, Qt, etc.
Das ist ein Vorteil.

Weißt du eigentlich, wie alt JavaScript ist und dass JavaScript eine 'über Nacht' entwickelte Sprache ist?
Ja, ich bin mir der Geschichte von Javascript bewusst. Sollte das dein Argument gegen Javascript sein, scheinst du 20 Jahre Entwicklung verpasst zu haben.
Edit: Dieses Zitat war auch ganz offensichtlich nicht auf Javascript bezogen. Ich habe Javascript auch nicht als beste Einsteigersprache verkaufen, sondern nur dem JS-Bashing entgegenwirken wollen. Mein ursprünglicher Vorschlag war Python.
 
Zuletzt bearbeitet:
Das ist sinnlos. Klar kommt da quatsch raus, weil es nicht sinnvoll ist. In anderen Programmiersprachen gibts einen Fehler, in Javascript kann man das tun, wird aber nicht damit arbeiten können. Gesunden Menschenverstand sollte man schon an den Tag legen, wenn man eine Programmiersprache lernt.
Genau deswegen bin ich letztendlich ein gewaltiger Fan von Compiler und statischem Typsystem. Programmierer bauen Mist, deswegen ist jede Absicherung *vor* der Laufzeit Gold wert. Der gesunde Menschenverstand hilft da selten genug weiter, und als Anfänger hat man den eh noch nicht entwickelt.

Um mich auch mal zu positionieren: Python für schnelles Scripting. Das so in Windows einzubinden, dass es nahtlos Batch ersetzen kann, war ein echter Augenöffner. Für ernsthafte, größere Projekte: C++. Die Sprache ist gerade in den letzten paar Jahren *richtig* gut geworden.
 
Warum nicht Java bzw. C#, Brother John? C++11 ist gut geworden, keine Frage, aber deshalb immer C++?

Und ja, statisches Typsystem rettet einem oft den Hintern. Ein VBScript erweitert und mich gewundert warum ich ständig einen Fehler reiß obwohl die Logik OK ist. Bis ich drauf gekommen bin das ich auf eine nicht definierte Variable zugreife...
 
@Larius
Warum kein Java oder C#, gute Frage. Grundsätzlich bin ich kein allzugroßer Freund von managed Sprachen mit dicker Runtime. .NET tut sich etwas leichter, weil es inzwischen in Windows integriert ist. Java fühlt sich aus Anwendersicht deutlich mehr wie ein träger Fremdkörper an.

Klar, richtig rational ist das nicht. Wirklich objektiv im Detail beurteilen kann ich weder Java noch C#. Ich bin einfach irgendwann bei C++ hängen geblieben und habe mich dort wohlgefühlt.

Was dazu viel beigetragen hat, ist das C++-Ressourcenmanagement über Scope, Konstruktoren und Destruktoren. Das ist vom Prinzip her simpel, leistungsfähig und deterministisch. Bleibt mir doch mit euren Garbage Collectors vom Leib! ;) Ich will einen Destruktor, von dem ich weiß, dass er läuft und wann er läuft.

Aber ich will ihn um himmelswillen nicht selber schreiben. Das ist ein absolutes K.O.-Kriterium. Eine Sprache, die mich zum manuellen Res.-Mgt. zwingt, schau ich nicht zweimal an. Das Grauen, alles manuell machen zu müssen, erlebe ich jeden Tag in der Arbeit mit Delphi. Es macht das Entwickeln langsam wegen der ständigen Boilerplate-Orgien und fehleranfällig, weil wir schon am eigenen Kinderzimmer alle gelernt haben, dass Herräumen wahnsinnig leicht ist, aber sauber Aufräumen praktisch unmöglich.
 
Ich persönliche hatte schon Kontakt zu BASIC, Turbo Pascal, C++, MIPS-Assembler, Java, Javascript, Lua und mag Java immer noch am Meisten. Die Sache mit dem GC ist eigentlich nur dahingehend problematisch dass Java dadurch nicht für Echtzeitsysteme verwendbar ist, ansonsten bin ich sehr dankbar dafür dass die JVM automatisch hinter mir aufräumt und ich sehe darin auch keinen Nachteil.
Ich finde es übrigens sehr interessant dass hier sehr viel aufeinander herumgehackt wird anstatt lieber die Vorteile der Sprachen zu zeigen.

MfG
Mr. J
 
Um mich auch mal zu positionieren: Python für schnelles Scripting. Das so in Windows einzubinden, dass es nahtlos Batch ersetzen kann, war ein echter Augenöffner.
Same here. Nachdem ich mich einigermaßen erfolglos an Powershell versucht habe (nicht, dass die Powershell schlecht ist, die Zeit war einfach nicht da) ist bei mir unter Windows wie Linux Python die Skriptsprache der Wahl.

Und ja, statisches Typsystem rettet einem oft den Hintern. Ein VBScript erweitert und mich gewundert warum ich ständig einen Fehler reiß obwohl die Logik OK ist. Bis ich drauf gekommen bin das ich auf eine nicht definierte Variable zugreife...
Bei größeren Softwareprojekten ist das sicherlich Pflicht. Bei sowas würde ich auch zu C# bzw. C++ greifen. Für Einsteiger ist C# IMHO einfacher.

Das ist vom Prinzip her simpel, leistungsfähig und deterministisch. Bleibt mir doch mit euren Garbage Collectors vom Leib! ;) Ich will einen Destruktor, von dem ich weiß, dass er läuft und wann er läuft.
Einem Einsteiger musst du erst erklären, was ein Destruktor ist, was durchaus eine Erklärungsorgie nach sich ziehen kann^^ Ein vernünftiger GC kann dazu beitragen nicht alles auf einmal erklären zu müssen, was der Motivation des Lernenden durchaus zuträglich sein kann.
 
Einem Anfänger hast du relativ schnell erklärt was ein Destruktor ist. Dazu kannst du bsp. eine lokale Variable innerhalb eines Scopes verwenden. Und nur weil es Destruktor heisst heisst es noch lange nicht, das man zuerst jemanden OOP erklären muss bis man versteht, was der Destruktor überhaupt tut ;)

Ich bin noch immer der Ansicht: Das richtige Tool für die passende Gelegenheit. Sicher kann ich jetzt hergehen und jemanden Javascript empfehlen und ihn mit Libs zumüllen das ihm die Ohren rauchen wenn er den gleichen Erfolg auch mit etwas anderen hat. Es muss nicht unbedingt State of the Art und Plattformübergreifend sein wenn das gar nicht mal die Ziele sind, die jemand dahinter verfolgt. Wer weiß, vl meint der Freund von TE in ca nem halben bis dreiviertel Jahr "Hm, die Sprache macht mich nicht mehr glücklich, aber ich schnapp immer wieder Java in Gesprächen auf - ich lerne das!". Dann können sich alle aufn Kopf stellen weil er dann doch wieder mit der ach so bösen JRE zu tun hat :P
 
  • Thread Starter Thread Starter
  • #60
Hab nochmal mit ihm gesprochen. Lazarus gefällt ihm scheinbar :)

Er weiss selber nicht genau was er machen will (Choemiker halt)
 
Zurück
Oben