5 ms·
The lambdaway project, a small and coherent language dedicated to the web
- nilved 10y agoIs that fucking papyrus
- martyalain 10y agoAnd I guess that it removes any interest in this work!
- tantalor 10y agoNo, my interest was removed when I saw s-expressions.
- martyalain 10y agoReminds me of John McCarthy's lament at the W3C's choice of SGML as the basis for HTML: "An environment where the markup, styling and scripting is all s-expression based would be nice." »
- drostie 10y agoI'm pretty sure that was intentional. Choices like that can sometimes keep a certain sort of person out of a budding community, and even though they are a localized pocket of worldsuck, may decrease worldsuck globally.
- martyalain 10y agoYes it was! The font "papyrus" is only used in this page. Because Ava Gardner loved it :)
- brudgers 10y agoThe {lambda way} project is a workshop built as a thin overlay on top of any modern web browser, and devoted to writing, composing and coding on the web, where the markup, styling and scripting are unified in a single language, {lambda talk}. Github: https://github.com/amarty66/lambdaway https://github.com/amarty66/lambdaway Home: http://epsilonwiki.free.fr/lambdaway/ http://epsilonwiki.free.fr/lambdaway/
- martyalain 10y agoThanks :)
- abecedarius 10y agoSounds like a similar idea to https://en.wikipedia.org/wiki/Curl_(programming_language) https://en.wikipedia.org/wiki/Curl_(programming_language) -- can you compare them?
- martyalain 10y agoYes here : http://epsilonwiki.free.fr/lambdaway/?view=curl http://epsilonwiki.free.fr/lambdaway/?view=curl
- nickpsecurity 10y agoThey take a similar amount of code to do stuff but Curl is easier to read.
- martyalain 10y agoIt's a respectable point of view. Mine is that lambdatalk follows closely the HTML/CSS/Lisp syntaxes and allows to share the creation of rich and interactive documents between authors, web designers and coders. And also, don't forget that to use Curl products or execute Curl applications over the internet, it’s necessary to acquire and agree to a Curl license. The lambdaway project is free and easy to install, http://epsilonwiki.free.fr/lambdaway/?view=download http://epsilonwiki.free.fr/lambdaway/?view=download.
- nickpsecurity 10y ago"And also, don't forget that to use Curl products or execute Curl applications over the internet, it’s necessary to acquire and agree to a Curl license." I haven't forgotten. I was excited to see a full-stack solution get invented that about anyone could use. Then they wanted to lock it up commercially. That killed all hope of it spreading. (sighs) These days I'm more into pushing Opa given it brings ML-style robustness to the full-stack concept. Was good to see your project, though, as I'm all for experimentation in this space. :) http://opalang.org/ http://opalang.org/
- junke 10y agoWhat did you do to the parentheses? they are all curly. I find the explanation at [0] a little more detailed and informative (8th European Lisp Symposium 2015). Worth checking out if you are interested. [0] http://epsilonwiki.free.fr/alphawiki_2/?view=lambdatalk_slides_5 http://epsilonwiki.free.fr/alphawiki_2/?view=lambdatalk_slid...
- martyalain 10y agoIt's not so easy to introduce a language! I thank you for giving the link to this more complete presentation, but some people could prefer a more progressive approach. You can follow it from the start page http://epsilonwiki.free.fr/lambdaway/ http://epsilonwiki.free.fr/lambdaway/ : quick, overview, lambdatalk_1, lambdatalk_2, etc.. I would be happy to get your opinion back.
- junke 10y agoThe first thing which comes to my mind is how the Javascript interpreter works, using a regex to replace the deepest s-expressions by their evaluations (both scary and brilliant)[0] I found the console[1] and started using it. I was trying to expand a list of things into LI elements; at some point I wrote this: {def lis| {lambda {:x} {li :x}}} The bar represents the cursor just before I hit backspace. After I hit backspace, I entered an infinite recursive evaluation which eventually stopped with stack overflow. Maybe evaluating the code after each keypress is not ideal. Or maybe you could add a timeout, a custom depth limit or something else ;-) Also, being accustomized to syntax coloring, completion, indentation, warnings, etc., I find the environment particularly dry, especially when you consider your target audience. On the one hand, beginners who want to learn will be able to explore and find their way through trial and errors anyway, but on the other hand, a little bit of feedback can help when they are blocked. For example, when forms are badly formed the output is "ooops": this is better than nothing, obviously, but still a little terse. I looked at the teaching[2] section and this is a good introduction, and I am not telling you to be more like Scratch either, but there might some way to bring a little bit more interactive help. Overall, this is a nice project and it brings a lot of different things together (maths, svg, javascript). I could be useful as a richer Markdown and I find it more readable than the typical Wiki syntax. [0] http://epsilonwiki.free.fr/alphawiki_2/meca/JS.js http://epsilonwiki.free.fr/alphawiki_2/meca/JS.js [1] http://epsilonwiki.free.fr/lambdaway/meca/ http://epsilonwiki.free.fr/lambdaway/meca/ [2] http://epsilonwiki.free.fr/lambdaway/?view=teaching http://epsilonwiki.free.fr/lambdaway/?view=teaching
- danso 10y agoNot a huge fan of a language/framework in which the first demonstration purportedly shows how to summon up a photo of a movie starlet in a single word. Not just the implied objectification (which is its own debate, but not worth getting into here), but the dishonesty in implying that the language contributes one meaningful iota in the conjuration of that image. Reminds me of those unsolicited redesigns of Facebook in which the design looks so beautiful, but only because the photos (and the people in them) are beautiful. Doesn't mean that the design is at all practical or functional.
- martyalain 10y agoOk, I was not able to share what I believed to be seen as a joke. Sorry :( Maybe you would prefer this more serious introduction : http://epsilonwiki.free.fr/lambdaway/?view=calc2talk http://epsilonwiki.free.fr/lambdaway/?view=calc2talk
- danso 10y agoWas it meant to be a joke? My problem is that it's just plain misleading. This is the first line after the boilerplate introduction: > It begins with simple things, for instance you could simply write {ava} > and get a picture of the gorgious Ava Gardner It made me think that this was some kind of framework with a feature akin to invoking `/giphy [some word]` in Slack. Only after scrolling all the way down do we find that it's just basically a variable that holds the same amount of code it would take to show that image through HTML and CSS, without any information on why it would be beneficial to follow a practice of writing inline styles (as opposed to the standard practice of using CSS selectors and external sheets).
- martyalain 10y ago« a practice of writing inline styles (as opposed to the standard practice of using CSS selectors and external sheets) » The constant "ava" can be stored in another page of the wiki, a library which can be called via a {require mylibrary}. Please be nice enough to believe that I'm aware of the standard practice... This "quick" introduction can't explain everything. Neither CSS standard practices, nor first class functions, currying, tail-recursion, macros, and so on. Please take time to go further in this work before saying « it's just plain misleading ». Thank you.
- JadeNB 10y agoI can't seem to find any language guide or specification, so it's not clear to me whether names (other than those made canonical already by HTML and Lisp) are meant to be in English or French. If the former, then 'serie' should be 'series' (or 'range' or otherwise). EDIT: For example, the image http://epsilonwiki.free.fr/alphawiki_2/data/lambdatalk_splash.jpg http://epsilonwiki.free.fr/alphawiki_2/data/lambdatalk_splas... from the talk linked at https://news.ycombinator.com/item?id=12306246 https://news.ycombinator.com/item?id=12306246 appears to have both 'title' and 'titre'.
- martyalain 10y ago- title="Mustangs at Las Colinas" is a standard HTML attribute of the img markup. - in the expression {{titre}lambda-talk}, titre (which is title in french, sorry) is the name of a constant defined further in the page or in an external page acting as a library.
- JadeNB 10y agoSure, I understand that 'titre' is 'title' in French—and there's no need to apologise for that! My question was rather whether the keywords (or built-in functions, or whatever one would call things like 'tr' that the user is not meant to define him- or herself) in the language are meant to be in English or French. If the former, and if 'serie' is a keyword rather than a function—again, I couldn't find a language reference or specification—then it should probably be 'series'.
- martyalain 10y agoThe first reference for lambdatalk was here : http://epsilonwiki.free.fr/alphawiki_2/?view=syntax_reference http://epsilonwiki.free.fr/alphawiki_2/?view=syntax_referenc... A new one is under construction here : http://epsilonwiki.free.fr/lambdaway/?view=lambdaway http://epsilonwiki.free.fr/lambdaway/?view=lambdaway, but it's in french until now. Sorry. The function "serie" comes with "map" and "reduce". You could have a look to an application of "serie" in http://epsilonwiki.free.fr/lambdaway/?view=euler http://epsilonwiki.free.fr/lambdaway/?view=euler And OK, I should have named it "series" or "range". I promise I will replace "serie" by "range" to be coherent with my choice of english names for builtin keywords and functions. Nobody's perfect.
- qwertyuiop924 10y agoThis is cool, but I wish for a more schemey language. Like if the serverside was written in Chicken, using CSS and HTML-like code inside that, and the clientside was written in Spock. Unfortunately, Spock doesn't seem to be ready for prime time. It works, but it can stress your JS implementation in odd ways.
- martyalain 10y agoMy host internet provider is www.free.fr, it doesn't cost anything (except the basic access to internet) and it runs nothing but PHP and mySQL. No way to install Chicken or any other language like Scheme, Python. Have a look to http://epsilonwiki.free.fr/lambdaway/?view=download http://epsilonwiki.free.fr/lambdaway/?view=download and see how installing lambdatank+lambdatalk is straightforward.
- qwertyuiop924 10y agoWell, that's a problem that I can't help with.
- voaie 10y agoThis is the second time I see this project, and I've already seen some other similar projects, but readability is still a problem. Anyway, the source code is tiny and educational. :)