Fabio Akita writes about Ruby on Rails, Linux, developer tooling, and programming language trends.
HN links it for Rails tutorials and his Ruby server benchmarks, and commenters cite its older posts on Rails and programming opinions.
I think optimizing while designing is totally appropriate. In fact you can make some of the most powerful optimizations at the design stage, with almost no additional effort required.
Should you go down a rabbit hole, spending hours optimizing something because you think it might help? No, of course not. To my reading, that is what the warning is about.
But when you're designing a system, especially one that you know needs to be fast, should your design be optimized from the ground up? Yes, in some cases at least. [1]
When I code, I choose to use languages (C++, Go, LuaJIT, JavaScript/Node) that allow me to write code that ends up faster. Some people will cite "premature optimization" based solely on that decision, and they'll write their code in Python, or PHP, or Perl, or Ruby. [2] Since my servers will handle 3000 user interactions per second with no caching, I still contend that this is an appropriate stage for optimization.
I've seen projects fail because the server requirements were too high: 100 concurrent users per Python-based server on a free-to-play game meant that if the app took off, it would be losing money because of the costs of running hundreds of servers. You can't just "optimize" the app if the problem is you need to rewrite it in a completely different language. Computer time in the cloud may seem cheaper than programmer time, but in practice if you pay the programmers up front to do it right, you can cut ongoing operating costs indefinitely. And…
It doesn't really matter much to me if you watch the video or not. I did want to take the opportunity, however, to give you a taste of your own medicine after this incident: http://news.ycombinator.com/item?id=135296. ;)
All that aside, the whole point of the talk was that one can live very well off one's web application even if it's only moderately successful. I think the example he gave was 2,000 small business users at $40/month ~= $1,000,000/year in gross revenue. Or 400 users at the same rate if you don't mind only grossing $200,000 a year.
His argument was that you don't need to stress about investors, 12-hour days, and viral loops as long as you're willing to "settle" for a pleasant, financially viable, and capital efficient business with a niche of users who really appreciate your approach to solving their problems. That's the irony of making fun of an app in this thread for only having several hundred users.
You probably would enjoy the video; I certainly did.
(Incidentally, GitHub and Lighthouse didn't require massive capital investments [1] and I'm pretty sure that they're hosted "for free" on Engine Yard. Having a few hundred users would practically guarantee that they're cashflow positive.)
[1] http://www.akitaonrails.com/2008/4/21/chatting-with-chris-wanstrath-err-the-blog-github
Perl was popular because it had a huge head start. Perl 5 was released the same year as Python 1.0. CPAN launched in 1995, PyPI in 2003.
Python began to pick up momentum around 2000. It was able to break out of the "scripting" niche because it had good OO support and encouraged a consistent style that made it easy for several developers to work on a large project.
Rails probably marked the tipping point, but it wasn't just the framework. A lot of Perl programmers found out they liked Ruby. You're right that Perl 6 was part of the problem; it might be where Ruby is today if it had come out in 2003.
On the other hand, Ruby probably wouldn't exist if Perl 5 had a better object system.[1] It's "Ruby on Rails" because DHH fell in love with Ruby.[2] The creators of Django learned Perl before falling in love with Python.[3] So that has something to do with the languages too.
[1] http://www.linuxdevcenter.com/pub/a/linux/2001/11/29/ruby.html
[2] https://www.quora.com/Why-did-David-Heinemeier-Hansson-choose-Ruby-over-Python-to-build-Rails/answer/David-Heinemeier-Hansson
[3] http://www.akitaonrails.com/2008/01/01/chatting-with-adrian-holovaty
Hi @chriscappuccio,
Could you share an example of what you went wrong?
The Mattermost server has around 59% automated test coverage, our community does over 120 hours of manual testing prior to each monthly release, and we're constantly striving to improve.
Here's a recent review of Mattermost's quality levels, from someone who left Mattermost and then returned, concluding Mattermost was the leading solution: http://www.akitaonrails.com/2016/08/13/choosing-mattermost-over-rocket-chat-and-slack
If your experience is different, we're highly interested in knowing how we can improve.
I agree. Rails is currently the way to go. It's much more mature than Django and has more flexibility and more mature gems/plugins.
Lynda tutorials are great. I'd also recommend free ones:
http://railscasts.com/
http://www.akitaonrails.com/2008/2/1/rolling-with-rails-2-0-pdf-version
And for-pay ones at http://www.peepcode.com
Also, grab "The Rails Way" book by Obie Fernandez (it's THE BEST book on Rails.. when you learn the basics, it's better than 'Agile Web Development with Rails') and "The Ruby Way" by Hal Fulton.
AFAIK, it's the same as any other language w/ Ruby.
Http micro service, IPC, or FFI.
There were some attempts to do inline crystal, like what Mojo does in Python, but I don't know if any of them became stable long term solutions.
There's probably a way to get native C ext speed, you can see an old attempt here:
https://www.akitaonrails.com/2016/07/06/trying-to-match-c-based-fast-blank-with-crystal
But at any rate, it'll be better than ruby.