Názory na prog. jazyky?

Místo pro dotazy a rady ohledně programovacích jazyků (C++, C#, PHP, ASP, Javascript, VBS..) a tvorby webových stránek

Moderátor: Mods_senior

Uživatelský avatar
domitea
Tvůrce článků
Příspěvky: 1971
Registrován: 24 čer 2009 19:46
Bydliště: Královehradecký kraj
Kontaktovat uživatele:

Re: Názory na prog. jazyky?

Příspěvek od domitea »

Pokud se chceš naučit programovat a vybíráš si programovací jazyk, tak na to jdeš ze špatné strany!

Programování totiž není jen o programování. Programovací jazyk je až na posledním místě.

Programování je spíš o způsobu myšlení, o tom, jak efektivně napsat kód, jak ho dobře navrhnout (programátor Mel by mohl vyprávět..).

Co se týče programovacích jazyků, tak každý se hodí na něco jiného, protože byl k jinému účelu vytvořen. Takže, nevybírej si programovací jazyk a začni programovat. Stačí k tomu tužka a papír. Ne, nedělám si srandu, jsou to ty nejlepší nástroje programátora o kterých raději mlčí ;)
Turbína134
nováček
Příspěvky: 48
Registrován: 15 dub 2014 20:26

Re: Názory na prog. jazyky?

Příspěvek od Turbína134 »

A jak s tužkou a papírem vyzkouším svůj program? 0_o
Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7405
Registrován: 23 pro 2010 09:23

Re: Názory na prog. jazyky?

Příspěvek od faraon »

Jak? Co nejdůkladněji. Projít si každou možnost která může nastat ve vývojovém diagramu, zkontrolovat všechny limity proměnných...

A hlavně tě to naučí chápat co se v procesoru děje, zkus si pohrát s tímhle: http://mmm.webz.cz/pocitadla/cgs.html
Jsou tam ke stažení scany, takže si ho můžeš vytisknout i se sadou ukázkových programů.
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)
Uživatelský avatar
domitea
Tvůrce článků
Příspěvky: 1971
Registrován: 24 čer 2009 19:46
Bydliště: Královehradecký kraj
Kontaktovat uživatele:

Re: Názory na prog. jazyky?

Příspěvek od domitea »

Úplně stejně, jako procesor. Instrukci po instrukci :wink:
Uživatelský avatar
X
Elite Level 12.5
Elite Level 12.5
Příspěvky: 19360
Registrován: 22 kvě 2007 11:34
Kontaktovat uživatele:

Re: Názory na prog. jazyky?

Příspěvek od X »

C# není intepretovaný jazyk, jede na virtuálním stroji: zkompiluje se do meziproduktu (CIL) a to pak šlape jako intepretr (rychlost je mezi interpretem a kompilerem):

Obrázek

Ale vše od MS je takové divné a iritující, jako jejich OS. Na druhou stranu jdou v C a C++ také pěkné prasárny ...

Není BASIC jako BASIC, stejně jako není C jako C. Pure Basic je rychlejší než C# a má přes 1400 příkazů, je v něm možno pracovat i objektově. Na hraní určitě není >>> viewtopic.php?f=11&t=50135&start=22 - navíc je na učení nejlehčí. Pokud v něm chceš dělat prasárny, tak to také jde, autoři zamlčují, že má i GoTo ... ale opravdu v něm funguje. Ale někdy účel světí prostředky :lol:
Naposledy upravil(a) X dne 20 dub 2014 22:37, celkem upraveno 7 x.
Uživatelský avatar
Karrex
Elite Level 10
Elite Level 10
Příspěvky: 9622
Registrován: 15 lis 2008 16:30
Bydliště: Brno

Re: Názory na prog. jazyky?

Příspěvek od Karrex »

Možná je to OT, možná ne. Zajímá mě, proč je vlastně GOTO tak hrozný? :-D Slyšel sem o tom už tolik věcí, ale ne žádný příklad, co se může stát, když se bude někdo nudit, můžete mi tu napsat ? :-D Díky
Sestava v profilu.
Watercooling Club EXOverclocker@HWBot league rank#1 Aprilia Shiver Club BMW ///M Club
Uživatelský avatar
X
Elite Level 12.5
Elite Level 12.5
Příspěvky: 19360
Registrován: 22 kvě 2007 11:34
Kontaktovat uživatele:

Re: Názory na prog. jazyky?

Příspěvek od X »

Tak záleží (jako na všem), jak je používáno. Je to skok a když si v programu budeš hodně skákat a všude možně, bez ladu a skladu, za chvíli se ztratíš i sám, natož po nějaké době, nemluvě o ostatních. Já bych to tak nezatracoval, ale chce to střídmost či komentáře. Na Sam Coupé (Sam Basic a Master Basic) jsem si hodně oblíbil procedury, jsou to vlastně vlastní příkazy či makra (posloupnosti příkazů). V manuálu Pure Basicu se cudně zmiňují jen o OnErrorGoTo, ale vyzkoušel jsem, že funguje GoTo label (= návěstí, tedy pojmenované místo kam se má skočit). Doporučuji všem jen tak prolistovat manuál k Pure Basicu, aspoň jeho příkazy, budete hodně překvapeni jak jsou často intuitivní a ze všech možných oblastí, můžete využívat DirectX a stvořit klidně 3D hru, využívat Win API (jen placená verze), všechny klasické Basic příkazy + mnoho dalších ... samozřejmostí v Pure Basicu je například příkaz Sprite (rotace, detekce kolizí, ... příkazy: CatchSprite, ClipSprite, CopySprite, CreateSprite, DisplaySprite, DisplayTransparentSprite, FreeSprite, GrabSprite, InitSprite, IsSprite, LoadSprite, SaveSprite, SpriteCollision, SpriteDepth, SpriteHeight, SpriteID, SpritePixelCollision, SpriteWidth, SpriteOutput, TransparentSpriteColor, RotateSprite, SpriteBlendingMode, SpriteQuality, TransformSprite, ZoomSprite).

P.S.: Přihazuji malou ukázku z manuálu, jak vypadá programování v Pure Basicu (čísla řádku nepíšete, vytváří se automaticky, ale GoTo číslo_řádku mi to nevzalo, jen label):

snap0003595.jpg
Uživatelský avatar
domitea
Tvůrce článků
Příspěvky: 1971
Registrován: 24 čer 2009 19:46
Bydliště: Královehradecký kraj
Kontaktovat uživatele:

Re: Názory na prog. jazyky?

Příspěvek od domitea »

Ono vlastně na GOTO jako takovém není nic špatného. V ASM jediná možnost, jak udělat cyklus ;)

Problém je ale ten, že nehorázně, opravdu nehorázně znepřehledňuje kód. Když čteš zdroják, kde na řádku č. 100 máš GOTO 10 a pak hned pod tím GOTO 200, tak co ti to řekne? Nic moc ;) Hledání chyby v programu plného GOTO ani nemluvě :evil:

Kdyžtak Edger Dijskra má o tom výborný článek, zkus si ho vygooglovat ;)
Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7405
Registrován: 23 pro 2010 09:23

Re: Názory na prog. jazyky?

Příspěvek od faraon »

X: Víš jaký je rozdíl mezi bytekódem Javy nebo C# zpracovávaným virtuálním strojem, a tokeny BASICu zpracovávanými interpretem? Vůbec žádný :lol:

Karrex: GOTO je špatné protože to říká Dijkstra*, tečka. A proč? Je totiž dokázáno, že jakýkoliv algoritmus je možné realizovat pomocí pouhých dvou základních stavebních prvků, rozhodování (decision) a zpracování (process). Jestli umíš vývojové diagramy, tak rozhodování je kosočtverec, zpracování obdélník. Nic víc skutečně není potřeba, dokonce i volání podprogramů je jen speciální případ zpracování. Jako zpracování se bere libovolný složený příkaz, nebo blok (což je také složený příkaz, jen navíc s lokálními proměnnými) v programu, který musí mít jeden vstup a jeden výstup. A to je věc kterou GOTO porušuje, navíc zbytečně, protože to jde i bez něho.

Jako příklad ti dám rutinu v C++, používající GOTO. I v případě že tenhle jazyk neovládáš, bude ti po jeho prohlédnutí asi jasné že tudy cesta nevede:

Kód: Vybrat vše

int p,k,l,i,j,d,q,R,t,r;
  S1:    s=0; p=1;
  S2:    if (s==0) { i=1; j=n; k=n; l=2*n+1; }
         if (s==1) { i=n+1; j=2*n; k=0; l=n+1; }
         d=1; q=p; r=p;
  S3:    if (x[i]>K>x[j]->K) goto S8;
  S4:    k=k+d; x[k]=x[i]; c[k]=c[i];
  S5:    i+=1; q-=1; if (q>0) goto S3;
  S6:    k+=d; if (k==l) goto S13; else x[k]=x[j];c[k]=c[j];
  S7:    j-=1; r-=1; if (r>0) goto S6; else goto S12;
  S8:    k+=d; x[k]=x[j]; c[k]=c[j];
  S9:    j-=1; r-=1; if (r>0) goto S3;
  S10:   k+=d; if (k==l) goto S13; else x[k]=x[i];c[k]=c[i];
  S11:   i+=1; q-=1; if (q>0) goto S10;
  S12:   q=p; r=p; d=-d; t=k; k=l; l=t; if (j-i<p) goto S10; else goto S3;
  S13:   p+=p; if (p<n) { s=1-s; goto S2; }
         if (s==0) for (t=1; t<=n; t+=1) { x[t]=x[t+n];c[t]=c[t+n] }

Když jsem na něj na hovnokod.cz narazil, poznal jsem ho na první pohled. Je to totiž doslovně převedený program z jedné staré učebnice BASICu, kde kromě cyklu FOR neexistoval jiný způsob než GOTO, jak dosáhnout určitých věcí. Proto také, i když jsem v BASICu začínal a dodnes je to můj nejoblíbenější jazyk, každému radím, aby se mu vyhnul velkým obloukem, jestli to s programováním myslí aspoň trochu vážně. Takhle už se to dneska prostě nedělá, naštěstí.

* To co řekli Dijkstra, Knuth, nebo třeba Wirth, je třeba brát zatraceně vážně, protože jen málokdo věděl tak dobře o čem mluví jako tihle mistři.
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)
Uživatelský avatar
X
Elite Level 12.5
Elite Level 12.5
Příspěvky: 19360
Registrován: 22 kvě 2007 11:34
Kontaktovat uživatele:

Re: Názory na prog. jazyky?

Příspěvek od X »

faraon: Znovu opakuji, že Pure Basic je kompilovaný jazyk, žádný interpretr. A nemůžeš srovnávat moderní (a dobře udělané) BASICy se starými, kde byla instrukční sada osekaná, třeba právě kvůli malé ROM a RAM historických počítačů, například ZX Spectra. Nicméně je pravda, že jazyky od MS nedoporučuji.
Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7405
Registrován: 23 pro 2010 09:23

Re: Názory na prog. jazyky?

Příspěvek od faraon »

To beru, on ten úplně první BASIC v roce 1964 byl také kompilovaný. Jinak ten tvůj kód mi dost připomíná QBasic, i s ním jsem si něco užil. Na něm už se Vilda Branka naštěstí nepodílel, svoje schopnosti vyčerpal na předchozím GWBasicu :lol:
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)
Uživatelský avatar
X
Elite Level 12.5
Elite Level 12.5
Příspěvky: 19360
Registrován: 22 kvě 2007 11:34
Kontaktovat uživatele:

Re: Názory na prog. jazyky?

Příspěvek od X »

QBasic jsem si kdysi koupil za 2 000 Kč (z druhé ruky), je zcela katastrofální ... a není se co divit, vždyť je od MS. Jako něco v něm dělat jde, ale je celý blbý (nešikovný) a znechutí ... Pure Basic je zcela jiný a dalo by se říct, že je to pokračování (velmi pokročilé) Sam Basicu a Master Basicu ze Sam Coupé, které dělal Andy Wright, stejně jako skvělý Beta Basic (ale pokračovatelům na Sama se nevyrovná) na ZX Spectrum, jestli ti to něco říká ... výhodou Pure Basicu je i to, že je lehce přenositelný mezi Win (32 / 64 bit) / Linux / Mac a AmigaOS (tato platforma se už ale neupgraduje).

http://cs.wikipedia.org/wiki/Beta_BASIC
Odpovědět
  • Podobná témata
    Odpovědi
    Zobrazení
    Poslední příspěvek

Zpět na „Programování a tvorba webu“