No Seksi Commander pod Kylixem nebylo uplne ono. Pod FPC by to mohla byt bomba. Nezapomen dat vedet, az bude neco ke stazeni a k testovani. Jinak na Pascalu je uplne uzasna rychlost prekladu. Ted jsem kompiloval asi tyden Gentoo. Kdyz si predstavim ze pod Pascalem by to bylo za pul hodiny, tak to by bylo neco - zadne binarni distribuce - vsechno ve zdrojacich.
ale jde to, sice jsou tam nejake problemy,
hlavne pri prevodu formularu (ten importni wizard ma problemy s dedenim formularu),
a resource jsou jineho typu (generuje se jako
kod ktery se vlozi pomoci include v initialization).
Kompatibilita s Delphi je mnohem vetsi nez s Kylixem.
Ono se v tom mozna nekomu pekne dela, v C++ asi uplne suprove, ale na QT se mi nelibi par veci:
1. vzhled - builtin themes vypadaji priserne, i defaultni GTK 2.4 theme vypada mnohem lip. Pokud si clovek chce prikompilovat dalsi themes (rozumne pouzitelne jsou jenom asi BlueCurve, Galaxy a HighColor), musi si zkompilovat cele KDE a svou QT aplikaci taky s podporou KDE.
2. QT nema smooth scrolling :) Do GTK jsou patche, ktere chodi bez problemu a dokazi mnohem zprijemnit hledani polozek pri rolovani nejakeho seznamu. Ja vim ze do QT by to taky slo pridat (mozna uz to nekde putuje internetem, ale nevim o tom), zatim to ale neni.
3. QT + KDE a aplikace na nem zalozene se priserne dlouho kompiluji, na rozdil od GTK a jeho aplikaci.
4. V GTK se da mnohem detailneji nastavit antialiasing a geometrie fontu (hlavne v Gnome Font Preferences)
5. GTK (resp. subsystem Pango) jede kompletne na UTF-8, cimz resi mnoho problemu s lokalizaci a zobrazovanim znaku mimo nastaveny locale. QT ma mozna neco takoveho taky, ale to co bylo v Kylixu, bylo nepouzitelne a o nejakem Unicode nemohla byt rec.
6. Proste jsem si uz zvykl na GTK a nechtel bych nic jineho :) Programuje se v tom pekne, je to rychle, stabilni a dela to presne to, co chci (daji se v tom programovat i docela psi kousky).
BTW: To, co je v Kylixu upravena QT knihovna od Borlandu, to je priserna splacanina, nejake themovani tam vubec nechodi (az na ty builtin).
nechcem vizerat ako idiot, ale vizera to tak ze to pouzivat gtk1.x teda:
- ziadne vyhladzovanie pisma (antialias)
- problemy s mrtvymi klavesami (deadkey-s)
to asi nie je nic pre mna...
Rychlost kompilovania Pascal vs. C(++) je naozaj len v opatimalizacii ked ide len o rychle skompilovanie skuste tcc, pripadne vypnutie optimalizacii.
prave ze to podporuje vice widgetu, zakladni je gtk1, ale umi to i gtk2, qt, win32, gnome (proste se zmeni target).
Mrtve klavesy funguji v cestine od patku :) (tak dlouho jsem rypal az jsme to rozhodili, resp. v nekterych jazycich to bylo drive, zalezi na XFree).
Takze to chce CVS verzi lazara.
Takze po turbovision, visual basicu a delphi tu mame dalsi berlicku pro "programatory" kteri se programovat jeste uci - protoze pascal JE urcenej a navrzenej na uceni. lidi mejte rozum, kazdej opravdovej programator si v jistych obdobich zivota musi 1) prestat srat do plen 2) naucit se cist, psat a pocitat 3) naucit s Cecko.
predpokladam, ze Vy jste napsal spoustu programu
(nad 3000 radku a udrzujete je), ze muzete vynaset takoveto soudy.
Jiste nejake reference na sve programatorske umeni mi ukazete jinak to beru jen plnou pusu kecu.
Znam hodne programatoru v C kteri maji plnou pusu podobnych hlasek a pri pohledu do jejich kodu by clovek potreboval zminovane pleny (ale jsou i jini, pred kterymi smekam).
K tomu uceni: Ja se ucim celej zivot. Vy ne?
Pascal je jen na učení ??? Hmmm... Viděl jste někdy CRM systém od firmy LCS? Nebo ekonomický systém K2? To opravdu nejsou "prográmky" pro firmu s třemi zaměstnanci za pár tisíc :-), ale rozsahle systémy napsané v Pascalu (Delphi). Jděte vývojovému týmu takového systému říci, že si serou do plenek a potom mi napište jejich reakci. Na to budu opravdu zvědavý :-)) Mně osobně vyhovuje možnost naklikat si např. DB klienta za pár (desítek) minut, než to psát rozhodně delší dobu v Céčku. Já si svůj čas snažím šetřit...
to srani do plenek jsem myslel trochu jinak, ne jako nadavku, proste umet C patri k veci, stejne jako mluvit, cist a psat pocitat (a chodit na toaletu :-).
od firmy LCS tu mam ekonomicky software Noris, a _jestli_ je to napsany v pascalu, tak je to typicky - klientska cast je hnusnej bastl, kterej nerozchodi ani spusteni druhy instance (ale AFAIK je to z vetsi casti v powerbuilderu)
pascal byl stvoren Niklausem Wirthem z vysoke skoly technické v Curychu k vyuce programovani. to je proste historicky fakt, tecka.
ano jsou i dobre programy a dobri programatori v pascalu a nechci se tady navazet do nich. jenze je jich malo, vetsinu zajima jen vyse zmineny 'rychly a snadny prachy' a napisou v pascalu klidne i ovladac zarizeni nebo serverovou aplikaci.
nezivim se tim ale programovat umim dost na to abych poznal blbost kdyz ji vidim (pascal, C, php, python, blbinky jako awk nebo xslt nepocitaje) a jako spravce vetsi site musim ty veci rozchodit, prinuti je mluvit spolu a podelit se o stejnej HW a obcas vidam veci z kterych je mi fakt blivno - a prilis casto v pascalu nebo visual basicu nez aby to byla nahoda. (opravdovej rekord byl ale ovladaci panel k HP LJ1300n - java + vlastni JVM, cca 35MB RAM runtime, a neumelo to celkem nic vic nez zobrazit mnozstvi toneru)
pascal je programovaci jazyk jako kazdy jiny (teda nepocitaje perl ;-) ) a zalezi na programatorovi. treba muj bratr totalne ignoruje v delphi jakykoliv referencni objektovy model a vsechno si dela pres zaznamy a jejich predavani pomoci "void pointeru", ktera pak explicitne konvertuje na dany typ. (nejzajimavejsi je ze mu to funguje)
reknete mi co z jazyka C nejde nahradit Pascalovskou konstrukci? no mozna prace s pointry je o neco lepsi v cecku, ale i to jde v pascalu docela elegatne resit....
vsechno to ale budou spis predsudky - dojit mezi programatory, kteri delaji na systemove urovni a rict, ze dalam v pascalu tak se mi vysmejou - ale podivejte se treba na FPC - prekladac - _multiplatformni_ - napsany v pascalu! takze pascal asi tak spatny precejen nebude.
pointry v cecku historicky prameni asi z hodnoty predane adresou v assembleru (ci jak se to jmenuje - proste, registr v zavorkach)
ale souhlasim pointry jsou cesta do pekla, proto vetsina "modernich" jazyku ma "objektovy referencni model" - java, c#, dokonce i delphi, ktery vetsinu problemu elegantne resi (narozdil treba od C++)
....jinak proti pornografii nic nemam ;-)
Pointry... ano, pokud je pouziva clovek, aby usetril 5 znaku kodu a ten pak nejde prelustit, pak je to peklo. Ale pokud programujete na napr. systemove urovni (napriklad site..ted myslim primo prace s ip datagramy a podobne) tak jsou k nezaplaceni! Je to jako se vsim... Spatny programator vam udela nepochopitelny i for-cyklus ( a to nejen v C/C++ ;))
Lukas Lipavsky
AND, OR, NOT, SHR, SHL, XOR
PRED, SUCC (misto ++, --)
ale reknete mi jak vy napise v C
for barva:= modry to cerveny do
barva je mnozina nekolika barev
if znak in ['a'..'d', 'r'..'w'] then
nebo vyjimky
Open
try
try
neco se souborem, DB nebo treba sokety
finally
close; // vzdy se zavri
end
except
chyba // provede se jen pri chybe
end;
zadne testy, krasny primocary kod, az kdyz se neco posere tak se odchyti (a vysledek je bezpecnejsi a efektivnejsi nec napsany klasicky :)
multiplatformni ? hehehe. takze pascal dohnal po triceti letech ANSI C ? kdy bude portabilni mezi kompilery ruznych vyrobcu ? za dalsich tricet let ?
kdy to bude produkovat lepsi strojovy kod nez C ?
pascal podle puvodni 'normy' neumi skoro nic, dokonce ani ty pointery. vsechno ostatni jsou proprietarni rozsireni toho ktereho vyrobce kompileru - nejisty a neprenositelny.
BTW: poinetrova aritemtika je hnusna, ale rychla. kdyz pisu rekneme ovladac zalezi na kazdy instrukci a co neinvestuju do kvalitniho programatora to budu muset investovat do hardware. coz plati ostatne obecne.
No napsat kompilator Object pascalu je neco jineho nez napsat kompilator C (cele OOP, vycty, intevaly, vyjimky, prace s retezci (pocitani referenci, kopirovani az je potreba...).
A kdy budou kompilatory C kompatibilni (krome programu se stdio.h apod.), o C++ vubec nemluvim (rad bych byl u toho az budete prekladat 30 let stary program a nebude to hello word).
Piste si ovladace v C, ale nepiste v tom aplikacni programy (kancelarske baliky, firemni IS ...)
ano napsat dobry kompilator C neni zadna legrace protoze kompilatory C delaji optimalizace o jakych se pascalu ani nesni (proto je kompilace C tak pekelne rychla :-) a v kombinaci s objektovym programovanim v C++ (tzn totez co objpascal, + sablony a preprocesor) to musi byt opravdu zahul.
kompilery C jsou kompatibilni, meni se jen knihovny. dokonce i dnes maji prepinac pro pouziti K&R syntaxe (tzn 70. leta, jeste pred normovanim ANSI C)
Připomínáte mi jednu sebejistou inženýrku, která kdysi zveřejnila čtyřstránkový elaborát o tom, jaký jazyk je nejvhodnější pro programování účetnictví. A došla k závěru, že assembler !!!
Ony jsou jazyky nízkoúrovňové a vysokoúrovňové - pokud jste si nevšiml - a každý se hodí na něco jiného. Mimochodem - programátoři, kteří se tímto živí, dostanou ke každé zakázce i termín dokončení (obvykle šibeniční). Proto musí pracovat rychle a proto volí jazyky s vysokou produktivitou práce.
Jinak to, že Pascal byl vytvořen Wirthem pro výuku je sice fakt, ovšem stejně tak je fakt, že jej fy Borland brzy doplnila a vytvořila z něho plnohodnotný programovací jazyk.
sebejiste inzenyrky to je mor, stejne jako marketingovy reditele :-)
ale ze vseho nejhorsi jsou firmy, ktera k danemu sibenicnimu terminu pridaji jeste v cem se to ma udelat - to je pak vetsi sranda - to pak vznikaji silene informacni systemy zalozena na php apod. btw. ted zrovna delam, na programu - interaktivni upravovani map v jave (je to jeden z pozadavku) a je to vazne rachot... ale proc ne zakaznik si to pral... jeste jsemj mohl delat to same ve visual basicu :-))
no vetsina lidi v Delphi dela jen v Object Pascalu a ne pascalu (neco jako nebe a dudy),
a ten ovladaci panel k tiskarnam HP xxxxx je psany v tom jazyku co Mozilla (proste je tam cela mozilla a par veci okolo) - cumel jsem jak puk, hezke, ale trochu moc narocne, kazdopadne to ocenuji
Hmmm.... k tomu vizualnimu navrhu: GTK je prave stavene tak, ze defaultne nepouziva souradnicovy system, ale kontejnery. Diky tomu je vysledny formular vzdy vzhledove konzistentni s ostatnimi aplikacemi, odpadaji problemy pri jine velikosti fontu, nastaveni theme a velikosti okna. Docela pekne se to programuje, alespon co se GTK tyce, sice rychlost "splacani" takoveho formulare neni tak vysoka jako pri vizualnim navrhu, ale neni to zas tak hrozne. Zpravidla v aplikaci neni tak moc formularu, vetsinu casu se stejne pise nejaky vykonny kod.
Na druhou stranu, nedokazu si predstavit vizualni navrh GTK formularu, ikdyz existuji nastroje, jako je GLADE, ale skladani prvku na formular je docela nemotorne.
Jsem zvedav, jak je tohle vyreseno v Lazarusu (ale uz z abstrakce vice toolkitu lze tusit prave ty souradnice :-( )...
V NetBeans (IDE pro Javu) je velice pěkný vizuální návrhář pro AWT a Swing, a tyhle dva (spíš jeden a půl :) ) GUI toolkity taky používají kontejnery. Řešitelné to tedy podle mě je, ale jak na to jdou v Lazaru (Lazarusu?), zvlášť když se snaží nad toolkity abstrahovat, fakt netuším :)
Dnešní Pascaly jsou od Wirthova Pascalu, který byl vskutku vytvořen pro výuku strukturovaného programování, značně vzdáleny. Asi tak, jak má Céčko daleko do dobrého programovacího jazyka. Je pravda, že s Delphi jde Borland už nějakou dobu do horoucích pekel a že Visual Basic je hrůza všech hrůz, ale to ještě nedává nikomu právo nadat programátorům v Pascalu do břídilů. Jsem pojídač koláčků a jsem na to hrdý!
Toť z mé strany vše, jdu se učit programovat. Jsem zvědav, kdy si uvědomím, že bez Céčka nemůžu existovat.
Nevím, který je ten _správný_, ale znám několik těch _dobrých_ (Java, C#, s trochou disciplíny i ten Object Pascal, pro masochisty a milovníky obskurních jazyků třeba Lisp :) ). Argumenty, proč mezi ně Céčko neřadím, vizte výše v diskusi.
Na druhou stranu, rozhodně netvrdím, že v Céčku se nedá psát dobrý (čitelný, pořádně komentovaný, samozřejmě funkční :) ) kód. Jen je nepovažuju za vhodné (dobré) pro aplikační programátory. Systémákům se omlouvám, že jsem tohle nenapsal dřív :)
LOL .... kluku, zamysli se nad sebou ..... tahleta nadutost "umim cecko sem king" je fakt smesna. Myslis si ze jsi dobry kdyz zvladas malloc() strcpy() atp ? Oooo, pan Opravdovy Programator ... Kdyby vsichni programovali v cecku misto vyssich jazyku, tak bys jim opovrhoval a chvastal se misto toho s assemblerem. Vyssi programovaci jazyky jsou prece trapna berlicka pro ty hloupe co si neporadi s asm. Programovaci jazyky nejsou soutez v tom "kdo je drsnejsi", chapes ?
Pokial mate dobre widgety, naozaj nie je problem urobit textovy editor za hodinu. Vo vacsine tutorialov sa tato uloha riesi hned po "Hello, world!" ;-) Vyskusal som par podobnych projektov pre C++ a Python a mozem povedat, ze verzie 0.x maju vela detskych chorob a ich pouzivanie stoji naozaj vela nervov. Developerom drzim palce, ale som ochotny vyskusat az verziu 2.0.
Po precteni clanku jsem se rozhodl zase po case
fpc+lazarus zkusit. Hlavne me zajima cross kompilace,
tj. na Linuxu udelat exe pro Windows (mozna i opacne)
Nicmene se mi to nejak nedari (stahl jsem si rpm,
ted stahuji zdrojaky): trivialni formular prelozim
v linuxu ok, ale zvolim-li win32, zlobi se, ze
nenachazi unitu interfaces. Pricemz ji tam ale
ma a na kliknuti ji otevre. Netusite, co vsechno
je potreba stahnout, aby cross kompilace opravdu
fungovala? Neni nahodou potreba stahnout i
Windows verzi a z ni neco pouzit?
To ze nevie naist interfaces bola tusim nejaka chyba. Viem ze sa to ozyvalo aj ked mal zle nastavene adresare(enviroment options). Pripadne compilerske adresare. V kazdom pripade windows je shit a bohuzial este aj windowsova verzia lazarusu je momentalne na hrane pouzitelnosti. Ale lepsi sa to razantne. Predpokladam ze ked vide FPC 2.0 lazarus sa "stabilizuje".
Inac k tym kecom ohladom C vs Pascal. To co ste tu predviedli su svate vojny. Kecy o nicom bez technickych argumentov.
wxWidgets!
Je to něco pro vyznavače c++, známější je to asi jako wxWindows, přejmenovali to letos v únoru na zdvořilou žádost hádejte koho. Není to IDE, jsou to jenom knihovny(LGPL), ale řídí se heslem "napiš jednou přelož kdekoli". Exáče(resp. PE) na Linuxu tedy nevyrobíte, ale vytvoříte zdrojáky, které na Linuxu po překladu slinkujete jako GTK nebo Motif, na Windows jako nativní Win32API a na MacOS kdovíco se tam vlastně používá.
nějaké klikací tvůrce formulářů existují, ale víceméně ve vývoji.
S Lazarem jsem přišel do styku asi před rokem, když jsme měli psát nějaký program ve škole v Devpas/fpc. Tehdy v Lazarovi nic moc nefungovalo, ale samotný editor byl rozhodně stokrát lepší než ta devpas sr**a.
Jinak o Delphínech si pořád nemyslím nic dobrého(tím nemyslím programátory v obj-pas, ale aplikace založené na jakýchkoli Borland řešeních).
Problem vidim len v gui designeri. Existuje ich niekolko, ale okrem dvoch komercnych, ostatne nestoja za vela. Komunita by sa mohla dohodnut a vyvijat jeden dobry pod GPL. Ale to je stary problem: kazdy si chce robit veci po svojom a niekedy okolo verzie 0.6 ho to prestane bavit.
Btw, uz som to tu niekde napisal, dalsia verzia Kylixu vraj bude pouzivat wxWidgets namiesto Qt.
S tim Kylixem by mne to hodne zajimalo, zkousel jsem hledat nejake informace na netu, ale nic jsem nenasel :-( Jestli to neni kachna...
Kdyby se tohle Borlandu podarilo, vcetne prepsani IDE do wxWidgets (soucasna kombinace QT + Wine je katastrofalni), myslim, ze by to byl krok, ktery by mohl znovu zatraktivnit Kylix + Delphi v multiplatformnim prostredi. K tomu jeste podpora kompilace pro Solaris a Mac OS X ... :slintajicismajlik:
Neco jsem nasel na strankach Borlandu, nabizeji ke stazeni jakesi technology preview RAD nastroje pouzivajici wxWidgets - je to ale koncipovano jako nadstavba nad C++Builder X. Momentalne to stahuju, uvidime, co z toho nakonec vyleze.
Ale porad to neni Pascal, takze Kylix uz bude asi definitivne mrtvy :-(
Mel jsem za ukol naprogramovat jednoduchy multithreadovy server, ktery bude data prijimana od klientu ukladat do MySQL databaze.
Protoze bylo potreba to napsat rychle, sahnul jsem po RAD nastroji Kylix, pro obsluhu site pouzil Indy a pro databazi DBExpress. Takovou bleesmrt jste, damy a panove jeste nezazili. Indy funguje vyborne, ale MySQL driver DBExpresu podporuje pouze jednu prehistorickou verzi libsqlmyclient a na ostatnich vytuhne. Jiny drivery jsou, ale za tezky prachy.
Objevil jsem FPC a Lazarus a byl jsem nadsenej, konecne zase opravdovy programovani. Filosofie socketu unixova (proste soubor), podpora MySQL naprosto bezproblemova, vyjimky se chovaly jak maj, knihovna Objects temer cela implemenovana... Ale na to jsem prave narazil. Thready nejsou...! Rozmyslel jsem se, jestli to napsat s forkem, ale to ne-e.
Prepsal jsem to do Javy a plna spokojenost. Pascal mam ale presto rad a vyvojarum fandim, je to daleko nadejnejsi a mozna uz dneska pouzitelnejsi nez preplacanej Kylix. Skoda, ze se o tom tolik nemluvi a ceckari se tomu smejou. Podle me neni duvod.
no soucasti Seksi commandera je jeden docela pozuitelnej, vychazel jsem z dem co jsou k Syneditu
(synedit.sourceforge.net), umi kolem 80 klavesovych zkratek na editaci textu, jako odsazeni, skakani po slovech (diky syneditu) + nejake to F2, CTRL+S a dalsi sracky (jako volba barev highlighteru:). Jeste tam musim dodelat ukladani velikosti formulare.
dale vyhledavani a nahrazovani a asi 8 highlighteru (PHP, SQL, C, TeX, PAS, DFM, HTML, kaskadove styly).
zobrazuje cisla radku, pozici kurzoru atd. (psal jsem to pro sebe neb vim ze nemam rad vim a emacs (bez komentare).
Ale _mnohem_ radsi mam ten integrovany viewer, kteremu na linuxu NENI rovno (mapovany soubor do pameti, vyhledavani, kolecko mysi, kopirovani do schranky pouhym vybranim, bin, hex, text - moznost volani externich prikazu a zobrazeni jejich vysledku), prohlizeni jpg, png, xpm, x oken (od nove verze :) atd
Omlouvam se za reklamu, ale je to moje ditko a jsem na nej fakt pysnej.
za reklamu se neomlouvej, kdyz je to dobry a je k topicu, at o tom lidi vi. (ja bych jinak o tom nevedel).
mimochodem, umi to vyhledavat i bitove? Zrovna nedavno jsem takovy soft hledal - kazdy hexedit apod umi hledat hexa, maximalne s bitovou maskou. Ale ja potrebuju v souboru najit na libovolne pozici v bytu treba: 111101001100111
vyzkousel jsem fpc a lazara v mdk linuxu. zacal jsem od fpc 1.0.10, kterou lazar akceptuje. Uz tam
zacaly problemy, protoze mu nestacil ../units/linux
ale chtel taky /fcl, /rtl/, /packages, (to je
natvrdo v lazconf.pp ve verzi 9.1.2) i kdyz napr.
v fpc 1.0.10 nejsou prestoze by mel s touto verzi
freepascalu pracovat. Nicmene jak uz to v Linuxu
byva jsem to "dolepil" a lazar bezi (zase jsem se po letech vizualniho developu citil jako opravdovsky programator, kdyz jsem v konzoli zadaval ruzne exoticke zkratky a upravoval .conf, .cfg, ~, .
a modlil se co to udela (samozrejme vydatna spoluprace s googlem - g.s.d). No h.o.m.h lazarek zatim kulha (vlastne by mel lezet ne?)
To jenom pro ty nekovane jedince aby si nemysleli
ze to pojede jako Delphi v XPeckach.
(Okno s listboxem a tlacitkem v lazarovi s FPC se ale udelat da a mozna ze se bude dat spustit ./ i
na pocitaci s "Debilanem" vaseho nadseneho tux kamarada - to je zase plus vezmeme-li dalsi silenost
jako je Kylix, ale to je na dalsi a dlouhe povidani.
Nicmene je Linux a programovani v nem obrovske dobrodruzstvi u toho idiotskeho pececka .....
(Chodim spat v 6:30 vstavam v 7:10-15 a.m.)