FreePascal az iskolában?

Fórumok

Egy gimnázium matematika tagozatos tanulója vagyok. Elképzelhető, hogy az iskola a programozás-oktatásbanlegalábbis részben átáll Free Pascalra. Ehhez kellenek az érvek.Tények:

  • Jelenleg, mint a legtöbb iskolában, ahol programozást tanítanak, Turbo Pascalt tanítanak. Ez az informatika órai feladatoknak meg is felel. A diákok által használható gépeken Linux van, így dosemu-t használunk a TP futtatásához.
  • A matematika tagozaton tavaly algoritmurokról is tanultunk, ehhez kapcsolódóan mindenkinek meg kellett oldania egy-egy (különböző nehézségű) programozási feladatot. Ezek komolyabb matematikai algoritmusok, amikben az is számít, hogy a program sok adaton is gyorsan fut-e.
  • Az iskola nyújt matematikai internetes szolgáltatásokat, többek között feladatgyűjteményeket. Az algoritmusokról szóló feladatok megoldási algoritmusait az interneten is közzé szeretnénk tenni. Jó lenne kihasználni a Free Pascal előnyeit (legalábbis az a FP-t ismerők számára), de nehézkes karbantartani mind a TP, mind az FP kódot.
  • Én kezdeményeztem a Free Pascal használatát, részben a matematikatanárom is támogatja. A tavalyi feladatokat Turbo Pascalban csinálták a legtöbben. Sokan vannak, akiknek könnyen lehet, hogy még a Free Pascal telepítése és használatba vétele is gondot jelentett volna, épp azért használtunk TP-t, mert informatika órán is azt tanították.

Mit várunk a Free Pascaltól:

  • A Turbo Pascal kereskedelmi program, míg a Free Pascal szabad szoftver, tehát szabadon terjeszthető, módosítható, a beépített unitok forrása megtekinthető.
  • A Turbo Pascal legújabb verziója 1992-es, míg a Free Pascalt folyamatosan fejlesztik, így belekerülnek a modern nyelvi konstrukciók (pl. dinamikus tömbök, jó OOP-támogatás) és az operációs rendszerekhez kapcsolódó újabb funkciók. Az új funkciók olyan szerkezetek egyszerű megvalósítását is lehetővé teszik, amelyek Turbo Pascalban sokkal bonyolultabban valósíthatók meg, pl. dinamikusan változtatható méretű tömbökét. Egy olyan feladatban, amelyben az algoritmusnak sok adaton kell gyorsan működnie, ez fontos.
  • A Turbo Pascal kizárólag DOS-os, 16 bites programokat tud készíteni. Ez egyrészt sebességcsökkenést eredményez, mert a mai operációs rendszereken (Linuxon és egyéb Unix-szerű rendszereken és Windowson) csak valamilyen emulációs megoldással futtatható, másrészt dinamikus memóriakezeléssel is csak maximum 1 MB memóriát tud felhasználni. Ezzel szemben a Free Pascal Linux, Windows és még sok más operációs rendszerre natív kódot tud készíteni, és a programok az egész rendelkezésre álló memóriakapacitást.
    felhasználhatják.

Továbbá véleményem szerint nem okozhat problémát az átállás, hiszen a Free Pascal TP kompatibilitási módban felülről kompatibilis a Turbo Pascallal.

Az informatika tanárok által felvetett problémák és a válaszaim (nem mindenhol szó szerint) a következők voltak:

  • - Csak angolul van dokumentáció, könyv is kevéssé kapható hozzá, a többlettudását pedig jó dokumentáció nélkül nehéz kihasználni.
    - Mivel megfelelő kompatibilitási módban kompatibilis a Turbo Pascallal, illetve az Object Pascallal (Delphivel), és a TP-hez képesti többlettudásának a nagy része is megegyezik a Delphi megvalósításaival, az ezekhez készült leírások általában használhatók. A matematika órán néhány info. órán nem tanult konstrukciót megbeszéltünk, ami kellhet a feladatok hatékony megoldásához. Ráadásul bizonyos konstrukciók sokkal gyorsabban elmagyarázhatók, mint a Turbo Pascal-beli helyettesítésük (pl. mutatókezelés helyett dinamikus tömbök). Magyar nyelvű könyvet elég gyorsan találtam az interneten. Továbbá ha ez nem is várható el, a diákok jó része meg tudja érteni a (szerintem viszonylag egyszerű nyelvdezetű) dokumentációt, így kihasználhatja a Free Pascal előnyeit.
  • Az ingyenesség valóban fontos, de akinek ez a legfontosabb, az használhat TP5.5-t, az ingyenes.
    Nem is tudom, mi a különbség egy modern szabad szoftver és egy 20 éves freeware között.
  • Egyetemen legalább féléves tananyag a kód hatékonységának növelése, melynek nyilván csak egy csekély szelete a fordító hatékonysága. Én az oktatásban nem ezt érzem a legfontosabb szempontnak.
    A matematika órán előkerült algoritmusokban lényeges, hogy az algoritmus sok adatra is elfogadható sebességgel is működjön, a feladatnak ehhez hatékonyabb megoldását kell adni. A statikusan lefoglalható 64 kB memóriában egyszerűen nem lehet annyi adatot elhelyezni, hogy az algoritmus sebessége számítson, nem lehet összehasonlítani az algoritmusok sebességét. Nem is lehet úgy jó programot írni, hogy előre megadott, statikusan lefoglalt memóriamennyiséget használunk (miközben a legtöbben csak ezt ismerik), így vagy fölöslegesen fogyasztjuk a gép erőforrásait, vagy nem használjuk ki azokat. Pláne későbbi felhasználásra szánt függvényt. Sokszor még 1 MB sem elég vagy az adatok elhelyezéséhez, vagy esetleg az algoritmus futása közben ideiglenesen tárolt adatokhoz, és a mutatók használatát sokkal nehezebb megértetni azokkal, akik csak az iskolában tanultak programozni, mint a Free Pascal (vagy Delphi) dinamikus tömböket. (Free Pascalban még a mutatók kezelése is szabadabb.) Emellett bár lehet, nem érdemes hatékony kódot írni egy elavult fordító számára egy elavult operációs rendszerre, mert sokkal többet számítana a modern operációs rendszeren futó modern natív kódra való áttérés.
  • Én a "helyette" szót kicserélném "mellette"-re, azaz 9., 10. osztályban (matek tagozaton) az érdeklődők valóban használhatnak inkább FreePascal-t TP helyett.
    Nem csak az érdeklődőkről van szó. 9.-ben mindenki kapott (komolyabb-kevésbé komoly) leprogramozandó matematikai algoritmust, ahol sok esetben számított a sebesség is, illetve nagy adathalmazokkal, vagy bonyolultabb struktúrákkal kellett dolgozni. Valószínűleg sokaknak még a Free Pascal fordító beállítása és használata is gondot okozott volna.

A legújabb levelemre, amit már elég régen írtam, még nem kaptam választ, matektanárom szóbeli konzultációt javasolt.

Várom a véleményeket, további érveket.

Hozzászólások

Szerintem a Pascal-t, mint olyat nem kene eroltetni. Java, vagy inkabb Python. Ja, hogy ahhoz a tanaroknak is kene tanulniuk... ugy mar nem megy. :) vagy inkabb :(

Bocs, de sztem meg az alap programozási ismeretek elsajátításához a Pascal bőven elég.. Majd ha a tanuló elsajátított egyfajta programozói gondolkodás módot akkor neki lehet álni a komolyabb nyelveknek is ( C, Python, Perl és társai ), de amíg szegény gyerek azt se tudja mi az a ciklus, elágazás, tömb és társai addig ne akarja már senki se bedobni őket nyomban a mély vízbe..
De ez persze csak 1 vélemény..

____________________________________
Az embert 2 éven át arra tanítják hogyan álljon meg a 2 lábán, és hogyan beszéljen... Aztán azt mondják neki: -"Üllj le és kuss legyen!"..

Azt azért ne felejtsétek el, hogy ez középiskola, sőt matek tagozaton 8. évfolyamon tanulnak programozni. A számítástechnikához nem sok affinitással rendelkező, először programozó diáknak csak problémát okoz megjegyezni a sok operátort, a zárójelek megfelelő elhelyezését (akármilyen logikus igazából) a deklarációknál stb.

erről meg annyit, hogy a nemrégiben otthagyott egyetememen turbo pascal 5.5-öt turbo c 2.0-val tanítottak programozás órán (szakirányon csak választható volt a delphi és a visual c).

az mondjuk igaz, hogy az IDE magyarázásával elmegy 1-2 tanóra, de könyörgöm, nehogymár 20 éves fejlesztőeszközökkel kelljen pályakezdőként munkát keresnem ...

a free pascal véleményem szerint nagyszerű kombinációja a turbo* és a mai modern megoldásoknak, mivel megtartja az érthető nyelvet, és elérhetővé teszi a mai lehetőségeket. freepascalból simán meg lehet élni, sőt, akár vállalkozást is építeni rá, ugyanez nem mondható el a turbo* megoldásokról.

vagy csak én akarok _kézzel_ _fogható_ _tudást_ kapni az iskolában?

--
deejayy DOT hu

Jomagam napi 8 oraban programozok Java-t, ebbol elek. Szabadidoben a Free Pascal fejleszto csapat tagja vagyok. Amit mondasz, az velemenyem szerint szimplan marhasag.

Szerintem a Java oktatasi celokra kb. csak hibas programozasi szokasok megismertetesere jo (memoria-nemfelszabaditas, strukturak teljes hianya, pointerek hianya, teljes zavar a tombkezelesnel (hol C/C++ akarok lenni, hol Pascal, hol egyik sem), egyeb szintaktikai gyengesegek pl. switch/case fapad a Pascalhoz kepest, if szinten, enum tipus csak az ujabb Java-ban van, es teljesen hasznalhatatlan arra amire enumot az ember hasznalna, tipuskasztolas szuksegessege ertelmetlen helyeken, az I/O ugy en-bloc egy vilagfajdalom, stbstb.

Bar ketsegtelen, hogy a NetBeans es az Eclipse remek IDE-k, de ezek nem fedik el a nyelv gyengesegeit, legalabbis szamomra.

A Python meg amennyire tudom interpreteres nyelv, a Pascallal egy lapon emliteni is vicces. (Annak ellenere, hogy remek eszkoznek tartom a Pythont egy csomo celra, de a programozas oktatasa es nativ programok irasa nem tartozik ezek koze.) De lenyeg, hogy megmontad, hogy a Pascalt nem kell eroltetni. En meg csak gratulalni tudok...

-=- Mire a programozó: "Na és szerintetek ki csinálta a káoszt?" -=-

"A Python meg amennyire tudom interpreteres nyelv, a Pascallal egy lapon emliteni is vicces."

Biztos emlékszel még Wirth könyvének címére: Algoritmusok + Adatstruktúrák = Programok.
Namost ha ezt tartjuk szem előtt, akkor a programozás bevezető oktatásához (nem pedig programnyelvek oktatásához!!!) a Python ideális.
A miértről itt olvashatsz néhány gondolatot:
http://www.ibiblio.org/obp/thinkCSpy/foreword.html

szerk.: Tévedés ne essék, én szeretem a Pascalt, azt tanultam először, és örülnék neki, ha TP helyett FP lenne az iskolákban. Nyilván egy ilyen váltás sokkal egyszerűbb, mint egy új nyelv bevezetése az oktatásban. Csupán arra szerettem volna rávilágítani, hogy vannak azért más/jobb lehetőségek is.

Akkor ezzel az erővel már QBasic-t is lehetne oktatni. Pascal mellett egy nagy érv, hogy jól használható IDE is van hozzá, pythonhoz meg hasonlót nem tudok. Egy kezdőnek jól jön az, hogy ott villog a kérdéses sornál pirossal az IDE, hogy nézd már meg, hogy itt és itt ezt meg azt elrontottad, gondold át.

---
A Linux nem Windows, de a Windows se Linux.

"Akkor ezzel az erővel már QBasic-t is lehetne oktatni."
Kezdőknek nem programnyelvet kell oktatni, hanem a programozás alapjait.
Az idézett linken egy gyakorló tanár leírta, hogy szerinte miért alkalmas
eszköz ehhez a Python. Elolvastad?

http://wiki.python.org/moin/IntegratedDevelopmentEnvironments

"Jomagam napi 8 oraban programozok Java-t, ebbol elek."

és 8 óra alatt sikerül legalább 1 órányi munkát megcsinálnod??

"Szerintem a Java oktatasi celokra kb. csak hibas programozasi szokasok megismertetesere jo (memoria-nemfelszabaditas,"
ezzel talán egyetértek

" strukturak teljes hianya,"
what kind of struktúra? az osztályok szerinted smafu?

" pointerek hianya,"
de hiányolom a jávából. annyi vicces bug nem tud így létezni

" teljes zavar a tombkezelesnel (hol C/C++ akarok lenni, hol Pascal, hol egyik sem),"
na ezt fejtsd ki bővebben

" egyeb szintaktikai gyengesegek pl. switch/case fapad a Pascalhoz kepest,"
huhh, nem emléxem már a pascalos switchre... de javaban pl ha switch (ENUM), akkor "case ENUM.a" helyett elég "case a". micsoda fapad :D

" if szinten,"
please define "fullos if"

" enum tipus csak az ujabb Java-ban van, es teljesen hasznalhatatlan arra amire enumot az ember hasznalna,"
most mondjam azt, hogy rosszul akarod használni?? vagy mire alkalmatlan szerinted?

" tipuskasztolas szuksegessege ertelmetlen helyeken,"
csak egyet mondj. (Long) long már autómatikus

" az I/O ugy en-bloc egy vilagfajdalom, stbstb."
lol

és 8 óra alatt sikerül legalább 1 órányi munkát megcsinálnod??

Ezt a hozzaszolast nem minositenem, mivel minosithetetlen.

de hiányolom a jávából. annyi vicces bug nem tud így létezni

Ja, persze. Pointerek nincsenek, de azert a tombok cim szerint (referencia szerint) adodnak at, meg sorban kaphatom a nullpointerexceptionoket... Mikor ugye pointer nincs is. Kafa. Nagy okossag van itt, nincs mese...

"huhh, nem emléxem már a pascalos switchre..."

Akkor ezt ird mar at nekem javaba, egyszeruen, ugy hogy ne kelljen neki masfel oldal case, vagy ne kelljen ifekre, egyeb hekkekre atirni az egeszet: (var x: char;)


  case x of
    'a'..'z','A'..'Z':
      writeln('betu');
    '0'..'9':
      writeln('szam');
    '[',']','(',')':
      writeln('zarojel');
    else
      writeln('egyeb jel');
  end;

please define "fullos if"

Eloszor is itt a normalis felteteldefiniciora gondoltam. Peldaul ilyenre:


if (target_system.info in [system_powerpc_amiga, system_powerpc_morphos, system_powerpc_linux]) then ...

"tipuskasztolas szuksegessege ertelmetlen helyeken,"
csak egyet mondj.

Tessek:


byte x, y, z;
x = (byte)y + z;

Es ez nem is igazan itt idegesito, hanem mikor bitflagekre definialok konstansokat (na a konstansdefinicio a masik ami a szivem csucske javaban, "public static final" ... ezt melyik majom talalta ki?), es van egy 2 erteku konstansom, meg egy 4 erteku konstansom, es ezt osszeadom, es at akarom adni egy byte tipusu valtozonak, es akkor tipuskasztolhatok... Argh!

most mondjam azt, hogy rosszul akarod használni?? vagy mire alkalmatlan szerinted?

Rosszul akarom hasznalni... Igen, meselj meg, valoszinuleg nem lattam enum tipust meg kozelrol... Mondjuk a Java enumnak kapasbol az a baja, hogy egy osztaly. Namost ha olyan eszkozokre kodolsz, amin hasznalhatsz (jo esetben) parszaz K memoriat maximum, akkor ketszer is meggondolod, hogy letrehozol-e megegy bloatot (ujabb osztalyt) a kododba. Ezenkivul enum eseten (mivel az enum ertekek nem konstansok) korulbelul a forditasi idoben torteno optimalizaciok nagyreszere is keresztet lehet vetni, ami eleg karosan befolyasolja a futasi sebesseget is... De biztos rosszul akarjuk hasznalni. Jjjo... Epeszu enum hianyaban meg marad a tobbtucat sor "public static final"-ozas, amitol rosszul vagyok.

lol

Meghajlok erveid nagysaga elott...

Ezenkivul meg hianyolom a preprocesszor direktivakat is... A legszanalmasabb, ahogy pl. a NetBeans visszahekkeli a nyelvbe... Arrol nem is beszelve, hogy a Java maximum ugy platformfuggetlen, hogy platformtol fuggetlenul mindenhol mashogy bugos. Mi telefonokra fejlesztunk, had ne soroljam a durvabbnal durvabb hibakat, amiket platformfuggoen kerulgetnunk kell, a preprocesszor direktivak hianyaban pedig ezt sem tudjuk megtenni rendesen, csak az ilyen NetBeans-szeru //#if WHATEVER=="barmi" modon, aminel szanalmasabb hirtelen nem is jut az eszembe... (Ja de igen, a C-fele preprocesszor abuse, amikor makrokkal definialjak az API-t par binaris syscall kore. Az szanalmasabb. Ezt elismerem.)

-=- Mire a programozó: "Na és szerintetek ki csinálta a káoszt?" -=-

Mi telefonokra fejlesztunk

sorry, nem mondtad h j2me-ről beszélünk. a kutyám hülyéskedik a byte-okkal :) de a "x = (byte)y + z;" tényleg logikátlan. (most gonoszkodjak? ugye erre gondoltál: x = (byte) (y + z);)

Ja, persze. Pointerek nincsenek, de azert a tombok cim szerint (referencia szerint) adodnak at, meg sorban kaphatom a nullpointerexceptionoket... Mikor ugye pointer nincs is. Kafa. Nagy okossag van itt, nincs mese...

igen, pointerek nincsenek, mert minden* referenciaként adódik át. értsd pointerként. ajánlom a jáva alapok c. könyvet :P

*minden: kivéve native típusok.

Maximálisan egyetértek Chain-Q-val. Szerintem nem lehet a programozást az OOP-vel kezdeni. Láttam JAVA jegyzeteket (nem mondom honnét) és csupa, csupa "public static" függvényekkel, meg tagokkal volt tele, szerintem annak semmi értelme, hogy megkerüljük az OOP kötöttségeit. Kezdeni lehet C-vel, Pascal-lal. Aztán akinek ezek után van kedve lehet lépni....

Szerintem meg a pascal egy nagyon jól kitalált nyelv, amiben sokkal több van mint amennyire sokan tartják. Amiket ajánlottál, akárhonnan nézve is csak interpretált, 'géptávoli' nyelvek.

--
- Hogyan lehet tanulni? - Jól kell tudni kérdezni. - Hogyan lehet jól kérdezni? - Ahhoz sokat kell tudni...

Egyetértek. Object Pascal... Java pedig csak addig tetszik az embernek még meg nem ismeri... Én imádok Delphi-ben programozni. Napi 15 órát azt teszem :) És szerintem ez a legjobb objektum orientált nyelv. Nem beszélve a fordítási sebességről... Nincs tobb kérdésem :)

kategórikus kijelentés. valószinüleg te vagy az univerziumban azon kevés emberek egyike, aki a jávát "megismerte" (ami lehetetlen, mondjuk úgy jelentős részét, filozófiáját, kapcsolódó technológiák egy részét megismerte) és utána a Delphire rá bírt még nézni. (most flamebait-et dobtam?)

És szerintem ez a legjobb objektum orientált nyelv.

na ne izélj már :) a nyelvbe beleértjük az apit is?

alószinüleg te vagy az univerziumban azon kevés emberek egyike, aki a jávát "megismerte" (ami lehetetlen, mondjuk úgy jelentős részét, filozófiáját, kapcsolódó technológiák egy részét megismerte) és utána a Delphire rá bírt még nézni.

Errol csak ez jut eszembe. Meg az, hogy a Java felsobbrendusegerol alkotott tevkepzeteid vajon miert egy Pascal topicban kell megosztanod a vilaggal...?

-=- Mire a programozó: "Na és szerintetek ki csinálta a káoszt?" -=-

>> "a modern nyelvi konstrukciók (pl. dinamikus tömbök, jó OOP-támogatás)"

ezt szerintem fogalmazd át úgy, hogy kikerüljön a modern szó valahogy (legalábbis ne szerepeljen egy bekezdésben dinamikus tömbökkel, meg ilyesmikkel), mert komolytalanná teheti az amúgy jól megfogalmazott írást

Lehet, hogy máshogy kellett volna fogalmaznom, de a felfogásom szerint ha egy konstrukció nem szerepelt x éve a nyelvekben, és szerepel a maiakban, valamint bizonyos esetekben egyszerűsíti vagy hatékonyabbá teszi a programozást, az modern. Azt pedig valljuk be, hogy ha pontosan ennyire van szükség, akkor a dinamikus tömbök használata egyszerűbb és veszélytelenebb, mint mutatókkal megoldani (Pascalban legalábbis), az OOP-ről nem is beszélve. Persze ha listára vagy keresőfára van szükség, az megint más helyzet.

További adalék: amikor info. órán tanultunk programozni, tanultunk Turbo Pascal graph unitos grafikus programozást. Ennek a portolása problémát okozhat, hiszen Linuxon a grafikához root jog és konzol kell, a ggigraph meg nem mondható stabilnak. Viszont még Win32+FP is jobb, mint a DOS+TP, a suliban pedig van Windows VMware-ben.

Más kérdés, hogy ezen a szinten szerintem egyáltalán nem kéne grafikus programozást tanítani, manapság a grafikus alkalmazások túlnyomó többsége úgyis ablakozós alkalmazás. No meg Crt unitit sem, amivel imádják a tanulók letörölni a képernyőt a program elején, és egyéb teljességgel felesleges csicsákat csinálni.

Szerintem az alapveto problema, a Free Pascal hasznalataval az oktatasban, meg egy csomo helyen, hogy ugy kezelik, mint egy uj Turbo Pascal verziot, egy termeket, amely megvaltoztathatatlan. Pedig ez nem igy van.

A Free Pascal sokszorosan bebizonyitotta, a vilag minden tajan, hogy kepes kivaltani a TP7-t, az oktatasban szukseges feladatoknal. Meg az IDE-je is eppen (95%-ban) ugy mukodik. Mivel viszont ez egy nyilt forrasu projekt, a tanaroknak meg lenne az az elonyuk hogy:

1., a sajat szuksegleteikre alakitsak a forditot es a rutinkonyvtarakat, ha ugy adodik.
2., ha kapnank feedbackeket a nem mukodo, de kivant dolgokrol, szerintem az egesz Free Pascal csapat neveben mondom, orommel mukodnenk egyutt, hogy kipotoljuk a nektek hianyzo reszeket.

De rengeteg dologrol, amire a forditot hasznaljak, semmifele feedbacket nem kapunk. Felkesz pl. egy SDL-es graph unit, amivel Linux alatt, root jog nelkul gyonyoruen lehetne grafikus oktatast tanitani (meg akkor is, ha egyetertek veled, hogy 2007-ben ebben a formaban nincs ertelme). Ezt pl. be lehetne fejezni belathato idon belul, de eddig senki nem vette a faradtsagot, tobbek kozott azert, mert a feedback hianya miatt, ugy tunik, senkinek nem kell...

Tok vicces, hogy pl. a magyar Free Pascal konyvrol sem tudtunk semmit, csak a boltok polcain talalkoztam vele, majd rendeltem 4 darabot, a csapat szamara. (Florian Klaempfl a fordito "alapitoja" gyujt minden FPC relikviat termeszetesen.:) Ezutan megprobaltam felvenni a kapcsolatot a konyv iroival, eddig sikertelenul, igaz nem probalkoztam tulsagosan. :)

Szoval en ezt valtoztatnam meg eloszor. Szoval kerjuk a feedbacket, hogy azt tehessuk amit szeretunk: jobb forditot csinalhassunk nektek. En pl. szivesen talalkoznek szemelyesen is, akar az FPC csapat neveben is tanarokkal, akik meg ketelkednek, hogy megtudjam miert. Hatha van valasz a konkret kerdeseikre, es hatha megtudom, hogy pl. oktatasi celokra merre kene a forditot, a hozza adott toolokat, es a rutinkonyvtarakat fejleszteni.

-=- Mire a programozó: "Na és szerintetek ki csinálta a káoszt?" -=-

Az egyik informatika tanár a következőt írja:
"Én fél éve jeleztem a FreePascal fejlesztői oldalon egy súlyos hibát (bizonyos XP-s környezetben az online help nem működik - szétszáll a FreePascal). Az udvarias válaszlevél szerint a következő verzió már jó lesz, de azóta sincs következő verzió."
(ez év elején)

Azota ezt a hibat (sok massal egyutt) mar kijavitottak. Aki szeretne, fordithat maganak forrasbol olyat, ami nem szall szet. (Szerintem a 2.1.1 es a 2.0.5 repositoryban is javitvan van, de ha gondolod utana nezek.) A DOS/GO32V2 tamogatasban egyebkent is tobbtucat sulyos hibat javitottak az elmult nehany hetben-honapban. A 2.x-es verzio DOS-os gyengesegenek az oka, hogy nem volt karbantartoja jo sokaig, csak mas platformok karbantartoi probaltak foltozgatni ugy-ahogy. Viszont most "elokerult" tobb ev szunet utan az a srac, aki igazan ert hozza, es jonehany dolgot megcsinalt benne.

Aki pedig nem szeretne a buildelessel nyuglodni (meg akkor is, ha ez kb. 1 svn es 3 make parancs kiadasabol all), a 2.2.0 kiadas elott all, ha ez megnyugtat valakit. Valamikor tavasszal, legkesobb nyar elejen varhato.

-=- Mire a programozó: "Na és szerintetek ki csinálta a káoszt?" -=-

Meg annyit tudok felajanlani ezzel kapcsolatban, hogyha nagyon nem jon ossze a magatoknak forditas, akkor csinalhatok egy mukodo IDE buildet en is, bar szerintem az itt levo: ftp://ftp.hu.freepascal.org/fpc/snapshot/ development snapshotok valamelyikeben is mukodhet mar... (Ertelemszeruen a v20 a bugfix branch, a v21 a development branch, tehat valoszinuleg neked egy 2.0.5 snapshot kell egyelore...)

-=- Mire a programozó: "Na és szerintetek ki csinálta a káoszt?" -=-

1., Van egy rakas 3rd party editor, amivel hasznalhato a Free Pascal. Windowson a DevPascal, vagy en pl. a ConText nevu editort allitottam be hozza, de egymillio masik programmer's editor is van. Unixon ugyanigy, Amigan/MorphOS-en pedig CubicIDE-vel hasznalom. (Illetve CygnusED-del, ami kb. az atomfapad szinonimaja, de valahogy megis nagyon kezreallos cucc.:)
2., Aki Delphi-szeruseget akar, annak ott a Lazarus, ami egy FPC-re epulo RAD kornyezet. Bar meg elegge beta, de azert lassan-lassan hasznalhato format kezd olteni.
3., Es vannak meg mas lehetosegek is, persze. :) Egyebkent en sem szeretem a textmode editort, nagyon elszoktam mar a TP-s kornyezettol, de van akinek meg az fontos. Sz'al szerintem jo dolog, hogy ilyen is van.

-=- Mire a programozó: "Na és szerintetek ki csinálta a káoszt?" -=-

is
Úgy tűnt a beszélgetésből, hogy van valami esély arra, hogy kooperáltok és arra gondoltam, hogy ha összehozzátok, hogy a suliban átálnak, akkor meghívnálak titeket erről egy előadást tartani, ahol elmesélnétek, hogy mi is ez, miért is merült fel, hogy ment az átállás, mik voltak a buktatót, és miért is sokkal jobb most, mint volt. Kiindulási alap lehetne a többi iskolának.

Ehhez valószínű el kellene érni, hogy ne egy hallgatón keresztül kommunikálj(atok), mint jelenleg, hanem közvetlen az érintett tanerővel. Akkor lehet, hogy érdemibbé válhatna a beszélgetés az olyan témákról, amik konkrétan gázosnak lettek minősítve, mint pl a ritkta releasek. Bw -- ezt úgy kérdezem, hogy szinte semmit nem tudok az FPről, arról meg különösen nem, hogy milyen modellben készítitek -- nem lehetne esetleg bevezetni gyakoribb bugfix releaseket a kiadási ciklusba? Mert jó jó, hogy ott a forrás, lehet buildelni, de mondjuk nagy mennyiséget meg oktatást én sem szivesen alapoznék valami nightly build jellegű dologra, a félév-év meg úgyfest sok nekik. (Persze lehet hogy túllihegem ezt a problémát, meg arra is kíváncsi lennék, hogy a TPhez mennyi idő alatt kap fixet :) )

Az a baj, hogy a sok platform miatt egy-egy uj releaset osszehozni iszonyu mennyisegu egyeztetest igenyel, de pont erre van a bugfix branch, es az ebbol keszulo nightly-k... Persze abban egyetertek, hogy sulyos bugok eseten legyen bugfix release, de az amugyis befejezetlen es sok regi kodot tartalmazo IDE hibai nem tartoznak sajnos ezek koze, egyelore. :(

Szerintem lehetne kompromisszumra jutni:

1., a taneroi oldalnak jobban kene nyitnia annak megertese fele, hogy az FPC javitasai es egyaltalan az elete kicsit mas mint a TP7 volt, kevesbe statikus, tobb a valtozo tenyezo, es egy-egy sajat build nem a vilag veget jelenti, vagy lehetetlen, misztikus, es abszolvalhatatlan dolog... (Foleg, hogy maga a fordito es a hozza adott toolok is Pascalban vannak ugye.)

2., nekunk meg meg kene probalni figyelembe venni az o igenyeiket, adott esetben a kritikus platformokra (Win32, Linux, DOS esetleg OS X) suriteni a releaseket, es gyorsabban reagalni a hibajelentesekre.

-=- Mire a programozó: "Na és szerintetek ki csinálta a káoszt?" -=-

Na ezért mondtam, hogy nem ismerem a modelleteket :) Nyilván a folyamatos bugfix rel az sok plusz munka, abból is az utálatosabbja, én meg nem tudtam, hogy van kifejezetten bugfix repo. Úgy már szerintem egyáltalán nem gáz, csak lehet, hogy nem csak én nem tudtam, hanem a tanár sem ;)

De ez az egész tényleg egy igéretes dolog lehet, csak arra vigyázz, hogy ne te légy a nagy központi információelosztó, ne az legyen, hogy a te esetleges időhiányodon bukik be...

En ezt ugy oldanam meg, hogy kellene egy (vagy letezik mar ilyen?) magyar Pascal oktatasi levelezo lista, ahol lehetne kerdezni, vagy bejelentenenk a valtozasokat. Esetleg egy wiki-t is csinalni, amibe fel lehetne vinni az elhangzo fontos infokat, esetleg magyarra leforditani a build FAQ-t, meg ilyesmi. Nem szandekozom a hatamra venni az osszes iskola bujat-bajat azert, amit szamtech oktatas cimszo alatt elkovet, de azert az alap problemak megoldasaban segithetek. Tudod, nem halat akarok adni, hanem megtanitani oket halaszni. (Mar akinek szuksege van ra egyaltalan, vagy igenyli ezt persze, nem eroszak a disznotor.)

-=- Mire a programozó: "Na és szerintetek ki csinálta a káoszt?" -=-

Szerintem egyáltalán nem felesleges grafikus programozást tanítani (ami itt persze csak annyit jelent, hogy hogyan váltunk át grafikus módba, meg hogyan állítunk színt, meg hogy hívjuk meg az egyes alakzatokat rajzoló függvényeket), mert pont ez az, ami látványos és élvezetes. Simán el tudom képzelni, hogy valaki szívesebben írna valami látványos programot ahelyett, hogy egy számára kevésbé érdekes algoritmust implementál. A KöMaL informatika pontversenyében sem véletlenül vannak mindig rajzolós feladatok, és pont hogy nem az a lényeg, hogy milyen library függvényeket kell jó hosszan kilóméteres struktúrákkal meghívni, amíg lesz egy ablak, meg egy vászon, amire még esetleg rajzolni is lehet, hanem hogy egy parancs, és már meg is jött a grafikus mód, és lehet is rajzolni.

Azt meg, hogy miért nem szabad letörölni a képernyőt, végképp nem értem, aki most tanul programozni az nem modulokat meg eszközöket ír, hanem alkalmazásokat, interaktív, színes, hangos programokat. Amikor én kezdtem programozni, nekem is minden programom kiírta, hogy én írtam :)

Azt meg, hogy miért nem szabad letörölni a képernyőt, végképp nem értem, aki most tanul programozni az nem modulokat meg eszközöket ír, hanem alkalmazásokat, interaktív, színes, hangos programokat. Amikor én kezdtem programozni, nekem is minden programom kiírta, hogy én írtam :)

Hát, mikor éppen az a feladat, hogy azt kell írni, akkor azért nem szép :) A programozáshoz az is hozzátartozik (sőt), hogy megvizsgáld az adott kód használatának körülményeit, feltételeit. Én sokszor megkaptam annó fősulin, hogy a kódra nézve az látszik, hogy az egész csak össze van csapva (és tényleg :D), de legalább azt és úgy csinálja, ahogy kell. Persze, az elején kell egy kis ego turbó, meg ilyenek, de egy idő után azért ez jó, ha elmarad.

Igaz. Valószínűleg nem a grafika a legnagyobb probléma. Láttam az interneten egy ggigraph unitot, ami jó kezdeményezés lenne. Állítólag nem nagyon fejlesztik, és nem stabil, de valamennyire biztos működik, viszont nincs róla semmi dokumentáció, úgyhogy nem tudom, hogy kell inicializálni. Erről van valami info?

A képernyőtörlés egyszerűen felesleges, sőt a fejlesztést is nehezítheti, mivel egyszerre csak egy kimenet látszik, és idegesítő a parancssori futtatáskor. (Ugyanis sokan az egyszerű algoritmusokat megvalósító programoknál is használták, nem csak valóbban teljes képernyős programoknál.) Ugyanez a helyzet azzal, amikor a program paramétereit a standard inputról szedi, ahelyett, hogy parancssori paramétereket fogadna: utóbbi esetben a teszteléskor csak át kell írni néhány karaktert a más paraméterekkel való, vagy többszöri teszteléshez, nem kell minden adatot újra beírni.

Amikor valaki programozni tanul, az nem általános célra fog kezdetben programokat írni, hanem kis specifikus feladatokat old meg. A programokat nem konzolból futtatja, hanem az IDE-ből, így egyáltalán nem kénylemes a paranccsori pataméterek használata. Ezek, meg az stdin-hez való ragaszkodás is felesleges bonyolítás. Amikor valaki eljut odáig, hogy már magabiztosan tud programozni, akkor érdemes elmenni szerintem abba az irányba, hogy miért jó mások számára is felhasználható kódot, általános célú programot, eszközöket írni.

Ha nem is kapcsolódik szorosan az iskolai oktatáshoz, nekem két év Logo-zás és némi szöveges módú Pascalozás után az volt a vágyan, hogy a megszokott kinézetű, ablakos-gombos-menüs Windows-alkalmazást írjak - így kezdtem el annak idején a Delphivel foglalkozni.

Kérdés: ha iskolai freepascal windowson, akkor DevPascal? Más szóval: az érettségi szoftverlista annyit mond, hogy freepascal. Ez lehet a devpascal is? Milyen egyéb lefordított, windowsos, telepíthatő alternatívát javasolnátok még?

Most kerestem rá a google-ben: http://www.computerbooks.hu/FreePascal/index.php
Alig hittem a szememnek, hogy létezik magyarnyelvű FreePascal könyv.
Idézet az ismertetőből:
Az ingyenes CD-melléklet, a könyvben szereplő példaprogramokon és a függeléken túlmenően, a további gyakorlást és önellenőrzést segítő feladatokat, valamint egy elektronikus tesztet is tartalmaz. Ugyancsak helyet kaptak itt a Free Pascal fordító 2.0.4-es verziójának DOS, Windows és Linux alá fejlesztett változatai, valamint a teljes angol nyelvű dokumentáció.
Magyarul 3.300 Ft-ért a könyv mellé megkapod a fejlesztőeszközt is amiről a könyv szól.
Ez azért már érv lehet a "nemakaródzikmegérteni_mert_háthanemjólsülel" hozzáállású "tanárok" előtt is!

Maga a kezdemenyezes tetszik. Esetleg meg erdemes lenne megvizsgalni a turbo delphit, mint lehetoseget. Bar nem nyilt, de van ingyenes valtozata is (express), es sokkal latvanyosabb a diakok szamara.

Amikor c-t tanitottam, a gepeken tobb fordito is fent volt. Elmondtam, hogy melyik mit tud, melyiket mennyire ismerem, es ha bejon valami hulyesege, akkor mennyire tudok segiteni. Aztan mindenkire rahagytam, hogy mit hasznal. A dolog bejott, 2-3 hallgato hasznalt gcc-t, sokan borland c-t, voltak paran, akik visual studio-t hasznaltak, es volt ket dev-cpp-felhasznalo is (ez utobbi lepett meg a leginkabb, mert alapbol nem volt a gepeken, pendrive-on hoztak magukkal minden orara a geptermek szabalyai miatt). Par plusz fuggvenyt kellett csak elmondanom (illetve hogy hol mit ne hasznaljanak), a programozas alapjaihoz mondjuk ez eleg volt (grafikus programoknal mar valoszinu nem vallalnam, csak megfelelo platformfuggetlen konyvtarral, pl. SDL). Visual C-t sosem hasznaltam meg elesben, de nem volt belole problema. Ha valami volt vele, valaki mindig tudta a megoldast (talan valamilyen beallitas volt, mar nem emlekszem pontosan).
A minimalis plusz munkaert cserebe senkire nem kenyszeritettem ra semmilyen eszkozt, es remelhetoleg nem egy IDE hasznalatat tanultak meg, hanem magat a nyelvet. Ha az egyikkel megoldhatatlannak tuno problema van, meg mindig meg lehet mondani, hogy a mai oran ezt es ezt hasznaljak inkabb. (a borland-fele c++ fordito exception-kezelesevel volt talan valami problema)
Tovabbi elony, hogy a forditok kulonbseget is be tudtam mutatni. A tipusokat nem definialja pontosan a szabvany (c-ben), igy fel tudtam irni egyik oran a diakok elmondasai alapjan, hogy a kulonbozo forditokban irt kod meddig birja peldaul a faktorialist int, long, meg talan long long tipusokkal (volt 16 es 32 bites is, +sparc, +arm, bar ez utobbit nem probaltak). Korultekintessel es plusz befektetessel ugyan, de jarhato ut ez is. Tapasztalt tanaroknak talan az a legnehezebb resze, hogy a megszokott felisten-szerepet abba kell hagyni, es beismerni, ha az ember nem tudja a valaszt valamire. (Ez persze emberfuggo, tisztelet a kivetelnek.)

A FP konyvrol pedig en sem tudtam, pedig ismerem az egyik szerzot (a masikat is latasbol). Fura, hogy nem valaszoltak, esetleg kontaktot kuldhetek maganban (lehet, hogy rossz helyre ment a level).

Egy plusz otlet: lehetne egy sajat telepitot irni FP-hoz (sajat build), igy a telepitesi problemakat lehet orvosolni.
---------------------
Time is like a drug. Too much of it kills you. - Pratchett

Esetleg meg erdemes lenne megvizsgalni a turbo delphit, mint lehetoseget.

Ha már váltunk, a Free Pascal szerintem megfelelő. Lehetnek házi feladatok, és ne kényszerítsük a diákokat Windows használatára.

Amikor c-t tanitottam, a gepeken tobb fordito is fent volt.

A különbség az, hogy most itt középiskoláról van szó, akik még soha nem programoztak, és semmilyen alapjuk nem lenne a döntéshozásra.

Egy plusz otlet: lehetne egy sajat telepitot irni FP-hoz (sajat build), igy a telepitesi problemakat lehet orvosolni.

A telepítéssel nincs gond.

"Valószínűleg sokaknak még a Free Pascal fordító beállítása és használata is gondot okozott volna."
Erre irtam valaszul a sajat telpitot. Alapbol telepedhetne TP-kompatibilis modban, vihetne magaval borland-kompatibilis kiegeszitoket (gondolom van crt, bgi FP-hoz is).

"A különbség az, hogy most itt középiskoláról van szó, akik még soha nem programoztak, és semmilyen alapjuk nem lenne a döntéshozásra."
A "diak" szo nem szinonimaja sem a debilnek sem a hulyenek. Ervelesed alapjan Pistike rajztanarnoje jobban tudja ki Pistike kedvenc festoje, irodalomtanarnoje hogy ki a kedvenc koltoje, mint Pistike maga. Ha Pistike XP-t hasznal otthon, valoszinu a FP win32-es valtozata meg fog felelni neki. Ha win9x sorozatot, akkor akar a TP, akar az FP megfelelo valtozata, mig Linux/BSD/OS X/anyamkinja eseten is a megfelelo valtozat par kerdes alapjan eldontheto. Ha nem tudja mit hasznal, kis hibaval megtippelheto.
Kozepiskolaban is van, aki - valamilyen szinten - mar tud programozni. Vagy ha nem is tud kezdetben, sokkal fogekonyabb hozza, mint hogy latsszon rajta.
FP konyv - amint kiderult - mar van. Raadasul valoszinu ujabb kiadasu, mint a TP. Magyar nyelvu help nem hinnem, hogy szukseges. Oran eleg kicsi az eselye, hogy kelljen (ugyis ott van a tanar), leiras/tutorial meg talalhato guglin, ha epp szukseges.
Aki tud magatol donteni, azt jobb, ha hagyjak. Aki nem tud, ahelyett nyugodtan donthet a szamtechtanar.
Erdekes modon a Delphi ellen pont a kenyszert hozod fel ervnek. Arrol csak annyit irtam, hogy erdemes megvizsgalni, mint lehetoseget. Latvanyosabb, mint a TP, es kevesbe elavult. A lehetoseg adott, donteni nem en fogok.
---------------------
Time is like a drug. Too much of it kills you. - Pratchett

Értem már, tehát arra kéne a telepítő, hogy info. órán TP-t tanítasnak, matekon meg gyorsan át lehessen térni Free Pascalra. Az tényleg kis túlzás, hogy nem tudja telepíteni, de egyszerűbb, ha eleve FP-t tanul, ha teljesen fölösleges, hogy az info. órán TP-t tanuljon.

Aki már tud valamennyire programozni, az jó, használhatja azt, amit akar (én pl. Free Pascalt használtam info. órán akkor, amikor a többien Turbo-t, és nem érdekelte a tanárt). Az "alapértelmezésről" írtam, azaz hogy mit kezd el használni, aki még nem programozott. Így az se bej, ha valaki mDelphit használ, csak nem tenném "alapértelmezésnek".

A FP konyvrol pedig en sem tudtam, pedig ismerem az egyik szerzot (a masikat is latasbol). Fura, hogy nem valaszoltak, esetleg kontaktot kuldhetek maganban (lehet, hogy rossz helyre ment a level).

Nem mondom h. nagyon probalkoztam a kapcsolatfelvetellel, szoval very well possible, hogy failed attempt lett... ;) Ha arra kerul a sor, te tudnal segiteni benne?

-=- Mire a programozó: "Na és szerintetek ki csinálta a káoszt?" -=-