Hello! I've been working with web development for 7 years, and I'm thinking about learning something different. I've been working with react, angular, node, rails... But i'm a bit tired of web dev and thinking about something new to learn. What do you recommend? I was thinking about learning swift. What are your thoughts? Does it worth it?
Kotlin is also pretty nice. Very similar to Swift but for Android, and might (or might not) successfully expand to IOS, native programs and Javascript & wasm. Big ecosystem due to Java interoperability.
Just one more suggestion, some others have already been mentioned.
I was in a similar boat to yourself last year, and teaching myself Elm (elm-lang.org) was a refreshing change because I hadn't done functional programming before. It's less hardcore than OCaml or Haskell but has most of the essential features of these languages incorporated in a much better designed and coherent way.
Although I don't find the language very practical for everyday usage, the concepts (immutable objects, reactive data flow, pure functions, partial application, etc.) I found useful and applicable to my work in other mainstream languages. Many are incorporating functional techniques, design patterns and features into them.
The Elm Guide (guide.elm-lang.org) was a great introduction to the language for me.
In my personal experience, Swift is one of the most languages to work with. I definitely do think it's a very good language to write web application servers and possibly even lower level backend.
Specially if you are not restrained by company politics and are free to pick your own tools and languages.
I am not sure what you are planning to build or trying to solve next. Swift is an excellent language and still evolving at a very fast pace. Swift has been a choice for development for iOS development for ever since it's introduced (with lot of rough edges).
Swift is open source and cross platform as well. Companies like IBM heavily advocates Swift and very active in the community. Frameworks like Kitura helps you to build web apps using Swift. The tooling and frameworks many not as extensive and mature as node + express or Rails but it is still worth looking at if you are interested.
If you are interested in iOS development, Swift is a great choice and get started there. You should be looking at ReactNative to leverage your experience with JavaScript tooling and build cross platform apps for Android and iOS. Certainly a platform level knowledge is required to build something solid.
To a degree I think the question you need to ask is what do you want to BUILD? Swift for example pretty much ties you to OSX/iOS... sure there's an Ubuntu version -- of sorts -- but it's really got zero cross-platform potential right now, nor does it look to.
Go shows a lot of potential since it will really compile and is cross platform... Rust I can't say I'm fond of, it's like someone went "you know, C is way to verbose and non-cryptic"... but it's still at least semi-practical.
But in most cases the various 'newer' languages aren't jacks of all trades like C/C++ or even Pascal... which is why I'd probably suggest you just focus on strapping up, putting on the big boy pants, and going for C++. It's not my favorite language by a long-shot, but in terms of there being a compiler for EVERY platform and being able to build almost anything with it, there are few true substitutes right now.
Learning many languages is not important. It's important that you use your current knowledges. It's predicable that you'll become tired after you learned new language.
Start a new project. You will never become tired.
If you don't want to start a project, try to be elite in a specific language.
I would say learn what you want.
Swift is as far as I know very apple heavy. I learned rust and go (go for university) last year. Rust really makes me happy. Go for me personally is just pain.
For a decision, maybe take a look at some languages and look at some getting started and then just start doing something.
Dennis B
I'm a few weeks off from completing my performance evaluation between Swift and React Native in an iOS environment, It's my exam project to graduate from university. Tackling this project from a web developer perspective was a bit of a challenge when I wanted to learn and understand how to develop iOS applications "the right way". Overall I found Swift to be a fairly "easy" language to get a grasp on, the big problem for me was the cocoa touch framework which was a real pain to get it to function properly. Overall it went a lot quicker for me to create the same design and functionality in the React Native artifact but this is also heavily influenced because I usually work with the React.js framework when building web projects. If you're okay with being locked into the Apple ecosystem since you pretty much only create MacOS, iOS & watchOS applications in Xcode then I would say that Swift is an excellent language to get into. If you wanna touch something "wider" then I would personally look into Go for microservices or maybe Python/R for machine learning depending on what you wanna create. Also, it's worth mentioning that you can now create ML and AR applications in Xcode utilizing the specific framework combined with Swift. Best of luck mate! :)