DEV is in the process of launching a podcast and we'd love for you to be involved! We're recording the episodes in advance, and this week we'd like to know:
What do you dislike about your favorite language?
If you'd like to participate, please:
- Call our Google Voice at at +1 (929)500-1513 and leave a message π
- Send a voice memo to pod@dev.to π
- OR, if you don't want your voice recorded...just leave a comment here and we'll read your response aloud for you π£
Thank you!
Top comments (61)
I absolutely LOVE LOVE LOVE Ruby, buuuut I am SO TIRED of typing all these frickin' underscores for snake_case! π
I didn't think about it until you said it, but yes,
snake_case_is_annoy_to_type
.It feels like I always have one finger on the shift key now! π
i_feel_you
But does your pinky finger feel me? Cuz mine doesn't feel anything anymore π
I can relate, I use python all the time, but I always feel like camelCase flows better while typing.
When I'm switching between Ruby and JavaScript, I always end up writing camelCase for both and needing to rewrite a bunch of Ruby method names. You're so right, the flow of camelCase is just...better! (Which I guess means more efficient to write? Is this really just an issue of number-of-keystrokes?)
but_i_love_underscores.
Me too!.......after they're written. Just not before and during. ;)
I find snake_case a bit easier/faster to read. It's obvious if you think that "_" it's a better visual separator than a case change.
Doing PHP I can relate, even more so, because it isn't even consistent about it, some are snakes, some aren't.
Ruby is my favorite language and what I really dislike is symbols vs strings. We have a dynamic language with no type checking so...was it
myhash["foo"]
or was itmyhash[:bar]
? Oh right I know! It wasActiveSupport::HashWithIndifferentAccess.new(myhash)[:foo]
. How silly of meI love Ruby, but I hate that it's pretty much never used for anything other than web. Don't get me wrong, Ruby is great for web and I love using Ruby on Rails but I feel like the world would be just a little bit better if more companies adopted the language for doing something else. I feel like even PHP is more used for non-web projects than Ruby is and I find that mildly infuriating.
As someone who loves Ruby and would love to do backend work with it for the rest of my life (even though I know it won't play out that way)--I am very glad this sentiment exists! <3
JS is my favourite but I really dislike the class syntax that was introduced in ES6. The prototype chain is easy to understand and doesnβt need to be hidden beneath βclassβ, βextendsβ and βsuperβ which feel more like Java.
I agree with you, and for me the worst thing about the introduction of pseudo-classes is that new developers tend to think about it in the same way that it work in other OOP languages, working on projects and building some things without really understand the inner working of JS
Precisely.
Agreed. I think
class
was added just to satisfy OOP programmers from other languages, and to confuse new learners.In JS, the OOP concept is prototype-based. The
class
is actually just built on top of the constructor function.I love Python! But tell me why common classes aren't consistently styled, e.g., in
collections
, you havenamedtuple
(all lowercase) andOrderedDict
(PascalCase).There might be a reason, but it bothers me.
I really like Rust but let's be honest the syntax is pretty ugly π
I've been playing with Rust in the last 5 days and getting frustrated with the syntax. I thought maybe it's just me. It is difficult to understand what a piece of code is doing. I want to use Rust but dammit I'll stick with C/C++ for now. The manual is pretty confusing at many places. I read the whole manual more than twice! I feel the same about Go too. It's the worst.
why? I've worked with Python and a bit of C and C++, doesn't look ugly to me, looks kinda generic actually, nothing extravagant.
I think I'm not used to
'
as a language feature (other than strings) so lifetimes specifically hurt my eyes in the beginning. Example from the book:There is a lot of memory related stuff in rust as well so tbh you'd most likely use it in combination with more features like traits so it'll look more like this (also en example from the book).
It's not the worst but I understand jokes like these even though rust is nice π
I guess that lifetimes can be a lot to take in, but in my experience is not very often you have to make lifetimes explicit, the compiler usually infers them, I also used C in my university courses so I'm kinda used to pointers and their notation. I have to admit that when I started with Rust I just cloned everything and it moved it was a String, I've slowly started to replace clones and Strings with references so I'm seeing more references in my code, but also getting more used to them. I think is like the smell of your dog or the smell of garlic, you get used to it, the rest, not so much XD
This is my pain.
Though It feels like the code flow without having weird exceptions here and there, but still, you know (!!!).
Which language is this?
Go
gobyexample.com/errors
I really like Go..just 15days on it though
I feel your pain. I recently started playing with go and I'd say, error handling is a rather bad.
I love JavaScript but I dislike the fact that not support immutability out of the box, also I dislike that it doesn't have a proper standard library
Have you played with
Object.freeze()
? It makes an object immutable at the top level (though the properties of objects within that object can still be changed)Hi, yes I know about it, as you mention inner objects can be modified unless that you freeze these objects recursively but anyway I don't think that this can be classified as immutability imposed by the language itself
So imagining that it was recursive, would you want immutability to be the default behavior rather than having to apply it with a method?
I guess he wants const to really mean constant =)
I think a nice way to ensure objects are immutable is to use a closure when constructing them and only return getter methods, like in Douglas Crockfordβs constructor example.
Yes can be, immutable by default but at the same time giving the option to developers of make some value mutable, similar at how
mut
keyword work in Rust, I like that approach, in this way you can work with mutable data but immutability would be the main paradigm in this issueMakes sense. Iβd like that feature in JS.
I both love and hate TypeScript, it's great for all the things it gets right, but there are clear cases that it totally misses the bar.
e.g:
Clojure β¨ is a true gem, but as a hosted language, knowledge of the environment (.NET CLR, JVM, V8, CLisp Compiler) is required to troubleshoot compilation/ building errors.
Even ClojureScript has a steep learning wall to setup locally which turns newbies away (that and it's
((()))
).Despite the advantages in being hosted, it takes a weirdo to want to learn such a idiosyncratic syntax.
Check out Higganbotthams beginner-aware tutorial into Clojure