abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 22:33 | Nová verze

    Byla vydána beta verze openSUSE Leap 16. Ve výchozím nastavení s novým instalátorem Agama.

    Ladislav Hagara | Komentářů: 0
    včera 17:44 | Zajímavý článek

    Devadesátková hra Brány Skeldalu prošla portací a je dostupná na platformě Steam. Vyšel i parádní blog autora o portaci na moderní systémy a platformy včetně Linuxu.

    karkar | Komentářů: 0
    včera 12:11 | Humor

    Lidi dělají divné věci. Například spouští Linux v Excelu. Využít je emulátor RISC-V mini-rv32ima sestavený jako knihovna DLL, která je volaná z makra VBA (Visual Basic for Applications).

    Ladislav Hagara | Komentářů: 2
    včera 10:44 | IT novinky

    Revolut nabídne neomezený mobilní tarif za 12,50 eur (312 Kč). Aktuálně startuje ve Velké Británii a Německu.

    Ladislav Hagara | Komentářů: 22
    včera 09:55 | IT novinky

    Společnost Amazon miliardáře Jeffa Bezose vypustila na oběžnou dráhu první várku družic svého projektu Kuiper, který má z vesmíru poskytovat vysokorychlostní internetové připojení po celém světě a snažit se konkurovat nyní dominantnímu Starlinku nejbohatšího muže planety Elona Muska.

    Ladislav Hagara | Komentářů: 2
    včera 09:33 | IT novinky

    Poslední aktualizací začal model GPT-4o uživatelům příliš podlézat. OpenAI jej tak vrátila k předchozí verzi.

    Ladislav Hagara | Komentářů: 0
    včera 08:11 | Nová verze

    Google Chrome 136 byl prohlášen za stabilní. Nejnovější stabilní verze 136.0.7103.59 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 8 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.

    Ladislav Hagara | Komentářů: 0
    29.4. 20:55 | Nová verze

    Homebrew (Wikipedie), správce balíčků pro macOS a od verze 2.0.0 také pro Linux, byl vydán ve verzi 4.5.0. Na stránce Homebrew Formulae lze procházet seznamem balíčků. K dispozici jsou také různé statistiky.

    Ladislav Hagara | Komentářů: 0
    29.4. 16:22 | Nová verze

    Byl vydán Mozilla Firefox 138.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 138 je již k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 0
    29.4. 15:55 | Pozvánky

    Šestnáctý ročník ne-konference jOpenSpace se koná 3. – 5. října 2025 v Hotelu Antoň v Telči. Pro účast je potřeba vyplnit registrační formulář. Ne-konference neznamená, že se organizátorům nechce připravovat program, ale naopak dává prostor všem pozvaným, aby si program sami složili z toho nejzajímavějšího, čím se v poslední době zabývají nebo co je oslovilo. Obsah, který vytvářejí všichni účastníci, se skládá z desetiminutových

    … více »
    Zdenek H. | Komentářů: 2
    Jaký filesystém primárně používáte?
     (58%)
     (1%)
     (9%)
     (22%)
     (4%)
     (1%)
     (2%)
     (0%)
     (1%)
     (3%)
    Celkem 493 hlasů
     Komentářů: 19, poslední včera 11:32
    Rozcestník

    Strongtalk

    29.12.2006 11:18 | Přečteno: 1233×

    V září Sun uvolnil pod BSD-like licencí již téměř zapomenutý a prakticky neudržovaný projekt Strongtalk, o čemž se objevila zmínka i zde na Abíčku. Tento krok byl přívítán velice kladně a vyvolal spoustu očekávání, protože Strongtalk si vybudoval pověst nejrychlejší existující implementace Smalltalku.

    Jeho VM je napsaná v C++ a vzhledem k tomu, že tento projekt má na svých bedrech už jeden křížek, nebylo jej možné hned zpočátku přeložit v současných nástrojích a vyžadoval velice starou verzi Visual C++ a assembleru od Borlandu. Tušíte správně, jedná se o program pro Windows.

    Naštěstí se v tomto ohledu od jeho uvolnění situace značně zlepšila. Sice si jej pod Linuxem můžeme pustit zatím jen pod Wine, ale alespoň již jde přeložit pod nejnovějším volně dostupným VisualStudiem Express a přeložit by měl jít i pod MinGW. GUI Strongtalku je vytvořeno pomocí přímých volání API přes dynamické knihovny Windows, ale se i tak snad dočkáme nativního portu.

    Na Strongtalk jsem se podíval poměrně důkladně a rád bych se zde podělil o svoje dojmy z toho zajímavého Smalltalku. Ač jeho praktické využití je zatím spíše utopie, má celou řadu zajímavých vlastností, které rozhodně stojí za zmínku

    Statická typová kontrola

    Jak už samotný název napovídá, Strongtalk je Smalltalk se silnou statickou typovou kontrolou. Myšlenka zavést statickou typovou kontrolu do Smalltalku je hodně kacířská, ale kupodivu celkem funkční a prakticky použitelná. Strongtalk kvůli tomu musel zavést několik rozšíření jazyka, ovšem udělal to velice citlivě. Důležité je, že tato typvá kontrola je volitelná. To znamená, že ve Strongtalku je možné psát naprosto běžný Smalltalkovský kód bez deklarování typů proměnných, argumentů a návratových hodnot. Navíc tento kód není o nic pomalejší než typovaný. Programátor tak může velice rychle vytvořit dynamicky typovaný prototyp aplikace, u níž případně později doladí informace o typech a opraví související chyby.

    Další rozšíření

    Kromě rozšíření, která přímo souvisí s typovou kontrolou (protokoly apod.), Strongtalk narozdíl od Smalltalku-80 podporuje tzv. mixins. Strongtalk většinou vytváří třídy slepování mixinů dohromady. Celý jeho přístup k práci s třídami se dost liší a například nepodporuje instanční proměnné metatříd, které je nutno nahrazovat globálními proměnnými. Díky tomu je i jeho standardní hierarchie tříd dost odlišná od běžné Smalltalkovské a je díky mixinům kvalitnější.

    Image

    Dost zásadní rozdíl oproti klasickým Smalltalkům je v práci s image. Strongtalk totiž ukládá pouze deklarativní informace o programu, tedy program samotný. Oproti běžným Smalltalkům neukládá do image jiné existující objekty. Strongtalk má díky tomu opravdový vstupní bod do programu, nemá inicializační seznamy tříd a samotné ukládání a nahrávání image si řeší převážně na úrovni image samotné.

    Tento přístup je poměrně kontroverzní a rozhodně zde nebudu soudit, jestli se jedná o vylepšení či degeneraci Smalltalku. Má totiž svá negativa i pozitiva, která se projeví až při práci na konkrétním projektu. Obecně lze říci, že je bližší mainstreamovému chápání programů a tak asi může leckomu vyhovovat více.

    Omezení

    Oproti výše uvedeným rozdílům oproti Smalltalku-80, která lze většinou chápat spíše pozitivně, má současný Strongtalk některá nepříjemná omezení. Na nich je vidět, že Strongtalk se od chvíle, kdy se od něj Sun macešsky odvrátil ve prospěch Javy, příliš nevyvíjel a ujel mu vlak.

    Strongtalk používá zastaralý způsob inicializace instancí, které se konstruktorem new automaticky neinicializují a překonvertovat image mi dalo hodně práce.

    Zásadní omezení se týká práce s aktivním kontextem a zásobníkem, k nimž nemá Strongtalk přímý přístup. Strongtalk používá nativní vlákna a k informacím zásobníku se lze dostat jen v okamžiku suspendování vlákna. V zásobníku se nelze pohybovat a informace, které se dají o jednotlivých úrovních zanoření získat, jsou značně limitované. Díky tomu je prakticky nemožné vytvořit kvalitní debugger.

    Problém, který s tím úzce souvisí, jsou výjimky. Strongtalk běžné výjimky bouhužel nepodporuje. Jediná možnost, kterou má, je vyvolání nelokálního návratu, který vede k ukončení postiženého vlákna. Při tom má jedinou možnost vykonání opravného kódu a to pomocí zprávy ensure:, která však nemá možnost lokální návrat zastavit.

    Pomocí speciálního procesu, který umožní získat informace o zásobníku a drobné opravy virtuálního stroje se mi sice podařilo výjimky částečně implementovat, ale k dokonalosti to má ještě hodně daleko.

    Díky velice omezené práci se zásobníkem je také v současnosti nemožné portovat do Strongtalku Seaside. Tuto podstatnou část interpretu je nutné celou přepsat a celkově ji vytvořit méně optimalizovanou (nejdůležitější operace jsou napsány přímo v assembleru), což se ale jistě negativně projeví na jeho rychlosti.

    Ne zcela dopracovaná je také například práce s velkými čísly, kde některé základní operace nejsou zatím implementovány (bez nich například nebylo možné ukládat image s metodami, které obsahovaly velká čísla, protože k nim selhávalo vytvoření hashe).

    Nyní také není možné provést rekompilaci celé image a celkově není Strongtalk zatím příliš stabilní.

    UI

    Vývojové prostředí nezastírá svojí inspiraci v jiném Sunovském projektu - Selfu. Místo smalltalkovských browserů se tak zde pracuje s outlinery. Těm sice celá řada důležitých operací s kódem chybí, ale i tak práce s nimi je celkem pohodlná.

    Strongtalk nahrazuje absenci plnohodnotné image pomocí uživatelské stránky projektu, do které si člověk může snadno vložit vlastní kód, odkazy na outlinery apod.

    Závěr

    Strongtalk je velice zajímavý projekt. Vážně pochybuji, že by se do konce roku podařilo někomu získat prémii Dana Ingallse na portování Squeaku na Strongtalkovskou VM, ale i tak by se časem mohla ze Strongtalku vyklubat zajímavá platforma - pokud jej ovšem Sun uvolněním Javy pod GPL nepohřbí podruhé.

    Strongtalk lze chápat jako pokus o hodně prakticky orientovaný Smalltalk, který úspěšně potlačuje některé vlastnosti Smalltalku, které mnozí vývojáři chápou spíše negativně, a mohl se tak pro tyto vývojáře postavit jako vice než plnohodnotná alternativa Javy. Každopádně především vývojáři zajímající se o dynamickou kompilaci a virtuální stroje by mu měli věnovat nemalou pozornost.

           

    Hodnocení: 100 %

            špatnédobré        

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    29.12.2006 12:24 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
    Rozbalit Rozbalit vše Re: Strongtalk
    Díky moc za článek. Že by Strongtalk otevřel cestu k pořádným jazykům i takovým primitivům, jako jsem já? ;-)
    When your hammer is C++, everything begins to look like a thumb.
    29.12.2006 16:09 Lukáš Rýdlo | skóre: 18 | blog: Silný kafe | Brno
    Rozbalit Rozbalit vše Re: Strongtalk
    Taky se přidávám s díky a chválou. Docela bych i uvítal případně nějakou sérii článků o Smalltalku, protože mě tenhle jazyk docela zaujal, ale materiálů je poskrovnu a u nás na FI se to projistotu neučí :-(.

    (Sice tam teď byla jedna přednáška Javy věnovaná Smalltalku, ale ten den jsem nemohl a bohužel nikoho nenapadlo takovou věc nahrávat...)
    θηριον ειμι
    29.12.2006 16:43 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
    Rozbalit Rozbalit vše Re: Strongtalk
    Já nevím, ale chtít zrovna po Pavlu Křivánkovi sérii článků o Smalltalku ... ;-)
    When your hammer is C++, everything begins to look like a thumb.
    29.12.2006 17:20 Lukáš Rýdlo | skóre: 18 | blog: Silný kafe | Brno
    Rozbalit Rozbalit vše Re: Strongtalk
    Super, díky, jdu se stydět do kouta, že jsem málo googlil ;-)
    θηριον ειμι

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.