Can't believe I scrolled all the way down and didn't find Scala. It's the only language with decent traction that beautifully and elegantly combines functional programming and object oriented programming. Scala makes it such that the language does not limit you into a certain paradigm. You can translate your algorithm in your mind into code regardless of how you thought of it. Incredibly flexible where you need it to be.
Asklemmy
A loosely moderated place to ask open-ended questions
Search asklemmy π
If your post meets the following criteria, it's welcome here!
- Open-ended question
- Not offensive: at this point, we do not have the bandwidth to moderate overtly political discussions. Assume best intent and be excellent to each other.
- Not regarding using or support for Lemmy: context, see the list of support communities and tools for finding communities below
- Not ad nauseam inducing: please make sure it is a question that would be new to most members
- An actual topic of discussion
Looking for support?
Looking for a community?
- Lemmyverse: community search
- sub.rehab: maps old subreddits to fediverse options, marks official as such
- [email protected]: a community for finding communities
~Icon~ ~by~ ~@Double_[email protected]~
Very few people use Scala. I think it's used in some data transformation pipelines and that's it....
I'm probably the black sheep here, but I love Kotlin. It has the best parts of strong typed, object oriented languages and functional languages. Though I feel like it being designed to be bytecode compatible with Java really limits its applications. Even though they have a scripting language version of it, it really doesn't perform well as a scripting language because you need to compile it. I find myself always using Python for scripts instead.
Kotlin: compatible with Java, JS, Wasm, Swift and even C++, ability to share code across all those platforms, way less verbose than Java, lots of useful functions in the standard library... I still don't understand why some people are saying it's just Java but worse
Oh my favorite is Crystal. It's a statically compiled dialect of ruby.
It supports:
- Most of the ruby goodness: custom DSLs, patching classes/mixins (monkey patching instances is not supported)
- Compile time type checking (but it also uses duck typing)
- Coroutines / fibers that work across multiple threads (multi-thread support is still experimental, but from my experience works well)
- Possible to create small self-contained binaries (like go-Lang apps).
As much as I love the expressiveness of crystal, there are a few cons:
- It's slow to compile. Due to the dynamic nature of the language, the compiler needs to parse a lot of files (think C/C++) before it creates a binary.
- The number of libraries is very immature at the moment. Crystal is a young language and is missing support for things like aws.
- The library management mechism (called "shards" akin to ruby gems) is not great (in my opinion). There are helpful tools to create the scaffolding, but if you're pretty much stuck with the defined structure. For example you cannot have a single git repo that provides a library and an application that uses it.
Other than that, the type checking but with ruby-like syntax is awesome!
edit: fixed formatting
Brainfuck !
Not meant to do real things with it, it's more of a puzzle game, but a really brain hurting one
I like R because most everything is vectorized out of the box, and you can subset multiple ways. You can do stuff like
a = c(1,2,3,4)
a - 1 # 0,1,2,3
a < 3 # T,T,F,F
a + a # 2,4,6,8
a[a < 3] # 1,2
Also map (βapplyβ functions in R) is implemented very intuitively, and R discourages you from doing anything object oriented.
Also Shiny is so cool.
No one else said it⦠I like Java, and more than the language all the tools available around it. They have been adding to the language to cut down on the traditional verboseness, and it can even natively compile now** some of the time.
The tools are also great, with Springboot for web services and jOOQ for databases, you can very quickly have a web app with strong typed database objects.
Clojure. I not only get to use a functional language but also get to use all the libraries written for an actually popular language (Java, or JS for ClojureScript). Altough I'd choose something else if functional programming should ever catch on.
Currently Zig. It really is "better C", and i like C.
Otherwise it would be Erlang, but it does not suit what i want to do now.
i have to try zig
Perl. I can use it after awhile away without having to look up how to do things. It adapts to the best style for what I need to do.
I try to stay language agnostic but if I'm honest JavaScript is my favorite because of the speed it provides. Also I like to build we based things so it's always in the stack
Scala. Multiparadigm. A touch of OO is nice in the functional world.
I haven't programmed anything for years and it was all self learned so I'll always have a soft spot for delphi.
HTML 4, cause I leaned it in 1998 when I was 10 and it's the only language I know (besides English) .
R. The Rstudio ide is awesome and the data wrangling packages are unmatched. It's also pretty fast as long as your dataset fits in your RAM.
COBOL, because I loathe myself and don't want to be happy