[ llux @ 24.10.2011. 08:43 ] @
Kucam u gugl C++ FQA i "pretrazi na srpskom", ne nadjoh skoro nista. Da li znate za ovaj sajt? Sta mislite o onome sto autor pise? Autor odgovara na pitanja, na koja je sajt C++ FAQ odgovarao, samo potpuno drugacije.
Adresa je http://yosefk.com/c++fqa/


Kada sam hteo da pogledam malo u programiranje, nisam znao da postoje ovoliko programskih jezika. Mislio sam, naucis da programiras i to je to. Zatim nisam znao da ne postoji univerzalan jezik i za desktop i za web, na kraju, to je samo pisanje naredbi, te naredbe se mogu prevesti svuda. Zatim nisam znao da kada se namucis da naucis, znas samo konzolne programe da pravis. Za sve drugo, ceka te nova glavobolja, mnostvo dilema i dosta ucenja.

Kako je moguce da danas ne postoji jezik sa koji:
1) Moze da se kompajlira u exe fajl, bez zaobilaznih puteva.

2) Mogu da se prave aplikacije i igre za windows, bez potrebe da korisnik ista dodatno instalira.

3) Nije na izdisaju.

4) Predvidjen je bas u te svrhe (nije glomazan).

5) Eventualno jednog dana svoje znanje da unovcis, ukoliko se ukaze prilika.

6) Da nije vezan samo za jedan sistem jer vremena se menjaju.

Ne interesuje me koji je jezik bolji, samo da ispunjava gornje uslove. A takav jezik izgleda ne postoji danas?
[ Mihajlo Cvetanović @ 24.10.2011. 09:19 ] @
Uslovi 1 i 6 su međusobno kontradiktorni. Exe format pripada Windowsu i menjao se vremenom. Exe napravljen u dobu Windowsa 3.11 (ono što je bilo pre Windowsa 95) sada nemaš načina da pokreneš bez instalacije virtuelne mašine na kojoj se zapravo vrti Windows 3.11. Exe program takođe ne može da se pokrene ni na jednom drugom operativnom sistemu (Linux, MacOS, Symbian, Android).

Ako želiš na napraviš igru za što više operativnih sistema onda imaš dve opcije. 1) pronađi platformu (tipa Java VM ili .NET) koja je podržana na svim tim OS-evima i radi na njoj. 2) Pronađi programski jezik koji se prevodi na svim OS-evima i piši igru tako da suština igre ne zavisi od OS-a, a za ono što je različito napravi poseban kod za svaki OS.
[ Nedeljko @ 24.10.2011. 09:42 ] @
Uslovi 1 i 6 nisu kontradiktorni, a sa ostalim se slažem. Baš kao što si rekao, neće isti exe da radi svuda, ali se isti sors može kompajlirati na raznim OS-evima (isti multiplatformski kompajoler, iste multiplatformske biblioteke itd.).

Postoji rešenje za ovo što llux hoće. Na primer, C++/wxWidgets sa svim mogućim statičkim linkovanjima ili Lazarus sa svim mogućim statičkim linkovanjima (mada mi je uslov 4 malo nejasan). Naravno, postoje i druge varijante.
[ Mihajlo Cvetanović @ 24.10.2011. 09:50 ] @
Moja greška, učinilo mi se da uslov 6 glasi "da napravljeni exe nije vezan za samo jedan sistem".
[ llux @ 24.10.2011. 10:59 ] @
C++ ispunjava ali ne i uslov 4, da nije glomazan, jer za jednostavnije projekte treba da bude kao Python (valjda?).
A i uslov 5 je upitan.
[ Nedeljko @ 24.10.2011. 11:46 ] @
Nekada je VB napravljen sa tom idejom, ali je sada VB na .NET-u.
[ llux @ 24.10.2011. 11:52 ] @
Jos nesto mi nije jasno, kaze se da su JAVA programeri trazeni za WEB i da ima posla. Nije mi jasno kako? Ja nemam ni instaliranu javu jer mi ne treba. Retko koji sajt koristi javu. Ono sto ja vidim je: HTML, JAVASCRIPT, PHP, FLASH...
A sto se tice jave za mobilne, UZAS! Treba je izbaciti jer ne radi nikako. Mnogo bolje rade .sis, .apk, .ipa i ostale aplikacije.
[ djoka_l @ 24.10.2011. 12:03 ] @
Ti verovatno onda nisi čuo za Java Servlete http://en.wikipedia.org/wiki/Java_Servlet
To što ti nemaš Java applet u svom pretraživaču, to ne znači da na serverskoj strani ne postoji Java kod koji generiše HTML tvoje stranice. U servis orijentisanoj arhitekturi aplikacije, servisi se mogu realizovati u mnogim programskim jezicima, ali se JAVA jako često koristi, zato što će isti kod da radi na svakom operativnom sistemu (recimo) na kojem može da se hostuje server.
[ Shadowed @ 24.10.2011. 12:03 ] @
Ono sto ti vidis je html, js,... ali na serveru je ono sto ne vidis a to je nekada java :)
Takodje, nisu sve web aplikacije internet sajtovi.
[ llux @ 24.10.2011. 15:14 ] @
Kakvo je stanje na polju mobilnih. U cemu se pisu op. sistemi, prosti kao s40 i slozeni kao Symbian. U cemu se pisu aplikacije koje nisu java?
Objasnite vi meni sta radite na sajtovima kao sto je Elance i slicni? Ko vam trazi tolike aplikacije kad sad postoji sve sto zamislis i to besplatno?
[ shadow-bg @ 24.10.2011. 17:50 ] @
Kljucna rec gde si napravio gresku je "sad postoji sve sto zamislis". Ne postoji.
[ Dragi Tata @ 26.10.2011. 03:35 ] @
Pre svega, taj FQA nemoj da shvataš ozbiljno. To je pisao neki isfrustrirani nesrećnik kome je jedini cilj bio da na kraju napiše "C++ sucks". Divljenja je vredan sav trud koji je uložio u to pisanije, ali jednostavno ne zna šta priča.

E, što se tiče "univerzalnog" jezika, tako čudo ne treba da postoji. Neki jezici se koriste za sistemsko programiranje i oni treba da omoguće programeru lak pristup hardveru i sistemskim resursima. Npr C je takav jezik. Sa druge strane imaš jezike kojima je svrha skriptovanje veb brauzera i oni moraju da izoluju programera od sistema, npr JavaScript. Kako bi ti napravio jezik koji će da pomiri ove dve krajnosti?
[ Nedeljko @ 26.10.2011. 09:04 ] @
Super ćale što si se javio, ali moram da te ispravim. Nije pitanje bilo da li postoji univerzalan jezik za sve, nego za desktop aplikacije i igre.
[ Predrag Supurovic @ 26.10.2011. 10:19 ] @
Citat:
Dragi Tata
E, što se tiče "univerzalnog" jezika, tako čudo ne treba da postoji. Neki jezici se koriste za sistemsko programiranje i oni treba da omoguće programeru lak pristup hardveru i sistemskim resursima. Npr C je takav jezik. Sa druge strane imaš jezike kojima je svrha skriptovanje veb brauzera i oni moraju da izoluju programera od sistema, npr JavaScript. Kako bi ti napravio jezik koji će da pomiri ove dve krajnosti?


Biće da grešiš. Programski jezik je samo stvar sintakse. A mogućnost primene je stvar biblioteka. JavaScript, C i PHP na primer se međusobno prilično malo razlikuju ako gledamo uopšteno a razlika je u nameni odnosno bibliotekama kojima ti jezici barataju. JavaScript će sasvim dobro da pristupa hardveru i sistemskim servisima ako mu se obezbede odgovarajuće biblioteke.

To se odnosi i na multiplatformnost. Uslovno rečeno, na svim platformama se korsite isti jezici ali su različite biblioteke i kompajleri tako da se dobija izvršni kod koji radi na datoj platformi.

Najbolji primer je na primer .NET. Majkrosoft je totalno dvoji sintaksu jezika od njegove primene, tako da je u .NET potpuno nebitno koji jezik koristiš. Kada ga kompajliraš dobićeš međukod koji je isti i ne zavisi ni od jezika iz kog je napravljen a ne mora da zavisi ni od platforme na kojoj se izvršava (.NET zavisi samo zato što Majkrosoft to tako hoće, mad apostoje više-manje uspešne mogućnost izvršavanja i na drugim platformama).
[ Dragi Tata @ 27.10.2011. 03:47 ] @
Citat:
Predrag Supurovic: Programski jezik je samo stvar sintakse.


I "pomalo" semantike. Neki programski jezici imaju ograničenja koja drugi nemaju, nezavisno od biblioteka i to ih čini pogodnim za dijametralno različite primene. Pazi npr ovo parče koda u Lispu:

Code:

[1]> (* 123456789 123456789)
15241578750190521


A isto to u OCamlu:

Code:

# 123456789 * 123456789;;
- : int = 38958789


Lispu specifikacija zahteva da mu integer ima neograničenu veličinu i to onemogućava integer overflou, ali su zato operacije sa celobrojnim vrednostima mnogo sporije nego kod jezika koji nemaju ta ograničenja. U zavisnosti od toga da li ti je bitnije da lako izbegneš probleme sa netačnim rezultatima množenja ili da postigneš brži kod izabraćeš različit jezik.
[ Nedeljko @ 27.10.2011. 07:50 ] @
Pa, pazi, u C-u su celi brojevi ograničeni na određen broj bitova, ali preko biblioteka kao što je gmp možeš da izbegneš to ograničenje. No, pitanje se odnosilo na univerzalan jezik za pravljenje desktop aplikacija i igara.
[ wex-alpha @ 16.11.2011. 20:08 ] @
davno nekada je postojao jedan jezik, binarni. Koji je bi oveoma nezgodan za koristiti. Nakon njega dodje asembler... i tako dalje. danas, koliko tacno imamo jezika i paradigmi? Nijedna nije komplikovana kao binarni ili asembler, ali nije ni jednostavna. Kako vrijeme prolazi, jos vise tehnologija dolazi... stare nestaju.

Misljenja sam da nikada nece biti "One ring to rule them all". U stvari mozda i hoce, ali kada se pojavi AI. Jer to ce biti najbolji programeri ikada :)

[ mmix @ 16.11.2011. 20:26 ] @
Pa ni taj binarni jezik nije bio jedinstven, svaka mikroprocesorska platforma je imala drugaciji opcode, alignment, byte ordering, itd :)

I kad AI dodje bice ih raznih, neki manicno depresivni, neki sizofreni, neke paranoicni, itd :)