I started learning Ruby and Ruby on Rails in February, as a requirement of what would be my first job in industry (then COVID came and everyone got fired). I'm loving both so far, had previous experiences with Java/Spring and Python/Flask/Django, I like Ruby on Rails better. Convention over configuration. Mature and beautiful testing with RSpec. Beautiful Ruby syntax. Sane conventions. You can throw in Slim templating engine, which makes working with markup a delightful experience. Wonderful community, I could go on and on.
I hope that RoR stays strong amidst the current React/SPA framework/Node fad.
> I hope that RoR stays strong amidst the current React/SPA framework/Node fad.
Fortunately, rails has solid support for API only rails apps. Jbuilder is pretty great. In my experience, there’s still nothing in the node ecosystem that rivals ActiveRecord’s maturity.
I've left the jbuilder/rabl train a while ago for ActiveModelSerializers and more recently for Netflix's fast_jsonapi. I used to like the other more document-based approaches, but after awhile I got tired of having json rendering take longer than the SQL calls. Now I can get sub millisecond view rendering while still using ruby and rails.
Thanks for that updated link, I first saw it through the netflix repo but bundler on my project pulled from that more recent repo and I got the repos confused.
How is it "around the corner"? While having been enthusiastic about Hanami since Lotus times, I cannot help the feeling that it's more or less completely stalled at the moment. Sure, the non-functional alpha of Hanami 2.0 has been released some time ago, but nothing really happened since then (except from releasing hanami-api out of the blue). There is no timeline and Trello board seems to not be in line with state of PRs for Hanami 2.0.
I took the chance to chat to Luca Guidi at ParisRB 2020, where he did a talk about Hanami. Didn’t seem stalled to me, although I don’t expect 2.0 to be released « tomorrow ». This is not JS-land where frameworks pop up and die every day, which has a strange way of setting expectations...
Ok, that is good to know. However from my mere-user perspective it does not look so good. With Hanami 1.3 release it was announced that Hanami 1.x line won't get anything past bugfixes and security fixes, so it basically won't be developed. Instead, the work shifts to Hanami 2.0, which will include considerable number of completely breaking changes (such as different signature of actions call method). This goes on for almost 2 years now, with no clear timeline for 2.0 release. Is there a point in starting new project in Hanami 1.3 and having to completely rewrite it when 2.0 comes out? Probably not. Does it make sense to used very early-stage 2.0? Definitely not. So yeah, from my perspective the project is now in a problematic state.
A lot. For personal projects, I'm going with RoR (though I'll be giving a shot at Phoenix in the near future). Sometimes I also miss static type checking and many other things Java enforces, but I feel compensated when I don't have to compile/recompile when I change something small. JUnit is faster, but RSpec looks better (just have a look at it). About template engines, HTML/ERB is the default but you can use HAML, or even better, Slim. I don't think there's something similar to replace Thymeleaf with. About ORM, I have mixed feelings, Active Record feels too magic, but this magic enables you to easily integrate your models with the database and not worry much about it. Finally, securing Rails applications is pretty straightforward. Rails doesn't bring in by default something like Spring Security for authentication but the Devise gem is good enough in this regard. IMO, Bundler and Ruby Gems is better than Maven/Maven Central. Also, IMO, when comparing major dynamic and interpreted languages, Ruby has the best OO model, Python feels lacking in this regard.
In general, IMO, RoR is about going fast while producing a good product in the end, and having enjoyable experience in the process. RoR is great for prototyping, but its good enough for a final product too. Java/Spring is rock-solid and time tested, feels better suited for really big projects with really big teams, as Java strictness and verbosity begins to help instead of eating productivity.
For my average web development needs, RoR is better, at least for now.
I'd definitely encourage you to look into Phoenix.
For many things, Rails might still be the better option. The ecosystem is larger, for one, and it's perhaps a bit easier to 'grok' because it's OO. And I suppose an argument could be made that if you need help, it's easier to find Rails developers or resources (although Phoenix does suprisingly well in the latter category).
But if you're thinking of building projects that involve real-time functionality, whether just websockets-style stuff (Phoenix Channels), or full-on apps (Phoenix LiveView), I'd say the stuff that Phoenix offer are worth the downsides of a smaller, younger, functional-programming ecosystem.
Also it never hurts to learn something different :).
I'd say just try Rails but honestly it's a few months commitment to become productive, just like I can't jump into Spring and expect to appreciate it right away.
I'm talking about getting to the point where you're comfortable enough with the framework you actually know how to write good idiomatic code.
If you're coming from Django / PHP enough in there will be familiar you can become productive in 2 weeks. But you'll still be a noob to the framework and might make sub optimal choices.
Rails certainly has its strengths. If speed to knock out a working app was my #1 prereq, rails has better abstractions and drop-in libraries to get something off the groud fast. Its probably your best bet for knocking out a CRUD mvp.
I really really hoped DHH has some news on Hey.com and New Rails FrontEnd they said they were making. Unfortunately none of those were ready due to COVID.
Was also expecting at least one talk on StimulusReflex [1] as well. Turns out there aren't any. I thought it was one of the biggest thing for Rails in a long time.
I've recently spoken at two conferences that were converted from on-site to virtual, and my conclusion is that it's not worth it. Certainly as a speaker, it's pretty unpleasant talking for an hour into my webcam without any audience feedback.
But the bigger issue is that conferences are (for me, and I gather for a lot of people) mostly about the "hallway track," not the official talks. I get a lot more value for talking to people at lunch and after talks than I do from the presentations themselves. That's currently totally missing from the online conference platforms I've used, rendering the whole thing kind of pointless. I might as well just record my talk and put it on youtube; the conference itself it adding little value aside from curation.
I don't think there will be any onsite conferences for the next year, which is a shame. Hopefully they will return at some point.
This is not just an issue of virtual conferences but also online college classes. Explaining itself over a Zoom conference is sadly not the same experience you would get face to face.
Having been to 18 conferences in the last 6 years I cannot imagine how online conferences are worth it. Meaning worth it for both viewers and speakers.
This isn’t to diminish efforts to put on these events. However, it’s important to look at the motives behind conferences:
1.) boost your status as speaker - speaking at conferences can land you a new job, get you investment, etc.
2.) gaining insight that you otherwise couldn’t gain online as an attendee - hallway gatherings, random discussions, etc is why a lot of people go to conferences. The chance that you might catch that one expert in your field and pick their brain is high.
3.) acquire leads as an attending company - for conferences like re:Invent or Ignite you’re year is made by acquiring thousands of leads over the course of 4 days. I’ve seen companies spend $250k on a booth and close over $5m in sales just from one conference.
4.) build good will with the community as a sponsor - when people see you throwing money around sponsoring social events and after parties they tend to give you more attention. Companies do this ultimately to close more business.
Given those 4 motives, I don’t see how online conferences are a thing. Perhaps my definition of conference is too enterprise-y and narrow though.
In research point 2 is key. I’ve been a presenter at an international conference that was done online due to the crisis, and it has nothing to do on the level of interactions in comparison to an on-site event. For established scientists conferences can rightfully seen as work-vacation and expensive social gathering, but for a newcomer it’s incredibly useful to be able to put a face on name’s, have a chat with a famous researcher and establish links informally.
Having been both a conference speaker and attendee at times most of the value in conferences is the networking opportunities... which are close to non-existent with remote conferences. I think they're pretty pointless otherwise.
I think this still has value. Sure, the networking part of it is over. But you still have tens of thousands of people watching this. For a framework like Rails it's usually a nice yearly milestone to talk about the future of the framework, to shed light on some new ill understood features (e.g webpack) etc etc. Railsconf are always watched by more people at home than they are by people attending anyway, that's nothing new.
Since most commenters consider them pointless, I'd like to add another perspective: Personally, I won't travel half around the world (or just my own country) to attend a conference I prefer to follow on my own schedule and from the comfort of my home and therefore consider those streams very valuable.
That said, most conferences had this option before it became a necessity. So having the conference in real life while making it available for everyone remotely is obviously the best of both worlds, but declaring the latter remote-only conference worthless seems like an exaggeration to me and certainly doesn't refelct my point of view.
On a sidenote: You might enjoy Confreaks, which covers a whole range of those conferences: https://confreaks.tv/
Conferences are about networking not learning. We can learn as much, sooner and more comfortably from our desk by reading blog posts or watching videos. Networking is more powerful if you're a speaker, that's why I'm not going to any event anymore unless I speak there.
I guess that for speakers an online conference is as good as posting to the personal blog or uploading a new video. Furthermore it keeps the link with the conference community alive. So it's OK. For the public, no difference than going through the links in any weekly or monthly digest about that technology. For sponsors, which are an important part of the revenues of the conference organizers, I don't know.
It's a generic interview, some general ideas on software engineering and Rails maintenance. Probably a good watch if you enjoy DHH's views on software and work. Also some talk about his new email service, which I can't wait for, because no one I've met who has used Basecamp thinks Basecamp a good or well designed product. It's baffling to me DHH keeps upholding Basecamp as a "majestic monolith"
Not sure I follow, do you think Basecamp is a bad product or is it a badly engineered product according to you? It's getting pretty good reviews as far as I can see, and it's not like Basecamp are pouring millions into marketing.
It's a bad product according to me and everyone I have worked with professionally who has used it. Sample size of maybe 15 opinions.
I suspect it's badly engineered because of how horrific the mobile experience is, since they use Rails for everything instead of going API first and building native mobile. But I don't think the engineering matters quite as much because it's such a small product with a small surface area. I just wish a small, bad product wasn't touted as the "majestic monolith," because we have nothing to learn from it.
Sounds like the product wasn't right for your use case. Basecamp is a small product, but it's very well designed for its main use case (smallish agency-type company doing simple task based work, requiring relatively little project management). As mentioned above, the product gets pretty good reviews in general.
I hope that RoR stays strong amidst the current React/SPA framework/Node fad.