4 ms·
First stable version of Scheme web framework Artanis released
- _sdegutis 9y agoExtremely cool. Can't wait to write something in this! Why is the configuration[1] done in an ad-hoc language instead of Guile? [1]: http://www.gnu.org/software/artanis/manual/manual.html#org9698308 http://www.gnu.org/software/artanis/manual/manual.html#org96...
- softwarelimits 9y agoThink Permissions. Authentication backends. For the world, as it is. Built it into the thing right form the beginning. Always. There is no future for mediocre frameworks that do not come with what is most hard to get right - knowing who to let in and what to allow them - that is the most important hackers work - to collect that knowledge in devoted collaboration is the noble generations teaching. The work that does not make the reasoning on locks and keys its cornerstone looks hollow, inchoate, empty. No need for just another lightweight paper castle, no matter how magic your language speaks - it needs to fill the needs of a warriors world, full of dark and evil souls, so better you draft with shelter always on your mind.
- i_feel_great 9y agoIf you didn't know already, "Artanis" is "Sinatra" backwards. It is similar to frameworks such as Ruby Sinatra, Python Flask and Java Spark. Also the main dev, "Nala Ginrut" is "Alan Turing" backwards, sorta.
- bitwize 9y agoI just noticed that. I thought they named it after the Protoss character from StarCraft.
- giancarlostoro 9y agoNostalgia kicks in and memories of playing StarCraft on Dial-Up return... I miss how simple the web was back then... AOL, MSN, not even Google was mainstream yet I don't think haha Also for those wondering: http://starcraft.wikia.com/wiki/Artanis http://starcraft.wikia.com/wiki/Artanis
- _sdegutis 9y agoThe AOL dream is sorta realized... AIM is now Facebook Messenger, AOL emphasized keyword search over addresses just like how people just Google everything... maybe that's all actually...
- andrewl 9y agoIt's also another name for Galadriel, the Lord of the Rings character.
- mcmillhj 9y agoI severely misread this and thought you meant that Alan Turing backwards was another name for Galadriel for ~5 minutes /sigh.
- Y_Y 9y ago"Sailing to /dev/null That is no future for mediocre coder. The hacker is one another's arm. Codes in the editors. Those dying generations - at their song." That's what the project page says. Anyone know what it means?
- tree_of_item 9y agoIt's barely even English, and not even clever. They actually took that Byzantium poem and ruined it with poor grammar. I pretty much dismissed this thing right after reading that. Of all the text they could have put on the page...
- srean 9y agoThat sounds like https://en.wikipedia.org/wiki/Sailing_to_Byzantium https://en.wikipedia.org/wiki/Sailing_to_Byzantium
- viperscape 9y ago"scheme web framework", except there are multiple scheme implementations and variants. I don't understand why the word scheme is even used, each scheme is basically a silo.
- sigzero 9y agoShe mentions in the "About" page that it is Guile. The release announcement says it as well.
- ZenoArrow 9y agoThere are variations but there are also commonalities. For example, if two implementations of Scheme are based on the same language spec (e.g. R6RS, etc...) they should be broadly compatible.
- giancarlostoro 9y agoAs ZenoArrow mentioned, it's like C or C++ compilers, they may be different and made by different teams but they support a specific set of rules, if your code follows those specific rules any compiler that implements the needed features should be able to run your code. Common Lisp is famous for this, and some Scheme languages as well. In theory this framework should be able to run in another Scheme. Even HackerNews which is it's own Lisp variant once ran on Racket (might still) but it's not impossible to be ported to another Lisp variant (sometimes with minimal or no overhead).
- eatonphil 9y agoUnless Artanis uses FFI calls (which are not part of any SRFI I recall) it is quite reasonable to implement an entire WAF using standard Scheme + SRFIs (for instance, there's an SRFI for socket IO). Build steps always differ but it isn't necessarily difficult to avoid using implementation-specific functionality. For a non-trivial example, check out the R7RS benchmark suite [0]. 10 of the 30 implementations there complete 95%+ of the benchmarks. (10 is a lot of options...) Racket is probably the most intentionally divergent from Scheme and it still manages to provide an R7RS front-end making it one of only 5 Schemes to finish 100% of the benchmarks (and be pretty fast). [0] https://github.com/ecraven/r7rs-benchmarks https://github.com/ecraven/r7rs-benchmarks
- mark_l_watson 9y agoI tried Artanis about a year ago - very cool, but I only played with it, never deployed anything. It is an impressive amount of work done by one person and the documentation is very adequate.
- i_feel_great 9y agoI should have another go at contributing to the documentation in my copious spare time. The lead dev seems like a really nice, enthusiastic guy.
- mark_l_watson 9y agoCool! Thanks for your efforts. I also enjoy the lead dev’s online persona.
- eatonphil 9y agoNice work. Having written a few WAFs for unpopular languages, I think it's most compelling to also include a more stable/mature backend like FastCGI in addition to the self-rolled socket driver -- similar to how Flask has the dev server and WSGI backend support. If your socket driver (and HTTP parser) ends up being more performant and stable, that's awesome. But it's probably unlikely and definitely a harder sell. FastCGI in particular has the benefit of being incredibly simple to wrap. Here [0] are some rudimentary bindings I wrote for Chicken Scheme. [0] https://github.com/eatonphil/pine https://github.com/eatonphil/pine
- JasonFruit 9y agoDefinitely second your recommendation on FastCGI: it's very straightforward, and it's simple for people to deploy.
- mhd 9y agoSCGI is even simpler, and often enough for low traffic purposes.