Hi,
mein Sohn möchte programmieren lernen, ich selbe habe Java und C# vor paar Jahren gelernnt, also ein wenig aus dem rennen, möchte gerne von Euch Jungs wissen in paar Wörte, womit fängt man heute an und was ist momentan die am meisten benutzten programmier sprache(n), wenn möglich auch die beste Editoren dazu: also
- Programmiersprache(n)?
- Datenbank?
- Editor?
danke für jede nette Antwort
guidi
Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge
Wie alt ist denn der Sohnemann?
Was stellt er sich vor, was soll dabei herauskommen?
Wenn du schonmal Java gemacht hast, böte es sich an, damit einzusteigen. Man kann viel machen, die Sprache ist plattformübergreifend, modern und frei erhältlich, es gibt mit Eclipse eine schöne freie IDE und einen Haufen Tutorials und Bücher im Netz ...
HTH, Z.
Hallo "guidi" !
Mit dem OOP ( Objekt Orientierte Programmierung )habe ich es mal versucht ( Borlands C++ und Delphi ) - aber wahrscheinlich bin ich dafür zu alt.
http://www.profan.de/
stellt BASIC-Compiler bereit ( ältere in Freeware-Version ), welche selbst in Delphi von RGH geschrieben wurden. Die ausführbaren *.exe sind sehr schnell. Dazu gibt es diverse Erweiterungen.
Ausserdem sind empfehlenswert :
http://www.blitzbasic.de/
http://www.powerbasic.de/
http://www.thegamecreators.com/ ( DarkBASIC )
Die arbeiten alle auf OOP & Web-Programmierung hin, sind aber leichter zu verstehen, weil BASIC-ähnlich.
Bevor du dich zu VB.NET oder gar VisualBASIC wendest, sind die obigen Teile allemal besser.
MfG
Ich bin grosser Fan der videogeführten Lern DVDs von Video2brain.com.
Die sind sehr gut, wie ich finde, und kosten nicht die Welt.
Dem kann ich mir nur voll und ganz anschließen.
Wichtig wäre aber in jedem Fall erst mal zu klären was denn überhaupt programmiert werden soll, bzw. in welche Richtung die Vorstellung da geht. Welche Sprache am besten geeignet ist hängt immer vom Anwendungsfall ab.
Gruß
bor
Arbeitet (zusammen) ein OpenBook ab.
http://openbook.galileocomputing.de/csharp/
http://openbook.galileocomputing.de/javainsel8/
Diese sind einfach geschieben und können sicher fast selbständig abgearbeitet werden.
Die Express Editionen von MS sind bei C# empfehlenswert.
Access und SQL Express würde ich empfehlen, denn diese sind innerhalb einer MS Installation einfach und frei zu verwenden.
Bei Linux ist Eclipse & MySql der "Anfänger standard".
Also in der Schule haben wir mit VB angefangen, sehr simpel, und man hat sehr schnell schöne Ergebnisse.
Danach kamen dann HTML und JavaScript, die schon viel komplizierter sind, obwohl man Java sehr gut auf VB beziehen kann.
VB ist allerdings eine Sackgasse. Das klassische VB wird von MS nicht mehr weiter unterstützt und VB.NET ist nicht abwärtskompatibel :-(
HTML ist keine Programmiersprache!
JavaScript hat mit Java so viel zu tun wie Ochsenfrösche mit Ochsen.
"JavaScript hat mit Java so viel zu tun wie Ochsenfrösche mit Ochsen."
Selten so eine geile Definition gelesen ! lol !!!
Man könnte auch sagen: wie ein Rundfunkgerät mit Radioaktivität ;-)
@Topic... wenn es irgend machbar sein sollte - Stichwort Anwendungszweck - würde ich auch Java nehmen. Das ist seit Jahren etabliert, und ich finde, dass es einen Riesen-Charme hat, wie Zaphod eingangs erwähnte, dass man damit Programme "plattform-übergreifend" schreiben kann.
Voraussetzung ist natürlich immer, dass die Plattform, auf der die Programme laufen sollen, ein JRE installiert hat - aber das ist nun wirklich keine ernst zu nehmende Hürde.
Noch etwas: Gelegentlich ist zu lesen, dass Java-Programme langsamer laufen als andere. Das ist aber Unsinn, oder zumindest veraltet.
CU
Olaf
"Noch etwas: Gelegentlich ist zu lesen, dass Java-Programme langsamer laufen als andere. Das ist aber Unsinn, oder zumindest veraltet."
Hä ? - du nix deutsch ?
Du nix Assembler, oder C ( ohne irgendwelche peinlichen Erweiterungen ) verstehen ?
C ist SEHRWOHL SCHNELLER ALS C ###### !!! ( und noch ein Ausrufezeichen ! )
Sogar Delphi ist mindesten doppelt so schnell wie Java, weil die JRT ( JavaRunTime ) halt nur ein Interpreter ist !
MfG
Schlecht gefrühstückt, oder was sollte gerade dieser "Ausbruch"?!
C ist SEHRWOHL SCHNELLER ALS C ###### !!! ( und noch ein Ausrufezeichen ! )
Schön für dich... nur dummerweise war davon in meinem Posting gar nicht die Rede.
Aber setz du nur deine Ausrufungszeichen.
HTH
Olaf
Die JVM ist kein Interpreter, sondern führt Java-Byte-Code (quasi die Maschinensprache der JVM) aus und verfügt darüber hinaus seit Jahren über einen Just-in-Time-Compiler. Programmteile auf die eine hohe Laufzeit entfällt werden automatisch in nativen Maschinencode der Zielplattform compiliert und dann direkt ausgeführt. Bei der Geschwindigkeit muß Java sich heute nicht mehr vor klassischen Programmiersprachen verstecken. Entscheidend sind viel mehr die Algorithmen.
Deine Antwort demonstriert mal wieder eindrucksvoll wie tief diese Vorurteile gegen Java immer noch in den Köpfen verwurzelt sind. Früher als es noch keinen Just-In-Time Compiler gab (der wurde AFAIR erst mit Java2 eingeführt) war Java wirklich langsam, vor allem in Verbindung mit Swing. Mit einer aktuellen JVM und SWT (kommt z.B. auch bei Eclipse zum Einsatz) für graphische Anwendungen ist Java keineswegs langsam.
Gruß
Borlander
Was Java und Langsamkeit angeht: Da kann ich mich nur Olaf und Borlander anschließen: Das war mal so.
C ist SEHRWOHL SCHNELLER ALS C ######
Sogar Delphi ist mindesten doppelt so schnell wie Java
Mit solchen Aussagen zeigst du deutlich, dass du über ein Thema zu reden versuchst, von dem du keine Ahnung hast.
Man kann quasi NIE sagen, dass die eine Programmiersprache "schneller" ist als eine andere. Kommt immer drauf an, was man macht.
Eigentlich finde ich allein die Formulierung "x ist schneller als y" lachhaft - wenn schon, dann würde ich sagen: "x-Programme werden in der Regel schneller/effizienter ausgeführt als y-Programme")
Und eine quantifizierung á la "doppelt so schnell" ist der Blödsinn schlechthin.
abgesehen davon: Delphi ist keine Programmiersprache sondern eine IDE (wie Eclipse usw.), die zu Delphi gehörige Sprache heißt Object-Pascal.
Fazit: Wenn man keine Ahnung hat, einfach mal...
Yan
C ist SEHRWOHL SCHNELLER ALS C ###### !!! ( und noch ein Ausrufezeichen ! )
Sogar Delphi ist mindesten doppelt so schnell wie Java, weil die JRT ( JavaRunTime ) halt nur ein Interpreter ist !
Viel ahnung hast du wenig, davon aber verdammt viel.
Fakt ist, dass die Java runtime ein sogenannte JIT-compiler ist; JIT steht für "Just In time".
Fakt ist ebenfalls, dass ein gut programmiertes Java-programm nicht soviel langsamer ist, als wenn es in C geschrieben wäre, dass es auch nur ansatzweise irgendeine relevanz hätte.
Java hat sich schon seit einigen jahren zu einer sehr ernst zu nehmenden programmiersprache auch für größere projekte gemausert.
Volker
Hallo!
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
Programmiereinsteigern sollte man es möglichst leicht machen,
dann frustriert es nicht gleicht zu Beginn.
Python ist leicht zu erlernen und anzuwenden:
http://www.thomas-guettler.de/vortraege/python/einfuehrung.html
http://openbook.galileocomputing.de/python/
Eine grosse Bibliothek wird schon zu Python mitgeliefert:
http://docs.python.org/library/
Noch mehr gibt es im PyPi: http://pypi.python.org/pypi
Datenbank Sqlite: http://sqlite.org/features.html
Auch recht einfach und für viele Fälle ausreichend.
Wird mit Python verbunden: http://oss.itsystementwicklung.de/trac/pysqlite/
Ein Framework wie bei VB gibt es bei Python nicht.
Unter Windows empfehlen wir: http://www.activestate.com/activepython/
Gruss
ChrE
Möchte mich bei den Forenteilnehmern für sachliche Auseinandersetzung (bis auf den Ausrutscher
„Hä ? - du nix deutsch ?“ vom AmAbendMancherTage) bedanken.
Möglicherweise führt optimale Programmierung in Assembler tatsächlich zur schnellsten Programmausführung. Aber mit welchem Aufwand. Habe selber vor Jahrzehnten in Assembler auf Z80 Basis programmiert. War glücklich ca. 50 Zeilen fehlerfrei funktionierenden Code pro Tag zu fabrizieren. Heute im normalen PC und sogar im Embedded Bereich durch optimierende Compiler obsolet und für Programmieranfänger wirklich nicht zu empfehlen.
Kann als erste Programmiersprache JAVA nur empfehlen. Geht fürs erste sogar ohne IDE und einen simplen Editor..
Die Links vom ChrE haben mir Appetit auf Python gemacht.
Noch einen schönen Tag
Ich würde mit strukturierter Programmierung anfangen.
Zum Beispiel die Programmiersprache C erlernen und dann später vielleicht C++.
Ich bin Linuxanwender und bei Linux sind eine Menge an Programmiersprache dabei.
Für Linux gibt es auch sehr schöne Programmierlehrbücher:
http://wwwuser.gwdg.de/~kboehm/ebook/inhalt.html
Das beste Buch für die Programmiersprache C ist von Kernighan and Ritchie
Das Original in English:
http://www.amazon.de/Programming-Language-Prentice-Hall-Software/dp/0131103628/ref=sr_1_1?ie=UTF8&s=books-intl-de&qid=1250151204&sr=8-1
Die übersetzte Variante:
http://www.amazon.de/Programmieren-C-ANSI-2-C-Reference/dp/3446154973/ref=sr_1_2?ie=UTF8&s=books&qid=1250151204&sr=8-2
Wenn ihr Sohn relativ gut English kann, dann sollte er die englische Originalversion lesen.
Die deutschen Übersetzer haben wahrscheinlich nicht so viel Ahnung von der Programmiersprache C.
Beispielsweise wurde der Begriff Array mit Vektor übersetzt. Keine Ahnung warum man den Begriff Array überhaupt übersetzen muß.
Hier gibt es auch noch ein paar kostenlose Handbücher:
http://www.galileocomputing.de/katalog/openbook/?GPP=opc
Bin mir nicht sicher ob C gerade bei Programmieranfängern zu Frustration führen kann. C ist ja ziemlich kritisch im Definitionsbereich. Da kann schnell etwas schief gehen und man wirft das Handtuch.
Unbestritten ist es für fortgeschrittene Linuxer geradezu ein muß!
mfg
Also ich hätte ebenso C empfohlen, und war mir des Kritikhagels deswegen schon fast sicher
Dennoch: C ist zumindest im Opensource Bereich immernoch die nummer eins, siehe http://www.golem.de/0908/69072.html
und das nicht ohne grund C kann viel mit wenig, und es steht mehr die Logik und das wesen des Programms im Vordergrund, als irgendeine Ichklickmireinengrafikmüllzusammen RAD-Sprache. Da der TE schon gestatet hat, dass er Java und C Sharp bereits erfahrungen gesammelt hat, sollte der aufstieg zu C nicht allzu schwer sein.
Als IDE würde ich den Notepad++ empfehlen. Meines erachtens immer noch der beste.
Als kompiler einen der gcc ports, zb der von cygwin.(Never VS Express^^)
Alternativ könnte man als All in One IDE auch von www.bloodshed.net die Dev-C++ Suite nehmen, die ist auch kostenlos, und bringt den compiler sowie massig packages für verschiedenste bibliotheken mit sich.
Als buch zum einsteigen würde ich im gegensatz zu KarstenW allerdings C von A - Z von Jürgen Wolf empfehlen. Wolf erklärt C für den einsteiger verständlich, und das buch, welches sowohl als Openbook hier: http://openbook.galileocomputing.de/c_von_a_bis_z/ als auch im laden erhältlich ist. Beherrscht man C, ist das Buch als Referenz immer noch klasse.
Falls es dann mal probleme geben sollte, eignet sich die Seite von Wolf, http://www.pronix.de auf der es ein recht gut besuchtes forum gibt, um nach hilfe zu suchen
http://www.amazon.de/f%C3%BCr-Kids-Objektorientierte-Programmierung-Einsteiger/dp/3826607430
fand ich gut.
Im Automobilbereich ist der klassische Verbrennungsmotor immer noch die Nummer eins.
RAD hat durchaus seine Berechtigung, man darf es nur nicht als Allheilmittel ansehen und muß auf einen sauberen Einsatz achten.
Ich bin mir nicht sicher, ob das der richtige Weg ist. (zumindest unter Windows, oder wenn man nicht vorhat, zu tief in Linux einzusteigen)
Ich habe die Erfahrung gemacht, dass viele Studenten, die von Anfang an OOP lernen (z.B. Java), sich schneller in die Konzepte reindenken können. Studenten, die vorher strukturierte Sprachen konnten, neigen oft dazu, gegen diese Konzepte zu verstoßen, weil sie "gewohnte Wege" gehen.
Da die Zukunft ganz klar im OOP liegt, und ich nicht denke, dass es didaktisch etwas bringt, erst das eine und dann das andere zu lernen (ganz viele empfehlen ja immer erst C und dann C++ zu lernen), gebe ich den Tipp: von vornherein eine objektorientierte Sprache lernen. Dann braucht man später nicht umdenken.
Gruß,
Yan
Hallo,
Ich habe keine Lust, gross zu streiten, aber C ist doch nun
wirklich für den Anfänger völlig ungeeignet.
Sie ist zwar maschinennah und schnell, es dauert aber lange, bis man
brauchbare Resultate, die einen motivieren, erstellt hat.
Ehe man den Precomplier und das Speichermanagement durchblickt
hat, ist man alt und grau...
> schöne Programmierlehrbücher
möchte mal wissen, wie die unser Programmieranfänger findet :-)
Im Online Buch steht:
> C ist eine populäre Programmiersprache,
> die von professionellen Programmierern bevorzugt verwendet wird
Ja sollen die Profis ruhig machen, für Anfänger nur frustrierend.
> C ist eine Programmiersprache der wenigen Wörter
In der Kürze liegt die Würze. Darum ist der Quelltext auch oft so
hervorragend lesbar:
-------
int strcmp(const char *s1, const char *s2)
{
while((*s1 && *s2) && (*s1++ == *s2++));
#
return *(--s1) - *(--s2);
}
-------
Bähhh....
> C ist modular. C-Code kann (und sollte) in Routinen,
> so genannten Funktionen, geschrieben werden
Das ist ja ganz was Neues. Geht sicher nur in C
Gruss
ChrE
Also ich muss sagen, ich habe mit C angefangen als ich 14 war. Ich bereue diese entscheidung nicht, ganz im gegenteil. Viele dinge lassen sich mit Jave oder C-Sharp eben nicht regeln. Abgesehen davon stehe ich, entgegen dem allgemeinen Trend, auf schlanke, kleine Programme ohne Grafische Benutzeroberfläche. Mal ganz im ernst(das ist wirklich ernst gemeint), wie sollte man diesen Funktionsumfang sinnvoll in einer GUI regeln:
root@OpenWrt:~# wget -help
GNU Wget 1.11.4, a non-interactive network retriever.
Usage: wget [OPTION]... [URL]...
Mandatory arguments to long options are mandatory for short options too.
Startup:
-V, --version display the version of Wget and exit.
-h, --help print this help.
-b, --background go to background after startup.
-e, --execute=COMMAND execute a `.wgetrc'-style command.
Logging and input file:
-o, --output-file=FILE log messages to FILE.
-a, --append-output=FILE append messages to FILE.
-d, --debug print lots of debugging information.
-q, --quiet quiet (no output).
-v, --verbose be verbose (this is the default).
-nv, --no-verbose turn off verboseness, without being quiet.
-i, --input-file=FILE download URLs found in FILE.
-F, --force-html treat input file as HTML.
-B, --base=URL prepends URL to relative links in -F -i file.
Download:
-t, --tries=NUMBER set number of retries to NUMBER (0 unlimits).
--retry-connrefused retry even if connection is refused.
-O, --output-document=FILE write documents to FILE.
-nc, --no-clobber skip downloads that would download to
existing files.
-c, --continue resume getting a partially-downloaded file.
--progress=TYPE select progress gauge type.
-N, --timestamping don't re-retrieve files unless newer than
local.
-S, --server-response print server response.
--spider don't download anything.
-T, --timeout=SECONDS set all timeout values to SECONDS.
--dns-timeout=SECS set the DNS lookup timeout to SECS.
--connect-timeout=SECS set the connect timeout to SECS.
--read-timeout=SECS set the read timeout to SECS.
-w, --wait=SECONDS wait SECONDS between retrievals.
--waitretry=SECONDS wait 1..SECONDS between retries of a retrieval.
--random-wait wait from 0...2*WAIT secs between retrievals.
--no-proxy explicitly turn off proxy.
-Q, --quota=NUMBER set retrieval quota to NUMBER.
--bind-address=ADDRESS bind to ADDRESS (hostname or IP) on local host.
--limit-rate=RATE limit download rate to RATE.
--no-dns-cache disable caching DNS lookups.
--restrict-file-names=OS restrict chars in file names to ones OS allows.
--ignore-case ignore case when matching files/directories.
-4, --inet4-only connect only to IPv4 addresses.
-6, --inet6-only connect only to IPv6 addresses.
--prefer-family=FAMILY connect first to addresses of specified family,
one of IPv6, IPv4, or none.
--user=USER set both ftp and http user to USER.
--password=PASS set both ftp and http password to PASS.
Directories:
-nd, --no-directories don't create directories.
-x, --force-directories force creation of directories.
-nH, --no-host-directories don't create host directories.
--protocol-directories use protocol name in directories.
-P, --directory-prefix=PREFIX save files to PREFIX/...
--cut-dirs=NUMBER ignore NUMBER remote directory components.
HTTP options:
--http-user=USER set http user to USER.
--http-password=PASS set http password to PASS.
--no-cache disallow server-cached data.
-E, --html-extension save HTML documents with `.html' extension.
--ignore-length ignore `Content-Length' header field.
--header=STRING insert STRING among the headers.
--max-redirect maximum redirections allowed per page.
--proxy-user=USER set USER as proxy username.
--proxy-password=PASS set PASS as proxy password.
--referer=URL include `Referer: URL' header in HTTP request.
--save-headers save the HTTP headers to file.
-U, --user-agent=AGENT identify as AGENT instead of Wget/VERSION.
--no-http-keep-alive disable HTTP keep-alive (persistent connections).
--no-cookies don't use cookies.
--load-cookies=FILE load cookies from FILE before session.
--save-cookies=FILE save cookies to FILE after session.
--keep-session-cookies load and save session (non-permanent) cookies.
--post-data=STRING use the POST method; send STRING as the data.
--post-file=FILE use the POST method; send contents of FILE.
--content-disposition honor the Content-Disposition header when
choosing local file names (EXPERIMENTAL).
--auth-no-challenge Send Basic HTTP authentication information
without first waiting for the server's
challenge.
HTTPS (SSL/TLS) options:
--secure-protocol=PR choose secure protocol, one of auto, SSLv2,
SSLv3, and TLSv1.
--no-check-certificate don't validate the server's certificate.
--certificate=FILE client certificate file.
--certificate-type=TYPE client certificate type, PEM or DER.
--private-key=FILE private key file.
--private-key-type=TYPE private key type, PEM or DER.
--ca-certificate=FILE file with the bundle of CA's.
--ca-directory=DIR directory where hash list of CA's is stored.
--random-file=FILE file with random data for seeding the SSL PRNG.
--egd-file=FILE file naming the EGD socket with random data.
FTP options:
--ftp-user=USER set ftp user to USER.
--ftp-password=PASS set ftp password to PASS.
--no-remove-listing don't remove `.listing' files.
--no-glob turn off FTP file name globbing.
--no-passive-ftp disable the "passive" transfer mode.
--retr-symlinks when recursing, get linked-to files (not dir).
--preserve-permissions preserve remote file permissions.
Recursive download:
-r, --recursive specify recursive download.
-l, --level=NUMBER maximum recursion depth (inf or 0 for infinite).
--delete-after delete files locally after downloading them.
-k, --convert-links make links in downloaded HTML point to local files.
-K, --backup-converted before converting file X, back up as X.orig.
-m, --mirror shortcut for -N -r -l inf --no-remove-listing.
-p, --page-requisites get all images, etc. needed to display HTML page.
--strict-comments turn on strict (SGML) handling of HTML comments.
Recursive accept/reject:
-A, --accept=LIST comma-separated list of accepted extensions.
-R, --reject=LIST comma-separated list of rejected extensions.
-D, --domains=LIST comma-separated list of accepted domains.
--exclude-domains=LIST comma-separated list of rejected domains.
--follow-ftp follow FTP links from HTML documents.
--follow-tags=LIST comma-separated list of followed HTML tags.
--ignore-tags=LIST comma-separated list of ignored HTML tags.
-H, --span-hosts go to foreign hosts when recursive.
-L, --relative follow relative links only.
-I, --include-directories=LIST list of allowed directories.
-X, --exclude-directories=LIST list of excluded directories.
-np, --no-parent don't ascend to the parent directory.
Mail bug reports and suggestions to .
root@OpenWrt:~#
(das ist nur ein beispiel)
Irgendwelche Beispiele außer sehr hardwarenaher Programmierung?
Zum Beispiel wget: Ich sehe kein Problem darin diese Funktionalität über eine GUI bereit zu stellen. Nicht zuletzt auch da die einzelnen Parameter bereits in mehrere Kategorien gegliedert sind. Über eine GUI kann man auch z.B. auch die Anhängigkeiten oder das sich gegenseitige Ausschließen einiger Optionen klar visualisieren.
Bedienung über Kommandozeile hat dann Vorteile wenn man etwas automatisieren will, oder genau weiß was man will und welche Optionen man dazu benötigt. Wenn man erst suchen muß ist eine gut gestaltete GUI oft schneller.
Gruß
Borlander
Hallo!
> wie sollte man diesen Funktionsumfang sinnvoll in einer GUI regeln
Hä, willst Du mich jetzt veräppeln?
Natürlich lassen sich solche Einstellungen sehr gut mittels GUI erledigen.
Die ganz guten Programme lassen natürlich alles zu:
- Kommandozeilenparameter
- INI-File zum Editieren
- GUI für Nutzer, die nicht so oft mit dem Programm zu tun haben und
sich die Schalter nicht merken können. Ja diese Zielgruppe gibt es
auch! Sie verzweifelt jeden Tag an diesen Schei**computern.
Aber die "Profis", besonders im Linuxumfeld wollen die ganze Welt
mit Commandline-Schaltern terrorisieren.
Gruss
ChrE
Die noch besseren Programme können auch noch die Einstellung aus der GUI in einer Config-Datei exportieren ;-)
Gruß
Borlander
Hallo
meine Empfehlung : Visual Studio Express von Microsoft
alles kostenlos und perfekt für Anfänger und Fortgeschrittene.
Dazu eine große Community und Infos (MSN) auf die Du ebenfalls
Zugriff hast.
Mir gefallen vorallem die (ebenfalls kostenlosen) Wecasts zu fast
allen Themen (alle Visual Sprachen, Directx usw.)
Und nun nicht gleich wieder losprügeln, weil MS.
MfG
mlh
Hi,
Ich würde auf Java setzten, später dann evtl. mal C++. Wenn man beides "beherrscht" ist C# sehr schnell erlernbar (merke ich gerade selber). Es kommt aber auch sehr stark auf Deinen Sohn an.
Ich betreue manchmal Praktikanten welche sich für meinen Beruf interessieren und sehe da leider sehr oft das Geduld ein Fremdwort ist. Am besten kommen meiner Meinung nach Einsteiger mit VisualBasic zurecht - damit schafft man sehr schnell den Einstieg und hat gleich eine Gui (Konsole kommt gar nicht an). Wenn das gefällt und der Plan programmieren zu lernen nicht aufgegeben wird, kanns ja mit einer "richtigen" Programmiersprache weitergehen!
Tipp: Such mal nach AntME - oft sehr beliebt für den Einstieg.
Lass uns wissen für was Du Dich entschieden hast und wies klappt ;-)
Gruß, PingOfDeath
oh danke danke Jungs, Ihr seid alle klasse.
danke für all diese Hilfe
guidi
Nabend guidi,
gibt es denn schon ein Ergebnis im Entscheidungsprozess?
Evtl. wäre auch Processing interessant. Baut auf Java auf, zielt aber speziell auch auf Programmiereinsteiger ab und sollte recht schnell zu optisch sichtbaren Erfolgen führen.
Gruß
Borlander
Ich empfehle Pure Basic
1. hab davon im Netz eine kostenlose Vollversion gefunden.
2. viele fertige Funktionen für alles möglich
3. kein Paradigma-Verständnis wie etwa für JAVA erforderlich
Wenn dein Sohn allerdings "Zukunftspläne" etwa in Richtung Programmierer hat, würde ich JAVA empfehlen. Das ist zwar viel "schwerer" - im Gegensatz zu Pure Basic allerdings nicht nur für den privaten Spaß zu gebrauchen sondern wohl noch für sehr viele Jahre im professionellen Umfeld erwünscht und anwendbar.
Gruß Jürgen
Ich hab das ganze was die anderen hier schreiben gerade mal überflogen...
Wenn dein Sohn programmieren(!) lernen möchte ist die Sprache eigentlich schon egal, such dir eine aus die mit einer leicht erlernbaren Syntax daher kommt.
Meine Tipps zur Auswahl:
- Die Sprache sollte leicht lesbar sein, das heißt, keine übermäßiger Verwendung der Zeichen ()[]{};
- Kein Zwangs-OO, das kann für Anfänger der Spaßtöter schlechthin werden.
- Es muss möglich sein zu experimentieren.
Meine Empfehlung, kauf entweder auf eBay einen guten alten "Brotkasten" (C-64...) mit 1541 oder installiere DosBOX und darunter dann das gute alte QBasic, hat Microsoft übrigens immer noch auf ihrem FTP zum kostenlosen und legalem runterladen, es befindet sich im OLDMSDOS Paket.
Beide Lösungen haben den Vorteil das dein Sohn experimentieren kann.
Da ne Zeile hinzufügen und RUN/F5, schauen was passiert, da ne Zeile abändern, wieder RUN am Cevi oder F5 unter QBasic. Das macht Spass und lässt selten Frust aufkommen, weil man sofort Ergebnisse sieht.
Hier ist übrigens ein netter (Englischsprachiger) Artikel dazu:
http://www.salon.com/tech/feature/2006/09/14/basic/index.html
Wenn jemand programmieren kann ist die Sprache egal. Manche Sprachen verleiten aber eher zu einem schlechten Stil.
- Die Sprache sollte leicht lesbar sein, das heißt, keine übermäßiger Verwendung der Zeichen ()[]{};
{} zum Einfassen von Blöcken und () zum Einfassen von Funktionsparametern erhöhen die Lesbarkeit IMHO ganz erheblich. Deutlich übersichtlicher als irgendwelche begin/end-Schlüsselworte.
Programme mit einem Tastendruck direkt aus der IDE ausführen kann man auch mit anderen Sprachen als BASIC...
Gruß
Borlander (der früher selbst viel mit Basic programmiert hat)
(Ich hoffe das Board hier kann BBCode...)
{} zum Einfassen von Blöcken und () zum Einfassen von Funktionsparametern erhöhen die Lesbarkeit IMHO ganz erheblich. Deutlich übersichtlicher als irgendwelche begin/end-Schlüsselworte.
Naja, hab mal mehrere verschachtelte davon und programmier oben drein noch fürn AVR eine Applikation, wo man zwar noch kein Assembler auspacken muss oder will, das ganze aber trotzdem wenig Speicher verbrauchen und zügig von statten gehen soll.
Überdies ist es trotzdem etwas woran sich ein blutiger Anfänger dran aufhängen kann. Und C ist leider auch nicht wirklich Ich-Teste-Mal-Eben-Was und, um auf OP zurück zu kommen, Kinderfrust-Niedrig-Halten tauglich, da braucht es tatsächlich eine Sprache die man, sofern man des Englischen mächtig ist, so lesen kann.
Ich helf mir bei langen Codeblöcken übrigens immer mit folgendem dabei, Beispielcode:
for(foo=0;foo<bar;++foo)
{
switch(foobar(foo))
{
case 1:
// jede menge case und code
}// end switch
}// next foo
C ist halt ein besserer Makroassembler.... *grins duck renn* ;)
Zwei Blockebenen sind doch noch harmlos. In fremden Code habe ich durchaus auch schon 12 Blockebenen gesehen. Das ist in jeder Sprache schlecht lesbar, selbst wenn man Kommentare ans Blockende setzt...
Wenn man solche Hilfskonstrukte braucht um den Überblick zu behalten, dann sollte man ernsthaft darüber nachdenken ob eine Funktion nicht vielleicht deutlich zu groß und oder komplex geworden ist.
Das C nicht zum Einstieg zu empfehlen ist darüber sind sich doch fast alle einig.
Eine Einrückung von 1 Leerzeichen scheint mir übrigens deutlich zu wenig. Ich verwende heute meistens 4 Zeichen bzw. lieber sogar noch Tab (dann kann es jeder nach seinem Geschmack einstellen).
Gruß
Borlander
Wieso das denn? Dann kann er besser zu K-BASIC greifen und schlägt damit gleich drei Fliegen mit mit einer klappe - K-BASIC hat nämlich sowohl einen GW-BASIC als auch einen VB6 Kompatibilitätsmodus, d.h. ich kann Programme in deren Syntax erstellen.
Kann ich aber auch bleiben lassen und den vollen Sprachumfang von K-BASIC nutzen und dann ist sogar *echte* OOP möglich --- wenn ich das will, K-BASIC zwingt mich nicht dazu.
Habe gerade erst angefangen mich mit der Sprache zu befassen.
Volker
[K-BASIC statt Cevi oder DosBOX+QB]
Könnte er auch, aber bei meinem Lösungsvorschlag kann $Kind nichts am Rechner kaputt machen.
Cevi aus, Cevi an und schon funktioniert er wieder, und das innerhalb von Sekunden.
DosBOX zu, DosBOX auf und schon gehts wieder.
Übrigens haben beide einen Riesen Vorteil, man lernt mit Resourcen zu haushalten und nicht, wie die meisten Programmierer es Heutzutage leider machen, damit zu aasen.
(Wir ham ja 4 GByte RAM...... wollnwer ma voll schaufeln.......)
Das sind unbestreitbare Vorteile, da gebe ich dir Recht.
Du lässt aber IMO einige wesentliche Aspekte völlig ausser acht:
1. Das C64 BASIC (und alle anderen BASICs der damaligen zeit) verführen nicht nur, sondern erziehen zu einem schlechten Programierstil (Stichwort: GOTO)
2. Das BASIC der damaligen Zeit hatte ein völlig anderes Konzept, es ist eine rein Funktionale Programmiersprache, nicht prozedural und sowas wie Ereignissteuerung kannst du völlig vergessen (oder musst mit Tricks arbeiten)
3. Und moderne konzepte wie OOP kannst du gleich ganz vergessen
4. Versuch doch mal, im C64 eine halbwegs vernünftige Oberfläche für deine Applikation zu erstellen. ja ich weiss, wir haben es gemacht (auch wenn ich gegen den Strom geschwommen bin und keinen C64 sondern einen Sharp MZ-731 hatte); aber sei doch mal ehrlich: es war beim Programmieren ein Krampf und im Ergebnis eine Krücke.
Volker
Ok, GOTO ist jetzt auch nicht unbedingt mein Traumbefehl, ich schreibe selber gerne mit FreeBASIC (moderne QB45 Adaption unter GPL, kompiliert sich selber und nutzt die GNU Tools) und da gehts auch ohne, selbst einige Elemente aus der OOP sind dabei. Unter anderem können Types (c: structs) Funktionen haben und diese auch überladen.
Versuch doch mal, im C64 eine halbwegs vernünftige Oberfläche für deine Applikation zu erstellen.
Ja, BASIC v2 ist langsam, aber schau mal in unseren 20 Zeiler Wettbewerb, Ergebnisse liegen hier: http://noname.c64.org/csdb/event/?id=1443
Downloadlink: http://noname.c64.org/csdb/release/download.php?id=83371 <- Da sind dann auch Plaintext Sourcen drin, einer hat sogar einen CrossAssembler missbraucht um sein BASIC Programm zu erzeugen, und ich habe sogar einen kleinen Preprozessor in FB geschrieben damit mein Urquelltext Kommentare enthalten kann und nicht jede Zeile eine Zeilennummer braucht.
(Und ja, manche Konstrukte sind eher Krampfartig, sie funktionieren aber und sind spielbar. ;) )
Hallo,
BASIC ist doch so was von out...
Nehmt doch lieber was lebendiges, das auch weiterentwickelt wird.
> - Die Sprache sollte leicht lesbar sein, das heißt, keine übermäßiger Verwendung der Zeichen ()[]{};
braucht Python nicht.
Man muss auch list comprehension (Listen aus Listen erzeigen)
nicht unbedingt benutzen.
Blöcke werden mit einem Tab abgegrenzt. Manche mögen das nicht,
der Code ist aber gut lesbar und einfach gehalten.
> - Kein Zwangs-OO, das kann für Anfänger der Spaßtöter schlechthin werden.
In Python ist es auch möglich funktional oder prozedural zu programmieren
> - Es muss möglich sein zu experimentieren.
Alle Ausdrücke, die Python kennt, kannst Du in einem interaktiven
Modus testen, dieser ist integraler Beatndteil des Interpreters.
Es gibt auch Dinge wie iPython, die beim Testen nützlich sind.
Gruss
ChrE
Beweis durch Behauptung oder wie?
Tipp: schau dir K-Basic an, am besten hier:
http://kbasic.com/description.html
schau dir die Screenshots an, lade dir mal die Demoversion herunter, spiele damit rum und urteile *dann*
braucht Python nicht.
Was, bitte, soll man mit einer Nischensprache wie Python?
Volker
Hallo,
> Was, bitte, soll man mit einer Nischensprache wie Python?
Welche Nische meinst Du?
Machen wir doch einen Google-Fight:
http://www.googlefight.com/index.php?lang=en_GB&word1=python+import&word2=kbasic
KBasic kennt (noch) kein Schwein.
Ist doch ein Visual Basic Clone.
Mal sehen, wie es in 10 Jahren aussieht...
Gruss
ChrE
Einer, der dessen sprachinhalte aber deutlich übertrifft. oder kann VB echtes OOP?
Volker
Hallo!
> oder kann VB echtes OOP?
Keine Ahnung... :-)
bzw. wohl eher nicht. Ist schon lange her, dass ich in VB programmiert habe.
MS preist ja nicht umsonst C# an.
Interessiert mich auch nicht, Python kann das alles.
und noch viel mehr...
Ich würde meine Energie viel lieber in Python stecken.
Durch die sprachlichen Konstrukte und die mächtigen Datentypen
muss man weniger Code schreiben als für andere Programmiersprachen.
Und ein gibt für alles eine Lösung:
http://pypi.python.org/pypi?%3Aaction=index
Welche Nische meinst Du noch mal?
Gruss
ChrE
Hallo!
Sry: Und ein gibt für alles eine Lösung: -> Und hier gibt für alles eine Lösung:
Gruss
ChrE
VBA kann immerhin schon Objekte, allerdings keine Vererbung. Also das "richtige VB" wirds dann wohl auch in irgendeiner Form "können"...
Hallo!
Ja, die schönen visuellen IDEs haben schon iher Vorteile.
Aber man ist immer so an die IDE gebunden, nicht so sehr an den
Algorithmus/Datenstruktur. Darum habe ich mich von VB gelöst...
Die Objekte, die VB zur Verfügung stellte, haben wohl für 90% der
Kundschaft gereicht. Die wollten ohnenhin mehr VBA als VB :-)
Gruss
ChrE
Nope, kann es nicht. Und seit dot-Net wird das klassische VB auch nicht mehr weiterentwickelt, MS steckt seine Energie voll in dot-Net (von dem ich, mit verlaub, nichts halte)
Volker
Hm. Kann VB eigentlich an irgendeiner Stelle nennenswert mehr als VBA?
Ja, kann es durchaus. Ich könnte jetzt nur grad nix aufzählen, ist zu lange her, dass ich mal direkt mit VB zu tun hatte.
Ein Beispiel fällt mir aber ein: in VB kannst du vergleichsweise problemlos auch während der Laufzeit, gesteuert per Code, einem Formular weitere Steuerelemente hinzufügen.
Bei VBA musst du - zumindest unter Access - fürchterlich tricksen um das zu erreichen, es ist jedenfalls nicht trivial.
KBasic übertrifft beide, es verbindet zudem die vergleichsweise schnelle Erlernbarkeit von BASIC mit der echten OOP von Java.
Bei den OOP-Elementen ist sogar die Syntax recht ähnlich.
Ich bin seit ein paar Monaten dabei, mich einzuarbeiten - wie es meine zeit erlaubt.
Bin aus zeitmangel allerdings noch nicht sehr weit gekommen; nuja, es kommen demnäxt die dunklen Monate... ;-)
Volker