I've been looking into Java and Go. I don't I like Go very much, it looks too "simplistic" I guess (I don't have much experience with static typed languages though) also its ecosystem seems too young and I didn't like the way it manages dependencies and errors. I've heard good things about C# and it looks cool indeed but I'm afraid I'd have to resort to Windows somewhere down the line and, I'm sorry, I think Windows us unbearable. What else could I look into? Is Java really that bad? I'd like to write Rest APIs, GraphQL servers and stuff with websockets mostly. Also does anyone here have tried that Micronaut Java web framework? It seems cool but everybody talks about Spring. Thank you all.
Jesus I can't believe I'm talking to the author of Sumatra PDF. I love that software! Thanks for stopping by. I'll definitely read your blog post. If you don't mind to answer another question, I'm also a bit interested in desktop development. Would you recommend learn C or C++ for that purpose in 2018? I'm taking a look at Gtk3 too. Thank you very much!
I don't really pay much attention to what other companies are doing, TBH. So I really couldn't say. To the extent that the Tiobe index means anything, Groovy was #28 last time around. https://www.tiobe.com/tiobe-index/
Syntax-wise it's a lot like Java, but without a lot of the stuff that makes Java verbose and tedious, and with the addition of a lot of extra features that allow for much more rapid development. Groovy is dynamically typed, with optional static typing, supports closures, currying, etc., has good support for many other FP primitives, but also fully supports OOP, can seamlessly use pretty much any Java library, has great metaprogramming support, and probably a number of other things I'm forgetting right now.
I'll chime in as well: in general it's just the most versatile and practical language I've ever come across. I can write it almost like Java if I want so I can do solid engineering with it and it performs almost the same. Then I can write scripts at the command line that get interpreted and they are more concise and powerful than shell scripts. Any time I need to play with or understand a Java API, I can fire up the Groovy REPL and just fool around with it.
So it's just an extremely useful language to have in my "tool belt", so to speak.
Grails is on version 3.x but not many people upgraded from version 2.x or are starting new projects in it, and the Grails 2 plugin ecosystem is dead. I don't know of any other web framework which uses Apache Groovy for its scripting. Groovy is mainly used in industry to script Gradle and write glue code for Java. If you want static typing, best skip Groovy and use Java, Kotlin, or Scala which were statically typed from the ground up, instead of having it bolted on in version 2 as did Groovy.
Thanks for the info. I'm totally ignorant about Java so it might be a dumb question. But Digital Ocean's 1gb droplets are enough to run some Java Restful APIs? I heard that Java is really heavy on memory consumption but I know nothing about it.
It depends what you want. Personally, I have moved on from Grails because (a) it's too bloated (long startup times, huge number of dependencies, very complicated to understand under the hood) and (b) a lot of that bloat is doing things that are no longer valuable to me. That is because I now code front ends more SPA style (VueJS etc) so all of the sophisticated front-end Grails stuff is completely unused and it mostly just sits there serving up REST-style APIs for which all that bloat isn't necessary. So for now I am using Micronaut [1], which I'm combining with VueJS. If that interests you, there's a project which is a template for setting up a whole front-end, backend combo based on that with a few commands [2].
I think what you should try out depends on what you want to accomplish and what language you think is most likely to be useful to you again.
With that said, I would cast my vote with Python 3 and the latest Django. I've found that if I go with a lighter framework, eventually I just end up writing out big chunks of the missing functionality myself and I end up with a poor-man's Django.
Django is actually quite nice. I like Python 3. I only wish it could have auth and rest support built in. Having to install apps for that kind of turns me off. I guess Laravel shines here in this regard.
23 comments
[ 4.0 ms ] story [ 72.2 ms ] threadFor general purpose, I'd suggest writing a hello world app in every backend language you can think of. See what clicks with you.
Highly recommended.
I wrote a longer explanation at https://blog.kowalczyk.info/article/uvw2/thoughts-on-go-afte...
So it's just an extremely useful language to have in my "tool belt", so to speak.
Good luck!
[1] http://micronaut.io/ [2] https://gitlab.com/ssadedin/micronaut-vuejs
With that said, I would cast my vote with Python 3 and the latest Django. I've found that if I go with a lighter framework, eventually I just end up writing out big chunks of the missing functionality myself and I end up with a poor-man's Django.