…meie igapäevast IT’d anna meile igapäev…

2008-01-15

Asi C# süntaksis, mis mulle ei meeldi: explicit cast

Filed under: Programmeerimine — Sander @ 15:30:47

Pidin üle pika aja tööl natuke Delphis programmeerima – lausa hämmastav, kui palju oli mul läinud meie framework‘i ja süntaksi kohta meelest. See on, kui ammu pole teinud…

Aga meenus üks asi sellest ajast, kui alles C# õppisin – nimelt imestasin C# explicit cast‘i ebaloogilisuse/kohmakuse üle. Ometi on C# loojaks suuresti Anders Hejlsberg, mees kes sai tuntuks Turbo Pascali kompilaatori kirjutajana ja seejärel Delphi loonud tiimi peaarhitektina.

Aga mis on seal kohmakat? Võrdleme:

Delphi:

chb := TCheckBox(sender);

C#:

CheckBox chb = (CheckBox)sender;

Pole ju midagi õudsat? Sulud on ainult teises kohas, muud ei midagi.

Aga proovime kasutada otse, ilma muutujale omistamata:

Delphi:

TCheckBox(sender).checked := true;

C#:

((CheckBox)sender).checked = true;

Nüüd aga on olukord muutunud. Delphis on sulgude arv sama ja loetavus hea – aga C#’s on sulgude arv tõusnud kahelt neljale – ning loetavus vähemalt minuarust oluliselt halvem.

C# kasutab C-notatsiooni (c-like notation), Delphil on aga functional notation.

Aga miks otsustati C# loomisel minna sellist teed? Näen tegelikult kahte põhjust – esiteks sarnanevad sulud pärast tüüpi liialt funktsiooni väljakutsumise süntaksile ja teiseks tiim võis lihtsalt soovida Turbo Pascalile liiga sarnase süntaksi kasutamise vältimist/kasutada C süntaksit.

Aga see on minu isiklik kiiks. Muidu leian ma, et Delphi on suurepäraselt loetav keel – ilmselt on see üks põhjuseid, miks seda halvustama kiputakse: iga programmeerija suudab ilma igasuguste eelteadmisteta saada aru Delphi koodist. Aga C# on võtnud süntaksilt parima C’st, Javast ja Delphist – ning on isegi veel lihtsamini loetavam, kui Delphi.

Lisa kommentaar »

Kommentaare veel pole.

RSS feed for comments on this post. TrackBack URI

Lisa kommentaar

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Muuda )

Twitter picture

You are commenting using your Twitter account. Log Out / Muuda )

Facebook photo

You are commenting using your Facebook account. Log Out / Muuda )

Google+ photo

You are commenting using your Google+ account. Log Out / Muuda )

Connecting to %s

Create a free website or blog at WordPress.com.