11 ms·
Reahl – A Python-only web framework
- Cyph0n 8y agoHow is this different from Vaadin (other than the language, of course)? https://vaadin.com/ https://vaadin.com/
- numbnuts 8y agoThat's a pretty big difference though.
- leesec 8y agoWould also like to know major differences to Anvil?
- danpalmer 8y agoAnvil is hosted, or an on-prem server, whereas it looks like this can be run anywhere. I’d guess that’s the major difference. Anvil also emphasises their dev tools, it’s quite an integrated environment, between IDE, data, and deployments.
- nickchuck 8y agoHaven't heard of this before. Seems cool!
- azhenley 8y agoVery cool project. Are there any major apps that use Reahl? I can't find any.
- EGreg 8y agoWhat's wrong with building them in Javascript :)
- nine_k 8y agoDoes APL here mean you can only use it ti build APL-licensed server code? Apparently it should be the case.
- giancarlostoro 8y agoAGPL means you have to share any code you write using this framework. It makes no sense to me why a library would be AGPL licensed, LGPL is what I expect libraries to be, of course I'm not sure how the LGPL applies to Python, but I'm usually all in for MIT License.
- saagarjha 8y ago> It makes no sense to me why a library would be AGPL licensed > AGPL means you have to share any code you write using this framework I think you've found the reason?
- giancarlostoro 8y agoBut you're using this code in any application you make, so you can't use it commercially.. AGPL isn't made with libraries in mind...
- saagarjha 8y ago> But you're using this code in any application you make, so you can't use it commercially. AGPL puts no restrictions on commercial usage, as far as I am aware. > AGPL isn't made with libraries in mind... It works perfectly well with libraries.
- EduardoBautista 8y agoI have always disliked the “GPL doesn’t prohibit commercial use” argument. You know well why it isn’t practical to use for commercial purposes. You basically make any project using it into an unlimited full featured free trial.
- mcny 8y ago> I have always disliked the “GPL doesn’t prohibit commercial use” argument. You know well why it isn’t practical to use for commercial purposes. You basically make any project using it into an unlimited full featured free trial. I don't get it. What would be so wrong about making your source code available to everyone (including your competitors)? Remember, if your source code is AGPL and someone uses it, their source code is also AGPL and they must make their changes available to their users. If you deliver real value to your customers, the fact that your source code is publicly available should be a plus point for your customers.
- mruniverse 8y ago"one language only" if you don't count the javascript, html and css.
- paulddraper 8y agoJust because C compiles to machine code doesn't mean that your pure-C code base isn't built in only one language.
- eganist 8y ago> "one language only" if you don't count the javascript, html and css. My hunch is that you strove for making the First Comment considering that the point of this project is exactly what you said it isn't. https://www.reahl.org/layout https://www.reahl.org/layout, for instance, talks about how styling works. Taking this further, here's a comment from one of the maintainers on the relevant Google Group: > Hello. > We want casual users of Reahl to be shielded from complexities such as client side scripting and CSS. > HOWEVER, if you are prepared to move to the next level of learning you can build your own Widgets. When you build your own Widget you can do anything you like - using techniques tutorial.pagerbootstraptutorial.pagerbootstrap that you would have used with a traditional framework. Hopefully this answers your question.
- mruniverse 8y agoThe post title is misleading.
- eganist 8y ago> The post title is misleading. I really don't think so. It might not be as mature as one might want in production, but from what I can tell, it certainly fulfills the title's assertion in enough useful contexts to be accurate.
- numbnuts 8y agoWhat do you think would be a better title? I read "web apps" I think html, css, and js. I wasn't expecting (nor would I want to) to ship Python to the browser.
- deleted 8y ago[deleted]
- antoncohen 8y agoBe careful. This is licensed under the AGPL, which basically makes it unusable. Or a commercial license can be purchased.
- kadoban 8y ago"Unusable" seems quite strong. It's usable for open source projects.
- heroprotagonist 8y agoSort of. It's only really usable for those who want to apply the same restrictions to their users/contributors.
- giancarlostoro 8y agoI'm surprised GitHub doesn't show this on the repository it just says "View License" but I guess they don't allow using AGPL when creating a repository.
- black-tea 8y agoI noticed they stopped displaying licences on all repos recently. Everything says "view licence" now. Why would they not allow AGPL? It's a perfectly valid free software licence.
- Yeaw 8y agoThey do support showing AGPL 3.0, but it has to be either in a LICENSE.txt or LICENSE.md. This project just has it in a file called LICENSE. https://help.github.com/articles/licensing-a-repository/ https://help.github.com/articles/licensing-a-repository/
- tuxxy 8y agoRespectfully, that's bullshit.
- stefano 8y agoHaving to pay to use software commercially makes it unusable?
- deleted 8y ago[deleted]
- bayesian_horse 8y agoAt first glance this looks like an interesting take at pulling a lot of the functionality back to the Python side of the web application. It's not a webassembly framework, and it doesn't seem to go the "thin client" approach of managing DOM changes and events over a two-way protocol.
- jaequery 8y agoI feel bad about projects like these, I really do. I'm sure a lot of effort have been put in and it probably satisfies what OP wants to do. But in the end, no one serious would ever consider using it.
- IanCal 8y agoCan you add some more here? Personally I'd probably not use this as I'm already using something with the same aim (dash), I certainly use a project like this for serious things.
- rococode 8y agoI think what OP means is that for someone whose goal is to start a successful business, using a more obscure and new framework is akin to shooting yourself in the foot. There's nothing significant enough that a framework like this provides that justifies 1) the difficulty finding people with appropriate experience, 2) relying on something that may become unmaintained, and 3) an immature ecosystem that means having to deal with tricky problems as you build more complex functionality because you're among the first people to need it. Of course, there's the "just looking to build something (serious or not) and not concerned about it becoming a profitable business" group of people - like you, perhaps - and that's great! But it generally takes a lot of enthusiasts before a library becomes accepted as mainstream and a certain amount of luck is required for that to happen.
- pmontra 8y agoObscure, yes because it's version 4.0.0 and it's around since 2006 and I never heard about it. New, no. From the few examples in the README I'd say that it makes development more complex than using the usual server side rendering approaches. I'm also not sure Python is the best language for this sort of things. Better than Java but usually Ruby is better at DSLs.
- macspoofing 8y ago>But in the end, no one serious would ever consider using it. Why not? I would say it is the other way around. For any web application project of decent size there is almost always a transpilation step that converts whatever programming language your source code is in, into JavaScript (usually ES5). We also had very successful and widely used projects like GWT for years (GWT was first released in 2006!!!).
- sandGorgon 8y agoQuite similar to Plotly Dash, but a worse license. https://plot.ly/products/dash/ https://plot.ly/products/dash/ Dash is awesome for early stage , production ready prototyping.
- ZeroCool2u 8y agoDash is awesome, frankly so is most of the work Plotly does. Chris, Dash's primary maintainer makes it better literally every day.
- hennsen 8y agoWith „worse“ you mean what exactly? Probably just „not fitting my personal needs and ideas“? That doesn’t make something generally worse... or can you tell me how it’s bad for me?
- gtirloni 8y agoCompanies are usually wary of AGPL. e.g.: https://opensource.google.com/docs/using/agpl-policy/ https://opensource.google.com/docs/using/agpl-policy/
- ForHackernews 8y agoCompanies trying to make money off somebody else's work are not the only consideration when choosing a license.
- hennsen 8y agoThat just means „not suited for everyones needs and taste“ - tge same goes for another license that a company chose. Others like it less.
- gtirloni 8y agoExactly. And that's what the comment you replied to said. For them, it was worse for their "needs and taste" but you wanted clarification. Now you're saying the clarification is obvious so I don't know what's your point.
- tiuPapa 8y agoSo how does this work? So is this like a templating where instead of writing a template file, you write an app using widgets and element functions that the framework provides and then stitch together an HTML page when requested and send to the browser?
- crobertsbmw 8y agoIt seems to me that html css and JavaScript are better suited for the job than Python, if you want to do anything complex at all. But I’m probably wrong.
- rossdavidh 8y agoSpeaking as a python developer who uses Javascript and CSS only when necessary, yes, you are correct. It's not the fact that it's JS/CSS that's annoying to me about such work, and nothing about it gets better if you use python instead. Not that it's not interesting of them to make this, but really, I had little if any temptation to try it out. Note that it doesn't necessarily mean I think JS/CSS is _better_ suited, but in any case not worse, and I think the leap from one problem domain to another is much more significant than the leap from one language to another.
- mhd 8y agoIt’s a bit like the 8 bit computer age: You can get by in a high level view, but the performance might not be enough or you’re missing out on some features where you need direct access. Given the immense speed of today’s computers, brute force might be enough, though.
- Walkman 8y agoYou took a declarative language (HTML) and mad it imperative (Python). Why is that a good thing?
- nudpiedo 8y agoI guess it is mostly the subjective comfortableness of python (and the capacity of throwing prototypes for a team who has only python skills). In my experience all these frameworks end up lacking at some point and becoming leaky abstractions sooner than later. I wish they would work because all the front end technologies require lots of training and skill in order to produce a production ready UI.
- sgtcodfish 8y agoI've been thinking about this sort of thing a lot recently in terms of our heavy use of Troposphere[1] which is a Python abstraction over AWS CloudFormation and how much better that abstraction is than just writing HTML (in the case of this library) or JSON/YAML (in the case of CloudFormation) directly. Ultimately, for me, it comes down to what makes sometimes complicated declarative code easier to reason about, read and understand - it's a simple as that. Some things are just _easier_ to write when you've got the power of a Turing-complete language with a decent standard library behind you; if for example you want to dump out a sorted list and then be able to easily update it later, or print a list of links alongside a hash of the contents of their targets. I guess if you're building a simple website, anything like this tool could be overkill and you'd risk spending more time setting things up - and maintaining it in the future - than you'd be likely to save by using the tool in the first place. But for more complicated output having more tools to use lets you be arguably more declarative; you just change the input data to generate the desired output. You describe and allow automation of the _transition_ from input data to the desired end point. I could definitely see how libraries like this would be tremendously useful for generating HTML. As it happens for our AWS infrastructure generation we enforce the use of Troposphere everywhere, because in that case the cost of setting up and maintaining it is essentially just copy-pasting an existing Makefile. [1] https://github.com/cloudtools/troposphere/ https://github.com/cloudtools/troposphere/
- 8y ago
- based2 8y agoOther component-oriented frameworks: http://tapestry.apache.org/component-reference.html http://tapestry.apache.org/component-reference.html Java https://github.com/jeluard/lucuma https://github.com/jeluard/lucuma Clojure https://github.com/greencatsoft/scales https://github.com/greencatsoft/scales Scala
- SahAssar 8y agoNeeding an ajax request to paginate a table seems like a big step backwards from modern web applications.
- danpalmer 8y agoAm I missing something? Pagination would surely require a request, unless you’re loading the full data set into the client up front, which would be a bad idea in many use cases?
- SahAssar 8y agoIn this case the request is always needed since the request returns html, not the actual data. In most frameworks (or even custom solutions) you can choose to either load the data up-front or fetch each page on-demand.
- deleted 8y ago[deleted]
- amai 8y agoIt seems conceptually similar to Google Web Toolkit. So probably it is also a nightmare to debug.
- elamje 8y agoWhat are big differences compared to Django and Flask?