DEV Community

Cover image for Which Language do you  Find the hardest ?
Kenechukwu Nwobodo
Kenechukwu Nwobodo

Posted on

Which Language do you Find the hardest ?

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)

Collapse
 
alchermd profile image
John Alcher

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 :/

Collapse
 
syakirurahman profile image
Syakir Rahman

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.

Collapse
 
kene_nwobodo profile image
Kenechukwu Nwobodo

Lol, I feel you man

Collapse
 
stereoplegic profile image
Mike Bybee

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).

Collapse
 
leeclarke profile image
Lee

Long time Java guy and I totally agree. I moved to groovy, works with all the java but feels more like JavaScript :)

Collapse
 
belenot profile image
belenot

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

Thread Thread
 
leeclarke profile image
Lee

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.

Collapse
 
winstonewere profile image
Winstone-Were

even just printing is too intimidating compared to high level languages like python

Collapse
 
alainvanhout profile image
Alain Van Hout

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.

Collapse
 
ngthuongdoan profile image
Doan Ngoc Thuong

That's why I turn into Javascript

Collapse
 
dwd profile image
Dave Cridland

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.

Collapse
 
pg_77 profile image
Perry Grewal

"""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.

Collapse
 
ziizium profile image
Habdul Hazeez

Me too!

Collapse
 
kene_nwobodo profile image
Kenechukwu Nwobodo

Cool, great.

Collapse
 
kene_nwobodo profile image
Kenechukwu Nwobodo

As for arrow functions, quite a little bit of practice would do.

Collapse
 
dwd profile image
Dave Cridland

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 ...

Collapse
 
ben profile image
Ben Halpern

I could not, for the life of me, learn Objective C. That syntax is so intimidating!

Collapse
 
metalmikester profile image
Michel Renaud

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.

Collapse
 
kene_nwobodo profile image
Kenechukwu Nwobodo

Cool C++ is 🔥

Collapse
 
kene_nwobodo profile image
Kenechukwu Nwobodo

Cool, must be such a deep language.

Collapse
 
perpetual_education profile image
perpetual . education

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.

Collapse
 
gillchristian profile image
Christian Gill

Came to say the same!

Collapse
 
kene_nwobodo profile image
Kenechukwu Nwobodo

Wow! Love the different perspective.

Collapse
 
innprogress profile image
Arnold A.

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.

Collapse
 
gillchristian profile image
Christian Gill

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).

Collapse
 
kene_nwobodo profile image
Kenechukwu Nwobodo

Cool, I did love to play around it someday.

Collapse
 
octaneinteractive profile image
Wayne Smallman • Edited

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?

Collapse
 
katafrakt profile image
Paweł Świątkowski

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.

Collapse
 
kene_nwobodo profile image
Kenechukwu Nwobodo

I hear about Haskell and Rust alot in this comments, what is it used for ?

Collapse
 
katafrakt profile image
Paweł Świątkowski

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.

Thread Thread
 
pg_77 profile image
Perry Grewal

Have you worked with F#?

Thread Thread
 
katafrakt profile image
Paweł Świątkowski

I have not. Why?

Collapse
 
daniel13rady profile image
Daniel Brady • Edited

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 of JOINs. But I can use them accidentally, because I saw examples of how to use them to do things I wanted to do.

Collapse
 
pg_77 profile image
Perry Grewal

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.

Collapse
 
shaijut profile image
Shaiju T

Here in india , In Colleges Mostly All learn First language as C and then C++ , The real problem is getting started.

Most people use to give up saying, programming is hard because they are not getting the expected OUTPUT or they are not able think more to build logic for the problem, so in between they give up learning.

The only solution is to be patience while learning, it takes time, and understand the language how it works, then make your logic and thinking capacity strong by doing more problems and projects.

Collapse
 
kene_nwobodo profile image
Kenechukwu Nwobodo

Same here in my country Nigeria, they did teach mostly BASIC etc which are not really what the world needs at the moment. But all the same, programming isn't what school (tertiary institution) really teaches.

Collapse
 
ecyrbe profile image
ecyrbe • Edited

lisp.

I started programming when i was 12, 30 years later i can't find a langage difficult to learn anymore.

But a the Time, lisp was the fist functionnal programming langage i discovered and it took me a while to understand all these parenthesis nonsense. ^^

Collapse
 
hi_artem profile image
Artem

Learning lisp helped me understand js better

Collapse
 
kene_nwobodo profile image
Kenechukwu Nwobodo

It must have been tough learning at that time, then.

Collapse
 
dploeger profile image
Dennis Ploeger

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)

Collapse
 
kene_nwobodo profile image
Kenechukwu Nwobodo

Cool, but I think at the moment they are many docs you can get your hands on.

Collapse
 
akashkava profile image
Akash Kava

English, it is the only most ambiguous language in the world.

Programming languages are not hard at all because there is no ambiguity. The unknown is never hard, it is just that you don't know about it, that's why it appears hard. Once you read and understand it is easy. But even after learning and understanding English, it is still the same !!

Collapse
 
gillchristian profile image
Christian Gill

Then switch to Spanish (or whatever else) 🙊

Jokes aside, I got your point. Human communication is way harder than code.

 
metalmikester profile image
Michel Renaud

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.

Collapse
 
jwp profile image
John Peters

JavaScript, took me way longer than I like to admit. I had 10 years in Java at the time.

For example when degugging I'd see a object but couldn't see the keys or values.

Creating a new object eluded me.

Returning a function or two wasn't logical.

Many years later, I realized how easy it was. I like JavaScript a lot now

Collapse
 
iwelch profile image
Isaac Welch

Give clojure a go. It's a functional programming language but it has very much less complex syntax. This makes learning complex functional patterns more accessible as the api you use to interact with them looks more similar.

Some comments may only be visible to logged-in visitors. Sign in to view all comments.