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...
For further actions, you may consider blocking this person and/or reporting abuse
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.
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
.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.
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. ^^
Learning lisp helped me understand js better
It must have been tough learning at that time, then.
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 !!
Then switch to Spanish (or whatever else) 🙊
Jokes aside, I got your point. Human communication is way harder than code.
<sarcasm>Why, brainfuck of course.</sarcasm>
The hardest languages for me were the assembly language and lisp. Lisp was conceptually hard. The assembly language was just raw - for various reasons I didn't have any compiler and had to write code in literal, hex bytes, and type them into the computer that way.
Lol cool
The first one.
wow! JS you mean ?
Any.
Alright.
Not a programming language, I guess, but I really find CSS difficult to master. Every setting seems to influence how every other setting works..
Yeah, I understand. Did you concentrate on other technologies while learning CSS ?
It’s certainly never been a focus of intensive learning for me, until now. Always something that I felt was a case of surface level understanding being enough. I first encountered CSS in about 2001 and it’s only now I’ve sat down and tried to really get a deep understanding of it 😃
I used to be extremely fluent but, for the life of me, I've completely lost the ability to converse in GAF (give a fû©*) to staffing agencies who think preemptive reference checks are an acceptable practice, or that I'm going to grant them a 20 minute phone call that could have been a 2-3 minute email convo to get critical details about a role, or to hiring managers who think live coding tests or terminology quiz interviews will tell them anything about a developer or that the already employed super senior 10x unicorn whatever dev (who solves real world problems daily) will fare better in them than grads fresh out of a CS program or bootcamp (or job hoppers who do them regularly) will.
Good luck Mate
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.
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
Any assembly language: there is a lot of high level language features that aren't always available like for loop. But I really like that kind of challenge, keeps me interested and thrilled.
Wow! Cool yet to explore assembly languages tho.
vim :(
Wow! Cool
Haskell. It haunts my dreams
I can relate to that. I did a mdr implementation in haskell (here). As I do bash all day and mostly C when I want to do something bigger, it was really like a brand new world! Yet I feel you can reach some kind of "finisheness" whith such a language you'll hardly get with C. I only wich it was faster (as in performance, not learning curve).
The C++ .. requested in job interviews.
The core language is super until a PM asks to walk on an array of pointers, using another pointer.
Most devs. has really said much about C++. The language must be tough then .
It was C.
Great to hear, it's no longer it.
C/C++ for quite a few reasons
Cool, do you mind to share ? Someone might learn from jt
Sure. Memory management, linking libraries (in general the complexity of managing dependencies natively), templates.
Don't get me wrong, C/C++ gives you great flexibility, but it comes at the cost of great complexity.
I'd say Rust, even thought the documentation and books are huge, the whole language just assumes that you are a really skilled hacker and can figure out stuff really easily which isn't really the case with everyone, an easier way to get to it would be to learn Go and then try learning Rust.
Scala, if you've ever thought that Java was verbose(it is , use groovy!) then take Java and compress it and add functions with objects.
There's just too much going on there!
Javascript. I Can’t even find a tutorial that is basic enough for me to try to follow along but i’ve always been an idiot
Rust is quite hard for me, coming from interpreted languages. You don't have to "care" about memory either, but you definitely have to understand how does it work.
LISP / Clojure. Hard when you come from C-like languages.
But it's so fascinating!
Wow! That's cool
Javascript!
I rushed it too.
Its a slightly unconventional language. I used to hate it but I absolutely adore it now.
Kudos amigo!
Wow! Cool but I know you must be a guru by now. Right ?
C and C++ as low level programming languages it's very hard to understand the concepts and the different ways that theses low level programming languages implement different concepts.
I think mine is CSS, everything is looking a bit new now
Cool, quite a lot of people find it difficult at first, particularly because we rushed it and didn't get the concept.
MIPS assembly language
Hardest language is the first language you learn
C++ and Assembly. As a web developer using modern technology stack around TypeScript/SPA, I am glad that I am not developing software years ago when development was much more difficult.
That's great!
Alright , we learn everyday. Same here!