r/swift•
codevil

What’s a backend tech stack that you guys found as pleasurable as Swift to use?

I’m an iOS developer (both ObjC and Swift) looking to switch to backend work because I don’t like the trends in front-end development (web and mobile). I noticed that hybrid apps are becoming more in demand and employable than pure native, and its patterns (which I’m not a big fan of) are creeping in even to the most popular pods and in the workplace. Because the end product of everything that we build is just some CRUD app that has the same web 2.0 look-and-feel, I just want to do something that changes a lot less so that I can focus on living a meaningful life after office hours.

What’s a backend stack that you’ve found to be a pleasure to use, besides the ones in Swift? I know you might find it strange that I have that condition in a Swift sub but I’d like to find something that’s (1) employable, and since Swift backend frameworks aren’t generally thought of as mature, they’re not very in-demand, and (2) is a pleasure to use for someone who has experienced the polish of Swift and the Apple SDKs?

Posted Mar 20, 2019, 3:40 AM UTC · edited

921
soulchild_•

I find Ruby / Rails (or even Sinatra) is a pleasure to use, the syntax is similar to Swift and you can quickly spin up a web app in matters of hours. There's common criticism on the slowness on Ruby but it definitely can be further optimized should you encounter these problem (but also congrats that your app has enough user to make the backend slow).

  1. Ruby/Rails dev are high in demand in my region (Asia)
  2. Definitely a pleasure to use, with support of a lot of ruby gems(library) and most people in ruby community (r/ruby) are nice
7
theruskinite•

I've got pretty limited experience, but elixir is pretty cool, it has the same ability to define the same function with different argument signatures that Swift has, although it's implemented differently and that's pretty much where the similarities start and end between the two languages, and it's definitely more niche than Java. I'd guess you'd have the easiest time job hunting with Java. I don't work with Swift anymore, but I haven't used anything as good since.

5
thatyourownyoke•

I personally preferred PHP with Laravel

4

I won't mind Java. But swift is more pleasure for sure

3
b_t_s•

You can mix in kotlin pretty easily. no personal experience, but some of the guys I work with use and love kotlin on the backend, and it's basically swift for the JVM. Probably not a lot of jobs explicitly calling for kotlin experience, but it's a comparatively easy sell for any java shop compared to any other language you'd want to work in.

2
codevilOP•

Thanks. What Java framework do you use for backend?

1

There are many. Currently am using https://spring.io/ for couple of my project.

I have also used Struts in several projects few years back. https://struts.apache.org/

1
georgeRgr•

For me it’s got to be Ruby on Rails. In fact every time I use it I wish apple would copy some of the great stuff rails provides (for example ActiveRecord is a breeze compared to CoreData).

I’d say Ruby on Rails is many times more productive for developing than Swift/Foundation/cocoa/uikit.

2
nextnextstep•

Late binding is indeed a big productivity win, and has been a core tenet of object-oriented programming since Alan Kay coined the phrase. Despite all of Apple's posturing, I have yet to see any study that finds early binding to improve productivity or increase reliability.

1
NatureBoyJ1•

Take a look at Grails. It runs on the JVM and one can claim it's Java (although it's really Groovy) and built on the very popular Spring Boot framework & Hibernate & some other very popular Java libraries.

I find Groovy a much more pleasant language to work in than straight Java - the syntax niceties & shortcuts it provides save a LOT of typing, and you can write it as straight Java if you like.

2
codevilOP•

This sounds like great advice. I happen to have Java as my first language and I was quite advanced at it before I dropped it for Apple things. Will look into this. Thanks!

1
armendu•

For me it's been C#, especially since .NET Core is open source and does work on multiple platforms. It has some of Swifts syntactic sugar, is verbose like Swift and has lamba expressions that are similar to Swift closures. Oh, and LINQ is a really great tool that makes working with collections, lists and so on, very easy.

2
Reddit1396•

Any cons? I'm torn between .NET Core and Spring Boot cause I'm more experienced in Java but really like C#. I'm planning to build a simple Web API for my backend

2
armendu•

Yes there are some cons that I could mention. Firstly, the ecosystem is hard to understand at first, since .NET Framework and .NET Core are done on top of .NET Standard, and it does confuse some people in the beginning. Second, the language does have some weird (in my opinion) guidelines on how the code should be written (methods start with a capital letter etc.) which is something that people don't like. Third, Razor pages are something that I don't like about ASP.NET. other than that, I can't think of other cons, but if you have a specific question, feel free to ask 😊.

Oh, and I've heard good things about Spring Boot as well, so the choice has to be made based on your needs and your preference. Java and C# are not so different in syntax, but the ecosystem is different, that's why I would suggest you try both, and then decide.

2
codevilOP•

Is .NET somehow going to lock you in to a Windows workstation? Looked this up in the internet but couldn’t find anything conclusive.

1
armendu•

Many of the .NET developers use Windows, some because they are working with .NET Framework and not Core, some because of Visual Studio, and some because they like Windows I guess. But, you are definitely not stuck on Windows, .NET Core is cross platform, and does work well on MacOS and Linux (I've tried using both and I didn't see any problems). You can use VS Code, or any other editor that you like, but I would recommand Rider, which in my opinion is the best IDE for .NET after Visual Studio.

2
bosk4•

Prisma.io + GraphQL on NodeJS which I think the hassle-free way to have a https backend without trouble

Basically only you need is a https sql server everything else can be deployed with Now

1
Eddybeans•

PHP symfony is a bliss

1
_divi_filius•

vapor!

1
nextnextstep•

What’s a backend stack that you’ve found to be a pleasure to use, besides the ones in Swift?

Does this question assume that we find Swift pleasant to use on the backend?

the polish of Swift and the Apple SDKs

I can't tell if this is a joke or not. Let me go back to working around another swiftc bug I found, while writing some C interop code because there's no real Swift interface for the Security framework and it just wraps the same crap (OSStatus!) that's been around since pre-Mac OS X...

-1
codevilOP•

I assume that there are people who like Vapor in r/swift. You, specifically, might not like it, but I did not consider you in my assumptions.

And obviously, no SDK is perfect but Apple’s is incredibly clean (plus first-class dev support too) when compared to others. You’ll just know what I mean if you have enough experience.

1