I guess as a beginner in programming, we tend to be so much in a hurry that we forget to give some languages the patience and time it needs.
Today, I would like you to share the programming language that you found hard when you started programming .
Some would say Javascript, I would say Javascript cuz I rushed it and didn't give myself enough time to really understand the concept.
What about you ???
Top comments (89)
Java. Not because it is a difficult language to use, but because whenever I'm halfway trying to use it for a project my mind would go: "Man, if I used Python/PHP/Node I would've been finished half an hour ago."
It's just too verbose :/
I think java is not hard. It's just you have to write more codes than when you use other languages for the same cases.
I personally like it if i'm not on rush because coding with java tend to make me write clean codes than when i use php or javascript.
Lol, I feel you man
Yes, its verbosity is definitely my biggest beef as well.
And thanks for reminding me of another reason I hate the TypeScript trend among JS devs, that I forgot to list in a discussion earlier (where I was focused instead on junior dev learning curve, reduced available talent pool, and the problems with treating JS like a class-based, statically typed language).
Long time Java guy and I totally agree. I moved to groovy, works with all the java but feels more like JavaScript :)
Oh, while I have such possibility to ask: is groovy production ready for freelancing? I personally think it's better than python or js/ts, but can't see any reason for it's unpopularity. Maybe, one that it's on jvm, but... Meh
Groovy is very ready for production! :D Actually we run it in all of our CI/CD scripts as well as our production micro-services. Development time is shorter over all and all my Java colleagues have slowly but surely quit writing anything in java, which is still an option but no one does it anymore, lol
I've found that Java developers are resistant to moving to groovy until they see how easy it is to parse json in 2 lines of code while they toil constructing complex objects they really dont need or want but, Java requires it. OR that I can remove null objects from a list by simply typing: list - null
For others, I think you right, its in the JVM world and if your not in that world I think there's a resistance to move to the totally unknown. I can understand in a way, its my main reason for not digging deeply into Python, I can write a groovy script faster than I can figure out which lib to import to do x,y or z in Python. If I had infinite time I would code in all languages but I think time is the real troublemaker here.
even just printing is too intimidating compared to high level languages like python
Plain printing is probably the least useful thing a language has to offer. What you should do when you find a print statement, is reply it with a proper logger statement.
That's why I turn into Javascript
My first language was ZX Basic, and then I started to do bits of assembly (badly) and C. C was my proper first language, and obviously the hardest to learn because of that, but once over the hump of the learning curve, it's surprisingly straightforward - the advantage of a language with minimal tooling, that hasn't changed in decades, is that there are no real surprises when you come back to it.
Modern C++ is great as long as you're doing something that has library support. The moment you go off piste, it becomes a matter of writing your own wrappers around C libraries or something, and there's a lot of old-style C++ around which is more painful to use, because it tends to be written similar to...
Java, which I cannot describe without first making an AbstractDescriptionFactory, deriving a concrete DescriptionFactoryImpl which I'll inject using Spring to generate a DescriptionImpl derived form an AbstractDescription passed as a reference to a Description interface, and by the time I've done all that I've forgotten what it was I wanted to say.
Python is great, as long as nobody tries to be clever. Python allows clever, but when programmers get that glint in their eyes and say, "Oh, I could solve this with a metaclass" it's usually time to run.
Javascript is all clever. I sometimes think that every Javascript program or library has its own style. Honestly I feel lost every time I look at a new project.
Erlang is fascinating. I think all pure functional languages are - it's a bit like programming applications in Sudoku. It's amazingly gratifying when I figure out how to write something vaguely useful, but it feels a bit like writing a novel without using the letter 'e'. It's possible, I'm sure, I'm just not terribly clear on the point.
Oh, and PHP, which is a bit like if someone wrote a language by having all the other languages written up on a dart board, and every time they needed a new facility they threw a dart to decide which language to model it on. There's bits of C, Perl, C++, Java, Python, JavaScript, and all sorts there. And we're talking PHP7 - which is so much better than PHP4 was, were you'd finish writing your code only to find that the hosting provider used a different minor version so it wouldn't run anymore. Learning PHP back then was a constant minefield because the language would shift beneath your feet.
But yeah, my hardest problem now is remembering which arrow to use for arrow functions in Javascript versus Erlang.
"""Java, which I cannot describe without first making an AbstractDescriptionFactory, deriving a concrete DescriptionFactoryImpl which I'll inject using Spring to generate a DescriptionImpl derived form an AbstractDescription passed as a reference to a Description interface, and by the time I've done all that I've forgotten what it was I wanted to say.""" Whoa this made my head spin.
Me too!
As for arrow functions, quite a little bit of practice would do.
The problem is too much practice, in too many languages, in the same day - I end up typing Erlang syntax into Typescript, and C++ into Erlang, and ...
Cool, great.
I could not, for the life of me, learn Objective C. That syntax is so intimidating!
Yeah, I gave up on it. There were some interesting features, but too much weird stuff for my taste. Felt a bit messy as well. I also had to get back into C++ a few years ago and it had so exploded since I had last used it in the early to mid-90s that I had no idea what I was looking at.
Cool C++ is 🔥
Cool, must be such a deep language.
The hardest language is just standard human communication! Critique and goal-driven conversation seems to be the hardest things for the teams we've been on. Code is much more clear cut.
Came to say the same!
Wow! Love the different perspective.
Definitely Rust, wouldn't call myself even entry level Rust developer, cause still trying to learn it and stop writing code that needs to be rewritten 10 times for a compiler to stop shouting at me :D But a cool language nonetheless.
I've changed the mindset from "compiler shouting at me" to "pair programming with the compiler". And it made the process of working with compiled languages a pleasure instead of a burden. In fact, I miss having a compiler when I have to use JavaScript (or some other dynamic language).
Cool, I did love to play around it someday.
Almost embarrassed to admit this … scrap that, I an embarrassed to admit that I struggled with JavaScript for the longest time when I first began programming, and what made it worse was the fact I was proficient with PHP at the time.
In fairness, the noughties were more like the Wild West than the World Wide Web — browser wars and quirks mode, anyone?
Haskell and Rust are two languages which I really cannot digest. I know the basics, I feel I understand the concepts, but I'm unable to write code in them that does not give me headache. That's just me though.
I hear about Haskell and Rust alot in this comments, what is it used for ?
Rust is a relatively new language which targets more or less C++ niche, so part system programming, part more high level stuff like games or simple web services. There are many cases when old UNIX tools were rewritten in Rust, giving huge performance improvement. One I use daily is repgrep. Also fd.
Haskell on the other hand is very old hardcore functional language with complex and strict type system. I've seen Haskell used for many things. One successful commercial project was CGI processing for movies. I don't think it has a canonical use case as a language.
Have you worked with F#?
I have not. Why?
SQL. Query languages in general, really. But it is as you say: I find it challenging in a not-so-fun way because I haven't taken the time to understand it to the point where it is no longer scary.
Oh, I know how to write basic queries and such, but I've never educated myself very deeply on databases and their domain-specific languages. For example, I don't know how a
JOIN
works, or the difference between the different kinds ofJOIN
s. But I can use them accidentally, because I saw examples of how to use them to do things I wanted to do.Understanding when to join and what kind of join has been a challenge for me as well. Also, the challenge is learning how to work with a large database.
We were dealing with a codebase that had started before standardization and included various stuff as the language evolved over a period of 20 years. Multiple developers coming and going, no coding standards, copy/pasted code all over. On top of that, there was also some C++/CLI. head explodes
Still managed to do most of what I set out to do, but it was hellish at times.
Definitely Go. I tried it a few times but always broke down. Mostly because of a still non existent (or not well marketed/documented) ecosystem like JavaScript/Node has (a working package manager, clearly documented libraries and frameworks)
Cool, but I think at the moment they are many docs you can get your hands on.
Some comments may only be visible to logged-in visitors. Sign in to view all comments.