Skip to content
 

Večne živá téma: C vs Pascal

C vs Pascal – večný námet silných flamewars, hádok a diskuzií. Chcel som tiež priliať svoju trochu oleja do ohňa nejakými odbornými argumentmi – ale keď som sa trochu hlbšie zamyslel, zistil som že podstata sporu je niekde úplne inde.

Dá sa nekonečne dlho diskutovať o vhodnosti toho-ktorého jazyka na ten-ktorý účel. Dá sa nekonečne dlho diskutovať o kvalite programu vytvorenom v tom-ktorom jazyku. Dá sa nekonečne dlho diskutovať o rýchlosti vývoja, vymenovávať plusy a mínusy …

Ale o tom to nie je.

Prvým faktom je, že programovanie bolo degradované na primitívne remeslo. Zober tento kúsok, prilep ho k inému kúsku, trikrát klikni myšou a program je hotový. Algoritmus? Čo to je? Optimalizácia? Načo, keď pamäte sú tak lacné? Tento trend podchytili výrobcovia programovacích nástrojov a ponúkajú nespočetne mnoho produktov, ktoré (podľa tvrdenia výrobcov) pragramujú samy.

Tento prístup viedol k tomu, že programovanie ako profesia degradovalo na znalosť nejakého programovacieho nástroja. Nástroja – všimnime si toto slovo. Programovací jazyk je nástroj, pomocou ktorého sa vytvára produkt – program. A tak ako v iných profesiách, nástroj je treba zvoliť podľa toho, čo chceme robiť. Skúste si predstaviť remeselníka, ktorý by odmietol použiť na skrutky skrutkovač a tvrdil by, že kladivo je na skrutky vhodnejšie, pretože práca s ním je rýchlejšia – má svojim spôsobom pravdu, ale o jeho služby nebude nikto stáť. Na druhej strane programátor, ktorý odmieta robiť v nejakom jazyku (či skôr je ochotný robiť iba v jedinom jazyku), je dnes považovaný za niečo normálne.

Druhým faktom je, že Pascal sa často používa pri výuke v školách. Nič proti tomu – Niklaus Wirth vytvoril Pascal práve za týmto účelom. Takže zo škôl vychádza veľa ľudí ovládajúcich Pascal. Ani na tom nie je nič zlé. Lenže keď k tomu prirátame prvý fakt, tak nám zo škôl vychádza veľa ľudí, ktorí si o sebe myslia, že sú programátori. A to už zlé je.

Tretím faktom je, že profesia programátora často priťahuje ľudí, ktorí hľadajú pohodlnú, neveľmi náročnú, ťažko merateľnú a dobre platenú prácu. Profesia programátora je pohodlná – pracuje sa v teple, nemusí sa zdvíhať nič ťažké a výsledky práce sú ťažko kontrolovateľné – hlavne po stránke kvality a dôslednosti. Že preháňam? Spýtajte sa kohokoľvek, kto robil vstupné pohovory s uchádzačmi o túto profesiu.

A teraz si predstavme, že takémuto „programátorovi“ naznačíte, že existuje aj iný programovací jazyk, v ktorom by mal programovať – vzhľadom k rozšírenosti je to najčastejšie C, ale môže to byť Java, assembler alebo čokoľvek iné. Toto sa nezhoduje s jeho predstavou pohodlnej práce. A nielen to – je to útok na jeho osobné pohodlie, spôsob života, hodnotový rebríček! Tomu treba okamžite zabrániť! Pretože nemôže povedať pravú príčinu svojho odporu, začne vymýšľať rôzne „odborné“ dôvody – a že ich dokáže vymyslieť dosť.

Pekným príkladom neochoty zvládnuť niečo viac je nedávna diskuzia v jednej konferencii, kde sa riešil problém implementácie SW UART-u v Pascale. Okrem iného sa riešila problematika časovania. Keď sa jeden z diskutujúcivh zmienil, že Pascal je na to nevhodný a aplikácie citlivé na časovanie treba riešiť v assembleri, okamžite prišla popudliva reakcia – aké sú Pascaly úžasné a ako neuveriteľne dobre optimalizujú.

Takže keď to zhrnieme, pravá príčina ťaženia Pascalistov proti C je:

LENIVOSŤ

Vyzbrojení novým poznaním, pozrime sa na niekoľko argumentov, používaných na obhajobu Pascalu – a zistíme, že je to opäť o lenivosti:

  • „programátor“ potrebuje kontrolu indexov, pretože implementovať nejaké kontroly predstavuje nadprácu. Skutočný programátor si implementuje kontrolu polí tam kde ju naozaj potrebuje a implementuje ju optimálne
  • „Programátor“ potrebuje preddefinovaný typ na všetko. Najmä reťazec. Na druhej strane programátor nemá problém implementovať pár funkcií ktoré v projekte potrebuje. Toto je pre programátora“ neakceptovaateľné. Predsa tú polhodinu môže stráviť užitočnejšie, napríklad lozením po webe.
  • smerníky – zatiaľ čo programátor vidí v smerníkoch a ich zameniteľnosti s poliami ďalšiu možnosť pohľadu na dáta a bez problémov si zvolí ten vhodnejší, pre „programátora“ táto voľba predstavuje nadbytočnú námahu. Rozhodovať sa – to je práca navyše.
  • „programátor“ potrebuje striktné typové kontroly, pretože pamätať si v ktorej premennej sú hrušky a v ktorej jablká predstavuje nadprácu (hlavne keď premenné nazve x a z, pretože vypisovať popisné mená dá priveľa roboty). Skutočný programátor s tým nemá problém – a keď spočíta hrušky s jablkami tak vie, že získa miešaný kompót.

Diskuzie C vs Pascal určite tak skoro nezmiznú. Budú nekonečné, plné emócií a urážok. Žiadne racionálne alebo odborné argumenty nepomôžu. Ale my už vieme prečo.

Print Friendly, PDF & Email
2 376 zobrazení