PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Was spricht eigentlich immer gegen Basic?



Ynnus
05.12.2003, 05:15
Hallöchen,

Das hier wollte ich immer schonmal wissen^^. Also, man hört aus 1000en von Ecken, "nimm nicht Basic" oder "Basic ist Mist" oder was auch immer. Dann wird meist auf eine andere Sprache wie Delphi oder C++ hingewiesen.
Jetzt mal meine Frage dazu: Was genau kritisiert ihr an dieser Sprache? (von Ineluki weiß ich, dass er meist nur negativ über Basic redet)

Damit meine ich jetzt allerdings nicht qBasic oder gwBasic, sondern eher die moderneren Versionen wie Blitzbasic, Visual Basic, Dark Basic oder Purebasic (letzteres ist mein Favourit, leider sehr unbekannt).

Gibts denn ganz objektive Fakten die gegen Basic sprechen? Oder vielleicht Dinge die dafür sprechen? Eines wäre sicher, dass der Syntax recht schnell und einfach zu erlernen ist, und das der Preis recht günstig ist (bei den mir bekannten Basicformen).
Schreibt mal bitte eure Erfahrungen oder Meiunungen zum Thema "Basic, was ist der Nachteil/ Vorteil daran", hier rein. Danke. :)

Zerxes
05.12.2003, 05:31
Ich benutze auch Basic, genauer gesagt Visual Basic
und ich muss sagen dass ich eigentlich begeistert bin.
Selbst bei riesigen Code-Mengen behalte ich den vollen Überblick, selbst wenn ich in C++ den überblick längst verloren hätte.
Das VB etwas langsamer ist als andere Sprachen wie C++ stimmt nur annähernd, es kommt ganz darauf an welche Funktionen man benutzt.
Gut finde ich an Vb unter anderem dass man seiner Programme beim testen anhalten, und den Code ändern kann.

Greetz,
Zerxes

csg
05.12.2003, 05:34
Nun also, ich habe mich vor langer zeit auf die Suche gemacht nach iner sprache die mich ansricht, und da traf ich Deutsch... ähm mein ^^'''
Also, ich kenne all diese Sprachen und habe ie meiste nauch angetestet (ach ja, der erste block in dark basic^^) und auch hab ich früher VIEL mit vb gearbeitet aber man hat mir immer wieder gesagt das halt diese ganzen baic anwendungen nicht sehr schnell sind, WAS denn nun wirklich daran wahr ist weiß ich selber auch nicht klar war nur als ich mit DX anfangen wollte (w ich immernoch nicht bin-.-)
, hatte ich keine lust das auf der VB oberfläche zu machen also bin ich einfach auf c++ umgestiegen.
Vie lErfolg hatte ich bis jetzt noch nicht, was ich wirklich kan sind die Grundkentnisse...

Naja das von mir dazu ich habe persönlich gar nix gegen diese anderen Sprachen...

Ps: Sunny, hast du denn schon was sehenswertes geproggt? ^_~

Zerxes
05.12.2003, 05:42
Achja, hab vrgessen zu erwähnen dass sich VB sehr gut für die Server-Programmierung eignet, zuerst habe ich angefangen einen Chat-Server zu programmieren, der schon ganz flott und Fehlerfrei war.
Danach programmierte ich einen Server für ein Spiel (noch ohne Database), der auch bei fast 200 Usern fehlerfrei und schnell funktionierte wie ein vergleichbarer Server in C++.

Ineluki
05.12.2003, 05:51
Basic hat drei ganz grosse Nachteile

A) es ist eine Interpretersprache .. und damit wohl so das langsamste, was man sich vorstellen kann (ausser Java ;) ) Zwar kann man in neueren Basicdialekten auch in Exen compilieren, aber diese sind dann meist nicht so optimiert, wie beispielsweise C++ Programme, da vorher kein so kompakter, maschienennaher code vorlag

B) Es hat in seiner Grundversion weder Proceduralen Aufbau, noch Objecteigenschaften ... da siese Konzepte erst in neueren Sprachen zum Tragen kommen .. es gibt zwar neuere Versionen, die auch solche Konzepte uebernommen haben, aber diese wurden foermlich in das alte starre Konzept hineingepresst und passen nicht wirklich in die Basic-Syntax, was uns zu Punkt C bringt

C) Basic hat eine Syntax, die zwar fuer den Anfaenger leicht lernbar ist, jedoch sehr unflexiebel ist, schlecht wartbar und unstrukturiert. Oft haben Basicumsteiger die "umstaendliche" Syntax in anderen Sprachen bemaengelt, z.B. ein ; nach jedem Befehl oder die Klammern um Parameter von Funktionen, oder das Explizite Definieren von Variablen (Worum neue Basic-Varianten auch nicht mehr drum rum kommen) ... aber gerade diese Strukturierungen machen den Code erst wirklich flexiebel und nebenbei auch noch besser lesbar und verstaendlicher

Basic hat keinerlei Vorteile, die andere Sprachen nicht auch haetten, zudem sind die anderen Sprachen (wie C++ / Delphi) teilweise bis um den Faktor 1000 schneller, uebersichtlicher, flexiebler und hardwarenaeher. Fortschrittliche Konzepte, die nach Basic entwickelt wurde, wie Objectorientierte Programmierung oder COM Schnittstellen, sind entweder nicht in Basic enthalten, oder marginal hineingepresst wurden, ohne das verstaubte Basic-konzept zu ueberholen.

Was den Preis angeht, so ist C++ nahezu unschlagbar, da es sehr gute Kostenlose Entwicklungsumgebungen und Compiler (uebersetzer) gibt.

Zudem muessen wegen dem Interpreter immer zusatzdateien bei Basic mitgeschleift werden (die bekannte Run-time-library), was bei den exe-erzeugenden Compilersprachen nicht der Fall ist.

Basic erlaubt nicht mal wirklich modulare Programmierung (was fuer Teamprojekte aeusserst wichtig ist) .

Es wurde im Post zuvor die Debugbarkeit abgesprochen ... da stehen die compilersprachen den Interpretern in nichts nach ... sei es Haltepunkte setzen und das Programm bis dahin ablaufen zu lassen, sei es schrittweises oder procedurales Ausfuehren von Code, oder gar das Ansehen und Aendern von Variablen zur Laufzeit ... alles bieten die Compilersprachen auch, wenn nicht sogar komfortabler ...

Das einzige , was die Compiler nciht koennen, dass man den Code waehrend des Ausfuehrens aendern kann, da der Code ja nicht interpretiert wird. Da dies aber auch bei Basic oftmals nicht funktioniert, wenn groessere Bloecke geaendert werden, ist dies kein wirklicher verlust.

Zusammenfassend ist zu sagen, warum sollte man eine langsame, veraltete Sprache lernen, in die mutwillig dem Ursprung wiedersprechende Konzepte hineingeschustert wurden, wenn man neuere, modernere Sprachen lernen kann, die genau so einfach zu handhaben sind, mehr Flexibilitaet und Uebersicht bieten und so entwickelt wurden, dass sie den Neuerungen konzeptionell angepasst sind und nicht, wie in basic die Konzepte zu gunsten der Sprache verbogen wurden.

Gruss Ineluki

Zerxes
05.12.2003, 06:02
Original geschrieben von Ineluki
[B]Basic hat drei ganz grosse Nachteile

A) es ist eine Interpretersprache .. und damit wohl so das langsamste, was man sich vorstellen kann (ausser Java ;) )


Das stimmt nicht, unter Visual Basic hat man die möglichkleit in p-code (interpreter-code) oder den native-code (normaler assemblercode der direkt ausgeführt werden kann) zu compilieren!

Ineluki
05.12.2003, 06:07
Original geschrieben von Zerxes
Das stimmt nicht, unter Visual Basic hat man die möglichkleit in p-code (interpreter-code) oder den native-code (normaler assemblercode der direkt ausgeführt werden kann) zu compilieren!
Hm ... hatte ich doch glatt vergessen zu erwaehnen .. na ja .. habs reineditiert ^^

Ynnus
05.12.2003, 06:11
Ps: Sunny, hast du denn schon was sehenswertes geproggt? ^_~

Mehr oder weniger^^. Ich mach mir gerade einen Map-Editor für ein kleines 2D Spielchen...


So, zu den externen libraries ist zu sagen, das hab ich über VB auch schon gehört, aber in PureBasic ist dies anders. Dort benötigt man keine externen Libraries mehr uns die Programme sind extrem klein.


Es hat in seiner Grundversion weder Proceduralen Aufbau,[...]
Was genau meinst du damit? Ist das in irgend einem Sinne auf Proceduren Bezogen, oder wie läuft das in Delphi anders ab? Meinst du damit, dass Basic immer so ein großer langer Code am Stück in der Hauptschleife ist? (Du könntest dich vielleicht für die etwas Unwissenden (gehöre wohl auch noch dazu) etwas einfacher ausdrücken^^)


Dann hab ich gleich noch eine Frage: Was bedeutet eigentlich "Integrierter Inline Assembler"?

Ineluki
05.12.2003, 06:24
in basic werden in der regel Unterprogramme geschrieben ..

es gibt ein grosses hauptprogramm, dadrin wird mit gogo lustig umhergesprungen und man kann unterprogramme mit gosub ansteuern

in delphi und c++ ist es anders .. dort wird alles in unterprogramme ausgelagert, aber nicht ueber ein Gosub sondern ueber proceduren und funktionen, denen man parameter uebergeben kann und die werte zurueckliefern koennen

auch ist das goto in den anden sprachen als programmiermittel verpoent, da es als unsauberer programmierstil angesehen wird (was es auch ist) da es wesentlich bessere und logischere schleifenstrukturen gibt, die ein goto absolut ueberfluessig machen

Delphi und C++ sind somit wesentlich besser dafuer geeignet, grosse Aufgaben in kleinere unteraufgaben zu unterteilen, welche wesentlich einfacher programmiert sind ..

diese teilaufgaben koennen sogar zu bibliotheken zusammengebunden werden und so in verschiedensten programmen wiederverwendet werden

solche Konzepte waren im urspruenglichen Basic nicht enthalten, da Basic auf der Linearen Programmierung aufbaut und nicht Procedural bzw Funktional angelegt ist

Zwar haben auch hier wieder einige Basicdialekte solche konzepte uebernommen, aber dann unterscheiden sie sich kaum noch von anderen hoeheren Programmiersprachen, ausser dass sie (trotz compiler) langsamer und unuebersichtlicher sind, als ihre kollegen, und somit die wahl von basik auch keine Vorteile bringt

Da Basic keinerlei Vorteile gegenueber anderen Sprachen bringt, spricht also immer noch nichts fuer Basic, auch wenn man versucht, Basic den anderen Sprachen anzugleichen, und so die Nachteile zu minnimieren .... Warum sollte ich eine schlechte Kopie benutzen, wenn ich das Original verwenden kann.

Im allgemeinen ist allerdings der Trend zu verzeichnen, dass die hoeheren Programmiersprachen immer aehnlicher und leistungsgleicher werden. Pascal bzw Delphi wurde frueher auch immer nachgesagt, dass es viel langsamer als C++ sei, aber mittlerweile stimmt das nicht mehr und es ist praktisch gleichschnell (ausser im vergleich zu hoechstoptimiertem C++, wo die compiler schon mal Tagelang ueber einem Programm brueten, was Delphi innerhalb von Sekunden compiliert ... aber in sachen schnelligkeit kommt sowieso nix ueber handoptimierten ASM-Code) ... wie dem auch sei, es wuerde mich freuen, wenn demnaechst die fuehrenden Hochsprachen wie C++ und Delphi sich weiter annaehren wuerden und ihre jeweils positiven Aspekte unter auslassung der negativen teile miteinander verschmelzen

Welche Programmiersprache man heute verwendet haengt also nicht mehr primaer vom Problem an, sondern von den Vorlieben des Programmierers .. Theoretisch kann man mit jeder programmiersprache alles machen (solange sie nicht sich selber einschraenkt, wie z.B. java ;) )

Gruss Ineluki

[Edit] Ein integrierter Inline Assembler bedeutet, dass du Maschienencodeaequivalente (also ASM-Code) in deinen Quelltext einbauen kannst, der dann direkt so uebernommen wird (als Maschienencode uebersetzt natuerlich), als ob der compiler ihn erzeugt haette ... damit lassen sich z.b. sehr hatdwarenahe aufgaben erledigen oder zeitkritische funktionen per hand auf letzte optimieren

Beispiel:

Add eax,0x56 ; Addiert 56 hexadezimal zum EAX-Register des Prozessors
MOV [EAX],EBX ; Kopiert den Inhalt des EBX-Registers in die Speicherzelle, deren Addresse in EAX steht

Also wie man sieht... ist das ganze recht kompliziert und nix fuer anfaenger

Zerxes
05.12.2003, 06:49
Ähem, in VB wird normalerweise auch nicht herumgesprungen, da goto eigentlich nie verwenden werden muss, denn in VB lassen sich auch prozeduren (Sub´s) und Funktionen (Functions) benutzen.
Beide können Parameter in Form von Werten oder Variablen übernehmen:

Public Sub Textbox1_Click(Parameter as string)
'Hier ist dann der auszuführende Code

End Sub

Genauso läuft das mit den Funktionen:

Public Function TestFunction(parameter as String)
'MessageBox mit dem Inhalt des Paramteres wird angezeigt
MsgBox Paramter

End Function

Die prozedur lässt sich dann so nutzen (geht auch ohne call-befehl):

call TestFunction(432)


Wegen Objektorientiert, du vergleichst alle Basic-Arten mit basic und qbasic, aber in VB gibt es sehr komfortable obejektorientiert programmierung:

z.b. Wenn man den Inhalt, oder die Sichtbarkeit einer Textbox ändern will dann:

Textbox.text = "Hallo1"
Textbox.visible = 0

Ynnus
05.12.2003, 06:57
Das mit den proceduren stimmt so nicht ganz. In Purebasic ist alles ebenfalls seeeehr in Proceduren unterteilt, ich für meinen Teil habe keinen wirklichen Code mehr in der Hauptschleife, sondern rufe nur noch Proceduren auf.

Und diese können genauso Werte zurückgeben, und Parameter enthalten, somit lassen sich selbst eigene Befehle schreiben. Als Beispiel:


;
; by Danilo, 21.07.2003 - german forum
;
; resize ScrollArea in ScrollAreaGadget at runtime, PB 3.70.
;


Procedure ResizeScrollArea(gadget,ScrollAreaWidth,ScrollAreaHeight)
Structure PB_ScrollAreaData
ScrollAreaChild.l;
ScrollStep.l;
EndStructure
hScrollArea = GadgetID(gadget)
*SAGdata.PB_ScrollAreaData = GetWindowLong_(hScrollArea,#GWL_USERDATA)
If *SAGdata
GetClientRect_(hScrollArea,client.RECT)
MoveWindow_(*SAGdata\ScrollAreaChild,0,0,ScrollAreaWidth,ScrollAreaHeight,#TRUE)
SI.SCROLLINFO
SI\cbSize = SizeOf(SCROLLINFO);
SI\fMask = #SIF_PAGE|#SIF_POS|#SIF_RANGE;
SI\nMin = 0;
SI\nMax = ScrollAreaHeight-1;
SI\nPage = client\bottom;
SI\nPos = 0;
SetScrollInfo_(hScrollArea,#SB_VERT,@SI,#TRUE);
SI\nMax = ScrollAreaWidth-1;
SI\nPage = client\right;
SetScrollInfo_(hScrollArea,#SB_HORZ,@SI,#TRUE);
EndIf
EndProcedure



Mehr als das hier:
ResizeScrollArea(1,510,510) muss nicht aufgerufen werden, um die neue Größe für den Scrollbereich #1 auf die beiden Parameter zu ändern. Somit kann man die Procedure in einer included Datei aufbewahren, dadurch wird alles sehr übersichtlich, und mehr als diese kleine Zeile, wie ein interner Befehl, wird auch nicht benötigt.

Du siehst also, man kann sich damit durchaus selbst "Befehle" erstellen, mit beliebig vielen Parametern oder daraus Werte zurückliefern. ;)

Ineluki
05.12.2003, 06:59
jup .. das bestreite ich auch ... aber viele Basic-dialekte sind mittlerweile mehr alles andere, als basic .. und das eigentlich basickonzept sah soetwas nicht vor ....

Was nietzt es mir, wenn ich aus allen anderen sprachen irgendwo was klaue und irgendwie in meine sprache reinwuerge, nur damit ich am ende sagen kann, es heisst basic ?

Basic macht die OOP und die Funktionen auch nicht einfacher, als andere Sprachen ...

Ich dreh den Spiess mal um und frage die Basicler ...

Was hat Basic fuer unschlagbare Vorteile gegenueber anderen Programmiersprachen, dass ich auf Basic umsteigen sollte ?

Ynnus
05.12.2003, 07:39
Umsteigen auf Basic sicher nicht, aber wer damit anfängt, der muss sich ständig anhören "Basic ist Mist nimm was anderes". Wobei ich Basic bislang für eine gute Einstiegsmöglichkeit halte.
Das Basic heutzutage ist eben etwas anderes als das qbasic von damals, und weiter vortgeschritte. Und selbst wenn es von allem ein Stückchen hat, somit einen mix von mehreren Sachen, dann sind es wenigstens die nützlichen und gängigen Sachen alle vereint in einer Sprache^^

Na ja, und selbst wenn C++ kostenlos ist (bzw der compiler), so ist der EInstieg mit C++ wohl wesentlich schwerer als mit Basic mal schnell etwas zu schreiben.

Und darin sehe ich den Vorteil, dass man Basic schnell zum Einstieg nutzen kann, damit loslegen kann, und sich dadurch die ersten Erfahrungen in Sachen Programmiersprachen aneignen kann.

Ineluki
05.12.2003, 07:48
Als einstiegssprache habe ich ja auch nichts dagegen (aber auch nicht viel dafuer) .... nur es wird ja wohl auch seine gruende haben, dass viele nach ein oder 2 jahren Basic auf andere programmiersprachen umsteigen und diese dann fuer alles nutzen ... (und oftmals ihre eigene Basiczeit belaecheln und anderen den tipp geben, etwas anderes zu machen) ... vielleicht liegt es ja dadran, dass basic fuer fortgeschrittene wie meinereins einfach nicht die moeglichkeiten bietet, die ich brauche ....

die groessten wetterer gegen basic (dazu zaehle ich mich auch) haben meist selber mit basic angefangen

Zerxes
05.12.2003, 08:16
Original geschrieben von Ineluki
Als einstiegssprache habe ich ja auch nichts dagegen (aber auch nicht viel dafuer) .... nur es wird ja wohl auch seine gruende haben, dass viele nach ein oder 2 jahren Basic auf andere programmiersprachen umsteigen und diese dann fuer alles nutzen ... (und oftmals ihre eigene Basiczeit belaecheln und anderen den tipp geben, etwas anderes zu machen) ... vielleicht liegt es ja dadran, dass basic fuer fortgeschrittene wie meinereins einfach nicht die moeglichkeiten bietet, die ich brauche ....

die groessten wetterer gegen basic (dazu zaehle ich mich auch) haben meist selber mit basic angefangen

Ok, dann sag mal etwas was du in VB nicht verwirklichen kannst, aber in anderen Sprachen schon

GSandSDS
05.12.2003, 16:59
Ich erinnere mich noch an eine Fernsehendung vom Bayrischen Rundfunk. Dort wurden verschiedene Versionen des gleichen Programms dargestellt. Sprich, das Programm sah immer genauso aus und tat auch das gleiche. Die Unterschiede waren, dass ein Programm in Basic, eines in Pascal, eines in C++ und eines in Assembler geschrieben. Nur Delphie war glaube ich nicht mit dabei. Während Assembler das Schnellste war, war Basic mit abstand das Langsamste. Dann hatte man versucht das zu bewerten und kam zu der Meinung, dass Basic die ideale Einsteigersprache sei, um mal zu sehen wie sowas abläuft. Und auch für einfache Programme sei es ideal, da es sehr schnell von der Hand geht. Doch sei es für komplexere Programme zu langsam und zu beschränkt. Von Assembler wurde auch abgeraten. Das sei zwar hier das schnellste gewesen, doch ist es halt keine benutzerorientierte Sprache, sondern eine maschinennahe, die letzte Stufe vor dem eigentlichen Maschinencode. Folglich hatte Entwicklung der Assembler-Version des Programms dort mit Abstand auch am längsten gebraucht.

Freezy
05.12.2003, 18:23
Berliner schauen den Bayrischen Rundfunk?? :D

Naja, ich hab nichts gegen Basic. Eigentlich hab ich der Sprache recht viel zu verdanken weil ich mit ihr den einstieg ins Programmieren geschafft habe.

Vorteile: Leicht zu erlernen, Kleine Programme sind schnell entwickelt

Nachteile: Etwas lahm, für Koplexe Programme relativ ungeeignet

-Bezogen auch die Interpreter die ich kenne (QBAsic, VB)

Ynnus
05.12.2003, 20:59
Wie lang ist es denn her, diese Fernsehsendung? Und welche basic Version wurde damals getestet? Macht ja schon einen großen Unterschied ob es jetzt Dar Basic oder Visual basic oder Purebasic ist... Wobei letzteres noch recht neu ist, wirds wohl weniger gewesen sein...

Jesus_666
06.12.2003, 21:16
Basic hat für mich den Nachteil einer verwirrenden Syntax. Ich bin ein großer Fan der C-Syntax (bekant aus Sprachen wie C, C++, PHP oder UnrealScript), die IMO durch ihre Deutlichkeit und Strukturiertheit besticht.
Zeilen hören mit einem Semikolon auf. Wenn ich eine lange Zeile aufteilen will, dann setze ich einfach ein Linebreak rein und gut is. Wenn ich das gleiche bei Basic versuche, muß ich einen Backslash setzen. Obwohl ich gar kein Zeichen teminieren will.


Naja, egal. Ich kenne eh nur C64-Basic, QBasic und VB6, wobei letzteres als IDE ganz nett ist.


BTW, ich sehe auch manchmal BR, und ich wohne in Niedersachsen. BR ist so ziemlich der einzige Sender, der noch dem öffentlich-rechtlichen Bildungsauftrag nachkommt...

Ineluki
08.12.2003, 06:49
Delphi hat den vorteil, eine ebendso strukturierte Syntax wie C++ zu haben (vielleicht sogar noch strukturierter, da es nicht so verwiirenden sonderzeichenoperatoren wie ++ && == % >> gibt, was fuer den fortgeschrittenen programmierer natuerlich etwas nachteilig ist :()

zusaetzlich ist Delphi genau so wie VB ein RAD-System (Rapid-Application-Development) ... eigentlich hat VB das Visuelle Delphi Konzept geklaut ^__^

Zudem ist auch Delphi C++ von der Syntax her sehr verwant, da beide Sprachen viele gemeinsame Konzepte teilen

Gruss Ineluki

Jesus_666
08.12.2003, 21:06
Original geschrieben von Ineluki
Delphi hat den vorteil, eine ebendso strukturierte Syntax wie C++ zu haben (vielleicht sogar noch strukturierter, da es nicht so verwiirenden sonderzeichenoperatoren wie ++ && == % >> gibt, was fuer den fortgeschrittenen programmierer natuerlich etwas nachteilig ist :()
Was, keine Sonderzeichenoperatoren? Ich bleibe bei C++, danke.

Ineluki
08.12.2003, 22:10
na ja .. + - * / ^ = := .... sowas gibts natuerlich ...
aber && ist AND und || OR und i++ ist inc(i); usw ...

na ja .. wie gesagt fuer den anfaenger leichter zu verstehen und insgesammt etwas sauberer .. aber fuer den profi etwas aergerlich, wenn auch nicht wirklich sehr stoehrend

Jesus_666
08.12.2003, 23:50
Naja, ich bin an die C++-Syntax gewöhnt (und daran Buchstaben wenn möglich nur für Funktionsaufrufe und dergleichen zu benutzen). Ist wohl Geschmackssache.


Obwohl ich es irgendwie zweckmäßig finde, eine Sprache zu benutzen, die es erlaubt, vor Außenseitern über die Performanceunterschiede von ++i und i++ zu diskutieren.

Serge
22.12.2003, 00:50
Hm Ineluki, du vergleichst C++ einfach mal mit der Reinen Form von Basic, ohne über die neuen Basicdialekte bescheidzuwissen.
In den Modernen basicdialekten ist Objektorientiertes Programmieren auch inzwischen Standart, jede Grafik, jede Datei hat einen Handler, über den man es ansteuert. Genauso gibt es auch Proceduren, schleifen und alles mögliche, so das man Goto oder Gosub eigentlich niemals benutzen muss. Auch das mit der Schnelligkeit stimmt nicht, Purebasic oder Blitzbasic kommen sehr nahe an C++ ran.
Und was heist irgendwelche Sachen reingestopft? Wo irgendwas mit Basic draufsteht muss nicht unbedingt Basic drin sein. Sie benutzen lediglich den Basic Basissyntax mit sehr vielen eigenen Befehlen erweitert.
Und der Riesige Vorteil von Basicdialekten ist wohl kaum zu übersehen, denn man lernt basic Viel schneller als C++ und man muss um das selbe zu kriegen weit weniger Code schreiben.
Klar das man dadurch auch nicht die selben Möglichkeiten wie in C++ hat.
http://www.purebasic.de/was.shtml
http://www.purebasic.de/features.shtml
Hier ist mal eine gute Zusammenfassung was Purebasic so kann :]

Jesus_666
22.12.2003, 02:22
Original geschrieben von Sersch
Und der Riesige Vorteil von Basicdialekten ist wohl kaum zu übersehen, denn man lernt basic Viel schneller als C++ und man muss um das selbe zu kriegen weit weniger Code schreiben.
Klar das man dadurch auch nicht die selben Möglichkeiten wie in C++ hat.
http://www.purebasic.de/was.shtml
http://www.purebasic.de/features.shtml
Hier ist mal eine gute Zusammenfassung was Purebasic so kann :]
Moment mal. Warum lernt man BASIC schneller als C*? Wegen der Syntax? Nein, für den Uneingeweihten ist Basic genauso unverständlich wie C, die C-Syntax sieht nur etwas abstrakter aus. Ist aber kein Stück schwerer zu lernen.
Was dann? Das Grundkonzept? Das ist mit dem von Basic identisch. Das trifft auf die meisten Programmiersprachen zu.
Was ist es, das C so kompliziert macht? Einem wird weniger Arbeit abgenommen.

Allerdings gibt es mittlerweile für viele Problemstellungen Lösungen in Form von frei verfügbarem Quellcode. Fenster können mit einem GUI-Toolkit erstellt werden und sowohl für 2D- als auch für 3D-Grafiken gibt es leistungsfähige Engines. Bis zu 90% der Programmierarbeit können mit fertig erhältlichem Code vermieden werden.

Zugegeben, Dinge wie Exceptions und Speichermanagement muß man immer noch lernen... Aber dafür hat man eben diese Möglichkeiten.


*Mit 'C' sind C und alle Dialekte (C++, ObjectiveC...) gemeint.

Serge
22.12.2003, 03:44
Original geschrieben von Jesus_666
Moment mal. Warum lernt man BASIC schneller als C*? Wegen der Syntax? Nein, für den Uneingeweihten ist Basic genauso unverständlich wie C, die C-Syntax sieht nur etwas abstrakter aus. Ist aber kein Stück schwerer zu lernen.
Was dann? Das Grundkonzept? Das ist mit dem von Basic identisch. Das trifft auf die meisten Programmiersprachen zu.
Was ist es, das C so kompliziert macht? Einem wird weniger Arbeit abgenommen.

Allerdings gibt es mittlerweile für viele Problemstellungen Lösungen in Form von frei verfügbarem Quellcode. Fenster können mit einem GUI-Toolkit erstellt werden und sowohl für 2D- als auch für 3D-Grafiken gibt es leistungsfähige Engines. Bis zu 90% der Programmierarbeit können mit fertig erhältlichem Code vermieden werden.

Zugegeben, Dinge wie Exceptions und Speichermanagement muß man immer noch lernen... Aber dafür hat man eben diese Möglichkeiten.


*Mit 'C' sind C und alle Dialekte (C++, ObjectiveC...) gemeint.
Wie du schon selber sagst, bei einem Basic Dialekt wird sehr viel der Arbeit abgenommen, oder Manche Befehle ersetzen gleich mehrere. So hat man dann am Ende auch weit weniger Befehle die man zu wissen braucht. Weiterhin muss man sich die ganzen Engines, Quellcodes usw. nicht irgendwoher zusammenschaufeln und gucken dass man sie richtig und ohne Bugs einbaut, da das alles schon dabei und auf den Syntax optimiert ist.

Ynnus
22.12.2003, 04:10
aaahh, endlich ein Verbündeter^^

Also ich fand Basic schon leichter, weil man die Befehle schon bald so wie sie sind übersetzen könnte. Hingegen gibts bei C auch schonmal ein paar Sonderzeichen oder Vergleiche per == und Zuweisungen per =, und am Ende mal eben ein Semikolon, und außerdem mit { Klammer und ( Klammer, das war mir einfach zu viel was man verdrehen könnte... Da fand ich Basic schon wesentlich einfacher.

Und es sollte wohl jedem eigentlich klar sein, dass C++ keine Einsteigersprache ist, weil es nicht so einfach ist. Hingegen wird Basic öfters verwendet.

Na ja, wollen wir mal nicht streiten, schön dass es hier noch andere PureBasic Leute gibt^^

EDIT: aaaaaaaaaah, ich werd noch Verrückt, ein alter Bekannter. :)
Wusst ichs doch. Zwar anderer Nick, aber der Blick auf die Homepage hats dann offenbart. Schön das du auch mal wieder reinschaust. Hähä, ich wette die meisten würden dich so einfach nicht erkennen.^^

Jesus_666
22.12.2003, 06:11
Original geschrieben von Sersch
Wie du schon selber sagst, bei einem Basic Dialekt wird sehr viel der Arbeit abgenommen, oder Manche Befehle ersetzen gleich mehrere. So hat man dann am Ende auch weit weniger Befehle die man zu wissen braucht. Weiterhin muss man sich die ganzen Engines, Quellcodes usw. nicht irgendwoher zusammenschaufeln und gucken dass man sie richtig und ohne Bugs einbaut, da das alles schon dabei und auf den Syntax optimiert ist.
Ich bezweifle, daß bei *basic eine komplette, portable OpenGL-basierende 3D-Engine, Surround-Sound oder Peer-to-Peer-Funktionalität direkt in der Sprache implementiert sind. Oder die komplette Quake-Engine.
Das kann man für C++ alles innerhalb weniger Minuten finden, das meiste davon auf SourceForge.

Die C-Syntax ist IMO klarer und übersichtlicher als die von Basic; Zeilen enden nur dann, wenn ich es sage und alle Statements sind schön mit Zeichen (und nicht mit Text) begrenzt. Geschmackssache.

Basic ist sicher angemessen, wenn man keine erweiterte Funktionalität, bzw. große Flexibilität braucht und einfach nur ein GUI-App schreiben will, das nichts Außergewöhnliches tut; wenn man aber etwas Spezielleres will (oder etwas, das vom jeweiligen Konzept des Dialekts weiter entfernt ist) braucht man entweder einen anderen spezialisierten Dialekt oder eine andere, vielseitigere Sprache... Ob das jetzt C oder D oder ASM oder Java ist.
C(++) hat den Vorteil, daß die große Menge an "frei" verfügbarem Code es ermöglichen, komplexe Projekte schneller zu realisieren (da man eine Menge Code nicht selbst schreiben muß).

Wie üblich gilt weder C > Basic noch Basic > C. Es kommt immer auf den Anwender und den Fall an. In meinem Fall sind die Portabilität und der Zugriff auf das riesige Code-Archiv von C++ ausschlaggebend; jemand anders mag die Einfachheit von Basic besser findern. Oder die Systemnähe von ASM. Oder sogar Brainfuck (http://www2.latech.edu/~acm/helloworld/brainfck.html).

Zerxes
22.12.2003, 06:25
Original geschrieben von Jesus_666
Ich bezweifle, daß bei *basic eine komplette, portable OpenGL-basierende 3D-Engine, Surround-Sound oder Peer-to-Peer-Funktionalität direkt in der Sprache implementiert sind. Oder die komplette Quake-Engine.
Das kann man für C++ alles innerhalb weniger Minuten finden, das meiste davon auf SourceForge.


Auf Planet-Sourcecode gibts dass alles (bis auf die "Original"-Quake-Source) auch für VB.
Komplette OpenGL und Direct3D-Engines.

Dieser Thread macht meiner Meinung nach keinen Sinn, Diskussion über Programmiersprechen enden doch immer gleich, wieso sollte man dann ständig welche eröffnen? Jeder sollte bei dem bleiben dass er am liebsten mag.

Grüße,
Zerxes

Jesus_666
22.12.2003, 06:31
Du verstehst den Sinn dieses Threads nicht.
Die Basic-User beschweren sich darüber, daß keiner Basic mag und erzählen dann, daß Basic allen anderen Sprachen überlegen ist. Die C-User beharren darauf, daß sie bei C bleiben, weil Basic nicht C ist und stellen klar, daß C allen anderen Sprachen überlegen ist.
Vielleicht kriegen wir hier noch einen MS-DOS-Batchfile-Autor rein, der uns darlegt, warum MS-DOS-Batchfiles allen anderen Programmen überlegen sind.


...Moment mal, du hast auf Planet SourceCode eine portable Engine für Visual Basic gefunden? Meinst du Dotnet oder echte Portabilität?

Anmerkung zwei, wenn du das ganze Zeug von PSC ziehst ist es nicht mehr in der Sprache integriert und wir haben exakt das Gleiche (Fremdcode, der nicht notwendigerweise läuft und erst implementiert werden muß) wie bei C.

Anmerkung drei, natürlich ist der originale Quake-Source nicht (ftp://ftp.idsoftware.com/idstuff/source/) erhältlich. Ebensowenig wie der von Quake 2 (ftp://ftp.idsoftware.com/idstuff/source/) oder Doom (ftp://ftp.idsoftware.com/idstuff/source/).

Ynnus
22.12.2003, 06:38
Die Basic-User beschweren sich darüber, daß keiner Basic mag und erzählen dann, daß Basic allen anderen Sprachen überlegen ist.

Das ist absolut falsch wiedergegeben. So wurde es von keinem Basic-user hier behauptet! Die Grundidee ist nur, objektive Nachteile an Basic zu finden. Die mag es sicher geben, aber nicht so extrem wie es immer dahingestellt wurde.

Jesus_666
22.12.2003, 06:44
Original geschrieben von Sunny
Das ist absolut falsch wiedergegeben. So wurde es von keinem Basic-user hier behauptet! Die Grundidee ist nur, objektive Nachteile an Basic zu finden. Die mag es sicher geben, aber nicht so extrem wie es immer dahingestellt wurde.
Es war ja auch eine Übertreibung. Zum Zweck der Ironie.
Kein ernstzunehmender C-User würde mit "Basic ist nicht C, deshalb mag ich Basic nicht" argumentieren. MS-DOS-Batchfiles sind nicht die ultimative Form der Programmierung.

Ich sollte vielleicht aufpassen, welche Art von Humor ich das nächste Mal verwende. ("Ironie wird nicht von Basic unterstützt" - So, ich hab's mir aufgeschrieben. ^_~)

raiel
22.12.2003, 14:48
Also basic als interpreter version mag vielleicht von der Syntax her gefallen und mag eventuell sogar reichen alles moegliche zu schreiben. Aber wer schonmal versucht hat VB projekte fuer eine breite masse zu publizieren der hat noch nie mit VB-runtimes installationen gearbeitet. Das typische microsoft Chaos kommt so richtig schoen zur geltung wenn es von der selben DLL mit der selben versionsnummer unterschiedliche versionen gibt. Oder sich DLL's mal gar nicht erst installieren lassen.

Basic ist fuer Professionelle produktion und vertrieb deshalb ziemlich ungeeignet. (Visual Basic Version von M$, mag sein das das bei anderen Basic fassungen anders ist)

Jesus_666
22.12.2003, 17:45
Ah stimmt, das war der große Nachteil von Basic - man braucht meist irgendwelche nervtötenden Runtimedateien.



BTW, Zitat von der PureBasic HP: "Ansonsten kann die Demo aber alles, was die Vollversion auch kann - sogar .EXE Dateien erstellen!"
Auch in der Linux- und MacOS-Version? Können diese Versionen auch was anderes als Win32-Executables erstellen? Vielleicht sogar Linux- bzw. MacOS-Binaries?

Das ist keine Kritik an PureBasic, nur an dem Varantwortlichen für die Homepage.

Zerxes
22.12.2003, 17:59
Original geschrieben von Jesus_666
Ah stimmt, das war der große Nachteil von Basic - man braucht meist irgendwelche nervtötenden Runtimedateien.


Hehe, die gibts beim Nachfolgemodell von C++, dem C# auch. Nur dort ist es noch schlimmer, ich hab mir mal das .NET-Runtime runtergeladen, und versucht ein paar C#-Programme auf XP zum Laufen zu bringen, aber keins lief, alles brachen schon beim Laden mit einer Fehlermeldung ab.
Ich finde ein Runtime runterzuladen dass nicht mal 1MB groß ist, ist selbst für 56k-User kein Problem, aber dass .NET-Runtime ist schon üer 23MB groß.

Grüße,
Zerxes

raiel
22.12.2003, 19:10
C#-Programme auf XP


da lauefts mir schon beim lesen kalt den ruecken runter

Serge
22.12.2003, 21:57
Original geschrieben von Jesus_666
Ich bezweifle, daß bei *basic eine komplette, portable OpenGL-basierende 3D-Engine, Surround-Sound oder Peer-to-Peer-Funktionalität direkt in der Sprache implementiert sind. Oder die komplette Quake-Engine.
Das kann man für C++ alles innerhalb weniger Minuten finden, das meiste davon auf SourceForge.

Du verstandest mich vieleicht falsch, hier versuchte keiner Basic besser als C hinzustellen, da brauchst du nicht aufzählen was mit C alles möglich ist. (Auch wenn du dein Statement in dem Nachfolgendem Komment mal kurzerhand in Ironie umgetauft hast, das hier ist ja wohl keine Ironie?). Es ging hier Darum, das Ineluki Basic so hinstellte, dass es Garkeine Vorteile hätte, was eben nicht stimmt.

Jesus_666
22.12.2003, 23:08
Original geschrieben von Zerxes
Hehe, die gibts beim Nachfolgemodell von C++, dem C# auch. Nur dort ist es noch schlimmer, ich hab mir mal das .NET-Runtime runtergeladen, und versucht ein paar C#-Programme auf XP zum Laufen zu bringen, aber keins lief, alles brachen schon beim Laden mit einer Fehlermeldung ab.
Ich finde ein Runtime runterzuladen dass nicht mal 1MB groß ist, ist selbst für 56k-User kein Problem, aber dass .NET-Runtime ist schon üer 23MB groß.

Grüße,
Zerxes
Deshalb lerne ich C++ und nicht C#.
BTW, C# ist nicht das "Nachfolgemodell" von C++, es ist nur an C++ angelehnt. Eigentlich ist C# eher eine Kreuzung aus C++, Java und Microsofts obstrusen Vorstellungen von Software.


@Sersch: "Ich bezweifle..." war nicht der ironische Post, ich bezog mich auf "Du verstehst...". In "Du verstehst..." habe ich die ewige Diskussion um die "beste" Programmiersprache ins Lächerliche gezogen.
Mit "Ich bezweifle..." bin ich auf den Hinweis eingegangen, daß man sich mit Basic "die ganzen Engines, Quellcodes usw. nicht irgendwoher zusammenschaufeln" müsse, weil sie schon eingebaut seien. Das hat (bei mir zumindest) den Eindruck erweckt, daß Basic die Funktionalität praktisch aller denkbaren C(++)-Libraries schon fest in der Sprache eingebaut habe, was natürlich unhaltbar ist.

Ich gebe gerne zu, daß Basic seine Vorteile hat und in bestimmten Bereichen wie RAD und Einsteigerfreundlichkeit C(++) oft überlegen ist. Alles, was ich abstreite sind zweideutige Aussagen, die falsch interpretiert werden können (siehe letzter Absatz).

Ich sage es noch einmal: Es gibt keine allgemein beste Programmiersprache. Programmiersprachen haben immer einen gewissen Zweck, für den sie konstruiert wurden. C sollte eine systemnahe Hochsprache sein, nach Einfachheit hat keiner gefragt. C++ sollte objektorientiertes C sein. Basic sollte einfach zu lernen und verstehen sein und Pascal noch einfacher. Fortran sollte mathematische Formeln gut verarbeiten können. Die RPG Maker 2000-Scriptsprache sollte mit einem Minimum an Komplexität das Erstellen eines Spiels ermöglichen.
Jede dieser Sprachen hat einen Bereich, in dem sie allen anderen genannten Sprachen klar voraus ist*. Das macht sie aber nicht generell besser.
In meinem Fall machen die Syntax, die Flexibilität und die gewaltige Menge an GPLtem Code C++ zur Sprache meiner Wahl. Diese Faktoren machen C++ aber nicht besser als alle anderen Sprachen.


*Einzige Ausnahme: Die RPG Maker-Scriptsprache ist unübersichtlicher als C, langsamer als Java, weniger mächtig als eine MS-DOS-Batchdatei und aufgrund ihrer Beschränktheit ist es schwerer, damit nicht-trivialen Code zu erstellen als mit QuickBasic.

Ineluki
23.12.2003, 01:41
Original geschrieben von Sersch
Es ging hier Darum, das Ineluki Basic so hinstellte, dass es Garkeine Vorteile hätte, was eben nicht stimmt. Ach jetzt werde ich wieder zum Buhmann und zur hassikone einer ganzen Basicgeneration erklaehrt ^^ ... Ich will nur mal klarstellen, dass ich nie einen davon abgehalten habe, in basic zu programmieren ... ich habe selber in HC-Basic angefangen ... ich habe lediglich aufgezeigt, warum MIR Basic nicht mehr zusagt, da ich eine (od. mehere) Programmiersprachen gefunden habe, die MEINEN Anforderungen um ein vielfaches gerechter werden, so dass ich mich beim Programmieren in Basic wie in einer Zwangsjacke fuehlen wuerde. Ich habe nie objectiv gesagt, BASIC sei die grauenvollste Programmiersprache auf Gottes weiter Erde, ich habe nur meine subjective Meinung gesagt, dass mir die Basic-Syntax zu unuebersichtlich ist, und ich sie mit den gesamten neuen Entwicklungen aus anderen Programmiersprachen unter dem Gesichtspunkt der einfachen Codeerzeugung unvereinbar halte, ohne dass danach dieses "Basic" genau so aussieht, wie die anderen Programmiersprachen. Ich persoenlich halte Basic auch nicht fuer Einsteigerfreundlicher als Pascal, sogar im Gegenteil, denn die einfachen und doch konsequenten Strukturierungsmerkmale von Pascal halte ich fuer aeusserst sinnvoll. Somit spreche ICH in gewisser Weise BASIC seinen Hauptvorteil und ~anwenndungsbereich ab, da ICH keinen Vorteil sehe, den ich haette, wenn ich in Basic statt in anderen Hochsprachen programmieren wuerde. Daher rate ich auch jedem, der nach MEINER Meinung fragt davon ab, Basic zu lernen.

Schaut euch doch mal euer Basic von heute an ? Was ist denn ausser ein paar rudimentaeren verkrueppelten Ansaetzen noch von der eigentlichen Sprache geblieben ? Mir als einem, der jahrelang noch "echtes" Basic auf 8Bit Computern programmiert hat, dreht sich foermlich der Magen um, wenn ich heutigen Basiccode sehe. Frueher war jede Variable eine Zahl, nur Stringvariablen hatten ein $, Variablen mussten nicht deklariert werden, jede Zeile hatte eine Nummer als vielfaches von 10, damit man noch bei bedarf code einfuegen konnte, es gab weder funktionen noch proceduren, alleine Gosub war als pseudoaequivalent geeignet. Und John George Kemeny sah, dass es gut war. Und nun werft einen Blick auf die heutigen Basicdialekte, Teils muessen Variablen deklariert werden, jetzt haben sie auch Datentyen, aber nicht damit genug, nein jetzt wird der typ auch jedesmal mit cryptischen abkuerzungen wir a.l an den variablennamen angehaengt, statt den einfach mit long a einmal zu definieren. Die Zeilennummern wurden verworfen und labels werden dafuer definiert, Gosubs wurden (fast) abgeschafft und funktionen, Proceduren und objecte eingefuehrt, die genau so aussehen, wie in anderen programmiersprachen, deren abstruser Basicsyntax jedoch die dahinterstehenden Konzepte auch nicht einfacher macht. Das, was Basic grundlegend von anderen Sprachen abhob wurde abgeschafft und ausgemerzt. Die Ganze Individualitaet von Basic wurde eingeplaettet und nur hinderlich-umstaendliche und unzeitgemaesse Syntaces sind davon noch uebriggeblieben, die bestenfalls als Stolpersteine im ohnehin nicht mehr wirklich nach Basic aussehenden Code anzusehen sind. Haette sich Basic seine eigene Identitaet bewahrt und darin die Konzepte eingegliedert, haette ich gesagt, nun gut, diese Sprache ist nicht mein Fall, sie hat aber durchaus berechtigung. Dadurch, das sie aber die anderen Konzepte nicht integriert sondern Kopiert hat, und dabei die Eigenarten von Basic ueberschrieben wurden, ist am Ende ein einzige Groteske einer Programmiersprache erausgekommen, ein abstruser Einheitsbrei und Programmiersprachenmischmasch. Wenn ich eine Programmiersprache habe, die eindeutige Nachteile hat (was wohl keiner bestreiten kann) und die dann auch noch zu 70% wie eine anderen Programmiersprache aussieht, warum sollte ich dann nicht gleich diese andere Programmiersprache lernen, die die Basic-Nachteile nicht hat. Aber wie gesagt, das ist MEINE Meinung, und ich zwinge niemanden selbige zu teilen. Soll sich jeder selber ein Bild davon machen. Ich fuer meinen Teil finde es nur verabschaeuenswuerdig (ok dieses wort ist eine Nuance zu hart) was aus dieser einstmals recht schoenen Sprache gemacht wurde, naemlich ein unfoermiges Behemoth, um das seine Juerger herumtanzen als waere es das Goldene Kalb oder der heilige Graal der modernen Informationsgesellschaft.

Gruss Ineluki, der sich wohl grade etwas in Rage geschrieben hat

Serge
23.12.2003, 03:41
Lol, du schreibst die Weiterentwicklung einer Programmiersprache dieser negativ an. Wem nutzt eine Programmiersprache, mit der man vieleicht vor 20 Jahren was anfangen konnte?
Und das mit dem Befehle abschauen ist auch ein Tolles Argument, das ist etwas völlig normales, wofür sollte man das Rad neuerfinden? Ich meine schau dir doch die Syntaxe von anderen Programmiersprachen bzw. Scriptsprachen an? php, Flash and so on, in allen findest du Elemente von C++ oder anderen Programmiersprachen wieder.
Jedoch sind diese einfach auf einen anderen Bereich abgestimmt. So auch die (stark abweichenden) Basic Variationen. Sie sind für den Hobbyprogrammierer entwickelt. Denn zu behaupten Basic wäre so schwehr wie eine Seriose Programmiersprache ist einfach Schwachsinn.
(das kann man nur Behaupten, wenn man über moderneres Basic nicht bescheidweis, was ich dir doch sehr stark ansehe, wenn ich mir so deinen ersten Post angucke) Ich weis ja nicht wie Basic früher aussah, aber von den modernen Basic Variationen könnte ich auf keinen Fall behaupten sie wären schwer. Wenn ich es mit php Vergleiche, was ja einen C ähnlichen Syntax hat, ist es wirklich ein ganzes Stück schneller erlernt und das Programmieren damit geht ebenfalls schneller.

Jesus_666
23.12.2003, 04:23
Original geschrieben von Sersch
Lol, du schreibst die Weiterentwicklung einer Programmiersprache dieser negativ an. Wem nutzt eine Programmiersprache, mit der man vieleicht vor 20 Jahren was anfangen konnte?
Er prangert nicht an, daß sich Basic weiterentwickelt hat; er prangert an, daß das Grundkonzept, nach dem Basic entwickelt wurde, zugunsten von Elementen anderer Programmiersprachen verworfen wurde.
*Basic ist heutzutage ein verdünntes C mit einer anderen Syntax (meine Meinung - das einstmals für den rein sequentiellen Programmablauf konzipierte Basic hat abgesehen von der Syntax wirklich 90% der Eigenschaften von C angenommen). Das ist in einigen Bereichen positiv, hat aber im Fall von *Basic tatsächlich die Sprache selbst an andere Hochsprachen angenähert.
Als jemand, der sowohl QuickBasic, Visual Basic 6 und C++ (sowie undeutlich C64-Basic) aktiv erlebt hat, kann ich Inelukis Post aus meinen eigenen Erfahrungen heraus unterstützen.

BTW, C++ ist zwanzig Jahre alt, hat sich währenddessen nicht verändert und gilt immer noch als die Programmiersprache Nummer eins. Das nur als Randbemerkung.


Und das mit dem Befehle abschauen ist auch ein Tolles Argument, das ist etwas völlig normales, wofür sollte man das Rad neuerfinden? Ich meine schau dir doch die Syntaxe von anderen Programmiersprachen bzw. Scriptsprachen an? php, Flash and so on, in allen findest du Elemente von C++ oder anderen Programmiersprachen wieder.
PHP wurde explizit so entwickelt, daß es C ähnlich ist. Der Syntax wurde komplett übernommen. Das ist gut so - es wurde von vorneherein so vorgesehen und die Sprache wurde entsprechend geplant.
Basic wurde so entworfen, daß es einfache sequentielle Programme erlaubt; Prozeduren und Datentypen wollte damals keiner haben, weil Basic einfach bleiben sollte. Diesen Anspruch haben moderne *Basics zu einem guten Teil verloren.


Jedoch sind diese einfach auf einen anderen Bereich abgestimmt. So auch die (stark abweichenden) Basic Variationen. Sie sind für den Hobbyprogrammierer entwickelt. Denn zu behaupten Basic wäre so schwehr wie eine Seriose Programmiersprache ist einfach Schwachsinn.
Ist *Basic unseriös? Hat Microsoft mir für 400 DM ein unseriöses Programm verkauft? O_o Kann ich mein Geld zurückverlangen?

Eine der Sachen, die Basic so einfach gemacht haben (die Beschränkung auf einfache, sequentielle Codeverarbeitung) ist weggefallen; hinter der Syntax verbergen sich heute Sprachen, die ähnlich komplex sind wie die meisten anderen Hochsprachen. Und damit auch ähnlich schwer.


(das kann man nur Behaupten, wenn man über moderneres Basic nicht bescheidweis, was ich dir doch sehr stark ansehe, wenn ich mir so deinen ersten Post angucke) Ich weis ja nicht wie Basic früher aussah, aber von den modernen Basic Variationen könnte ich auf keinen Fall behaupten sie wären schwer. Wenn ich es mit php Vergleiche, was ja einen C ähnlichen Syntax hat, ist es wirklich ein ganzes Stück schneller erlernt und das Programmieren damit geht ebenfalls schneller.
WTF? PHP ist einfacher zu lernen als QuickBasic und als Visual Basic. Wenn PureBasic nicht eine stark vereinfachte Art hat, Programme zu erstellen (in RPG Maker- Art), glaube ich dir einfach nicht, daß PHP schwerer sein soll als *Basic.
Sicher, PHP benutzt die C-Syntax. Ui. Wenn man sich hinsetzt und einfach nur fertigen Code ansieht kann man die in ein paar Tagen großteils lernen. Ich weiß es, ich hab's so bei UnrealScript gemacht, das auch die C-Syntax benutzt.
Was hat PHP, das *Basic nicht hat? Funktionen? Gibt's bei Basic. Variablentypen? Nada, gibt's bei PHP nicht (dafür aber bei neueren *Basics). Was macht PHP so schwer? Offenbar die innerhalb einer Woche erlernbare C-Syntax.

Hürden über Hürden.


BTW, eine Sache, die an *Basic etwas störend sein könnte sind die 325789 verschiedenen spezialisierten, untereinander inkompatiblen Dialekte, die allesamt nicht Basic sind, deren User das aber behaupten.
PureBasic ist nicht das originale Basic. Es ist eine andere Sprache, so wie C++ nicht C ist (wobei c++ zu C kompatibel ist, was bei *Basic normalerweise nicht gilt).
Alle modernen Basic-Dialekte sind in Wirklichkeit keine Dialekte, sondern eigenständige, inkompatible Sprachen, die mit Basic nur noch die Syntax gemein haben. Trotzdem werden sie von den Benutzern (inkorrekterweise) als Basic bezeichnet. "Basic-Derivat" wäre eine korrektere Bezeichnung. C++, C# und D sind C-Derivate. QuickBasic, Visual Basic und Blitz sind Basic-Derivate (immerhin hat Blitz einen komplett neuen Namen bekommen).
Der Vergleich mit C# paßt besonders: Hier wurden zwei Programmiersprachen (C++ und Java) zusamengebracht, um eine neue Sprache zu schaffen. Und sie hat auch noch C im Namen.

BTW, ich weiß, daß es auch von C++ Dialekte gibt, im Wesentlichen Microsofts Visual C++ und das standardkonforme ANSI-C++. Allerdings sind die Unterschiede hier marginal, da MS sich an den Standard hält.
Basic ist AFAIK nicht standardisiert.


PS: Ich wollte einfach nur mal hier drauf (http://www.catb.org/~esr/jargon/html/H/holy-wars.html) verlinken. Ich glaube, es paßt.
Zitat: "The characteristic that distinguishes holy wars from normal technical disputes is that in a holy war most of the participants spend their time trying to pass off personal value choices and cultural attachments as objective technical evaluations. This happens precisely because in a true holy war, the actual substantive differences between the sides are relatively minor."

Serge
23.12.2003, 05:14
Original geschrieben von Jesus_666
Ist *Basic unseriös? Hat Microsoft mir für 400 DM ein unseriöses Programm verkauft? O_o Kann ich mein Geld zurückverlangen?

Zugegeben, hab mich schlecht Ausgedrückt. Was ich damit meinte, dass man nicht sehr viele Kommerzielle sachen findet, die mit Basic programmiert wurden/werden.


WTF? PHP ist einfacher zu lernen als QuickBasic und als Visual Basic. Wenn PureBasic nicht eine stark vereinfachte Art hat, Programme zu erstellen (in RPG Maker- Art), glaube ich dir einfach nicht, daß PHP schwerer sein soll als *Basic.
Sicher, PHP benutzt die C-Syntax. Ui. Wenn man sich hinsetzt und einfach nur fertigen Code ansieht kann man die in ein paar Tagen großteils lernen. Ich weiß es, ich hab's so bei UnrealScript gemacht, das auch die C-Syntax benutzt.
Was hat PHP, das *Basic nicht hat? Funktionen? Gibt's bei Basic. Variablentypen? Nada, gibt's bei PHP nicht (dafür aber bei neueren *Basics). Was macht PHP so schwer? Offenbar die innerhalb einer Woche erlernbare C-Syntax.

Hürden über Hürden.

Vieleicht erscheint/erschien dir php nicht besonders schwer weil du schon C++ konntest? Ich hab sowhl die Basicdialekte als auch php von 0 auf gelernt und da erschien mir php um einiges Schwieriger, einmal wegen den ganzen besonderheiten beim Syntax, dass man bei jedem der Standartbefehle einfach ein zig mehr Aspeckte beachten muss als bei Basic. Weiterhin ist der zweite Punkt der es mir erschwehrt hat, der Befehlsdschungel, wo man nur schwer die richtigen Befehle schnell findet (wenn man noch nicht die sprache gut beherscht)
Und Variablentypen gibts in php doch auch o_0. werden sie blos vom Programm automatisch immer ins richtige umgewandelt, wie bei Basic auch...
Vieleicht erscheint es aus einer anderen Sicht anders, aber ich kann für mich sagen, das php für mich doch ein ganzes Stück schwerer fiel.

Ynnus
23.12.2003, 06:00
Das frisst sich so langsam aber sicher ein in den Kleinkrieg Basic gegen C und co... Dabei war Sinn und Zweck für mich zumindest, objektive und schwerwiegende Mangel an Basic Sprachen zu finden, von diesen bin ich aber nicht überzeugt und werde deshalb auch weiterhin in Basic programmieren. Mehr wollte ich garnicht bezwecken, es hätte ja sein können das Basic tatsächlich große Mängel gegenüber anderen Sprachen hat, von denen bin ich aber bisher nicht überzeugt, zumindest bewirken die genannten keine Bekehrung^^.
Nun ja, soweit meinerseits dazu. Was ihr für euch aus diesem Beitrag interpretiert bleibt euch überlassen, bei mir stehts eben so!

Jesus_666
23.12.2003, 06:24
Original geschrieben von Sersch
Vieleicht erscheint/erschien dir php nicht besonders schwer weil du schon C++ konntest? Ich hab sowhl die Basicdialekte als auch php von 0 auf gelernt und da erschien mir php um einiges Schwieriger, einmal wegen den ganzen besonderheiten beim Syntax, dass man bei jedem der Standartbefehle einfach ein zig mehr Aspeckte beachten muss als bei Basic. Weiterhin ist der zweite Punkt der es mir erschwehrt hat, der Befehlsdschungel, wo man nur schwer die richtigen Befehle schnell findet (wenn man noch nicht die sprache gut beherscht)
Und Variablentypen gibts in php doch auch o_0. werden sie blos vom Programm automatisch immer ins richtige umgewandelt, wie bei Basic auch...
Vieleicht erscheint es aus einer anderen Sicht anders, aber ich kann für mich sagen, das php für mich doch ein ganzes Stück schwerer fiel.
Ich habe PHP lange vor C++ in Angriff genommen. Meine einzigen Erfahrungen ähnlichen Sprachen beschränkten sich auf UnrealScript, das sich abgesehen von der Syntax von PHP stark unterscheidet.
Ich weiß nicht, was man bei den PHP-Befehlen mehr beachten müsse. Gerade die Befehle gehen mir bei PHP besser von der Hand als bei VB6 (was zum großen Teil daran liegt, daß man sie bei PHP über php.net einfach nachsehen kann, während VBs monströse MSDN Library zwar umfangreich aber unhandlich ist). Gerade das Finden des richtigen Befehls geht bei PHP wunderbar und Probleme bzw. Workarounds sind meistens mit angemerkt.
Wenn ich da an die halbstündigen Suchorgien in der MSDN Library denke, nur um einen einzigen Befehl nachzuschlagen, an dessen Namen man sich nicht genau erinnert... Und daran, wie einige Einträge absolut nutzlos waren... *schüttel*
Von allen Sprachen, die ich bisher benutzt habe hat PHP mit Abstand die beste Dokumentation und das merkt man beim Arbeiten.

Vielleicht liegt es daran, daß ich es aus meinen UnrealScript-Tagen gewohnt bin, eigenständig Informationen zu sichen und statt mit Erklärungen mit Referenzcode zu arbeiten. Auf jeden Fall ist PHP aus meiner Sicht übersichtlicher als VB6, über andere *Basics kann ich nichts sagen.

Zum Thema der Varibalentypen: Ja, es gibt sie bei PHP, aber das ist egal. Wenn ich einen Integer als einen String verwende ist es ein String. Wenn ich einen String als einen Float verwende ist es ein Float. Ich kann lustig zwischen Integern, Floats, Strings und Booleans hin- und herwechseln, ohne einen einzigen Typecast zu benutzen oder überhaupt darüber nachzudenken, welchen Dateitypen ich gerade benutze. Ungemein intuitiv und IMO allen anderen mir bekannten Sprachen in der Hinsicht überlegen.
Außerdem hat PHP die .-Syntax (ich kann mehrere Variablen aneinanderhängen, indem ich sie mit einem . verbinde). Ich mag die .-Syntax.


@sunny: *Basic hat offensichtliche und schwerwiegende Mängel: Der *Basic-Codevorrat ist kleiner als der von C++. *Basic wird mit geringerer Wahrscheinlichkeit in professionellen Anwendungen verwendet. Es gibt keinen GCC-Compiler für ein Basic-Derivat.
Für mich sind das schwere Nachteile, für dich wahrscheinlich nicht. Deshalb verwende ich C++ und du *Basic. So einfach ist das.


BTW, mit *Basic meine ich die Gesamtmenge aller modernen Basic-Derivate. Wie weiter oben beschrieben glaube ich nicht, daß Blitz oder PureBasic Basic sind.

BTW2, der Link, den ich in meinem letzten Post legen wollte, geht zum Jargon File, eintrag "holy wars" (http://www.catb.org/~esr/jargon/html/H/holy-wars.html).

Ineluki
23.12.2003, 07:55
Original geschrieben von Sersch
Zugegeben, hab mich schlecht Ausgedrückt. Was ich damit meinte, dass man nicht sehr viele Kommerzielle sachen findet, die mit Basic programmiert wurden/werden. Ich sags mal auf die harte Tour ... vielleicht hat das einen Grund ?

Ich kann mich in allen Punkten nur meinem Vorredner Jesus_666 anschliessen und teile seine Meinung zu 100%.

@Sunny ... a) wollen wir dich nicht bekehren und b) koennen wir niemanden bekehren, der nicht bekehrt werden will ...

in anderen Worten ... Trage die Schuhe, solange sie dir nicht zu klein sind.

Irgendwann, wenn du "reif" genug bist, wirst du schon zu den grossen Programmiersprachen finden ...

Um es nochmal auf die harte Tour zu sagen: Es nuetzt nichts, einem Kind*, dass im Sandkasten Sandburgen baut, die Vorzuege von Stahltraegern fuer die modernen Architektur naehrbringen zu wollen.

* Damit will ich jetzt natuerlich Basic nicht als Kinderkram abtun, sondern es bezieht sich auf die doch ach so grosse Einsteigerfreundlichkeit von Basic, zu Lasten der "Maechtigkeit"

MuadDib
23.12.2003, 18:16
Original geschrieben von Zerxes
Hehe, die gibts beim Nachfolgemodell von C++, dem C# auch. Nur dort ist es noch schlimmer, ich hab mir mal das .NET-Runtime runtergeladen, und versucht ein paar C#-Programme auf XP zum Laufen zu bringen, aber keins lief, alles brachen schon beim Laden mit einer Fehlermeldung ab.
Ich finde ein Runtime runterzuladen dass nicht mal 1MB groß ist, ist selbst für 56k-User kein Problem, aber dass .NET-Runtime ist schon üer 23MB groß.

Wie Jesus schon gesagt hat: C# ist keineswegs der Nachfolger von C++, sondern Microsofts Trotzreaktion gegen Suns Java, und in dem Sinne auch nichts weiter als ein frecher Java Klon :) Grob gesagt besteht C# zu 75% aus Java Ideen, 15% aus C++ Konzepten und lediglich der Rest ist wirklich neu...

zum Topic: gegen Basic spricht in erster Linie die Erfahrung... ich hab Jahre QBasic, TI-Basic (sozusagen die ersten Erfahrungen mit Embedded Systems :)) und VB3, VB4 programmiert, und bei letzterem mich immer nur mit Programmabstürzen, Ausnahmefehlern und Inkompatibilität geärgert. War ganz nett um mir das Programmieren und v.a. das algorithmische Denken beizubringen, aber um wirklich anständige Software zu programmieren sagt die Erfahrung: Keine Chance.

Ynnus
23.12.2003, 18:42
Es ist zwar noch nicht draußen, aber hat imo schon schöne Ansätze:

http://www.Restricted-Area.net

Bericht dazu:

http://www.gamingxp.com/reports/main/ausgabe.asp?1=reports&2=navigationlinks&ID=313

Es gab auch mal einen Trailer, der sah wirklich genial aus, ich finde ihn aber gerade nicht mehr...

Serge
23.12.2003, 20:31
Original geschrieben von Ineluki
Ich sags mal auf die harte Tour ... vielleicht hat das einen Grund ?

lol ich bin mir nicht sicher, ob du meine Postings immer liest oder nur Überfliegst. Vieleicht hast du mich ganz falsch verstanden und denkst immernoch, ich versuche Basic als die bessere Programmiersprache darzustellen, mit der mehr möglich ist. Aber das einzige was ich versucht habe auszusagen war, dass Basic leichter bzw. Einsteigerfreundlicher ist. (und das deine Argumentation gegen Basic zum größten Teil durch Unwissenheit einfach nicht stimmt...) Und du kannst dir sicher denken, dass das ein Punkt ist, der für Kommerzielle Unternehmen ziemlich egal ist.
@Sunny: ja mastercreating hat auch schon 2 Blitzbasic games auf den deutschen Markt gebracht, wenn es auch keine Vollpreisspiele waren :]

Ineluki
24.12.2003, 00:23
ich hab gar nicht behauptet, das du das gesagt hast (wobei das aber dennoch oft so klingt) ... nur auf dieses zitat musste ich einfach antworten ...

uebrigends lese ich mir deine Posts sehr genau durch, meist sogar zwei mal .... im umkehrschluss koennte ich dich das selbe fragen

nun gut .. ich habe meine meinung preisgegeben (die sehr wohl begruendet ist, und nicht nur auf hoehrensagen basiert). Das ich kein Profi in allen zueinander incompatiblen Basicdiaketen bin, ist wohl verstaendlich, wenn ich diese Programmiersprache keinem weiterempfehlen kann. Mir deswegen aber jegliche kentnis anzusprechen halte ich fuer etwas arg uebertrieben.

Gruss Ineluki

iF_
13.10.2006, 19:54
Hai!

Ich (David) bin neu hier - also zerfetzt mich nicht gleich. ;)

Ich bin hier irgendwie jedermanns Meinung - wünsche der Sache aber auch etwas hinzuzufügen was mich ebend auch zur Registrierung hier bewegt hat. :D

Mein Wort zum Threadsonntag wäre hierbei "Die Wahrheit liegt in der Mitte".

Tatsächlich ist es IMHO doch eher so, das ein wirklich guter Programmierer die Sprachenvielfalt ausgenutzt wissen sollte! Jemand der "nur" in C, oder "nur" in Basic programmiert verliert Vorteile gegenüber jemanden der beides beherrscht. Derjenige der aber beides beherrscht ("beides" ist hier als Platzhalter für jede Mögliche Sprache zu werten) ist meiner Meinung aber immer noch dann sehr eingeschränkt und unterlegen demjenigen, der auch beides zum richtigen Zeitpunkt einzusetzen weiss.

Sinn meiner Rede ist, egal welche Sprachen - wer Herr der Programmierung sein möchte sollte Programmiersprachen als "Tools"/Werkzeuge seiner Machenschaften sehen - und überlegen - für welche Aufgabe er welches Werkzeug einsetzt.

Nicht jede Sprache ist für jeden Zweck die "Beste", und es gibt kaum Sprachen die nicht entwickelt wurden um einen festgelegten Zweck zu erfüllen.

Ich programmiere schon seit Kindheit, schreibe in so ziemlich jeder Hoch- und lowlevel Sprache - und betreibe Hobbymäßig ein Portal für eine Programmiersprache welche mir persönlich am Herzen liegt. Es ist auch ein Basic - und ja! - es ist langsam! Es kann Inlineassembler - und ja! - damit kann es schnellere Routinen als C prozudieren. Es kann OOP, hat OpenGL intus, Zugriff auf alle API's sind selbstverständlich - und an so mancher Schule wird es auch gelehrt. Das soll hier keine Werbeveranstaltung werden, aber ich mag diese kleine süße Sprache mehr als Assembler, C, PHP, Pascal, - es ist immer auch eine Frage der Personality. Ich jedoch behaupte meine natürlich angewachsenen Profilneurosen nicht aus falschem Stolz im Sprachenkrieg auswuchern lassen zu müssen sondern meine - "alles zu seinem Zweck". :)

malu
13.10.2006, 20:14
Zu erst, Wilkommen im Forum!
Allerdings wird es heir nicht gerne gesehen, wenn man Threads in den lange nicht mehr gepostet wurde, wieder pusht, sprich postet.
Zum Inhalt deines Posts ist zu sagen, dass du eigentlich schon recht hast, aber man sollte imo lieber eine Sprache wirklicht gut können, als mehrere Sprachen nur so halb. Nett zu wissen wäre auch noch, wenn du noch sagen würdest, von welchem BASIC-Dialekt du sprichst. Ich bin mir nicht sicher aber ich könnet mir vorstellen, dass du Blitzbasic Max meinst.

AgentJG
13.10.2006, 22:42
Ist das Rekord? Einen fast 3 Jahre alten Thread zu pushen ;) ...

@malu: Er könnte auch PureBasic meinen. AFAIR kann das OOP und unterstützt viele Libs. Sonst würde mir noch FreeBasic einfallen (Gibt Header für die gängigsten Libraries). Ich weiß jetzt nur nicht, ob OOP da möglich ist.