

Ask HN: Which technology\language you find most difficult to learn? - thar2012

My answer is COM, whats yours ?
======
Paul_S
Unreal would be my first choice. A company recently sued Epic for how crap it
is but they lost. Still, the fact that they did sue them in the first place
tells you a lot but I'm not allowed to have an opinion.

If I could sue a language I'd sue bash. I know it'd be futile but there is a
reason that so many replacements exist but maybe a better reason why none of
them have supplanted bash.

~~~
freehunter
_A company recently sued Epic for how crap it is but they lost._

Silicon Knights sued Epic claiming that they were promised advanced features
of the Unreal Engine that allegedly did not exist or were not supported in the
way SK were led to believe. They allegedly ended up having to build their own
engine for the game on top of the cost of the UE3 license. Epic discovered
that the new engine was using source code from SK's licensed copy of the UE3
engine and counter-sued for breech of contract. The claims against Epic were
thrown out because the judge felt SK was asking for unreasonable amounts of
money. As far as I know, the matter of whether or not Epic filled their end of
the bargain was not answered. That's the real shame.

 _why none of them have supplanted bash._

Same reason C is still popular despite more advanced and modern languages.
It's not as widely supported. Bash and C are everywhere. Bash and Perl are
awful, awful languages that are awful, awfully unfortunately useful.

~~~
Paul_S
I don't think courts are in a position to rule on quality of products unless
it's blatant false advertising. I'd love to discuss this but my next job is
likely to involve Unreal as well. All hail our lords at Epic.

So instead I'll disagree with you on Perl which I thought was one of those
saner replacements for bash, especially when it comes to one liners. So what
languages did you think I meant?

> Same reason C is still popular

I think the reasons behind C and bash staying power are different. Bash is
here to stay because it is ingrained, literally embedded in the system and has
a large user base. It doesn't offer anything unique that isn't available
somewhere else. C is here to stay because it offers what other languages
don't. There are new projects with no legacy concerns that still choose C.

~~~
freehunter
_So what languages did you think I meant?_

You mentioned bash, which I agreed with. I was also adding Perl to my personal
list of complaints as a language I found difficult to learn.

------
rvid
COM/XPCOM. Go dig into the Mozilla codebase.

Also, another vote for CSS. Mostly because its so hard to debug and figure out
what exactly is making your page look like shit. Add to that varying browser
support. Its hell.

------
felipebueno
Objective C... It is the weirdest language I've ever seen.

~~~
felipebueno
besides brainfuck =p

~~~
mrlase
I was reading an article about implementing an interpreter for Brainfuck in
PyPy, and when the example code for some simple Brainfuck programs came up, I
just stared. I really fail to see how one would go about programming just
about anything in that language. (Here's the article in case anyone is
interested, a pretty good read IMO:
[http://morepypy.blogspot.com/2011/04/tutorial-writing-
interp...](http://morepypy.blogspot.com/2011/04/tutorial-writing-interpreter-
with-pypy.html))

------
jknupp
SML.

I remember at CMU, the sophmore level programming language theory course (the
name escapes me, it was 15-212) was wildly different than anything I had done
before. All programming courses one took up to that point were the normal
intro level courses that most passed out of and a data structures/algorithms
course. Sitting down the first day and being introduced to SML along with
language constructs with no analogue in the programming languages I knew was
tough. I struggled for about a month, much like I imagine many do when
learning about pointers: you may be able to do some of the work, but you don't
have a proper conceptual model to be able to reason about it. All of a sudden,
after re-reading the material from the beginning, everything just clicked. It
was probably my favorite undergraduate CS course from then on.

~~~
thar2012
You make me remember my compiler design course. I find it most difficult
during my collage days. Thank god we didn't have SML

~~~
Ralith
I wish my compiler course had used SML--then maybe I wouldn't have had to
greenspun C++ so hard.

------
jetti
I have a couple for various reasons:

The hardest that I gave up on was Groovy. The language itself seems really
nice, it was just hard because of the lack of documentation that I was able to
find so I just switched to Scala since I had to learn it for a class anyways.

The hardest that I still use is Haskell. While there documentation is
phenomenal compared to other languages, I have found that it isn't something
that you can just pick up and start using and be able to write idiomatic
programs without studying theory. For me, when I get to monads I struggled a
bit. Then I get to the monadic bind and other operators like $ and . and I
find I have to keep going back to tutorials to see when and how to use them
properly.

------
dscrd
Javascript. I've learned the basics of SML and Ocaml, and a bit more than
basics of Haskell, but I just can't bring myself to learn how to use JS
effectively.

More generally, I find it hard to learn how to do GUIs and pretty web pages.

~~~
geon
Have you tried jQuery? The API:s to interact with the browser really sucks,
but the core language isn't too bad IMHO.

If you abstract away the browser differences in event handling and DOM, it's
pretty straight forward to build GUI:s.

------
jfaucett
For me it was (and still is) ORM, specifically Doctrine2. In principle it
seems pathetically easy, but once the queries start getting immensely
complicated ( Many-to-Many over multiple tables, with conditional form data,
etc) I still find myself having to fallback to SQL.

Other contenders have been:

1\. Bison ( tokens, parsing, syntax, was all difficult the first time around).

2\. OpenGL because remebering function names for the api is RIDICULOUS! ahh
glDrawElementsInstancedBaseVertexBaseInstance now what are the args again?

------
geon
CSS

It is deceitfully simple at a glance, but to make a _useful_ design with it is
_hard_. There are so many hacks to get it to do what you want and hacks to
work around bugs.

------
neilk
Haskell. While I've sung its praises on HN before, I am just a novice. I've
gotten deep enough to see how great it is, but not far enough to write
anything nontrivial.

------
debacle
Honestly, CSS. It's so different from programming that I can't wrap my head
around it.

Ask me to write a simple web page and I'll have ~10 tabs open to w3schools.

------
venturebros
Javascript.. I have been working with the DOM for the past 3 years yet I feel
like I still do not have a solid grasp of Javascript.

~~~
geon
The DOM is not Javascript, it's just an API. A really, really sucky API. Use
jQuery instead.

------
kellros
Probably <http://en.wikipedia.org/wiki/Malbolge>

~~~
thar2012
Interesting Language :)

------
manuscreationis
Another vote for CSS, but then again I've never actually tried to use COM

Something about CSS prevents me from really grasping it and using it with any
real skill. I mainly live off of designer friends and things I can cobble
together with the help of google.

------
danellis
Recently, I'd probably say SAML. There are so many intricacies in the spec
that it's difficult to know how best to apply it to a problem, and the
implementation I use is poorly documented.

------
buster
probably not most difficult to learn but most hated: Perl

most difficult to learn for an OO-guy: Erlang (and most interesting as well)

