PDA

Pogčedajte punu verziju : IronPython Screencast


Alef
10. 09. 2006., 02:01
IronPython je implementacija Python-a na .NET (i Mono) platformi. Generalno, implementacija je jako dobro integrisana u .NET platformu, jedina zamerka sa moje strane je, ako sam dobro shvatio (ili sam nešto propustio), to što programi ne mogu da se kompajliraju u biblioteke tako da budu dostupni i u drugim jezicima sa izuzetkom VB-a.

Flash (http://weblog.infoworld.com/udell/screenroom/ironpython_flv.html)
Windows Media (http://weblog.infoworld.com/udell/screenroom/ironpython_wmv.html)
QuickTime (http://weblog.infoworld.com/udell/screenroom/ironpython_qt.html)

ivanhoe
10. 09. 2006., 04:29
ja sam malo glup za .Net stvari, pa nisam bas skapirao ovo oko VB-a. Ja sam razumeo da su C# i VB ravnopravni jezici unutar. Net okruzenja ?

Alef
10. 09. 2006., 11:01
I ja sam sve samo ne expert :). Instalirao sam Mono da isprobam ovo čudo i tu se sva moje expertiza završava ;) (a u Mono-u čak ni nema VB-a)
Ali koliko sam ja shvatio, ljudi koji su pravili IronPython su se posebno potrudili da moduli napisani u istom budu dostupni u ostalim skript jezicima na .NET platformi, a pošto VB može da se koristi i kao skript jezik, onda IronPython moduli mogu direktno da se importuju u VB. S druge strane, kako je C# kompajliran u njemu ne mogu...
U prinipu sam slagao kad sam rekao da ne može da se koristi iz C#... Može, ali ne direktno, već na sličan način kao što se trenutno Python koristi iz C-a i C++-a.

Dragi Tata
10. 09. 2006., 23:03
Među .NET jezicima imate podelu na one koji mogu da koriste postojeće .NET klase (consumers) i one koji mogu da prave nove klase koje se mogu koristiti iz drugih jezika (extenders). Pretpostavljam da IronPython spada u consumers jezike.

Alef
11. 09. 2006., 00:01
Izgleda da je tako. Mada onda upada u oči to sto iz VB-a mogu da se koriste python moduli :-/. No, pravila su tu da se krše ;)

Usput, zanimljivo je to da je IronPython na nekim testovima znatno brži od tzv. CPython-a iako ima čitavju jednu "VM" više, tj:

CPython: test.py -> Python interpreter -> Computer
IronPython: test.py -> Python interpreter -> .NET -> Compiter

Naravno na nekim drugim je znatno sporiji, ali opet...

No, generalno, mislim da je zaista dobro urađen, samo još da se upotpuni standardna biblioteka sa modulima koji fale iz CPython-a i biće to jedan zaista moćan alat.

Petar Marić
11. 09. 2006., 01:20
Ako se dobro sećam CPython koristi brojenje referenci za GC (Garbage Collect) dok .NET koristi složeniji (AFAIK) 3-slojni mehanizam što je nemala prednost.

Nego, može li se IronPy koristiti za filter(), map() i list comprehension umiksovan u C# kodu (za old-school: kao C i asm)?
Upravo razvijam projekat čiji je klijentski deo Windows Form aplikacija (C#) i ponekad mi se desi da otkucam konstrukt tipa:
shares = filter(lambda x: SharesType.File == x.type, shares)