Diskuze: Windowsácké okénko

Neregistrovaný

Zobrazeno 46 zpráv z 46.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
Pascal není pro Windows, takže Windows okno ne Jazyk Pascal dále pokračuje jako
Delphi, kde to možné je.
Jak se to vezme, jsou to téměř totožné jazyky, jen programování pro Windows je trochu složitější na pochopení (program už nejede odshora dolů).
V Borland Pascale 7.0 mozes robit programy pre win 3.10 aj s oknom
(16bit).
V okne complie>target zvol windows
To sice ano, ale taková aplikace ti dnes na 64-bitových OS nepojede
Ale
Na Win32 Windows xp som ju bez problemov spustil
To je sice hezké, ale dnes již Windows XP moc lidí nemá a od Windows
Vista je rozšířenost 64bitové platformy velmi vysoká, takže asi 40%
koncových uživatelů aplikaci nespustí, za pár let to bude většina.
Když už chceš za každou cenu dělat okna v Pascalu, tak na to je tu Lazarus,
ne Borland Pascal z minulého století.
Myslím, že je dnes vhodnější učit se rovnou moderní objektové jazyky
jako jsou C# nebo Java Pascal
je velmi zastaralý a už se s ním prakticky nesetkáte.
Borland nebo Turbo už ne no. Freepascal by měl fungovat, ale jak jazyk, tak IDE jsou zastaralé. Dříve jsem také zastával názor, že je Pascal dobrý na učení programování. Potom, co jsem se však setkal s moderními jazyky a objektovým programováním mi došlo, že učit se starý standard je spíše na škodu. Tak, jako se programovalo v Pascalu, se už dávno neprogramuje, IT sféra se velmi rychle vyvíjí a mění.
no když seš ten kvantovej počítač tak vo tom asi něco víš, ale stejně.. co vlastně ta Java nebo Cis umí navíc? nebo v čem ten pascal zastaral? Free Pascal/Lazarus mi příde docela vychytanej.
no když seš ten kvantovej počítač tak vo tom asi něco víš, ale stejně.. co
vlastně ta Java nebo Cis umí navíc? nebo v čem ten pascal zastaral? Free
Pascal/Lazarus mi příde docela vychytanej.
Java, C#, popř. skriptovací jazyky tě více odstiňují od samotného operačního systému. To znamená, že se můžeš soustředit na řešení vlatního problému, není nutné vědět, jak funguje např. správa paměti či ukazatelé. Běhové prostředí těchto jazyků navíc disponuje rozsáhlými knihovnami, takže spoustu věcí nemusíš implementovat, stačí je jen používat. Další ulehčení programování představuje samotná syntaxe; možnost přetěžování operátorů a funkcí, generické datové typy, samotné OOP...
Problém docela je, když pak od lidí, co viděli jen Javu a C# potřebuješ naprogramovat něco blíže operačnímu systému. Pak to bývá smutný příběh (alespoň ze začátku), ale holt doba je už taková.
Lazarus je docela fajn, ale pořád nemá na plnohodnotné (ale bohužel drahé) Delphi. Je zkrátka vidět, že tam ještě dost věcí chybí. Jinak ti nic nebrání jej (stejně jako Delphi) využívat na tvorbu aplikací bez použití objektových knihoven pro grafické rozhraní. Pak je úkol vytvoření aplikace s grafickým rozhraním prakicky ekvivalentní úkolu vytvořit tuto aplikaci ve starém Pascalu (Borland Pascal 7.0).
Jinak i Borland Pascal 7.0 má rozhraní pro Windows. Jelo mi bez problémů na Windows XP (žádná konzole), takže bych řekl, že možná to bude umět generovat i 32bitový kód. Ale musel bych to vyzkoušet.
Pokud chce někdo začít s nízkoúrovňovým jazykem, tak je dle mě nejlepší jít do C. Docela by mě zajímalo, kde všichni co chtějí začít, berou ten Pascal?! A pokud chci psát pro Windows, tak je nejlepší sáhnout po jazyku pro .NET a netrápit se s jazyky z 80.let.
@sdraco: Jen poopravím, že 64bit tu máme už od Windows XP.
Tady se nejedná o masochismus, ale o sadismus páchaný na studentech MFF.
@Tahoun:
C je pro systémové programování vhodnější, ač Pascal (zvláště ve
formě Delphi/Freepascalu) pro něj lze celkem bez problémů použít. Ale
začátečníkům bych Cčko rozhodně nedoporučoval. Pascal jim poskytne
jakýsi úvod, který jem pomůže pochopit některé věci o fungování
systému. Pak klidně mohou přejít do Cčka, které přidá hlavně
pointerovou aritmetiku a odlišnou práci s řetězci, příp. silnější
preprocesor.
A všichni, co chtějí začít, ten Pascal zřejmě berou z toho, že se využuje na některých SŠ a VŠ.
.NET bych na systémové programování moc nepoužíval, ale může to být jen absencí mých znalostí. Přijde mi, že věci, které lze řešit voláním několika funkcí Windows API, je v .NETu třeba řešit kvůli objektovému modelu dost složitě.
V C# můžeš normálně volat winapi funkce taky
Ten .NET jsem myslel pro aplikační programování, nikoliv pro systémové.
Pascalu jsem nikdy nepřišel na chuť a C pro mě nebyl problém. Takže to
beru z vlastní zkušenosti. Že se Pascal stále, ač pro mě z
nepochopitelných důvodů někde vyučuje, vím. Ale určitě se s ním nejde
moc do hloubky a dál se mu bude věnovat jen mizivé % žáků. Vlastně si
dovolím tvrdit, že 0 %. Navíc, mě nenapadá jediný příklad, kde by bylo
vhodnější použít Pascal, než-li C. Ukončil bych to tím, že ať už
člověk zvolí jakýkoliv jazyk, tak je mu to k ničemu, pokud si neosvojí
algoritmický způsob myšlení. Na tom se snad shodneme všichni
Neshodneme. Dnes je upřednostňováno OOP a deklarativní programování před algoritmickým.
K čemu? U mnoha programovacích jazyků algoritmizaci vůbec nepotřebuješ.
OOP a algoritmický způsob myšlení se snad nevylučují, ne?
I když programuješ objektově, tak potřebuješ znát a umět používat
algoritmy
Jinak Pascal se myslím používá hlavně kvůli tomu, že má pro začátečníka mírně čitelnější syntaxi a je benevolentnější - např. není case sensitive.
Pro začátečníka je určitě čitelnější
VAR I : INTEGER;
...
FOR I:=0 TO X DO
než
for (int i=0; i<x; i++)
Nepíšeš posloupnost příkazů, ale jen deklaruješ, jak má vypadat výsledek - třeba prolog nebo SQL.
Deklarativní je programování aplikací pomocí definic, kde nepopisuješ jak se to má udělat, ale jen co se má udělat. Například SQL nebo XSL.
Právě někdy je lepší na algoritmy zapomenout a programovat v OOP bez nich. Cykly, ify, switche, mutable variables - bez toho se dá obejít a program pak vypadá mnohem čistěji.
Asi každý programujeme úplně jiné věci, jinak si nedovedu představit,
proč máme tak rozdílný pohled na programování.
Docela by mě zajímalo, co tedy programuješ, když se bez těchto základních
konstrukcí obejdeš
Třeba teď u hry do soutěže Magické Léto, co tu probíhá, mám softwarový rendering - tam jsou nějaké cykly (přes všechny pixely obrazovky) a spousty výpočtů, nenapadá mě žádný způsob, jak se bez cyklů a podmínek obejít a udělat to objektově (natož aby to ještě běhalo použitelně rychle).
Hledání cesty taktéž - napsat Dijsktru bez cyklů a podmínek bych asi
nezvládl .
O tom to právě je. Přenechat počítači co nejvíc rutinní práce, aby byl co nejmenší prostor pro chyby. Nebudu přece počítač učit něco, co už umí. Programy mají být krátké a efektivní. Algoritmy je jen zbytečně prodlužují a zpomalují.
Hlavně využívám algoritmy, které jsou v knihovnách a které byly napsány takovými lidmi, jako jsi třeba ty. Nechce se mi vynalézat kolo.
Toho kola se chytnu
Vynalézt ho nemusíš, ale je dobré vědět co udělat, abys na něm mohl
jezdit
Obvykle ho stačí jen nasadit. A podobně jako u auta by mělo být jedno, v jakém pořadí ta čtyři kola nasadíš a mělo by to jet. Tedy metoda by správně měla fungovat i po přeházení řádek.
Já bral to kolo jako bicykl. A tam není jedno jestli napřed budeš šlapat, nebo ho napřed chytneš a nasedneš.
Nasednout a jet je přece jedna operace (konstruktorem vytvořím objekt naplněný daty).
Dopadá to občas dost špatně, když ty knihovny používají lidi, co nemají tušení, jak to vevnitř funguje.
Jako třeba když jsem se v bývalém zaměstní hádal, jak nejefektivněji
string oříznout na max 1000 znaků (tak, aby se řezalo za celým slovem -
moje řešení jet od 1000. znaku k začátku a hledat mezeru prý je
pomalejší než regex, protože tam mám cyklus, zatímco on jen volá jednu
funkci...
Proto píšu testy, abych si ty používané funkce otestoval v požadovaných režimech a aby můj program přežil i upgrade takových knihoven.
Zrovna ten tvůj spor bych si do testu napsal a myslím si, že by tvůj algoritmus vyhrál.
Satik: to ano, ale počítám, že to nebude úplně pohodlné, protože asi nebudou pro tyto API funkce nikde definované datové struktury. Případně možná bude třeba použít unsafe blok. Pak tam ještě bude asi penalizace za přechod z MSIL do nativního kódu, ale ta asi v release režimu nebude moc významná.
Je ale fakt, že to jde pořád lépe než v Javě .
Kolo bylo vynalezeno už velmi dávno, ale to neznamená, že si nemůžeš vyrobit svoje.
Složitější datové struktury se většinou válejí různě po netu už přepsané.
Unsafe se musí používat jen když používáš ukazatele, pokud funkce
používá třeba jen obyčejná čísla, tak to řešit nemusíš
Penalizace tam žádná není, kód se před prvním použitím normálně kompiluje z MSIL do nativního kódu.
http://msdn.microsoft.com/…a712982.aspx
Nějaký overhead tedy je, ale při malé frekvenci volání je to zřejmě
nevýznamné (popř. při předávání rozumných datových typů).
Konec OT.
Zobrazeno 46 zpráv z 46.