Dobrý den, Habr! Předkládám vaší pozornosti překlad příspěvku Stephena Wolframa
Předpoklady pro konzistenci jazyka Wolfram
Dnes stojíme na prahu velkých úspěchů společně s programovacím jazykem
Wolfram Function Repository je něco, co umožňuje jedinečná povaha jazyka Wolfram nejen jako programovacího jazyka, ale také jako
Například úložiště funkcí Wolfram již obsahuje
Stejně tak více než
Chcete-li se dostat na stránku, zkopírujte výše uvedený objekt (funkce BLOB), vložte jej do vstupního řádku a poté funkci spusťte - je již zabudována do jazyka Wolfram a standardně podporována počínaje
Zde je třeba poznamenat, že při zpracování
Doufám, že s podporou
Funkce z úložiště mohou obsahovat malé nebo velké části kódu napsané v jazyce Wolfram. Mohou to být například hovory
Struktura shellu a programování úložiště funkcí Wolfram je navržena tak, aby každý mohl přispět ke společné věci tím nejjednodušším a nejpohodlnějším způsobem pro něj – ve skutečnosti jen
V tomto přístupu je mnoho kompromisů a detailů, ale naším cílem je optimalizovat úložiště funkcí Wolfram jak pro uživatelskou zkušenost, tak zajistit, aby nové uživatelské funkce smysluplně přispívaly k vývoji jazyka. Jak rosteme, nepochybuji o tom, že budeme muset vymýšlet nové metody pro manipulaci a ověřování funkcí zabudovaných do úložiště, v neposlední řadě pro organizaci velkého množství funkcí a hledání těch, které uživatelé potřebují. Je však povzbudivé, že cesta, kterou jsme zvolili, je dobrý začátek. já osobně
Zvýšení efektivity při současném snížení nákladů
Ještě před Internetem existovaly způsoby, jak sdílet kód Wolfram Language (náš první velký centralizovaný projekt byl
Naše společnost již více než 30 let pilně pracuje na zachování integrity struktury jazyka Wolfram, což je zásadní pro zajištění toho, aby se jazyk Wolfram stal nejen programovacím jazykem, ale také
V implementační struktuře každé funkce se vyskytují různé výpočetní procesy. Zde je třeba poznamenat, že je nutné, aby funkce měla pro uživatele jasný a jednotný vzhled a vizuální čitelnost. V této souvislosti jsou vestavěné funkce jazyka Wolfram prezentovány s více než 6000 XNUMX po sobě jdoucími příklady, jak správně programovat funkce (toto jsou naše
Vytvoření úložiště, které skutečně funguje dobře, je zajímavý úkol metaprogramování. Například přemíra omezení v programu neumožní získat požadovanou unifikaci a univerzálnost algoritmu. Stejně jako při nedostatečném počtu funkčních omezení nebudete schopni implementovat dostatečně správnou sekvenci provádění algoritmu. Několik předchozích příkladů implementace kompromisu těchto přístupů, implementovaných naší společností, fungovalo poměrně stabilně - jsou to:
Všechny výše uvedené příklady mají zásadní rys – objekty a funkce shromážděné v projektu mají velmi vysoký stupeň strukturování a distribuce procesů. Samozřejmě, že detaily struktury toho, co je demo nebo neuronová síť nebo něco jiného, se mohou značně lišit, ale základní struktura jakéhokoli současného úložiště zůstává vždy stejná. Jaký je tedy váš názor, milý uživateli, na vytvoření takového úložiště, které přidává rozšíření do jazyka Wolfram? Jazyk Wolfram je navržen tak, aby byl extrémně flexibilní, takže jej lze jakkoli rozšiřovat a upravovat. Tato okolnost je nesmírně důležitá pro schopnost rychle vytvářet různé rozsáhlé softwarové projekty v jazyce Wolfram. Zde je třeba poznamenat, že s rostoucí flexibilitou jazyka se nevyhnutelně zvýší náklady na projekty realizované v takovém jazyce. To je způsobeno skutečností, že čím více uživatel takový jazyk používá, tím více vyhrazených funkcí obdrží, ale neměli bychom zapomínat, že tento přístup může mít také negativní stránky, pokud jde o neschopnost zajistit konzistentní konzistenci programových modulů.
U knihoven v tradičních programovacích jazycích je běžný problém - pokud například používáte jednu knihovnu, kód bude fungovat správně, ale pokud se pokusíte použít více knihoven, není zaručeno, že budou vzájemně správně interagovat . Také v tradičních programovacích jazycích - na rozdíl od plnohodnotného výpočetního jazyka - neexistuje žádný způsob, jak zaručit přítomnost konzistentních vestavěných reprezentací pro jakékoli funkce nebo datové typy jiné než jejich základní struktury. Ale ve skutečnosti je problém ještě větší, než se na první pohled zdá: pokud člověk buduje rozsáhlou vertikálu funkčnosti, pak bez obrovských nákladů na centralizované projektové programování, které vkládáme do jazyka Wolfram, není možné dosáhnout konzistence. Je proto důležité, aby všechny softwarové moduly vždy správně spolupracovaly.
Myšlenkou repozitáře funkcí Wolfram je tedy vyhnout se výše popsanému problému jednoduchým přidáním rozšíření do jazyka v relativně malých kouscích kódu prostřednictvím jednotlivých funkcí, které se snadněji vyvíjejí jako koherentní moduly. Jak již bylo řečeno, existují programovací funkce, které nelze usnadnit pomocí jednotlivých funkcí (a naše společnost plánuje v blízké budoucnosti vydat optimalizovaný programovací algoritmus, který pomůže implementovat rozsáhlé softwarové balíčky). Na základě funkcí již zabudovaných do jazyka Wolfram však existuje mnoho možností programování, které jsou implementovány na základě jednotlivých funkcí. Myšlenka je taková, že s relativně malým programátorským úsilím je možné vytvořit řadu nových a velmi užitečných funkcí, které poskytnou dostatečnou koherenci návrhu, budou vzájemně dobře sladěny a navíc budou moci v budoucnu snadno a široce používat v jazyce.
Tento přístup je samozřejmě kompromisem. Pokud by byl implementován větší balík, bylo by možné si představit zcela nový svět funkcí, který by byl extrémně výkonný a užitečný. Pokud je potřeba získat novou funkcionalitu, která se bude hodit ke všemu ostatnímu, ale nejste ochotni vynaložit velké úsilí na vývoj projektu, může to bohužel vést ke snížení rozsahu vašeho projektu. Myšlenkou úložiště funkcí Wolfram je poskytnout funkčnost definující části projektu; tento přístup přidá výkonnou funkcionalitu a zároveň usnadní udržení dobré konzistence v programovacím projektu.
Pomoc při přidávání vlastních funkcí do úložiště funkcí
Náš tým tvrdě pracoval na tom, aby uživatelům usnadnil přispívat do funkcí úložiště Wolfram. Na ploše (již v
Jsou dva hlavní kroky, které budete muset provést: zaprvé si skutečně zapište kód pro svou funkci a zadruhé sepište dokumentaci znázorňující, jak by funkce měla fungovat.
Kliknutím na tlačítko "Otevřít ukázku" nahoře zobrazíte příklad toho, co musíte udělat:
V podstatě se snažíte vytvořit něco podobného jako vestavěná funkce v jazyce Wolfram. Až na to, že umí něco mnohem konkrétnějšího než vestavěnou funkci. Očekávání ohledně jeho úplnosti a spolehlivosti přitom budou mnohem nižší.
Své funkci musíte dát název, který se řídí pokyny pro pojmenování funkcí v jazyce Wolfram. Kromě toho budete muset vyvinout dokumentaci pro vaši funkci, podobnou vestavěným funkcím jazyka. O tom budu mluvit podrobněji později. Prozatím si všimněte, že v řadě tlačítek v horní části souboru definičního poznámkového bloku je tlačítko
Když jste si jisti, že je vše správně vyplněno a jste připraveni, klikněte na tlačítko „Zkontrolovat“. Je úplně normální, že jste ještě nepřišli na všechny detaily. Funkce „Kontrola“ se tedy automaticky spustí a provede mnoho kontrol stylu a konzistence. Často vás okamžitě vyzve k potvrzení a přijetí oprav (například: „Tento řádek musí končit dvojtečkou“ a vyzve vás k zadání dvojtečky). Někdy vás požádá, abyste sami něco přidali nebo změnili. Do automatické funkčnosti tlačítka Check budeme neustále přidávat nové funkce, ale v podstatě jeho účelem je zajistit, aby vše, co odešlete do úložiště funkcí, již přesně odpovídalo co největšímu počtu pokynů pro styl
Takže po spuštění "Kontrola" můžete použít "Náhled". "Náhled" vytvoří náhled stránky dokumentace, kterou jste definovali pro svou funkci. Můžete také vytvořit náhled pro soubor vytvořený v počítači nebo pro soubor umístěný v cloudovém úložišti. Pokud z nějakého důvodu nejste spokojeni s tím, co vidíte v náhledu, jednoduše se vraťte a proveďte potřebné opravy a poté znovu klikněte na tlačítko Náhled.
Nyní jste připraveni vložit svou funkci do úložiště. Tlačítko Nasadit vám nabízí čtyři možnosti:
Důležité v tomto kroku je, že svou funkci můžete odeslat do úložiště funkcí Wolfram, aby byla dostupná komukoli. Zároveň můžete svou funkci umístit i pro omezený počet uživatelů. Můžete například vytvořit funkci, která je umístěna lokálně na vašem počítači, takže je dostupná, když používáte daný počítač. Nebo to můžete zveřejnit ve svém
Řekněme tedy, že chcete svou funkci skutečně odeslat do znalostní báze funkcí Wolfram. Chcete-li to provést, klikněte na tlačítko „Odeslat“ do úložiště. Co se tedy v tuto chvíli děje? Vaše žádost je okamžitě zařazena do fronty ke kontrole a schválení naším specializovaným týmem kurátorů.
Jak bude vaše aplikace procházet schvalovacím procesem (který obvykle trvá několik dní), budete dostávat sdělení týkající se jejího stavu a případně návrhy pro budoucí použití. Jakmile je však vaše funkce schválena, bude okamžitě publikována do úložiště funkcí Wolfram a bude k dispozici pro každého. (A toto se objeví v
Co by mělo být v úložišti?
Je třeba poznamenat, že naše společnost má velmi vysoké standardy úplnosti, spolehlivosti a celkové kvality a z více než 6000 funkcí, které jsme již do jazyka Wolfram zabudovali za posledních 30+ let, všechny splňují výše uvedené požadavky. Cílem úložiště funkcí Wolfram je využít veškerou strukturu a funkcionalitu, která již v jazyce Wolfram existuje, aby bylo možné přidat co nejvíce lehčích funkcí (tj. funkcí s vyšším výkonem).
Funkce v úložišti funkcí Wolfram musí samozřejmě odpovídat principům návrhu jazyka Wolfram – aby mohly plně interagovat s ostatními funkcemi a očekáváními uživatelů, jak má funkce správně fungovat. Funkce však nemusí mít stejnou úplnost nebo spolehlivost.
Ve vestavěných funkcích jazyka Wolfram tvrdě pracujeme na tom, aby programovací funkce byly co nejobecnější. Jak bylo řečeno, když v úložišti funkcí Wolfram není nic špatného na tom, mít v něm funkci, která jednoduše zpracovává nějaký velmi specifický, ale užitečný případ. Například funkce
Dalším bodem souvisejícím s vestavěnými funkcemi je, že naše společnost vynakládá maximální úsilí na zvládnutí všech atypických případů, na správné zpracování nesprávného zadání a podobně. V úložišti funkcí je zcela normální, že existuje speciální funkce, která řeší hlavní případy řešení problému a ignoruje všechny ostatní.
Zřejmým bodem je, že je lepší mít funkce, které toho dělají více a dělají to lépe, ale optimalizace pro úložiště funkcí – na rozdíl od vestavěných funkcí jazyka Wolfram – by měla mít více funkcí sdružených s více funkcemi, spíše než se ponořit do implementační procesy každé konkrétní funkce.
Nyní se podívejme na příklad testování funkcí v úložišti. Očekávání konzistence u takových funkcí jsou přirozeně mnohem nižší než u vestavěných jazykových funkcí. To platí zejména v případech, kdy funkce závisí na externích zdrojích, jako jsou API, je důležité neustále provádět konzistentní testy, což se automaticky děje v rámci ověřovacích algoritmů. V souboru nb můžete explicitně specifikovat definice (v sekci Další informace) a specifikovat tolik testů, jak je definováno buď vstupními a výstupními řetězci nebo úplnými znakovými objekty typu
V důsledku toho bude mít úložiště funkcí řadu složitých implementací. Některé budou pouze jedním řádkem kódu, jiné mohou zahrnovat tisíce nebo desítky tisíc řádků, pravděpodobně využívajících mnoho pomocných funkcí. Kdy se vyplatí přidat funkci, jejíž definování vyžaduje velmi málo kódu? V podstatě, pokud pro funkci existuje
Hlavním účelem úložiště funkcí (jak jeho název napovídá) je zavádět do jazyka nové funkce. Pokud chcete přidat nové údaje popř
Jsou vlastně dva způsoby. Možná budete chtít zavést nový typ objektu, který bude použit v nových funkcích v úložišti funkcí. A v tomto případě si vždy můžete pouze zapsat jeho symbolickou reprezentaci a použít ji při zadávání nebo výstupu funkcí v úložišti funkcí.
Ale co když chcete reprezentovat objekt a poté definovat prostřednictvím existujících funkcí v jazyce Wolfram, že s ním chcete pracovat? Wolframský jazyk pro to vždy měl lehký mechanismus, tzv
Co by tedy mohlo být v kódu funkce v úložišti funkcí?
Měl by být veškerý kód pro úložiště funkcí Wolfram napsán ve Wolframu? Kód uvnitř externího API by samozřejmě neměl být napsán v jazyce Wolfram, který ani nevytváří kód jazyka. Ve skutečnosti, pokud najdete funkci v téměř jakémkoli externím jazyce nebo knihovně, můžete vytvořit obal, který vám umožní použít ji v úložišti funkcí Wolfram. (Obvykle byste k tomu měli používat vestavěné funkce
Jaký to má smysl dělat? V podstatě vám to umožňuje používat celý integrovaný systém Wolfram Language a celou jeho jednotnou sadu softwarových schopností. Pokud získáte základní implementaci z externí knihovny nebo jazyka, můžete pak použít bohatou symbolickou strukturu jazyka Wolfram k vytvoření pohodlné funkce nejvyšší úrovně, která uživatelům umožňuje snadno používat jakoukoli již implementovanou funkci. Přinejmenším by to mělo být proveditelné v ideálním světě, kde existují všechny stavební bloky načítacích knihoven atd., v takovém případě by je automaticky zpracovával jazyk Wolfram. (Je třeba poznamenat, že v praxi mohou nastat problémy s
Mimochodem, když se poprvé podíváte na typické externí knihovny, často se zdají příliš složité na to, aby je pokrylo jen několik funkcí, ale v mnoha případech velká část složitosti pochází z vytvoření infrastruktury potřebné pro knihovnu a všech funkcí podpořit to. Při použití jazyka Wolfram je však infrastruktura obvykle již zabudována do balíčků, a proto není třeba podrobně vystavovat všechny tyto podpůrné funkce, ale pouze vytvářet funkce pro „nejvyšší“ funkce specifické pro aplikaci v knihovně. .
„Ekosystém“ znalostní báze
Pokud jste napsali funkce, které pravidelně používáte, odešlete je do úložiště funkcí Wolfram! Pokud z toho nevyplývá něco víc (vývoj jazyka), pak i tak pro vás bude mnohem pohodlnější používat funkce pro osobní potřebu. Je však logické předpokládat, že pokud funkce používáte pravidelně, možná se budou hodit i ostatním uživatelům.
Přirozeně se můžete dostat do situace, kdy nemůžete – nebo nechcete – sdílet své funkce nebo v případě získání přístupu k soukromým informačním zdrojům. I v takových případech můžete funkce jednoduše nasadit na svůj vlastní cloudový účet,
Funkce, které odešlete do úložiště funkcí Wolfram, nemusí být dokonalé; prostě musí být užitečné. Trochu to připomíná sekci „Chyby“ v klasické unixové dokumentaci – v sekci „Definice“ je sekce „Poznámky autora“, kde můžete popsat omezení, problémy atd., které již o své funkci znáte. Když navíc odešlete svou funkci do úložiště, můžete přidat poznámky k odeslání, které si přečte specializovaný tým kurátorů.
Jakmile je funkce publikována, její stránka má vždy dva odkazy ve spodní části: "
Někdy prostě chcete používat funkce z úložiště funkcí Wolfram, jako jsou vestavěné funkce, aniž byste se dívali na jejich kód. Pokud se však chcete podívat dovnitř, nahoře je vždy tlačítko Poznámkový blok. Klikněte na něj a získáte vlastní kopii původního poznámkového bloku s definicemi, který byl odeslán do úložiště funkcí. Někdy to můžete použít jen jako příklad pro vaše potřeby. Zároveň si můžete vyvinout i vlastní modifikaci této funkce. Tyto funkce, které jste našli z úložiště, možná budete chtít zveřejnit ve svém počítači nebo ve svém účtu cloudového úložiště aphid, možná je budete chtít odeslat do znalostní báze funkcí, možná jako vylepšenou, rozšířenou verzi původní funkce.
V budoucnu plánujeme podporovat forkování ve stylu Git pro repozitáře funkcí, ale prozatím se snažíme, aby to bylo jednoduché a vždy máme pouze jednu přijatou verzi každé funkce zabudovanou do jazyka. Častěji než ne (pokud se vývojáři nevzdají udržování funkcí, které vyvinuli a nereagují na příspěvky uživatelů), původní autor funkce převezme kontrolu nad aktualizacemi a předloží nové verze, které jsou poté zkontrolovány, a pokud projdou procesem kontroly , zveřejněné v jazyce.
Zamysleme se nad otázkou, jak funguje „verzování“ vyvinutých funkcí. Právě teď, když používáte funkci z úložiště funkcí, bude její definice trvale uložena ve vašem počítači (nebo ve vašem cloudovém účtu, pokud cloud používáte). Pokud je k dispozici nová verze funkce, při jejím příštím použití obdržíte zprávu s upozorněním. A pokud chcete funkci aktualizovat na novou verzi, můžete to udělat pomocí příkazu
Jednou z krásných věcí na úložišti funkcí Wolfram je to, že funkce z něj může používat jakýkoli program Wolfram Language, kdekoli. Pokud se program objeví v poznámkovém bloku, je často vhodné naformátovat funkce úložiště jako snadno čitelné funkce „binárního objektu funkcí“ (možná s příslušnou sadou verzí).
K jakékoli funkci v úložišti funkcí můžete vždy přistupovat pomocí textu
Jak to funguje?
Uvnitř funkcí v úložišti Wolfram je to možné pomocí úplně stejného
Zvážit
Uvnitř můžete vidět některé informace pomocí funkce
Jak funguje nastavení funkce zdrojů? Nejjednodušší je čistě lokální případ. Zde je příklad, který vezme funkci (v tomto případě pouze čistou funkci) a definuje ji jako zdrojovou funkci pro danou relaci programu:
Jakmile vytvoříte definici, můžete použít funkci zdroje:
Všimněte si, že v tomto funkčním blobu je černá ikona . To znamená, že funkce BLOB odkazuje na funkci prostředků v paměti definovanou pro aktuální relaci. Funkce prostředků, která je trvale uložena ve vašem počítači nebo cloudovém účtu, má šedou ikonu . A ve Wolfram Feature Repository je oranžová ikona pro funkci oficiálního zdroje .
Co se tedy stane, když v Zápisníku definic použijete nabídku Rozbalit? Nejprve vezme všechny definice v poznámkovém bloku a z nich vytvoří symbol
Místní nasazení funkce z úložiště na vašem počítači se provádí pomocí příkazu
Pokud kliknete na tlačítko Odeslat pro úložiště funkcí, co se pod ním stane
Ve výchozím nastavení jsou příspěvky odesílány pod jménem spojeným s vaším Wolfram ID. Pokud ale podáváte žádost jménem vývojového týmu nebo organizace, můžete
Poté, co odešlete kteroukoli z vašich funkcí do znalostní báze funkcí, bude zařazena do fronty ke kontrole. Pokud jako odpověď obdržíte komentáře, budou obvykle ve formě textového souboru s přidanými dalšími „buňkami komentářů“. Stav své žádosti můžete kdykoli zkontrolovat na stránce
Některé jemnosti v práci
Na první pohled se může zdát, že stačí vzít definiční zápisník a vložit jej doslovně do úložiště funkcí, ale ve skutečnosti je s tím spojeno poměrně hodně jemností – a jejich zpracování vyžaduje poměrně složité metaprogramování, zpracování symbolického zpracování. jako kód, který definuje funkci a je definován samotný Poznámkový blok. Většina z toho se děje interně, v zákulisí, ale může to mít určité důsledky, které stojí za to pochopit, pokud se chystáte přispět do znalostní báze funkcí.
První okamžitá jemnost: Když vyplníte Zápisník definic, můžete jednoduše odkazovat na svou funkci všude pomocí názvu jako MyFunction, který vypadá jako běžný název funkce v jazyce Wolfram, ale pro dokumentaci úložiště funkcí je nahrazen
Druhá jemnost: když vytváříte zdrojovou funkci z Definition Notebooku, musí být zachyceny a explicitně zahrnuty všechny závislosti zahrnuté v definici funkce. Chcete-li však zajistit, aby definice zůstaly modulární, musíte vše umístit do jedinečné podoby
Obvykle nikdy neuvidíte žádnou stopu kódu použitého ke konfiguraci tohoto jmenného prostoru. Ale pokud z nějakého důvodu zavoláte symbol nedostatečně provedený uvnitř vaší funkce, uvidíte, že tento symbol je v interním kontextu funkce. Při zpracování Definition Notepadu je však alespoň symbol odpovídající samotné funkci
Úložiště funkcí slouží k definování nových funkcí. A tyto funkce mohou mít možnosti. Často tyto parametry (např.
Většina funkcí jednoduše dělá to, co mají dělat pokaždé, když jsou volány, ale některé funkce je třeba inicializovat, než se mohou spustit v konkrétní relaci – a k vyřešení tohoto problému je v sekci Definice sekce „Inicializace“.
Funkce z úložiště mohou používat další funkce, které jsou již v úložišti; chcete-li nastavit definice pro úložiště funkcí, které obsahují dvě (nebo více) funkcí, které se navzájem odkazují, musíte je nasadit ve své relaci programu, abyste mohli odkaz jako na nich
Perspektivy rozvoje. Co by se mělo stát, až bude úložiště opravdu velké?
Dnes právě spouštíme Wolfram Feature Repository, ale v průběhu času očekáváme, že jeho velikost a funkčnost se může dramaticky zvětšit, a jak bude růst ve vývoji, budou se vyskytovat různé problémy, které již očekáváme, že mohou nastat.
První problém se týká názvů funkcí a jejich jedinečnosti. Úložiště funkcí je navrženo tak, že stejně jako vestavěné funkce v jazyce Wolfram můžete odkazovat na jakoukoli danou funkci jednoduše zadáním jejího názvu. To však nevyhnutelně znamená, že názvy funkcí musí být globálně jedinečné v celém úložišti, takže například může existovat pouze jeden
Zpočátku se to může zdát jako velký problém, ale je dobré si uvědomit, že jde v podstatě o stejný problém jako u věcí, jako jsou internetové domény nebo úchyty sociálních sítí. A faktem je, že systém prostě potřebuje mít registrátora – a to je jedna z rolí, kterou bude naše společnost pro znalostní bázi funkcí Wolfram plnit. (U soukromých verzí úložiště mohou být jejich registrátoři správci.) Internetovou doménu lze samozřejmě zaregistrovat, aniž by na ní bylo cokoli, ale v úložišti funkcí lze název funkce zaregistrovat pouze v případě, že existuje skutečná definice funkce.
Součástí naší role při správě znalostní báze funkcí Wolfram je zajistit, aby název zvolený pro funkci byl logický vzhledem k definici funkce a aby se řídil konvencemi pojmenovávání v jazyce Wolfram. Máme více než 30 let zkušeností s pojmenováním vestavěných funkcí v jazyce Wolfram a náš tým kurátorů tyto zkušenosti přenese také do úložiště funkcí. Samozřejmě se vždy najdou výjimky. Například se může zdát vhodnější mít pro nějakou funkci krátký název, ale je lepší se „bránit“ delším, konkrétnějším názvem, protože je méně pravděpodobné, že narazíte na někoho, kdo bude chtít v budoucnu vytvořit podobný název funkce. .
(Zde je třeba poznamenat, že pouhé přidání nějaké členské značky k jednoznačným funkcím nebude mít zamýšlený efekt. Protože pokud nebudete trvat na tom, že značku vždy přiřadíte, budete muset definovat výchozí značku pro danou funkci a také přidělit značky autora , což by opět vyžadovalo globální koordinaci.)
Jak roste znalostní báze funkcí Wolfram, jeden z problémů, který pravděpodobně nastane, je zjistitelnost funkcí, pro které systém poskytuje
Pro vestavěné funkce v jazyce Wolfram je k dispozici tzv. detekční vrstva
Úložiště funkcí Wolfram je nakonfigurováno jako trvalé úložiště funkcí, kde bude jakákoli funkce v něm vždy fungovat. Samozřejmě mohou být dostupné nové verze funkcí a očekáváme, že některé funkce budou časem samozřejmě zastaralé. Funkce budou fungovat, pokud jsou použity v programech, ale jejich stránky dokumentace budou odkazovat na nové, pokročilejší funkce.
Úložiště funkcí Wolfram je navrženo tak, aby vám pomohlo rychle objevit nové funkce a naučit se nové způsoby používání jazyka Wolfram. Jsme velmi optimističtí, že některé z toho, co bylo prozkoumáno v úložišti funkcí, bude mít nakonec smysl stát se zabudovanými součástmi základního jazyka Wolfram. V posledním desetiletí jsme měli podobnou sestavu
Nejdůležitější zde je, že funkce v úložišti funkcí je něco, co je nyní dostupné pro každého uživatele. Je možné, že funkce v rodném jazyce by mohla být mnohem lepší a výkonnější, ale úložiště funkcí by uživatelům umožnilo přístup ke všem novým funkcím okamžitě. A co je nejdůležitější, tento koncept umožňuje každému přidat jakékoli nové funkce, které chce.
Dříve v historii wolframského jazyka by tato myšlenka nefungovala tak dobře, jak fungovala, ale v této fázi je do jazyka vloženo tolik úsilí a tak hluboké porozumění principům jazykového designu, že se nyní zdá velmi pro velkou komunitu uživatelů je možné přidávat funkce, které udrží konzistenci návrhu, aby byly užitečné pro širokou škálu uživatelů.
V komunitě uživatelů Wolfram Language je neuvěřitelný duch talentu(?). (Tato komunita samozřejmě zahrnuje mnoho předních odborníků na výzkum a vývoj v různých oblastech.) Doufám, že úložiště funkcí Wolfram poskytne účinnou platformu pro odemykání a šíření tohoto ducha talentu. Jedině společně můžeme vytvořit něco, co výrazně rozšíří oblast, na kterou lze aplikovat paradigma jazykového počítání Wolfram.
Za více než 30 let jsme s jazykem Wolfram ušli dlouhou cestu. Nyní pojďme společně ještě dále. Důrazně doporučuji všem respektovaným uživatelům jazyka Wolfram po celém světě, aby k tomu používali funkční úložiště jako platformu, stejně jako nový softwarový projekt, jako je Free Wolfram Engine for Developers.
Zdroj: www.habr.com