6 ms·
All the functions are numbered and call each other. substring_exists(haystack, needle) is implemented as function Z10070( Z10070K1, Z10070K2 ) { retur
by pantalaimon 3y ago
All the functions are numbered and call each other. substring_exists(haystack, needle) is implemented as
function Z10070( Z10070K1, Z10070K2 ) {
return Z10070K1.includes(Z10070K2);
}
This is atrocious! Might as well come straight out of a decompiler.
- starkparker 3y agoAnd an explicit goal of the project: https://meta.wikimedia.org/wiki/Abstract_Wikipedia/Google.org_Fellows_evaluation_-_Answer https://meta.wikimedia.org/wiki/Abstract_Wikipedia/Google.or... > In particular, according to Keet, Grammatical Framework notably lacks the flexibility to handle certain aspects of Niger-Congo B languages’ morphology. The traditional answer to this kind of critique would be to say, “Let’s just organize an effort to work on Grammatical Framework.” The design philosophy behind Abstract Wikipedia is to make as few assumptions about a contributor’s facility with English and programming experience as possible. Organized efforts around Grammatical Framework (or otherwise) are not a bad idea at all. They may well solve some problems for some languages. However, the contributor pools for under-resourced languages are already small. Demanding expertise with specific natural languages like English and also specific programming paradigms contracts those pools still further. and > A solution designed by a small group of Westerners is likely to produce a system that replicates the trends of an imperialist English-focused Western-thinking industry. Existing tools tell a one-voice story; they are built by the same people (in a socio-cultural sense) and produce the same outcome, which is crafted to the needs of their creators (or by the limits of their understanding). Tools are then used to build tools, which will be again used to build more tools; step by step, every level of architectural decision-making limits more and more the space that can be benefitted by these efforts. and > The evaluation acknowledges little to no value to the effort that Wikifunctions is investing in being multilingual in terms of natural languages, even for implementations. It is unclear as to how a solution that is built on top of (the existing Lua-based Scribunto scripting system) would succeed in being multilingual, and not just be an English project which the other languages may be invited to use, if they understand it, but would be mostly blocked from contributing to.
- jsmith45 3y agoThe plan seems to actually be auto replace the Z values in the editor views with human readable values, which will automatically use the contributors preferred language. This of course only works if all functions, and all parameters, etc have had labels submitted for your language. They indicate wanting to cater to cultures that might not use a base 10 representation of numbers, so would presumably autotranforms numeric literals for people from those cultures. They are worried about programming languages being englished based, but seem to think that similar autotranslating of keywords is a good enough approach, so that is why they NEED to support multiple languages, so that they might hypothetically support some language that supports base 60 math and keywords based on [insert language here]. Plenty of room for abuse here, as it would be really easy to edit functions being used for text generation of less popular languages to output offensive text, for things not tested by the test cases. And nobody except people who know that language will be able to tell for sure that this is not a legit contribution. Then of course people will by trying to code sandbox and then container breaks, cryptominers, etc. I expect a giant game of whack-a-mole between the project and the admins. On that note even ignoring the abuse, or people trying to utilize the service for free compute resources, I can see the costs of this service becoming substantial really quick. Just from things like legitimate contributions of test cases, and new language implementations, and running the test cases again all the different implementations.
- riffraff 3y ago> And nobody except people who know that language will be able to tell for sure that this is not a legit contribution This is already the case with wikipedia, there was the recent story that most of the Scots wikipedia was written by someone who does not know the language, in the style of "English, as she is written".
- pantalaimon 3y agoAh so pretty much how Excel has localized function names
- account42 3y ago
- zozbot234 3y agoI assume it's intentional, so that source code can be stored in a form that's independent of natural language. They can just call to a LSP backend for the implementation language to rename identifiers in the source code before showing them to the user, much like Wikidata does today with its semantic content.
- Nthringas 3y agoso we will need to learn to read gzip (and other compressed binary formats) as if they were not compressed this is also related to how 2 hour long movies will diminish into a niche... and movies of the future will be more like [0] this observation is on the same trend as operas; which way back would last all evening (over 3 hours was typical) [0] https://www.youtube.com/watch?v=6Asx_XhPH80 https://www.youtube.com/watch?v=6Asx_XhPH80
- finnjohnsen2 3y ago> so we will need to learn to read gzip this rant gave me a proper laught. thank you.
- account42 3y agoYou get used to it. I…I don’t even see the huffman code. All I see is blonde, brunette, red-head.
- zorgmonkey 3y agoI think you're about the goal, but in practice it looks more line they are making code that is readable in 0 languages instead of at least 1 language. It looks like in practice people are unsurprisingly coming up with workarounds for this by adding some boilerplate code, these are the first two lines from the python example above (also all the local variables in the function are in English too): def Z10591(Z10591K1, Z10591K2): word, is_ra_plural = Z10591K1, Z10591K2
- deleted 3y ago[deleted]
- 3y ago
- jw1224 3y agoThis is brilliant! It serves as a single source of truth, builds on first principles, and acts like a universal test case. Just as each Wikipedia article is about one "thing", each Wikifunction performs one job. Once you know a Wikifunction works reliably, you know every other Wikifunction which depends on it can theoretically trust its output. This project seems really exciting, especially in the context of AI. Very cool and I hope to see it flourish.
- zozbot234 3y agoYes the whole goal with this is to extend the general notion of FaaS (Functions as a Service) into something that can work seamlessly, both within their own projects and across the Web. Similar to what Wikidata is already doing for common real-world entities and concepts. Of course, the devil is in the details with these kinds of things; it's likely that implementations of even the most basic functions will behave in subtly different ways across languages. Their testing framework is supposed to mitigate this but it looks quite ad-hoc.
- adamdegas 3y ago> it's likely that implementations of even the most basic functions will behave in subtly different ways across languages Stares at C/C++
- culi 3y agoAnd what happens when they try to implement a language that doesn't allow function names like these? Or has multiple possible syntaxes for a function? Or differentiates between methods, lambdas, procs, etc? Or straight up doesn't have functions but is still very capable of solving the problem?
- deleted 3y ago[deleted]
- trenchgun 3y agoThey are unique hashes, similar to Unison language. Interesting.