[ Burgos @ 31.03.2016. 18:01 ] @
https://blog.xamarin.com/xamarin-for-all/

Sa cene koja je bila $1k po osobi, po platformi, nekoliko nedelja nakon kupovine,
besplatan i open source.
[ Nedeljko @ 03.04.2016. 08:43 ] @
Ko još uopšte koristi taj Xamarin?
[ Ivan Dimkovic @ 03.04.2016. 12:50 ] @
Znam za jednog poveceg proizvodjaca automobila u DE.
[ Burgos @ 03.04.2016. 16:32 ] @
@Nedeljko https://www.xamarin.com/customers

[ Predrag Supurovic @ 03.04.2016. 22:22 ] @
Citat:
Nedeljko:
Ko još uopšte koristi taj Xamarin?


Sad će ga koristiti.
[ degojs @ 05.04.2016. 20:42 ] @
Verovatno vest godine :-)

Ozbiljno, Xamarin (tj. Xamarin.Forms) je odlična platforma za razvoj mobilnih aplikacija i s obzirom da je Visual Studio besplatan (Community verzija), mislim da će ovo baš da bude hit za bilo koga ko radi cross-platform aplikacije.
[ jablan @ 05.04.2016. 21:54 ] @
vidi degojs :)
[ Shadowed @ 05.04.2016. 22:26 ] @
Vaistinu degojs :)
[ degojs @ 05.04.2016. 22:40 ] @
Mislio sam vest godine vezano za Xamarin.. :D

[ dejanet @ 05.04.2016. 22:52 ] @
Ovako se bre' uzimaju pare:

Open source(Mono) -> Proprietary(Xarmin) -> Open source(Xarmin-MS)
[ Predrag Supurovic @ 06.04.2016. 09:30 ] @
Znate za onu, ako zvuci suvise dobro...

Koji li se Majkrsofotov interes krije iza ovoga? Meni se čini da ovako žele da potencijal razvoja aplikacija koji je sada na Androidu pa na iOS, rasporede i na svoju platformu.
[ degojs @ 06.04.2016. 13:19 ] @
Pa... pazi, ako možeš da kupiš Windows, pitanje je zašto bi uopšte koristio neku drugu platformu za mobile development.

1. Visual Studio je besplatan (Community verzija, sasvim OK).
2. Sa Xamarin.Forms bez problema se rade iOS, Android i Windows aplikacije.
3. Visual Studio uključuje podršku za Apache Cordova pa i tako mogu da se rade cross-platform aplikacije
4. Visual Studio sad podržava i Unity (https://www.visualstudio.com/en-us/features/unitytools-vs.aspx)
5. MonoGame radi, naravno, u VS.


[ Nedeljko @ 06.04.2016. 13:25 ] @
Ne znam, meni se više sviđa Rust, a posle će doći sledeća generacija čija su sadašnja razvojna čeda idris i F*, a brzo posle toga sledeća generacija, koja još nije u razvoju, mada uslovi postoje.
[ degojs @ 06.04.2016. 13:37 ] @
OK, ali VS je, po meni, najbolji izbor za mobile dev (bilo da su u pitanju aplikacije ili igrice).

Dodatno, imaj na umu šta sve još omogućuje Windows.

[ Nedeljko @ 06.04.2016. 14:10 ] @
@degojs

Cena uglavnom ne igra ulogu u profi svetu. Samo mi se čini da programeri uglavnom više vole GNU/Linux kao platformu za svejedno kakvo programiranje, osim ako je vezano za npr. Windows.

Ne mislim da će ovim Xamarin da napravi neki veliki prodor u poslovnom svetu, osim kroz obrazovanje i popularnost u amaterkom svetu, koji onda prelazi u profi.

Mislim da je to razlog što Embarcadero nije uspeo. Možeš da napraviš ne znam ni ja šta, ali ako nemaš nekakvu besplatnu verziju za nekomercijalnu upotrebu - piši propalo.
[ degojs @ 06.04.2016. 14:24 ] @
Nedeljko, koje okruženje može da parira Windows-u i VS-u za mobile dev? Ako ti nije teško malo pročitaj o Xamarin.Forms, Apache Cordova, Unity i MonoGame.

Neko je već ostavio link gde mogu da se vide mušterije Xamarina, tako da mi se čini da su već prisutni u poslovno svetu.

Dalje, Windows i Visual Studio imaju već danas ogromnu bazu korisnika, sad će verovatno mnogi od njih da se odluče za rad na moblinim aplikacijama.

Činjenica da su VS i Xamarin sada besplatni jeste bitna. A integrisano okruženje kakvo je VS jeste velika stvar: lakše je programirati, itd.

Citat:
osim kroz obrazovanje i popularnost u amaterkom svetu, koji onda prelazi u profi.


Pa šta ćeš bolje od toga (a i za MS je takva stvar pun pogodak).
[ jablan @ 06.04.2016. 16:54 ] @
Citat:
degojs:
Dodatno, imaj na umu šta sve još omogućuje Windows.

Šta, živo me zanima?! :)
[ Nedeljko @ 06.04.2016. 18:20 ] @
Nemam pojma o tome kakav je Xamarin, ali mnogi tvrde da je najbolje raditi na način koji proizvođač preporučuje - Dalvik za android, Objective C (još uvek) za iOS. Ako baš hoćeš cross platform, napravi aplikaciju kao web i onda se može upakovati i kao klasična aplikacija, tako da korisnik nije ni svestan da je u pozadini neki web engine. Treće, postoji Qt SDK, koji gađa šta god hoćeš od sistema, a osim toga podržava i više jezika. Ako baš hoćeš, ima i integraciju u VS, kao i svoje okruženje Qt Creator i odavno je open source.

Takođe me živo zanima šta to VS nudi što nemaju druga ozbiljna okruženja. Windows kao platforma za programiranje? Nemam pojma koje su prednosti, kojih možda i ima. Znam samo za mane. GNU/Linux je integrisana koherentna celina od gomile alatki za programiranje, koje se savršeno uzajamno uklapaju. Zašto li MS sada prebacuje bash na Windows? Ko zna dokle će to sa mogućnošću pokretanja GNU/Linux programa pod windows-om da ide. Međutim, to teško da može biti user friendly kao prava GNU/Linux distribucija. Šta god ti zatreba od alatki, več imaš u zvaničnim repoima i ne treba ništa da podešavaš - sve odlično radi i sarađuje out of the box.

rekao bih da je najveća mana Xamarin-a jezik C#, koji je zajedno a Javom odigrao svoju istorijsku ulogu i sada pripada prošlosti i sadašnjosti, ali ne i budućnosti. Sadašnjost i bliska budućnost je u js-u, a malčic dalja budućnost u Rust-u. Dakle,

1. Danas - web (js),
2. Sutra puno iskorišćavanje prednosti funkcionalne paradigme (rust),
3. Prekostura code verification (idris, F* - sors sadrži kod i mašinski dokaz da kod ima neka svojstva),
4. Naksutra Curry-Howard correspondence (sors sadrži samo dokaz postojanja objekta koji ima potrebna svojstva rezultata, a kod se u celini mašinski generiše iz dokaza i programer ne mora nikada da vidi kod, pri čemu mašina pomaže u unošenju dokaza).
[ negyxo @ 06.04.2016. 20:11 ] @
Citat:
Nedeljko: Zašto li MS sada prebacuje bash na Windows?


Odgovor je veoma prost - zato sto MS ne zna gde "udara", nedostatak vizije i integrisanih resenja oni resavaju brute force-om tako sto svako zivo nvago intergrisu u windows okruzenje usled hype u ostalim okruzenjima. Da postoji vizija MS se ne bi brukao i svojatao svakakva "resenja" kako bi udovoljio svima po malo a u realnosti nameste jedno veliko nista. Da ne kritikujem previse, MS ima odlicna resenja, ali mnoga od njih naprosto se ugase kada prodje hype i ostanu na pola zavrsena.


Citat:

rekao bih da je najveća mana Xamarin-a jezik C#, koji je zajedno a Javom odigrao svoju istorijsku ulogu i sada pripada prošlosti i sadašnjosti, ali ne i budućnosti. Sadašnjost i bliska budućnost je u js-u, a malčic dalja budućnost u Rust-u. Dakle,


Da, moze js da bude buducnost, ali samo za one koji su mazohisti, ili su neobavesteni ili su ideoloski oslepljeni. Drugim recima, js je buducnost taman toliko koliko je veliko znanje ali u obrnutoj proporciji, s obzirom da je takvih mnogo, onda jednostavno je buducnost po inreciji...

Sto se tice funkcionalnih jezika, to zaboravi, to nece biti mainstream, ne mogu da budu objektni a kamoli funkcionalni, tj. nije ni bitno sta je, kada ne koristis jezik kako treba, tako mu dodje svejedno... jedino resenje, za siroke narodne mase, ako bi se moglo to nazvati kao resenje je da imas potpuno odsustvo implementacije (mada diskutabilno sta je implementacija) i da das ljudima da sami opisuju svoje ideje, sto ce reci jezik prilicno visokog nivoa a tako nesto na zalost nije jos na vidiku (recimo MS, je mogao da ganja ovako nesto da imaju vizuju ali bolje pratiti hype...)
[ dusans @ 06.04.2016. 21:18 ] @
Citat:

Odgovor je veoma prost - zato sto MS ne zna gde "udara", nedostatak vizije i integrisanih resenja oni resavaju brute force-om tako sto svako zivo nvago intergrisu u windows okruzenje usled hype u ostalim okruzenjima. Da postoji vizija MS se ne bi brukao i svojatao svakakva "resenja" kako bi udovoljio svima po malo a u realnosti nameste jedno veliko nista. Da ne kritikujem previse, MS ima odlicna resenja, ali mnoga od njih naprosto se ugase kada prodje hype i ostanu na pola zavrsena.


Žalosno je što je je većina novih tehnologija vođena hype-om a - u takvoj trci svi, pa i MS moraju da se savijaju i prave budževine.
Sa druge strane, u svom development stack-u MS je pokazao balavurdiji kako se prave integrisana rešenja, ostali mogu samo da skinu kapu ako mene pitaš...

Što se tiče mobilnih aplikacija, slažem se sa Nedeljkom - bolje je praviti platform-specific, native aplikacije ako za to postoje resursi.
U slučaju video igara koje imaju totalno custom GUI, moj glas ide cross-platform rešenjima (npr. unity) ako se ne gube performanse.

Inače, imam iskustva u pravljenju i iOS i Android aplikacija.
iOS+Objective C je prilično jednostavan ali i vrlo nefleksibilan po gotovo svim pitanjima, sve što nudi developerima je bukvalno hard-coded,
otuda i fenomenalne performanse pošto je i ceo API optimizovan baš za subset funkcionalnosti i unapred poznatih stvari koje nudi.
Android API, sa druge strane, je pravljen totalno drugačijom filozofijom, gde je svašta dozvoljeno i proširivo, nešto slično MS filozofiji u .Net-u.
To naravno ima svoju cenu u performansama, ali je i dalje, po meni, po meni prirodnije okruženje za developere od iOS-a.


[Ovu poruku je menjao dusans dana 06.04.2016. u 22:50 GMT+1]
[ Nedeljko @ 06.04.2016. 22:44 ] @
@nexygo

Sada je paljevina na js zbog web-a, koji je jako popularan. A što se funkcionalnog programiranja tiče, to je druga paradigma, koja u principu nema veze sa OO. Ko kaže da moraju biti OO? Mogu donekle.

Suština funkcionalnog programiranja je čistiji kod koji se lakše piše i održava ako znaš da ga koristiš, a svodi se na kontrolu bočnih efekata (a ne na izbacivanje kao što neki pogrešno misle jer to nije moguće budući da se stanje sveta mora izmeniti po potrebama korisnika). Dakle, pozivanjem neke funkcije znaš šta ona može, a šta ne može da izmeni. Funkciji su vidljivi samo njeni stvarni argumenti i zna se koje od njih može da promeni, a koje ne. Takođe, to omogućava skalabilnost jer su immutable objekti podesni za to. Ne postoji potreba za zaključavanjem ili nekom sličnom vrstom kontrole. Čak i kada se sve izvršava na različitim mašinama, nije problem dok se zna koji je koji objekat.
[ negyxo @ 07.04.2016. 04:27 ] @
Nedeljko nisi me dobro razumeo, ne treba da bude sve objektno orijentisano, moja opaska se odnosila na to da je OOP problem kao mainstream a kamoli funkcionalna paradigma (koja je objektivno ipak teza za razumevanje od OOP).

Sto se tice toga da je web popularan, to je sasvim ok, to nije problem, problem lezi u tome sto se za web koristi tehnologija(e) koja je primitivna u svojoj srzi - js (tj, da budem precizan client side), na zalost i gomilu drugih tehnologija na server side, koje su takodje lose po dizajnu ali da ne ulazim u taj deo sad, zna da prizove emocije kod ljudi :D No, zato ja krivim MS, imaju ljude, imaju ideje, ali neko nema mu*a da odluci, zatru im se projekte, ne prati se vizija, krene se za hype-om. Za tako nesto ti treba drugi mindset, nesto gde ces stvarno da namestis nesto bolje i ubedis (lako) druge da je to bolje, recimo to je apple uradio sa iPhone, da nije on verovatno bi neko drugi, MS bi valjda i dalje ganjao Windows Ce a Nokia Symbian. Bas kao sto je apple nacinio lak pristup smart-phone-vima sirokim narodnim masama tako nesto ti treba i u programiranju (OK, znam da ce sada neki da se "zgade" ali to se i ovako desava, veliki broj ljudi "programira" i ako vec to radi onda neka radi to kontrolisano).

Sto se tice funkcionalnog programiranja, ne moras da mi objasnjavas, dobro mi je poznato (radio pre 8 godina Haskell, ali odustao jer tada nikakve podrske nije bilo za nista ozbiljno, trazio sam tada neki VS plugin koji bi mi omogucio koliko toliko normalan rad, a ne da kucam u notepad-u i u CLI), no iako je funkcionala paradigma lepa po sebi, ne bi se slozio da je "cistija", jeste mozes daleko manje code-a da napises, ali razumevanje funkcionale paradigme je dosta teze IMHO Kljuc ne lezi u visokoj entropiji programa (mislim lezi, ali ne tako sto ces ti da se bavis entropisanjem :)), nego u lakoci iznosenja ideja i sprovodjenja u dela.
[ Nedeljko @ 07.04.2016. 08:24 ] @
Šta znam, na MIT-ju su se nekada osnove programiranja učile python-u, a sada valjda na nekom funkcionalnom jeziku. Rust nema tako kriptovanu sintaksu kao haskell. Poenta je da funkcija odgogvara svom prototipu, a ne da radi nešto drugo što nigde ne piše, sem u implementaciji. To jeste čistije.

Pre 8 godina je bilo drugo vreme. Sada potrebe za skalabilnošću rastu. Da bi paradigma zaživela, nije dovoljno da bude lepa, već da nudi neke opipljive prednosti u pogledu tekućih potreba.
[ Burgos @ 07.04.2016. 17:27 ] @
Na MIT-u su se osnove programiranja učile u funkcionalnom Scheme-i (uz legendarnu "Structure and Interpretation of computer programs"), a sada koriste Python (6.001 vs 6.01). Evo šta kaže prof. Susman o tome:

Citat:
When we conceived of scheme in the 1970’s, programming was a very different exercise than it is now. Then, what generaly happened was a programmer would think for a really long time, and then write just a little bit of code, and in practical terms, programming involved assembling many very small pieces into a larger whole that had aggregate (did he say ‘emergent’?) behaviour. It was a much simpler time.

Critically, this is the world for which scheme was originally designed. Building larger programs out of a group of very small, understandable pieces is what things like recursion and functional programming are built for.

The world isn’t like that anymore. At some point along the way (he may have referred to the 1990’s specifically), the systems that were being built and the libraries and components that one had available to build systems were so large, that it was impossible for any one programmer to be aware of all of the individual pieces, never mind understand them. For example, the engineer that designs a chip, which now have hundreds of pins generally doesn’t talk to the fellow who’s building a mobile phone user interface.

The fundamental difference is that programming today is all about doing science on the parts you have to work with. That means looking at reams and reams of man pages and determining that POSIX does this thing, but Windows does this other thing, and patching together the disparate parts to make a usable whole.

Beyond that, the world is messier in general. There’s massive amounts of data floating around, and the kinds of problems that we’re trying to solve are much sloppier, and the solutions a lot less discrete than they used to be.

Robotics is a primary example of the combination of these two factors. Robots are magnificently complicated and messy, with physical parts in the physical world. It doesn’t just move forward along the ground linearly and without interruption: the wheels will slip on the ground, the thing will get knocked over, etc.

This is a very different world, and we decided that we should adjust our curriculum to account for that. So, a committee (here, Prof. Sussman peaked his hands over his head, which I interpreted to indicated pointy-headedness) got together and decided that python was the most appropriate choice for future undergraduate education. Why did they choose python? Who knows, it’s probably because python has a good standard library for interacting with the robot.


http://cemerick.com/2009/03/24...-its-undergraduate-cs-program/

[ Burgos @ 07.04.2016. 17:41 ] @
Što se Rusta tiče, ne bih rekao da je on funkcionalni jezik (funkcije nisu garantovano pure, nema tail call optimizaciju, samo da navedem par važnih karakteristika) . Imam nekoliko projekata napisanih u njemu, i mislim da ne stoji to što kažeš. Jedino po čemu je specifičan je borrow checker koji može biti dobra ili loša strana. Npr. za jedan projekat, mnogo bi mi lakše bilo da sam ga (funkcionalno) napisao u D-u (koji prepoznaje "purity" i poseduje TCO), i da sam pustio GC da brine o memoriji. Za drugi projekat, borrow checker mi je bio krucijalan. Za mali kernel koji pišem mi je ubistvo, ali to je verovatno samo moje neznanje. Nemam pojma za ostale jezike koje si spomenuo, ali mislim da neće Rust biti naredna velika stvar. Verovatnije će se GC tehnologija još više unaprediti, i cena kopiranja smanjiti nego što će ljudi moći da pišu kod sa lakoćom kojom pišu danas.

Što se tiče skalabilnosti, vibe.d, kao i Go više ciljaju ka njoj nego Rust, koji više cilja da bude memory safe jezik sa performansama bliskim C-u.
[ Nedeljko @ 09.04.2016. 00:07 ] @
A zašto misliš da ne prepoznaje čiste funkcije?

Pazi, ne znam ga, ali zar se bi trebalo da funkcija vidi samo svoje stvarne argumente i da može da menja samo one koji su u prototipu označeni sa mut i preneti po referenci?
[ Predrag Supurovic @ 09.04.2016. 07:41 ] @
Svrha korisničkog imena i lozinke je da svako ima svoju :)
[ Nedeljko @ 09.04.2016. 10:08 ] @
Koja li je ovde poenta?
[ Burgos @ 09.04.2016. 22:20 ] @
Citat:
A zašto misliš da ne prepoznaje čiste funkcije?

Pazi, ne znam ga, ali zar se bi trebalo da funkcija vidi samo svoje stvarne argumente i da može da menja samo one koji su u prototipu označeni sa mut i preneti po referenci?


Zato što možeš da uradiš IO iz tih funkcija, i promeniš stanje, npr. bez ikakvih problema, prosto sa `print!` makroom, zato što
možeš da promeniš bilo koju promenljivu koja ti je dostupna ne prego argumenata, već iz okruženja, zato što možeš da napraviš novu nit, itd. itd.
[ Burgos @ 09.04.2016. 22:30 ] @
Npr. ovaj program u D jeziku ne prolazi kompilaciju:

/d435/f642.d(7): Error: pure function 'f642.nedeljko' cannot call impure function 'std.stdio.writeln!string.writeln'


Code:

import std.stdio;

pure void nedeljko(ref int a)
{
    a = 5;
    writeln("Ne radi.");    
}

void main()
{
    int i;
    nedeljko(i);
}


http://dpaste.dzfl.pl/1b3bb68640f4

Sličan program u Rustu:

Code:

fn nedeljko (i: &mut i32) -> () {
    *i = 1;
    print!("Radi");
}

fn main() -> (){ 
    let mut i: i32 = 5;
    nedeljko(&mut i);
}


https://play.rust-lang.org/?gi...version=stable&backtrace=0


Takođe, evo poruke od Graydon Hoare-a koja govori o definiciji čiste funkcije i kako se slaže sa Rustom

Citat:

Careful. It's important to understand that "purity" seems like it has a
simple definition but in languages with mutable memory, state, time and
IO, it gets hard to be exact.


http://thread.gmane.org/gmane....ang.rust.devel/3674/focus=3855
[ Nedeljko @ 11.04.2016. 09:27 ] @
A ja taman pomislio da je pravi funkcionalni jezik, koji ima laku sintaksu za one koji su pre radili OOP.