"The ORM we ended up using for e.g. our settlement service, Gorm, is not anywhere near the level of maturity of ActiveRecord, and to get its (valuable!) feature set you have to tolerate a) throwing out most of the benefits of using a type-safe language and b) programming bugs which can cause statements which certainly look like they should generate SQL queries to just silently not generate SQL queries. In general, working with the database has been so painful in Go that I have been instead either a) hitting a REST endpoint on an internal API to have Rails do the DB access then return formatted JSON (which Go can actually consume fairly decently) or b) throwing the data at NSQ."
[0] http://www.kalzumeus.com/2015/08/20/designing-and-building-s...
Go is still much newer than Python and Ruby. There's no getting around this fact.
Something like linq for example seems simply impossible to code in go.
Am I alone when I say that I still hand code SQL into my applications?
Regardless of what web framework I'm using (e.g. Pylons/Rails/Django/etc), I still hand code SQL statement in my applications.
I've had far to many times ORMs unexpectedly nuke performance and have other issues than what's it's worth gaining by using an ORM.
I do like sqlx, it seems to hit a balance that works for me. I get to write the SQL and structs come out.
I think the likelihood of seeing an ActiveRecord-style ORM in Go is slim: ActiveRecord is a core part of Rails and can therefore make a lot of safe assumptions about its environment. Any ORM for Go can't do that to the same extent, and big Rails-style frameworks don't gain much of a following in Go.
You know, I always feel ORM is a fix to SQL.
https://revel.github.io/manual/database.html
this is golang's Django i believe ?
We're currently using it in our own OAuth/OIDC identity provider.
And golang has the same good crypto tools as Java.
> https://godoc.org/golang.org/x/crypto/pbkdf2
> https://golang.org/pkg/crypto/subtle/
And finally a Token Library: https://github.com/dgrijalva/jwt-go or https://github.com/dvsekhvalnov/jose2go
And that's all you need to write a Authentication / Authorization Library in 100-200 lines of code. And it will mostly be more secure than most of the things you see in the open world.
<div class="greeting-container" data-lift="SayHello"><span class="greeting">lorem ipsum</span></div>
And a transformation: ".greeting *" #> "Hello World"
The output will be: <div class="greeting-container"><span class="greeting">Hello World</span></div>
See http://exploring.liftweb.net/master/index-5.html#entry-CSS-T... et aliaWith this technique, your designers can create pure HTML and assets, with no logic in the templates. Basically they create static mock-ups and then the developers "enliven" them.
I prefer this but I don't imagine it will ever become mainstream.
React's JSX is also (as far as I can tell) node based, but with a lot less power (you can really only do insert operations, and the operations don't really compose well).
'(p "hello" (strong "jamespo"))
Before you say "ahhh the parens!", there are special readers such as Racket's Pollen that provide a less Lispy, but still powerful, language for writing documents.For JavaScript, there's of course a bunch of options such as Mithril:
m("p", ["hello", m("strong", "jamespo")]);
I don't write Go so I don't know what the options are there. Just trying to raise awareness for safer programming.For much more in-depth information about the problem, see: http://www.more-magic.net/posts/structurally-fixing-injectio...