Programski jezik - s kojim početi?

poruka: 160
|
čitano: 65.101
|
moderatori: Lazarus Long, XXX-Man, vincimus
+/- sve poruke
ravni prikaz
starije poruke gore
Ova tema je sadržajno povezana sa sljedećim temama: Odabir programskog jezika za potpunog početnika
16 godina
neaktivan
offline
RE: Programski jezik - s kojim početi?
The Unforgiven kaže...

Dakle, pošto visim non-stop za ovom kantom s kojom ne mogu čak ni igre igrati pristojno, odlučio sam naučiti nešto korisno! Dakle, pošto sam skoro pa totalni početnik u programiranju, koji jednostavniji, a koristan programski jezik bi mi preporučili? Znači glavna stvar bi bila da će mi on poslije u životu koristiti - bio to programski jezik za web aplikacije ili nešto drugo.


 

 

Preporučujem ti Perl (www.perl.org). Za početničku literaturu uzmi "Learning Perl" jer je namjenjena i početnicima u programiranju, a ne samo neukima Perlu (a i postoji srpski prijevod koji se može kupiti za cca 120kn u Zagrebu). Također, http://strawberryperl.com/ je više up-to-date Perl, nego onaj koji dolazi sa ActiveStateom - ako koristiš windoze.

 

16 godina
moderator
offline
RE: Programski jezik - s kojim početi?
Zasto mu preporucujes bas Perl? Obrazlozi svoju preporuku.
16 godina
neaktivan
offline
RE: Programski jezik - s kojim početi?

Prednosti:

  • fleksibilna i moćna sintaksa (nekima to nije prednost, al ajd),
  • lak za početnike, dovoljno moćan naprednima (autor jezika Larry Wall tvrdi da je Perl dizajniran na način da ga se uči kako ljudi uče i govorni jezik. I dok znaš malo vokabulara možeš pričati. Što više učiš, to više pričaš.),
  • podrška za više paradigmi programiranja (funkcionalno, OO (class-based, prototype based, etc), logično, you name it, ...),
  • dobar sustav dijeljenja svojih aplikacija - nakon uploada modula na CPAN vrte se automatizirani testovi (koje sam napišeš, ofcourse) na više platformi i više verzija perl interpretera,
  • jako velika baza iskoristivog i praktičnog softvera - trenutno preko 20000 distribucija modula na CPAN-u. Napominjem da se ovdje radi o velikoj većini istestiranog softvera za više platformi što znači da je količina bugova relativno mala.
  • odličan community www.perlmonks.org,
  • jako jednostavno napistati tzv. throwaway programe za kratke zadatke,
  • integrirana podrška za regularne izraze,
  • brz i sveprisutan interpreter,
  • There is more than one way to do it (TMTOWTDI) filozofija,
  • odlična dokumentacija dolazi po defaultu sa interpreterom (premda ima i zastarjelih dijelova tu i tamo)

 

Nedostaci:

  • čini se da je svakome pythonovcu trn u oku zbog nazovi-teške sintakse,
  • neki sintaktički konstrukti su zastarjeli (ali uglavnom postoje rješenja i za to na CPAN-u, npr autobox, signature, etc),
  • TMTOWTDI zna biti i negativan princip kad se naleti na old-school način programiranja (stariji moduli, npr)

 

 

Za sami development dobro je to što je third party softver sa CPAN-a dobro istestiran. U zadnjih 5-6 godina profesionalnog programiranja jako sam rijetko nailazio na ozbiljnije bugove.

Toga nebi bilo bez test-driven pristupa programiranju koji dosta Perl programera zagovara i koristi (prvo napiši testove, onda napiši aplikaciju). Također, jako su rijetko moduli bez dokumentacije ili bez barem i jednog primjera korištenja.

 

Nisam siguran da će se OP odmah posvetit profi programiranju, ali mislim da je Perl dobar start. Barem je meni bio prije 10-tak godina :)

 

16 godina
moderator
offline
Programski jezik - s kojim početi?

A zasto ne uciti PHP umjesto Perla? Mislim, kad se vec ide na interpretirani jezik u kojem ne treba deklarirati varijable, nekako mi je logicnije da se uci PHP. PHP je ionako Perlov krvnik.  {#} A koliko vidim, jezici su slicni. Znaci, ucio bi jezik koji se danas relativno slabo koristi (barem za web-stranice), umjesto najpopularnijeg jezika za razvoj web-stranica.

 

 

BTW Nekako mi se cini boljom obrnuta filozofija - uciti na kompajleru, pa onda raditi u necem manje strogom, ako treba. Mislim tu na deklaraciju varijabli i "univerzalne" varijable u PHP-u (pretpostavljam da su slicne i u Perlu). Ne znam koliko to pomaze, a koliko odmaze. Iz iskustva QBasica nekad davno mogu reci da mi se to uopce ne svidja i da sam od toga imao samo stete. Najgore je bilo kad slucajno napravis tipfeler u nazivu varijable pa koristis u biti nepostojecu varijablu. Takodjer, programer mora biti svjestan tipova podataka, mora ih znati i razumjeti. Ucenjem prvo Perla ili PHP-a te stvari ostavlja za neka bolja vremena, kad ce prijeci na neki ozbiljniji programski jezik. Cini mi se smislenijim prvo usvojiti te stvari pa onda s dobrom podlogom krenuti u PHP/Perl, jer onda cak i ako ne deklariras varijable, svjestan si sto se zapravo dogadja, imas bolje razumijevanje cijele price.

 

Black Deus Typhon kaže...

Nisam siguran da će se OP odmah posvetit profi programiranju, ali mislim da je Perl dobar start. Barem je meni bio prije 10-tak godina :)

Opisi nam svoj programerski put - mozda nekog inspirira.

 
0 0 hvala 1
13 godina
neaktivan
offline
Programski jezik - s kojim početi?

Moje je osobno stajalište da je kod samostalnog učenja programiranja izbor programskog jezika manje bitan od izbora dobrog udžbenika. To kažem zato što nijedan programski jezik nije savršen i svakom se može naći gomila mana, što u kontekstu učenja programiranja i što u kontekstu profesionalnog rada.

 

Uz dobar udžbenik, poželjno je da je odabrani jezik dobro prihvaćen u "umreženoj" zajednici i da za njega postoji kvalitetno razvojno okruženje (s dobrim debuggerom).

 

Konačno, mislim da bi se početnike trebalo učiti imperativnom stilu programiranja s naglaskom na algoritme i osnovne strukture podataka, s tim da bi se trebalo paziti da većina fja budu "čiste", odnosno u duhu paradigme funkcijskog (funkcijsko-orijentiranog) programiranja. U paradigmi objektno-orijentiranog programiranja ne vidim ništa naročito korisnog za početnike - mnoge temeljne ideje te paradigme su naprosto preapstraktne da bi ju početnici mogli cijeniti i iz nje korisna saznanja crpiti.

 
1 0 hvala 2
16 godina
moderator
offline
RE: Programski jezik - s kojim početi?
Max Demian kaže...

U paradigmi objektno-orijentiranog programiranja ne vidim ništa naročito korisnog za početnike - mnoge temeljne ideje te paradigme su naprosto preapstraktne da bi ju početnici mogli cijeniti i iz nje korisna saznanja crpiti.

Svijet funkcionira na OO nacin! Dao sam ti primjer sa slusanjem muzike. OOP je prirodan koncept i moze se izravno povezati sa stvarnim svijetom. Mozda je samo problem u tome sto mnogo ljudi to ne zna propisno objasniti.

14 godina
odjavljen
offline
RE: Programski jezik - s kojim početi?
sysdba kaže...

ili kao ja za pocetak uzmi Flash ActionScript, pa kasnije PHP zajedno s MySQL... pa pocmes koristiti frameworke.. i tako :)

Napredne FLASH animacije ili full flash web pages?

16 godina
neaktivan
offline
RE: Programski jezik - s kojim početi?

@mbaksa: Ne koristi se Perl u webu toliko slabo danas, koliko misliš. Nije da imam statistike pri ruci ali praćenjem Perl blogova vidi se dosta aktivnosti i u razvoju novih frejmvorka (Plack, Dancer) i novih aplikacija (Bricolage mi pada na pamet, premda nije nov, ali je nedavno izašao major release). Glede varijabli - u Perlu se preporučuje koristiti "strict mode" (iz razloga koji i sam navodiš) za bilo što ozbiljnije osim one-linera - znači da je deklaracija varijabli obavezna. PHP je monolitni i loše dizajniran egomanijakalni jezik koji je najpopularniji stoga jer ga je bilo najlakše deployat. U zadnjih 10 godina praktički uz svaki apache na kanti je i PHP. Perl je minimalističan i praktičan.

 

Ne vidim zašto bi Perl bio manje ozbiljan jezik od C-a (koji mu je jedna od glavnih inspiracija, BTW). Ne moraš manje učiti Perl da bi znao programirati, ali s Perlom ne moraš brinuti o svakom bajtu na mašini. Programiranje se svodi na rješavanje (zanimljivih) problema, a razina jezika je čisto jedan level zanimljivosti i praktičnosti, a ne neke unutrašnje iluminacije {#}

Mislim da se dosta može naučiti i iz abstraktnih koncepata koji nemaju mnogo veze sa hardverom, a tu mislim na funkcionalno programiranje koje je za pristup rješavanju raznih problema napravilo više nego razno-razne implementacije garbage collectora + memory allocatora na koje se programiranje u C-u svodi.

 

OTOH, nisam ziher da bi baš moj programerski put trebao nekoga inspirirati. To će se dogodit nakon što implementiram Perl 6 u JavaScriptu {#}

 

 

@Max Demian: slažem se. Zato sam za Perl i preporučio "Learning Perl" http://oreilly.com/catalog/9780596001322/preview#preview

 

13 godina
neaktivan
offline
RE: Programski jezik - s kojim početi?
mbaksa kaže...
Max Demian kaže...

U paradigmi objektno-orijentiranog programiranja ne vidim ništa naročito korisnog za početnike - mnoge temeljne ideje te paradigme su naprosto preapstraktne da bi ju početnici mogli cijeniti i iz nje korisna saznanja crpiti.

Svijet funkcionira na OO nacin! ...

 

  Ovo mi zvuči kao teški dogmaticizam. Mislim da još uvijek nismo toliko znanstveno uznapredovali da bi mogli tvrditi kako svijet točno funkcionira, a pogotovo ne toliko da to možemo sažeti u jednu rečenicu!

 

Ono na što si ti zapravo aludirao jest to da je paradigma OO izrazito pogodna za simulaciju nekih zbivanja u stvarnom svijetu. To ne osporavam: nije se bez razloga prvi programski jezik koji je omogučio kakvo-takvo programiranje pod paradigmom OO zvao "Simula".

 

Ali nisu svi programi simulacije, niti je OO idelan čekić za svaki čavao. Naime, paradigma OO stavlja ogroman naglasak na tipove, a taj je koncept početnicima vrlo težak za shvatiti. Bez ispravnog shvaćanja ideje tipa, nema ni valjanog razumijevanja poante programiranja pod tom paradigmom. Bez solidnog razumijevanja proceduralnog programiranja ne može se cijeniti cijeniti ideja višeobličnih (polimorfnih) funkcija/objekata koje su glavno oružje paradigme OO.

 

Samo da razjasnim: programiranje bez višeobličja zasnovanog na sustavu podtipova (Subtype polymorphism) po meni uopće i nije programiranje u paradigmi OO.

 

U svom dosadašnjem iskustvu podučavanja brucoša računarstva programiranju uvijek sam stavljao naglasak prvo na algoritme, pa onda na strukture podataka. Rezultati su redovno bili izrazito pozitivni i ohrabrujući.

 

Čisto informacije radi, programski jezik u pitanju jest C++. Da me se krivo ne shvati,   taj jezik nipošto ne nalazim idealnim za podučavanje programiranja, ali je svakako korak naprijed u odnosu na programski jezik C koji je još uvijek vrlo zastupljen na uvodnim kolegijima iz programiranja na našim fakultetima.

 

Poruka je uređivana zadnji put uto 18.1.2011 17:22 (Max Demian).
15 godina
neaktivan
offline
RE: Programski jezik - s kojim početi?

Vidim da su malo zašli u "religijske " pojmove programiranja na autorovu temu.
Neću se uplitati u prepucavanja "moj je veći" ili imam taj i taj auto {#}.....
Moj prijedlog ...kreni sa onim što ti se nudi na webu(ili knjige koje su lijepo sad dostupne)  kao predavanja ...budućnost je svakako u nekom obliku objektnog programiranja ...stoga nauči jezik koji ima neku budućnost ili je nudi u tom pogledu .....ako hočeš dobru podlogu za sve tad je to uvijek i sveprisutan prijedlog za C++ .Poslije njega možeš što god želiš.....Osobno sam za C# ali možeš i Javu -u ..oba jezika ti mogu biti podloga za svaki drugi jezik.Kreni od jedonstavnih stvari koje češ puno puta ponavljati i tako stepenicu po stepenicu .Nema nekog savršenog prijedloga jer bilo koji jezik ako odabereš i budeš jakooo dobar u tome ,ne brini to će se pokazati i cijeniti .Dakle napraviš plan i udaraš po jednom ...za ostale će ti biti lako.Pusti kolege neka se prepucavaju ,vadi samo ono bitno .

Private
16 godina
moderator
offline
RE: Programski jezik - s kojim početi?
Max Demian kaže...
mbaksa kaže...
Max Demian kaže...

U paradigmi objektno-orijentiranog programiranja ne vidim ništa naročito korisnog za početnike - mnoge temeljne ideje te paradigme su naprosto preapstraktne da bi ju početnici mogli cijeniti i iz nje korisna saznanja crpiti.

Svijet funkcionira na OO nacin! ...

 

  Ovo mi zvuči kao teški dogmaticizam. Mislim da još uvijek nismo toliko znanstveno uznapredovali da bi mogli tvrditi kako svijet točno funkcionira, a pogotovo ne toliko da to možemo sažeti u jednu rečenicu!

Fakat sam neugodno iznenadjen ovim komentarom. Slazem se s Privateom - religiji ovdje nije mjesto.

 

Max Demian kaže... 

Ono na što si ti zapravo aludirao jest to da je paradigma OO izrazito pogodna za simulaciju nekih zbivanja u stvarnom svijetu. To ne osporavam: nije se bez razloga prvi programski jezik koji je omogučio kakvo-takvo programiranje pod paradigmom OO zvao "Simula".

Uopce nisam aludirao na to - to mi nije bilo ni na kraju pameti. Jednostavno je logicnije imati sve pod istim krovom i onda narediti tom objektu da nesto napravi. Nego da zoves neku javnu funkciju kojoj ces onda slati podatke koje mora procesirati.

 

Zar nije logicnije da imamo klasu pas, koja ima atribute poput visine, duljine, boje, vrsteLaveza i koji onda ima metode laj i nacrtaj, umjesto da imamo odvojene varijable ili strukture koje ce sadrzavati sve te podatke, te "letece" funkcije nacrtajPsa i laj, kojima cemo onda prosljedjivati podatke o psima? Ili cemo im prosljedjivati pokazivace na strukture s podacima o psima? Pa kad vec to radimo, zasto onda ne bi to napravili kak se spada - stavili podatke i funkcije pod isti krov? Osim toga, instanciranje i koristenje pasa je u OOP-u ultra jednostavno. Sto je slicnije nacinu na koji svijet funkcionira?

 

 

Max Demian kaže... 

Naime, paradigma OO stavlja ogroman naglasak na tipove, a taj je koncept početnicima vrlo težak za shvatiti. Bez ispravnog shvaćanja ideje tipa, nema ni valjanog razumijevanja poante programiranja pod tom paradigmom.

Mozda je problem u prezentaciji sadrzaja? OOP za sredjoskolce:

 

Mislim da je iz ovakvih videa lako shvatiti sto su tipovi (objekata).

 

Koliko toga ce pocetnici shvatiti ovisi o tome koliko su nastrojeni na to, ali i o predavacu. Imao sam prilike prije 8-9 godina pohadjati kolegije na kojima smo ucili C i C++ i oni definitivno nisu bili inspirativni. Medjutim, ipak je bilo koristi - izmedju ostalog, tamo sam shvatio jako bitnu stvar - pokazivace. Posto sam do tada bio samouk (Pascal) i nikad nisam procitao nikakvu knjigu o programiranju (a u to vrijeme je i Internet bio siromasan), bjezale su mi neke bitne stvari iz teorije. Jos se sjecam kad sam u srednjoj skoli pitao procesoricu sto su tocno pokazivaci i kako se koriste, a ona mi nije znala objasniti. Uglavnom, mi neki koji smo bili nastrojeni programerski smo pohvatali bitne stvari, a ostalima je bilo bitno samo da prodju - uopce nisu ulazili u tematiku. U zadnjih par godina sam se opet nasao u ulozi studenta na jednom veleucilistu, gje su studenti jos manje bili nastrojeni prema programiranju. Cak i oni koji su se najvise trudili i pokusali shvatiti nesto, nisu uspjeli pohvatati neke bitne stvari. A vecini je samo stalo da nekako to poloze. A sto se tice profesora? Ovaj koji je predavao C++ je totalno promasio pristup. Predavao je kao da se radi o skupini inzenjera koji vec znaju barem nesto programirati i koji su ciljano dosli nauciti C++. Ja sam ga razumio svaku rijec, a 95% studenata oko mene ga je samo blijedo gledalo. Zasto? Zato sto nije bio svjestan sto i kako mora to prezentirati ucenicima. Zato jer ima pogresan pristup. I sto se onda dogadja? Maltretira studente po tri-cetiri sata na ispitima ne bi li uspio iz njih iscijediti nesto da im da dvojku. A nema sto iscijediti jer nemaju blage veze - tek se tu i tamo potrefi da znaju reproducirati kod koji su napamet naucili. Ako se dobro sjecam, na tom kolegiju zapravo uopce ni radili OOP. Pa sad ti vidi. Osobno vjerujem da ce kvalitetan predavac bolje studentima prenijeti OOP (ili barem neke od koncepata OOP-a - ne moraju odmah bas sve nauciti), nego je im je ovaj prenio proceduralno.

 

 

Max Demian kaže... 

Bez solidnog razumijevanja proceduralnog programiranja ne može se cijeniti cijeniti ideja višeobličnih (polimorfnih) funkcija/objekata koje su glavno oružje paradigme OO.

To je ko da kazes da se bez dugotrajnog iskustva DOS-a ne moze cijeniti graficko sucelje Windowsa. Zapravo si vjerojatno u pravu.  {#} Ali koga briga hoce li netko cijeniti te genijalne osobine OOP-a? I kako to moze biti faktor za ista? Ostavimo lose ili u najmanju ruku manje dobre stvari iza nas. Ja za DOS-om ne zalim i zapravo ne bih zelio da itko drugi mora prolaziti kroz njega, pogotovo u danasnje vrijeme, kad sve vrvi od izvrsnih grafickih sucelja.

 

 

Max Demian kaže... 

Samo da razjasnim: programiranje bez višeobličja zasnovanog na sustavu podtipova (Subtype polymorphism) po meni uopće i nije programiranje u paradigmi OO.

Ja bih rekao da je to na pola puta do potpunog OOP-a. Svakako to nije potputno (a mozda ni "dovoljno") iskoristavanje OO paradigme, ali vec su enkapsulacija i skrivanje podataka dovoljno velik odmak od proceduralnog programiranja k OOP-u da ne moramo inzistirati na proceduralnom programiranju. Pa neka oni vjestiji ili oni koji imaju zelje nastave iskoristavati sto je vise moguce koncepata OOP-a.

 

Da me se krivo ne shvati - nemam nista protiv ucenja proceduralnog programiranja kao takvog - samo ne vidim zasto se ljude odmah ne bi usmjeravalo na OOP. Dodatni razlog je to sto neki (mnogi?) koji su naucili proceduralno programirati, prema vlastitim rijecima, poslije imaju problema s prelaskom na OOP, jer OOP zahtijeva drugaciji nacin razmisljanja. I ja ponekad znam zastraniti u proceduralno programiranje, ali mi se to cesto zna obiti u glavu i onda idem napraviti ono sto sam odmah trebao. Konstruiraj klase, napravi objekte i pusti ih da rade svoj posao.  {#} Inicijalno potrosis malo vise vremena slaganje klase, ali dugorocno ti se to itekako isplati.

 

Max Demian kaže... 

U svom dosadašnjem iskustvu podučavanja brucoša računarstva programiranju uvijek sam stavljao naglasak prvo na algoritme, pa onda na strukture podataka. Rezultati su redovno bili izrazito pozitivni i ohrabrujući.

Mozda da jednom pokusas obratno?  {#}

 

 

Max Demian kaže... 

Čisto informacije radi, programski jezik u pitanju jest C++. Da me se krivo ne shvati,   taj jezik nipošto ne nalazim idealnim za podučavanje programiranja, ali je svakako korak naprijed u odnosu na programski jezik C koji je još uvijek vrlo zastupljen na uvodnim kolegijima iz programiranja na našim fakultetima.

Eh da radis Javu ili C#... C++ s pokazivacima samo ljudima komplicira zivot.  {#} Ja zapravo pocetnicima ne bih preporucio da OOP idu ucit u C++-u. Ako vec mora biti C++, onda neka bude proceduralno programiranje, jer bi ih sam C++ mogao previse opteretiti. Ako ne mora biti, onda neka bude OOP u Javi ili C#-u ili ne znam cem vec...

14 godina
neaktivan
offline
Programski jezik - s kojim početi?

 

khm khm...

Zasto da se covjek zajebaje sa sintaksom i milijun nepotrebnih zagrada te na kraju umjesto da se usredotoci na programiranje i slozenost algoritama on ce se svadjati gdje mu je nestala tocka zarez i zasto umjesto



for i=1 to 10  printfn "hello world"

mora pisati

for (int i = 0 tocka zarez i <= 10 tockazarez i++) //zasto mu uopce mora reci da sam inkrementira ako ide od 1 do 10

otvori viticastu zagradu

std::cout<<"hello world"<<endl;

zatvori viticastu zagradu

Moj savjet ti je da uzmes neki funkcijski jezik (ne lisp i emacs jer ce ti se samo smuciti, ali f#, ocaml bi bili u redu) Vrlo brzo ces moci preci na teoriju slozenosti mjeriti vremena pojedinih funkcija kroz System.DataTime.Now i usporedjivati slozenosti.(za f# pricam) Cak je i crtanje grafova skoro pa trivijalna stvar kad shvatis koncept liste i pohvatas dijelove visual studio-a. vrlo je slican ocamlu samo sto ima funkcionalnosti .neta. :-)
Mada eto ne bih trebao poceti s idejom uci framework, a ne jezik, ali jbga janisam profesor :-)





 

Moj PC  
0 0 hvala 0
16 godina
moderator
offline
RE: Programski jezik - s kojim početi?
JFS3G2 kaže...

 

khm khm...

Zasto da se covjek zajebaje sa sintaksom i milijun nepotrebnih zagrada te na kraju umjesto da se usredotoci na programiranje i slozenost algoritama on ce se svadjati gdje mu je nestala tocka zarez i zasto umjesto

Moram priznati da i meni malo smeta pisanje zagrada za for-petlju (samo zato jer moram drzati Shift na tipkovnici i nabadati koja je tipka za koju zagradu, jer cesto mijenjam izmedju hrvatske i engleske tipkovnice), ali kad pocnes raditi u C/C++-like jezicima brzo se priviknes i zapravo ti postane odbojno pisati kljucne rijeci tamo gdje ne treba (do ili step kod petlji, begin end). S obzirom da sam najveci dio vremena programirajuci proveo u Pascalu i Delphiju, kod kojeg je sintaksa za for petlju vrlo slicna ovome sto si napisao, prelazak na C++-like jezike mi je bio pravo osvjezenje.

 

No, sto je tu tako strasno oko sintakste C-like jezika za petlju for? Mijenjas rijec to s tockom-zarez. Nije da si nesto puno vise napisao. I vidis (naredis) za koliko ce se iterator uvecavati ili smanjivati. Istina je da su mogli omoguciti da se interator sam inkrementira za jedan, no ovako je dosljednije. Ako ces u F# smanjivati iterator ili ako ce iterator ici recimo po dva, kako onda izgleda sintaksa? Kod Pascala se dodaje kljucna rijec step. Nije lijepo za vidjeti.

 

Uglavnom, rekao bih da je pisanje for-petlje stvar ukusa. Meni osobno vise se svidja C-like.

 

 

I moram samo jos prokomentirati tvoj primjer za for u C++-u - s jedne strane preuvelicavas situaciju (using namespace std ide prakticki u svakom programu, slovima pises tocku-zarez, stavljas viticaste zagrade tamo gdje ne trebaju). Izgleda da ne znas da u for-petlju ide jedna naredba. A to znaci da mozes napisati ovako, bez viticastih zagrada i u jednom redu:

 

for (int i = 0; i < 10; i++) cout << "hello world\n";

 

A izmedju obaveznog prelaska u novi red ili pak pisanja tocke-zarez - biram tocku-zarez - na taj si nacin mogu razlomiti naredbu u koliko god redova zelim i ujedno imam vizualnu potvrdu da je upravo tu kraj naredbe. Isto tako, vise mi se svidjaju viticaste zagrade od indentacije. Takodjer valjda stvar osobnog ukusa.  {#} Mozda bi trebali napraviti anketu o tome pa da vidimo kako forumasi disu.

 

 

Inace, glede sintakse F#-a - po kojem principu to moze biti namijenjeno pocetnicima? Mislim - gledam sintaksu i ne mogu se nacuditi! Pa to je jedan uzas i kaos! http://www.fincher.org/tips/Languages/fsharp.shtml

 

Hvala na ovome. Sad jos vise cijenim Pascal i njegovu sintaksu i mislim da je Pascal idealan jezik za ucenje proceduralnog programiranja. A Delphi (ili objektni Pascal s referencama za objekte - znaci, poput Jave i C#) za ucenje OO programiranja. Prava je steta sto je Microsoft forsirao Basic - eto, kad je Bill Gates poceo s Basicom, a Microsoftovi neprijatelji iz Applea su koristili Pascal.

 

JFS3G2 kaže...  

Moj savjet ti je da uzmes neki funkcijski jezik (ne lisp i emacs jer ce ti se samo smuciti, ali f#, ocaml bi bili u redu) Vrlo brzo ces moci preci na teoriju slozenosti mjeriti vremena pojedinih funkcija kroz System.DataTime.Now i usporedjivati slozenosti.(za f# pricam) Cak je i crtanje grafova skoro pa trivijalna stvar kad shvatis koncept liste i pohvatas dijelove visual studio-a. vrlo je slican ocamlu samo sto ima funkcionalnosti .neta. :-)
Mada eto ne bih trebao poceti s idejom uci framework, a ne jezik, ali jbga janisam profesor :-)

Ne trebas biti profesor da bi mogao razlikovati sam jezik i framework. Tim vise sto govoris o .Net frameworku - znaci to isto mogu recimo i C# i VB.Net.

13 godina
protjeran
offline
Programski jezik - s kojim početi?

Slažem se sa mbaksom. A isto tako slijedi pitanje za druge: Otkud vama da su python i ruby jednostavni?

 

Da jednostavni su kad radiš skripte, ali to su OO jezici koji su itekako kompleksni kao svaki OO kad se počne ozbiljno raditi. Pogotovo ruby.

 

Dakle nemojmo zavaravat pokretača topica sa dezinformacijama, zato jer je netko pročitao tako na wikipedia-i, ili je napisao 2 skripte u pythonu.

 

 

Moja preporuka: Ili početi sa skriptnim jezicima pa nadograđivati znanje, ili početi sa low jezicima, pa nadograđivati znanje na više jezike. Po mojem mišljenju je najbolje početi (naravno) od korijena, pa se onda penjati po stablu.

Nemam potpis.
 
0 0 hvala 0
15 godina
offline
Programski jezik - s kojim početi?

Da sada sebi idem dati savjet kako poceti... dao bih si savjet - idi drito na C#... 

 

Programski jezik ne cini dobrog progamera. Dobar programer ce uskociti u bilo koji programski jezik relativno lako. Dobar programer mora "nauciti misliti" kao programer. Dalje je lako.

Idemo kod Petre Sanader na party... nema joj staroga doma!
 
2 0 hvala 1
13 godina
protjeran
offline
RE: Programski jezik - s kojim početi?
tnakir kaže...

Da sada sebi idem dati savjet kako poceti... dao bih si savjet - idi drito na C#... 

 

Programski jezik ne cini dobrog progamera. Dobar programer ce uskociti u bilo koji programski jezik relativno lako. Dobar programer mora "nauciti misliti" kao programer. Dalje je lako.

Upravo tako :)

Nemam potpis.
14 godina
neaktivan
offline
RE: Programski jezik - s kojim početi?
mbaksa kaže...
JFS3G2 kaže...





No, sto je tu tako strasno oko sintakste C-like jezika za petlju for? Mijenjas rijec to s tockom-zarez. Nije da si nesto puno vise napisao. I vidis (naredis) za koliko ce se iterator uvecavati ili smanjivati. Istina je da su mogli omoguciti da se interator sam inkrementira za jedan, no ovako je dosljednije. Ako ces u F# smanjivati iterator ili ako ce iterator ici recimo po dva, kako onda izgleda sintaksa? Kod Pascala se dodaje kljucna rijec step. Nije lijepo za vidjeti.



Uglavnom, rekao bih da je pisanje for-petlje stvar ukusa. Meni osobno vise se svidja C-like.





I moram samo jos prokomentirati tvoj primjer za for u C++-u - s jedne strane preuvelicavas situaciju (using namespace std ide prakticki u svakom programu, slovima pises tocku-zarez, stavljas viticaste zagrade tamo gdje ne trebaju). Izgleda da ne znas da u for-petlju ide jedna naredba. A to znaci da mozes napisati ovako, bez viticastih zagrada i u jednom redu:



for (int i = 0; i < 10; i++) cout << "hello world\n";



A izmedju obaveznog prelaska u novi red ili pak pisanja tocke-zarez - biram tocku-zarez - na taj si nacin mogu razlomiti naredbu u koliko god redova zelim i ujedno imam vizualnu potvrdu da je upravo tu kraj naredbe. Isto tako, vise mi se svidjaju viticaste zagrade od indentacije. Takodjer valjda stvar osobnog ukusa. Mozda bi trebali napraviti anketu o tome pa da vidimo kako forumasi disu.





Inace, glede sintakse F#-a - po kojem principu to moze biti namijenjeno pocetnicima? Mislim - gledam sintaksu i ne mogu se nacuditi! Pa to je jedan uzas i kaos! http://www.fincher.org/tips/Languages/fsharp.shtml



Ne trebas biti profesor da bi mogao razlikovati sam jezik i framework. Tim vise sto govoris o .Net frameworku - znaci to isto mogu recimo i C# i VB.Net.

*************************************************************
  Malo je shitty ovaj editor u operi i prijavljuje neke html greske koda tako da je tvoj komentar gore, a ovo ovdje je moje:

For loop za brojanje prema dolje je

for i=10 downto 2 do

      printfn "f# rocks :)";; (u interactivu



Za stepanje ti je


for i in 2..2..8 do
      printf "%d, " i;; //je li moze jednostavnije ikako.



Otkad u for petlju ide samo jedna linija hajde mi molim te objasni.

F# ima ljepsu sintaksu od svih tih objektnih jezika sto si nabrojao kolicina linija je manja i stvari se mogu elegantnije napraviti (barem sto se tice vecine ovih osnovnih algoritama kao sto su greedy, divide and conquer etc gdje prakticki pises pseudokod.

Uostalom usporedi mnozenje matrica u c# i u f#.



f# primjeti da nested for loop idu tako da upres tab.

open Microsoft.FSharp.Collections;
let n = 1024
let rnd = System.Random()
let A = Array2D.init n n (fun i j -> rnd.Next()%10)
let B = Array2D.init n n (fun i j -> rnd.Next())
let D = Array2D.init n n (fun i j -> rnd.Next()) //ostali mi doubleovi od brzog tipkanja jebiga

let multiply (A : int [,] ) (B: int [,]) =
let n = A.GetLength(1)
let C = Array2D.create n n 0
for i = 0 to (A.GetLength(1)-1) do
    for j=0 to (A.GetLength(1)-1) do
          for k=0 to n-1 do
                C.[i,j] <- C.[i,j] + A.[i,k] * B.[k,j]
       
U f# pozivas funkciju s : multiply A B

c#


using System;
using System.Collections.Generic;
using System.Text;


namespace ConsoleApplication1
{
class Program
{
static int[,] compute(int n, int[,] matrix_A, int[,] matrix_B)
{
int i, j, k;
int[,] matrix_C = new int[n, n];
for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
{
matrix_C[i, j] = 0;
for (k = 0; k < n; k++)
matrix_C[i, j] = matrix_C[i, j] + matrix_A[i, k] * matrix_B[k, j];
}
return matrix_C;
}
}
}

I jos cca 10-tak linija za ucitavanje matrice. I main metoda gdje ces pozvati ovu funkciju jos desetak linija f5 da pokrenes i vidis rezultate te system pause ako ne zelis da ti pobjegne prozor. Ne da mi se sad to tipkat kod.

 

Poruka je uređivana zadnji put sri 19.1.2011 13:42 (JFS3G2).
15 godina
odjavljen
offline
RE: Programski jezik - s kojim početi?

U for petlji može ići jedna linija koda, onda ne trebaju zagrade. Kao i kod if grananja - ako nema zagrade, onda je pod if uvjetom samo sljedeća naredba.

Što se preglednosti tiće, tebi nitko ne brani u C# uvući linije koje su unutar petlje ili uvjetog grananja i svaki imalo normalan editor će to raditi automatski bazirano na vitičastim zagradama. Međutim, to nije nužno da bi program radio. Isto tako, ako imaš kobasicu od uvjeta, jednostavno je možeš napisati u više linija i sljedeću liniju malo uvući da se lakše uoči da se radi o nastavku naredbe iz prethodnog retka.

Heart: _/\_/\_/\_/\_/\_/\_/\_/\_ Brain: __________________________
14 godina
neaktivan
offline
RE: Programski jezik - s kojim početi?

Dakle trebaju zagrade kao sto sam ja i rekao, a on je tvrdio da moze samo jedna naredba ici u for potelju. Valjda "znam" specifikacije jezika u kojem provodim dane (c#).

Sto se tice preglednosti moj kod na drugome  ekranu ima 25 linija c# od cega je cca   desetak samo zagrade zbog te preglednosti jer svaka zagrada mora imati svoj redak da ne bi ispalo sjebano.

Toga u funkcijskim jezicima nema i mozes bez problema pratit vecu kolicinu koda bez skrolanja.

Uostalom rasprava je krenula u krivome smjeru, a liku koji je pitao koji jezik da uci i dalje tvrdim da su funkcijski najlaksi za pocetak jer sve funkcije se promatraju kao evaluacija matematickih funkcija kao sto ucis u skoli i puno je srodnije trenutnome nacinu razmisljanja koje imas. U sintaksi se ne bi trebao puno gubiti niti se svadjat s tipovima podataka.

Jebiga sto vecina ljudi ovdje nikad nije istipkala vise od par linija koda u niti jednom funkcijskom jeziku i ne vidi njihovu ljepotu :-P

 

 

16 godina
neaktivan
offline
RE: Programski jezik - s kojim početi?
JFS3G2 kaže...
Jebiga sto vecina ljudi ovdje nikad nije istipkala vise od par linija koda u niti jednom funkcijskom jeziku i ne vidi njihovu ljepotu :-P  

 

To je vjerojatno zbog toga jer čekaju da rješiš gornji primjer preko list comprehensiona, a ne for petlji (ugh) {#}

14 godina
neaktivan
offline
RE: Programski jezik - s kojim početi?

U C-u ti ne trebaju  {} zagrade ako se treba izvršiti samo jedna naredba iza FOR petlje!

 

 

# primjer 1

for(i=0;i<10;i++)

{ br++;

   sl--;

 

 

# primjer 2

for(i=0;i<10;i++)

 br++;

 

 

 

Nista nije sveto sve je bruto i neto, sve je zabava!
16 godina
moderator
offline
RE: Programski jezik - s kojim početi?
Shody_1994 kaže...

U C-u ti ne trebaju  {} zagrade ako se treba izvršiti samo jedna naredba iza FOR petlje!

 

 

# primjer 1

for(i=0;i<10;i++)

{ br++;

    sl--;

}

 

 

# primjer 2

for(i=0;i<10;i++)

  br++;

Ne trebaju ni u C++-u, ni u C#, ni u JavaScriptu, ni u jos nekima. Dobro je napisao da valjda "zna" specifikacije jezika u kojem provodi dane (c#). LOL!

 

A sad, po cemu je

for i=10 downto 2 do

 

bolje od

for (i=10; i>1; i--)

ne znam.

 

A o ukusima se ne raspravlja.

 

 

A po cemu jefor i in 2..2..8 do

 

bolje od

for (i=2; i<=8; i+=2)

 

takodjer ne znam. Ti vise sto je nedosljedno! Za tri razlicita slucaja imas tri razlicita oblika pisanja naredbe!  Cak je i Pascal tu dosljedniji:

for i = 2 to 8 step 2;

 

14 godina
neaktivan
offline
RE: Programski jezik - s kojim početi?

pih :-)

14 godina
neaktivan
offline
RE: Programski jezik - s kojim početi?

Pises skoro pa pseudokod i ne moras setat po tipkovnici za samo jednu sugavu petlju svadjat se s ; sto stvarno zna biti pain in the ass ako prvi put ucis programiranje kao ovaj lik.

Sto je nedosljedno. Ides od 1..10 pretpostavlja se da se inkrementira za 1 a ako zelis inkrementirati za vise od jedan dodas brojac izmedju. Ako zelis supustat napises mi downto.

Je li ti trebaju zagrade u c# za for petlju kao sto sam ja rekao. Da ili ne? Jesam ja ista napisao sto je istina, a ako da potvrdi mi specifikacijama jezika.

 

 

16 godina
neaktivan
offline
Programski jezik - s kojim početi?

Ma ako ovo ne prođe, 10 puta vikem na Rivi da sam tovar{#}

 

 

 class Program

   {

     static void Main(string[] args)

     {

 

       for (int i = 1; i <= 10; i++)

         Console.WriteLine(i );

     }

    }

 

Poruka je uređivana zadnji put sri 19.1.2011 16:31 (Floki).
 
1 0 hvala 0
16 godina
moderator
offline
RE: Programski jezik - s kojim početi?
Floki kaže...

Ma ako ovo ne prođe, 10 puta vikem na Rivi da sam tovar{#}

 

 

  class Program

      {

          static void Main(string[] args)

          {

 

              for (int i = 1; i <= 10; i++)

                  Console.WriteLine(i );

          }

      }

 

Mislio sam da kad je napisao Pih, da to znaci da je shvatio da je pogrijesio. Ali ne...

 

Ja sam napravio istu stvar poput tebe i prije nego sam napisao svoju poruku - samo da budem 100% siguran da sam u pravu. Pa sam tek onda napisao komentar. A vidi ti naseg JFS3G2 - upozorimo ga da nije u pravu i to mu nije dovoljno da provjeri je li u pravu ili ne, nego opet iznosi ono za misli da zna.

 

Poruka je uređivana zadnji put sri 19.1.2011 16:41 (mbaksa).
16 godina
neaktivan
offline
Programski jezik - s kojim početi?

Ne treba anketa, na forumu C family sa svojim semicolonima i zagradama definitivno nosi pobjedu

Visual studio je ionako kucanje zagrada usavršio do maksimuma

uh, naježio sam se na ovaj F# kod, sjetilo me davnih basic trauma i munjenog profe, C mi je iz prve izgledao logično

 

Kud će logičnija stvar od c-tipa for petlje - nema iza nje semicolon, pošto izvršava jednu naredbu ispod sebe - pojedinačnu ili {} blok,

a možda je stvar navike, međutim meni for(početna_vrijednost; uvjet_nastavka; inkrement(dekrement)) zbilja izgleda logičnije od downto

Poruka je uređivana zadnji put sri 19.1.2011 17:16 (Floki).
 
2 0 hvala 0
15 godina
neaktivan
offline
Programski jezik - s kojim početi?

Ja preferiram Dev C++, Microsoftov Visual Studio mi se baš ne sviđa{#}

 
0 0 hvala 0
16 godina
neaktivan
offline
RE: Programski jezik - s kojim početi?
Tomislav95 kaže...

Ja preferiram Dev C++, Microsoftov Visual Studio mi se baš ne sviđa{#}

Nisam radio u Dev C++ pa ne mogu reći, ali meni MS Visual Studio baš paše, kod kucanja me upozorava na greške, tj. ima syntaks checker, IntelliSense mi opiše funkcije i klase, a tek je mrak kod C#, 

pošto mu je sve objekt, varijablu napišem jednom, a onda IntelliSense omogućuje da je samo kopiram a ne pišem ponovno

15 godina
neaktivan
offline
RE: Programski jezik - s kojim početi?
Floki kaže...
Tomislav95 kaže...

Ja preferiram Dev C++, Microsoftov Visual Studio mi se baš ne sviđa{#}

Nisam radio u Dev C++ pa ne mogu reći, ali meni MS Visual Studio baš paše, kod kucanja me upozorava na greške, tj. ima syntaks checker, IntelliSense mi opiše funkcije i klase, a tek je mrak kod C#,

pošto mu je sve objekt, varijablu napišem jednom, a onda IntelliSense omogućuje da je samo kopiram a ne pišem ponovno

Ja sam samo Visual Basic radio i malo sam probao Visual C++ ali me nije oduševio.Možda ga probam opet

Ova tema je sadržajno povezana sa sljedećim temama: Odabir programskog jezika za potpunog početnika
Nova poruka
E-mail:
Lozinka:
 
vrh stranice