I would choose a language that effectively combines multiple paradigms and is modern. Using that as a headstart, it is very easy to learn other languages.
Typescript is a great language for this purpose because it has a rich type system, is ergonomic and actually used extensively in the wild.It also supports multiple programming paradigms, object oriented, procedural, functional programming, async code, everything is there.
Is it a perfect language to use in production? Not always because it transpiles to Javascript and that might not be good enough due to performance or the platform. However, I would argue that for a senior developer, it should be a great stepping stone to jump to Java or C# or some other popular language, in case it is needed for a job.
Rust in contrast is an excellent language to learn how to write reliable and performant software. Its design, supposing you don't ignore the compiler by abusing unsafe, helps you develop useful programming patterns that transfer very well into systems programming and all kinds of programming. Its patterns and strictness however mean there's a steeper learning curve and at the same time, may not fit sloppier environments like business applications, where reliability is often sacrificed for iteration speed.
What languages would you say maximize development speed? Fastest time from initial need to mvp deployed and working (working well enough at least).
I'll further constrain my overly broad question by saying this is for back-end business logic heavy code or even embedded code with few dependencies on databases or frameworks. So just pick up a language and its available libraries and/or bindings and go solve X.
Python springs to mind, maybe julia. C# maybe?
I'm most productive in matlab but deployment is kind of an issue, so I usually write it again in c++ or cuda.
Python seems really easy to do anything in, and unless I hit a performance shortfall I can't fix with calls into native, I'm done? Julia seems like a write once thing, but I'm still trying to find a sane workflow for julia between the repl and an editor. Ideally I'd be able to try stuff in the repl then easily copy the text that worked into a module. But copying from the repl isn't terribly easy for blocks of atuff, and then clearing that stuff out so ut doesn't conflict.
Ideally I'd be able to try stuff in the repl then easily copy the text that worked into a module. But copying from the repl isn't terribly easy for blocks of atuff, and then clearing that stuff out so ut doesn't conflict.
There's also other options: you can send code line by line (or by whole blocks, or sections of code) from the VS Code editor to the Julia REPL if you have the VS Code plugin [https://www.julia-vscode.org/], so you can interactively build your code in the editor itself while trying it out piecemeal. Pluto is another option, where you get REPL like feedback, and because of its reactive nature, you get rid of conflicts as you write new code. And Pluto notebooks are just Julia code files (with extra markups for notebook functionality that don't affect the execution).
Which of these works for you depends on what suits your workflow and which tools you prefer, you can give them a try and decide for yourself.
Interesting! Ive never given it a look before. I always assumed it was a "web language" and as none of my work has ever been even peripherally related to web stuff I ignored it. I like the syntax, though the "everything is an object" makes me nervous. I dont like opinionated languages. I use OO when it makes sense for me.
People keep saying that, and I guess it must be rails making things like Auth, seeting up an ORM, sessions, etc easy right?
Because ruby itself, I find to not be a productive language. The lack of types means that the discoverability of methods is poor (especially when combined with the fact that gems can modify standard library classes, and rails takes full advantage of this); the lack of types also means I have a slower debug cycle because I'm bound to make silly mistakes (indexing with symbols into a hash with string keys, or typos).
So again, is it really rails that makes producing MVPs easy, or is it ruby, the language?
Comments
I would choose a language that effectively combines multiple paradigms and is modern. Using that as a headstart, it is very easy to learn other languages.
Typescript is a great language for this purpose because it has a rich type system, is ergonomic and actually used extensively in the wild.It also supports multiple programming paradigms, object oriented, procedural, functional programming, async code, everything is there.
Is it a perfect language to use in production? Not always because it transpiles to Javascript and that might not be good enough due to performance or the platform. However, I would argue that for a senior developer, it should be a great stepping stone to jump to Java or C# or some other popular language, in case it is needed for a job.
Rust in contrast is an excellent language to learn how to write reliable and performant software. Its design, supposing you don't ignore the compiler by abusing unsafe, helps you develop useful programming patterns that transfer very well into systems programming and all kinds of programming. Its patterns and strictness however mean there's a steeper learning curve and at the same time, may not fit sloppier environments like business applications, where reliability is often sacrificed for iteration speed.
What languages would you say maximize development speed? Fastest time from initial need to mvp deployed and working (working well enough at least).
I'll further constrain my overly broad question by saying this is for back-end business logic heavy code or even embedded code with few dependencies on databases or frameworks. So just pick up a language and its available libraries and/or bindings and go solve X.
Python springs to mind, maybe julia. C# maybe?
I'm most productive in matlab but deployment is kind of an issue, so I usually write it again in c++ or cuda.
Python seems really easy to do anything in, and unless I hit a performance shortfall I can't fix with calls into native, I'm done? Julia seems like a write once thing, but I'm still trying to find a sane workflow for julia between the repl and an editor. Ideally I'd be able to try stuff in the repl then easily copy the text that worked into a module. But copying from the repl isn't terribly easy for blocks of atuff, and then clearing that stuff out so ut doesn't conflict.
For copying stuff from the REPL, `pickandcopy()` from DoctorDocstrings.jl is pretty nifty. [https://miguelraz.github.io/DoctorDocstrings.jl/]
There's also other options: you can send code line by line (or by whole blocks, or sections of code) from the VS Code editor to the Julia REPL if you have the VS Code plugin [https://www.julia-vscode.org/], so you can interactively build your code in the editor itself while trying it out piecemeal. Pluto is another option, where you get REPL like feedback, and because of its reactive nature, you get rid of conflicts as you write new code. And Pluto notebooks are just Julia code files (with extra markups for notebook functionality that don't affect the execution).
Which of these works for you depends on what suits your workflow and which tools you prefer, you can give them a try and decide for yourself.
For development speed my vote would be on Ruby, along with Rails it is still unsurpassed by any newfangled stacks
Interesting! Ive never given it a look before. I always assumed it was a "web language" and as none of my work has ever been even peripherally related to web stuff I ignored it. I like the syntax, though the "everything is an object" makes me nervous. I dont like opinionated languages. I use OO when it makes sense for me.
People keep saying that, and I guess it must be rails making things like Auth, seeting up an ORM, sessions, etc easy right?
Because ruby itself, I find to not be a productive language. The lack of types means that the discoverability of methods is poor (especially when combined with the fact that gems can modify standard library classes, and rails takes full advantage of this); the lack of types also means I have a slower debug cycle because I'm bound to make silly mistakes (indexing with symbols into a hash with string keys, or typos).
So again, is it really rails that makes producing MVPs easy, or is it ruby, the language?