Live data from Hacker News

WebSharper: Make web apps in F#

websharper.com

71–80 of 86 posts

Re: WebSharper: Make web apps in F#

#71
post #68

Earlier quoted context omitted.

If you already have a project - you have a copy of the code under the old license. Is it really that different from a company changing from a bsd license to closed source? You'll have to negotiate or fork in either case. I do get that there might be a question as to how you could get additional developers under the old license...

BSD license allows closed source derivative work.

In your example, the company changes the license. So you already have code under one license -- either proprietary if you've bought a license -- or under BSD. When the company owning the project decides to re-license -- you still have code under the old license. Either commercial or BSD. Right?

Re: WebSharper: Make web apps in F#

#72

I've been using WebSharper in production for 20 months now and I wouldn't consider doing web development any other way. People have mentionned that such abstraction generally become more trouble then they are worth but I completely disagree. In particular the question would be what are the corner cases that will make the abstraction more difficult to use and ruin your overall productivity and I haven't found anything…

Thanks for taking the time to write up such a detailed comment. I was working on one of my own as I have had nothing but a great experience with Websharper and was disappointed to see the tool be somewhat dismissed by (to me) unfounded and unproven technical and license concerns.

I'm using the tool to develop the web front end for a MVP idea. Combined with Xamarin it means I can use F# across my entire application stack. This means reusing the same types, domain models, and so on. Plus you get all the goodies of Async, computation expressions and strong typing on the web client.

I went straight to the new UI.Next reactive framework and have been loving the experience to build a SPA. Imagine Om/React but strongly typed with monadic combinators to compose reactive views.

I guess this is a long way of saying 'second' :)

Re: WebSharper: Make web apps in F#

#73
post #61

I've been using WebSharper in production for 20 months now and I wouldn't consider doing web development any other way. People have mentionned that such abstraction generally become more trouble then they are worth but I completely disagree. In particular the question would be what are the corner cases that will make the abstraction more difficult to use and ruin your overall productivity and I haven't found anything…

But...the licensing...

If your project is open source, the license is free. If you are in a serious commercial endeavor, it is insignificant.

Re: WebSharper: Make web apps in F#

#74
post #59

I've been using WebSharper in production for 20 months now and I wouldn't consider doing web development any other way. People have mentionned that such abstraction generally become more trouble then they are worth but I completely disagree. In particular the question would be what are the corner cases that will make the abstraction more difficult to use and ruin your overall productivity and I haven't found anything…

How leaky is the abstraction? Can you effectively use this with very little prior knowledge of front-end web development? And what is the state of F# on Linux these days?

As all abstractions are leaky I have to concede that it has to be, but considering the size of the abstraction it's actually surprising how little gets in the way of getting things done (short of getting the hand of it for which the learning curve is far within that of WPF must have been for some people).

As far as as doing away with Web Development skill I would say no. As opposed to what ASP.NET used to do WebSharper doesn't try reinvent Web Development so one can "leverage" their existing Web Development skillset as opposed to have it superseded with something else.

On the other hand, being that I myself am a pretty bad web developer (despite of it being my official title), having static typing on a set of library that maps to HTML can really help (IntelliSense and simply preventing you from compiling something that wouldn't work). The other abstractions are just on top of everything else yet uses functions with the names you may be familiar with to produce markup.

Plus, I find that having functions as opposed to open and closing tags with the XML syntax is better on the eyes:

  Div [
    Span [Text "Hello"]
    Input [Type "Submit"]
  ]
as opposed to:

  
    Hello
    
  
Another aspect is how easy it is to refactor blocks of markup away into function calls and use all existing F# functions over collections to programmatically produce content:

  [
    "David", "Grenier"
    "Anton", "T."
    "Loic, "D."
  ]
  |> List.map (fun (firstName, lastName) ->
     let lbl text = Label [Text text]
     LI [lbl firstName; lbl lastName]
  )
  |> UL
If you have a little imagination, you can see this can go a long way.

Re: WebSharper: Make web apps in F#

#75
post #71

Earlier quoted context omitted.

BSD license allows closed source derivative work.

In your example, the company changes the license. So you already have code under one license -- either proprietary if you've bought a license -- or under BSD. When the company owning the project decides to re-license -- you still have code under the old license. Either commercial or BSD. Right?

If it's a BSD license everything is great. If it's AGPL, which is the case for the company which we are discussing, I can't do anything without disclosing source code.

Re: WebSharper: Make web apps in F#

#76
post #43

Earlier quoted context omitted.

AFAIK, even for the open-source license - you only have to provide source code to your client - i.e. when distributing... If you're using this framework for your personal project - you're free to not to release source code - since you're not distributing the binaries of your project either.

>If you're using this framework for your personal project - you're free to not to release source code - since you're not distributing the binaries of your project either. In this case you can't even publish the code, since compiled js is kind of binary.

Can't you treat the part you're "distributing" - i.e. the client side html/css/js - as a separate part and open source only this?

But not sure if this kind of thing is really distribution. GPL* licenses were more oriented towards traditional compiled software and it is somewhat unclear with regard to nowadays prevalent web apps.

Re: WebSharper: Make web apps in F#

#77

Earlier quoted context omitted.

If you don't like the license, don't use the framework. It's that simple. Charging for commercial licenses for libraries is a perfectly valid business strategy, and I can see lots of F# developers paying for this.

>If you don't like the license, don't use the framework That was the point, remember? Because of the terrible license, very few people will use it. So it will stay tiny and/or die out. >and I can see lots of F# developers paying for this. That's a non-sequitur. I pay for lots of free software. The problem is not cost, it is freedom.

>That's a non-sequitur. I pay for lots of free software. The problem is not cost, it is freedom.

Exactly, it is really not about some kind of one shot payment. It is about freedom, future-proofing.

Re: WebSharper: Make web apps in F#

#78
post #61

Earlier quoted context omitted.

But...the licensing...

If your project is open source, the license is free. If you are in a serious commercial endeavor, it is insignificant.

>If you are in a serious commercial endeavor, it is insignificant Indeed,... this reminds me of trying to convince management to buy large monitors. We look for tools that substantially improve our development productivity. It it can do that, the cost is quite literally insignificant.

Re: WebSharper: Make web apps in F#

#79
post #71

Earlier quoted context omitted.

In your example, the company changes the license. So you already have code under one license -- either proprietary if you've bought a license -- or under BSD. When the company owning the project decides to re-license -- you still have code under the old license. Either commercial or BSD. Right?

If it's a BSD license everything is great. If it's AGPL, which is the case for the company which we are discussing, I can't do anything without disclosing source code.

We're discussing how to do a commercial project. If you want to do a commercial project in this case, that means buying a commercial license. If it's BSD, you can also do a commercial project. If the company changes it license from commercial (to some more expensive commercial license?) -- you still have a copy of the code under the previous commercial license. If the company changes the license from BSD to a commercial license (or the AGPL or whatever) -- you still have a copy of the code under the BSD license.

If you choose to not buy a commercial license, your commercial project in this case will have to be under the AGPL, and you can sell your products, but you also have to promise your users that you will provide a copy of the source on request. I think we both understand the demands of the AGPL, and it's not readily compatible with a closed source model. But you took the example of "what if the company changes the license" -- and if you were already doing a closed source project, that would mean you were not dealing with the AGPL, but the commercial license. So again, I ask, how would the BSD protect you from that risk? Upstream is still free to change the license of future releases...?

Re: WebSharper: Make web apps in F#

#80

Earlier quoted context omitted.

If you don't like the license, don't use the framework. It's that simple. Charging for commercial licenses for libraries is a perfectly valid business strategy, and I can see lots of F# developers paying for this.

>If you don't like the license, don't use the framework That was the point, remember? Because of the terrible license, very few people will use it. So it will stay tiny and/or die out. >and I can see lots of F# developers paying for this. That's a non-sequitur. I pay for lots of free software. The problem is not cost, it is freedom.

You have the freedom to do anything you want from the result of using this framework.

I also have the freedom to do so with what you make, if I am a user of it.

Why are you so dead set on taking away my freedom. Adding restrictions on what I can do with the work you created from that framework is kind of rude when the developers is asking you to share, and share alike.

Post reply on HN