6 ms·
I'm pretty much in the same boat and I don't even like Python the language. The ecosystem and extensibility is just so insanely productive it even rivals Excel.
by qsort 4y ago
I'm pretty much in the same boat and I don't even like Python the language. The ecosystem and extensibility is just so insanely productive it even rivals Excel...
In re Rust: I feel one of the mistakes most people make is taking Rust to be a general purpose "default language" for everything, like C and C++ used to be. But like you wouldn't write C++ for most stuff even if you were magically granted the ability to never ever write unsafe code, writing web services in Rust just means making your own life harder. It's a great tool, I'm happy it exists and I follow its development, but we must accept it exists in a different space than, say, Python or Ruby or Javascript.
I feel physical pain as I say this, but most stuff should probably just be Java.
- biorach 4y ago> I feel physical pain as I say this, but most stuff should probably just be Java. This has been on my mind a lot lately, causing similar anguish. I'd note that, from what I hear, C# would also fit the bill, but be as unappealing to me. I really wish that there was a language with the productivity, ecosystem and ergonomics of Python, with the speed and efficiency of Java and C# and a type system that increases productivity rather than word count. Go seems... fine, but, I dunno, slightly regressive. I'll probably use it where performance and scaleability matter.
- kaba0 4y ago> I really wish that there was a language with the ~productivity~, ecosystem and ~ergonomics~ of Python, with the speed and efficiency of Java That would be.. Java :D While I’m quite a big Java fan, for the other parts some other JVM language can easily fit the bill and you even get a choice. Scala, Kotlin, or maybe even Clojure if you don’t mind dynamic types.
- biorach 4y agoYeah maybe, I hear Java has improved markedly since my bad experiences with it (admittedly a long time ago now). I should swallow my distaste and give it a fair trial. From a distance it still looks somewhat verbose and unergonomic. The others look like really really nice languages and I'd love to use Scala for a solo project. However I guess I need something that's a) truly general purpose b) not going to scare away collaborators or potential hires c) going to be around for a long time d) not going to require evangilization at, say, a start-up. Kotlin... I guess I'm wary of it being the new Coffescript - i.e. that it spurs Java into improving to such a degree that it removes the need for Kotlin in the first place. And yes, having just spent a long time transitioning a project from JS to TS, I'm not sure I want to start anything serious without at least half-decent static typing - a major reason I'm looking for an alternative to Python, which is just not quite there.
- kaba0 4y agoFor what it worths, Scala 3 is a really great language, it now even has a compiler option to exclude nulls, making you use something like `String | Null` to denote nullable values.
- biorach 4y agoYeah, from a purely personal point of view Scala 3, F# and, maybe, Elixir seem to offer the greatest promise of productivity, safety and expressiveness.
- nicoburns 4y ago> Kotlin... I guess I'm wary of it being the new Coffescript - i.e. that it spurs Java into improving to such a degree that it removes the need for Kotlin in the first place. I think that's unlikely. The key difference being that Coffeescript was always dependent on JavaScript because it compiled to JavaScript! Whereas Kotlin doesn't compile to Java, it compiles to JVM bytecode the same as Java does.
- adra 4y agoJava's gotten a lot better and maybe some day in the future I'll go back to general purpose java for server-side development, but there's enough velocity increase in Kotlin that I feel more and more productive. The real victory of the language IMHO is absolute null awareness (at least for largely Kotlin codebases). This makes any sort of nullability issue perfectly clear as long as you're not '!!' (null-safe opt out) everywhere like a lunatic (or as a newb when I started). Being able to seamlessly weave java and Kotlin in the same projects has made the slow iterative migration a lot simpler as well. All the same dev toolchains/ecosystems, just a different compiler plugin.
- ithrow 4y agoWhy not just TS?
- charlieflowers 4y agoWhy not Typescript?
- vbezhenar 4y agoKotlin is very pragmatic alternative to Java. A lot of people like it. It's endorsed by Google so it's pretty safe bet nowadays. Scala is another alternative with more scientific approach. Both enjoy JVM quality and consume Java libraries. Java is improving as well, but not on par with those languages. Worth checking out though.
- biorach 4y agosee my reply to sibling comment
- jcadam 4y agoI really like Kotlin on the backend, it integrates nicely with Spring Boot, etc., but as soon as I say I have Kotlin experience, people say "Oh, so you're an android developer?" I've never touched android development in my entire life.
- pjmlp 4y agoBecause on the JVM, like in other platforms, guest languages come and go. https://en.wikipedia.org/wiki/List_of_JVM_languages https://en.wikipedia.org/wiki/List_of_JVM_languages Kotlin has its future assured thanks to godfather Google, stagnating Android Java on purpose (only recently they decided to finally move to Java 11 LTS subset), while promoting Koltin as its replacement for everything besides core platform. So no wonder that people usually say that.
- eternityforest 4y agoI've been really enjoying Dart, I can write code slightly faster than in Python because of the type system and deep IDE support. Unfortunately, when I use Dart, it's on Android, where the SAF exists, which kills my enjoyment, despite Android/Flutter otherwise being probably my favorite platform.
- naasking 4y ago> I really wish that there was a language with the productivity, ecosystem and ergonomics of Python, with the speed and efficiency of Java and C# and a type system that increases productivity rather than word count. Try OCaml or F# then.
- _dain_ 4y ago>I really wish that there was a language with the productivity, ecosystem and ergonomics of Python, with the speed and efficiency of Java and C# and a type system that increases productivity rather than word count. Nim has that except for the ecosystem. And it's also kind of janky, enough that I got so frustrated I stopped trying to use it. But you might have better luck than I did; check it out if you haven't.
- biorach 4y ago> Nim has that except for the ecosystem. And it's also kind of janky, That's a terrible recommendation!
- _dain_ 4y agoYeah I know lol, just trying to be honest. It's a genuinely fun language to work with; if it wasn't I wouldn't have put in so much time trying to make it work with the way I like to program. I still recommend you check it out, because people like to code in different ways, and it might fit your style of programming more than mine.
- nequo 4y agoWhat have you found janky in Nim?
- _dain_ 4y agoIterators claim to be first-class but aren't. And "zero-cost" iterators that are only zero-cost if you don't value your own time spent debugging them. I've been able to crash the compiler when trying to write what in Python is idiomatic "itertools-y" code. And whenever I complain about this, someone pops up to recommend some third party iteration library. Which is part of the problem; I shouldn't need a third party library full of terrifying-looking macros just to write lazy iterators. They don't live up to what the docs promise, which is a real shame. If they made iterators work how they seem they should work, I would come right back to Nim. It does so many things right but this one thing is a dealbreaker for me. The UFCS is practically begging me to chain lazy iterators together but actually trying it is like stepping on a rake.
- x0x0 4y ago[flagged]
- ksec 4y agoBoth Nim and Crystal. Or something in between. We are getting close, may be another 5 years of iteration.
- lordgroff 4y agoI 100% agree with your conclusion, except without the pain. I like Java and I think in every way that counts, it makes sensible choices.
- Yoric 4y agoI personally wrote a number of web services in Rust. Found it a bit odd at start, but quickly became pretty natural. Probably influenced by the fact that I hate debugging in production and last times I wrote some serious Python code, I ended up doing just that. YMMV
- peterashford 4y agoAs someone who equally loves C for all the reasons outlined here - I never understand the Java hate. Its an extremely practical, pragmatic language. Not every program has to be a technological marvel. Most code exists to get stuff done, and having code that gets stuff done and ISNT super complex is a pretty good thing, IMO.
- qsort 4y ago> Java hate I don't hate Java, I work with it every day and as you say it's a practical language that gets stuff done with minimal hassle. The reason why it's hard to stomach is that it's the infrastructure of the future with the programming techniques of the past. Java the environment is like living in 2050, Java the language is like living in 1990. Things are slowly getting better, but everything feels clunky and bureaucratic. The type system manages to be simultaneously ultra-verbose and not expressive enough to represent useful properties. It's a complete travesty that I need to codegen my own Tuples and write my own Either<T1, T2> as a literal Bohm-Berarducci construction. No value types (they're coming, but not yet stable). Didn't have Records until Java 18. Useless semantics for "final". Getters and setters. Nulls aren't even funny. The language design feels at odds with the broader goal of providing a safe, efficient, solid programming environment. It's still a fine choice for most applications, I'd venture to say it's actually the best choice, but that's because the language itself actually matters very little, unlike us nerds would like to think. But it doesn't have to be that way. I'm hopeful it'll get better.