|
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Wer von Euch programmiert heute noch aktiv mit QBasic? |
Arbeite immer noch voll damit und habe grössere Projekte laufen! |
|
36% |
[ 12 ] |
Heute schreibe ich nur noch kleinere Utilities/Kurzbeispiele für Foren |
|
21% |
[ 7 ] |
Habe schon länger nicht mehr mit QBasic gearbeitet, da ich mit dem Nachfolger Visual Basic arbeite! |
|
3% |
[ 1 ] |
Habe schon länger nicht mehr mit QBasic gearbeitet, da ich mittlerweilen ganz andere Programmiersprachen (z.B. C/C++, Java, Pascal, Modula-2 usw.) einsetze. |
|
27% |
[ 9 ] |
Programmiere inzwischen überhaupt nicht mehr! |
|
3% |
[ 1 ] |
Nicht genannte Variante (als Antwort-Posting näher spezifizieren) |
|
9% |
[ 3 ] |
|
Stimmen insgesamt : 33 |
|
Autor |
Nachricht |
helium
Anmeldungsdatum: 10.09.2004 Beiträge: 397 Wohnort: Leverkusen
|
Verfasst am: 15.09.2004, 09:14 Titel: |
|
|
Zitat: |
Gibt es eigentlich auch noch Leute, die am liebsten "richtig" programmieren? Ich meine in VB, C(++), Delphi oder sowas?
|
Ja, die gibt es
Zitat: |
ich versteh auch nicht wieso alle welt zur Zeit C / CPP lernen will, Basic ist ne schöne Sprache kann man auch sehr viele mit erreichen bevor man an seine Grenzen stößt.
|
C lernst du, wenn du irgendwelche exotische Hardware programmieren willst, für die nur C-Compiler existieren. C++ lernst du, weil du mit wesentlich geringerem Aufwand deutlich größere Projekte in kürzerer Zeit umsetzen kannst, als in den meisten Basics, wenn es nicht gerade um extrem primitive Dinge, wie ein GUI zusammenklicken geht.
Es geht nicht (nur) um die Technischen grenzen. Es geht darum, wie du etwas machen kannst. Wenn du um eine recht einfache Aufgabe zu lösen viel Code schreiben musst und teilweise richtig über mögliche Lösungen nachdenken musst, dann macht das keinen Spaß. Das interessante daran ist, dass du soetwas erst merkst, wenn du je in einer richtigen Sprache programmiert hast.
Zitat: |
Ich lerne gerade fleißig C++. Das klappt bisher auch prima! Ist auch gar nicht soo schwer, wie ich immer dachte. Auf die richtige Literatur kommts wohl an.
|
Joah, kommt drauf an. Die grundlagen sind einfach. Basic-Programmierer verstehen die OO anfangs in der Regel (vielleicht bist du eine Ausnahme, keine Ahnung) nicht. Sie programmierern weiterhin prozedural, was in C++ auch leicht möglich ist, nutzen so aber nur ein winzigen Teil des Potentials aus.
Und spätestens wenn es um Template-Meta-Programmierung geht wirst du das nächste mal auf deine grenzen stoßen, da die recht funktional von statten geht, was du weder in Basic, noch im rest von C++ gelernt hast (ist wieder nur eine Annahme). |
|
Nach oben |
|
|
Sebastian Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
|
MisterD
Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 15.09.2004, 17:25 Titel: |
|
|
ich lern so mehr oder weniger C++, aber das mit dem Objektorientiert hab ich kapiert. Ist ne sehr praktische Sache! _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
|
Kenneth
Anmeldungsdatum: 13.10.2004 Beiträge: 1 Wohnort: Nordhausen
|
Verfasst am: 13.10.2004, 19:55 Titel: |
|
|
Ich fange auch bald mal an in C++ irgendwas zu machen, ich muss es erstmal nur begreifen.. _________________ Kenneth |
|
Nach oben |
|
|
Stefan
Anmeldungsdatum: 17.09.2004 Beiträge: 22
|
Verfasst am: 13.10.2004, 23:04 Titel: |
|
|
Zitat: | C lernst du, wenn du irgendwelche exotische Hardware programmieren willst, für die nur C-Compiler existieren. |
Exotisch? Also genau in dieser Richtung werde ich wohl demnächst landen. Deshalb mußte ich auch C lernen. Aber exotisch würde ich es nicht nennen. Überall sind mitlerweile Microcontroller im einsatz. Alleine BMW stellt einen Großteil von uns ein.
In C++ bin ich auch nicht schlecht, aber leider habe ich bisher nur wenig über GUI-Oberflächen lernen können. Werde ich aber wohl auch kaum brauchen. Viel interresanter finde ich die Design Patterns. Damit will ich mich auch mal beschäftigen.
Über VB habe ich mal angefangen ein Buch zu lesen, aber ich konnte damit einfach nichts anfangen, weil ich es nicht brauchte. Mitlerweile habe ich aber entdeckt, das es sehr praktisch bei Excel-Programmierung ist.
Außerdem hatte ich das Glück vor kurzem an einen Java-Kurs zu kommen. Interresante Sprache. Und das mit der Oberflächenprogrammierung gefällt mir wesentlich besser als bei C++. Nur leider weiß ich auch nicht wirklich was ich jetzt mit dieser Programmiersprache machen soll.
Ach ja Qbasic mache ich auch noch gerne, da es eine so schön unkomplizierte Sprache ist, bei der man sich nicht so lange mit der Fehlersuche aufhalten muß. Nur mitlerweile vermisse ich schon ein wenig das Objektorientierte an der Sprache. Aber meine Privaten Programme kommen meistens auch ohne aus.
Die Restlichen Programmiersprachen sind... na gut sie sind etwas exotisch. Halt nur etwas für Leute, die Firm- und Hardware-Programmierung machen. |
|
Nach oben |
|
|
Bernd
Anmeldungsdatum: 14.09.2004 Beiträge: 498 Wohnort: Kulmbach
|
Verfasst am: 14.10.2004, 12:42 Titel: |
|
|
ich finds auch tragisch, dass qb ausstirbt, die meisten die auf ne andere Sprache umsteigen sind doch noch nicht mahl bei 90% der Möglichkeiten, die sie mit qb hätten... _________________ Neue Homepage: http://www.glubb.rockt.de
UND
Der Wahnsinn hat seine eigene Homepage: http://pulmollwand.rulz.de |
|
Nach oben |
|
|
Mecki Igel
Anmeldungsdatum: 10.09.2004 Beiträge: 985 Wohnort: Niederbayern
|
|
Nach oben |
|
|
MisterD
Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 14.10.2004, 14:42 Titel: |
|
|
Ich bin jetzt schonso weit.. in Java. Das mag ich aber nicht
das Problem ist, dass dos immer mehr ausgegliedert wird aus Windows, daher wird QB zwangsläufig sterben. _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
|
Stormy
Anmeldungsdatum: 10.09.2004 Beiträge: 567 Wohnort: Sachsen - wo die schönen Frauen wachsen ;)
|
|
Nach oben |
|
|
Triton
Anmeldungsdatum: 10.09.2004 Beiträge: 155 Wohnort: Berlin
|
Verfasst am: 14.10.2004, 17:50 Titel: |
|
|
Sieht auf jeden Fall schonmal ganz gut aus _________________ Coding: silizium-net.de | Portfolio: Triton.ch.vu |
|
Nach oben |
|
|
helium
Anmeldungsdatum: 10.09.2004 Beiträge: 397 Wohnort: Leverkusen
|
Verfasst am: 14.10.2004, 18:05 Titel: |
|
|
Wie soll man Features vermissen, wenn man sie gar nicht kennt? Wer noch nie ein mächtiges Pattern-Matching-System verwendet hat, der wird auch nie auf die Idee kommen, das es cool wäre soetwas in einer Sprache zu haben. Das selbe gillt für unmengen an anderen Dingen, die die großen Sprachen bieten, die in QB aber fehlen.
Beispiel:
Code: |
fakultaet 0 = 1
fakultaet n = n * fakultaet (n-1)
|
Fertig ist die Funktion, die die Fakultät einer belibigen natürlichen Zahl berechnet (in Haskell).
und in QB?
Code: |
Function fakultaet% (n as Integer)
If n =0 Then
fakultaet = 1
Else
fakultaet = n * fakultaet (n-1)
End If
End Function
|
Die QB-Variante ist weniger übersichtlich (vorrausgestzt man kennt die Synthax beider Sprachen) und deutlich länger.
Noch interessanter wird es bei komplexeren Algorithmen. Einige haben doch sicherlich schon mal den Quicksort-Algorithmus in QB gesehen. In Haskell wäre das:
Code: |
quicksort [] = []
quicksort (pivot:rest) = quicksort kleine ++ [pivort] ++ quicksort grosse
where
kleine = [tmp|tmp<-rest,tmp<picot]
grosse = [tmp|tmp<-rest,tmp>=picot]
|
Jeder, der die Synthax kennt kann sofort ersehen, wie der Algorithmus funktioniert. Bei der entsprechenden QB-Variante ist das nicht besonders leicht ersichtlich.
So kann man beinahe jeden Algorithmus in der wiese, in der man ihn sich vorstellt auch notieren, statt ihn erstmal gedanklich so umzufrickeln, dass er zu der Weise wie ein Computer "denkt" passt.
Ich will ein Element sortiert in eine Liste einfügen. Wie mache ich das. Wenn es eine Leere liste ist, in die ich einfüge, dann ist das Ergebnis eine liste bestehend aus diesem einen Element.
Ansonsten kommt es drauf an. Ist das Element, das ich einfügen will kleiner, als das erste Element, dann ist das Ergebnis die Alte Liste mit dem Element vorangestellt. Wenn es größer ist, als das erste Element muss ich versuchen es sortiert in die anderen Elemente einzufügen.
Schnell hingeschrieben und fertig:
Code: |
insertSorted x [] = [x]
insertSorted x (head:tail) = if x < head then x:head:tail else head : insertSorted x tail
|
Hier verwendet wurde einmal Überladung, Patternmatching und eine einfach Verkettete liste, die jede normale funktionale Sprache bereitstellt.
Und es gibt noch Unmengen an weiteren Features, die QB fehlen, die den Programmieraltag deutlich vereinfachen.
Statt sich mit kleinen Algorithmen rumschlagen zu müssen, die dann Seitenweise Code ergeben und kaum noch wartbar sind, schreibt man sie in leicht verständlicher Weise in 3-4 Zeilen hin ohne groß darüber nachdenken zu müssen. Stattdessen hat man dann Zeit sich mit größeren Problemen rumzuschlagen.
Sprachen, wie Haskell, Clean, SML, O'Caml, Scala, etc. sind sicherlich nichts für Anfänger, aber bevor man Jahre damit verbringt auch noch das letzte bischen aus QB rauszuquetschen sollte man doch irgendwann damit anfangen was sinnvolles zu lernen.
Vor allem versaut einem genau das den Stil, den man für die "besseren" (ich nenn sie einfach dreister Weise mal so) Sprachen braucht. QBler versuchen alles immer manuell zu optimieren um noch das letzte bischen Geschwindigkeit herrauszuholen. Aber genau diese Vorgehensweisen versauen den Optimizer moderner Compiler die Möglichkeiten. Der ist auf "normalen" Code ausgerichtet und kann den Code so optimieren, das er ohne irgendwelche Tricks unglaublich schnell ist. |
|
Nach oben |
|
|
Sebastian Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 14.10.2004, 18:44 Titel: Hm... |
|
|
Hallo.
Helium hat Folgendes geschrieben: | Code: | quicksort [] = []
quicksort (pivot:rest) = quicksort kleine ++ [pivort] ++ quicksort grosse
where
kleine = [tmp|tmp<-rest,tmp<picot]
grosse = [tmp|tmp<-rest,tmp>=picot] |
|
Naja, da finde ich Syntax und die Anweisungen aus BASIC aber leichter zu verstehen. Sie sind zwar länger, aber besser zu durchschauen und wenn ich schon diese Klammern und | Striche sehe....
Aber vielleicht bin ich auch einfach zu doof, um Haskell gut zu finden.
Helium hat Folgendes geschrieben: | aber bevor man Jahre damit verbringt auch noch das letzte bischen aus QB rauszuquetschen sollte man doch irgendwann damit anfangen was sinnvolles zu lernen. |
Stimmt. Beim QB-Programmieren geht es ja aber ohnehin nicht darum, die besten und leistungsfähigsten Programme zu erschaffen, sondern einzig und alleine um den Spaß an der schönen, nostalgischen Sprache oder oft auch möglichst einfach ein Programm für eine Kleinigkeit zu bekommen.
(Habe neulich jemandem eine Koordinatenverwaltung in QB programmiert und für sowas reicht QB wirklich noch völlig.)
QB ist wie Amateurfunk zu sehen (von der Motivation her, es zu betreiben). Auch Amateurfunk ist längst überholt, aber macht dennoch vielen Leuten, auch sehr jungen, noch Spaß.
Wenn man allerdings wirklich was erreichen will, hat helium schon absolut Recht. Da muss man dann was anderes hernehmen.
Viele Grüße!
Sebastian
PS: QB4ever! _________________
Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
|
dreael Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 2507 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 14.10.2004, 21:51 Titel: |
|
|
Aus der UNIX/Linux-Welt etwas, welches genauso kurzen Code manchmal gibt: Syntaxprüfung mittels regular expression (regulärer Ausdruck). Den PHP-Webdesignern dürfte sicherlich ereg() an dieser Stelle bekannt sein. Auch Microsoft stellt inzwischen reguläre Ausdrücke in einem Automatisierungsobjekt für VBScript zur Verfügung.
Beispiel: Um die Syntax einer E-Mail-Adresse zu überprüfen, schreibt man einfach
Code: | if(ereg("(^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,3})$)",
$email)) {
$gueltig = true;
} else {
$gueltig = false;
} |
In QB wäre man da ein Weilchen dran, viele Schlaufen und Stringverarbeitungen zu tätigen, um denselben Effekt zu erreichen. _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
|
Sebastian Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
|
marzec
Anmeldungsdatum: 13.10.2004 Beiträge: 267
|
Verfasst am: 16.10.2004, 01:02 Titel: |
|
|
helium hat Folgendes geschrieben: |
Sprachen, wie Haskell, Clean, SML, O'Caml, Scala, etc. sind sicherlich nichts für Anfänger, aber bevor man Jahre damit verbringt auch noch das letzte bischen aus QB rauszuquetschen sollte man doch irgendwann damit anfangen was sinnvolles zu lernen.
|
also funktionale sprachen würde ich jetzt nicht uneingeschränkt als sinvoll bezeichnen. natürlich ist es verlockend z.B. sml oder Haskell als wunderbare sprachen hinzustellen, deren anwendungsgebiete sind aber denoch beschränkt.
dein ansatz imperative mit funktionallen sprachen zu vergleichen is doch ein wenig unüberlegt oder? es handelt sich hier doch um verschiedene paradigmen die man einfach nicht mit einander vergleichen kann/soll. jede sprache hat ihre vorzüge.
btw, sml ist ein alter bekannter von mir, und ehrlich gesagt mir grausts vor dessen konstrukten ziemlich.
achja zum eigentlichen thema...
hab gerade wieder angefangen ein wenig in vbdos zu programmieren, den alten 3d-shooter auf ugl umschreiben damit er hoffentlich auf allen gängigen maschinlein da drausen funktioniert. den aktuellsten snapshot erhält man unter http://ratatoskr.bad-logic.com/rtmbuild0.01.rar _________________ Yagl - yet another gameprogramming library |
|
Nach oben |
|
|
Stormy
Anmeldungsdatum: 10.09.2004 Beiträge: 567 Wohnort: Sachsen - wo die schönen Frauen wachsen ;)
|
|
Nach oben |
|
|
Sebastian Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
|
Stormy
Anmeldungsdatum: 10.09.2004 Beiträge: 567 Wohnort: Sachsen - wo die schönen Frauen wachsen ;)
|
|
Nach oben |
|
|
helium
Anmeldungsdatum: 10.09.2004 Beiträge: 397 Wohnort: Leverkusen
|
Verfasst am: 16.10.2004, 14:24 Titel: |
|
|
Zitat: |
if(ereg("(^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,3})$)",
$email))
|
und was, wenn meine Adresse z.B. auf .info endet?
Zitat: |
also funktionale sprachen würde ich jetzt nicht uneingeschränkt als sinvoll bezeichnen. natürlich ist es verlockend z.B. sml oder Haskell als wunderbare sprachen hinzustellen, deren anwendungsgebiete sind aber denoch beschränkt.
|
Ich halte SML durchaus für alltagsrauglich. Ob ich lust hätte ein Programm rein funktional in Haskell zu schreiben wüsste ich aber auch nicht.
Zitat: |
dein ansatz imperative mit funktionallen sprachen zu vergleichen is doch ein wenig unüberlegt oder? es handelt sich hier doch um verschiedene paradigmen die man einfach nicht mit einander vergleichen kann/soll. jede sprache hat ihre vorzüge.
|
Dann lass Haskell und Clean aus der Liste raus. Alle anderen (SML eingeschlossen) unterstützen auch das imperative Programmieren mit Seiteneffekten (du errinnerst dich sicherlich an ref, ! und :=, wenn du SML kennst).
LISP wäre sicherlich ein besseres Beispiel, als SML. Auch wenn die Sprache recht funktional ist (sie gilt immerhin als die erste funktionale Sprache und wurde ende der 50er entwickelt), ist der Stil der dort praktiziert wird definitiv sehr imperativ.
Zitat: |
Naja, da finde ich Syntax und die Anweisungen aus BASIC aber leichter zu verstehen. Sie sind zwar länger, aber besser zu durchschauen und wenn ich schon diese Klammern und | Striche sehe....
Aber vielleicht bin ich auch einfach zu doof, um Haskell gut zu finden.
|
Naja, das ist ein wenig der Mathematik entliehen.
Mach mal aus
Code: |
[tmp | tmp <- rest, tmp < pivot]
|
ein
und es wird dir bekannt vorkommen
(edit) E soll das Elementsymbol sein, das Euro-Zeichen wollte er irgendwie nicht (/edit).
Du kannst dir auch ne extra Filterfunktion bauen.
Code: |
filter f [] = []
filter f (h:t) = if f h then h : filter f t else filter f t
|
und dann statt
Code: |
[tmp | tmp <- rest, tmp < pivot]
|
dann
Code: |
let kleinerPivot x = x < pivot in filter kleinerPivot rest
|
schreiben. Dann sind die Klammern und das "|" weg.
Wie dem auch sei, dass du Basic besser lesen kannst liegt einmal daran, das du die funktionalen Konzepte nicht kennst und zum anderen, dass du mit der Synthax nicht vertraut bist.
Aber es geht nicht nur darum, dass man Sachen kürzer formulieren kann, sondern auch sachen, die in QB unmöglich sind.
Nehmen wir mal O'caml als Beispiel
Code: |
type 'a tree =
| Leaf
| Node of 'a * 'a tree * 'a tree
|
Schwups habe ich einen Baum.
In C++ kann ich das nachbauen, auch wenn die Verwendung deutlich komplizierter und hässlicher ist:
Code: |
template<typename T>
struct Node {
T value;
boost::shared_ptr<Node<T> > left, right;
};
struct Leaf {};
template<typename T>
struct Tree {
typedef boost::variant<Node<T>, Leaf> Type;
};
|
Das käme dem Original wohl am nächsten, auch wenn ich es in der Praxis in C++ anders machen würde.
In QB ist es einfach unmöglich.
Aber irgendwie hat das alles mit dem ursprnglichen Thema recht wenig zu tun.[/quote] |
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|