python je lisp-like jazyk? tak to teda slysim prvne (to abych ho prestal pozuivat :-) )
Ano, je - kdyz se zanedbaji ty zajimave vlastnosti ;-)
Viz treba http://www.norvig.com/python-lisp.html
No jo, jenže Python má zase spoustu jiných zajímavých vlastností, které AFAIK neobsahuje ani Common Lisp. Kromě toho je klasická distribuce Pythonu "batteries included", na rozdíl od open source verzí CL. Ikdyž SBCL obsahuje ASDF (hezká záležitost, hlavně ASDF-INSTALL) a lidé kolem Cliki se, jak se zdá, docela činí.
> Python má zase spoustu jiných zajímavých vlastností,
> které AFAIK neobsahuje ani Common Lisp
muzu se zeptat jaky ?
Zeptat se samozrejme muzes na cokoliv, stejne tak budu rad, kdyz opravis moje neznalosti. V prve rade musim rict, ze Python se mi libi diky jednoznacnejsi a IMO citelnejsi syntaxi - proste se mi nezda, ze v CL je mozne mit stejne nazvanou hodnotovou promennou a funkci. V Pythonu neexistuji makra apod., coz nekdy muze trosku svazovat ruce, ale diky tomu je daleko snazsi se v pythonnich programech vyznat. Line vyhodnocovani pomoci iteratoru a generatoru je v Pythonu velice snadne, mocne a pohodlne. V Common Lispu se da snad neco podobneho naprogramovat pomoci maker, ale to mi prijde pomerne narocne a neohrabane. Snadne vytvareni trid zarucujicich standardizovane chovani instanci v Pythonu (magicke metody) atd. atp. Ale za nemene dulezite a zajimave povazuji i projekty, ktere se kolem Pythonu toci - Psyco, PyPy, Stackless, BytecodeHacks, frameworky typu PEAK, Zope X3, Twisted apod. Velice inspirativni.
Samozrejme, kazdy jazyk ma neco. Veterani mezinarodni pythonni konference znaji spoustu zajimavych programovacich jazyku (od Smalltalku pres Self, Ruby, Scheme a ruzne jine dialekty Lispu az treba po Haskell) a snazi se jimi inspirovat pri dalsim vyvoji Pythonu a hledani novych zpusobu vyuziti stavajicich moznosti.
Docela zajimave cteni (samozrejme, jde o subjektivni nazory autora) je zde: http://www.strout.net/python/pythonvslisp.html
ale to je spis dobra vlastnost Pythonu ne :-)
Takova typicky lispovska vec je napriklad lambda vyraz.
Nevylučuji, že existuje nějaký Redmont a v něm nějaká softwarová firma, ale ta, jejíž jméno se nevyslovuje, sídlí v Redmondu.
Asi bych se te nejmenovane firme mel omluvit, je to moje chyba, takhle to zkomolit :-)
Ale zajimave je, ze Google na dotaz "redmont microsoft" docela dobre reaguje, takze blbej nejsem jenom ja :-)
Napriklad Statni technicka knihovna: http://www.stk.cz/cgi-bin/dflex/CZE/STK/FULL/523115
.. je náhodou sqělá ! Sice jsem k ní přičuchnul až ve spojitosti s Postscriptem, ale když si na člověk zvykne, je to paráda ! A je to i celkem přehledné, posuďte sami :
1.5 1.5 scale
50 50 moveto
/Helvetica findfont 10 scalefont setfont
(nějaký text) show
...
Akorát jsem dlouho nemohl překousnout, že při tomto "úsporném" zápisu musím např. zduplikovat řetězec na vrcholu zásobníku abych mohl zjistit jeho délku.
BTW ukládání proměnných na zásobník mi připomělo ZX Spectrum, u kterého byla v ROM BIOSu (kromě ovladačů na "periferie") uloženo i jádro, které mj. podporovalo výpočty s celými čísly i v plouvocí řádové čárce, grafické funkce apod. - a i zde se pracovalo se zásobníkem, i když pravda volání muselo být na úrovní assembleru. Mimochodem pro nepamětníky - toto vše bylo v 16kiB ROM !
O pocitacich pane Sinclaira se zminuji az v dalsich dilech. On ale tusim existoval nejaky wrapper, ktery ty matematicke funkce dovoloval pouzivat i v Basicu. Ale moc o tom nevim, sam jsem atarista ;-)
jojo, atari ;-) btw. nevite (nekdo) neco o implementacich Forthu pro nej? :) mam posledni dobou nutkani ho oprasit, ... kdysi jsem na nem ale delal jen nemnoho v basicu a pomerne brzy bylo nahrazeno PC :/
Pro atarko zcela urcite existuje FIG Forth, ale myslim, ze byly k dispozici i dalsi implementace. Kazdopadne FIG Forth na nem fungoval bez problemu.
No já bych to viděl spíš přesně naopak - ty funkce (vč. goniometrickýcg, logaritmů a všeho dalšího) byly zadrátované v "místním" BASICu a daly se tam normálně používat. Ale díky dokumentaci se daly celkem jednoduše využívat i z assembleru - a to vč. V/V operací. Dokomce se pracovao s tzv. "kanály", což bylo na svou dobu docela namakané - pokud si to dobře pamatuju, jeden kanál sloužil pro jednořádkovou komunikaci s uživatelem (ano, z assembleru se velmi jednoduše dal zavolat požadavek na zadání reálného čísla, které se pak objevilo na zásobníku), druhý vypisoval na obrazovku (tedy ekvivalent dnešní konzoly), další se daly otevřít pro komunikaci s tiskárnou nebo mikrodrajvy (pásková zálohovací jednotka, kterou v mém okolí nikdo nikdy neviděl na vlasdtní oči ..)
Ta doba už je pryč. Skoro se mi chce říct bohužel, protože kdo dnes může říct, že zná všechny programy a ovladače svého počítače na (skoro) 100% ?
BTW docela zajímavou roli v tom sehrál Svazarm, pro později narozené "Svaz pro spolupráci s armádou", který sdružoval a kontroloval lidi, jejichž zájmy bylo potřebné monitorovat, usměrňovat a případně i využívat (např. potápěči, sportovní piloti, parašutisti apod.) A právě v této organizaci se združovali mj. i zájemci o výpočetní techniku - a tady také vzniknul legendární komentovaný výpis ROM počítače ZX Spectrum, který byl mezi komunitou častěji čtený a citovaný než bible mezi věřícími (a mnozí z nás na rozdíl od nich dokázali lépe citovat). A v záhlaví bylo právě číslo "666", což bylo evidenční číslo příslušné pobočky Svazarmu. Ale na všechno toto už se dávno snesl prach, tyto "počítače" už většinou skončily na smetišti a málokdo už pamatuje co mezi komunitou znamenalo číslo 666. Mnohem známější se později stala 602. organizace, jejíž členové pochopili kam se bude vývoj ubírat a na nastupujících PC (tehdy XT) se rozhodli prosadit diakritiku. Udělali to tak důsledně, že se z nich také stala legenda .. ale to už je jiná kapitola.
Dobry den,
Nerad bych, abych byl chapan jako rypal, ptam se jen ze zvedavosti. Je nejaky rozdil mezi kiB a kB jednotkou? Oficialne by to melo byt kB, ne? Vsiml jsem si, ze na par mistech jinde na netu lide uvadeji jednotky GiB, a podobne. Existuje nejaky duvod pouzivat prave tyto jednotky ( treba aby se to s necim nepletlo a tak )?
S pozdravem
nahodny kolemjdouci Bolemir Noc
To je FAQ. kB = 1000 B, KiB = 1024 B. Viz http://physics.nist.gov/cuu/Units/prefixes.html, http://physics.nist.gov/cuu/Units/binary.html .
Spravne by se mely pouzivat rady kB, MB atd. pro mocniny deseti, tj. 10^3, 10^6 atd. Pro mocniny dvou by se melo pouzivat kiB, MiB atd., tj. 2^10, 2^20.
Pokud se hovori o kapacite operacni pameti, tak je to vzdy v mocninach dvou (logicky, podle adresace), u pevnych disku a spol. to jsou nasobky deseti.
Vsechny tyto zmatky zpusobili predevsim vyrobci pevnych disku, paskovych mechanik, CD-ROM atd., kdyby se drzeli mocnin dvou, bylo by vsechno v poradku.
Ale klidne ty nove jednotky SI ignorujte, v IT je to normalni a tak to ma byt :-)
Pozor - nasobky 10 jsou to pouze u pevnych discich jako celku, uz velikosti partition je normalnejsi uvadet v mocninach 2.
A pro ještě větší pamětníky, kteří už zapoměli: kalkulačka (tedy to jádro) ZX Spectra se volala nejlépe z assembleru Z80 instrukcí RST 0028 :-)
Kdysi dávno jsem z nouze tento jazyk pouzival na Atari. Mohu rict, ze jsem dodnes nenarazil na nic zajimavejsiho. Je fajn, ze o nem vychazi clanek, i kdyz pro dnesni PC je jiz prezity...
Pro PC je mozna prezity, ale treba pro PDA, smartphone by nemusel byt. Jsem zvedavy na pokracovani. Muze to byt zajimave.
Delal jsem s FORTHem cca pred 18 lety. Tehdy o nem vychazel pekny serial clanku v AR - psal p.Pecinovsky. Tehdy byl FORTH velice zajimavy.
Zpusobem implemetace se velmi podoba Smalltalku.
V dnesni dobe objektovych jazyku, ale klasicky stary FORTH nemuze nabidnout nic zajimaveho (rozumej efektivniho, ucinneho). Nebo ze by nas autor v dalsich dilech prekvapil (OO Forth, apod.) ???
OO Forth sice existuje (asi od roku 1987, vychazi z ANS Forthu), ale je to takovy ten dort ala pejsek a kocicka (neco jako C++). Proste kvuli OO rozsireni musite udelat spoustu veci kolem a uz se nejedna o tak elegantni jazyk jako je puvodni Forth.
Mozna vas potesi, ze FORTH neumrel, ale zije a je nedilnou soucasti firmy, kde pracuji... =o) Po urceni se me ale neptejte (to vite, vladni tajemnstvi je vladni tajemstvi) =o)
Vladni tajemstvi si klidne nechte pro sebe (to uz vystouraji novinari) :-))), ale muzete nam rict, jak jste s Forthem spokojeni :-)
- A kolik ti plati?
- Ale, nic moc, 5 korun za granat :-))))
Ano, pro klasicke desktopove PC se Forth prilis nehodi. Ale zkuste se treba podivat do ruznych ridicich systemu - tam je bud technologicke PC, nejaky jednocip, DSP apod. A pro tyto oblasti se Forth a od nej odvozene jazyky hodi.
Chytre mobilky a PDA jsou druhou skupinou zarizeni, pro ktere se Forth hodi, zejmena svymi malymi naroky na system. To, ze se tato zarizeni programuji v Jave, je vylozene vec ekonomicka (zjednodusene receno, programatoru v Jave je mnohem vic nez programatoru ve Forthu).
Pak je ale zajimave, ze se tato zarizeni neprogramuji v php nebo ve visual basicu. ;-)
To ne, ale za chvili to urcite bude Visual Basic for .NET mobile profile :-(
PDA se samozrejme daji programovat v Basicu. Pocket PC (Windows Mobile) ma .NET Compact Framework a existuje i nejaky Basic pro Palmy - v tom se ale nevyznam.
bohuzel jsme meli u nas ve firme co delat s PDA - takovy hnus clovek nevidel. Existuje pro to vyvojove prostredi od firmy, jejiz jmeno se nevyslovuje, je drahe jak prase a s kazdou novou verzi PDA, coz nemuzes ovlivnit, musis kupovat upgrade. Kdyz reknu, ze se pro to daji psat programy jenom v basicu, tak nebudu daleko od pravdu. Toto vyvojove prostredi samozrejme obsahuje C (nase aplikace je v nem napsana - kdo by psal neco v basicu), ale prusvih je v tom, ze tohle C i prestoze je primo od vyrobce toho operacniho systemu, neumoznuje pouzivat barvy. Veskere obrazovky jsou vicemene sede na sedem, neda se zmenit ani barva pozadi. V basicu, ktery je soucasti toho sameho vyvojoveho prostredi tohle vsechno funguje.
Takze zaver - jestli chces psat program pro PDA, musis se naucit visual basic.
Taky se ti chce blit?
no ja takove veci programuju v cecku (tim myslim normalni bezobjektove c) a jsem vcelku spokojeny. forth me ale zaujal, dokonce jsem si nasel i jednu zajimavou implementaci na atmely, i kdyz je (podle me) hodne narocna na pamet:
http://claymore.engineer.gvsu.edu/~steriana/Python/pfavr/rationale.html
jo, tenhle kousek kodu (generovani html) je roztomily: http://www.ntecs.de/old-hp/uu9r/lang/html/forth.en.html#_CGI%20Squares
Myslim, ze spousta lidi, zvlaste tech programujicich numericke vypocty atp., by s Vami rozhodne nesouhlasila v nazoru, ze Fortran je mrtvy ;-)
Ale ne, ja si nemyslim, ze je Fortran mrtvy. Ale vetsina lidi presla od Fortranu k Pascalu/Cecku atd. Opet to neni vec "kvality" programovaciho jazyka, ale spis dostupnost programatoru a programovacich prostredku.
Znam nekolik projektu, kde je matematicky zaklad vytvoren ve Fortranu (nejake operace nad maticemi, numericka integrace apod.) a GUI s rizenim je v C++. Vypada to, ze vyvojari byli s touto volbou velmi spokojeni.
Asi trosku "off topic" prispevek:
zajimalo by mne, zda neznate nekdo nejaky odkaz na dokumenty/stranky, ktere se zabyvaji historii a/nebo srovnavanim programovacich a jinych(pocitacovych) jazyku ?
Zkuste http://www.levenez.com/lang/ nebo posimrat Googla.
docela unikatni je http://merd.sourceforge.net/pixel/language-study/, zejm. casti diagram&history a syntax across languages.
pro srovnani konkretnich jazyku zkus googla.
Ale klidne muzete zbohatnout, jen si najit prilezitost. Znam cloveka, ktery (opravnene) zhrabl nekolik tisic za to, ze do nejakych reklamnich materialu "pribastlil" logo firmy.
Grafik by na tom delal tyden, tento programator do kazdeho .ps souboru pouze na vhodne misto vlozil prislusne logo (taky ps, resp. eps soubor) a po uprave transformacnich matic to mel hotove za odpoledne.
U nas na skole zase kolega vkladal do postsciptu automaticke cislovani do stranek urcenych do sborniku (lidi to samozrejme posilali "camera ready" bez cisel). S vhodnym skriptem (tusim to bylo v AWK) to slo docela snadno.
Forth respektive nieco na nom zalozene sa pouziva aj v OpenBOOT-e na Sun masinach. Velmi prijemna zalezitost, skoda, ze to nieje na PC.
Jeden muj znamy z velke nejmenovane telekomunikacni firmy dela na Sunech a OpenBoot si nemuze vynachvalit.
On ho tedy pouzije na kazdem serveru tak jedenkrat za dva roky, kdyz se neco rozhasi - potom najde pisicko, udela si z nej konzoli (pripojenou k Sunu pres seriovy port - jednoduche, spolehlive) a uz vesele nastavuje.
jen tak mimochodem - boot loader ve FreeBSD je napsan ve Forthu..
zajimavych jazyku je cela rada (hlavne z tech paradigmat mimo imperativni) skoda ze vsichni koduji v C/C++ apod. svet by mohl byt velmi krasne misto ;)
proc tolik jazyku, kdyz kazdy jazyk jde nasimulovat ve schemu! ;-)
Ted jste vlastne neprimo odpovedel na uplne prvni otazku od mol-a :-)
Pro neznale: Scheme vychazi z Lispu, vyvoj se rozdelil tusim v roce 1975. Scheme se take naucite rychleji nez Lisp, nekde jsem cetl, ze cely manual ke Scheme ma tolik stran, co uvod do knizky Common Lisp :-) Samozrejme vychytavky jako CLOS tam nejsou implementovany.
prave v tom je ta krasa - cely scheme jde pouzivat s pomoci plus/minus peti primitiv a zbytek se da doprogramovat... v tom je ta krasa...
btw. libi se mi jak se vsude cpe XML, kdyz na vetsinu problemu by stacil jazyk podobny LISPu a na zpracovani misto XSLT pouzit neco jako Scheme nebo LISP
na Scheme je take dobre, ze se v dokumentaci docela presne pise, kdy je pouzita tail-recursion (ted si nevzpomenu na presny cesky preklad) a kdy ne. To me u jinych Lispu chybi.
Jedina vada pro me: true a false se pise pomoci #t a #f a ne jako T a nil :-)
ad btw: mluvite mi z duse, vsak jsem to na konferencich uz take nekolikrat rikal. Proste nejaky dokument/databaze vytvorena jako LISP-ovsky seznam a na zpracovani pouzit nejakou funkci, co tento seznam prekouse. Takhle se misto kulatych zavorek, na kteri vsichni nadavali, vsude pouzivaji nesmyslne lomene zavorky, u kterych ani nejde jednoduse zjistit parovost.
> cely scheme jde pouzivat s pomoci plus/minus peti
> primitiv a zbytek se da doprogramovat
No a ? S lispem je to prece podobny a je krasny stejnym zpusobem :)
> btw. libi se mi jak se vsude cpe XML, kdyz na
> vetsinu problemu by stacil jazyk podobny LISPu a na
> zpracovani misto XSLT pouzit neco jako Scheme nebo
> LISP
Presne to me taky napadlo ! Vymysli se tuny zbytecnych specializovanych jazyku (napr. xml, xsl, makefile atp.), pritom by stacilo napsat v Lispu par maker a je to :))) A Lisp uz tu byl pred x desitkami let, a dodnes je nedostizeny...
Scheme proste rulez. Hned se pozna, kdo si prosel paradigmata na UPOLu...:)
> manual ke Scheme ma tolik stran,
> co uvod do knizky Common Lisp
mozna proto ze CL specifikace popisuje dost velkou std .knihovnu, nejen jazyk
Obávám se, že v LISPoidních jazycích moc velký rozdíl mezi std knihovou a jazykem není...veliká část jazyka je prostě součást standardní knihovny :)