8 ms·
As a backend dev (mostly working in fintech) I feel weirdly unable to find a target language to move to. After working with Node and Ruby for a while I really
by torben-friis 1y ago
As a backend dev (mostly working in fintech) I feel weirdly unable to find a target language to move to.
After working with Node and Ruby for a while I really miss a static type system. - Typescript was limited by its option to allow non strictness.
Nothing catches my eye, as it’s either Java/.Net and its enterprisey companies or Go, which might not be old but feels like it is, by design. Rust sounds fun, but its usecases don’t align much with my background.
Any advice?
- yxhuvud 1y agoYou could try Crystal if you like the other parts of Ruby. But you probably ain't going to find a job writing it anytime soon.
- TheDong 1y agoTake a page from janestreet's book: use ocaml. Rust is also a general purpose language, there's no reason you can't use it for just about any problem space.
- misja111 1y agoI tried ocaml last year (I knew some Haskell and Scala already) and it was hell. The language itself was pretty, that's true. But the schism between Ocaml's stdlib and Jane Street's core lib was incredibly frustrating. I guess when you're working at Jane Street, use only their core lib and you get some proper onboarding, things could work great. However you're programming very much in a niche community then.
- clumsysmurf 1y agoI have the same dilemma: a strongly typed / modern language with good tooling / library support. I'm also considering Kotlin / Gleam. With Kotlin, practically speaking, we're talking JVM again, along with its resource requirements.
- smackeyacky 1y agoC# is the right answer here.
- npalli 1y agoC++ of course. Backend and Fintech.
- zmz88 1y agoGleam?
- dismalaf 1y agoFintech should have lots of C++ jobs no? They also seem to use ML languages like OCaml and Haskell more than the average industry...
- theflyinghorse 1y agoMore Java than C++ in my opinion. And, get this, JS! We shall see how far OpenFin will actually go in that space because they will potentially drive a ton of JS across orgs in finance
- ppeetteerr 1y agoJava is maturing into a syntactically nice language, albeit slowly, and it's the backbone of many medium and large companies. You might have trouble finding small companies using anything but JS/Ruby/Python. These companies align more with velocity and cost of engineering, and not so much with performance. That's probably why the volume of interpreted languages is greater than that of "enterprisey" or "performance" languages.
- ystvn 1y ago> Java is maturing into a syntactically nice language, albeit slowly, and it's the backbone of many medium and large companies. I've heard about Java initiatives to improve it, but can you point to examples of how how Java "is maturing into a syntactically nice language"? I'm tempted to learn it, but wonder whether it would really become nice enough to become a 'go-to' language (over TS in my case)
- theanonymousone 1y agoThere are some interesting talks and slide decks that I have to search around to find. Here is one: https://speakerdeck.com/bazlur_rahman/breaking-java-stereotypes-its-not-your-dads-language https://speakerdeck.com/bazlur_rahman/breaking-java-stereoty... Check jbang.dev, and then talks by its author Max Rydahl Andersen. That could be a starting point.
- gf000 1y agoIt has virtual threads, that under most circumstances let you get away from the async model. It has records, that are data-first immutable classes, that can be defined in a single line, with sane equals toString and hash. It has sealed classes as well, the latter two giving you product and sum types, with proper pattern matching. Also, a very wide-reaching standard library, good enough type system, and possibly the most advanced runtime with very good tooling.
- 62951413 1y agohttps://inside.java/2024/05/23/dop-v1-1-introduction/ https://inside.java/2024/05/23/dop-v1-1-introduction/
- viscosity 1y agoI feel the same way and I think that Gleam is best language that fits this criteria. It has the simplicity of Go but the ergonomics of Kotlin.
- brabel 1y agoI really like Gleam. But if you want a job, that’s probably the worst choice ever. The language is just a few years old and lack libraries for mostly everything. Why are people recommending that here, do you guys work using Gleam?? Let’s be honest , your realistic options for work are Java, C#, C++, and depending on the industry, Swift, Go, Kotlin, Dart and Rust.
- oDot 1y agoI work in Gleam on my software and it's a treat. I use the FFI for JS libraries all the time.
- cies 1y agoBeing able to talk passionately and with experience about "exotic" languages during an interview will help you land the job. I will hire the one that talks about the joy of FP and/or static typing ANYDAY over the programmer with only JS experience an no visible interest to look beyond.
- deleted 1y ago[deleted]
- airstrike 1y agoRust is general purpose. You can use it for anything. But use the best tool for the job. Ecosystem matters. What are you planning to build?
- cies 1y agoOkay, Rust is general purpose enough... But is it general audience? (can every Py/PHP/JS/TS/Java/C# dev become productive in it quickly?) Also: if you want quick (re)compiles on a larger codebase, Rust is not for you.
- ModernMech 1y agoI would say yes. I have experience teaching Rust to ~20 yo students of Java, and they are able to be productive in Rust within a semester. Your median Java and C# dev should be able to use Rust. Dunno about Python devs.
- cies 1y agoSure they can use it, and learn it in a semester. Also: good you use Rust in teaching! But I want a fast on-ramp, quick iterations and clean looking code. (and went with Kotlin because of that -- I like Rust more myself, but I have a business to run, so tradeoffs)
- nairboon 1y agoD?
- b_e_n_t_o_n 1y agoSwift! It actually has a pretty big server community, Vapor and Hummingbird are both great frameworks, Apple has been replacing some of their Java services with it, it's open source and cross platform and Apple seems serious about making it viable on Linux, which it is. No need for Xcode, it has an open source LSP and first class VSCode plugin. Plus it's a fun language to write. Some people say it's a nicer, higher level Rust. I also like the look of Kotlin but I've never used it. I think Kotlin and Swift are the two premier modern multi-paradigm languages.
- airstrike 1y agoI do like Swift but it also suffers a bit from identity crisis. The compiler experience is quite disappointing too—I found myself helping the compiler more than the compiler helped me. I've since moved to Rust and have not looked back. Importantly, rust-analyzer runs circles around the Swift VSCode plugin (or Xcode for that matter)
- b_e_n_t_o_n 1y agoHave you tried it since 6.2 came out with approachable concurrency enabled? The compiler is quite useful.
- airstrike 1y agoNo, I think I stopped using it in 5-something. Will try to play with it again to see how it feels these days, thank you. Though I must admit it's hard for me to imagine using anything other than Rust for 90% of projects.
- b_e_n_t_o_n 1y agoI'm the same but opposite, I like Rust but find myself using Swift most of the time. They sort of do the same thing but coming from opposite directions. Can't go wrong with either imo. I really do wanna try Kotlin at some point as well. Rust, Kotlin, and Swift feel like the future of languages to me.
- lmm 1y agoScala is the best language I've ever used - all the good parts of Typescript and all the good parts of Java or Rust. And fintech is one of the few niches where you might still be able to find a job using it.
- riffraff 1y agoHow's the tooling story with Scala these days? I played with it a long time ago and the IDE (eclipse plugin?) was a bit of a mess, sbt was prone to weird issues and lock ups and the compiler was pretty slow. Very fun language tho!
- pjmlp 1y agoSome of the folks now work for JetBrains, thus InteliJ is the one with best support. Then they decided to focus the remaining effort on Scala Metals, which is based on LSP protocol. In both cases it is alright for Scala 2, there are some rough edges for Scala 3.
- lmm 1y agoThe compiler is faster than it was, but not exactly fast. SBT I avoid as much as possible, so can't really speak to that. The eclipse plugin is sadly abandoned, but IntelliJ has pretty good support.
- kriiuuu 1y agoWe use Scala as well and are very happy with it. We also have a lot of TS, and at this point we are tempted to just switch to using ScalaJS on the frontend as well because of how much better the language is to use. It feels like Scala 3 fixed a lot of issues people had with the language. The IDE tooling isn’t the best, but even then it feels like the IDE tooling for TS breaks all the time once the project is large enough.
- lmm 1y ago> We also have a lot of TS, and at this point we are tempted to just switch to using ScalaJS on the frontend as well because of how much better the language is to use. I did that and highly recommend it, at least for new projects - not sure that it's worth the effort of porting an existing project, but ScalaJS just works and I found far fewer rough edges than I expected.
- xgdgsc 1y agoJulia https://www.reddit.com/r/Julia/comments/1efxp0j/julias_advantages_over_other_languages/ https://www.reddit.com/r/Julia/comments/1efxp0j/julias_advan...
- thomasikzelf 1y agoYou should try ReScript. The language has improved a lot recently. If Typescript is javascript with types bolted on then ReScript is javascript redesigned the proper way. The lsp is also surprisingly good. All that while still being in the node eco system.
- pjmlp 1y agoIf you want to stay in Fintech, I really don't see anything beyond Java, C#, C++, TypeScript (for the Web stuff). Some Fintech companies might go a bit outside the norm and allow for Haskell, F#, Scala, which they tend to use as DSLs for some workflows. Then if you into array languages, banking and fintech is one fo the few domains where that have managed to stay around, but those positions seem hard to get. Dyalog (APL), J, BQN, Kdb+ (Q) https://www.arraycast.com/resources https://www.arraycast.com/resources
- flanked-evergl 1y agoI work in Fintech, and we use Python with type checking. It works like a charm. Safer than Java.
- pjmlp 1y agoThat was a fun one, being safer than Java. Since we are at it, faster as well.
- flanked-evergl 1y agoNot as fun as still having no null safety in Java.
- pjmlp 1y agoAs if Python was any better in that regard, as dynamic language.
- flanked-evergl 1y agoPython with type checking is statically type checked. So yes, Python with type checking is better in that regard. And it's safer than Java because there are more classes of errors that Python with type checking will pick up during static type checking than what the Java compiler will pick up.
- superlopuh 1y agoPython with Pyright in strict mode. I work on a ~200kLOC fully typed Python project [0] and am having fun. [0]: https://github.com/xdslproject/xdsl https://github.com/xdslproject/xdsl
- hk__2 1y agoHave you worked with TypeScript? I’m working with both every day and I’m always frustrated by the limits of the 'type' system in Python- sure it’s better than nothing but it’s so basic compared to what you can do in TypeScript. It’s very easy to use advanced generics in TypeScript but a hell to do (sometimes outright impossible) in Python.
- superlopuh 1y agoYep, although never in a project of a similar size. One advantage of the Python setup is that the types are ignored at runtime, so there's no overhead at startup/compilation time. Although it's also a disadvantage in terms of what you can do in the system, of course.
- hasperdi 1y agoDeno and latest versions of Nodejs run TS code without transpilation
- IshKebab 1y agoI agree it is pretty nice (with uv and as long as you REALLY don't care about performance). But even if you are one of the enlightened few to use that setup, you still have to deal with dependencies that don't have type annotations, or only basic ones like `dict`. Typescript (via Deno) is still a better option IMO.
- misja111 1y agoHave you really been using Node or even Typescript as backend dev in fintech? After 15 years in fintech I have never heard anything like that. For the backend it's mostly Java with some sprinkles of C#, Cobol or Python.
- torben-friis 1y agoYup, the previous company I used to work for just had a successful exit last year too. I guess it was an iteration speed thing, though as you say python is becoming popular as well and IMO it is not anymore suited to finance than node is, other than the connection with data science.
- mirekrusin 1y agoMoonbit lang is currently the best language I've seen (not a joke).
- misja111 1y agoThank you for this, I just checked it out and it looks really great
- tannhaeuser 1y agoWhat's wrong with Java? It's used everywhere from FinTech startups to banks/insurers, with features like decimal arithmetic introduced specially for finance a long time ago, multiple runtimes (Oracle/JVM, IBM T9, GraalVM), a very healthy ecosystem of libs/packages, etc.
- nesarkvechnep 1y agoThe question asked usually by people who haven't used anything else professionally or at all.
- wiseowise 1y agoAnswer the question.
- koakuma-chan 1y agoMaven and Gradle suck.
- torben-friis 1y ago>What's wrong with Java? It's used everywhere from FinTech startups to banks/insurers As the OP, it’s not even the language for me but the implications of companies that use it. It’s a non starter for startup/scaleups and strongly related with oldish companies and consulting firms, which in turn translates to far worse working conditions (not remote friendly, overtime, dress code, etc). Mind that it might just be a local culture thing, your mileage may vary.
- gf000 1y agoI usually ask at interviews what version of Java they are using. If they are on >8 of >11, then that's a pretty good green flag. And it's a non-starter for startups, because it's not hyped enough, not for a technical reason. Many of them would be way better off with a standard traditional Spring app.
- 1y ago
- ksec 1y agoYou may want to look into Crystal.
- chillfox 1y ago+1 for Crystal, it's a fantastic language and the community is great (on the official forum).
- davedx 1y ago> - Typescript was limited by its option to allow non strictness That's 100% a project setting you can turn on or off though, it's like -Wall in C++ projects. I'm also a back-end dev who's worked in fintech and IME, TypeScript is a great choice. From my experience with python, none of its type checking libraries are complete enough.
- torben-friis 1y ago>That's 100% a project setting you can turn on or off though, it's like -Wall in C++ projects. I know, it’s just not realistically up to me. I depend on the team/company culture which I’d rather not have in the picture - I’ve already gone through trying to fight the sea of unknown/any.
- Traubenfuchs 1y agoKotlin!
- plainOldText 1y agoNim is a statically typed language with a syntax resembling Python's. https://nim-lang.org/ https://nim-lang.org/ Sometimes I'm questioning if it has the potential to become more popular in the future if AI becomes adept at translating Python projects to Nim.
- a96 1y agoIM[EO], the std library and system interfaces are complete obscure made-up trash. The language was fine and tooling is nice, but I decided I'll neveer try to use nim again. Zig, otoh might be worth another look.
- __MatrixMan__ 1y agoDo you think those languages are scratching the itch? If not maybe we need to pick a suitable underdog and champion its use. Clojure comes to mind. Or Unison. Something where immutability shines.