Earlier quoted context omitted.
> That expressiveness can often come at the expense of accessibility/readability, and IMHO that's the case with Scala. I don't think there's inherently a tradeoff. E.g. in Python you have to write "(lambda x: x + 1)" where in Scala you can write "(_ + 1)"; I think the latter is both more expressive and more readable, because naming "x" isn't adding any clarity for the reader, it's just ceremony that you have to skip…
> E.g. in Python you have to write "(lambda x: x + 1)" where in Scala you can write "(_ + 1)"; Can you give the lambda variable a name in Scala? In Python you can write "lambda city_name: add_state_suffix(city_name)"
After reading “Rails is yesterday’s software”, I need to reply
211–219 of 219 posts
Re: After reading “Rails is yesterday’s software”, I need to reply
#212I've got my problems with Rails: routing is overly complicated, the asset pipeline can be tricky, and so on. But Rails is very good at producing HTML and, in particular, partial chunks of HTML. As the current thick-clients-in-javascript trend cools off (it's happening, this was at the top of /r/webdev yesterday: https://www.reddit.com/r/webdev/comments/4iphv4/12_year_of_p... ) people are going to migrate back to HTML…
The assets pipeline can be tricky, sure, but it's tackling an issue that is really hard to get right. Routing in Rails on the other hand, I don't really see what's so complicated about it. You define resources, you have namespaces, constraints, the DSL is extremely nice and straightforward, I think it's actually one of the huge successes of Rails as a framework.
My problem with routing is that the default is an implicit semi-REST pattern, and that routing a lot of verbs to the same controller method is tedious. I prefer Sinatra's "ground up" model instead, although you can certainly write a rails router that way (and sinatra has the same verb problem.)
But I concede that's a matter of taste.
Re: After reading “Rails is yesterday’s software”, I need to reply
#213Earlier quoted context omitted.
It's all about how you prioritize the problems you need to solve. At my current job we primarily use Wordpress. Why Wordpress? Because we have a large and non-technical content team, 260+ websites and several tens of thousands of pages of content that need to go up quickly. We're just 4 developers - about 1 for every 8 content & marketing people we have. We spend very little of our time on frontend. Tell me that you'…
Comparing Rails and Wordpress seems like apples and oranges to me. Rails is a framework that lets you build anything web-app-ish, while Wordpress has its well defined, rather limited use cases. If it works for you, great, but the scenarios are different.
I'm making a point that Wordpress is also "yesterday's software" and there's nothing wrong with making that choice.
Re: After reading “Rails is yesterday’s software”, I need to reply
#214Earlier quoted context omitted.
My "enforcing TDD" point was rather tongue in cheek. Really, I was just saying that a rails app of even moderate complexity with no tests is a very dangerous beast, and something I would not wish upon my worst enemies.
You can remove the word "rails" from that, and it's still 100% true.
(sorry, couldn't help the futurama/zap branigan reference once I start mixing metaphors).
Re: After reading “Rails is yesterday’s software”, I need to reply
#215In the original article, he indicates Swift, Rust, and Go are tomorrow's languages. The issue really is that the level of support in the various frameworks, the eons of bug-crushing and feature additions, and the libraries available, are going to be behind for some time. This is why I'd still gladly pick Django today. What is "the future" isn't really so interesting as what is productive. Yes, performance matters a b…
In my experience as a professional Python dev and a hobbyist Gopher, Go's libraries are a lot less convoluted than Python libraries. In Python, you see a lot of libs that try to do everything for everyone (think long args lists and functions that try to guess the right thing to do based on arg types) whereas Go libraries just kind of snap together neatly. Go tends to be more productive for me than Python specifically…
Go has specialized a bit towards low-level operations, and I tend to strongly dislike what it does with exceptions and the way those involved veto language features.
As for libraries, I'm talking about things on the level of, say, Django or ORMs.
Re: After reading “Rails is yesterday’s software”, I need to reply
#216Moving on from Rails sounds great until you try to build a serious web app with one of the alternatives. While I think that many of the architectural criticisms are valid, Rails demonstrates the primacy of ecosystem and strong conventions over language design and cs theory. 'Tomorrow's' languages and frameworks would do well to take heed. Winning this war has as much to do with culture and marketing as algorithms and…
I think this is a strong point. If rails is yesterday's technology, then what is today's? To be clear, by no means am I trying to claim that Rails is the clear winner over other technology choices, or that a good answer to this question needs to be one single, unambiguous answer. I've learned a lot about other possibilities. Node of course, but it's still relatively new, and you need to prefer (or at least be ok with…
It definitely felt like a step back from Rails, but that's partly because Node wasn't meant just to be a web framework.
I've gotten pretty comfortable with it, but I feel like the original decision to use it (which predates my joining the company) was primarily driven by how shiny and cool it is. The vast majority of what we do is standard CRUD stuff.
On a personal level I've enjoyed learning it, and from a career perspective it's nice to have it on my CV, but had I been on board when the original decision was made I would definitely have chosen Rails.
(Plus they also chose to use MySQL for no good reason. We've managed with it just fine, but in literally the last three weeks we ran into some limitations that would not be a problem in Postgres. The CEO, not being technical, doesn't quite understand why changing the database midstream is not something you do without really compelling reasons.)
Re: After reading “Rails is yesterday’s software”, I need to reply
#217Earlier quoted context omitted.
In my experience as a professional Python dev and a hobbyist Gopher, Go's libraries are a lot less convoluted than Python libraries. In Python, you see a lot of libs that try to do everything for everyone (think long args lists and functions that try to guess the right thing to do based on arg types) whereas Go libraries just kind of snap together neatly. Go tends to be more productive for me than Python specifically…
Again, performance isn't everything. Go has specialized a bit towards low-level operations, and I tend to strongly dislike what it does with exceptions and the way those involved veto language features. As for libraries, I'm talking about things on the level of, say, Django or ORMs.
Go is heavily optimized toward performance and rapid development. Go also takes a hard philosophical bent against redundant features, like exceptions, under the "less is more" and "simple is better than complex" axioms; it's actually the same philosophy that Python's zen espouses, except Go actually adheres to it.
Regarding libraries, there are numerous web frameworks and several ORMs. I'm unfamiliar with Django, but I will say that Go's standard HTTP library is a tremendous improvement over Flask. Also, I've not yet found an ORM that saves time or trouble over hand-coding SQL (in particular, SQLAlchemy is a real bear).
Re: After reading “Rails is yesterday’s software”, I need to reply
#218Earlier quoted context omitted.
I think this is a strong point. If rails is yesterday's technology, then what is today's? To be clear, by no means am I trying to claim that Rails is the clear winner over other technology choices, or that a good answer to this question needs to be one single, unambiguous answer. I've learned a lot about other possibilities. Node of course, but it's still relatively new, and you need to prefer (or at least be ok with…
I came to Node after four years on Rails and about 10 years of PHP before that. It definitely felt like a step back from Rails, but that's partly because Node wasn't meant just to be a web framework. I've gotten pretty comfortable with it, but I feel like the original decision to use it (which predates my joining the company) was primarily driven by how shiny and cool it is. The vast majority of what we do is standar…
Re: After reading “Rails is yesterday’s software”, I need to reply
#219Earlier quoted context omitted.
I agree that Rails' strong opinions are still a strength. I like Clojure a lot, but for someone new to the language trying to get a Clojure web app started is like pulling teeth. Elixir and Phoenix, with their connections to the Ruby community, really get this, and I think they provide a much better introductory experience.
Have you tried luminus[0]? I found it to be quite straightforward to get started. What I didn't like about clojure is that it smells like java a tiny bit too much and there's too much to choose from be it language abstractions or libraries I guess that's what you refer to as "pulling teeth". I'm gonna try Phoenix for my next project, even though I really like Django and I have never been too much into rails or ruby.…