<p>I personally wanted to learn go as an alternative tool to Python for both 'scripting'(i know its complied), And creating small quick web apps. I want to know how does golang (and any frameworks or libraries ) stack against tools like Ruby + Rails, Python + Django, JS + Node, etc for prototyping and RAD for the web? is it a viable option? </p>
<hr/>**评论:**<br/><br/>DyslexicAtehist: <pre><p>I always understood RAD as a process, so it should be agnostic to the language. You could do RAD in any language or not? I know of embedded sw teams who only develop C/ASM using agile (scrum) based processes.</p></pre>Streamweaver66: <pre><p>As it's already been pointed out this isn't a language question so much as an ecosystem question. I love working with Go but I don't find the current Go ecosystem as supportive of RAD web development as the other resources you mention. Django or Angular for me are FAR better at just getting something up and running. </p>
<p>While I love Go I think there's too much of a sturggle with what should be basic components of rapid web development in it as compared to other ecosystems. For instance just the sturggle with integrating GORM with Revel or the limitations of the ORM in BeeGo that you quickly hit if you try to do any kind of complext querying or structure reveals the general difficulties with it. </p>
<p>I do feel like this is a maturity issue and the problems in the ecosystem of Go are age appropriate and it's a fair argument to say that Go is pretty mature given how briefly it's been on the scene.</p>
<p>Anyway, that's my personal experience.</p></pre>Raiyni: <pre><p>I don't quite understand how you think Go isn't supportive of RAD. Go requires less to run than Django/Angular simply because you don't have dependencies on their scripting system. It even takes less time to write a server. You don't need these bloated packages to have a simplistic environment; in many cases those packages are excessively slow with network handling. </p></pre>Streamweaver66: <pre><p>RAD Web apps have an ecosystem that supports the rapid development of common web functions (usually crud). Sure, django and python have more to it but the ecosystem supports working with those very easily. Even .Net MVC has a better rapid development ecosystem. </p>
<p>This isn't a discussion about better and liking Go isn't enough. Being able to make an HTTP server in a few lines of code is neat but it has nothing to do with rapid app development for the web.</p>
<p>Lack of easy to use, integrated or mature Auth frameworks, ORMs, flexible templating systems are just some of the reasons why Go doesn't fit the mold for RAD Webapps. It's a new language, and the ecosystem in particular is still developing. So if someone wants to rapidly develop webapps along common development paradims there are much better solutions to that in place already than Go.</p>
<p>If someone loves go, has the bandwidth to put into figuring these things out and wants to save work down the line in other ways then Go could be a good fit. If you're wanting a simple ecosystem to throw up and develop webapps though, there is no credible argument I can see for recommending Go for that use case.</p></pre>Raiyni: <pre><p>The templating packages are pretty flexable. I'm still not understanding the problems you have with it because the only packages that are really missing are easy to use auth packages but other than that it is dead simple. If your argument is that you have to learn Go,you have to do that with any web framework that you want to eventually use for production. </p></pre>calebdoxsey: <pre><p>It probably depends on what you're doing. </p>
<p>A lot of web development these days has moved off of the server and onto the client. You end up with a static host, maybe some routing and some sort of API. Go does very well with the routing and static bits. Assuming you know a little HTTP, it's just as easy as, say, flask in python.</p>
<p>The API bits are a little trickier. If you already know the Rails or Django ORMs then the transition to go will be difficult. But if you're just doing plain SQL calls it will be pretty straightforward.</p>
<p>For more traditional web apps you will probably miss a lot of the features Rails provides. Generating models, migrations, controllers, views, etc...</p>
<p>Go is much easier to setup and run than Rails or Django. (rvm and virtualenv are not fun) Though node+npm is also pretty easy.</p>
<p>Now if you are building something experimental, that doesn't easily fit in the rails bucket, you will have a much easier time of it in Go. For example: an API that supports Web Sockets, or a real TCP service. These are trivial in Go and really hard to do right in ruby or python. Though, once again, node also makes this straightforward.</p>
<p>One advantage go has over all of them is that once you actually want to run your application on a server it's a whole lot easier than it would be with a scripting language. (no need for nginx, passenger, capistrano, bundle, rvm, and all their dependencies, you can just scp the binary and run it)</p></pre>
这是一个分享于 的资源,其中的信息可能已经有所发展或是发生改变。
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码`
- 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传