7 ms·
The only thing that would get me off Rails is an opinionated framework with static type checking. I need * Migrations * Models with validations * Views (pre
by 1ba9115454 8y ago
The only thing that would get me off Rails is an opinionated framework with static type checking.
I need
* Migrations
* Models with validations
* Views (prefereably statically typed)
* Controllers with built in routing and type safe routing methods.
* Static type checking.
* Great package management.
* Deploy to Heroku
I'm looking at https://luckyframework.org/ https://luckyframework.org/ and it's looking very good. Using crystal as a type safe ruby.
- realusername 8y agoI also want to try Lucky for this reason, it looks like the next evolution of Rails.
- 076ae80a-3c97-4 8y agoDoesn't ASP.NET MVC using Razor and Entity Framework cover all of that? Plus C# is generally really nice to work with.
- scruple 8y agoThis is true, and C# is a joy to work with, but I really cannot stand doing development in a Windows environment after having spent so many years in linux environments.
- dahauns 8y agoYou're in luck: https://github.com/aspnet/home https://github.com/aspnet/home Linux/OSX works just fine.
- moojd 8y agoIt's been a while since I've played around with this but I remember the "Great package management" story to be lacking with .NET Core. It was tough finding packages that worked with Core. Has the package ecosystem grown?
- Merad 8y agoBasically all of your popular and widely used libraries support Core at this point. Also, starting with either Core 2.0 or 2.1 you can use most packages targeting .NET Framework with Core, and ~80% of them (IIRC) are supposed to be fully compatible.
- yenwel 8y agoactix-web is a web framework based on Rust (actor model abstract over local and non-local concurrency and Rust for speed and safety) https://github.com/actix/actix-web https://github.com/actix/actix-web example implementation https://github.com/OUISRC/muro https://github.com/OUISRC/muro you can combine with https://github.com/DenisKolodin/yew https://github.com/DenisKolodin/yew instead of vue
- gilrain 8y agoJust don't use it and expect the usual Rust safety... https://users.rust-lang.org/t/how-not-to-use-unsafe-code/18170 https://users.rust-lang.org/t/how-not-to-use-unsafe-code/181...
- steveklabnik 8y agoThe author is seemingly interested in fixing these issues, at least. It’s been a contentious day. I’d expect it to be fixed reasonably soon, due to its apparent sponsorship and who is rumored to be using it in production.
- gilrain 8y agoI just saw their most recent response, which has ameliorated my concerns. Thanks for bringing my attention to it! Previously it seemed like they might have got unproductively resentful at the backlash, somewhat understandably. All's well that ends well!
- jillesvangurp 8y agoSpring boot 2 does all of that, out of the box. Kotlin is pretty sweet and supported well.
- twic 8y agoI'm not a Spring fan, but i am surprised to see it this far down in the responses to that comment! There are really only three web frameworks in statically typed languages that have anything like the breadth, depth, and endurance of Rails, and those are .NET, Spring, and Java EE. Crystal? Come on.
- gilrain 8y agoI've been so curious about this framework, and Crystal in general, but sadly they've also inherited Ruby's attitude of Windows as "when we get to it". I'll probably try it out when they eventually add Windows support, but if Ruby and Git are anything to go by, what starts out as second class always will be. I'm currently using Rust, largely because `cargo` solves so many headaches, but I would prefer a garbage-collected language for most uses.
- RangerScience 8y agoWindows will beat them to it, with the Linux Subsystem. You can also go with a Docker+mounted FS, which'll let you run the code in the container, but edit the code with whatever. Hell, I even do this on my mac so I don't have to worry about the rest of the environment setup.
- tibbon 8y agoType safety would change my world. Lack of it is the #1 thing causing errors for my company. You can either program defensively around it, jump through NilObject patterns (about the best option), or over-document every method which then will get stale soon to tell the intent of what's going to happen. Method chains are a trap in Rails and will always lead to NoMethodError sadness.
- rorykoehler 8y agoDidn't I read somewhere that Stripe is developing a type checker for Ruby? Edit: yep https://news.ycombinator.com/item?id=17217815 https://news.ycombinator.com/item?id=17217815
- specialp 8y agoThe problem with Ruby isn't static typing per se, it is the terrible handling of `nil`. Ruby either has to make nil more evaluatable, or assure unexpected nils never come with options. For instance calling `each` on `nil` should have the effect of calling it on an empty enumerable like Clojure does would make it more evaluatable and stop the dreaded "No method found each on nilclass". I've been programming in Ruby for 10 years and I have to say after writing Clojure for a bit I really enjoy the fact that nil behaves as an empty value, and is enumerable. It is not the purest CS interpretation of nil but it makes it way easier. If someone is really concerned to check to see if something is nil there is still .nil? When have you had errors like Oh this is String [][]{} vs Int[][]{}? That kind of static typing gets in your way more than it saves you. Pretty much all my errors that would be saved with type checking involve nil and that could be handled as I stated above.
- wes-k 8y agoNot perfect, but ruby 2.3 introduces the safe navigation operator (&.), so you can do foo&.each or foo&.bar
- kwillets 8y agoI'm at best an intermediate-level rubyist, but I was quite surprised when more experienced people didn't recognize that operator after I started using it. It seems like one of the most significant upgrades. I got really into it and started using it with operators, eg num_objects&.> 0
- ezekg 8y agoI didn't even think of using it with operators. Awesome.
- freehunter 8y agoOh lord the number of lines of code I've had to put in to check for nil is unbelievable. Seriously my only complaint about Rails is handling nil.
- 8y ago
- briandear 8y agoSwift Vapor
- thomasfedb 8y agoCurrently more than a little tempted by Phoenix and Elixir. http://phoenixframework.org/ http://phoenixframework.org/
- udfalkso 8y agoIt’s great, go for it.
- thomasfedb 8y agoCould you expand on what your experience has been and what's made it great?
- udfalkso 8y agoHighlights: 1. So much faster. I'm getting super consistent 30ms response times on a heavily trafficked web app. AND I did this while completely ripping out a complicated layered caching system that I was using in last iteration of the app. It's just web app talking directly to postgres database, which sounded crazy to me, but actually works. 2. Socket/Channel goodness baked in. I built a real-time chat experience in about a day with Phoenix channels/presence. Makes it quite easy. 3. Less moving parts. Language level support for async tasks and in memory caching lets you do A LOT without installing/managing redis, queues, and other tools. For fancier use cases you still might want to go there, but for a lot of common tasks (send email after user registers for instance) you can go a long way with just Elixir. And you can keep related code together more easily because of this. 4. Easier testing and maintenance. Functional language by nature tends to lead to more modular, maintainable and testable code. Hard to appreciate this until you build a large-ish project with it, but I've found this to be very true.
- thrownaway954 8y agoASP.NET MVC has all of this and more https://www.asp.net/mvc https://www.asp.net/mvc