Von Anonymous am Di, 11. September 2007 um 13:09 #
Ich wünschte die Buchautoren die früher immer Turbo Pascal für den Beispielcode verwendet haben, würden heutzutage wieder auf Free Pascal setzen.
Aber bedauerlicherweise gehen die immer mehr dazu über, auf Programmiersprachen zu setzen, die entweder nicht so gut für den eigentlichen Lesestoff, über welchen das Buch handelt, geeignet sind, oder sie verwenden absolute Nischenprogrammiersprachen die entweder heutzutage total veraltet sind oder kein Mensch kennt.
Pascal aber war schon immer eine gute Sprache für dir reine Lehre und auch recht einfach und schnell zu erlernen, so daß man sich auf das eigentliche Thema des Buches konzentrieren konnte, anstatt wieder irgendeine Hinterlerwäldlersprache zu lernen oder sich mit C++ herumzuschlagen, daß war ne wichtige Sprache ist, aber aufgrund ihrer Komplexität vom Thema das Buches abhält und eignetlich wollte man ja erstmal die Grundkonzepte, die das Buch vermitteln will, lernen.
Von Anonymous am Di, 11. September 2007 um 15:14 #
Hast du jemals in Fortan, Smalltalk, LISP oder Scheme programmiert?
Also ich nicht, und im Studium programmiert man inzwischen in der Regel (mal abgesehen von den Script Sprachen Perl und Phyton) in C++, Java oder C#, mit etwas Glück auch in ADA 95.
Die ersten 3, also C++, Java und C# sind die großen verbreiteten Sprachen, aber alle 3 haben gemeinsam, daß sie als Lehrsprache zu groß und komplex sind und wenn das Thema nicht gerade Objektorientierte Programmierung ist, dann sollte man lieber eine einfache Sprache, die sich dafür besser eignet, verwenden.
Und die beste Sprache von allen ist dafür nunmal immer noch die Lehrsprache Pascal, dafür wurde sie entwickelt. Und wer erstmal die Grundlagen der Programmierung mit Pascal begriffen hat, der kann das Wissen auch problemlos auf die großen 3 Sprachen adaptieren.
Von Anonymous am Di, 11. September 2007 um 15:31 #
Nein, denn mit Smalltalk schmeißt du dem Lernenden ja auch wieder die Objektorientiere Programmierung an den Kopf und die ist wieder ein Kapitel für sich.
Smalltalk ist also lediglich dann geeignet, wenn man die Objektorienterte Programmierung verstehen will, aber nicht für Algorithmen, AFS & Co.
genau. Und zwar viel besser als Java und C++. C++ ist doch nur ein "C lernt objektorientiert" aber eben keine Sprache die von Anfang an für dieses Paradigma konstruiert wurde.
Von vicbrother am Di, 11. September 2007 um 21:43 #
Wenn eine Sprache zum Lernen von Programmierparadigma geeignet ist, dann wohl Python mit seiner klaren Architektur und den schnellen Programmiererfolgen.
Von thomas001 am Di, 11. September 2007 um 15:51 #
> Hast du jemals in Fortan, Smalltalk, LISP oder Scheme programmiert? Ja,habe ich. > Also ich nicht, und im Studium programmiert man inzwischen in der Regel [...] Eigentlich programmiert man an der Uni gar nicht gross. Aber die Abteilung mit der ich viel zu tun habe schreibt ihre sachen in ML oder Haskell (z.b. deren online uebungs tool).
Java komplex? *hust* Man merkt das du nie Lisp oder Smalltalk programmiert hast
Fortran war hübsch. Lisp findet, neben Java, übrigens gewaltige Anwendung z.B. in der Computer-Linguistik. Und wenn du Glück hast gibts noch die eine oder andere weltfremde Spezialität gratis als Beilage hinzu. Was du lernen magst mag eine Sache sein, eine ganz andere ist es aber was der Markt verlangt. Und das ist eben nicht Pascal und die letzte Aussage halte ich für ein gewaltiges Gerücht, welches insbesondere in der kurzen Zeit der Bachelor Studiengänge absurd ist. 70% ist Selbststudium und 30% Veranstaltungen an der Uni, sprich man sollte schon etwas von der Materie verstehen.
Pascal ist ideal als Sprache, nur weil es unter Unix nicht so viel genutzt wurde, muss man sich nicht in die Hosen machen und Herdenisntinkten folgen.
Wenn du sauberen und wartbaren Code willst, greife zu Pascal. Die meisten Fehler, die man in C Software findet, wären in Pascal gar nicht erst aufgetreten. Nicht ohne Grund ist unter Linux die Applikationswelt etwas bescheiden. Und: Freepascal ist plattformunabhängig, kommt mit einer IDE daher mit der es eine Freude ist produktiv zu arbeiten.
Für eigene stabile Applikationen ist Pascal ideal.
Nimm nur mal die Stringbearbeitung, wende es wie du willst, es ist unter C ein Graus. Oder denke an XML mit C++. Freepascal ist auf der Höhe der Zeit, es hat nur ein bisschen gebraucht bis es fertig war. Eine super Entwicklungsumgebung, uneingeschränkt zu empfehlen.
Sogar das meiste, was du seinerzeit mit Borland Pascal gecodet hast, läuft einfach so.
Wo ist das Problem bei C++ und XML? Strings kann C++ auch von Haus aus bearbeiten. Meistens werkelt man mit einer API rum die auf C++ aufsetzt, wie z.B. Qt, da ist alles drinn. Den Lowlevelschrott aus der Standard-API nutzen nur Masochisten.
Man kann die Grundkonzepte des Programmierens auch anhand einer Programmiersprache lernen, die in der Praxis eine Bedeutung hat. Pascal ist einfach out. Die Arbeitgeber wollen Bewerber, die eine kurze Einarbeitungszeit benötigen. Deshalb sind irgendwelche Nischensprachen wie Pascal oder irgendwelche Kunstsprachen einfach kontraproduktiv! Die Zeit sollte man besser nutzen, um die Grundkonzepte anhand von C oder Java zu lernen.
ich denke dem Threadersteller ging es um "Informatik-Bücher" und nicht irgendwelche "Jetzt lerne ich Programmiersprache XY" Bücher.
Ich muss dem Threadersteller hier auch recht geben. Informatik-Bücher sollten intuitive Programmiersprachen verwenden, die man auch versteht, wenn man damit noch nie programmiert hat. Eigentlich reicht sogar eine pseudo-Programmiersprache, wobei es manchmal schon schön sei kann, wenn man ein Algorithmus einfach mit copy&paste testen kann. Daher würde ich C eher für ungeeignet halten (zu "kryptische" für nicht C Programmierer). Programmiersprachen die einem das OO Modell aufzwingen sind auch nicht geeignet, da man dafür viel zu viel drum herum verstehen/lernen muss (Klassen, Objekte, Vererbung, Polymorphie,...).
Gute Sprachen sind hier in der tat Pascal oder auch Ada (mein persönlicher Favorit). Schöne imperative Programmiersprachen die einfach zu lesen und zu verstehen sind, auch wenn man damit noch nie programmiert hat.
> ich denke dem Threadersteller ging es um "Informatik-Bücher" > und nicht irgendwelche "Jetzt lerne ich Programmiersprache XY" Bücher.
Ja das habe ich auch so verstanden. Aber warum sollte ich, um die Grundzüge des Programmierens (Informatik-Grundlagen) zu erlernen, irgendwelche Programmiersprache lernen, die praktisch keine Bedeutung hat? Besser man nimmt gleich eine gebräuchliche Sprache, da hat man dann später eine kürzere Einarbeitungszeit.
Kein Arbeitgeber will Bewerber die Pascal können und eine gefragte Sprache lernen könnten. Da wird eher derjenige eingestellt, der die gefragte Sprache schon kann.
Deshalb schrieb ich: Man kann die Grundkonzepte des Programmierens auch anhand einer Programmiersprache lernen, die in der Praxis eine Bedeutung hat.
Von Anonymous am Di, 11. September 2007 um 15:19 #
> a das habe ich auch so verstanden. Aber warum sollte ich, um die Grundzüge des Programmierens (Informatik-Grundlagen) zu erlernen, irgendwelche Programmiersprache lernen, die praktisch keine Bedeutung hat?
Damit du die Grundzüge auch verstehst und verinnerlichen kannst und dich nicht mit den Tiefen und Fallstricken von C++ herumschlagen mußt.
> Besser man nimmt gleich eine gebräuchliche Sprache, da hat man dann später eine kürzere Einarbeitungszeit.
Oder man hat aufgrund ihrer Komplexität die Grundlagen nicht begriffen, ist durcheinander und schreibt daher nur noch unbrauchbaren Code. Genau das ist die Gefahr dabei. Du gewinnst also dadurch nichts, wenn du gleich mit den großen Sprachen anfängst.
> Kein Arbeitgeber will Bewerber die Pascal können und eine gefragte Sprache lernen könnten. Da wird eher derjenige eingestellt, der die gefragte Sprache schon kann.
Das mag zwar stimmen, aber letzterer wird dann wieder gefeuert, wenn er Müll zusammenfrickelt, weil er damals nie die Grundkonzepte verstanden hat.
> Man kann die Grundkonzepte des Programmierens auch anhand einer Programmiersprache lernen, die in der Praxis eine Bedeutung hat. Siehe oben. Der Ansatz ist schlechter, da er mehr verwirrt als hilft.
Die Gehirnwäsche der Unis hat bei euch schon gut gewirkt. Wenn ihr erst mal am Anfang des Berufslebens steht, werdet ihr jammern, wie Realitätsfern die Uni war. Grundlagen sind durchaus sehr wichtig, aber es sollte immer einen Bezug zur Praxis geben. Logisch, dass das die Herren Professoren nicht wollen, denn sonst müssten sie ja selber mal was dazu lernen und müssten ihre Vorlesungen alle paar Jahre der Entwicklung anpassen. Es ist natürlich für den Prof einfacher, ein Skript zu entwerfen und dieses dann 20 Jahre oder länger unverändert zu verwenden.
Von thomas001 am Di, 11. September 2007 um 15:56 #
ne aber wenn man von der uni kommt ist man halt kein code monkey sondern kann noch denken Vll tippt man nicht die neusten,supertollsten patterns in 30s runter, aber dafuer ueberlegt man was man da eigentlich schreibt ;)
btw welche entwicklung? seit smalltalk gibt es doch nur noch andere syntax fuer das gleiche konzept in den "populaeren" programmiersprachen und smalltalk ist aus den 70gern. Oder meinst du die aktuell grade gehypte web api um $buzzword zu tun?
Ja eingebildet bist du garnicht. Jemand, der die Konzepte am Beispiel von C oder Java gelernt hat, kann natürlich nicht denken. Schon klar. Zum Glück gibt es derzeit an den Unis einen Generationenwechsel bei Professoren, die nicht nur Lochkarten, Ablaufdiagramme, Lehrsprachen und den Editor vi lieben. Der Beruf des Profs verleitet leider dazu, sich auf seinen Lorbeeren auszuruhen.
Wer Grundzüge der Informatik (und ich meine die Grundzüge) mit C lernt, kann danach mit genausowenig C wie jemand der mit Pascal angefangen hat.
Schleifen, Bedingungen, Funktionen, Formeln, Variablen, mehr ist es nicht.
Das was die Studies lernen sollen, ist nur das Konzept dieser Basis und die Lösung von Problemen mit diesem Denkansatz.
Die Syntax (und nichts unterscheidet hier C von Pascal) können die Studies in den Kursen eh nur abtippen. Libraries, Headers, Compilerflags, etc. etc. werden entweder abgetippt oder vorgegeben.
Was soll dann die im Verhältnis zusätzliche kryptische C-Syntax? Wozu gleich alles in Objekte packen müssen (Java, C#), wenn Objekte gar nicht Gegenstand der Einführung sind?
Natürlich wäre es besser für diejenigen die später sich ins Programmieren vertiefen, wenn gleich eine der üblichen Programmiersprachen gelernt wird.
Aber: 1. Betrifft das in den Kursen wohl <2% der Studies 2. Können von diesen 2% wohl 1,5% eh schon annehmbar programmieren 3. Lernt man an der Uni nicht den Beruf selbst, sondern wie man sich das nötige Wissen aneignet. Wer also Programmieren anhand von Pascal, Basic, etc. verstanden hat (nicht beherrscht) lernt _leichter_ jede andere Programmiersprache
Und da bin ich auch beim Vorredner: Wer das Konzept (weil leichte anschauliche Syntax) verstanden hat, lernt später viel leichter C, C# oder Java. Wer dabei schon scheitert und/oder die Lust verliert weil es unnötig schwer ist, wird es später wohl nicht mehr versuchen oder viel später lernen.
Klar sind Blockdiagramme dämlich, weil sie einfach veraltet sind, aber den Inhalt vermitteln sie trotzdem. Und hier meine ich veraltet nur deswegen, weil es heute bessere Möglichkeiten gibt wissen zu vermitteln, als ein dämliches Stück Papier.
Pascal ist eine schöne Sprache mit großer Strenge und Logik. Und Free Pascal leistet all das, was Turbo Pascal und Borland Pascal geleistet hat, mit Lazarus hast du einen Delphi-Ersatz. Gute und reife Software. Wenn du willst kannst du auch zu GNU Pascal greifen...
Für Applikationen ist Pascal besser geeignet als C. C kommt aus der Systemprogrammierung und ist deshalb eng mit Unix verbunden. Du sparst dir schlichtweg unglaublich viele Fallen, wenn du mit Pascal codest. Früher hatten C-compiler den kleinen Vorsprung beim Speed und Flexibilität beim Direkzugriff auf das System, das aber ist Geschichte oder vielmehr die Krux.
Von thomas001 am Mi, 12. September 2007 um 01:44 #
Das meinte ich nicht, ich meinte das die Ausbildung in der Uni nicht darauf abzielt dir konkrete Programmiertechniken, Algorithmen, usw beizubringen, die kann man nachschlagen wenn man sie braucht. Es geht darum das einem beigebracht wird was dahinter steckt und wie man grundsaetzlich an ein Problem herangeht. Wie schon weiter unten richtig festgestellt ist nicht das ziel der uni ihre leute zu programmierern auszubilden, das koennen andere einrichtungen besser. Dir sollte auch klar sein das Informatik mehr ist als Programme tippen. Irgendwie werden hier die Akzente aber nur auf diesen Aspekt gesetzt.
Unsere Profs muessen hier uebrigens mindestens 2 mal im jahr veroeffentlichen, nur mit lorbeeren schaft man das auch nicht ;)
wer in vi programmiert ist natuerlich von gestern? sag das mal den ganzen kernel hackern, da ist doch immernoch vi der beliebteste editor (vor emacs)?
>Das meinte ich nicht, ich meinte das die Ausbildung in der Uni nicht darauf abzielt dir konkrete Programmiertechniken, Algorithmen, usw beizubringen, die kann man nachschlagen wenn man sie braucht. Es geht darum das einem beigebracht wird was dahinter steckt und wie man grundsaetzlich an ein Problem herangeht.
Richtig, ich finde es immer wieder lustig, was für ein Bild die Öffentlichkeit von einem Informatiker hat.
Bei den absoluten Leihen bedeutet Informatiker: "Profi im Umgang mit jeder Art von Software" wenn du in 10Sekunden nicht weißt wie es geht oder wo der Fehler ist, dann bist du ein schlechter "Informatiker".
Bei den fortgeschrittenen, die zumindest ungefähr wissen wie Software entsteht ist der Informatiker dann der "Programmier-Gott" und wenn er eine der coolen Programmiersprachen nicht kann oder nicht mal schnell alles mögliche zusammen Hacken kann, dann ist es ein schlechter "Informatiker".
Ich denke ich muss nicht sagen, dass beide Bilder absolut nichts mit dem Informatiker an sich zu tun haben. Ich versuche das immer so zu erklären: "Man erwartet von einem Maschinenbau Ingenieur nicht, dass er in der Werkstatt steht und die ganzen Maschinen bedienen und die Sachen bauen kann und genauso wenig ist der Informatiker der Programmierer der in die Tasten haut".
PS: Wenn man mit vi programmiert ist man wirklich nicht von gestern... man ist von vorgestern! Heute programmiert man mit Emacs und die Freunde von gestern programmieren mit vim, nvi und ähnlichem. :))
Von Anonymous am Mi, 12. September 2007 um 08:36 #
> Bei den absoluten Leihen bedeutet Informatiker: "Profi im Umgang mit jeder Art von Software" wenn du in 10Sekunden nicht weißt wie es geht oder wo der Fehler ist, dann bist du ein schlechter "Informatiker".
Das kenne ich all zu gut.
Von mir wird erwaretet, daß ich mich als Informatiker mit Videoschnitt auskenne und mal so schnell einen Film am Computer zusammenschneide, das hat ja etwas mit Computer zu tun, da bin ich ja angeblich gut drin. :shock:
Exakt und während man noch überlegt was 42 bedeutet, nehmen sich die Arbeitgeber die fähigeren Aspiranten aus dem Ausland. Geschieht im Moment, ganz einfache Sache. Informatik in Deutschland ist ein Traum, der im Ausland keine Bedeutung hat. Diejenigen, die im Ausland ankommen, sind jene die es "drauf haben", sprich improvisieren können.
Wenn Du an die Uni nur gegangen bist, um Coder zu werden, dann hast Du eh was falsch gemacht. Genau wie in der Mathematik nicht das Kopfrechnen gelehrt wird, genauso wenig wird in der Informatik Programmieren im Detail gelehrt. Da gibt es bestenfalls Einführungskurse, wobei Du Dir in der Regel das Wissen um die Syntax genauso gut selber beibringen kannst.
Ja das ist das Problem mit Professoren die vor 40 Jahren das letzte mal Lochkarten gestanzt haben und seitdem nichts mehr dazu gelernt haben. Die wollen dann über Konzepte referieren, die sie selber nie persönlich angewandt haben.
Ich wollte nur mal erwähnen, dass meine Professoren ausnahmslos Kapazitäten auf ihrem Fach waren. Die Folien (zumindest in Spezialvorlesungen) wurden jedes Semester an den aktuellen Stand der Forschung angepasst und das ist das, was in der Industrie erst in ein paar Jahren state-of-the-art wird. Ich habe sehr großen Respekt vor dem was meine Professoren leisten und geleistet haben. In der Uni lernt man nicht zu programmieren - da kann man eine Fachinformatiker Ausbildung machen, aber ich habe gelernt mich innerhalb kürzester Zeit in jedes erdenkliche Informatiksystem einzuarbeiten. (Beispielsweise vor kurzem für ein Projekt innerhalb von einem Tag in TCL/TK - das ist kein Problem, da die theoretischen Konzepte klar sind). Vielleicht liegt das daran, dass sich das neuerdings Eliteuni nennt, aber reißt hier das Maul mal nicht so auf. Programmieren ist keine Kunst, das kann (fast) jeder mit ein bisschen Übung. Gute Systeme zu entwickeln ist verdammt schwer und das ist das was die Uni mir beigebracht hat.
> Aber warum sollte ich, um die Grundzüge des Programmierens (Informatik-Grundlagen) zu > erlernen, irgendwelche Programmiersprache lernen, die praktisch keine Bedeutung hat? Besser > man nimmt gleich eine gebräuchliche Sprache, da hat man dann später eine kürzere > Einarbeitungszeit.
Es gibt Informatiker, die können _nicht_ programmieren. Algorithmen ausdenken und beweisen geht trotzdem.
>Aber warum sollte ich, um die Grundzüge des Programmierens (Informatik-Grundlagen) zu erlernen, irgendwelche Programmiersprache lernen, die praktisch keine >Bedeutung hat?
Hiermit finde ich hast Du das Problem schon sehr schön selbst formuliert. Viel mehr sollte es aber noch heißen: Warum sollte man überhaupt eine Programmiersprache lernen, um die Grundzüge des Programmierens zu lernen?! Und eben genau das vermeiden eben "einfache" Programmiersprachen wie z.B. Pascal. Man lernt Programmieren, aber keine Programmiersprache, denn die ist so einfach gehalten das man sie relativ schnell intuitiv versteht. Sobald Du aber anfängst komplexere Sprachen zu verwenden MUSST Du auch die Programmiersprache lernen.
Von vicbrother am Di, 11. September 2007 um 21:49 #
Wobei man vielleicht streiten darf, ob die Lehrreihenfolge so sinnvoll ist. Ich erinnere mich an die Folge funktionale Programmierung - imperative Programmierung - objektorientierte Programmierung. Aber sollte man heutzutage nicht lieber eine einfache Sprache nehmen wie Python und gleich die objektorientierte Programmierung lehren? Von der Abstraktion in Objekte und Module kann ein Anfänger doch gleich lernen wie es besser ist, anstatt mit Spaghetti-Code herumzuarbeiten. Der saubere Entwurf ist doch das A&O der Softwareentwicklung.
Von der Abstraktion in Objekte und Module kann ein Anfänger doch gleich lernen wie es besser ist, anstatt mit Spaghetti-Code herumzuarbeiten. Dann darfst du aber nicht mit Python beginnen, sondern musst mit UML 2.0 einsteigen. In Python kannst du nämlich genauso leicht Spaghetti-Code programmieren wie in rein imperativen Sprachen.
Von vicbrother am Mi, 12. September 2007 um 09:29 #
Das wäre sowieso der richtige Ansatz. Problemanalyse - Modellierung - Optimierung. Und dann kann man den Leuten doch mittels einer geeigneten Sprache wie Python die objektorientierte Programmierung zeigen. Alles andere ist zwar schön zu wissen, aber leider fangen die Leute später dann an Probleme beim Coden zu lösen, statt sich erst Gedanken zu machen.
Von Anonymous am Di, 11. September 2007 um 15:04 #
Das sehe ich anders.
Schau dir mal eine neue Auflage von dem Buch Algorithmen in C++ vom Adison Wesley Verlag an. Der Code ist schlecht, nicht gerade objekt orientiert und das sieht man dann auch bei den Rezensionen auf Amazon.de Da gibt es mehr als genug Leute, die beklagen, daß der Autor zu C++ gewechselt ist. Dabei war das mal früher ein gutes Buch, daß Pascal verwendete. Und solche Beispiele gibt es mehr als genug.
Auch halten große Programmiersprachen wie C++ davon ab, den eigentlichen Stoff, den das Buch vermitteln will zu lernen. Die Leute quälen sich mit C++ herum und dabei haben sie noch nichtmal die Grundlagen verstanden. Aber das sagte ich bereits.
Nein, absolut nicht. Grundkonzepte kann man in jeder Sprache lernen und dann eben transferieren. Wer Pascal kann, kann auch sofort Javascript oder php programmieren. Das ist alles ähnlich. Mit C sollte man überhaupt nichts lernen außer C.
Ausserdem kann man in all diesen Sprachen produktiv coden.
Grundkonzepte sind ja nicht wirklich das, was du in der Praxis brauchst. Zur Praxis führt nur Programme schreiben, umschreiben, Probleme lösen usw.
Warum ist Pascal ideal? Weil es aus den Fehlern von C gelernt hat und strenger und somit weniger anfällig gegenüber syntaktischen Problemen ist. Du kannst eben bestimmte Sachen in Pascal nicht machen, die man aber in C auch nicht machen sollte, und wenn man das tut, sind es Quellen für Bugs.
Von Anonymous am Di, 11. September 2007 um 13:19 #
Hat schonmal jemand versucht die Open Source Anwendung StarUML, die in Delphi für Windows geschrieben wurde, mit FreePascal zu compilieren?
Das wäre doch mal ne tolle Sache, wenn man es mit Free Pascal unter Windows compilieren könnte, dann könnte man die Anwendung auch dank Free Pascal mal nach Linux portieren.
Eine gute UML Anwendung für Linux die Open Source ist, fehlt nämlich noch.
Bevor es jemand vorschlägt, nein, Umbrella ist nicht gut, das ist momentan nicht zu gebrauchen.
Von vicbrother am Di, 11. September 2007 um 15:09 #
LOL! Umbrella oder sogar Dia mit StarUML zu vergleichen zeigt auf, dass du StarUML noch nie gesehen hast. Das Problem ist nur, das StarUML nicht mehr weiterentwickelt wird...
Von Anonymous am Di, 11. September 2007 um 15:24 #
Ja, Omondo ist nicht schlecht. IMO sogar recht gut, aber es ist nicht Open Source und von der Bedienung her, finde ich StarUML trotzdem immer noch besser.
Auf sowas proprietäres und altbackenes wie FreePascal setzt einfach kein klar denkender Mensch. Ok, Hobbyisten können damit rumspielen aber im "business" spielt das Zeug keine Rolle, wenn überhaupt dann in Einzelfällen Delphi aber das ist auch auf dem absteigenden Ast.
Also so ein blödsinniger Kommentar. Erstens ist FreePascal Open-Source. Und warum soll es für das Business nicht geeignet sein ? Also da hätte ich gerne mal ein paar Argumente gehört ...
> Und warum soll es für das Business nicht geeignet sein ?
Davon war nicht die Rede. Er sagte, dass Pascal im Business keine Bedeutung hat. Und das stimmt ja wohl, von einigen Nischen abgesehen. Pascal wird vom Arbeitgeber einfach nicht nachgefragt. Also warum sollte man Pascal lernen, wenn man hinterher C/C++ und Java im Beruf braucht? Die Wahrscheinlichkeit, dass Pascalkenntnisse im Beruf nachgefragt werden, sind eben sehr gering.
Pascal ist effizient und sauber und lösungsorientiert. Am besten mal den Herdeninstinkt vergessen. Pascal ist eine Sprache ohne Schlacke und große Fallen. Sie hat nur unter Unix keine Tradition. Pascal sollte man lernen, weil man damit nur sauber coden kann. Wenn dann einer C schreibt, ist die Qualität besser. So wie Java leichter wartbar ist als C++ ist Pascal leichter wartbar als C. Weil in beiden Fällen auf syntaktische Sauberkeit wert gelegt wurde. Es ist für Sprachen ohne Helm wie C oder c++ einfach gut, wenn man durch Pascal oder Java stylistisch diszipliniert codet.
In der Theorie ist dein Geschreibsel sicher richtig nur kann man mit Pascal in der Praxis nichts anfangen weil: a) Das Drumherum fehlt: Libs, IDEs, fähige Leute denen ich nicht erst Pascal beibringen muss. Java bekommt heute jeder Student eingebleut, C++ Entwickler gibts wie Sand am Meer, C ist im Embeddedumfeld immer noch State of the Art. Pascal? Hat heute nur noch Bedeutung in der Lehre und selbst dort wird es von Java verdrängt, siehe Hochschulen. b) Keine Nachfrage von Kunden. Pascal interessiert niemanden. Schau dir die Projektausschreibungen an, das sagt alles wie relevant diese Altlast heute ist.
C hat nur deshalb eine Renaissance erlebt, weil es quasi mit Unix verheiratet ist. Und ohne Linux wäre Unix heute sowieso tot. Ausserdem war es performater. Das Problem mit C ist, dass es einfach einen miesen code erzeugt.
Pascal als Sprache baut auf den Fehlern von C auf. Ausserdem gibt es weissgott bindings für alles. Pascal hat darunter gelitten, dass man es in eine objektorientierte Sprache verwandeln wollte. Pascal ist strukturiert und das ist für die allermeisten Zwecke die beste Art zu programmieren.
Den Letzten Pascal Quellcode eines realen Projektes den ich zuletzt lesen musste um es in C++ neu umzusetzen war für mich als nicht Pascal Experte sehr kryptisch. Und das war kein Quellcode von Leuten die das als Hobby erstellt haben.
Ich möchte nicht behaupten das C++ automatisch besser ist, aber wenn es von Leuten geschrieben ist die ihr Handwerk verstehen lässt sich C++ sehr gut lesen und verstehen.
Nö, aber wir programmieren an der Uni Assembler für MIPS-Prozessoren. Unsere IDE ist Notepad, unser Compiler SPIM. Ordentliche Assembler-Programmierer finden bestimmt immer einen Job....glaub ich...
Program Pascalsche; uses crt; begin Writeln('Hallo Welt'); end.
Pascal macht einfach Spass. So wie viele von uns nach der GUI auch wieder die Kommandozeile schätzen gelernt haben, bin ich ein großer Fan von Ncurses-artigen Oberflächen. Die sind einfach performant.
Freepascal hat bindings für jeden Schnickschnack. Man kann schnell und relativ fehlerfrei mal eben ein Programm schreiben. Pascal ist zwar streng, dafür kannst du auch nicht so leicht Fehler machen. Ideal für Applikationen. Den ganzen makefile-overhead hast du bei Pascal weitgehend optional und logisch aufgebaut.
Als man früher auf die blanke Kommandozeile schaute, dachte man, sowas wie VI hat keine Zukunft. Denkste. Heute denken manche das Gleiche über Pascal. Stimmt aber nicht.
Von Querulant und Programmierexper am Do, 13. September 2007 um 21:52 #
10 Nur damit kann man schön programmieren, goto 20 20 immer alles schön im Überblick, goto 30 30 dank Zeilennummern, goto 40 40 gibt nix besseres, goto 100
1. ohne denken geht nie etwas so in der praxis ob studiert oder nicht
2. normalerweise kann ein guter softwareentwickler mehr als eine sprache wer angst vor neuer syntax hat scheint dann ebenen doch nicht so gut denken zu können
3. ich beteilige mich ungern an solche das-ist-gut-das-nicht-gewäsch die praxis zeigt das man "vieles" können sollte (und dabei das denken nicht vergessen)
and die unerfahrenen studies: die welt dreht sich nicht so wie die uni/fh wenn euere berufsziel die pure forschung ist ok - aber da landen die wenigsten
würden heutzutage wieder auf Free Pascal setzen.
Aber bedauerlicherweise gehen die immer mehr dazu über, auf Programmiersprachen zu setzen, die entweder nicht so gut für den
eigentlichen Lesestoff, über welchen das Buch handelt, geeignet sind, oder sie verwenden absolute Nischenprogrammiersprachen
die entweder heutzutage total veraltet sind oder kein Mensch kennt.
Pascal aber war schon immer eine gute Sprache für dir reine Lehre und auch recht einfach und schnell zu erlernen,
so daß man sich auf das eigentliche Thema des Buches konzentrieren konnte, anstatt wieder irgendeine Hinterlerwäldlersprache zu lernen
oder sich mit C++ herumzuschlagen, daß war ne wichtige Sprache ist, aber aufgrund ihrer Komplexität vom Thema das Buches abhält
und eignetlich wollte man ja erstmal die Grundkonzepte, die das Buch vermitteln will, lernen.
Also ich nicht, und im Studium programmiert man inzwischen in der Regel (mal abgesehen von den Script Sprachen Perl und Phyton) in C++, Java oder C#, mit etwas Glück auch in ADA 95.
Die ersten 3, also C++, Java und C# sind die großen verbreiteten Sprachen, aber alle 3 haben gemeinsam,
daß sie als Lehrsprache zu groß und komplex sind und wenn das Thema nicht gerade Objektorientierte Programmierung ist, dann sollte man lieber eine einfache Sprache, die sich dafür besser eignet, verwenden.
Und die beste Sprache von allen ist dafür nunmal immer noch die Lehrsprache Pascal, dafür wurde sie entwickelt.
Und wer erstmal die Grundlagen der Programmierung mit Pascal begriffen hat, der kann das Wissen auch problemlos auf die großen 3 Sprachen adaptieren.
Smalltalk ist also lediglich dann geeignet, wenn man die Objektorienterte Programmierung verstehen will,
aber nicht für Algorithmen, AFS & Co.
Absolut leserlicher Code und geniale Framworks z.b Rails.
Ein gutes Buch für den Anfang wäre:
http://home.vrweb.de/~juergen.katins/ruby/buch/
Ja,habe ich.
> Also ich nicht, und im Studium programmiert man inzwischen in der Regel [...]
Eigentlich programmiert man an der Uni gar nicht gross. Aber die Abteilung mit der ich viel zu tun habe schreibt ihre sachen in ML oder Haskell (z.b. deren online uebungs tool).
Java komplex? *hust* Man merkt das du nie Lisp oder Smalltalk programmiert hast
NikN
Wenn du sauberen und wartbaren Code willst, greife zu Pascal. Die meisten Fehler, die man in C Software findet, wären in Pascal gar nicht erst aufgetreten. Nicht ohne Grund ist unter Linux die Applikationswelt etwas bescheiden. Und: Freepascal ist plattformunabhängig, kommt mit einer IDE daher mit der es eine Freude ist produktiv zu arbeiten.
Für eigene stabile Applikationen ist Pascal ideal.
Nimm nur mal die Stringbearbeitung, wende es wie du willst, es ist unter C ein Graus. Oder denke an XML mit C++. Freepascal ist auf der Höhe der Zeit, es hat nur ein bisschen gebraucht bis es fertig war. Eine super Entwicklungsumgebung, uneingeschränkt zu empfehlen.
Sogar das meiste, was du seinerzeit mit Borland Pascal gecodet hast, läuft einfach so.
Strings kann C++ auch von Haus aus bearbeiten. Meistens werkelt man mit einer API rum die auf C++ aufsetzt, wie z.B. Qt, da ist alles drinn. Den Lowlevelschrott aus der Standard-API nutzen nur Masochisten.
Ich muss dem Threadersteller hier auch recht geben. Informatik-Bücher sollten intuitive Programmiersprachen verwenden, die man auch versteht, wenn man damit noch nie programmiert hat. Eigentlich reicht sogar eine pseudo-Programmiersprache, wobei es manchmal schon schön sei kann, wenn man ein Algorithmus einfach mit copy&paste testen kann.
Daher würde ich C eher für ungeeignet halten (zu "kryptische" für nicht C Programmierer). Programmiersprachen die einem das OO Modell aufzwingen sind auch nicht geeignet, da man dafür viel zu viel drum herum verstehen/lernen muss (Klassen, Objekte, Vererbung, Polymorphie,...).
Gute Sprachen sind hier in der tat Pascal oder auch Ada (mein persönlicher Favorit). Schöne imperative Programmiersprachen die einfach zu lesen und zu verstehen sind, auch wenn man damit noch nie programmiert hat.
> und nicht irgendwelche "Jetzt lerne ich Programmiersprache XY" Bücher.
Ja das habe ich auch so verstanden. Aber warum sollte ich, um die Grundzüge des Programmierens (Informatik-Grundlagen) zu erlernen, irgendwelche Programmiersprache lernen, die praktisch keine Bedeutung hat? Besser man nimmt gleich eine gebräuchliche Sprache, da hat man dann später eine kürzere Einarbeitungszeit.
Kein Arbeitgeber will Bewerber die Pascal können und eine gefragte Sprache lernen könnten. Da wird eher derjenige eingestellt, der die gefragte Sprache schon kann.
Deshalb schrieb ich:
Man kann die Grundkonzepte des Programmierens auch anhand einer Programmiersprache lernen, die in der Praxis eine Bedeutung hat.
Damit du die Grundzüge auch verstehst und verinnerlichen kannst und dich nicht mit den Tiefen und Fallstricken von C++ herumschlagen mußt.
> Besser man nimmt gleich eine gebräuchliche Sprache, da hat man dann später eine kürzere Einarbeitungszeit.
Oder man hat aufgrund ihrer Komplexität die Grundlagen nicht begriffen, ist durcheinander und schreibt daher nur noch unbrauchbaren Code.
Genau das ist die Gefahr dabei.
Du gewinnst also dadurch nichts, wenn du gleich mit den großen Sprachen anfängst.
> Kein Arbeitgeber will Bewerber die Pascal können und eine gefragte Sprache lernen könnten. Da wird eher derjenige eingestellt, der die gefragte Sprache schon kann.
Das mag zwar stimmen, aber letzterer wird dann wieder gefeuert, wenn er Müll zusammenfrickelt, weil er damals nie die Grundkonzepte verstanden hat.
> Man kann die Grundkonzepte des Programmierens auch anhand einer Programmiersprache lernen, die in der Praxis eine Bedeutung hat.
Siehe oben.
Der Ansatz ist schlechter, da er mehr verwirrt als hilft.
btw welche entwicklung? seit smalltalk gibt es doch nur noch andere syntax fuer das gleiche konzept in den "populaeren" programmiersprachen und smalltalk ist aus den 70gern. Oder meinst du die aktuell grade gehypte web api um $buzzword zu tun?
Zum Glück gibt es derzeit an den Unis einen Generationenwechsel bei Professoren, die nicht nur Lochkarten, Ablaufdiagramme, Lehrsprachen und den Editor vi lieben. Der Beruf des Profs verleitet leider dazu, sich auf seinen Lorbeeren auszuruhen.
Wer Grundzüge der Informatik (und ich meine die Grundzüge) mit C lernt, kann danach mit genausowenig C wie jemand der mit Pascal angefangen hat.
Schleifen, Bedingungen, Funktionen, Formeln, Variablen, mehr ist es nicht.
Das was die Studies lernen sollen, ist nur das Konzept dieser Basis und die Lösung von Problemen mit diesem Denkansatz.
Die Syntax (und nichts unterscheidet hier C von Pascal) können die Studies in den Kursen eh nur abtippen.
Libraries, Headers, Compilerflags, etc. etc. werden entweder abgetippt oder vorgegeben.
Was soll dann die im Verhältnis zusätzliche kryptische C-Syntax?
Wozu gleich alles in Objekte packen müssen (Java, C#), wenn Objekte gar nicht Gegenstand der Einführung sind?
Natürlich wäre es besser für diejenigen die später sich ins Programmieren vertiefen, wenn gleich eine der üblichen Programmiersprachen gelernt wird.
Aber:
1. Betrifft das in den Kursen wohl <2% der Studies
2. Können von diesen 2% wohl 1,5% eh schon annehmbar programmieren
3. Lernt man an der Uni nicht den Beruf selbst, sondern wie man sich das nötige Wissen aneignet. Wer also Programmieren anhand von Pascal, Basic, etc. verstanden hat (nicht beherrscht) lernt _leichter_ jede andere Programmiersprache
Und da bin ich auch beim Vorredner: Wer das Konzept (weil leichte anschauliche Syntax) verstanden hat, lernt später viel leichter C, C# oder Java.
Wer dabei schon scheitert und/oder die Lust verliert weil es unnötig schwer ist, wird es später wohl nicht mehr versuchen oder viel später lernen.
Klar sind Blockdiagramme dämlich, weil sie einfach veraltet sind, aber den Inhalt vermitteln sie trotzdem.
Und hier meine ich veraltet nur deswegen, weil es heute bessere Möglichkeiten gibt wissen zu vermitteln, als ein dämliches Stück Papier.
Für Applikationen ist Pascal besser geeignet als C. C kommt aus der Systemprogrammierung und ist deshalb eng mit Unix verbunden. Du sparst dir schlichtweg unglaublich viele Fallen, wenn du mit Pascal codest. Früher hatten C-compiler den kleinen Vorsprung beim Speed und Flexibilität beim Direkzugriff auf das System, das aber ist Geschichte oder vielmehr die Krux.
Unsere Profs muessen hier uebrigens mindestens 2 mal im jahr veroeffentlichen, nur mit lorbeeren schaft man das auch nicht ;)
wer in vi programmiert ist natuerlich von gestern? sag das mal den ganzen kernel hackern, da ist doch immernoch vi der beliebteste editor (vor emacs)?
Richtig, ich finde es immer wieder lustig, was für ein Bild die Öffentlichkeit von einem Informatiker hat.
Bei den absoluten Leihen bedeutet Informatiker: "Profi im Umgang mit jeder Art von Software" wenn du in 10Sekunden nicht weißt wie es geht oder wo der Fehler ist, dann bist du ein schlechter "Informatiker".
Bei den fortgeschrittenen, die zumindest ungefähr wissen wie Software entsteht ist der Informatiker dann der "Programmier-Gott" und wenn er eine der coolen Programmiersprachen nicht kann oder nicht mal schnell alles mögliche zusammen Hacken kann, dann ist es ein schlechter "Informatiker".
Ich denke ich muss nicht sagen, dass beide Bilder absolut nichts mit dem Informatiker an sich zu tun haben.
Ich versuche das immer so zu erklären: "Man erwartet von einem Maschinenbau Ingenieur nicht, dass er in der Werkstatt steht und die ganzen Maschinen bedienen und die Sachen bauen kann und genauso wenig ist der Informatiker der Programmierer der in die Tasten haut".
Das kenne ich all zu gut.
Von mir wird erwaretet, daß ich mich als Informatiker mit Videoschnitt auskenne und mal so schnell
einen Film am Computer zusammenschneide, das hat ja etwas mit Computer zu tun, da bin ich ja angeblich gut drin. :shock:
In der Uni lernt man nicht zu programmieren - da kann man eine Fachinformatiker Ausbildung machen, aber ich habe gelernt mich innerhalb kürzester Zeit in jedes erdenkliche Informatiksystem einzuarbeiten. (Beispielsweise vor kurzem für ein Projekt innerhalb von einem Tag in TCL/TK - das ist kein Problem, da die theoretischen Konzepte klar sind).
Vielleicht liegt das daran, dass sich das neuerdings Eliteuni nennt, aber reißt hier das Maul mal nicht so auf. Programmieren ist keine Kunst, das kann (fast) jeder mit ein bisschen Übung. Gute Systeme zu entwickeln ist verdammt schwer und das ist das was die Uni mir beigebracht hat.
> erlernen, irgendwelche Programmiersprache lernen, die praktisch keine Bedeutung hat? Besser
> man nimmt gleich eine gebräuchliche Sprache, da hat man dann später eine kürzere
> Einarbeitungszeit.
Es gibt Informatiker, die können _nicht_ programmieren. Algorithmen ausdenken und beweisen geht trotzdem.
Hiermit finde ich hast Du das Problem schon sehr schön selbst formuliert. Viel mehr sollte es aber noch heißen: Warum sollte man überhaupt eine Programmiersprache lernen, um die Grundzüge des Programmierens zu lernen?!
Und eben genau das vermeiden eben "einfache" Programmiersprachen wie z.B. Pascal. Man lernt Programmieren, aber keine Programmiersprache, denn die ist so einfach gehalten das man sie relativ schnell intuitiv versteht. Sobald Du aber anfängst komplexere Sprachen zu verwenden MUSST Du auch die Programmiersprache lernen.
Dann darfst du aber nicht mit Python beginnen, sondern musst mit UML 2.0 einsteigen.
In Python kannst du nämlich genauso leicht Spaghetti-Code programmieren wie in rein imperativen Sprachen.
Schau dir mal eine neue Auflage von dem Buch Algorithmen in C++ vom Adison Wesley Verlag an.
Der Code ist schlecht, nicht gerade objekt orientiert und das sieht man dann auch bei den Rezensionen auf Amazon.de
Da gibt es mehr als genug Leute, die beklagen, daß der Autor zu C++ gewechselt ist.
Dabei war das mal früher ein gutes Buch, daß Pascal verwendete.
Und solche Beispiele gibt es mehr als genug.
Auch halten große Programmiersprachen wie C++ davon ab, den eigentlichen Stoff, den das Buch vermitteln will zu lernen.
Die Leute quälen sich mit C++ herum und dabei haben sie noch nichtmal die Grundlagen verstanden.
Aber das sagte ich bereits.
Ausserdem kann man in all diesen Sprachen produktiv coden.
Grundkonzepte sind ja nicht wirklich das, was du in der Praxis brauchst. Zur Praxis führt nur Programme schreiben, umschreiben, Probleme lösen usw.
Warum ist Pascal ideal? Weil es aus den Fehlern von C gelernt hat und strenger und somit weniger anfällig gegenüber syntaktischen Problemen ist. Du kannst eben bestimmte Sachen in Pascal nicht machen, die man aber in C auch nicht machen sollte, und wenn man das tut, sind es Quellen für Bugs.
mit FreePascal zu compilieren?
Das wäre doch mal ne tolle Sache, wenn man es mit Free Pascal unter Windows compilieren könnte,
dann könnte man die Anwendung auch dank Free Pascal mal nach Linux portieren.
Eine gute UML Anwendung für Linux die Open Source ist, fehlt nämlich noch.
Bevor es jemand vorschlägt, nein, Umbrella ist nicht gut, das ist momentan nicht zu gebrauchen.
Ich meine mich erinnern zu können, dass man damit schöne UML-Diagramme erzeugen konnte.
Geh mal ein bisschen Respekt lernen!
Schau dir mal StarUML an und vergleiche es mit Umbrella, dann wirst du erkennen, daß Umbrelle nichtmal 5 % von dem ist,
was StarUML bietet.
Ich fand es recht brauchbar.
http://www.eclipseplugincentral.com/Web_Links-index-req-viewcatlink-cid-19.html
IMO sogar recht gut, aber es ist nicht Open Source und von der Bedienung her, finde ich StarUML trotzdem immer noch besser.
Ok, Hobbyisten können damit rumspielen aber im "business" spielt das Zeug keine Rolle, wenn
überhaupt dann in Einzelfällen Delphi aber das ist auch auf dem absteigenden Ast.
Altbacken? Gründe?
Davon war nicht die Rede. Er sagte, dass Pascal im Business keine Bedeutung hat. Und das stimmt ja wohl, von einigen Nischen abgesehen. Pascal wird vom Arbeitgeber einfach nicht nachgefragt. Also warum sollte man Pascal lernen, wenn man hinterher C/C++ und Java im Beruf braucht? Die Wahrscheinlichkeit, dass Pascalkenntnisse im Beruf nachgefragt werden, sind eben sehr gering.
a) Das Drumherum fehlt: Libs, IDEs, fähige Leute denen ich nicht erst Pascal beibringen muss. Java bekommt heute jeder Student eingebleut, C++ Entwickler gibts wie Sand am Meer, C ist im Embeddedumfeld immer noch State of the Art. Pascal? Hat heute nur noch Bedeutung in der Lehre und selbst dort wird es von Java verdrängt, siehe Hochschulen.
b) Keine Nachfrage von Kunden. Pascal interessiert niemanden. Schau dir die Projektausschreibungen an, das sagt alles wie relevant diese Altlast heute ist.
-> PASCAL - R.I.P.
C hat nur deshalb eine Renaissance erlebt, weil es quasi mit Unix verheiratet ist. Und ohne Linux wäre Unix heute sowieso tot. Ausserdem war es performater. Das Problem mit C ist, dass es einfach einen miesen code erzeugt.
Pascal als Sprache baut auf den Fehlern von C auf. Ausserdem gibt es weissgott bindings für alles. Pascal hat darunter gelitten, dass man es in eine objektorientierte Sprache verwandeln wollte. Pascal ist strukturiert und das ist für die allermeisten Zwecke die beste Art zu programmieren.
Ich möchte nicht behaupten das C++ automatisch besser ist, aber wenn es von Leuten geschrieben ist die ihr Handwerk verstehen lässt sich C++ sehr gut lesen und verstehen.
(nur, um bei dem Bild zu bleiben)
cu
mawh
für FreePascal im Stile der Borland-BP/TP-IDE?
Gruß
H.
Freepascal hat eine IDE.
Bei mir(Debian) heisst das Paket fp-ide und ist bei stable mit dabei.
Aufrufen mit «fp»
Alternativ die grafische GUI Lazarus: lazarus.freepascal.org
Unsere IDE ist Notepad, unser Compiler SPIM.
Ordentliche Assembler-Programmierer finden bestimmt immer einen Job....glaub ich...
Gust
Ich hoffe schon lange, wieder der lötkolbennahen Programmierung näher zu kommen...
...also mal Augen aufhalten...
Manchmal muß man sich 'n Schubs geben...
uses crt;
begin
Writeln('Hallo Welt');
end.
Pascal macht einfach Spass. So wie viele von uns nach der GUI auch wieder die Kommandozeile schätzen gelernt haben, bin ich ein großer Fan von Ncurses-artigen Oberflächen. Die sind einfach performant.
Freepascal hat bindings für jeden Schnickschnack. Man kann schnell und relativ fehlerfrei mal eben ein Programm schreiben. Pascal ist zwar streng, dafür kannst du auch nicht so leicht Fehler machen. Ideal für Applikationen. Den ganzen makefile-overhead hast du bei Pascal weitgehend optional und logisch aufgebaut.
Als man früher auf die blanke Kommandozeile schaute, dachte man, sowas wie VI hat keine Zukunft. Denkste. Heute denken manche das Gleiche über Pascal. Stimmt aber nicht.
20 immer alles schön im Überblick, goto 30
30 dank Zeilennummern, goto 40
40 gibt nix besseres, goto 100
100
so in der praxis ob studiert oder nicht
2. normalerweise kann ein guter softwareentwickler mehr als eine sprache
wer angst vor neuer syntax hat scheint dann ebenen doch nicht so gut denken zu können
3. ich beteilige mich ungern an solche das-ist-gut-das-nicht-gewäsch
die praxis zeigt das man "vieles" können sollte (und dabei das denken nicht vergessen)
and die unerfahrenen studies: die welt dreht sich nicht so wie die uni/fh
wenn euere berufsziel die pure forschung ist ok - aber da landen die wenigsten
freude - ich