Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 164 odgovora
  • 164.332 pregleda

Najnovija ↓

Re: Programer Pocetnik 27.07.2017. u 16:11 · pre 112 meseci #101
Sto se tice human readable, da, indentacija u velikom boju slucajeva nosi infromaciju o bloku ali ne uvek. Narocita sada u c#-u kad su lambde postale deo jezika.

lupam, npr:

Code (csharp):

   var x = 0;
   list.foreach(l => { x+=l; Console.Write("."); });
 


ako cu da ga indentiram:
Code (csharp):

   var x = 0;
   list.foreach(l =>
   {
      x+=l;
      Console.Write(".");
   });
 


ne vidim neko konkretnu prednost ovog drugog, niti vidim kako bi mi sintaksa bez zagrada pomogla
Potpis
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić
Sviđa mi se1
Re: Programer Pocetnik 27.07.2017. u 16:36 · pre 112 meseci #102
Meni ne smeta dynamic typing u skript jezicima, dokle god se to ne proglašava za religiju.

Savršeno sam srećan kad u shell skriptu ne moram da deklarišem tipove, ali treba shvatiti da skript jezici imaju svoju oblast primene, a to je pisanje SKRIPTOVA. Sasvim OK je da koristim skript jezik da automatizujem neke svakodnevne poslove, ali korišćenje skript jezika za pisanje enterprise aplikacija je potpuna glupost. Isto kao što je nije glupost koristiti NoSQL baze sa skladištenje nestrukturisanih podataka, ali za neke stvari jednostavno MORA relaciona baza.
Sviđa mi se1
Re: Programer Pocetnik 27.07.2017. u 22:01 · pre 112 meseci #104
A šta kad neko uzme klijentski skript jezik pa za njega napravi RTE za serversku stranu, pa to još postane nenormalno popularno, i onda kad ukapiraju da taj skript jezik i nije baš pravi objektni (jeste npr. objektni, ali je classless), pa se onda tu nađe Microsoft te napravi svoju verziju koja je praktično nadskup tog skript jezika i koji se kompajlira u taj skript jezik (eto, znamo za veći broj slučajeva gde se jedan jezik kompajlira u drugi, npr. Scala u Javu, TypeScript u JS, itd.), pa krenu od verzije do verzije da ubacuju nove stvare koje totalno ruše kompatibilnost unazad...?

Tu je onda najmanji problem da li su mi razmaci važni za sintaksu ili samo da mi kod bude čitljiviji.
Potpis
Blessed are those who can laugh at themselves, for they shall never cease to be amused.
Re: Programer Pocetnik 27.07.2017. u 22:12 · pre 112 meseci #105
Ma to dynamic vs static typing je pitanje dal greske o pogresnim tipovima dobijas u run-time ili compile-time, big deal ;p
Sviđa mi se1
Re: Programer Pocetnik 28.07.2017. u 08:01 · pre 112 meseci #106
Ne znam u kom kontekstu si napisao "big deal" ali za mene recimo to jeste big deal, bukvalno delim jezike sa statickom analizom i bez, upravo zbog compile vs runtime, tj. da li masina razume code ili ne. Ako uzmes da je program specifikacija sam po sebi, staticka analiza je tu da ti potvrdi da li je specifikacija validna sama sa sobom, dok kada to nemas, moras da se zezas sa raznim testovima i nikad nemas kompletan dokaz, tj. kada bi hteo da namestis, onda bi upravo poceo da razvijas model koji bi bio radio isto sto i staticka analiza :)

Re: Programer Pocetnik 28.07.2017. u 08:27 · pre 112 meseci #107
O cemu ti pricas? O dokazivanju korektnosti programa ili o statickim tipovima? Nisi bas razumljiv ;p
Re: Programer Pocetnik 28.07.2017. u 08:27 · pre 112 meseci #108


Potpis
Blessed are those who can laugh at themselves, for they shall never cease to be amused.
Sviđa mi se1
Re: Programer Pocetnik 28.07.2017. u 09:59 · pre 112 meseci #109
Citat:
Branimir Maksimovic:
O cemu ti pricas? O dokazivanju korektnosti programa ili o statickim tipovima? Nisi bas razumljiv ;p


Ne znam sta bi trebalo da predstavlja "dokazivanje koreknosti". Ja pricam o validnosti programa kroz static cheking, sto se odnosi na staticke tipove.
Re: Programer Pocetnik 28.07.2017. u 10:14 · pre 112 meseci #110
U svakom slucaju static type checking ne obezbedjuje validnost programa. Ono sto static type checking radi je da proveri da li sabiras babe i zabe i vraca gresku u slucaju da sabiras.
To isto se desava i u dynmaic type checking samo u run-time -u :)
Re: Programer Pocetnik 28.07.2017. u 10:20 · pre 112 meseci #111
Citat:
negyxo:
Ne znam u kom kontekstu si napisao "big deal" ali za mene recimo to jeste big deal, bukvalno delim jezike sa statickom analizom i bez, upravo zbog compile vs runtime, tj. da li masina razume code ili ne. Ako uzmes da je program specifikacija sam po sebi, staticka analiza je tu da ti potvrdi da li je specifikacija validna sama sa sobom, dok kada to nemas, moras da se zezas sa raznim testovima i nikad nemas kompletan dokaz, tj. kada bi hteo da namestis, onda bi upravo poceo da razvijas model koji bi bio radio isto sto i staticka analiza :)



Je li na to jablan mislio: 'sto ne platis na mostu, platis na cupriji', pisanje testova do besvesti upravo zbog nedostatka 'statike'..?

Meni licno je pomalo strano pisanje u jeziku koji ne signalizira u compile time-u da nesto ne valja u sintaksi; ono, programer (uvek) zna sta hoce, a sad da vidimo na sta to lici u runtime-u; hvala lepo. (zato i ne volim PHP a o JS da i ne pricam; doduse mozda ne radim u pravom alatu)

Pozz
Re: Programer Pocetnik 28.07.2017. u 10:27 · pre 112 meseci #112
Rajko govorili smo o dynamic/static types ;)
A ti sad pricas o interpretiranju/kompajliranju ...
Re: Programer Pocetnik 28.07.2017. u 11:06 · pre 112 meseci #113
Citat:
Branimir Maksimovic: U svakom slucaju static type checking ne obezbedjuje validnost programa. Ono sto static type checking radi je da proveri da li sabiras babe i zabe i vraca gresku u slucaju da sabiras.
To isto se desava i u dynmaic type checking samo u run-time -u :)


Opet, ne znam na sta mislis kada kazes "sabiras". Ako stvarno mislis na samo neke operatore, to je samo jedna u moru stvari koje radi staticka analiza. Prilikom kompakliranja ti imas gomilu provera vezanih za sam program, provera se odnosi na to da ono sto si napisao da je u korelaciji sa samim sobom i da umesto runtime dobijas compile time greske. Razlika izmedju compile time i runtime gresaka je ogromna. Kada kazes da isto to dobijas u runtime, previse ublazujes, posto u runtime dobijes samo ako dovedes program u odrjedni state gde se dobija ta greska, dok kod compile time dobijes uvek i odmah za klasu gresaka koje mogu da se detektuju statickom analizom. I zbog toga i kazem, da bi pokrio onaj deo koji staticka analiza radi, morao bi mnogo testova da napises, a nikad nemas garanciju da si sve pokrio, dok kompajler uvek radi 100% za ono sto je napisano, do kraja i bez izuzetaka, tako da imas svojevrsni "dokaz" da ono sto si napisao jeste validno sa samim sobom.
Re: Programer Pocetnik 28.07.2017. u 11:23 · pre 112 meseci #115
Ne. Ne govorim o tome. Tebi je nejasno zato sto kompajliranje danas u vecini slucajevima sa sobom nosi i staticku proveru. Striktno gledano, kompajliranje (prevodjenje iz jednog jezika u drugi, tj. iz jednoga seta instrukcija u druge) je ovde nebitno za pricu. Ono sto je bitno je - razumevanje code od strane static checkera. To su uglavnom kompajleri, ali mozes komotno i da koristis externe static chekere za proveru code-a. Recimo u C# od kako se pojavio Roslyn, mozes da pises svoj static cheker (ili analyzer, kako god ga krstili) , recimo koji ce da analizira na odredjen nacin code, gde u stvari ti mozes unutar svog projekta da automatizujes odredjen process, tipa, lupam, sve metode koje primaju integer kao prvi argument, moraju na pocetku da pozovu logger koji ce da zaloguju vrednost, ukoliko ovo nije slucaj, generises error. Uporedi ovo sa nekim testovima, ili sa nekom internom specifikacijom, ili usmenim dogovorom, bilo cim, sve ostalo se oslanja na neko rucno parsiranje i analiziranje, dok je ovo full automatic, masina uvek radi za tebe :)
Re: Programer Pocetnik 28.07.2017. u 11:24 · pre 112 meseci #116
Ni jedan ni drugi ne pričaju o interpretiranju, već o static/strong vs weak/dynamic typing.
Re: Programer Pocetnik 28.07.2017. u 11:36 · pre 112 meseci #117
Citat:
jablan:
Citat:
Predrag Supurovic:
Citat:
jablan:
"Meni se ne dopada, dakle loš jezik"


Jablane, u 2017 godini da sintaksa uslovljava broj tabova i da se time naznačavaju blokovi koda je vracanje u vreme Cobola i bušenih kartica čini mi se.

Imaš neki dokaz za to? Uostalom, šta je problem sa indentacijom? Zar ti ne indentuješ pravilno kod koji pišeš, u ma kom jeziku? Ako, da, onda su zagrade ili šta već stavljaš oko blokova čist višak.


Šta treba da se dokazuje. U Pajtonu se blokovi naznačavaju identacijom.

Naravno da identiram kod ali to ima samo praktičnu vizuelnu svrhu a nikako sintaksnu. Meni je bezvezna ideja da mi kod ne radi zato što negde fali tab ili znak razmaka. Hajde da bar to bude prijavljeno kao sintaksna greška, nego što pogrešno identiran kod (što često nije očigledno kada se kod čita) može da bude sintaksno ispravno ali da skroz promeni način rad programa i postane noćna mora za debag.

Citat:

Citat:

recimo objektni model je prilično (ja bih rekao preterano) pojednostavljen.

Znaš kako, meni kao primarno ruby programeru svaki ne-čisti objektni model (Java, PHP, C++, Delphi, C#, štagod) izgleda smešno, pa opet ga ljudi sasvim uspešno koriste.


Verujem ti. Onda možeš misliti kako tek izgleda objektni model koji je drastično pojednostavljen i u odnosu na te "smešne".

Citat:

Kritike koje iznosi mmix imaju logike, jer su očigledno zasnovane na praksi, ali nemaju veze sa samim jezikom, već sa implementacijom i ekosistemom.

@maksvel: ne brini, haters gonna hate, super je python, posebno za početak (a ima i dovoljno posla za python programere)

[/quote]

Ti si pogrešno zaključio da ja ne volim Pajton. Naprotiv, ta platfoma mi je veoma simpatična. Samo sam naveo neke stvari koje mi se ne sviđaju.

Potpis
http://pedja.supurovic.net - http://wireless.uzice.net - Besplatni .RS domeni - Mikrotik uputstva - YT9TP - OpenStreetMap Srbija
Re: Programer Pocetnik 28.07.2017. u 11:39 · pre 112 meseci #118
Ne znam, sad se pominje static checker. Dinamicki tip moze biti i u kompajliranom jeziku. Stvar je u tome da dinamicki tip varijable nije vezan za jedan tip u toku izvrsavanja celog programa.
Dakle kod statickog tipa
int a = 5;
a = "str"; // greska
varijabla a ostaje tipa int kroz ceo program.
Dok kod dinamickog
a = 5;
a = "str";
tip varijable a se menja u zavisnoti sta dodelis varijabli.
To je osnovna razlika.
Ne znam sta sa time ima sad static checker ;)
Re: Programer Pocetnik 28.07.2017. u 11:40 · pre 112 meseci #119
Citat:
negyxo:
Iskreno, ja sam skroz protiv zagrada.


I ja sam. Uvek su mi se više sviđali begin i end u Paskalu i Delphiju :)

Citat:

Haskell demonstrira to lepo, dok recimo za .NET F# je takodje prilicno cist. No, razlog zasto smatram da su zagrade visak je - sto to zaista jesu. Stvar je navike ali rekao bi i nepotreban noise. Treba uzeti u obzir da whitespace sa sobom nosi informaciju i to se vec sada uveliko radi, tako da mu zagrade dodju kao vezba za prste. Recimo, pre par godina dok sam radio za jednu firmu, bilo je pravilo da ne moze da se commituje code koji nije prosao sintaksnu proveru, naravno automatsku (C#, FxCop). Radeci tako, dosao sam u jednu skroz apsurdnu situaciju, nema commita dok ne ispravis svaku nepravilnost, a gomila tih neprovilnosti se odnosila da moras da identujes kako treba i da stavljas zagrade kako treba. Tada ti se upali lampica da sve vreme glumis tool za formatiranje umesto da se bavis samo programiranjem. Neko bi rekao da ovo moze da se automatizuje - i moze, ali cemu onda automatizacija noise-a?


Upravo zato su i smislili sintaksu koja naznačava ključnim rečima početak i kraj bloka. To omogućava da potpuno slobodno kucaš kod u okvru bloka, ne vodeći računa o identaciji i prelamanju redova.

Potpis
http://pedja.supurovic.net - http://wireless.uzice.net - Besplatni .RS domeni - Mikrotik uputstva - YT9TP - OpenStreetMap Srbija
Re: Programer Pocetnik 28.07.2017. u 11:58 · pre 112 meseci #120
Kada se radi u timu onda tu nema mnogo diskusije.

Npr. meni je sa code review-a vracan kod samo zato sto sadrzi razmake na kraju linije (trailing space). I smatram da je to ok, jer je razlog sasvim jasan, dodavanje / brisanje ovih nebitnih i uglavnom nevidljivih karaktera unosi nepotreban sum u istoriju revizija (u nasem slucaju git) i nepotrebno zamara reviewer-a.

Rjesenje je vise nego jednostavno, provuci kod kroz style checking tool (npr. uncrustify za C++) i problem rijesen. Na ovaj nacin mogu da se fokusiram konkretno na problem koji rjesavam, a da se ne zamaram previse o stilu koji treba da pratim. Konzistentnost je u ovakvim slucajevima najbitnija.
Sviđa mi se2
Odgovori
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme